Sistema de login Canaimé para gerenciamento de unidades prisionais.
Reason this release was yanked:
Não funciona
Project description
Login Canaimé
Login Canaimé é uma biblioteca Python que fornece uma interface gráfica moderna para realizar o login no Sistema Canaimé, um sistema desenvolvido para gerenciar unidades prisionais e facilitar o controle de dados de reeducandos, dados administrativos, visitantes e acesso em tempo real a informações para órgãos como a Justiça, Defensoria Pública e Ministério Público.
A biblioteca integra o Model, View e Controller para fornecer um fluxo de login robusto e reutilizável. Além disso, ela utiliza o PySide6 para a interface gráfica e o Playwright para automatizar o processo de login, permitindo a execução em modo headless (para produção) ou não-headless (para testes).
Características
-
Interface moderna e personalizável:
- Janela sem borda e fundo translúcido;
- Campos de e-mail e senha (este último com caracteres ocultos);
- Ícone personalizado (baixado a partir de uma URL);
- Spinner de carregamento (GIF animado) durante o processo de login;
- Janela arrastável (mesmo sem borda);
-
Fluxo de login assíncrono:
- Utiliza o QThread (via subclassificação de QThread) para executar o processo de login sem travar a interface;
-
Retorno do resultado:
- Retorna o objeto
Pagelogado (do Playwright) para uso em aplicações reais; - Permite também, em modo de desenvolvimento, obter as credenciais digitadas.
- Retorna o objeto
Estrutura do Projeto
📦 login-canaime_project/ # Diretório raiz do projeto
├── ⚙️ config.py # Configurações globais do projeto
├── 📋 requirements.txt # Lista de dependências do projeto
├── 🛡️ LICENSE # Arquivo de licença do projeto
├── 📖 README.md # Documentação do projeto
└── 📦 loginCanaime/ # Pacote principal
├── 📄 __init__.py # Inicializa o pacote e expõe a classe Login
├── 📄 __main__.py # Ponto de entrada do pacote loginCanaime
├── 📄 model.py # Lógica de negócio (Model, utilizando Playwright)
├── 📄 view.py # Interface gráfica (View, utilizando PySide6)
├── 📄 controller.py # Controle de fluxo (Controller, utilizando QThread)
└── 📄 main.py # Funções principais para login
Instalação
O pacote pode ser instalado via pip. Depois de empacotar o projeto (o nome de distribuição é login-canaime), você pode instalá-lo com:
pip install login-canaime
Observação:
O nome do pacote para importação éloginCanaime. Isso significa que, após a instalação, você usará:from loginCanaime import Login
Uso
Exemplo de Uso em Produção
Para iniciar o fluxo de login e obter o objeto Page logado (útil para integrar com outras aplicações que utilizam o Playwright):
from loginCanaime import Login
# Inicia o login; o parâmetro test_mode=False faz com que o navegador rode em modo headless
page = Login.run(test_mode=False)
if page:
print("Login efetuado com sucesso!")
# Utilize o objeto page conforme necessário...
else:
print("Falha no login ou o login foi cancelado.")
Exemplo de Uso em Desenvolvimento
Se você quiser apenas obter as credenciais digitadas (por exemplo, para testes):
from loginCanaime import Login
credentials = Login.get_credentials(test_mode=False)
print("Credenciais digitadas:", credentials)
Funcionamento Interno
-
Model:
O módulomodel.pyutiliza o Playwright para abrir o navegador, navegar até a página de login e preencher os campos de usuário e senha.
Ele utiliza uma heurística baseada no conteúdo de um elemento específico da página para confirmar o sucesso do login e retorna uma tupla(True, full_name, page)ou(False, "", None). -
View:
O móduloview.pyimplementa a interface gráfica com PySide6, contendo campos para e-mail e senha, botão de login, label de status e um spinner de carregamento (GIF).
A interface é configurada sem borda, com um ícone personalizado (baixado de uma URL) e permite arrastar a janela. -
Controller:
O módulocontroller.pyconecta a View e o Model. Utiliza um QThread (via subclassificação de QThread na classeLoginThread) para executar o login de forma assíncrona, mantendo a interface responsiva.
O Controller finaliza o aplicativo automaticamente assim que o login é concluído, retornando o objetoPagelogado.
Contribuição
Contribuições são bem-vindas! Se você deseja melhorar o código, adicione novas funcionalidades ou corrigir problemas, sinta-se à vontade para abrir issues ou enviar pull requests.
Contato
Anderson Assunção – andersongomesrr@hotmail.com
Projeto disponível em: https://github.com/A-Assuncao/login-canaime_project
Licença
Este projeto está sob a licença MIT. Veja o arquivo LICENÇA para mais detalhes.
Desenvolvido com ♥ e Python.
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 login_canaime-1.0.1.tar.gz.
File metadata
- Download URL: login_canaime-1.0.1.tar.gz
- Upload date:
- Size: 13.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.1
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d48e4f1572e0af070f88eaccbe0fe90ce92fa1d10e8466c646df256706756fe6
|
|
| MD5 |
42887c7388deadf8d093b0af34f17125
|
|
| BLAKE2b-256 |
8e62bd128b38409de83879142faaade7d68e4a27fa4600fb96f94152f86c3272
|
File details
Details for the file login_canaime-1.0.1-py3-none-any.whl.
File metadata
- Download URL: login_canaime-1.0.1-py3-none-any.whl
- Upload date:
- Size: 13.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.1
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
dc4aa6ffd6ac19f415c03cb43f781009b9f57977d8d40aa4f318e3ec09e03083
|
|
| MD5 |
8f3999e9bc9c1e2e44ef60f5f58ebeef
|
|
| BLAKE2b-256 |
6c49d46d4bc44d6db2493f1141ddb564d57f89f39223822034b96678e47840d1
|