python-introspect
Extensible analysis of callable signatures, dataclass fields, type hints, and docstrings, plus signature-derived callable declaration projection.
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.
Use callable_declaration_kwargs when declaration identity should omit
keyword arguments equal to their signature defaults. The caller supplies value
equality so array, lazy, or other framework-specific values keep their owning
semantics.
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.
Parameter declarations in 0.2
UnifiedParameterAnalyzer now returns the original ParameterInfo declarations
from SignatureAnalyzer. UnifiedParameterInfo, its source_type tag, and
analyze_nested were removed. Use analyze and the declared param_type for
parameter topology.
ParameterInfo retains its five public fields, constructor and _replace
operation, and is now a frozen declaration rather than a tuple. Tuple unpacking
and NamedTuple helpers are no longer supported. Dataclass descriptions are
derived on first help access; value/default overlays preserve that deferred
source, and renaming preserves the original field's help. Callable descriptions
still participate eagerly in inferred parameter types. A presentation extraction
error yields absent help without discarding valid types/defaults. Factory errors
remain uncached and retryable.
Metadata
Release files for python-introspect 0.2.7
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| python_introspect-0.2.7.tar.gz | 57.9 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| python_introspect-0.2.7-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 101.7 kB
Release files / python_introspect-0.2.7.tar.gz
| Download URL | python_introspect-0.2.7.tar.gz |
|---|---|
| Size | 57.9 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
06c2a56e3425d5d82489360b76f13b70315a0b52ca491b5f206fcc5e0fee26e8
|
|
BLAKE2b-256 checksum How to use checksums |
2b874203ebecc7a54aeaf6b640415ffb94ff6ca3cc700b5337d2ddd7a05aeaa0
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.15
|
Release files / python_introspect-0.2.7-py3-none-any.whl
| Download URL | python_introspect-0.2.7-py3-none-any.whl |
|---|---|
| Size | 43.9 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
b4f6b211e045f48e42ac2aae2d99d503f816fdd889476660cf3ba468e62edca5
|
|
BLAKE2b-256 checksum How to use checksums |
2968eb2bb1ab1ad8fdb4f8f4dbe0236b5072a74bfe5b79fbdd1c8bca6a69326c
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.15
|