Metadata-Version: 2.1
Name: docify
Version: 1.0.0
Summary: A script to add docstrings to Python type stubs using reflection
Author-Email: AThePeanut4 <andre.toerien8@gmail.com>
License: MIT
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Topic :: Software Development
Classifier: Topic :: Utilities
Project-URL: Repository, https://github.com/AThePeanut4/docify
Requires-Python: >=3.8
Requires-Dist: libcst>=1.1.0
Requires-Dist: tqdm>=4.66.4
Description-Content-Type: text/markdown

# docify

A script to add docstrings to Python type stubs using reflection

## Features

- Uses [LibCST](https://github.com/Instagram/LibCST) to parse and modify the stub file
- Dynamically imports the actual module to get the runtime docstring
- Handles most `sys.version` and `sys.platform` conditional blocks, will only add docstrings to the correct branch
- Able to modify files in-place with `-i` or `--in-place`
- Won't overwrite existing docstrings
- With `-b` or `--builtins-only`, will only add docstrings for modules found in `sys.builtin_module_names` (stdlib modules written in C).
- With `--if-needed`, will only add docstrings if the object's (Python) source code is unavailable. Useful for language servers like [basedpyright](https://github.com/DetachHead/basedpyright) that are able to extract docstrings from source code.

## Requirements

- Python 3.8+
- [LibCST](https://github.com/Instagram/LibCST), and [tqdm](https://github.com/tqdm/tqdm) for a progress bar if running without `-q`

## Usage

```
docify.py [-h] [-v] [-q] [-b] [--if-needed] (-i | -o OUTPUT_DIR) INPUT_DIR

A script to add docstrings to Python type stubs using reflection

positional arguments:
  INPUT_DIR             directory to read stubs from

options:
  -h, --help            show this help message and exit
  -v, --verbose         increase verbosity
  -q, --quiet           decrease verbosity
  -b, --builtins-only   only add docstrings to modules found in `sys.builtin_module_names`
  --if-needed           only add a docstring if the object's source code cannot be found
  -i, --in-place        modify stubs in-place
  -o OUTPUT_DIR, --output OUTPUT_DIR
                        directory to write modified stubs to
```
