Collections and Groups with provider support for auth and storage
Project description
xwmodels
Entity collections and groups on top of xwentity, wired for the rest of the eXonware stack. Details live in per-project REF docs.
Company: eXonware.com · Author: eXonware Backend Team · Email: connect@exonware.com
Install
pip install exonware-xwmodels
pip install exonware-xwmodels[lazy]
pip install exonware-xwmodels[full]
Quick start
from exonware.xwmodels import *
# Or: import xwmodels
# Collections and groups of entities - see docs for patterns
See docs/ for REF_* files and examples.
What you get
| Area | Contents |
|---|---|
| Models | Entity collections and groups built on xwentity. |
| Integration | Hooks for xwentity, xwstorage, xwaction. |
| Tooling | Utilities aimed at larger, consistent model graphs. |
Core model roles
- XWModelEntity (
entity_compat.py) is the xwmodels compatibility facade overexonware.xwentity.XWEntity(data-first ergonomics + model-facing helpers). - XWModelCollection (
collection.py) manages many entities of one type and adds persistence-aware collection behavior via storage contracts. - XWModelGroup (
group.py) manages multiple collections, supports nested subgroups (tree hierarchy), and coordinates group-level save/load through providers. - Shared foundation: model collection and model group inherit
XWObjectfromxwsystemfor lightweight identity/object semantics; entity behavior is inherited from corexwentity. - Compatibility alias:
XWEntityremains exported as an alias toXWModelEntityfor backward compatibility.
Model management layer in practice
- Base systems: use one
XWModelGroupper bounded system (for exampleauth,catalog,billing,content) and keep each system's collections under that group. - Domain partitioning: map each aggregate/root model to one
XWModelCollection(users, roles, invoices, products), with one schema contract and many entities. - Nested environments: create subgroups for
dev/staging/prod, tenant spaces, or regional shards while preserving one management API. - Provider orchestration: plug storage/auth providers at group level so save/load and access control policies are consistent across all collections in that system.
- App composition: xwbase-style systems can compose multiple groups to build complete application backbones while reusing the same entity/collection/group semantics.
Docs and tests
- Start: docs/INDEX.md or docs/.
- Tests: From repo root, e.g.
python tests/runner.py, per project layout.
License and links
MIT - see LICENSE. Homepage: https://exonware.com · Repository: https://github.com/exonware/xwmodels
Async Support
- xwmodels includes asynchronous execution paths in production code.
- Source validation: 9 async def definitions and 2 await usages under src/.
- Use async APIs for I/O-heavy or concurrent workloads to improve throughput and responsiveness.
Version: 0.6.0.6 | Updated: 31-Mar-2026
Built with ❤️ by eXonware.com - Revolutionizing Python Development Since 2025
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file exonware_xwmodels-0.6.0.6.tar.gz.
File metadata
- Download URL: exonware_xwmodels-0.6.0.6.tar.gz
- Upload date:
- Size: 78.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
54cbbe767976270ba3e31fdc8beda0969d9dba4a678e13b14812ea3414288099
|
|
| MD5 |
b6bbc1390e22e75c8386dcbaf7a15858
|
|
| BLAKE2b-256 |
e5e2a0b8d92e01bd200ffd813b3e60185c48c8f44c77140e85328515e9a2d964
|
File details
Details for the file exonware_xwmodels-0.6.0.6-py3-none-any.whl.
File metadata
- Download URL: exonware_xwmodels-0.6.0.6-py3-none-any.whl
- Upload date:
- Size: 63.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f572653edcfbe6266bf92a16db676773aa5dd1150330c8eb19e37c2783e4bc66
|
|
| MD5 |
16f5e8680119a2f76ee06116ad555c00
|
|
| BLAKE2b-256 |
98ab0277cc2f38e8ef23b36fd1d4536a3b127a1aaf147a78665d593664f6f71c
|