docsource: Parse, check and update doc-string documentation
docsource parses Python documentation strings (a.k.a. doc-string) for (data) classes and functions.
A doc-string is broken down into the following components:
- A short description, which is the first block of text in the documentation string, and ends with a double newline or a parameter block.
- A long description, which is the optional block of text following the short description, and ends with a parameter block.
- A parameter block of named parameter and description string pairs in ReST-style, each declared with
param. - A
returnsdeclaration, which adds explanation to the return value. - A
raisesdeclaration, which adds explanation to the exception type raised by the function on error.
class SampleClass:
def instance_method(self, a: str, b: int | None) -> str:
"""
Short description of an instance method.
:param a: Short description for `a`.
:param b: Short description for `b`.
:returns: A return value.
:raise TypeError: A type exception rarely raised.
:raise ValueError: A value exception rarely raised.
:raise CustomException: A custom exception.
"""
return ""
When the doc-string is attached to a data class, it is understood as the documentation string of the class __init__ method.
Compliance
docsource verifies if
- parameters listed in the function doc-string have corresponding parameters in the function signature,
- parameters declared in a function signature have corresponding doc-string entries (strict mode only),
- data-class members listed in the function doc-string have corresponding member variables in the data-class definition,
- members declared in a data-class have corresponding doc-string entries (strict mode only).
Enumerations
Python's own doc-string mechanism doesn't allow attaching a description to enumeration members. However, documentation toolchains such as Sphinx's autodoc support this with a string literal immediately following the enumeration member value assignment:
@enum.unique
class EnumType(enum.Enum):
ENABLED = "enabled"
"Documents the enumeration member `ENABLED`."
DISABLED = "disabled"
"Documents the enumeration member `DISABLED`."
docsource can parse source code with Python's ast module to extract these description text strings.
Documentation style
docsource can normalize code documentation by reading source code (with Python's ast), identifying doc-string literals, parsing doc-string text, and producing a standardized doc-string with short description, and ReST-style parameter, return value and exception declarations.
Refer to the source
- The function
parse_typeparses a ReST-style doc-string attached to a class or function into doc-string components, encapsulated in the classDocstring. - The function
parse_textparses raw doc-string text into its components. check_docstringverifies data-class and function doc-string text.enum_labelsextracts textual description for enumeration members.update_docstringstandardizes doc-string literals in Python source code.
Metadata
Release files for docsource 0.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| docsource-0.1.0.tar.gz | 12.9 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| docsource-0.1.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 24.8 kB
Release files / docsource-0.1.0.tar.gz
| Download URL | docsource-0.1.0.tar.gz |
|---|---|
| Size | 12.9 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
adbdc8204924201591e49a930974cf639b598e6c1e41cc3da837857ca183d8be
|
|
BLAKE2b-256 checksum How to use checksums |
2d4a9bde6b4e09e8e5dcf7de35e11d89e92c32be3cb229001c2d68b6e8bf9ae9
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.13.8
|
Release files / docsource-0.1.0-py3-none-any.whl
| Download URL | docsource-0.1.0-py3-none-any.whl |
|---|---|
| Size | 11.9 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
cfb1cecb177a4baadd6b85c88e7140ad1a2056de37f29b0188dc6f5ab9a4e603
|
|
BLAKE2b-256 checksum How to use checksums |
eea6e090addae43be66a48ba0a2afb4d1071a75ba0df06a6162c497e5b62579e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.13.8
|