Package for creating ETL environments for data analysis
Reason this release was yanked:
deprecated
Project description
Fragua
Fragua is a modular Python library for modeling and orchestrating ETL / ELT workflows through explicit execution environments, strong domain boundaries, and a centralized orchestration model.
Fragua is designed as an educational and experimental framework focused on clarity of architecture, predictable execution, and explicit responsibility separation.
Core Concept
In Fragua, everything happens inside an Environment.
An Environment represents an isolated execution context that owns:
- Component lifecycle and configuration
- Security and execution boundaries
- Runtime state and metadata
- Data persistence and traceability
Agents do not exist or operate independently.
They are created, configured, and executed exclusively within an Environment.
Environment Responsibilities
The Environment is the central orchestrator of the system. It is responsible for:
- Initializing the Warehouse
- Managing action contexts:
extract,transform,load - Registering and resolving all components
- Enforcing security and execution boundaries
- Providing a unified API for component lifecycle management
- Exposing a structured summary of the runtime state
Multiple environments can coexist, each representing a separate pipeline, experiment, or workflow.
Unified Component Management
All components in Fragua are managed through a single, unified CRUD API exposed by the Environment.
Components are always resolved by:
- Action (
extract,transform,load) - Component type (
agent,params,function,style)
This applies consistently to all operations:
- Create
- Read
- Update
- Delete
This design avoids duplicated logic, reduces coupling, and guarantees consistent behavior across the system.
Agents and Execution Model
Fragua defines three agent roles:
- Extractor — Retrieves data from external sources
- Transformer — Applies transformations or enrichment logic
- Loader — Persists or delivers processed data
Agents:
- Are instantiated exclusively by the Environment
- Receive mandatory execution credentials
- Resolve configuration only through registered components
- Interact with data exclusively via the Warehouse
- Follow a standardized execution workflow
Agents act as controlled executors, not as owners of state or configuration.
Security Model
Fragua enforces an explicit internal security model:
- The Environment issues execution credentials
- Agents consume credentials to operate
- The Warehouse validates credentials for protected operations
This guarantees that no agent can execute or access data outside a valid environment context.
Domain-Driven Typing
Fragua uses a strongly typed, enum-based domain vocabulary.
Enums define all core concepts, including:
- Actions and component types
- Agent roles
- Storage and target types
- Operations, fields, and attributes
This approach:
- Eliminates magic strings
- Centralizes validation
- Improves IDE support and static analysis
- Provides a clear and extensible domain language
Concise enum aliases are exported for ergonomic usage without sacrificing type safety.
Component Architecture
Fragua follows a layered component model:
-
FraguaComponent
Base abstraction for all registrable elements. -
FraguaSet
Generic in-memory container responsible for:- CRUD operations
- Validation
- Summaries
-
FraguaRegistry
Runtime structure that groups multipleFraguaSetinstances by action and component type.
This separation ensures clarity between existence, organization, and orchestration.
Warehouse and Data Traceability
Each Environment owns a Warehouse, which acts as the single source of truth for data artifacts.
The Warehouse provides:
- Controlled data operations
- Full movement logging with timestamps
- Undo support for destructive actions
- Metadata-based summaries and inspection
Key Characteristics
- Environment-centric orchestration
- Unified component lifecycle management
- Explicit security boundaries
- Strongly typed domain model
- Isolated execution contexts
- Centralized storage and traceability
- Clear separation of responsibilities
Project Structure
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.7.0.tar.gz.
File metadata
- Download URL: fragua-0.7.0.tar.gz
- Upload date:
- Size: 40.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ce30c22c211141ebb664d5e4567de6d0012755e81eb1a4b883c5878fbc956c43
|
|
| MD5 |
1e837868dfca96590b835c50b3a8bba5
|
|
| BLAKE2b-256 |
506f3d4a2c12684c1b64f59360cb233090249c3bb82f720ed5f06a35adad94d7
|
File details
Details for the file fragua-0.7.0-py3-none-any.whl.
File metadata
- Download URL: fragua-0.7.0-py3-none-any.whl
- Upload date:
- Size: 56.1 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 |
bc2eedb57a9c5224960a696dd5f27463c29e4f93c1b61a9191835672668dd121
|
|
| MD5 |
e564195977bcf7dbd316763bf6f36de4
|
|
| BLAKE2b-256 |
4bb5f5524d03007b6afd0459d89bf32b46c0b8035fdd9fbbc77e524346fad2e5
|