Skip to main content

HEROLIBsaraivagustavo

PyPI License

Biblioteca para gerenciamento de heróis e seus times, utilizando banco de dados com SQLModel.

📜 Descrição

HEROLIBsaraivagustavo é uma biblioteca Python que fornece uma arquitetura robusta de serviços (Service) e repositórios (Repository) para gerenciar entidades como Heróis e Times. Ela é construída com SQLModel, o que permite fácil interação com o banco de dados e validação de dados em um só lugar.

Esta biblioteca foi projetada para ser facilmente integrada em qualquer aplicação Python, especialmente em APIs web (como FastAPI), fornecendo uma camada de lógica de negócios e acesso a dados limpa e reutilizável.

✨ Recursos

  • Modelos SQLModel: Define modelos de banco de dados claros para Hero e Team.
  • Arquitetura em Camadas: Separação clara de responsabilidades com:
    • Models: Modelos de tabela do banco de dados.
    • DTOs: Objetos de Transferência de Dados (HeroCreate, TeamPublic, etc.) para validação de entrada e saída.
    • Repository: Camada genérica de acesso a dados (CRUD) para interagir com o banco.
    • Service: Camada de lógica de negócios que utiliza os repositórios.
  • Gerenciamento de Sessão: Utilitários para inicializar o banco de dados e gerenciar sessões.

📦 Instalação

Você pode instalar a biblioteca diretamente do PyPI:

pip install HEROLIBsaraivagustavo

A biblioteca requer sqlmodel e typing_extensions, que serão instalados automaticamente.

🚀 Uso Rápido (Quick Start)

Aqui está um exemplo básico de como usar a biblioteca para criar um herói.

from sqlmodel import Session
from HeroLib.util.database import init_db, engine
from HeroLib.models.models import Hero
from HeroLib.models.dto import HeroCreate
from HeroLib.repository.repository import Repository
from HeroLib.service.service import Service

# 1. Inicialize o banco de dados (cria as tabelas)
init_db()

# 2. Instancie o Repositório e o Serviço para o modelo Hero
hero_repo = Repository(Hero)
hero_service = Service(hero_repo)

# 3. Crie os dados do novo herói usando o DTO
novo_heroi_data = HeroCreate(
    name="Saraiva",
    secret_name="gussmm",
    age=20
)

# 4. Use o serviço para criar o herói no banco
with Session(engine) as session:
    try:
        heroi_criado = hero_service.create(session, novo_heroi_data)
        
        print(f"Herói criado com sucesso!")
        print(f"ID: {heroi_criado.id}")
        print(f"Nome: {heroi_criado.name}")
        
        todos_os_herois = hero_service.list(session)
        print(f"\nTotal de heróis no banco: {len(todos_os_herois)}")
        print(todos_os_herois[0])

    except Exception as e:
        print(f"Ocorreu um erro: {e}")

🧑‍💻 Autor

Gustavo Saraiva Mariano
📧 Email: gsaraivam10@gmail.com
💻 GitHub: saraivagustavo

⚖️ Licença

Este projeto é licenciado sob a Licença MIT.

Metadata

Release files for HEROLIBsaraivagustavo 0.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for HEROLIBsaraivagustavo 0.1.0
File Size Uploaded
herolibsaraivagustavo-0.1.0.tar.gz 7.4 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for HEROLIBsaraivagustavo 0.1.0
File Interpreter ABI Platform
herolibsaraivagustavo-0.1.0-py3-none-any.whl Python 3 none any Details

Total release size: 14.4 kB

Release files / herolibsaraivagustavo-0.1.0.tar.gz

Download URL herolibsaraivagustavo-0.1.0.tar.gz
Size 7.4 kB
Tags Source
SHA-256 checksum
How to use checksums
d685fcb49e40bfa24cfc97702b95baa72d5acffa899826806eac2a0bf0c9e488
BLAKE2b-256 checksum
How to use checksums
33187f83bbbdc4cb5d430ead18faede4a00464fe7138821e5b1c80d4d3315d7e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.11.14

Release files / herolibsaraivagustavo-0.1.0-py3-none-any.whl

Download URL herolibsaraivagustavo-0.1.0-py3-none-any.whl
Size 7.0 kB
Tags Python 3
SHA-256 checksum
How to use checksums
da6319fd301b22d9152b83ed0c00b88c4249afb8007d2c68d9702b6785fc2460
BLAKE2b-256 checksum
How to use checksums
6559c5a1d54cc016fb9301a704b26692210910e47f13df09ca4356eb8dae3a92
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.11.14

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page