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.2.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.2.0.tar.gz | 52.2 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| pyhorus-0.2.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 57.0 kB
Release files / pyhorus-0.2.0.tar.gz
| Download URL | pyhorus-0.2.0.tar.gz |
|---|---|
| Size | 52.2 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
568a6f7d013b069370f097e138c4156e7b8a253c51cfd606c5e63c1d6b0c2c6a
|
|
BLAKE2b-256 checksum How to use checksums |
89a47d0e84c04a5ac5d7e4800106a6e99ef99361ed287b15b509d25465bf3061
|
| 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.2.0-py3-none-any.whl
| Download URL | pyhorus-0.2.0-py3-none-any.whl |
|---|---|
| Size | 4.9 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
5eedd3bffc458d2d122e15fa9e1cbb0d1bdef70804d52ffbaed4064b2a80d853
|
|
BLAKE2b-256 checksum How to use checksums |
241cefde0131e37cf8c9be88e1ea5ce6fd0752dbe6e8ff28ecab29740a8e9527
|
| 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}
|