Metadata-Version: 2.4
Name: defacto
Version: 0.1.0
Classifier: Development Status :: 2 - Pre-Alpha
Classifier: Intended Audience :: Developers
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Rust
Classifier: Topic :: Database
Requires-Dist: ibis-framework[duckdb]
Requires-Dist: pyyaml
Requires-Dist: defacto[postgres,kafka,tiered,networkx,neo4j,s3] ; extra == 'all'
Requires-Dist: confluent-kafka ; extra == 'kafka'
Requires-Dist: neo4j ; extra == 'neo4j'
Requires-Dist: networkx ; extra == 'networkx'
Requires-Dist: scipy ; extra == 'networkx'
Requires-Dist: psycopg[binary] ; extra == 'postgres'
Requires-Dist: boto3 ; extra == 's3'
Requires-Dist: deltalake ; extra == 'tiered'
Provides-Extra: all
Provides-Extra: kafka
Provides-Extra: neo4j
Provides-Extra: networkx
Provides-Extra: postgres
Provides-Extra: s3
Provides-Extra: tiered
Summary: An entity engine that turns operational events into temporal, queryable state
Author-email: Derek Zhang <derek.yn.zhang@gmail.com>
Requires-Python: >=3.12
Description-Content-Type: text/markdown; charset=UTF-8; variant=GFM
Project-URL: Documentation, https://derek-yn-zhang.github.io/defacto/
Project-URL: Repository, https://github.com/derek-yn-zhang/defacto

# Defacto

An entity engine that turns operational events into temporal, queryable state.

## Install

```bash
pip install defacto
```

## Usage

```python
from defacto import Defacto

d = Defacto("definitions/")
d.ingest("app", events, process=True)

d.table("customer").execute()                        # current state
d.history("customer").as_of("2024-01-15").execute()  # point-in-time
d.history("customer").execute()                      # full history
```

## Examples

See [`examples/quickstart/`](examples/quickstart) and [`examples/showcase/`](examples/showcase).

