Biblioteca para gerenciamento de pessoas e endereços, utilizando banco de dados em memória com SQLModel.
Project description
PERSONADRESSsaraivagustavo
Biblioteca para gerenciamento de pessoas e endereços, utilizando banco de dados com SQLModel.
📜 Descrição
PERSONADRESSsaraivagustavo é uma biblioteca Python que fornece uma arquitetura robusta de serviços (Service) e repositórios (Repository) para gerenciar entidades como Pessoas e Endereços. 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
Pessoa(com relacionamento para Endereços) eEndereco. - Arquitetura em Camadas: Separação clara de responsabilidades com:
- Models: Modelos de tabela do banco de dados.
- DTOs: Objetos de Transferência de Dados (
PessoaCreate,EnderecoUpdate, 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.
- Pronto para FastAPI: Inclui utilitários prontos para injeção de dependência (
SessionDep) e inicialização (init_db).
📦 Instalação
Você pode instalar a biblioteca diretamente do PyPI:
pip install PERSONADRESSsaraivagustavo
A biblioteca requer sqlmodel, typing_extensions e fastapi, que serão instalados automaticamente.
🚀 Uso Rápido (Quick Start)
Aqui está um exemplo básico de como usar a biblioteca para criar uma pessoa e um endereço.
Python
from sqlmodel import Session
from PALib.database.database import init_db, engine
from PALib.models.models import Pessoa, Endereco
from PALib.models.dto import PessoaCreate, EnderecoCreate
from PALib.repository.base import Repository
from PALib.service.service import Service
# 1. Inicialize o banco de dados (cria as tabelas)
# Você só precisa executar isso uma vez na sua aplicação.
init_db()
# 2. Instancie os Repositórios e Serviços
pessoa_repo = Repository(Pessoa)
pessoa_service = Service(pessoa_repo)
endereco_repo = Repository(Endereco)
endereco_service = Service(endereco_repo)
# 3. Use o serviço para criar uma pessoa
with Session(engine) as session:
try:
# Criando uma Pessoa
nova_pessoa_data = PessoaCreate(
nome="Gustavo Saraiva",
idade=20,
email="gustavosaraiva@email.com"
)
pessoa_criada = pessoa_service.create(session, nova_pessoa_data)
print(f"Pessoa criada com sucesso!")
print(f"ID: {pessoa_criada.id}, Nome: {pessoa_criada.nome}")
# Criando um Endereço para essa Pessoa
novo_endereco_data = EnderecoCreate(
logradouro="Rua do Teste",
numero=123,
estado="ES",
cidade="Vila Velha",
bairro="TestesPython",
id_pessoa=pessoa_criada.id
)
endereco_criado = endereco_service.create(session, novo_endereco_data)
print(f"Endereço criado com sucesso!")
print(f"ID: {endereco_criado.id}, Logradouro: {endereco_criado.logradouro}")
# Listando todas as pessoas
todas_as_pessoas = pessoa_service.list(session)
print(f"\nTotal de pessoas no banco: {len(todas_as_pessoas)}")
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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file personadresssaraivagustavo-0.1.1.tar.gz.
File metadata
- Download URL: personadresssaraivagustavo-0.1.1.tar.gz
- Upload date:
- Size: 6.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
712753a0635c9c649d1fd490751af1933c20c1614101600bd8207188546cedd2
|
|
| MD5 |
bf08759884581c0579be679798b436b4
|
|
| BLAKE2b-256 |
2439ecbc9f00dde4fe96bcf7b41aee2b419b0853c8cb153b308232919a459f69
|
File details
Details for the file personadresssaraivagustavo-0.1.1-py3-none-any.whl.
File metadata
- Download URL: personadresssaraivagustavo-0.1.1-py3-none-any.whl
- Upload date:
- Size: 8.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1785a8f167a92212708b211e5f891dece056dcf432fcce5bc589342c995438be
|
|
| MD5 |
9e23f28e37d536e0a5c3180a67dd6800
|
|
| BLAKE2b-256 |
486c1f4d10095cb3730770a909e5d9d89d6737a1e64f8aaf66139f7e8772e2f9
|