Metadata-Version: 2.4
Name: sheafcommons
Version: 0.1.0a1
Summary: Stable qualified names and immutable metadata contracts for SheafLab packages.
Project-URL: Repository, https://github.com/SheafLab/sheafcommons-python
Author: SheafLab
License: MIT
Keywords: contracts,interoperability,metadata,namespaces,sheaflab
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 :: Only
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Requires-Python: >=3.10
Description-Content-Type: text/markdown

# sheafcommons

`sheafcommons` contains small, dependency-free contracts for values that need
to cross package boundaries without becoming ad-hoc strings or mutable dicts.
The first release provides qualified names and immutable metadata with explicit
merge conflict handling.

```python
from sheafcommons import Metadata, QualifiedName

asset = QualifiedName.parse("vision:camera/front")
labels = Metadata.from_mapping({"owner": "capture", "tier": "primary"})
merged = labels.merge(Metadata.from_mapping({"format": "rgb"}))

assert str(asset) == "vision:camera/front"
assert merged["format"] == "rgb"
```

`QualifiedName` keeps a namespace separate from its local identifier.
`Metadata` preserves sorted, immutable entries and rejects conflicting values
by default, making ownership changes visible at composition boundaries.
