Skip to main content

doc string generator

Project description

fml_doc_gen

Documentation Documentation Status
Testing codecov
Package PyPI Latest Release
Downloads PyPI Downloads
Supported Versions Python Version

Authors

  • Farhan Bin Faisal
  • Michael Suriawan
  • Lukman Lateef

Summary

fml_doc_gen is a Python package designed to simplify the process of writing docstrings for user-defined functions. It offers an automated way to generate docstring templates or fully detailed docstrings through integration with the OpenAI API. By streamlining documentation, it helps developers save time, improve code readability, and maintain consistent documentation standards across projects.

Installation

$ pip install fml_doc_gen 

Usage

generate_docstring_template can be used to generate docstring template for your function shown below:

import fml_doc_gen
from fml_doc_gen.fml_doc_gen import generate_docstring_template

def square(base: int, pow: int) -> int:
    return base ** pow

print(generate_docstring_template(square, output_file=None))

OpenAI Dependency:

fml_doc_gen requires an OpenAI API key to generate docstrings. You can set your API key using the OPENAI_API_KEY environment variable. Check our our documentation here for more information.

Functions Included

  • generate_docstring_template(func: Callable, output_file: str, auto_generate: bool = False) -> str: The main end-user function that generates either a docstring template with placeholders or a fully detailed docstring if auto_generate is set to True.

  • read_user_function(func: Callable) -> FunctionDTO: Reads and extracts the signature and existing docstring (if any) of a given user-defined function.

  • generate_template(func_signature: str) -> str: Creates a docstring template with placeholders for parameters, return values, and a brief description based on the function signature.

  • write_docstring_to_file(docstring: str, output_file: str) -> None: Writes the generated docstring to a specified file.

Python Ecosystem

fml_doc_gen fits into the Python ecosystem as a specialized tool for automating function documentation. While other Python packages like sphinx and pydoc exist for generating documentation from docstrings, there are no widely known packages that automatically generate docstrings themselves using AI. This makes fml_doc_gen unique in its approach by leveraging OpenAI's capabilities to produce high-quality docstrings with minimal effort from the developer.

If you are aware of a similar tool, feel free to contribute to our documentation by suggesting it!

Discussion and Improvements

Found a bug? or have an idea on how to improve fml_doc_gen further? Feel free to open an issue with the appropriate label (bug or features) under the issue section here.

Running Tests

To run tests and check code coverage, use the following command in the project root:

poetry run pytest --cov=fml_doc_gen --cov-report=term-missing tests/

Contributing

Interested in contributing? Check out the contributing guidelines. Please note that this project is released with a Code of Conduct. By contributing to this project, you agree to abide by its terms.

License

fml_doc_gen was created by Farhan Faisal, Lukman Lateef, and Michael Suriawan. It is licensed under the terms of the MIT license.

Credits

fml_doc_gen was created with cookiecutter and the py-pkgs-cookiecutter template.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

fml_doc_gen-3.1.0.tar.gz (6.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

fml_doc_gen-3.1.0-py3-none-any.whl (9.0 kB view details)

Uploaded Python 3

File details

Details for the file fml_doc_gen-3.1.0.tar.gz.

File metadata

  • Download URL: fml_doc_gen-3.1.0.tar.gz
  • Upload date:
  • Size: 6.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.8

File hashes

Hashes for fml_doc_gen-3.1.0.tar.gz
Algorithm Hash digest
SHA256 530a36c7e6519ec1cb022e7ec27514f6170d2017c89a261f29d4077379813dda
MD5 557cfddf4c57965c8d50e7ee4cc8dbcf
BLAKE2b-256 09be29b6a1e74ecfda301f8ae6c98aa7abc4d288a70bc0ed4439e598130041fd

See more details on using hashes here.

File details

Details for the file fml_doc_gen-3.1.0-py3-none-any.whl.

File metadata

  • Download URL: fml_doc_gen-3.1.0-py3-none-any.whl
  • Upload date:
  • Size: 9.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.8

File hashes

Hashes for fml_doc_gen-3.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 17695d3a43bbcde98ce8df3fc2d50d6ac0d7f5c5f10e4f5ffd1d1b7a03a81a0a
MD5 c7be1a350ffd5bb809b8da2cb78299c4
BLAKE2b-256 3bda39317584811915dfd7b73ac69145696ee431bb24a9830cc827fef7f82974

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page