Skip to main content

PyClassParser

PyClassParser

CI PyPI version Python versions License: MIT DeepWiki

PyClassParser is a Python library designed to parse Python class definitions and extract class attributes. Parsing is backed by the standard-library ast module, so it is robust against blank lines, comments, docstrings, methods, nested classes and default values that contain colons. It uses the attrs library for defining the result objects and ensures type safety with attrs-strict.

Features

  • Parses Python class definitions to extract class names and their attributes.
  • Uses the standard-library ast module, so the input must be syntactically valid Python (a SyntaxError is raised otherwise).
  • Uses attrs for the result objects and attrs-strict for type validation.
  • Captures each attribute's name (attr_value), annotation (attr_type) and default value (default_value) when present.
  • Rebuilds a clean, always-valid reconstruction of the imports and class stubs.

Installation with UV:

uv add pyclassparser

Usage

Here's how you can use PyClassParser to parse Python class definitions:

Example Code

Create a Python script, for example example.py:

from pyclassparser import ClassParser

code = """
class MyClass:
    attr1: int
    attr2: str = "default"

class AnotherClass:
    attr3: float
"""
parser = ClassParser(code=code)
print(parser.output)
print(parser.class_data_dict)

Example Output

Running the above script should give you the parsed output of class definitions:

class MyClass:
    attr1: int
    attr2: str = 'default'

class AnotherClass:
    attr3: float

{'MyClass': [ClassATTR(attr_value='attr1', attr_type='int', default_value=None),
             ClassATTR(attr_value='attr2', attr_type='str', default_value="'default'")],
 'AnotherClass': [ClassATTR(attr_value='attr3', attr_type='float', default_value=None)]}

Note: parser.parsed_code is an alias of parser.output. Because the code is re-emitted from the AST, string literals are normalized (e.g. "default" becomes 'default').

What gets parsed

  • Only top-level classes are reported; nested classes are ignored.
  • An attribute is either an annotated assignment (attr: type), where attr_type is the annotation, or a plain assignment (attr = value), where attr_type is None. default_value holds the default as it appears in the source, or None when there is no default.
  • Docstrings, comments, methods and nested classes are ignored.
  • Class-level decorators and PEP 695 type parameters (class Box[T]:) are kept in parsed_code.
  • A duplicate top-level class name raises ValueError.

Running the tests

uv sync
uv run pytest
uv run mypy pyclassparser

Contributing

Contributions are welcome! Please submit a pull request or open an issue to discuss your ideas.

Metadata

Release files for pyclassparser 0.8.4

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for pyclassparser 0.8.4
File Size Uploaded Provenance
pyclassparser-0.8.4.tar.gz 7.8 kB With provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for pyclassparser 0.8.4
File Interpreter ABI Platform
pyclassparser-0.8.4-py3-none-any.whl Python 3 none any Details

Total release size: 13.6 kB

Release files / pyclassparser-0.8.4.tar.gz

Download URL pyclassparser-0.8.4.tar.gz
Size 7.8 kB
Tags Source
SHA-256 checksum
How to use checksums
2a4a46ab32eb4b5d189e4376363d502912f794da027c8f15358a09d7ea0f4e96
BLAKE2b-256 checksum
How to use checksums
2486f25772b137f3f6e202734897dacc4fe2497a19b1729e02a034df898c470b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.13

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jul 4, 2026.

Transparency log

Release files / pyclassparser-0.8.4-py3-none-any.whl

Download URL pyclassparser-0.8.4-py3-none-any.whl
Size 5.8 kB
Tags Python 3
SHA-256 checksum
How to use checksums
ce9a92bb3d98c5cc81eaa3b6bf8338eb8da2ddbfb7a93502dbf42803dfd67ef1
BLAKE2b-256 checksum
How to use checksums
8c8d07554ec72a01c257d8d291f352c2fef96ae07deff989881652b9b15e2c2b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.13

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jul 4, 2026.

Transparency log

Security for pyclassparser 0.8.4

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

Full provenance

All 2 files in this release have been uploaded with provenance metadata.

Select from 2 files

Attestation for pyclassparser-0.8.4.tar.gz

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jul 4, 2026.

Transparency log

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page