Data transfer utilities between files and databases
Project description
Easy Data Loader 🚀
Easy Data Loader is a flexible, modular Python library designed to streamline ETL (Extract, Transform, Load) processes between various data sources (CSV, Excel, Parquet) and SQL databases (MSSQL, PostgreSQL, and others).
✨ Key Features
- Declarative Configuration: Manage connections and pipelines through simple python files and
.envresources. - Integrated CLI: Initialize a standardized project structure with a single command.
- Custom Transformation Hooks: Inject your own Pandas transformation logic directly into the pipeline execution.
- Performance Optimized: Built-in support for chunked loading and writing to handle large datasets efficiently.
- Extensible Architecture: Uses a Factory Pattern for database connectors, making it easy to support new drivers.
📦 Installation
Install directly via pip or uv:
pip install easy_data_loader
🚀 Getting Started
- Initialize a new project structure to generate template configurations:
easy-loader init - Review the generated
config/folders for sample resources and pipelines. - Run all discovered pipelines across the active configurations:
easy-loader run_all
🏗️ Architecture & Process Flow
The system is designed with modularity in mind. Object dependencies and their standard instantiation lifecycle are executed through the Configuration singleton and the CONNECTOR_FACTORY.
graph TD
%% Main Execution Flow
CLI[CLI Application] -->|Instantiates| Pipeline[Pipeline: Load, Procedure, Orchestrator]
%% Configuration and Definitions
Pipeline -->|Requests Definition & Resources| Config[Configuration Singleton]
Config -->|Reads| PipelineDef[Pipeline Definitions .py]
Config -->|Reads| ResourcesEnv[Resource Configs .env]
%% Instantiation of Operations
Pipeline -->|Uses ResourceConfig| Factory[CONNECTOR_FACTORY]
Factory -->|Creates| DBConn[DatabaseConnector: SqlServer, SQLite]
DBConn -->|Provides Engine to| DBOps[DatabaseOperations]
Pipeline -->|Uses FileSettings| FileOps[FileOperations]
%% Pipeline dependencies
Pipeline -->|Contains| DBOps
Pipeline -->|Contains| FileOps
%% Audit
Pipeline -->|Uses| AuditOps[Audit DatabaseOperations]
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 easy_data_loader-0.1.1.tar.gz.
File metadata
- Download URL: easy_data_loader-0.1.1.tar.gz
- Upload date:
- Size: 33.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
060bcea5eec34c424da9fa033b43420736d0fa84932c56c755d932f9a3581b85
|
|
| MD5 |
19b471fb71c03a73ff9a472e0f5c4425
|
|
| BLAKE2b-256 |
1ff54e8aad4e5479637cac840e02ab520b72b2001beb5d39bea037a8e98688e0
|
Provenance
The following attestation bundles were made for easy_data_loader-0.1.1.tar.gz:
Publisher:
publish.yml on whatever82/easy_data_loader
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
easy_data_loader-0.1.1.tar.gz -
Subject digest:
060bcea5eec34c424da9fa033b43420736d0fa84932c56c755d932f9a3581b85 - Sigstore transparency entry: 1188987287
- Sigstore integration time:
-
Permalink:
whatever82/easy_data_loader@c3c6263d2f7d7fd29d4bd41160319c78e7e89847 -
Branch / Tag:
refs/tags/v0.1.1 - Owner: https://github.com/whatever82
-
Access:
private
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@c3c6263d2f7d7fd29d4bd41160319c78e7e89847 -
Trigger Event:
push
-
Statement type:
File details
Details for the file easy_data_loader-0.1.1-py3-none-any.whl.
File metadata
- Download URL: easy_data_loader-0.1.1-py3-none-any.whl
- Upload date:
- Size: 32.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d3801504376691eff36f6464e82335f6a400695923d0f4b2668b0d532c590679
|
|
| MD5 |
a6480c143fd3492c2ec531ca59d91b10
|
|
| BLAKE2b-256 |
1a407ebf2a88da65dde4c6f160f76cb2bccbe556f2fb575f1731b893de16b23a
|
Provenance
The following attestation bundles were made for easy_data_loader-0.1.1-py3-none-any.whl:
Publisher:
publish.yml on whatever82/easy_data_loader
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
easy_data_loader-0.1.1-py3-none-any.whl -
Subject digest:
d3801504376691eff36f6464e82335f6a400695923d0f4b2668b0d532c590679 - Sigstore transparency entry: 1188987290
- Sigstore integration time:
-
Permalink:
whatever82/easy_data_loader@c3c6263d2f7d7fd29d4bd41160319c78e7e89847 -
Branch / Tag:
refs/tags/v0.1.1 - Owner: https://github.com/whatever82
-
Access:
private
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@c3c6263d2f7d7fd29d4bd41160319c78e7e89847 -
Trigger Event:
push
-
Statement type: