Lightweight Python ORM for hierarchical storage management https://doc.olog.io/co3
Go to file
2024-05-12 00:46:49 -07:00
_deprecated implement general composition in ComposableMapper subtype 2024-04-13 14:59:43 -07:00
co3 add syncer shutdown control and clean up logging 2024-05-12 00:46:49 -07:00
docs refactor Mapper.compose to tree traversal dual, add collate cache to CO3 base, add Mapper.collect safety checks 2024-05-04 21:01:23 -07:00
tests refactor Mapper.compose to tree traversal dual, add collate cache to CO3 base, add Mapper.collect safety checks 2024-05-04 21:01:23 -07:00
.gitignore clean up general DB interfaces, make minor docstring revisions 2024-04-30 20:13:19 -07:00
MANIFEST.in initial commit 2024-03-28 23:11:30 -07:00
pyproject.toml initial commit 2024-03-28 23:11:30 -07:00
README.md add and integrate Component, Schema objects 2024-04-06 18:30:06 -07:00
requirements.txt implement generalized Differ and Syncer classes, add general Resource type 2024-05-11 03:09:07 -07:00

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.