Skip to main content

Python SDK for TitanRdm Upload and Download APIs

Project description

TitanRDM SDK for Python

Python SDK for TitanRDM Upload and Download APIs.

Installation

pip install titan-rdm-sdk

For development:

pip install titan-rdm-sdk[dev]

Quick Start

Initialize Client

from titan_rdm_sdk import TitanRDMClient

client = TitanRDMClient(
    url="https://<tenant_subdomain>.titanrdm.com",
    client_id="your_client_id",
    client_secret="your_client_secret"
)

Download Data (Full Export)

download = client.get_download(
    branch_id=174,
    table_definition_key=50,
    pattern='full',
    correlation_code='daily-export-2025-01-22'
)

download.wait_until_ready(poll_interval=2.0, max_wait=300.0)
df = download.receive()
print(f"Downloaded {len(df)} rows")

Download Data (Incremental Export)

download = client.get_download(
    branch_id=174,
    table_definition_key=50,
    pattern='incremental',
    high_water_mark="2025-01-21T00:00:00Z",
    correlation_code='incremental-sync'
)

download.wait_until_ready()
df = download.receive()

Upload Data

import pandas as pd

# Create upload batch
upload = client.get_upload(
    branch_id=174,
    description='Customer data update',
    correlation_code='batch-001'
)

# Prepare data
df = pd.DataFrame({
    'customer_id': [1, 2, 3],
    'name': ['Alice', 'Bob', 'Charlie'],
    'email': ['alice@example.com', 'bob@example.com', 'charlie@example.com']
})

# Upload to specific table
table_upload = upload.get_table_upload(
    table_definition_key=456,
    import_mapping_key=123,
    pattern='full'
)
table_upload.send(df)

# Complete the import batch
upload.complete()

Error Handling

from titan_rdm_sdk import (
    TitanRDMClient,
    AuthenticationError,
    APIError,
    ExportFailedError,
    ValidationError
)

try:
    client = TitanRDMClient(url, client_id, client_secret)
    download = client.get_download(branch_id=174, table_definition_key=50)
    download.wait_until_ready()
    df = download.receive()

except AuthenticationError as e:
    print(f"Authentication failed: {e}")

except ValidationError as e:
    print(f"Invalid input: {e}")

except ExportFailedError as e:
    print(f"Export failed: {e}")

except APIError as e:
    print(f"API error (HTTP {e.status_code}): {e}")

Development

Setup

# Clone the repository
git clone https://github.com/dimodelo/titan-rdm-sdk-python.git
cd titan-rdm-sdk-python

# Install in development mode
pip install -e ".[dev]"

Running Tests

# Run all tests
pytest

# Run with verbose output
pytest -v

# Run with coverage report
pytest --cov=titan_rdm_sdk --cov-report=term-missing

# Run specific test file
pytest tests/test_client.py

# Run specific test class or function
pytest tests/test_client.py::TestClientInitialization
pytest tests/test_client.py::TestClientInitialization::test_successful_initialization

Building the Package

pip install build
python -m build

This creates distribution files in the dist/ directory that can be uploaded to PyPI.

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

titan_rdm_sdk-0.1.2.tar.gz (18.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

titan_rdm_sdk-0.1.2-py3-none-any.whl (14.0 kB view details)

Uploaded Python 3

File details

Details for the file titan_rdm_sdk-0.1.2.tar.gz.

File metadata

  • Download URL: titan_rdm_sdk-0.1.2.tar.gz
  • Upload date:
  • Size: 18.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.3

File hashes

Hashes for titan_rdm_sdk-0.1.2.tar.gz
Algorithm Hash digest
SHA256 cb4af62ed019a30ab4a04934bb7f90dcf3f6d3e05d34a7bfb9b00b4bba5c2d36
MD5 5a31b2f421d8c1f1263c7d3302e92816
BLAKE2b-256 40d25155b4bd2a86cd093a6d0d455a8cd1c096f62c2b59c308618bcf017fa58d

See more details on using hashes here.

File details

Details for the file titan_rdm_sdk-0.1.2-py3-none-any.whl.

File metadata

  • Download URL: titan_rdm_sdk-0.1.2-py3-none-any.whl
  • Upload date:
  • Size: 14.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.3

File hashes

Hashes for titan_rdm_sdk-0.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 b09f28d492c2e0e7f733aeef23b6f62b1c7ee3bcc782846b61bf5c3328367605
MD5 ea10c49f47bb800b58dc01924ca2b6bf
BLAKE2b-256 b02141a28f35b4add924d6b50a3f1b669bd585e2cc47fb2c106d89797d77ca19

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page