Skip to main content

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

Project description

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.

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

herolibsaraivagustavo-0.1.0.tar.gz (7.4 kB view details)

Uploaded Source

Built Distribution

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

herolibsaraivagustavo-0.1.0-py3-none-any.whl (7.0 kB view details)

Uploaded Python 3

File details

Details for the file herolibsaraivagustavo-0.1.0.tar.gz.

File metadata

  • Download URL: herolibsaraivagustavo-0.1.0.tar.gz
  • Upload date:
  • Size: 7.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.14

File hashes

Hashes for herolibsaraivagustavo-0.1.0.tar.gz
Algorithm Hash digest
SHA256 d685fcb49e40bfa24cfc97702b95baa72d5acffa899826806eac2a0bf0c9e488
MD5 6de70c13eefac6b67a3bdb54d28f1e51
BLAKE2b-256 33187f83bbbdc4cb5d430ead18faede4a00464fe7138821e5b1c80d4d3315d7e

See more details on using hashes here.

File details

Details for the file herolibsaraivagustavo-0.1.0-py3-none-any.whl.

File metadata

File hashes

Hashes for herolibsaraivagustavo-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 da6319fd301b22d9152b83ed0c00b88c4249afb8007d2c68d9702b6785fc2460
MD5 8a18ae99629db14d9a30cd9e27224ad4
BLAKE2b-256 6559c5a1d54cc016fb9301a704b26692210910e47f13df09ca4356eb8dae3a92

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