Package for creating ETL environments for data analysis
Reason this release was yanked:
deprecated
Project description
Fragua
Fragua is a lightweight, modular Python library designed to model, configure, and orchestrate ETL / ELT workflows through explicit environments and well-defined execution boundaries.
Instead of centering the design around individual agents, Fragua treats the Environment as the primary abstraction: a self-contained execution context that owns configuration, state, components, and data artifacts.
What is Fragua?
Fragua provides an abstraction layer for data integration workflows where everything happens inside an Environment.
An Environment represents a fully isolated workspace that defines:
- Which agents exist
- Which components they can use
- Where data is stored
- How operations are logged and traced
Agents such as extractors, transformers, and loaders do not operate independently; they are created, configured, and executed within an Environment, which guarantees consistency, traceability, and predictable behavior.
The Environment as the Core Concept
The Environment is the central coordinator of the system.
It is responsible for:
- Managing the lifecycle of agents.
- Hosting registries for:
paramsfunctionsstyles
- Providing access to a shared Warehouse.
- Enforcing execution context, configuration rules, and boundaries.
- Exposing structured summaries of the entire runtime state.
This approach allows multiple environments to coexist independently, each one representing a distinct pipeline, experiment, or execution context.
Agents as Environment-Orchestrated Components
Within an Environment, Fragua supports three agent roles:
- Extractor — Retrieves data from external sources.
- Transformer — Applies transformations or enrichment logic.
- Loader — Persists or delivers processed data.
Agents are not global actors. They:
- Are instantiated by the Environment
- Resolve styles, params, and functions exclusively via registries
- Interact with data only through the Environment’s Warehouse
- Follow a standardized execution workflow
This ensures that agents remain stateless orchestrators rather than owners of configuration or data.
Component Registries and Architecture
Fragua uses a layered component model to ensure consistency and extensibility:
- FraguaComponent — Base abstraction for all registrable elements.
- FraguaSet — Generic container responsible for CRUD operations, validation, and summaries.
- FraguaRegistry — Groups related
FraguaSetinstances by action and component type.
All components (styles, functions, params, agents) are registered and resolved through these layers, eliminating implicit coupling and duplicated logic.
Storage, Warehouse, and Traceability
Each Environment owns a Warehouse, which acts as the single source of truth for pipeline artifacts.
Storage management provides:
- Controlled add, get, delete, rename, and copy operations
- Full movement logging with timestamps
- Undo support for destructive actions
- Metadata-based search and snapshotting
Key Features
- Environment-centric workflow orchestration.
- Explicit isolation between pipelines.
- Standardized agent execution model.
- Component-based architecture.
- Centralized storage and traceability.
- Rich
summary()methods with improved docstrings. - Built-in logging and operational metadata.
Project Structure
fragua/
├── core/
├── environments/
├── extract/
├── transform/
├── load/
├── utils/
└── __init__.py
Installation
python -m pip install -e .
⚠️ Fragua is published on PyPI for learning purposes.
It is not recommended for production use yet.
Author
Santiago Lanz
🌐 https://sagodev.github.io/Portfolio-Web-Santiago-Lanz/
💼 https://www.linkedin.com/in/santiagolanz/
🐙 https://github.com/SagoDev
License
MIT License
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 fragua-0.6.0.tar.gz.
File metadata
- Download URL: fragua-0.6.0.tar.gz
- Upload date:
- Size: 40.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
27304e965e46ccaa98cce2a76446319e645cdd855db70c02050a936d1c54f381
|
|
| MD5 |
c401936f1554e64b61b6bbf3a3c677b2
|
|
| BLAKE2b-256 |
42c0b82bfbcc931c25fdaf7f5c1af983d33fc47ad644b49e09314c1dddbed14d
|
File details
Details for the file fragua-0.6.0-py3-none-any.whl.
File metadata
- Download URL: fragua-0.6.0-py3-none-any.whl
- Upload date:
- Size: 54.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f816ba58cfd4ce9c6820ca6213402fb40ed32b06dde8af898032f0e05a668073
|
|
| MD5 |
8749df85cb3b7aab5657b2ca0270f2ac
|
|
| BLAKE2b-256 |
44bce5ae5970fe9f8b3c30fc2fb5017a88449837a079c8d648fae45047ddd77f
|