Metadata-Version: 2.4
Name: polarway
Version: 2.0.0
Summary: High-performance Railway-Oriented DataFrame engine with gRPC streaming and Lakehouse support
Author: Polarway Contributors
License: MIT
Project-URL: Homepage, https://github.com/ThotDjehuty/polarway
Project-URL: Documentation, https://polarway.readthedocs.io
Project-URL: Repository, https://github.com/ThotDjehuty/polarway
Project-URL: Issues, https://github.com/ThotDjehuty/polarway/issues
Keywords: dataframe,arrow,grpc,streaming,time-series
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.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Requires-Python: >=3.9
Description-Content-Type: text/markdown
Requires-Dist: grpcio>=1.60.0
Requires-Dist: grpcio-tools>=1.60.0
Requires-Dist: pyarrow>=15.0.0
Requires-Dist: protobuf>=4.25.0
Provides-Extra: lakehouse
Requires-Dist: deltalake>=0.18.0; extra == "lakehouse"
Requires-Dist: argon2-cffi>=23.1.0; extra == "lakehouse"
Requires-Dist: PyJWT>=2.8.0; extra == "lakehouse"
Provides-Extra: dev
Requires-Dist: pytest>=7.0.0; extra == "dev"
Requires-Dist: pytest-asyncio>=0.21.0; extra == "dev"
Requires-Dist: black>=23.0.0; extra == "dev"
Requires-Dist: mypy>=1.0.0; extra == "dev"
Requires-Dist: ruff>=0.1.0; extra == "dev"

# Polarway Python Client

Python client library for connecting to Polarway gRPC server.

## Installation

```bash
# Install from source
cd polarway-python
pip install -e .

# Generate protocol buffers
./generate_protos.sh
```

## Quick Start

```python
import polarway as pw

# Connect to server
pw.connect("localhost:50051")

# Read Parquet
df = pw.read_parquet("data.parquet")

# Get info
print(df.shape())  # (1000, 5)
print(df.schema()) # Schema info

# Select columns
df2 = df.select(["col1", "col2"])

# Collect to Arrow Table
table = df2.collect()
print(table)

# Write to Parquet
df2.write_parquet("output.parquet")
```

## Features

- **gRPC Interface**: Network-capable DataFrame operations
- **Arrow IPC**: Zero-copy data transfer
- **Handle-Based**: Efficient server-side operations
- **Streaming**: Process larger-than-memory datasets

## Phase 1 Implementation

Currently implemented:
- ✅ Connection management
- ✅ read_parquet
- ✅ write_parquet
- ✅ select
- ✅ get_schema
- ✅ get_shape
- ✅ collect
- ✅ Handle management (drop, heartbeat)

Coming in Phase 2+:
- filter, group_by, join, sort
- Time-series operations
- Network data sources
