Metadata-Version: 2.4
Name: sonnet-core
Version: 0.1.0
Summary: Framework-agnostic core library for Petrarca Labs backend services (models, ids, schemas, state machines)
Author-email: Wolfgang Miller <wolfgang.miller@petrarca-labs.com>
License-Expression: Apache-2.0
Classifier: Intended Audience :: Developers
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.14
Requires-Python: <4.0,>=3.14
Description-Content-Type: text/markdown
Requires-Dist: loguru>=0.7.3
Requires-Dist: pydantic>=2.0
Requires-Dist: sqlmodel>=0.0.37
Requires-Dist: sqlalchemy>=2.0.48
Requires-Dist: jsonschema>=4.23.0
Requires-Dist: arrow>=1.4.0
Provides-Extra: dev
Requires-Dist: ruff>=0.3.0; extra == "dev"
Requires-Dist: pytest>=7.0.0; extra == "dev"
Requires-Dist: pytest-cov>=4.0.0; extra == "dev"

# sonnet-core

Framework-agnostic core library for Petrarca Labs backend services.

`sonnet-core` is the foundation layer beneath `sonnet-server`. It holds pure
data-layer and logic building blocks that carry **no web/server framework
dependency** (no FastAPI, uvicorn, Alembic, Typer, or Jinja2). It may depend on
data-modeling libraries (Pydantic, SQLAlchemy, SQLModel) and pure utilities
(jsonschema, arrow, loguru).

## Layering

```
sonnet-core    (this package -- pure data/logic)
   ^
sonnet-server  (web/server framework)
   ^
sonnet-auth / sonnet-graph / sonnet-storage
```

## Contents

- **ids** -- compact, time-sortable id generation (`generate_id`, `to_base36`).
- **models** -- Pydantic/SQLModel model building and conversion
  (`create_model`, `ModelBuilder`, `to_response_model`, `update_model_fields`).
- **schema** -- JSON Schema validation helpers
  (`validate_instance`, `validate_schema`, `ValidationResult`).
- **enums** -- constraint-free enum columns (`str_enum_column`).
- **versioning** -- version-string ordering (`pick_latest`).
