Metadata-Version: 2.5
Name: etlantic-pandas
Version: 0.45.0
Summary: Pandas dataframe execution plugin for ETLantic.
Project-URL: Homepage, https://github.com/eddiethedean/etlantic
Project-URL: Documentation, https://github.com/eddiethedean/etlantic/tree/main/docs
Project-URL: Repository, https://github.com/eddiethedean/etlantic
Project-URL: Issues, https://github.com/eddiethedean/etlantic/issues
Project-URL: Changelog, https://github.com/eddiethedean/etlantic/blob/main/CHANGELOG.md
Author-email: Odo Matthews <odosmatthews@gmail.com>
License-Expression: MIT
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Typing :: Typed
Requires-Python: >=3.11
Requires-Dist: etlantic<0.46,>=0.45.0
Requires-Dist: pandas<3,>=2.2
Provides-Extra: arrow
Requires-Dist: pyarrow>=14; extra == 'arrow'
Description-Content-Type: text/markdown

# etlantic-pandas

Pandas dataframe plugin **and** portable transform compiler for
[ETLantic](https://github.com/eddiethedean/etlantic) **0.43**. Install when
you select `Profile(dataframe_engine="pandas")` or need portable DTCS
compilation on Pandas. Keep the pin matched to core.

> **Note:** This plugin and ETLantic core use Beta classifiers for documented
> single-tenant pilots. Classifiers are not an enterprise SLA.

## Install

```bash
pip install 'etlantic-pandas==0.45.0'
# Optional Arrow interchange:
pip install 'etlantic-pandas[arrow]==0.45.0'
# pip install 'etlantic==0.45.0'
```

## Dataframe plugin

The plugin provides eager, index-neutral `DataFrame` execution. It copies
frames at ownership boundaries so Pandas index state and in-place mutation do
not leak into portable pipeline semantics. Planning fails closed when a
pipeline requires unsupported lazy or zero-copy behavior.

Select it with `Profile(dataframe_engine="pandas")`; the
`etlantic.dataframe_plugins` entry point named `pandas` registers the plugin.

## Portable transform compiler

The `etlantic.transform_compilers` entry point named `pandas` exposes
`etlantic_pandas:create_transform_compiler`. The eager compiler claims
`dtcs:profile/portable-relational-kernel/1` and
`dtcs:profile/portable-relational/1`, including joins, unions, grouping,
aggregation, ordering, deduplication, and limits without requiring a native
`@implementation("pandas")`.

```python
from etlantic import Profile

profile = Profile(
    name="pandas-portable",
    dataframe_engine="pandas",
    portable_transform_policy="require",
)
```

Plugin authors can verify the advertised portable behavior with the public
conformance suite:

```python
from etlantic.testing import run_portable_transform_conformance_suite
from etlantic_pandas import create_transform_compiler

run_portable_transform_conformance_suite(create_transform_compiler())
```

## Links

[Pandas tutorial](https://etlantic.readthedocs.io/en/v0.45.0/06_EXECUTION/PANDAS_TUTORIAL/) ·
[Compatibility](https://etlantic.readthedocs.io/en/v0.45.0/10_REFERENCE/COMPATIBILITY/) ·
[Source](https://github.com/eddiethedean/etlantic/tree/main/packages/etlantic-pandas) ·
[Issues](https://github.com/eddiethedean/etlantic/issues)
