Research
Security News
Malicious npm Package Targets Solana Developers and Hijacks Funds
A malicious npm package targets Solana developers, rerouting funds in 2% of transactions to a hardcoded address.
Generate markdown API documentation for Google-style Python docstring.
Getting Started • Features • Documentation • Support • Contribution • Changelog
Lazydocs makes it easy to generate beautiful markdown documentation for your Python API (see this example). It provides a simple command-line interface as well as a Python API to get full-fledged API documentation within seconds based on all of the Google-style docstrings in your code. This markdown documentation can be pushed to Github or integrated into your MkDocs site.
Requirements: Python 3.6+.
pip install lazydocs
To generate Markdown-based API documentation for your Python project, simply execute:
lazydocs path/to/your/package
The path can be either a python package (folder) or a specific script. You can also specify one or multiple module-, class- or function-imports:
lazydocs my_package.AwesomeClass
With the default configuration, the Markdown documentation will be generated inside the ./docs
folder in your working directory. You can find additional configuration options in the documentation section.
This project is maintained by Benjamin Räthlein, Lukas Masuch, and Jan Kalkan. Please understand that we won't be able to provide individual support via email. We also believe that help is much more valuable if it's shared publicly so that more people can benefit from it.
Type | Channel |
---|---|
🚨 Bug Reports | |
🎁 Feature Requests | |
👩💻 Usage Questions | |
🗯 General Discussion | |
❓ Other Requests |
Source Code Linking • API Overview • MKDocs Integration • Docstyle Validation • Print to Console
Lazydocs is capable to insert a badge on the right side of every module, class, method or function with a link the correct source-code file and line number. The default configuration will create relative paths to navigate within the Github Repo. This is useful if the documentation is hosted within the same repository as the source-code. If, the documentation is hosted outside of the Github repository, it is recommended to set the src-base-url
:
lazydocs --src-base-url="https://github.com/example/my-project/blob/main/" my_package
The src-base-url
is used as a prefix for all source-code linkings in the documentation.
An API overview might be very useful in case your project has a large number modules, classes and functions. You can specify an overview-file
with the lazydocs command to activate the generation of an API overview:
lazydocs --overview-file="README.md" my_package
The API overview will be written as markdown to the specified file with separated lists for all modules, classes, and functions of your project:
The markdown documentation generated by lazydocs can be easily integrated into your mkdocs documentation site:
api-docs
) inside your mkdocs documentation. We recommend to use the overview-file
option and set the source-code URL via src-base-url
, otherwise the source-code linking would not work:lazydocs \
--output_path="./docs/api-docs" \
--overview-file="README.md" \
--src-base-url="https://github.com/example/my-project/blob/main/" \
my_package
Install and apply the awesome-pages mkdocs plugin. This enables mkdocs to automatically discover and include all markdown files. The alternative would be to manually include all generated markdown files in the navigation section of the mkdocs.yaml
. In order to use the awesome-pages plugin you need to 1) install the plugin via pip 2) Include it in the plugin section mkdocs.yaml
and remove the navigation section (needs to be handled with .pages
files).
If you used the overview-file
option, a .pages
file will be automatically created. You can also manually create the .pages
file within the api-docs subfolder (e.g. api-docs
) with the following content:
title: API Reference
nav:
- Overview: README.md
- ...
Once you run or deploy your mkdocs documentation, you will see the API Reference section with all of your API markdown documentation.
Lazydocs can only parse valid Google-style docstring. To prevent the generation of invalid markdown documentation, you can use the validate
flag:
layzdocs --validate my_package
This will run pydocstyle on your docstring and cancel the generation if an issue is found.
To get the markdown documentation as console output instead of the file generation, specify stdout
as the output-path
:
layzdocs --output-path=stdout my_package
laydocs [OPTIONS] PATHS...
Arguments:
PATHS...
: Selected paths or imports for markdown generation. [required]Options:
--output-path TEXT
: The output path for the creation of the markdown files. Set this to stdout
to print all markdown to stdout. [default: ./docs/]--src-base-url TEXT
: The base repo link used as prefix for all source links. Should also include the branch name.--overview-file TEXT
: Filename of overview file. If not provided, no API overview file will be generated.--remove-package-prefix / --no-remove-package-prefix
: If True
, the package prefix will be removed from all functions and methods. [default: True]--ignored-modules TEXT
: A list of modules that should be ignored. [default: ]--watermark / --no-watermark
: If True
, add a watermark with a timestamp to bottom of the markdown files. [default: True]--validate / --no-validate
: If True
, validate the docstrings via pydocstyle. Requires pydocstyle to be installed. [default: False]--install-completion
: Install completion for the current shell.--show-completion
: Show completion for the current shell, to copy it or customize the installation.--help
: Show this message and exit.Lazydocs can also be used and integrated via its Python API. For example, to generate markdown for an arbitrary Python import or object:
from lazydocs import MarkdownGenerator
generator = MarkdownGenerator()
# Select a module (e.g. my_module) to generate markdown documentation
markdown_docs = generator.import2md(my_module)
To programmatically generate all markdown documentation files you can use generate_docs
:
from lazydocs import generate_docs
# The parameters of this function correspond to the CLI options
generate_docs(["my_module"], output_path="./docs")
The full Python API documentation can be found here (generated via lazydocs).
Requirements: Docker and Act are required to be installed on your machine to execute the build process.
To simplify the process of building this project from scratch, we provide build-scripts - based on universal-build - that run all necessary steps (build, check, test, and release) within a containerized environment. To build and test your changes, execute the following command in the project root folder:
act -b -j build
Refer to our contribution guides for more detailed information on our build scripts and development process.
Licensed MIT. Created and maintained with ❤️ by developers from Berlin.
FAQs
Generate markdown API documentation for Google-style Python docstring.
We found that lazydocs demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Research
Security News
A malicious npm package targets Solana developers, rerouting funds in 2% of transactions to a hardcoded address.
Security News
Research
Socket researchers have discovered malicious npm packages targeting crypto developers, stealing credentials and wallet data using spyware delivered through typosquats of popular cryptographic libraries.
Security News
Socket's package search now displays weekly downloads for npm packages, helping developers quickly assess popularity and make more informed decisions.