Metadata-Version: 2.4
Name: floe-iceberg
Version: 0.1.0a1
Summary: IcebergTableManager utility for PyIceberg table operations in the floe data platform
Project-URL: Homepage, https://github.com/Obsidian-Owl/floe
Project-URL: Documentation, https://github.com/Obsidian-Owl/floe/tree/main/docs
Project-URL: Repository, https://github.com/Obsidian-Owl/floe
Author-email: Obsidian Owl <team@obsidianowl.dev>
License-Expression: Apache-2.0
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: Apache Software License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Typing :: Typed
Requires-Python: >=3.10
Requires-Dist: floe-core<0.2.0,>=0.1.0a1
Requires-Dist: opentelemetry-api<2.0,>=1.39.0
Requires-Dist: pyarrow<23.0,>=14.0
Requires-Dist: pydantic<3.0,>=2.12.5
Requires-Dist: pyiceberg>=0.11.1
Requires-Dist: structlog<26.0,>=24.0
Provides-Extra: all
Requires-Dist: dagster>=1.6.0; extra == 'all'
Requires-Dist: mypy>=1.8; extra == 'all'
Requires-Dist: pytest-asyncio>=0.23.0; extra == 'all'
Requires-Dist: pytest-cov>=4.0; extra == 'all'
Requires-Dist: pytest>=8.0; extra == 'all'
Requires-Dist: ruff>=0.3; extra == 'all'
Requires-Dist: types-pyyaml>=6.0; extra == 'all'
Provides-Extra: dagster
Requires-Dist: dagster>=1.6.0; extra == 'dagster'
Provides-Extra: dev
Requires-Dist: mypy>=1.8; extra == 'dev'
Requires-Dist: pytest-asyncio>=0.23.0; extra == 'dev'
Requires-Dist: pytest-cov>=4.0; extra == 'dev'
Requires-Dist: pytest>=8.0; extra == 'dev'
Requires-Dist: ruff>=0.3; extra == 'dev'
Requires-Dist: types-pyyaml>=6.0; extra == 'dev'
Description-Content-Type: text/markdown

# floe-iceberg

IcebergTableManager utility for PyIceberg table operations in the floe data platform.

## Overview

`floe-iceberg` provides an internal utility class that wraps PyIceberg table operations,
offering a consistent API for table creation, schema evolution, writes, and snapshot management.

**Note**: IcebergTableManager is NOT a plugin - Iceberg is enforced (ADR-0005), not pluggable.

## Installation

```bash
pip install floe-iceberg

# With Dagster IOManager support
pip install "floe-iceberg[dagster]"
```

## Quick Start

```python
from floe_iceberg import IcebergTableManager, IcebergTableManagerConfig
from floe_iceberg.models import TableConfig, WriteConfig, WriteMode

# Initialize with plugin dependencies
manager = IcebergTableManager(
    catalog_plugin=catalog_plugin,
    storage_plugin=storage_plugin,
    config=IcebergTableManagerConfig(max_commit_retries=3),
)

# Create a table
table = manager.create_table(table_config)

# Write data
snapshot = manager.write_data(table, data, WriteConfig(mode=WriteMode.APPEND))
```

See [quickstart.md](../../specs/4d-storage-plugin/quickstart.md) for detailed examples.

## License

Apache-2.0
