pyhorus
Wrapper Python para a API Horus de controle de acesso.
Requisitos
- Python >= 3.13
- uv para gerenciamento de dependências
Instalação
uv sync
Uso
from horus.horus import HorusWrapper
from horus.models import Cadastro, Bloqueio
wrapper = HorusWrapper(
base_url="https://exemplo.com/horus/api",
username="usuario",
password="senha",
)
token = wrapper.get_token()
# Listagens
wrapper.listar_controladora(token=token)
wrapper.listar_rota(token=token)
wrapper.listar_cartao_avulso(token=token)
# Histórico de log em um intervalo de datas
for data in wrapper.get_date_list("2026-01-01", "2026-01-31"):
wrapper.listar_log_historico(token=token, data=data)
# Inserir um novo acesso
cadastro = Cadastro(
nome="Fulano de Tal",
codpes=123456,
nrodoc=112233,
tipodoc="RG",
email="fulano@example.com",
idrota=1,
idhorario=1,
validadeini="2026-01-01",
validadefim="2026-12-31",
gerarqrcode="S",
observacao="",
)
wrapper.inserir_acesso(token=token, cadastro=cadastro)
# Bloquear um acesso existente
bloqueio = Bloqueio(
codpes=123456,
nrodoc=112233,
tipodoc="RG",
idrota=1,
observacao="Acesso bloqueado",
)
wrapper.bloquear_acesso(token=token, bloqueio=bloqueio)
Testes
Os testes usam pytest e requests-mock para simular as respostas da API, sem realizar chamadas de rede reais.
uv run pytest
Para gerar o relatório de cobertura:
uv run pytest --cov=horus --cov-report=term-missing
Estrutura do projeto
horus/
horus.py # HorusWrapper: cliente HTTP para a API Horus
models.py # Modelos Pydantic (Cadastro, Bloqueio)
tests/
conftest.py
test_horus.py
Release files for pyhorus 0.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| pyhorus-0.1.0.tar.gz | 42.7 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| pyhorus-0.1.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 47.2 kB
Release files / pyhorus-0.1.0.tar.gz
| Download URL | pyhorus-0.1.0.tar.gz |
|---|---|
| Size | 42.7 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
c80569b5294a27f479358295afa51d331019bb35c070c691b7f88a579bf53714
|
|
BLAKE2b-256 checksum How to use checksums |
a34b4b2327b83dababd229ed0b18304039aa761f1a6011087c3f6f9f65f4a454
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.11.29 {"installer":{"name":"uv","version":"0.11.29","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Zorin OS","version":"18","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|
Release files / pyhorus-0.1.0-py3-none-any.whl
| Download URL | pyhorus-0.1.0-py3-none-any.whl |
|---|---|
| Size | 4.5 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
a3f5d56b9faaca1c379d1634074e8d9d52c7bf8b5771afbd70b39c75a2837d6f
|
|
BLAKE2b-256 checksum How to use checksums |
19ab756e5c365d72ec81790778990e47956ebbb39cf29352327de665b5481800
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.11.29 {"installer":{"name":"uv","version":"0.11.29","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Zorin OS","version":"18","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|