tinyolap
tinyolap copied to clipboard
TinyOlap is a light-weight, in-process, in-memory, multi-dimensional, model-first OLAP engine for planning, budgeting, reporting, analysis and many other numerical purposes, written in plain Python.
from: register_rule(self, function, trigger: list[str] = None, **feeder: list[str] = None,** scope: RuleScope = None, injection: RuleInjectionStrategy = None, code: str = None): to: register_rule(self, function, trigger: **str | list[str]**...
Rules need to be written in python. This requires 'real' Python coding and quite some boilerplate code. Sample: `@rule(cube="sales", trigger="delta %") def my_rule(c: Cell): return c["delta"] / c.plan["plan"]` Why not...
'DataIntegrator' class to provide more simple capabilities to integrate data from external data sources for dimensions, attributes and cubes.
Implement the good old "Splasher" to aid users in planning processes. Implement natural language (kind of) planning language.
Create a set of 6 to 10 sample Views for the enterprise sample database. At least 2 to 3 per cube.
Ideally **one code base** for both Views and FlexViews - Manage **state of individual open Views** in TinyOlap, especially lifecycle management incl. ageing /automatic clean up, persistence, refresh policies etc....
- All errors raised though rule execution should raise the same build-in rules errors. - Users should be able to switch off error raising at database runtime to not crash...
Implement and test for database snapshot generation and management. Snapshot are required for database backup and time-travel capabilities
__slots__ will provide some nice performance and memory consumption benefits we want to gain