Skip to main content

python-introspect

Extensible analysis of callable signatures, dataclass fields, type hints, and docstrings.

Python 3.10+ PyPI version

Quick start

from python_introspect import SignatureAnalyzer

def resize(image, factor: float = 0.5, *, preserve_range: bool = True):
    """Resize an image.

    Args:
        image: Input image.
        factor: Scale factor.
        preserve_range: Preserve the input intensity range.
    """

parameters = SignatureAnalyzer().analyze(resize)

for name, info in parameters.items():
    print(name, info.param_type, info.default_value, info.is_required)

analyze is the unified entry point for functions, methods, classes, dataclass types, and instances. It returns a mapping of names to ParameterInfo records.

Extension points

Use register_namespace_provider to contribute names used while resolving forward references and register_type_resolver to unwrap application proxy types. Wrappers can declare their user-facing inspection target through the signature-target helpers in python_introspect.signature_analyzer.

Installation

python -m pip install python-introspect

The runtime depends on metaclass-registry. Repository and issues: OpenHCSDev/python-introspect.

Documentation

The maintained sources are in docs/source. Documentation changes are checked by the repository's documentation workflow; the local warnings-as-errors build command is documented in development.rst.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

python_introspect-0.1.6.tar.gz (36.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

python_introspect-0.1.6-py3-none-any.whl (29.9 kB view details)

Uploaded Python 3

File details

Details for the file python_introspect-0.1.6.tar.gz.

File metadata

  • Download URL: python_introspect-0.1.6.tar.gz
  • Upload date:
  • Size: 36.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/7.0.0 CPython/3.12.13

File hashes

Hashes for python_introspect-0.1.6.tar.gz
Algorithm Hash digest
SHA256 29c1e1365c594507afb6bf24d16a61c2f5f3a7c949a7b4bfba90ce5122657273
MD5 d53700fb01942db1bb7cd0e1d30e2dbe
BLAKE2b-256 804be5a6418023d4fe7ea88f79989f7c331120b26a69b9fa93fad1f00bef2262

See more details on using hashes here.

File details

Details for the file python_introspect-0.1.6-py3-none-any.whl.

File metadata

File hashes

Hashes for python_introspect-0.1.6-py3-none-any.whl
Algorithm Hash digest
SHA256 8288bb8fe14cf9f03c00a8009731223940128f43b2d8767943cd72a44b53d6f8
MD5 16d167fc66952a263503d45b6b3dfef5
BLAKE2b-256 3a51fadae75a8bb3cd6459fee80b6bf92ab9c739ba9e92317bc3a9d99e88e118

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page