Metadata-Version: 2.5
Name: schemair
Version: 0.1.0.dev0
Summary: Python implementation of the language-independent SchemaIR protocol
Project-URL: Homepage, https://github.com/schemair/schemair
Project-URL: Documentation, https://github.com/schemair/schemair/tree/main/spec
Project-URL: Repository, https://github.com/schemair/schemair.git
Project-URL: Issues, https://github.com/schemair/schemair/issues
Author: SchemaIR contributors
License-Expression: Apache-2.0
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: Apache Software License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Topic :: Software Development :: Libraries
Requires-Python: >=3.11
Description-Content-Type: text/markdown

# SchemaIR for Python

This directory will contain the Python implementation of the language-independent
[SchemaIR protocol](../spec/). The package is intended for Python tools that need
to construct, validate, compare, and interpret SchemaIR data without coupling
the wire model to a Python runtime object graph.

The protocol is the source of truth. Python APIs are bindings and authoring
conveniences; their serialized output must remain compatible with the shared
vectors in [`../conformance/`](../conformance/).

## Development

Python 3.11 or newer is required. Create an environment and install the package
with its development dependencies using your preferred workflow. With `uv`:

```sh
uv sync
uv run pytest
uv run ruff check .
```

The initial package is a scaffold. Implementation work should proceed from the
protocol models, then definition and payload validation, SchemaNode relations,
and the type interpreter. Host reference resolution, semantic and constraint
providers, native type relations, graph scheduling, and execution remain caller
owned.

## Package layout

```text
schemair/
  spec/              # Python bindings for protocol data
  core/              # definition, payload, and SchemaNode relation APIs
  type_interpreter/  # authoring-time expression interpreter
tests/               # unit and shared conformance-vector tests
```

See the repository [contribution guide](../CONTRIBUTING.md) for protocol and
conformance change rules.
