Skip to main content

ORM leve com introspecção automática para bancos JDBC como Informix, usando integração com wbjdbc.

Project description

PyPI PyPI - Downloads Build Status License: MIT Último Commit GitHub issues GitHub forks GitHub stars

WBORM

WBORM é uma biblioteca ORM leve para Python, projetada para trabalhar com bancos de dados legados via JDBC (Informix, DB2, Oracle, entre outros).
Com foco em transparência, segurança e geração automática de modelos, é a parceira ideal da wbjdbc para entregar produtividade sem esconder o SQL.


✨ Destaques

  • Conexão direta via JDBC usando wbjdbc
  • Geração automática de modelos com introspecção
  • API fluente: .select(), .filter(), .join(), .group_by(), .order_by()
  • Novos JOINs avançados: LEFT ANTI, RIGHT ANTI
  • Pivot dinâmico diretamente do queryset com .pivot()
  • Criação de tabelas temporárias com .create_temp_table()
  • Visualização de resultados com paginação e cores no terminal
  • Filtros flexíveis: strings, expressões, listas, dicionários
  • Operações CRUD com segurança: confirm=True obrigatório
  • Cache de consultas automático, com bypass por .live()
  • Integração direta com Pandas e Spark
  • Criptografia e persistência de modelos em cache local (.wbmodels/)
  • Autocomplete melhorado via stub .pyi gerado automaticamente
  • Suporte a expressões SQL dinâmicas: col(), now(), date(), raw()
  • Totalmente retrocompatível com versões anteriores

📁 Instalação

pip install wborm wbjdbc

🚀 Começando Rápido

1. Conectando via wbjdbc

from wbjdbc import connect_to_db

conn = connect_to_db(
    db_type="informix-sqli",
    host="localhost",
    port=1526,
    database="meubanco",
    user="usuario",
    password="senha",
    server="ol_informix"
)

2. Gerando modelos

from wborm.utils import generate_model, generate_all_models

# Gerar um modelo
generate_model("clientes", conn)

# Gerar todos os modelos
generate_all_models(conn)

Modelos são automaticamente injetados no escopo global com o nome da tabela.


📊 Consultando dados de forma fluente

clientes \
    .select("nome", "idade") \
    .filter("idade > 18") \
    .order_by("nome") \
    .limit(10) \
    .show()

📈 Criando pivôs e tabelas temporárias

# Pivot
clientes.pivot(index="cidade", columns="sexo", values=["idade"])

# Tabela temporária
top10 = clientes.filter("idade > 30").limit(10).create_temp_table("tmp_top10")
top10.show()

🔒 Segurança embutida

  • Operações .add(), .update(), .delete() exigem confirm=True.
  • UPDATE ou DELETE sem WHERE são bloqueados automaticamente.
  • Transações protegidas com BEGIN WORK / COMMIT / ROLLBACK automático.

📦 Cache inteligente

  • Consultas armazenadas automaticamente por 60 segundos.
  • Forçar leitura ao vivo com .live():
clientes.live().filter(ativo=True).all()

🎨 Visualização com cores no terminal

  • Tabelas dinâmicas coloridas:
    • 🔵 Azul para resultados do cache.
    • 🟢 Verde para consultas ao vivo.
  • Paginação automática para grandes volumes de dados.

📚 Documentação Completa

Acesse: https://wanderbatistaf.github.io/wborm

Inclui:

  • Guia de Início Rápido
  • API completa do QuerySet
  • Uso de Pivot e Tabelas Temporárias
  • Geração automática de modelos
  • Cache local e stub de autocomplete

📜 Licença

Este projeto é licenciado sob a Licença MIT. Consulte o arquivo LICENSE para mais informações.


🤝 Contribuindo

Pull requests são bem-vindos!
Sugestões e melhorias podem ser enviadas diretamente no repositório do GitHub.

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

wborm-0.3.2.tar.gz (30.2 kB view details)

Uploaded Source

Built Distribution

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

wborm-0.3.2-py3-none-any.whl (31.2 kB view details)

Uploaded Python 3

File details

Details for the file wborm-0.3.2.tar.gz.

File metadata

  • Download URL: wborm-0.3.2.tar.gz
  • Upload date:
  • Size: 30.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for wborm-0.3.2.tar.gz
Algorithm Hash digest
SHA256 e4491d48e4ccee7b02c4d050e3a290b5837b2446c85ef91149069185aecef664
MD5 0ce43486ce041864137749e73806bcad
BLAKE2b-256 274732e20805a12508767c92c18825b5b2576f7b26777f49ad17f67218cd890f

See more details on using hashes here.

Provenance

The following attestation bundles were made for wborm-0.3.2.tar.gz:

Publisher: publish-package.yml on wanderbatistaf/wborm

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file wborm-0.3.2-py3-none-any.whl.

File metadata

  • Download URL: wborm-0.3.2-py3-none-any.whl
  • Upload date:
  • Size: 31.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for wborm-0.3.2-py3-none-any.whl
Algorithm Hash digest
SHA256 ce2f0f534a1df4fb3bfc070a5380afa1d0692057e802d89b10b1350f60912be0
MD5 fa99f575d6ad8523421b697bf672fccb
BLAKE2b-256 1a1018c8d9e2bfa12b82efea8e5484706bcd9546c87660849f9a44fbf5c86834

See more details on using hashes here.

Provenance

The following attestation bundles were made for wborm-0.3.2-py3-none-any.whl:

Publisher: publish-package.yml on wanderbatistaf/wborm

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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