Aplicacao Tkinter para consultar a API Cube Analytics do AutoStore e exportar os dados para abas de um arquivo Excel existente.
- Chamadas HTTP: centralizadas em
main.pyviaapi_get,BASE_URLeHEADERS. - Autenticacao: header
API-Authorization: Token ...aplicado em todas as rotas. - SSL corporativo:
truststore.inject_into_ssl()usa o store do Windows. - Installation ID: obtido por
get_installation_id()a partir deGET /v1/installations/e usa a primeira instalacao retornada. - UI Tkinter:
App,WelcomePageeActionsPageemmain.py. - Execucao sem travar a UI:
threading.Threadpara o worker +queue.Queue+after(100, process_log_queue). - Persistencia de resultado: exportacao para abas do Excel por
update_excel_safely()com escrita atomica em arquivo temporario.
- Atualizar dados de Bin presentations
- Atualizar dados de Uptime
- Robot Errors
- Robot MTBF
- Incidents
- Uptime Trend
Todas as opcoes:
- usam o mesmo
installation_idobtido automaticamente da API - usam o ano informado na UI para filtrar o campo
date - executam em thread separada
- escrevem em uma aba dedicada do Excel selecionado
O projeto tambem possui scripts separados por endpoint:
bin_presentation_as.pyuptime_as.pyrobot_errors_as.pyrobot_mtbf_as.pyincidents_as.pyuptime_trend_as.py
GET /v1/installations/{installation_id}/robot-errors/GET /v1/installations/{installation_id}/robot-mtbf/GET /v1/installations/{installation_id}/incidents/GET /v1/installations/{installation_id}/uptime/trend/
BinPresentationsUptimeRobotErrorsRobotMTBFIncidentsUptimeTrend
- Ative a virtualenv do projeto.
- Execute a UI:
c:/base/API_AUTOSTORE/.venv/Scripts/python.exe c:/base/API_AUTOSTORE/main.py- Na tela de acoes:
- informe o ano desejado
- clique em uma das 6 opcoes
- selecione um arquivo
.xlsxexistente - aguarde a conclusao no log e no status
Fluxo sugerido:
- Abrir a UI.
- Rodar
Robot Errorspara um ano com dados recentes. - Confirmar criacao/atualizacao da aba
RobotErrors. - Repetir para
Robot MTBF,IncidentseUptime Trend. - Validar no log que o
Installation IDfoi obtido e que a contagem de registros foi exibida.
Os testes usam unittest com mock do wrapper HTTP, sem chamar a API real:
c:/base/API_AUTOSTORE/.venv/Scripts/python.exe -m unittest discover -s c:/base/API_AUTOSTORE/tests -p "test_*.py"O repositório nao possui .spec nem script de build versionado. O empacotamento pode ser gerado a partir do main.py.
- Instale o PyInstaller na mesma virtualenv do projeto:
c:/base/API_AUTOSTORE/.venv/Scripts/python.exe -m pip install pyinstaller- Gere o executavel:
c:/base/API_AUTOSTORE/.venv/Scripts/pyinstaller.exe --noconfirm --onefile --windowed --name API_AUTOSTORE c:/base/API_AUTOSTORE/main.pyObservacoes:
- As novas opcoes aparecem automaticamente no executavel porque fazem parte da UI carregada por
main.py. - Nao ha icones, templates nem arquivos adicionais versionados que precisem ser incluidos no build atual.