Lightweight Python ORM for hierarchical storage management
https://doc.olog.io/co3
build | ||
co3 | ||
docs | ||
examples | ||
tests | ||
.python-version | ||
MANIFEST.in | ||
pyproject.toml | ||
README.md | ||
requirements.txt |
Overview
co3
is a package for file conversion and associated database operations. The CO3
base class
provides a standard interface for performing conversions, preparing inserts, and
interacting with database schemas that mirror the class hierarchy.
Simplified description of the operational model:
Goal: interact with a storage medium (database, pickled structure, VSS framework) with a known schema.
- Accessor to provide access to stored items
- Composer to compose common access points (e.g., JOINed tables)
- Indexer to index/cache access queries
- Manager to manage storage state (e.g., supported inserts, database syncs)
- Collector to collect data for updating storage state
- Database to collect data for updating storage state
- Mapper to collect data for updating storage state
- Component to collect data for updating storage state
CO3 is an abstract base class that makes it easy to integrate this model with object hierarchies that mirror a storage schema.
Detailed structural breakdown
There are a few pillars of the CO3 model that meaningfully group up functionality:
- Database: generic to a Component type, provides basic connection to a database at a
specific address/location. The explicit Component type makes it easy to hook into
appropriately typed functional objects:
- Manager: generic to a Component and Database type, provides a supported set of state-modifying operations to a constituent database
- Accessor: generic to a Component and Database type, provides a supported set of state inspection operations on a constituent database
- Indexer:
- Mapper: generic to a Component, serves as the fundamental connective component between types in the data representation hierarchy (CO3 subclasses) and database Components.