Python client for Pangolin Data Catalog
Project description
PyPangolin
Python Client for the Pangolin Data Catalog.
Installation
pip install pypangolin
For Delta Lake support:
pip install "pypangolin[delta]"
Quick Start
Core Client
from pypangolin import PangolinClient
# Connect to Pangolin
client = PangolinClient(uri="http://localhost:8080")
client.login("username", "password")
# Work with catalogs
catalogs = client.catalogs.list()
### Warehouse Management
```python
# Create an S3 warehouse with custom configuration (e.g. MinIO)
warehouse = client.warehouses.create_s3(
name="minio_warehouse",
bucket="my-bucket",
endpoint="http://minio:9000",
access_key="minio",
secret_key="minio123",
# Pass extra S3 properties via kwargs
**{"s3.path-style-access": "true"}
)
### PyIceberg Integration
```python
from pypangolin import get_iceberg_catalog
catalog = get_iceberg_catalog("analytics", uri="http://localhost:8080", token="...")
table = catalog.load_table("sales.transactions")
Generic Assets (Delta Lake)
from pypangolin.assets import DeltaAsset
# Write data and register in Pangolin automatically
DeltaAsset.write(
client,
"analytics", "staging", "my_delta_table",
dataframe,
location="s3://bucket/path"
)
Documentation
Getting Started
- Authenticated Mode Guide - Standard operational mode with user authentication
- No Auth Mode Guide - For local development and testing
- Publishing Guide - Build and release instructions
Core Features
- PyIceberg Integration - Apache Iceberg tables with PyIceberg
- Advanced Git Operations - Branching, merging, tagging, and conflict resolution
Table Formats & Assets
- Apache Iceberg: PyIceberg Integration
- Delta Lake: Delta Guide
- Apache Hudi: Hudi Guide
- Apache Paimon: Paimon Guide
- File Formats: Parquet | CSV | JSON
- Specialized Formats: Lance | Vortex
- Other Assets: ML Models, Video, Images, etc.
Advanced Features
- Governance & Security - RBAC, permissions, service users, metadata
- Admin & System - Audit logging, search, tokens, system config
- Federated Catalogs & Views - Remote catalogs and SQL views
- Database Connections - Secure credential management for databases
Features
✅ Full API Coverage - Complete support for all Pangolin REST API endpoints
✅ PyIceberg Integration - Seamless Apache Iceberg table operations
✅ Multi-Format Support - Delta, Hudi, Paimon, Parquet, CSV, JSON, and more
✅ Git-like Operations - Branching, merging, tagging with conflict resolution
✅ Governance - Role-based access control and business metadata
✅ Federated Catalogs - Connect to remote Iceberg catalogs
✅ Type-Safe - Pydantic models for all API responses
✅ Audit Logging - Comprehensive audit logs with user attribution
Verification
To run the end-to-end verification suite against a local Pangolin + MinIO stack:
# Ensure MinIO is running and buckets exist
python3 scripts/ensure_buckets.py
# Run verification script
python3 scripts/verify_pypangolin_live.py
License
MIT
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file pypangolin-0.5.1.tar.gz.
File metadata
- Download URL: pypangolin-0.5.1.tar.gz
- Upload date:
- Size: 45.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
29ce8a0b9652628df90c92a0d85b5cfbc4944beac3c107241a3178614ec2065a
|
|
| MD5 |
15a61e781e936785a46bd00bb94c0ce4
|
|
| BLAKE2b-256 |
e69f9e5e56055b30f0fdaa1099da1521ca75b4f6d1d21b9bd5dfd1f910d193bb
|
File details
Details for the file pypangolin-0.5.1-py3-none-any.whl.
File metadata
- Download URL: pypangolin-0.5.1-py3-none-any.whl
- Upload date:
- Size: 34.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c4d6e8ba38aeadae861a1a29ede740cc06924bb0a6877f82977591c302ecca84
|
|
| MD5 |
a2a98f11f294e918bd55409ec1343556
|
|
| BLAKE2b-256 |
43acb77ef930b22a52f5293768e03898b45ac2473ea3b185b126e414c71dd30e
|