Skip to main content

Code generation toolkit for data engineering

Project description

DaedalusPy

Visão Geral

DaedalusPy é um framework para engenharia de dados, criado para acelerar a construção de bibliotecas de dados corporativas e pipelines analíticos modulares, com foco em padronização, governança, reuso e produtividade em ambientes cloud ou multi-cloud.

Pensando principalmente para utilização junto a ferramentas como azure synapse, Databricks e outros serviços de dados em nuvem, DaedalusPy permite que engenheiros de dados criem soluções robustas e escaláveis com facilidade.

Com o foco em trazer 2 grandes blocos de funcionalidades:

Bibliotecas de Dados Corporativas

Bibliotecas de dados unificadas que centralizam entidades, domínios, validações e funções reutilizáveis, promovendo reuso e governança. Recomendamos que alguém próximo ao DevOps utilize e disponibilize as bibliotecas para os engenheiros de dados, garantindo que todos sigam os mesmos padrões e práticas recomendadas.

Apesar do foco em da biblioteca em dados, incentivamos que ela assim como o datalake sejam vistos como um middleware, onde os processos que dependem de dados na companhia falem uma só linguagem de negócio, independente de onde os dados estejam armazenados.

Pipelines Analíticos Modulares

Pipelines analíticos modulares que permitem a construção de fluxos de trabalho complexos de forma simples e reutilizável. Com componentes desacoplados e configuráveis, os engenheiros de dados podem orquestrar processos de ETL, transformação e análise de dados de maneira eficiente.

Objetivos

  • Padronizar a modelagem, transformação e integração de dados em projetos analíticos.
  • Centralizar entidades, domínios, validações e funções reutilizáveis.
  • Facilitar a construção, orquestração e manutenção de pipelines robustos e escaláveis.
  • Promover governança, versionamento e documentação centralizada.

Macro Entregas (Explicação Detalhada)

  1. Geração de Bibliotecas de Dados

    • O que faz: Cria a estrutura base de uma biblioteca de dados corporativa, centralizando entidades, configurações, serviços e ferramentas reutilizáveis.
    • Comando:
      daedaluspy create-lib <nome> [--dataname <entidade>] [--systemname <domínio>]
      
    • Como funciona: Gera uma pasta <libname>/ com subpastas para config/, data/, service/, tools/ e arquivos essenciais. Isso garante que todo projeto siga o mesmo padrão e facilite o reuso entre times.
    • Quando usar: Sempre que iniciar um novo domínio de dados ou projeto analítico.
  2. Geração de Entidades de Dados

    • O que faz: Cria classes de entidades de negócio (ex: ClienteEntity) já com estrutura OOP, enums, validações e templates prontos para uso.
    • Comando:
      daedaluspy create-data <ClasseEntidade> --tier <raw|clear|model> --cloud <azure|aws|google> [--columns ...]
      
    • Como funciona: Gera arquivos Python na estrutura correta, com métodos, validações e documentação, prontos para serem usados em pipelines e serviços.
    • Quando usar: Sempre que precisar modelar uma nova entidade de dados, seja para ingestão, transformação ou consumo.
  3. Geração de Serviços

    • O que faz: Cria serviços de integração (ex: APIs, bancos de dados) já integrados à biblioteca, seguindo padrões de OOP e enums.
    • Comando:
      daedaluspy create-service <NomeServico> --type <api|database> [--models ...]
      
    • Como funciona: Gera a estrutura de serviço, facilitando integrações externas e padronizando o acesso a dados.
    • Quando usar: Sempre que precisar integrar uma nova fonte ou destino de dados ao seu ecossistema.
  4. Geração de Pipelines

    • O que faz: Cria a estrutura de um pipeline modular, pronto para orquestração, sem subpastas desnecessárias e com todos os arquivos essenciais (main, config, steps, etc).
    • Comando:
      daedaluspy create-pipeline <domínio> <entidade> --tier <raw|clear|model> --output <pasta> [--template_type ...] [--lib_name ...] [--cloud_provider ...] [--entity_target ...] [--entity_target_class ...]
      
    • Como funciona: Gera uma pasta do pipeline diretamente no local especificado, pronta para receber a lógica de negócio e ser executada.
    • Quando usar: Sempre que precisar criar um novo fluxo de ingestão, transformação ou entrega de dados, reaproveitando entidades e serviços da biblioteca.

Cada comando do DaedalusPy foi desenhado para garantir padronização, acelerar o desenvolvimento e permitir que o engenheiro de dados foque no que realmente importa: a lógica de negócio e a entrega de valor. O CLI não substitui o trabalho do desenvolvedor, mas elimina o retrabalho estrutural e direciona o padrão arquitetural do projeto.

Casos de Uso Reais

  • Criar biblioteca de dados corporativa:

    daedaluspy create-lib corp_data
    
  • Adicionar entidade de negócio:

    daedaluspy create-data ClienteEntity --tier raw --cloud azure
    
  • Adicionar serviço de integração:

    daedaluspy create-service Salesforce --type api
    
  • Gerar pipeline para domínio/entidade/camada:

    daedaluspy create-pipeline vendas ClienteEntity --tier clear --output .
    

Estrutura Gerada (Exemplo Real)

corp_data/
  config/
    __init__.py
    config.py
  data/
    raw/
      __init__.py
      ClienteEntity.py
    clear/
    model/
  service/
    salesforce/
      __init__.py
  tools/
    logger/
      __init__.py
  __init__.py
  README.md
  setup.py

vendas_ClienteEntity_clear/
  __init__.py
  base.py
  config.py
  flowbuilder.py
  steps.py
  main.py
  README.md
  requirements.txt

Fluxo de Trabalho Típico

  1. Crie a biblioteca:
    daedaluspy create-lib corp_data
  2. Adicione entidades e serviços:
    daedaluspy create-data ClienteEntity --tier raw --cloud azure
    daedaluspy create-service Salesforce --type api
  3. Gere o pipeline:
    daedaluspy create-pipeline vendas ClienteEntity --tier clear --output .
  4. Implemente lógica e execute.

Melhores Práticas

  • Use o CLI para gerar a estrutura base e arquivos padronizados.
  • Implemente a lógica de negócio, transformações e integrações nos arquivos gerados.
  • Siga os padrões do desenvolvimento orientado a objetos (OOP) e templates definidos pelo framework.
  • Evite alterar manualmente a estrutura dos arquivos base gerados pelo CLI (exceto para lógica de negócio).
  • Mantenha a biblioteca centralizada e versionada.
  • Use templates para padronizar lógica e documentação.

Público-Alvo

  • Engenheiros e arquitetos de dados
  • Times de analytics, BI e governança

Licença

MIT

Documentação Detalhada

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

daedaluspy-1.0.2.tar.gz (44.2 kB view details)

Uploaded Source

Built Distribution

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

daedaluspy-1.0.2-py3-none-any.whl (54.6 kB view details)

Uploaded Python 3

File details

Details for the file daedaluspy-1.0.2.tar.gz.

File metadata

  • Download URL: daedaluspy-1.0.2.tar.gz
  • Upload date:
  • Size: 44.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.2

File hashes

Hashes for daedaluspy-1.0.2.tar.gz
Algorithm Hash digest
SHA256 345c493097f93ba8503058dbb23d31d26c84763e6f141ea61b1c1ebb806c5b04
MD5 149c08a3620751d47a31b55d608c3873
BLAKE2b-256 5300bf7d6817dfef968e727a9f032f1d4369e84cb7d7c88b38c07d5e1a26a7dc

See more details on using hashes here.

File details

Details for the file daedaluspy-1.0.2-py3-none-any.whl.

File metadata

  • Download URL: daedaluspy-1.0.2-py3-none-any.whl
  • Upload date:
  • Size: 54.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.2

File hashes

Hashes for daedaluspy-1.0.2-py3-none-any.whl
Algorithm Hash digest
SHA256 7d9c6a6a8d1eab8a3cc9e659264c8a1c37ac995bcee24c300c97067dcf8ae745
MD5 e83636821b9852e454a76cf644030951
BLAKE2b-256 e575f6d4e1933b41ea7a8589b93404890ec4d2e7db9c5955af02fc36b8f56d41

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