Skip to main content

Sistema de login Canaimé para gerenciamento de unidades prisionais.

Reason this release was yanked:

Problemas na importação relativa do Python.

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

  1. 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);
  2. Fluxo de login assíncrono:

    • Utiliza o QThread (via subclassificação de QThread) para executar o processo de login sem travar a interface;
  3. Retorno do resultado:

    • Retorna o objeto Page logado (do Playwright) para uso em aplicações reais;
    • Permite também, em modo de desenvolvimento, obter as credenciais digitadas.

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
    ├── 📄 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ódulo model.py utiliza 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ódulo view.py implementa 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ódulo controller.py conecta a View e o Model. Utiliza um QThread (via subclassificação de QThread na classe LoginThread) 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 objeto Page logado.

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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

login_canaime-1.0.0.tar.gz (15.5 kB view details)

Uploaded Source

Built Distribution

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

login_canaime-1.0.0-py3-none-any.whl (15.9 kB view details)

Uploaded Python 3

File details

Details for the file login_canaime-1.0.0.tar.gz.

File metadata

  • Download URL: login_canaime-1.0.0.tar.gz
  • Upload date:
  • Size: 15.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.1

File hashes

Hashes for login_canaime-1.0.0.tar.gz
Algorithm Hash digest
SHA256 0c7d613193f5f1c1299deffafdc6c29d5996a942f495f2617cd2f41939e8d1ec
MD5 09a46556a6d4fb0209644d94ea3106a5
BLAKE2b-256 81aaae578ca8c983b809022347e130ee81aa9c190acd545813d7bba56bda2ac4

See more details on using hashes here.

File details

Details for the file login_canaime-1.0.0-py3-none-any.whl.

File metadata

  • Download URL: login_canaime-1.0.0-py3-none-any.whl
  • Upload date:
  • Size: 15.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.1

File hashes

Hashes for login_canaime-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 87d37b98714aea35226ea008ee1a2c0be927eae9a12cd284966d9c03e8d34d5b
MD5 718b6a83aef32c1595714ebb35a4d676
BLAKE2b-256 8f8d1c91e525367772d07d57bf979f8e91311f037419e82b59e9714fd8b707fb

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