Package for creating ETL environments for data analysis
Reason this release was yanked:
deprecated
Project description
Fragua
Fragua es una biblioteca ligera y modular diseñada para construir pipelines ETL/ELT y flujos de procesamiento de datos en Python. Proporciona componentes reutilizables como entornos, agentes, estilos, parámetros y almacenes para orquestar extracción, transformación y carga de datos con trazabilidad y buenas prácticas.
¿Qué es Fragua?
Fragua ofrece una abstracción sobre tareas de integración de datos basada en tres agentes principales:
- Extractor: extrae datos desde distintas fuentes como Excel, CSV o APIs.
- Transformer: transforma o enriquece los datos aplicando reglas o modelos.
- Loader: guarda o entrega los resultados en destinos finales como archivos o bases de datos.
Incluye además un sistema de almacenamiento con:
- Warehouse y WarehouseManager para guardar artefactos intermedios con metadatos y trazabilidad.
- Arquitectura modular donde
styles,functionsyparamspueden registrarse dentro de unEnvironment.
Características principales
- Modelado de entornos (
Environment) para aislar y organizar instancias de trabajo. - Agentes (
Extractor,Transformer,Loader) con pipeline común, capacidad deundoy registro de operaciones. - Registries para
params,functionsystyles. - Tipos de almacenamiento (
Storage,Box,Container) y unWarehousecentralizado. - Utilidades integradas para logging, métricas y resúmenes del estado de ejecución.
Estructura del proyecto
fragua/
├── agents/
├── environments/
├── functions/
├── params/
├── styles/
├── storages/
├── utils/
└── __init__.py
Instalación
Instala Fragua en modo editable desde la raíz del repositorio:
python -m pip install -e .
Consulta requirements.txt para dependencias adicionales.
Ejemplo de uso
import fragua as fg
env = fg.create_fragua("fragua_1", "minimal", True)
env.create_extractor("extractor")
env.create_transformer("transformer")
env.create_loader("loader")
extractor = env.get_agent("extractor")
transformer = env.get_agent("transformer")
loader = env.get_agent("loader")
extractor.work(
"excel",
save_as="extracted_data",
path="./test_files/input_files/test_data.xlsx",
sheet_name=0,
)
transformer.work(
style="report",
apply_to="extracted_data",
save_as="transformed_data",
)
loader.work(
style="excel",
apply_to=["extracted_data", "transformed_data"],
destination="./test_files/output_files",
file_name="output_file",
)
print(env.summary())
Desarrollo
Añadir un nuevo style
- Crear una clase en
fragua/stylesque implemente el métodouse. - Crear los
Paramsnecesarios enfragua/params. - Registrar las clases en los registries o mediante la API del
Environment.
Añadir funciones reutilizables
Crear las funciones dentro de fragua/functions y registrarlas para su uso en la pipeline.
Autor
Santiago Lanz
📍 Desarrollador y creador de Fragua
🌐 Portfolio: https://sagodev.github.io/Portfolio-Web-Santiago-Lanz/
💼 LinkedIn: https://www.linkedin.com/in/santiagolanz/
🐙 GitHub: https://github.com/SagoDev
⚖️ Licencia
Este proyecto se distribuye bajo la licencia MIT.
Consulta el archivo LICENSE para más detalles.
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.3.2.tar.gz.
File metadata
- Download URL: fragua-0.3.2.tar.gz
- Upload date:
- Size: 28.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2001edab4040f8f0c0af0783fb64aeec80785325ebafc11c38c4cd4e9ba7bd0d
|
|
| MD5 |
db134f8a66e682ce131d0a463116f5f7
|
|
| BLAKE2b-256 |
0852c232325cbfdd41c244701974f8b7d2452ac975e1bc676b3fbd4fc18003f5
|
File details
Details for the file fragua-0.3.2-py3-none-any.whl.
File metadata
- Download URL: fragua-0.3.2-py3-none-any.whl
- Upload date:
- Size: 39.5 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 |
21a7112e94f811dc5eb9e065464ed7af7194bc83e237a9c03684e298e37cb7bf
|
|
| MD5 |
8c8180111a10202842073f2504590d08
|
|
| BLAKE2b-256 |
b86be9c848cfb92c53ff26ff860f2ba9e99e09ebdba0e17af935180fc1ebd209
|