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
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
Markdown documentation generator from Google docstrings

mkgendocs A Python package for automatically generating documentation pages in markdown for Python source files by parsing Google style docstring. The

Davide Nunes 44 Dec 18, 2022
Valentine-with-Python - A Python program generates an animation of a heart with cool texts of your loved one

Valentine with Python Valentines with Python is a mini fun project I have coded.

Niraj Tiwari 4 Dec 31, 2022
Generates, filters, parses, and cleans data regarding the financial disclosures of judges in the American Judicial System

This repository contains code that gets data regarding financial disclosures from the Court Listener API main.py: contains driver code that interacts

Ali Rastegar 2 Aug 6, 2022
Type hints support for the Sphinx autodoc extension

sphinx-autodoc-typehints This extension allows you to use Python 3 annotations for documenting acceptable argument types and return value types of fun

Alex Grönholm 462 Dec 29, 2022
A powerful Sphinx changelog-generating extension.

What is Releases? Releases is a Python (2.7, 3.4+) compatible Sphinx (1.8+) extension designed to help you keep a source control friendly, merge frien

Jeff Forcier 166 Dec 29, 2022
Run `black` on python code blocks in documentation files

blacken-docs Run black on python code blocks in documentation files. install pip install blacken-docs usage blacken-docs provides a single executable

Anthony Sottile 460 Dec 23, 2022
A Python module for creating Excel XLSX files.

XlsxWriter XlsxWriter is a Python module for writing files in the Excel 2007+ XLSX file format. XlsxWriter can be used to write text, numbers, formula

John McNamara 3.1k Dec 29, 2022
A python package to import files from an adjacent folder

EasyImports About EasyImports is a python package that allows users to easily access and import files from sister folders: f.ex: - Project - Folde

null 1 Jun 22, 2022
Loudchecker - Python script to check files for earrape

loudchecker python script to check files for earrape automatically installs depe

null 1 Jan 22, 2022
An MkDocs plugin to export content pages as PDF files

MkDocs PDF Export Plugin An MkDocs plugin to export content pages as PDF files The pdf-export plugin will export all markdown pages in your MkDocs rep

Terry Zhao 266 Dec 13, 2022
sphinx builder that outputs markdown files.

sphinx-markdown-builder sphinx builder that outputs markdown files Please ★ this repo if you found it useful ★ ★ ★ If you want frontmatter support ple

Clay Risser 144 Jan 6, 2023
Zero configuration Airflow plugin that let you manage your DAG files.

simple-dag-editor SimpleDagEditor is a zero configuration plugin for Apache Airflow. It provides a file managing interface that points to your dag_fol

null 30 Jul 20, 2022
In this Github repository I will share my freqtrade files with you. I want to help people with this repository who don't know Freqtrade so much yet.

My Freqtrade stuff In this Github repository I will share my freqtrade files with you. I want to help people with this repository who don't know Freqt

Simon Kebekus 104 Dec 31, 2022
Parser manager for parsing DOC, DOCX, PDF or HTML files

Parser manager Description Parser gets PDF, DOC, DOCX or HTML file via API and saves parsed data to the database. Implemented in Ruby 3.0.1 using Acti

Эдем 4 Dec 4, 2021
epub2sphinx is a tool to convert epub files to ReST for Sphinx

epub2sphinx epub2sphinx is a tool to convert epub files to ReST for Sphinx. It uses Pandoc for converting HTML data inside epub files into ReST. It cr

Nihaal 8 Dec 15, 2022
An open source utility for creating publication quality LaTex figures generated from OpenFOAM data files.

foamTEX An open source utility for creating publication quality LaTex figures generated from OpenFOAM data files. Explore the docs » Report Bug · Requ

null 1 Dec 19, 2021
This program has been coded to allow the user to rename all the files in the entered folder.

Bulk_File_Renamer This program has been coded to allow the user to rename all the files in the entered folder. The only required package is "termcolor

null 1 Jan 6, 2022
Read write method - Read files in various types of formats

一个关于所有格式文件读取的方法 1。 问题描述: 各种各样的文件格式,读写操作非常的麻烦,能够有一种方法,可以整合所有格式的文件,方便用户进行读取和写入。 2

null 2 Jan 26, 2022