VSCode extension that generates docstrings for python files

Overview

Build Status Installs Rating

VSCode Python Docstring Generator

Visual Studio Code extension to quickly generate docstrings for python functions.

Auto Generate Docstrings

Features

  • Quickly generate a docstring snippet that can be tabbed through.
  • Choose between several different types of docstring formats.
  • Infers parameter types through pep484 type hints, default values, and var names.
  • Support for args, kwargs, decorators, errors, and parameter types

Docstring Formats

  • Google (default)
  • docBlockr
  • Numpy
  • Sphinx
  • PEP0257 (coming soon)

Usage

Cursor must be on the line directly below the definition to generate full auto-populated docstring

  • Press enter after opening docstring with triple quotes (""" or ''')
  • Keyboard shortcut: ctrl+shift+2 or cmd+shift+2 for mac
    • Can be changed in Preferences -> Keyboard Shortcuts -> extension.generateDocstring
  • Command: Generate Docstring
  • Right click menu: Generate Docstring

Extension Settings

This extension contributes the following settings:

  • autoDocstring.docstringFormat: Switch between different docstring formats
  • autoDocstring.customTemplatePath: Path to a custom docstring template (absolute or relative to the project root)
  • autoDocstring.generateDocstringOnEnter: Generate the docstring on pressing enter after opening docstring
  • autoDocstring.includeExtendedSummary: Include extended summary section in docstring
  • autoDocstring.includeName: Include function name at the start of docstring
  • autoDocstring.startOnNewLine: New line before summary placeholder
  • autoDocstring.guessTypes: Infer types from type hints, default values and variable names
  • autoDocstring.quoteStyle: The style of quotes for docstrings

Custom Docstring Templates

This extension now supports custom templates. The extension uses the mustache.js templating engine. To use a custom template create a .mustache file and specify its path using the customTemplatePath configuration. View the included google docstring template for a usage example. The following tags are available for use in custom templates.

Variables

{{name}}                        - name of the function
{{summaryPlaceholder}}          - [summary] placeholder
{{extendedSummaryPlaceholder}}  - [extended_summary] placeholder

Sections

{{#args}}                       - iterate over function arguments
    {{var}}                     - variable name
    {{typePlaceholder}}         - [type] or guessed type  placeholder
    {{descriptionPlaceholder}}  - [description] placeholder
{{/args}}

{{#kwargs}}                     - iterate over function kwargs
    {{var}}                     - variable name
    {{typePlaceholder}}         - [type] or guessed type placeholder
    {{&default}}                - default value (& unescapes the variable)
    {{descriptionPlaceholder}}  - [description] placeholder
{{/kwargs}}

{{#exceptions}}                 - iterate over exceptions
    {{type}}                    - exception type
    {{descriptionPlaceholder}}  - [description] placeholder
{{/exceptions}}

{{#yields}}                     - iterate over yields
    {{typePlaceholder}}         - [type] placeholder
    {{descriptionPlaceholder}}  - [description] placeholder
{{/yields}}

{{#returns}}                    - iterate over returns
    {{typePlaceholder}}         - [type] placeholder
    {{descriptionPlaceholder}}  - [description] placeholder
{{/returns}}

Additional Sections

{{#argsExist}}          - display contents if args exist
{{/argsExist}}

{{#kwargsExist}}        - display contents if kwargs exist
{{/kwargsExist}}

{{#parametersExist}}    - display contents if args or kwargs exist
{{/parametersExist}}

{{#exceptionsExist}}    - display contents if exceptions exist
{{/exceptionsExist}}

{{#yieldsExist}}        - display contents if returns exist
{{/yieldsExist}}

{{#returnsExist}}       - display contents if returns exist
{{/returnsExist}}

{{#placeholder}}        - makes contents a placeholder
{{/placeholder}}

Changelog

Check the CHANGELOG.md for any version changes.

Reporting issues

Report any issues on the github issues page. Follow the template and add as much information as possible.

Contributing

The source code for this extension is hosted on GitHub. Contributions, pull requests, suggestions, and bug reports are greatly appreciated.

  • Post any issues and suggestions to the github issues page. Add the feature request tag to any feature requests or suggestions.
  • To contribute, fork the project and then create a pull request back to master. Please update the README if you make any noticeable feature changes.
  • There is no official contribution guide or code of conduct yet, but please follow the standard open source norms and be respectful in any comments you make.

License

This project is licensed under the MIT License - see the LICENSE file for details

Comments
  • Fixes #143: Ignore

    Fixes #143: Ignore "raise something" in comments

    Aim

    I found a bug (reported in #143 ) where if you have some commented out sentence that contains the word "raise" would cause it to be parsed as if it was an Exception leading to this strange behaviour:

    def foo(bar):
        """[summary]
    
        Args:
            bar ([type]): [description]
    
        Raises:
            appropriate: [description]
        """
    	print('Hello World')
    	# TODO: raise appropriate error down the line
    

    I modified the regex pattern to ignore raise if a "#" came at any point before it.

    How was this tested

    Ran the example snippet provided above with expected behaviour. Ran it also with a good old Exception to see if I didn't just break the functionality all together npn run test & npm run integration_test

    I didn't add a test to cover this particular case (I figured better to leave the current test be simple), but if you feel strongly about it I could!

    Related Issue

    Fixes #143

    opened by bastienboutonnet 14
  • Doc String not generated in 0.5.0, was working in 0.4.0

    Doc String not generated in 0.5.0, was working in 0.4.0

    Describe the bug The doc string template is not generated below the function def after entering """. This was working a few days ago, I noticed an update today, April 21, 2020 was pushed.
    I reverted to version 0.4.0 and then it worked as expected.

    Versions (please complete the following information):

    • autoDocstring Version: 0.5.0
    • Operating System: Windows 10, version 2004
    • Vscode Version: 1.44.2

    Original Code (with line to generate on):

    def single_slug(request, single_slug):
        categories = [c.category_slug for c in TutorialCategory.objects.all()]
    

    Expected Result:

    Actual Result:

    def single_slug(request, single_slug):
        """
        
        categories = [c.category_slug for c in TutorialCategory.objects.all()]
    

    Additional context Add any other context about the problem here.

    bug 
    opened by Bill-Fujimoto 9
  • How to remove the ‘square brackets’ for placeholders?

    How to remove the ‘square brackets’ for placeholders?

    Hi, there. I am wondering is there a way to remove the square brackets used in this extension?

    When I want to edit the comments like ''[Type]'' and ''[description]'', it is a little annoying that I can not quick select the whole word with the brackets. I know there is a hot key 'Tab', but it seems just works at the first time when I create the snippets. I'd like to remove the square brackets so that I can re-edit the strings.

    feature request 
    opened by leon-work 9
  • Fix: Parse quoted type hints in type guessing

    Fix: Parse quoted type hints in type guessing

    Description

    As explained in #138 the ability to guess types from type hints was "broken" when it would encounter a quoted type hint as in the example below:

    from typing import TYPE_CHECKING
    
    if TYPE_CHECKING:
    	import pandas as pd
    
    def foo(bar: "pd.DataFrame"):
    	pass
    

    Since quoted type hints aren't uncommon when the developer does not want to import a library and in the case of forward imports. I thought this might be a nice addition.

    Without an ability to parse quoted hints, the docstring would fail to generate arguments with types resulting in the following:

    def foo(bar: "pd.DataFrame"):
    	"""[summary]
    	"""
    

    How was this tested?

    • Ran ext in VSCode extention development. Tested the following cases" def foo(bar: pd.DataFrame):, def foo(bar: "pd.DataFrame"):, def foo(bar: 'pd.DataFrame'): All lead to:
    def foo(bar: "pd.DataFrame", is_something):
        """[summary]
    
        Args:
            bar (pd.DataFrame): [description]
            is_something: (bool): [description]
        """
    

    Note to reviewer

    I didn't check other functionalities nor ran unit tests to check this change wasn't breaking anything as I'm not great at working in TypeScript or developing extensions in VSCode, but would be happy to run further tests on your guidance if required.

    Also, I haven't checked whether there are any PEP conventions that would advise against documenting hints that are quoted, but I don't see why not.

    Related Issue

    Fixes #138

    opened by bastienboutonnet 8
  • Errors being reported by VSCode

    Errors being reported by VSCode

    Autodocstring shows errors when I show running extensions in VSCode:

    • Issue Type: Bug
    • Extension Name: autodocstring
    • Extension Version: 0.4.0
    • OS Version: Windows_NT x64 10.0.18362
    • VSCode version: 1.41.1
    {
    	"messages": [],
    	"activationTimes": {
    		"codeLoadingTime": 226,
    		"activateCallTime": 0,
    		"activateResolvedTime": 922,
    		"activationReason": {
    			"startup": false,
    			"extensionId": {
    				"value": "njpwerner.autodocstring",
    				"_lower": "njpwerner.autodocstring"
    			},
    			"activationEvent": "onLanguage:python"
    		}
    	},
    	"runtimeErrors": [
    		{
    			"name": "Error",
    			"message": "Illegal argument: character must be non-negative"
    		},
    		{
    			"name": "Error",
    			"message": "Illegal argument: character must be non-negative"
    		},
    		{
    			"name": "Error",
    			"message": "Illegal argument: character must be non-negative"
    		},
    		{
    			"name": "Error",
    			"message": "Illegal argument: character must be non-negative"
    		},
    		{
    			"name": "Error",
    			"message": "Illegal argument: character must be non-negative"
    		},
    		{
    			"name": "Error",
    			"message": "Illegal argument: character must be non-negative"
    		},
    		{
    			"name": "TypeError",
    			"message": "Cannot read property 'document' of undefined"
    		},
    		{
    			"name": "TypeError",
    			"message": "Cannot read property 'document' of undefined"
    		},
    		{
    			"name": "Error",
    			"message": "Illegal argument: character must be non-negative"
    		},
    		{
    			"name": "Error",
    			"message": "Illegal argument: character must be non-negative"
    		},
    		{
    			"name": "Error",
    			"message": "Illegal argument: character must be non-negative"
    		},
    		{
    			"name": "TypeError",
    			"message": "Cannot read property 'document' of undefined"
    		},
    		{
    			"name": "TypeError",
    			"message": "Cannot read property 'document' of undefined"
    		},
    		{
    			"name": "TypeError",
    			"message": "Cannot read property 'document' of undefined"
    		},
    		{
    			"name": "TypeError",
    			"message": "Cannot read property 'document' of undefined"
    		},
    		{
    			"name": "TypeError",
    			"message": "Cannot read property 'document' of undefined"
    		},
    		{
    			"name": "Error",
    			"message": "Illegal argument: character must be non-negative"
    		},
    		{
    			"name": "Error",
    			"message": "Illegal argument: character must be non-negative"
    		},
    		{
    			"name": "Error",
    			"message": "Illegal argument: character must be non-negative"
    		},
    		{
    			"name": "Error",
    			"message": "Illegal argument: character must be non-negative"
    		},
    		{
    			"name": "Error",
    			"message": "Illegal argument: character must be non-negative"
    		},
    		{
    			"name": "Error",
    			"message": "Illegal argument: character must be non-negative"
    		},
    		{
    			"name": "Error",
    			"message": "Illegal argument: character must be non-negative"
    		},
    		{
    			"name": "Error",
    			"message": "Illegal argument: character must be non-negative"
    		},
    		{
    			"name": "Error",
    			"message": "Illegal argument: character must be non-negative"
    		},
    		{
    			"name": "TypeError",
    			"message": "Cannot read property 'document' of undefined"
    		},
    		{
    			"name": "Error",
    			"message": "Illegal argument: character must be non-negative"
    		},
    		{
    			"name": "Error",
    			"message": "Illegal argument: character must be non-negative"
    		},
    		{
    			"name": "Error",
    			"message": "Illegal argument: character must be non-negative"
    		},
    		{
    			"name": "Error",
    			"message": "Illegal argument: character must be non-negative"
    		},
    		{
    			"name": "Error",
    			"message": "Illegal argument: character must be non-negative"
    		},
    		{
    			"name": "Error",
    			"message": "Illegal argument: character must be non-negative"
    		},
    		{
    			"name": "Error",
    			"message": "Illegal argument: character must be non-negative"
    		},
    		{
    			"name": "Error",
    			"message": "Illegal argument: character must be non-negative"
    		},
    		{
    			"name": "Error",
    			"message": "Illegal argument: character must be non-negative"
    		},
    		{
    			"name": "Error",
    			"message": "Illegal argument: character must be non-negative"
    		},
    		{
    			"name": "Error",
    			"message": "Illegal argument: character must be non-negative"
    		},
    		{
    			"name": "Error",
    			"message": "Illegal argument: character must be non-negative"
    		}
    	]
    }
    
    bug 
    opened by ymyke 7
  • No docstring generated on Remote-SSH

    No docstring generated on Remote-SSH

    auto docstring works fine locally, but on remote-ssh docstrings are not generated:

    command 'extension.generateDocstring' not found

    uninstalling and reinstalling did not work, nor did installing remotely.

    bug 
    opened by timsainb 7
  • Cannot read property 'document' of undefined

    Cannot read property 'document' of undefined

    Windows 10 vscode 1.27.2

     ERR Cannot read property 'document' of undefined: TypeError: Cannot read property 'document' of undefined
    	at activateOnEnter (C:\Users\almenon\.vscode\extensions\njpwerner.autodocstring-0.2.3\out\src\extension.js:19:36)
    	at context.subscriptions.push.vs.workspace.onDidChangeTextDocument.changeEvent (C:\Users\almenon\.vscode\extensions\njpwerner.autodocstring-0.2.3\out\src\extension.js:13:90)
    	at e.fire (c:\Program Files\Microsoft VS Code\resources\app\out\vs\workbench\node\extensionHostProcess.js:99:917)
    	at e.$acceptModelChanged (c:\Program Files\Microsoft VS Code\resources\app\out\vs\workbench\node\extensionHostProcess.js:742:362)
    	at e._doInvokeHandler (c:\Program Files\Microsoft VS Code\resources\app\out\vs\workbench\node\extensionHostProcess.js:681:309)
    	at e._invokeHandler (c:\Program Files\Microsoft VS Code\resources\app\out\vs\workbench\node\extensionHostProcess.js:681:27)
    	at e._receiveRequest (c:\Program Files\Microsoft VS Code\resources\app\out\vs\workbench\node\extensionHostProcess.js:679:802)
    	at e._receiveOneMessage (c:\Program Files\Microsoft VS Code\resources\app\out\vs\workbench\node\extensionHostProcess.js:678:993)
    	at c:\Program Files\Microsoft VS Code\resources\app\out\vs\workbench\node\extensionHostProcess.js:677:791
    	at c:\Program Files\Microsoft VS Code\resources\app\out\vs\workbench\node\extensionHostProcess.js:98:597
    	at e.fire (c:\Program Files\Microsoft VS Code\resources\app\out\vs\workbench\node\extensionHostProcess.js:99:917)
    	at a (c:\Program Files\Microsoft VS Code\resources\app\out\vs\workbench\node\extensionHostProcess.js:164:787)
    	at Socket.n._socketDataListener (c:\Program Files\Microsoft VS Code\resources\app\out\vs\workbench\node\extensionHostProcess.js:164:1006)
    	at emitOne (events.js:116:13)
    	at Socket.emit (events.js:211:7)
    	at addChunk (_stream_readable.js:263:12)
    	at readableAddChunk (_stream_readable.js:250:11)
    	at Socket.Readable.push (_stream_readable.js:208:10)
    	at Pipe.onread (net.js:594:20)
    
    bug 
    opened by Almenon 7
  • Only summary generated if comment found in function definition line

    Only summary generated if comment found in function definition line

    Full docstring is generated normally, with types inferred from hints.

    def fun(a1: str, a2: dict) -> str:
        """[summary]
    
        :param a1: [description]
        :type a1: str
        :param a2: [description]
        :type a2: dict
        :return: [description]
        :rtype: str
        """
        pass
    

    But if there is a comment after function definition in the same logical line (it may contain physical line breaks) only summary field is generated:

    def fun(a1: str, a2: dict) -> str:  # comment
        """[summary]
        """
        pass
    

    This is usual place for code analysis tools to put pragmas, like pragma: nocover to skip block from test coverage calculation.

    bug 
    opened by zgoda 6
  • Adds support for ''' style triple quotes

    Adds support for ''' style triple quotes

    This works as the quoteStyle is passed from where it is detected in baseFactory throughout all the commands which detect the docstring opener and quotes. These include

    • validEnterActivation
    • docstringIsClosed
    • isMultiString
    • contentText

    I haven't properly updated the unit testing to test for ''' quotes, as it is a very tedious operation that I didn't feel like doing.

    This fixes #49

    opened by modelmat 6
  • Option to turn off type generation entirely

    Option to turn off type generation entirely

    Hi there, great extension! I'm wondering if you'd be willing to add an option which completely disables the generation of type information inside the generated docstrings. I only have experience with sphinx, so I'm not sure how the other docstring types would look, but since my code is using type annotations I tend to write my docstrings like this:

    def foo(some_param: str) -> int:
        """Some function.
        
        :param some_param: the thing that does the other thing
        :return: some meaning of life or whatever
        """
        return 42
    

    (omitting the types entirely, since it's possible to generate the sphinx docs using a plugin such as https://pypi.org/project/sphinx-autodoc-annotation/ or https://github.com/agronholm/sphinx-autodoc-typehints).

    Happy to help with a PR if you're ok with the idea (although, I'd probably need to research if the other docstring types work without type information).

    feature request 
    opened by jdb8 6
  • Custom docstring

    Custom docstring

    feature request

    Consider adding a feature to create custom docstring formats that can be used as user settings. It would be quite useful when there is need to maintain a specific coding style across a project.

    feature request 
    opened by ashwani99 6
  • exceptions may occur multiple times

    exceptions may occur multiple times

    Description when a certain exception is raised on multiple lines within the function, the exception will occur multiple times in the docstring.

    Versions:

    • autoDocstring Version: v0.6.1
    • Operating System: Win 10
    • Vscode Version: 1.73.0

    Original Code

    def TestFxn(arg0: int, arg1: str) -> str:
            if len(arg1) * arg0 > 1000:
                raise ValueError("bad idea... too many chars")
            if not arg1:
                raise ValueError("empty string")
    
            return arg1 * arg0
    

    Expected Result:

    def TestFxn(arg0: int, arg1: str) -> str:
            """_summary_
    
            Args:
                arg0 (int): _description_
                arg1 (str): _description_
    
            Raises:
                ValueError: _description_
    
            Returns:
                str: _description_
            """
    

    Actual Result:

    def TestFxn(arg0: int, arg1: str) -> str:
            """_summary_
    
            Args:
                arg0 (int): _description_
                arg1 (str): _description_
    
            Raises:
                ValueError: _description_
                ValueError: _description_
    
            Returns:
                str: _description_
            """
    
    bug 
    opened by GabrielSchoenweiler 1
  • [feature request] Enable use in types of files besides *.py

    [feature request] Enable use in types of files besides *.py

    I have had the occasion to write python code inside another type of source file. autoDocstring seems only to be enabled for source files with a .py extension. It would be great to be able to specify a list of types in settings.json that would allow other types of files to take advantage of autoDocstring.

    opened by inismor 0
  • Partial forward references in return type causes parameter/args section to be blank

    Partial forward references in return type causes parameter/args section to be blank

    Describe the bug If the return type has a nested forward reference (e.g. -> Iterable["ForwardRef"]), then the whole parameters/args block and return block in the docstring will be omitted. Note: If the whole return type is made a forward reference (e.g. -> "Iterable[ForwardRef]"), or if the partial forward ref is only on a function argument then this does not occur.

    Versions (please complete the following information):

    • autoDocstring Version: v0.6.1
    • Operating System: Windows 10 x64
    • Vscode Version: 1.73.0

    Original Code (with line to generate on):

    from typing import Iterable
    
    def test_func(value: "str") -> Iterable["str"]:
        # generate on this line    
        pass
    

    Expected Result:

    def test_func(value: "str") -> "Iterable[str]":
        """_summary_
    
        Parameters
        ----------
        value : str
            _description_
    
        Returns
        -------
        Iterable[str]
            _description_
        """    
        pass
    

    Actual Result:

    def test_func(value: "str") -> Iterable["str"]:
        """_summary_
        """    
        pass
    

    Debug log: Set autoDocstring.logLevel to "Debug", recreate the bug, and then copy the debug logs from the autoDocstring output channel.

    [INFO 09:27:50.018] Generating Docstring at line: 3
    [INFO 09:27:50.022] Docstring generated:
        """${1:_summary_}
        """
    [INFO 09:27:50.022] Inserting at position: 3 0
    [INFO 09:27:50.050] Successfully inserted docstring
    

    Stack trace: If an error was reported by autoDocstring please copy the stack trace from the autoDocstring output channel.

    
    

    Additional context Add any other context about the problem here.

    bug 
    opened by SuaveFool 0
  • [ERROR 15:25:54.237] Error: connect ECONNREFUSED 127.0.0.1:5000

    [ERROR 15:25:54.237] Error: connect ECONNREFUSED 127.0.0.1:5000

    Describe the bug Generate docstring encounters error on use

    Versions (please complete the following information):

    • autoDocstring Version:
    • Operating System: arch-manjaro
    • Vscode Version: september-22

    Original Code (with line to generate on):

    # generate on this line
    

    Expected Result:

    
    

    Actual Result:

    
    

    Debug log: [INFO 15:24:07.018] ai-docstring was activated [INFO 15:25:54.154] Generating Docstring at line: 99 [INFO 15:25:54.160] Docstring generated: """ add_links_to_tagfiles ${1:AI is creating summary for add_links_to_tagfiles}

    ${2:[extended_summary]}
    """
    

    [INFO 15:25:54.160] Inserting at position: 99 0 [INFO 15:25:54.208] Successfully inserted docstring [ERROR 15:25:54.237] Error: connect ECONNREFUSED 127.0.0.1:5000

    
    

    Stack trace: If an error was reported by autoDocstring please copy the stack trace from the autoDocstring output channel.

    
    

    Additional context Used to work, fresh install.

    bug 
    opened by oweninglese 0
  • Not working properly for class documentation, should add __init__ args & *kwargs to class docstring instead of treating base class as arguments

    Not working properly for class documentation, should add __init__ args & *kwargs to class docstring instead of treating base class as arguments

    Describe the bug Not working properly for class documentation, should add init args & *kwargs to class docstring instead of treating base class as arguments

    Versions (please complete the following information):

    • autoDocstring Version:0.6.2 (tried with earlier versions as well)
    • Operating System:Mac OS Monterey
    • Vscode Version:1.72.1

    Original Code (with line to generate on):

    class A(SuperA, SuperB, SuperC):
        def __init__(apple, bat, cat=None):
            pass
    

    Expected Result:

    class A(SuperA, SuperB, SuperC):
    	"""_summary_
    
    	:param apple: _description_
    	:param bat: _description_
    	:param cat: _description_, defaults to None
    	"""
    	def __init__(apple, bat, cat=None):
    		pass
    
    

    Actual Result:

    class A(SuperA, SuperB, SuperC):
    	"""_summary_
    
    	:param SuperA: _description_
    	:param SuperB: _description_
    	:param SuperC: _description_
    	"""
        def __init__(apple, bat, cat=None):
            pass
    
    

    Debug log: Set autoDocstring.logLevel to "Debug", recreate the bug, and then copy the debug logs from the autoDocstring output channel.

    [INFO 23:37:46.255] Generating Docstring at line: 16
    [INFO 23:37:46.257] Docstring generated:
    	"""${1:_summary_}
    
    	:param SuperA: ${2:_description_}
    	:param SuperB: ${3:_description_}
    	:param SuperC: ${4:_description_}
    	"""
    [INFO 23:37:46.257] Inserting at position: 16 0
    [INFO 23:37:46.263] Successfully inserted docstring
    

    Stack trace: If an error was reported by autoDocstring please copy the stack trace from the autoDocstring output channel.

    
    

    Additional context Add any other context about the problem here.

    bug 
    opened by vijay-jangir 0
  • Easy shortcut key

    Easy shortcut key

    Describe the bug Right now we have to put cursor below the function definition and then press enter and then generate the docstring. The best way is that wherever on the function definition or in the function body we are, if we press shortcut key (e.g., ctrl+shift+2) it should automatically generate the docString in the right place.

    bug 
    opened by lohraspco 0
Releases(v0.6.1)
Owner
Nils Werner
Nils Werner
A tool that allows for versioning sites built with mkdocs

mkdocs-versioning mkdocs-versioning is a plugin for mkdocs, a tool designed to create static websites usually for generating project documentation. mk

Zayd Patel 38 Feb 26, 2022
Flask-Rebar combines flask, marshmallow, and swagger for robust REST services.

Flask-Rebar Flask-Rebar combines flask, marshmallow, and swagger for robust REST services. Features Request and Response Validation - Flask-Rebar reli

PlanGrid 223 Dec 19, 2022
Always know what to expect from your data.

Great Expectations Always know what to expect from your data. Introduction Great Expectations helps data teams eliminate pipeline debt, through data t

Great Expectations 7.8k Jan 05, 2023
A Material Design theme for MkDocs

A Material Design theme for MkDocs Create a branded static site from a set of Markdown files to host the documentation of your Open Source or commerci

Martin Donath 12.3k Jan 04, 2023
Loudchecker - Python script to check files for earrape

loudchecker python script to check files for earrape automatically installs depe

1 Jan 22, 2022
Pydocstringformatter - A tool to automatically format Python docstrings that tries to follow recommendations from PEP 8 and PEP 257.

Pydocstringformatter A tool to automatically format Python docstrings that tries to follow recommendations from PEP 8 and PEP 257. See What it does fo

Daniël van Noord 31 Dec 29, 2022
A Python package develop for transportation spatio-temporal big data processing, analysis and visualization.

English 中文版 TransBigData Introduction TransBigData is a Python package developed for transportation spatio-temporal big data processing, analysis and

Qing Yu 251 Jan 03, 2023
Python Advanced --- numpy, decorators, networking

Python Advanced --- numpy, decorators, networking (and more?) Hello everyone 👋 This is the project repo for the "Python Advanced - ..." introductory

Andreas Poehlmann 2 Nov 05, 2021
This repo contains everything you'll ever need to learn/revise python basics

Python Notes/cheat sheet Simplified notes to get your Python basics right Just compare code and output side by side and feel the rush of enlightenment

Hem 5 Oct 06, 2022
SCTYMN is a GitHub repository that includes some simple scripts(currently only python scripts) that can be useful.

Simple Codes That You Might Need SCTYMN is a GitHub repository that includes some simple scripts(currently only python scripts) that can be useful. In

CodeWriter21 2 Jan 21, 2022
Explicit, strict and automatic project version management based on semantic versioning.

Explicit, strict and automatic project version management based on semantic versioning. Getting started End users Semantic versioning Project version

Dmytro Striletskyi 6 Jan 25, 2022
Python syntax highlighted Markdown doctest.

phmdoctest 1.3.0 Introduction Python syntax highlighted Markdown doctest Command line program and Python library to test Python syntax highlighted cod

Mark Taylor 16 Aug 09, 2022
Speed up Sphinx builds by selectively removing toctrees from some pages

Remove toctrees from Sphinx pages Improve your Sphinx build time by selectively removing TocTree objects from pages. This is useful if your documentat

Executable Books 8 Jan 04, 2023
Generate a backend and frontend stack using Python and json-ld, including interactive API documentation.

d4 - Base Project Generator Generate a backend and frontend stack using Python and json-ld, including interactive API documentation. d4? What is d4 fo

Markus Leist 3 May 03, 2022
Data-science-on-gcp - Source code accompanying book: Data Science on the Google Cloud Platform, Valliappa Lakshmanan, O'Reilly 2017

data-science-on-gcp Source code accompanying book: Data Science on the Google Cloud Platform, 2nd Edition Valliappa Lakshmanan O'Reilly, Jan 2022 Bran

Google Cloud Platform 1.2k Dec 28, 2022
The sarge package provides a wrapper for subprocess which provides command pipeline functionality.

Overview The sarge package provides a wrapper for subprocess which provides command pipeline functionality. This package leverages subprocess to provi

Vinay Sajip 14 Dec 18, 2022
FireEye Related Projects

FireEye FireEye Related Projects Tor-IP-Collector Simple python script that will collect a list of TOR IPs from the SecOps Institute Github and inject

Taran Ulrich 2 Nov 12, 2022
🌱 Complete API wrapper of Seedr.cc

Python API Wrapper of Seedr.cc Table of Contents Installation How I got the API endpoints? Start Guide Getting Token Logging with Username and Passwor

Hemanta Pokharel 43 Dec 26, 2022
Build documentation in multiple repos into one site.

mkdocs-multirepo-plugin Build documentation in multiple repos into one site. Setup Install plugin using pip: pip install git+https://github.com/jdoiro

Joseph Doiron 47 Dec 28, 2022
DocumentPy is a Python application that runs in a command-line interface environment, made for creating HTML documents.

DocumentPy DocumentPy is a Python application that runs in a command-line interface environment, made for creating HTML documents. Usage DocumentPy, a

Lotus 0 Jul 15, 2021