Metadata-Version: 2.4
Name: extended-data-types
Version: 6.2.1
Summary: Extended functionality for data types
Project-URL: Documentation, https://extendeddata.dev/core/data-types/
Project-URL: Issues, https://github.com/jbcom/extended-data-library/issues
Project-URL: Source, https://github.com/jbcom/extended-data-library/tree/main/packages/extended-data-types
Project-URL: Changelog, https://github.com/jbcom/extended-data-library/blob/main/packages/extended-data-types/CHANGELOG.md
Author-email: Jon Bogaty <jon@jonbogaty.com>
Maintainer-email: Jon Bogaty <jon@jonbogaty.com>
License: MIT
Keywords: data-types,python3,utilities
Classifier: Development Status :: 5 - Production/Stable
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Programming Language :: Python :: 3.14
Classifier: Typing :: Typed
Requires-Python: >=3.10
Requires-Dist: deepmerge>=2.0
Requires-Dist: gitpython>=3.1.0
Requires-Dist: inflection>=0.5.1
Requires-Dist: num2words>=0.5.14
Requires-Dist: orjson>=3.10.7
Requires-Dist: python-hcl2>=4.3.4
Requires-Dist: pyyaml>=6.0.1
Requires-Dist: ruamel-yaml>=0.18.0
Requires-Dist: sortedcontainers>=2.4.0
Requires-Dist: tomlkit>=0.13.2
Requires-Dist: validators>=0.22.0
Requires-Dist: wrapt>=1.16.0
Provides-Extra: docs
Requires-Dist: docutils>=0.17; extra == 'docs'
Requires-Dist: myst-parser>=3.0.1; extra == 'docs'
Requires-Dist: sphinx-autodoc-typehints>=2.0.0; extra == 'docs'
Requires-Dist: sphinx-rtd-theme>=2.0.0; extra == 'docs'
Requires-Dist: sphinx>=7.0; extra == 'docs'
Provides-Extra: mcp
Requires-Dist: mcp>=1.26.0; (python_version >= '3.10') and extra == 'mcp'
Requires-Dist: pyjwt[crypto]>=2.12.0; (python_version >= '3.10') and extra == 'mcp'
Requires-Dist: python-multipart>=0.0.26; (python_version >= '3.10') and extra == 'mcp'
Provides-Extra: tests
Requires-Dist: coverage[toml]>=7.6.0; extra == 'tests'
Requires-Dist: hypothesis>=6.0.0; extra == 'tests'
Requires-Dist: pytest-asyncio>=0.23.0; extra == 'tests'
Requires-Dist: pytest-cov>=5.0.0; extra == 'tests'
Requires-Dist: pytest-mock>=3.14.0; extra == 'tests'
Requires-Dist: pytest-xdist>=3.6.1; extra == 'tests'
Requires-Dist: pytest>=8.2.2; extra == 'tests'
Provides-Extra: typing
Requires-Dist: mypy>=1.0.0; extra == 'typing'
Requires-Dist: sortedcontainers-stubs>=2.4.2; extra == 'typing'
Requires-Dist: types-pyyaml>=6.0.12.20240724; extra == 'typing'
Description-Content-Type: text/markdown

# Extended Data Types

Typed utilities for serialization, repository-aware file workflows, YAML and
HCL interoperability, and automation-friendly transformation pipelines.

[![CI Status](https://github.com/jbcom/extended-data-library/actions/workflows/ci.yml/badge.svg)](https://github.com/jbcom/extended-data-library/actions/workflows/ci.yml)
[![PyPI Package latest release](https://img.shields.io/pypi/v/extended-data-types.svg)](https://pypi.org/project/extended-data-types/)
[![Supported versions](https://img.shields.io/pypi/pyversions/extended-data-types.svg)](https://pypi.org/project/extended-data-types/)

## Supported Python Versions

`extended-data-types` supports Python `3.10`, `3.11`, `3.12`, `3.13`, and
`3.14`.

## Public API Model

- `extended_data_types` is the backward-compatible root convenience surface.
- `extended_data_types.transformations.numbers` and
  `extended_data_types.transformations.strings` expose the richer namespaced
  transformation APIs.
- `extended_data_types.yaml_utils` is the documented advanced surface for
  tagged YAML values and lower-level YAML helpers.

## Key Features

- Serialization helpers for YAML, JSON, TOML, HCL, and Base64.
- Repository-aware file helpers for reading, writing, decoding, and path resolution.
- Map, list, and type utilities for normalization and deep composition.
- String and number transformations for case conversion, words, ordinals, and fractions.
- Predictable read/decode/write boundaries for larger automation and agentic systems.

## Quick Start

```python
from extended_data_types import decode_file, encode_hcl2, encode_yaml, read_file, write_file

config = {"service": "api", "enabled": True}
write_file("config.yaml", config, tld=".")

yaml_text = read_file("config.yaml", tld=".")
decoded = decode_file(yaml_text, file_path="config.yaml")

terraform = {"locals": [{"region": "us-east-1"}]}
hcl_text = encode_hcl2(terraform)

print(encode_yaml(decoded))
print(hcl_text)
```

## Documentation

- Package docs: [extendeddata.dev/core/data-types](https://extendeddata.dev/core/data-types/)
- Monorepo docs: [extendeddata.dev](https://extendeddata.dev)
- Examples: [packages/extended-data-types/examples](https://github.com/jbcom/extended-data-library/tree/main/packages/extended-data-types/examples)

## Contributing

Contributions are welcome. See the shared contributing docs in
[docs/development/contributing.md](https://github.com/jbcom/extended-data-library/blob/main/docs/development/contributing.md).

## Project Links

- [PyPI](https://pypi.org/project/extended-data-types/)
- [GitHub](https://github.com/jbcom/extended-data-library/tree/main/packages/extended-data-types)
- [Documentation](https://extendeddata.dev/core/data-types/)
- [Changelog](https://github.com/jbcom/extended-data-library/blob/main/packages/extended-data-types/CHANGELOG.md)
