Metadata-Version: 2.4
Name: philiprehberger-schema-infer
Version: 0.1.1
Summary: Infer JSON schemas from sample data
Project-URL: Homepage, https://github.com/philiprehberger/py-schema-infer#readme
Project-URL: Repository, https://github.com/philiprehberger/py-schema-infer
Project-URL: Issues, https://github.com/philiprehberger/py-schema-infer/issues
Project-URL: Changelog, https://github.com/philiprehberger/py-schema-infer/blob/main/CHANGELOG.md
Author: Philip Rehberger
License-Expression: MIT
License-File: LICENSE
Keywords: generate,infer,json,schema,validation
Classifier: Development Status :: 3 - Alpha
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: Typing :: Typed
Requires-Python: >=3.10
Description-Content-Type: text/markdown

# philiprehberger-schema-infer

Infer JSON schemas from sample data.

## Installation

```bash
pip install philiprehberger-schema-infer
```

## Usage

```python
from philiprehberger_schema_infer import infer, infer_type, merge_schemas

samples = [
    {"name": "Alice", "age": 30, "active": True},
    {"name": "Bob", "age": 25, "email": "bob@test.com"},
]

schema = infer(samples)
# {
#   "type": "object",
#   "properties": {
#     "name": {"type": "string"},
#     "age": {"type": "integer"},
#     "active": {"type": "boolean"},
#     "email": {"type": "string", "format": "email"}
#   },
#   "required": ["age", "name"]
# }

# Single value
infer_type([1, 2, 3])
# {"type": "array", "items": {"type": "integer"}}

# Merge schemas
merged = merge_schemas(schema_a, schema_b)
```

## API

- `infer(samples)` — Infer JSON Schema from list of dicts
- `infer_type(value)` — Infer type for a single value
- `merge_schemas(a, b)` — Merge two schemas

## License

MIT
