Skip to main content

Common Library for ReOrc Data Platform

Project description

Recurve Libraries

For the unified maintenance of public components of the Recurve platform, these codes may be used in both Server and Executor (Worker) environments.

Only Python 3.11+ are supported.

Components

This code repository consists of the following core components:

Core

The foundation of the Recurve platform that provides:

  • Base classes and interfaces for platform components
  • Jinja2 templating engine integration
  • Core configuration management
  • Common platform abstractions

Utils

A comprehensive utility library offering:

  • Time handling and date manipulation
  • Concurrent processing tools
  • File system operations and path handling
  • String manipulation and text processing
  • Logging and error handling utilities
  • Data validation helpers

Connectors

A robust data connectivity layer supporting:

  • Database connections (MySQL, PostgreSQL, Redshift, BigQuery, etc.)
  • Cloud storage (S3, GCS, Azure Blob Storage)
  • Messaging services and APIs
  • Custom connector development framework

Note: Run make update-connector-schema after updating connector config schemas to regenerate config_schema.py

Schedulers

Airflow integration components including:

  • Custom Airflow operators and sensors
  • DAG generation utilities
  • Workflow scheduling interfaces
  • Task dependency management

Operators

Task-specific operators for:

  • Data extraction and loading
  • Data transformation and processing
  • Running Python code
  • Running SQL code
  • Building and running DBT jobs

Client

A flexible client interface providing:

  • Platform API abstractions
  • Authentication handling
  • Resource management
  • Extensible base classes for custom clients
  • Connection pooling and retry logic

Executors

Core job execution engine that:

  • Manages job submissions and execution flows
  • Orchestrates task execution on infrastructure
  • Handles job lifecycle and state management
  • Provides infrastructure abstraction layer

Development Workflow

Requirements management

We use uv to manage Python package dependencies. The workflow is:

  1. Update source requirements in .in files:

  2. Compile locked requirements:

    make compile-requirements  # Compiles all requirements files
    

    Or compile individual files:

    make compile-worker  # Just worker requirements
    make compile-dbt    # Just DBT requirements
    
  3. After compiling requirements, update optional dependencies in pyproject.toml:

    make update-optional-deps
    

This ensures consistent dependencies across development and production environments.

Release Process

  1. Update version number in recurvedata/__version__.py
  2. Build and publish package:
    make publish
    
    This will clean build artifacts, build new package, and publish to Recurve PyPI.

Available Commands

The following make commands are available:

Build and Publishing:

  • make clean - Remove build artifacts (dist directory)
  • make build - Clean and build the package
  • make publish - Build and publish package to Recurve PyPI

Requirements Management:

  • make upgrade-uv - Upgrade the uv package installer
  • make compile-worker - Compile worker-specific requirements
  • make compile-dbt - Compile DBT-specific requirements
  • make compile-requirements - Compile all requirements files and sync environment
  • make install-requirements - Install requirements files

Maintenance Scripts:

  • make update-optional-deps - Update optional dependencies in pyproject.toml
  • make update-connector-schema - Update connector configuration schemas

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

recurvedata_lib-0.1.496.tar.gz (405.4 kB view details)

Uploaded Source

Built Distribution

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

recurvedata_lib-0.1.496-py2.py3-none-any.whl (573.2 kB view details)

Uploaded Python 2Python 3

File details

Details for the file recurvedata_lib-0.1.496.tar.gz.

File metadata

  • Download URL: recurvedata_lib-0.1.496.tar.gz
  • Upload date:
  • Size: 405.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: python-httpx/0.28.1

File hashes

Hashes for recurvedata_lib-0.1.496.tar.gz
Algorithm Hash digest
SHA256 0c8fae6bc35b5307158e9d7960649194547d5054b478e047c7e354e313b411f9
MD5 dc1b7d710c27d8ced3bc2b55f17dc8cc
BLAKE2b-256 19277fc8d1adcf2fad5389277acea709c693a3149cca99bb19b8db54ada21964

See more details on using hashes here.

File details

Details for the file recurvedata_lib-0.1.496-py2.py3-none-any.whl.

File metadata

File hashes

Hashes for recurvedata_lib-0.1.496-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 c9c2f4f5d0d7afeef33e8213b16f19a86fb434cd1e73eb71937b626976fce027
MD5 39e34d0d3c10e37b3d6f13e5d86cc9cd
BLAKE2b-256 7bd6ae6edbb82e89ba906428bd27e0f9de282cb4ab902a741505e1c53d8f7bca

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