Skip to main content

fields-metadata

A Python library for extracting comprehensive field metadata from dataclasses and Pydantic models, with support for derived fields, custom annotations, filtering/sorting/grouping via therismos, and recursive traversal of nested structures.

Installation

pip install fields-metadata
pip install "fields-metadata[pydantic]"  # with Pydantic support

Quick Start

from dataclasses import dataclass
from typing import Annotated
from annotated_types import DocInfo, Ge
from fields_metadata import MetadataExtractor, HumanReadableId

@dataclass
class Person:
    name: Annotated[str, HumanReadableId(), DocInfo("Full name")]
    age: Annotated[int, Ge(0)]
    email: str | None = None

extractor = MetadataExtractor()
metadata = extractor.extract(Person)

print(metadata["name"].doc)        # "Full name"
print(metadata["age"].numeric)     # True
print(metadata["email"].optional)  # True

Full documentation: fields-metadata.readthedocs.io

License

MIT

Release files for fields-metadata 1.9.0

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

Source distribution (sdist)

Source distribution for fields-metadata 1.9.0
File Size Uploaded
fields_metadata-1.9.0.tar.gz 44.0 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for fields-metadata 1.9.0
File Interpreter ABI Platform
fields_metadata-1.9.0-py3-none-any.whl Python 3 none any Details

Total release size: 63.4 kB

Release files / fields_metadata-1.9.0.tar.gz

Download URL fields_metadata-1.9.0.tar.gz
Size 44.0 kB
Tags Source
SHA-256 checksum
How to use checksums
3da4ec3e187d954bf55daed84007ebc2cacf1525386d6ed5c1563fa19bb96cb2
BLAKE2b-256 checksum
How to use checksums
f0fb846219ec93d966eb17eedddf1595f2364a91c4a04384d96eab9b564d5fdf
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.11.25 {"installer":{"name":"uv","version":"0.11.25","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

Release files / fields_metadata-1.9.0-py3-none-any.whl

Download URL fields_metadata-1.9.0-py3-none-any.whl
Size 19.4 kB
Tags Python 3
SHA-256 checksum
How to use checksums
5102e375b13003de00700f845af5e6fbf95b919f82a23d4f6f66ca4397d0bde8
BLAKE2b-256 checksum
How to use checksums
65e1185fa65efcee1b6fe0784ad7fc2682af2edeadcce92d152a8cee41966ba5
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.11.25 {"installer":{"name":"uv","version":"0.11.25","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

Release history Release notifications | RSS feed

This release

1.9.0 This release

2 release files

1.8.0

2 release files

1.7.0

2 release files

1.6.0

2 release files

1.5.1

2 release files

1.5.0

2 release files

1.4.1

2 release files

1.4.0

2 release files

1.3.3

2 release files

1.3.2

2 release files

1.3.1

2 release files

1.3.0

2 release files

1.2.0

2 release files

1.1.0

2 release files

1.0.0

2 release files

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