Skip to main content

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

Status Python License


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 over exonware.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 XWObject from xwsystem for lightweight identity/object semantics; entity behavior is inherited from core xwentity.
  • Compatibility alias: XWEntity remains exported as an alias to XWModelEntity for backward compatibility.

Model management layer in practice

  • Base systems: use one XWModelGroup per bounded system (for example auth, 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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

exonware_xwmodels-0.6.0.6.tar.gz (78.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

exonware_xwmodels-0.6.0.6-py3-none-any.whl (63.2 kB view details)

Uploaded Python 3

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

Hashes for exonware_xwmodels-0.6.0.6.tar.gz
Algorithm Hash digest
SHA256 54cbbe767976270ba3e31fdc8beda0969d9dba4a678e13b14812ea3414288099
MD5 b6bbc1390e22e75c8386dcbaf7a15858
BLAKE2b-256 e5e2a0b8d92e01bd200ffd813b3e60185c48c8f44c77140e85328515e9a2d964

See more details on using hashes here.

File details

Details for the file exonware_xwmodels-0.6.0.6-py3-none-any.whl.

File metadata

File hashes

Hashes for exonware_xwmodels-0.6.0.6-py3-none-any.whl
Algorithm Hash digest
SHA256 f572653edcfbe6266bf92a16db676773aa5dd1150330c8eb19e37c2783e4bc66
MD5 16f5e8680119a2f76ee06116ad555c00
BLAKE2b-256 98ab0277cc2f38e8ef23b36fd1d4536a3b127a1aaf147a78665d593664f6f71c

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page