Release PyFlunt v2.1.0
🐍 PyFlunt: Padrão de Notificação de Domínio
Registro de Alterações
Todas as alterações notáveis neste projeto serão documentadas neste arquivo.
O formato é baseado em Mantenha um Registro de Alterações, e este projeto adere ao Versionamento Semântico.
[Não Lançado]
- Adicionar validação de GUID #11
- Adicionar mensagens padronizadas em PT-BR e EN #18
- Adicionar validação de DateTime #27
- Adicionar validação de Números #28
- Adicionar validação de documentos #29
- Adicionar validação de Listas #30
- Adicionar validação de Objetos #31
- Adicionar validação de Regex #32
- Adicionar validação de URL #33
[2.1.0] - 2024-02-24
Adicionado
- CONTRIBUTING em PT-BR e EN #39
- CODE_OF_CONDUCT em PT-BR e EN #40
- README em PT-BR #41
- CHANGELOG em PT-BR e EN #42
- SECURITY em PT-BR e EN #43
- FUNDING #44
- Pull Request Template em PT-BR #45
- Issue Template Bug Report em PT-BR #46
- Issue Template Feature Report em PT-BR #47
- Issue Template Vulnerability Report em PT-BR #48
Corrigido
- Bug que impedia rodar no python v3.9 #36
🚀 Último Lançamento v2.1.0
O PyFlunt auxilia você a implementar o Padrão de Notificação de Domínio em sua aplicação, permitindo centralizar erros e mudanças em determinadas ações e entidades.
O Flunt surgiu para atender duas necessidades principais: substituir exceções no nível de domínio da aplicação e reduzir a quantidade de IFs, usando uma abordagem baseada em contratos.
Basicamente, o Flunt adiciona uma lista de Notificações à sua classe e oferece diversos métodos para interagir com ela.
➡️ Como usar
🔧 Instalação
pip install flunt
🔔 Notifiable
from flunt.notifiable import Notifiable
from flunt.notification import Notification
class Nome(Notifiable):
def __init__(self, nome):
super().__init__()
if len(nome) > 3:
self.add_notification(
Notification(field='nome', message='nome inválido')
)
self._nome = nome
📜 Contract
"""Módulo Objetos de Valor."""
from flunt.notifiable import Notifiable
from flunt.contract import Contract
class Nome(Notifiable):
"""Classe Objeto de Valor Nome."""
def __init__(self, primeiro_nome, ultimo_nome):
"""Encontrar 'Construtor'."""
super().__init__()
self.primeiro_nome = primeiro_nome
self.ultimo_nome = ultimo_nome
self.add_notifications(
Contract()
.requires(self.primeiro_nome, 'primeiro nome')
.requires(self.ultimo_nome, 'último nome')
.is_greater_than(
value=self.primeiro_nome,
comparer=3,
key="primeiro_nome",
message="Mínimo de 3 caracteres",
)
.is_greater_than(
value=self.ultimo_nome,
comparer=3,
key="ultimo_nome",
message="Mínimo de 3 caracteres",
)
.get_notifications()
)
nome = Nome('Emerson', 'Delatorre')
if not nome.is_valid():
for notification in nome.get_notifications():
print(notification)
🎉 Experimente o PyFlunt e contribua com este projeto open source! Junte-se à comunidade para melhorar e expandir esta biblioteca essencial para o desenvolvimento Python! 🚀