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:
-
Update source requirements in
.infiles:requirements.in- All dependenciesrequirements/worker.in- Worker-specific dependenciesrequirements/dbt.in- DBT-specific dependenciesrequirements-dev.in- Development dependencies
-
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
-
After compiling requirements, update optional dependencies in pyproject.toml:
make update-optional-deps
This ensures consistent dependencies across development and production environments.
Release Process
- Update version number in
recurvedata/__version__.py - Build and publish package:
make publishThis 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 packagemake publish- Build and publish package to Recurve PyPI
Requirements Management:
make upgrade-uv- Upgrade the uv package installermake compile-worker- Compile worker-specific requirementsmake compile-dbt- Compile DBT-specific requirementsmake compile-requirements- Compile all requirements files and sync environmentmake install-requirements- Install requirements files
Maintenance Scripts:
make update-optional-deps- Update optional dependencies in pyproject.tomlmake update-connector-schema- Update connector configuration schemas
Project details
Release history Release notifications | RSS feed
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 recurvedata_lib-0.1.490.tar.gz.
File metadata
- Download URL: recurvedata_lib-0.1.490.tar.gz
- Upload date:
- Size: 403.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: python-httpx/0.28.1
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8373cdb019cb9a7cc747c5b6e873a9992a5e1829144a8bb8db80fccdc426c40c
|
|
| MD5 |
91c224a7591f94b4180126928f6e13fe
|
|
| BLAKE2b-256 |
053946548c221b77084923abee748d95ee038cc326a669afff18587b8d5b989e
|
File details
Details for the file recurvedata_lib-0.1.490-py2.py3-none-any.whl.
File metadata
- Download URL: recurvedata_lib-0.1.490-py2.py3-none-any.whl
- Upload date:
- Size: 570.0 kB
- Tags: Python 2, Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: python-httpx/0.28.1
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
618668e80f333e2e0dcf44b86b44105d68f433a815d10f375dce6d11f2a8096d
|
|
| MD5 |
6f26cd11676c4da0580450baf0873c1d
|
|
| BLAKE2b-256 |
d775b4566f56309b65173926c58f074a0905649e430e635ea2150b9d28968ad1
|