Parse Python docstrings in reST, Google and Numpydoc format
Project Links
Meta
Author: Marcin Kurczewski
Requires Python: >=3.8
Classifiers
Development Status
- 4 - Beta
Environment
- Other Environment
Intended Audience
- Developers
License
- OSI Approved :: MIT License
Natural Language
- English
Operating System
- OS Independent
Programming Language
- Python :: 3.8
- Python :: 3.9
- Python :: 3.10
- Python :: 3.11
- Python :: 3.12
- Python :: 3.13
Topic
- Documentation :: Sphinx
- Software Development :: Libraries :: Python Modules
- Text Processing :: Markup
docstring_parser
Parse Python docstrings. Currently support ReST, Google, Numpydoc-style and Epydoc docstrings.
Example usage:
>>> from docstring_parser import parse
>>>
>>>
>>> docstring = parse(
... '''
... Short description
...
... Long description spanning multiple lines
... - First line
... - Second line
... - Third line
...
... :param name: description 1
... :param int priority: description 2
... :param str sender: description 3
... :raises ValueError: if name is invalid
... ''')
>>>
>>> docstring.long_description
'Long description spanning multiple lines\n- First line\n- Second line\n- Third line'
>>> docstring.params[1].arg_name
'priority'
>>> docstring.raises[0].type_name
'ValueError'
Read API Documentation.
Installation
Installation using pip
pip install docstring_parser
# or if you want to install it in a virtual environment
python -m venv venv # create environment
source venv/bin/activate # activate environment
python -m pip install docstring_parser
Installation using conda
- Download and install miniconda or anaconda
- Install the package from the conda-forge channel via:
conda install -c conda-forge docstring_parser
- or create a new conda environment via
conda create -n my-new-environment -c conda-forge docstring_parser
Contributing
To set up the project:
git clone https://github.com/rr-/docstring_parser.git
cd docstring_parser
python -m venv venv # create environment
source venv/bin/activate # activate environment
pip install -e ".[dev]" # install as editable
pre-commit install # make sure pre-commit is setup
To run tests:
source venv/bin/activate
pytest
Jul 21, 2025
0.17.0
Jul 11, 2025
0.17.0rc1
Mar 15, 2024
0.16
Sep 05, 2022
0.15
Apr 27, 2022
0.14.1
Apr 25, 2022
0.14
Nov 17, 2021
0.13
Oct 15, 2021
0.12
Sep 30, 2021
0.11
Jul 26, 2021
0.10
Jul 21, 2021
0.9.1
Jul 21, 2021
0.9
May 26, 2021
0.8.1
May 26, 2021
0.8
Sep 19, 2020
0.7.3
Jul 15, 2020
0.7.2
Apr 28, 2020
0.7.1
Apr 27, 2020
0.7
Mar 06, 2020
0.6.1
Jan 19, 2020
0.6
Dec 24, 2019
0.5
Dec 23, 2019
0.4
Mar 29, 2019
0.3
Mar 28, 2019
0.2
Apr 17, 2018
0.1