Metadata-Version: 2.4
Name: entei-core
Version: 0.1.0
Summary: MongoDB root materialization to columnar dicts (PyMongo; pydantable-protocol only).
License: MIT
Classifier: Development Status :: 3 - Alpha
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Requires-Python: >=3.10
Description-Content-Type: text/markdown
Requires-Dist: pydantable-protocol<2,>=1.16.0
Requires-Dist: pymongo>=4.6
Requires-Dist: typing-extensions>=4.5
Provides-Extra: dev
Requires-Dist: entei-core[test]; extra == "dev"
Provides-Extra: test
Requires-Dist: pytest>=7.0; extra == "test"
Requires-Dist: mongomock>=4.1; extra == "test"

# entei-core

Lightweight **MongoDB root** helpers: **`MongoRoot`** wraps a PyMongo collection; **`mongo_root_to_column_dict`** / **`materialize_root_data`** turn it into columnar ``dict[str, list]``.

Depends on **`pydantable-protocol`**, **PyMongo**, and **typing-extensions** only (no native Rust stack).

For **`EnteiDataFrame`** and connection helpers, install the umbrella package **`entie`**.

## Install

```bash
pip install entei-core
```

From the monorepo (editable):

```bash
pip install -e ./packages/entei-core
```

## Quick example

```python
import mongomock
from entei_core import MongoRoot, mongo_root_to_column_dict

client = mongomock.MongoClient()
coll = client.db.items
coll.insert_many([{"x": 1}, {"x": 2}])

cols = mongo_root_to_column_dict(MongoRoot(coll))
assert cols == {"x": [1, 2]}
```

## Versioning

Track **pydantable-protocol** minor lines you test against (see pydantable’s VERSIONING docs).
