Skip to main content

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, functions y params pueden registrarse dentro de un Environment.

Características principales

  • Modelado de entornos (Environment) para aislar y organizar instancias de trabajo.
  • Agentes (Extractor, Transformer, Loader) con pipeline común, capacidad de undo y registro de operaciones.
  • Registries para params, functions y styles.
  • Tipos de almacenamiento (Storage, Box, Container) y un Warehouse centralizado.
  • 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

  1. Crear una clase en fragua/styles que implemente el método use.
  2. Crear los Params necesarios en fragua/params.
  3. 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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

fragua-0.3.2.tar.gz (28.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

fragua-0.3.2-py3-none-any.whl (39.5 kB view details)

Uploaded Python 3

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

Hashes for fragua-0.3.2.tar.gz
Algorithm Hash digest
SHA256 2001edab4040f8f0c0af0783fb64aeec80785325ebafc11c38c4cd4e9ba7bd0d
MD5 db134f8a66e682ce131d0a463116f5f7
BLAKE2b-256 0852c232325cbfdd41c244701974f8b7d2452ac975e1bc676b3fbd4fc18003f5

See more details on using hashes here.

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

Hashes for fragua-0.3.2-py3-none-any.whl
Algorithm Hash digest
SHA256 21a7112e94f811dc5eb9e065464ed7af7194bc83e237a9c03684e298e37cb7bf
MD5 8c8180111a10202842073f2504590d08
BLAKE2b-256 b86be9c848cfb92c53ff26ff860f2ba9e99e09ebdba0e17af935180fc1ebd209

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page