worker-automate-hub 0.5.795__tar.gz → 0.5.797__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of worker-automate-hub might be problematic. Click here for more details.
- {worker_automate_hub-0.5.795 → worker_automate_hub-0.5.797}/PKG-INFO +1 -1
- {worker_automate_hub-0.5.795 → worker_automate_hub-0.5.797}/pyproject.toml +1 -1
- worker_automate_hub-0.5.797/worker_automate_hub/cli.py +212 -0
- {worker_automate_hub-0.5.795 → worker_automate_hub-0.5.797}/worker_automate_hub/tasks/jobs/entrada_de_notas_9.py +10 -12
- worker_automate_hub-0.5.795/worker_automate_hub/cli.py +0 -232
- {worker_automate_hub-0.5.795 → worker_automate_hub-0.5.797}/README.md +0 -0
- {worker_automate_hub-0.5.795 → worker_automate_hub-0.5.797}/worker_automate_hub/__init__.py +0 -0
- {worker_automate_hub-0.5.795 → worker_automate_hub-0.5.797}/worker_automate_hub/api/__init__.py +0 -0
- {worker_automate_hub-0.5.795 → worker_automate_hub-0.5.797}/worker_automate_hub/api/ahead_service.py +0 -0
- {worker_automate_hub-0.5.795 → worker_automate_hub-0.5.797}/worker_automate_hub/api/client.py +0 -0
- {worker_automate_hub-0.5.795 → worker_automate_hub-0.5.797}/worker_automate_hub/api/datalake_service.py +0 -0
- {worker_automate_hub-0.5.795 → worker_automate_hub-0.5.797}/worker_automate_hub/api/helpers/__init__.py +0 -0
- {worker_automate_hub-0.5.795 → worker_automate_hub-0.5.797}/worker_automate_hub/api/helpers/api_helpers.py +0 -0
- {worker_automate_hub-0.5.795 → worker_automate_hub-0.5.797}/worker_automate_hub/api/rdp_service.py +0 -0
- {worker_automate_hub-0.5.795 → worker_automate_hub-0.5.797}/worker_automate_hub/api/rpa_fila_service.py +0 -0
- {worker_automate_hub-0.5.795 → worker_automate_hub-0.5.797}/worker_automate_hub/api/rpa_historico_service.py +0 -0
- {worker_automate_hub-0.5.795 → worker_automate_hub-0.5.797}/worker_automate_hub/api/webhook_service.py +0 -0
- {worker_automate_hub-0.5.795 → worker_automate_hub-0.5.797}/worker_automate_hub/config/__init__.py +0 -0
- {worker_automate_hub-0.5.795 → worker_automate_hub-0.5.797}/worker_automate_hub/config/settings.py +0 -0
- {worker_automate_hub-0.5.795 → worker_automate_hub-0.5.797}/worker_automate_hub/config.py +0 -0
- {worker_automate_hub-0.5.795 → worker_automate_hub-0.5.797}/worker_automate_hub/core/so_manipulation.py +0 -0
- {worker_automate_hub-0.5.795 → worker_automate_hub-0.5.797}/worker_automate_hub/decorators/__init__.py +0 -0
- {worker_automate_hub-0.5.795 → worker_automate_hub-0.5.797}/worker_automate_hub/decorators/deprecation.py +0 -0
- {worker_automate_hub-0.5.795 → worker_automate_hub-0.5.797}/worker_automate_hub/decorators/rate_limit.py +0 -0
- {worker_automate_hub-0.5.795 → worker_automate_hub-0.5.797}/worker_automate_hub/decorators/repeat.py +0 -0
- {worker_automate_hub-0.5.795 → worker_automate_hub-0.5.797}/worker_automate_hub/decorators/retry.py +0 -0
- {worker_automate_hub-0.5.795 → worker_automate_hub-0.5.797}/worker_automate_hub/decorators/singleton.py +0 -0
- {worker_automate_hub-0.5.795 → worker_automate_hub-0.5.797}/worker_automate_hub/decorators/timeit.py +0 -0
- {worker_automate_hub-0.5.795 → worker_automate_hub-0.5.797}/worker_automate_hub/models/__init__.py +0 -0
- {worker_automate_hub-0.5.795 → worker_automate_hub-0.5.797}/worker_automate_hub/models/dao/__init__.py +0 -0
- {worker_automate_hub-0.5.795 → worker_automate_hub-0.5.797}/worker_automate_hub/models/dao/rpa_configuracao.py +0 -0
- {worker_automate_hub-0.5.795 → worker_automate_hub-0.5.797}/worker_automate_hub/models/dao/rpa_fila.py +0 -0
- {worker_automate_hub-0.5.795 → worker_automate_hub-0.5.797}/worker_automate_hub/models/dao/rpa_historico.py +0 -0
- {worker_automate_hub-0.5.795 → worker_automate_hub-0.5.797}/worker_automate_hub/models/dao/rpa_processo.py +0 -0
- {worker_automate_hub-0.5.795 → worker_automate_hub-0.5.797}/worker_automate_hub/models/dao/rpa_robo.py +0 -0
- {worker_automate_hub-0.5.795 → worker_automate_hub-0.5.797}/worker_automate_hub/models/dto/__init__.py +0 -0
- {worker_automate_hub-0.5.795 → worker_automate_hub-0.5.797}/worker_automate_hub/models/dto/rpa_historico_request_dto.py +0 -0
- {worker_automate_hub-0.5.795 → worker_automate_hub-0.5.797}/worker_automate_hub/models/dto/rpa_processo_entrada_dto.py +0 -0
- {worker_automate_hub-0.5.795 → worker_automate_hub-0.5.797}/worker_automate_hub/models/dto/rpa_processo_rdp_dto.py +0 -0
- {worker_automate_hub-0.5.795 → worker_automate_hub-0.5.797}/worker_automate_hub/models/dto/rpa_sap_dto.py +0 -0
- {worker_automate_hub-0.5.795 → worker_automate_hub-0.5.797}/worker_automate_hub/models/dto/rpa_sistema_dto.py +0 -0
- {worker_automate_hub-0.5.795 → worker_automate_hub-0.5.797}/worker_automate_hub/tasks/__init__.py +0 -0
- {worker_automate_hub-0.5.795 → worker_automate_hub-0.5.797}/worker_automate_hub/tasks/jobs/__init__.py +0 -0
- {worker_automate_hub-0.5.795 → worker_automate_hub-0.5.797}/worker_automate_hub/tasks/jobs/abertura_livros_fiscais.py +0 -0
- {worker_automate_hub-0.5.795 → worker_automate_hub-0.5.797}/worker_automate_hub/tasks/jobs/coleta_dje_process.py +0 -0
- {worker_automate_hub-0.5.795 → worker_automate_hub-0.5.797}/worker_automate_hub/tasks/jobs/conexao_rdp.py +0 -0
- {worker_automate_hub-0.5.795 → worker_automate_hub-0.5.797}/worker_automate_hub/tasks/jobs/cte_manual.py +0 -0
- {worker_automate_hub-0.5.795 → worker_automate_hub-0.5.797}/worker_automate_hub/tasks/jobs/cte_xml.py +0 -0
- {worker_automate_hub-0.5.795 → worker_automate_hub-0.5.797}/worker_automate_hub/tasks/jobs/descartes.py +0 -0
- {worker_automate_hub-0.5.795 → worker_automate_hub-0.5.797}/worker_automate_hub/tasks/jobs/devolucao_ctf.py +0 -0
- {worker_automate_hub-0.5.795 → worker_automate_hub-0.5.797}/worker_automate_hub/tasks/jobs/devolucao_ctf_35.py +0 -0
- {worker_automate_hub-0.5.795 → worker_automate_hub-0.5.797}/worker_automate_hub/tasks/jobs/devolucao_prazo_a_faturar.py +0 -0
- {worker_automate_hub-0.5.795 → worker_automate_hub-0.5.797}/worker_automate_hub/tasks/jobs/ecac_estadual_go.py +0 -0
- {worker_automate_hub-0.5.795 → worker_automate_hub-0.5.797}/worker_automate_hub/tasks/jobs/ecac_estadual_main.py +0 -0
- {worker_automate_hub-0.5.795 → worker_automate_hub-0.5.797}/worker_automate_hub/tasks/jobs/ecac_estadual_mt.py +0 -0
- {worker_automate_hub-0.5.795 → worker_automate_hub-0.5.797}/worker_automate_hub/tasks/jobs/ecac_estadual_sc.py +0 -0
- {worker_automate_hub-0.5.795 → worker_automate_hub-0.5.797}/worker_automate_hub/tasks/jobs/ecac_estadual_sp.py +0 -0
- {worker_automate_hub-0.5.795 → worker_automate_hub-0.5.797}/worker_automate_hub/tasks/jobs/ecac_federal.py +0 -0
- {worker_automate_hub-0.5.795 → worker_automate_hub-0.5.797}/worker_automate_hub/tasks/jobs/entrada_cte_1353.py +0 -0
- {worker_automate_hub-0.5.795 → worker_automate_hub-0.5.797}/worker_automate_hub/tasks/jobs/entrada_cte_333.py +0 -0
- {worker_automate_hub-0.5.795 → worker_automate_hub-0.5.797}/worker_automate_hub/tasks/jobs/entrada_de_notas_15.py +0 -0
- {worker_automate_hub-0.5.795 → worker_automate_hub-0.5.797}/worker_automate_hub/tasks/jobs/entrada_de_notas_16.py +0 -0
- {worker_automate_hub-0.5.795 → worker_automate_hub-0.5.797}/worker_automate_hub/tasks/jobs/entrada_de_notas_207.py +0 -0
- {worker_automate_hub-0.5.795 → worker_automate_hub-0.5.797}/worker_automate_hub/tasks/jobs/entrada_de_notas_32.py +0 -0
- {worker_automate_hub-0.5.795 → worker_automate_hub-0.5.797}/worker_automate_hub/tasks/jobs/entrada_de_notas_33.py +0 -0
- {worker_automate_hub-0.5.795 → worker_automate_hub-0.5.797}/worker_automate_hub/tasks/jobs/entrada_de_notas_34.py +0 -0
- {worker_automate_hub-0.5.795 → worker_automate_hub-0.5.797}/worker_automate_hub/tasks/jobs/entrada_de_notas_36.py +0 -0
- {worker_automate_hub-0.5.795 → worker_automate_hub-0.5.797}/worker_automate_hub/tasks/jobs/entrada_de_notas_37.py +0 -0
- {worker_automate_hub-0.5.795 → worker_automate_hub-0.5.797}/worker_automate_hub/tasks/jobs/entrada_de_notas_39.py +0 -0
- {worker_automate_hub-0.5.795 → worker_automate_hub-0.5.797}/worker_automate_hub/tasks/jobs/entrada_de_notas_500.py +0 -0
- {worker_automate_hub-0.5.795 → worker_automate_hub-0.5.797}/worker_automate_hub/tasks/jobs/entrada_de_notas_503.py +0 -0
- {worker_automate_hub-0.5.795 → worker_automate_hub-0.5.797}/worker_automate_hub/tasks/jobs/entrada_de_notas_505.py +0 -0
- {worker_automate_hub-0.5.795 → worker_automate_hub-0.5.797}/worker_automate_hub/tasks/jobs/entrada_de_notas_7139.py +0 -0
- {worker_automate_hub-0.5.795 → worker_automate_hub-0.5.797}/worker_automate_hub/tasks/jobs/entrada_de_notas_9000.py +0 -0
- {worker_automate_hub-0.5.795 → worker_automate_hub-0.5.797}/worker_automate_hub/tasks/jobs/exemplo_processo.py +0 -0
- {worker_automate_hub-0.5.795 → worker_automate_hub-0.5.797}/worker_automate_hub/tasks/jobs/extracao_fechamento_contabil.py +0 -0
- {worker_automate_hub-0.5.795 → worker_automate_hub-0.5.797}/worker_automate_hub/tasks/jobs/extracao_fechamento_emsys.py +0 -0
- {worker_automate_hub-0.5.795 → worker_automate_hub-0.5.797}/worker_automate_hub/tasks/jobs/extracao_saldo_estoque.py +0 -0
- {worker_automate_hub-0.5.795 → worker_automate_hub-0.5.797}/worker_automate_hub/tasks/jobs/extracao_saldo_estoque_fiscal.py +0 -0
- {worker_automate_hub-0.5.795 → worker_automate_hub-0.5.797}/worker_automate_hub/tasks/jobs/fechar_conexao_rdp.py +0 -0
- {worker_automate_hub-0.5.795 → worker_automate_hub-0.5.797}/worker_automate_hub/tasks/jobs/fidc_exportacao_docs_portal_b2b.py +0 -0
- {worker_automate_hub-0.5.795 → worker_automate_hub-0.5.797}/worker_automate_hub/tasks/jobs/fidc_gerar_nosso_numero.py +0 -0
- {worker_automate_hub-0.5.795 → worker_automate_hub-0.5.797}/worker_automate_hub/tasks/jobs/fidc_remessa_cobranca_cnab240.py +0 -0
- {worker_automate_hub-0.5.795 → worker_automate_hub-0.5.797}/worker_automate_hub/tasks/jobs/fidc_retorno_cobranca.py +0 -0
- {worker_automate_hub-0.5.795 → worker_automate_hub-0.5.797}/worker_automate_hub/tasks/jobs/geracao_aprovacao_pedidos.py +0 -0
- {worker_automate_hub-0.5.795 → worker_automate_hub-0.5.797}/worker_automate_hub/tasks/jobs/geracao_aprovacao_pedidos_novo.py +0 -0
- {worker_automate_hub-0.5.795 → worker_automate_hub-0.5.797}/worker_automate_hub/tasks/jobs/integracao_contabil.py +0 -0
- {worker_automate_hub-0.5.795 → worker_automate_hub-0.5.797}/worker_automate_hub/tasks/jobs/integracao_contabil_generica.py +0 -0
- {worker_automate_hub-0.5.795 → worker_automate_hub-0.5.797}/worker_automate_hub/tasks/jobs/lancamento_pis_cofins.py +0 -0
- {worker_automate_hub-0.5.795 → worker_automate_hub-0.5.797}/worker_automate_hub/tasks/jobs/lancamento_rateio.py +0 -0
- {worker_automate_hub-0.5.795 → worker_automate_hub-0.5.797}/worker_automate_hub/tasks/jobs/login_emsys.py +0 -0
- {worker_automate_hub-0.5.795 → worker_automate_hub-0.5.797}/worker_automate_hub/tasks/jobs/login_emsys_versao_especifica.py +0 -0
- {worker_automate_hub-0.5.795 → worker_automate_hub-0.5.797}/worker_automate_hub/tasks/jobs/notas_faturamento_sap.py +0 -0
- {worker_automate_hub-0.5.795 → worker_automate_hub-0.5.797}/worker_automate_hub/tasks/jobs/opex_capex.py +0 -0
- {worker_automate_hub-0.5.795 → worker_automate_hub-0.5.797}/worker_automate_hub/tasks/jobs/playground.py +0 -0
- {worker_automate_hub-0.5.795 → worker_automate_hub-0.5.797}/worker_automate_hub/tasks/jobs/sped_fiscal.py +0 -0
- {worker_automate_hub-0.5.795 → worker_automate_hub-0.5.797}/worker_automate_hub/tasks/jobs/transferencias.py +0 -0
- {worker_automate_hub-0.5.795 → worker_automate_hub-0.5.797}/worker_automate_hub/tasks/task_definitions.py +0 -0
- {worker_automate_hub-0.5.795 → worker_automate_hub-0.5.797}/worker_automate_hub/tasks/task_executor.py +0 -0
- {worker_automate_hub-0.5.795 → worker_automate_hub-0.5.797}/worker_automate_hub/utils/__init__.py +0 -0
- {worker_automate_hub-0.5.795 → worker_automate_hub-0.5.797}/worker_automate_hub/utils/env.py +0 -0
- {worker_automate_hub-0.5.795 → worker_automate_hub-0.5.797}/worker_automate_hub/utils/get_creds_gworkspace.py +0 -0
- {worker_automate_hub-0.5.795 → worker_automate_hub-0.5.797}/worker_automate_hub/utils/logger.py +0 -0
- {worker_automate_hub-0.5.795 → worker_automate_hub-0.5.797}/worker_automate_hub/utils/toast.py +0 -0
- {worker_automate_hub-0.5.795 → worker_automate_hub-0.5.797}/worker_automate_hub/utils/updater.py +0 -0
- {worker_automate_hub-0.5.795 → worker_automate_hub-0.5.797}/worker_automate_hub/utils/util.py +0 -0
- {worker_automate_hub-0.5.795 → worker_automate_hub-0.5.797}/worker_automate_hub/utils/utils_nfe_entrada.py +0 -0
- {worker_automate_hub-0.5.795 → worker_automate_hub-0.5.797}/worker_automate_hub/worker.py +0 -0
|
@@ -0,0 +1,212 @@
|
|
|
1
|
+
import asyncio
|
|
2
|
+
import importlib.metadata
|
|
3
|
+
import threading
|
|
4
|
+
|
|
5
|
+
import inquirer
|
|
6
|
+
import psutil
|
|
7
|
+
from inquirer.themes import GreenPassion
|
|
8
|
+
from rich.console import Console
|
|
9
|
+
from typer import Context, Exit, Option, Typer
|
|
10
|
+
|
|
11
|
+
from worker_automate_hub.api.client import get_workers, load_environments
|
|
12
|
+
from worker_automate_hub.core.so_manipulation import (
|
|
13
|
+
add_worker_config,
|
|
14
|
+
download_tesseract,
|
|
15
|
+
update_assets_v2,
|
|
16
|
+
write_env_config,
|
|
17
|
+
)
|
|
18
|
+
from worker_automate_hub.utils.updater import check_for_update
|
|
19
|
+
from worker_automate_hub.utils.util import (
|
|
20
|
+
add_start_on_boot_to_registry,
|
|
21
|
+
create_worker_bat,
|
|
22
|
+
)
|
|
23
|
+
|
|
24
|
+
from .worker import run_worker
|
|
25
|
+
|
|
26
|
+
console = Console()
|
|
27
|
+
app = Typer()
|
|
28
|
+
stop_event = threading.Event() # Evento para parar as threads
|
|
29
|
+
|
|
30
|
+
|
|
31
|
+
HELP_MESSAGE = """
|
|
32
|
+
[b]Worker[/] - Grupo Argenta
|
|
33
|
+
|
|
34
|
+
Forma de uso: [b]worker [SUBCOMANDO] [ARGUMENTOS][/]
|
|
35
|
+
|
|
36
|
+
Existem 3 subcomandos disponíveis para essa aplicação
|
|
37
|
+
|
|
38
|
+
- [b]run[/]: Inicializa o Worker na máquina atual e começa a solicitar trabalho para o orquestrador.
|
|
39
|
+
- [b]validate[/]: Verifica se o Worker atual está configurado corretamente e pronto para ser inicializado.
|
|
40
|
+
- [b]assets[/]: Realiza a limpeza e depois download na pasta assets de todos arquivos utilizado pelo worker durante execução.
|
|
41
|
+
|
|
42
|
+
[b]Exemplos de uso:[/]
|
|
43
|
+
[b][blue]RUN[/][/]
|
|
44
|
+
[green][b]worker[/][/] [b]run[/]
|
|
45
|
+
|
|
46
|
+
[b][blue]UPDATE[/][/]
|
|
47
|
+
[green][b]worker[/][/] [b]update[/]
|
|
48
|
+
|
|
49
|
+
[b][blue]VALIDATE[/][/]
|
|
50
|
+
[green][b]worker[/][/] [b]validate[/]
|
|
51
|
+
|
|
52
|
+
---
|
|
53
|
+
|
|
54
|
+
[b]Help:[/]
|
|
55
|
+
[b]Para mais informações[/]
|
|
56
|
+
[green][b]worker[/][/] --help
|
|
57
|
+
|
|
58
|
+
[b]Para ver a versão instalada[/]
|
|
59
|
+
[green][b]worker[/][/] --version
|
|
60
|
+
|
|
61
|
+
[b]Para gerar o arquivo de configuração[/]
|
|
62
|
+
[green][b]worker[/][/] configure
|
|
63
|
+
|
|
64
|
+
[b]Para informações detalhadas
|
|
65
|
+
[blue][link=https://github.com/SIM-Rede/worker-automate-hub]Repo no GIT Argenta[/][/] | [blue][link=https://pypi.org/project/worker-automate-hub/]Publicação no PyPI[/][/]
|
|
66
|
+
"""
|
|
67
|
+
|
|
68
|
+
|
|
69
|
+
@app.callback(invoke_without_command=True)
|
|
70
|
+
def main(
|
|
71
|
+
ctx: Context,
|
|
72
|
+
version: bool = Option(
|
|
73
|
+
False,
|
|
74
|
+
"--version",
|
|
75
|
+
help="Mostra a versão instalada",
|
|
76
|
+
is_flag=True,
|
|
77
|
+
),
|
|
78
|
+
):
|
|
79
|
+
"""Comando principal"""
|
|
80
|
+
if ctx.invoked_subcommand:
|
|
81
|
+
return
|
|
82
|
+
|
|
83
|
+
if version:
|
|
84
|
+
console.print(
|
|
85
|
+
importlib.metadata.version("worker-automate-hub"),
|
|
86
|
+
style="bold blue",
|
|
87
|
+
)
|
|
88
|
+
raise Exit(code=0)
|
|
89
|
+
|
|
90
|
+
console.print(HELP_MESSAGE)
|
|
91
|
+
|
|
92
|
+
|
|
93
|
+
@app.command()
|
|
94
|
+
def configure():
|
|
95
|
+
"""Executa o processo interativo de configuração"""
|
|
96
|
+
console.clear()
|
|
97
|
+
environment_names = [
|
|
98
|
+
"local",
|
|
99
|
+
"qa",
|
|
100
|
+
"main",
|
|
101
|
+
]
|
|
102
|
+
q = [
|
|
103
|
+
inquirer.Text("vault_token", "Por favor digite o token do Vault"),
|
|
104
|
+
inquirer.List("env_list", "Selecione o ambiente", environment_names),
|
|
105
|
+
]
|
|
106
|
+
r = inquirer.prompt(q, theme=GreenPassion())
|
|
107
|
+
|
|
108
|
+
env_sel, credentials = load_environments(r["env_list"], r["vault_token"])
|
|
109
|
+
write_env_config(env_sel, credentials)
|
|
110
|
+
workers = asyncio.run(get_workers())
|
|
111
|
+
|
|
112
|
+
if workers is None:
|
|
113
|
+
console.print("\nNenhum worker encontrado.\n", style="yellow")
|
|
114
|
+
raise Exit(code=0)
|
|
115
|
+
|
|
116
|
+
nomes_workers = [worker["nomRobo"] for worker in workers]
|
|
117
|
+
q2 = [inquirer.List("worker_list", "Selecione um Worker", choices=nomes_workers)]
|
|
118
|
+
r2 = inquirer.prompt(q2, theme=GreenPassion())
|
|
119
|
+
worker_sel = next(
|
|
120
|
+
worker for worker in workers if worker["nomRobo"] == r2["worker_list"]
|
|
121
|
+
)
|
|
122
|
+
add_worker_config(worker_sel)
|
|
123
|
+
|
|
124
|
+
q3 = [
|
|
125
|
+
inquirer.Confirm(
|
|
126
|
+
"reg_config",
|
|
127
|
+
message="Adicionar configuração de inicialização aos registros do Windows?",
|
|
128
|
+
)
|
|
129
|
+
]
|
|
130
|
+
r3 = inquirer.prompt(q3, theme=GreenPassion())
|
|
131
|
+
if r3["reg_config"]:
|
|
132
|
+
add_start_on_boot_to_registry()
|
|
133
|
+
|
|
134
|
+
q4 = [
|
|
135
|
+
inquirer.Confirm(
|
|
136
|
+
"assets_config",
|
|
137
|
+
message="Atualizar a pasta assets?",
|
|
138
|
+
)
|
|
139
|
+
]
|
|
140
|
+
r4 = inquirer.prompt(q4, theme=GreenPassion())
|
|
141
|
+
if r4["assets_config"]:
|
|
142
|
+
update_assets_v2()
|
|
143
|
+
|
|
144
|
+
q5 = [inquirer.Confirm("worker_bat", message="Criar o arquivo worker-startup.bat?")]
|
|
145
|
+
r5 = inquirer.prompt(q5, theme=GreenPassion())
|
|
146
|
+
if r5["worker_bat"]:
|
|
147
|
+
create_worker_bat()
|
|
148
|
+
|
|
149
|
+
q6 = [
|
|
150
|
+
inquirer.Confirm(
|
|
151
|
+
"tesseract_install", message="Iniciar a instalação do Tesseract?"
|
|
152
|
+
)
|
|
153
|
+
]
|
|
154
|
+
r6 = inquirer.prompt(q6, theme=GreenPassion())
|
|
155
|
+
if r6["tesseract_install"]:
|
|
156
|
+
asyncio.run(download_tesseract())
|
|
157
|
+
|
|
158
|
+
console.print("\nConfiguração finalizada com sucesso!\n", style="bold green")
|
|
159
|
+
|
|
160
|
+
raise Exit(code=0)
|
|
161
|
+
|
|
162
|
+
|
|
163
|
+
def is_command_running(command):
|
|
164
|
+
"""
|
|
165
|
+
Verifica se um comando CLI está sendo executado em outro terminal.
|
|
166
|
+
"""
|
|
167
|
+
command_str = " ".join(command)
|
|
168
|
+
rep = 0
|
|
169
|
+
for proc in psutil.process_iter(["pid", "name", "cmdline"]):
|
|
170
|
+
try:
|
|
171
|
+
cmdline = proc.info["cmdline"]
|
|
172
|
+
if cmdline and isinstance(cmdline, list):
|
|
173
|
+
cmdline_str = " ".join(cmdline)
|
|
174
|
+
if command_str in cmdline_str:
|
|
175
|
+
rep += 1
|
|
176
|
+
except (psutil.NoSuchProcess, psutil.AccessDenied, psutil.ZombieProcess):
|
|
177
|
+
continue
|
|
178
|
+
|
|
179
|
+
return rep > 1
|
|
180
|
+
|
|
181
|
+
|
|
182
|
+
@app.command()
|
|
183
|
+
def run(
|
|
184
|
+
force: bool = Option(
|
|
185
|
+
False,
|
|
186
|
+
"--force",
|
|
187
|
+
help="Força a execução mesmo se outro comando já estiver rodando.",
|
|
188
|
+
),
|
|
189
|
+
assets: bool = Option(
|
|
190
|
+
False,
|
|
191
|
+
"--assets",
|
|
192
|
+
help="Executa o download da pasta assets atualizada.",
|
|
193
|
+
),
|
|
194
|
+
):
|
|
195
|
+
"""Inicializa o worker"""
|
|
196
|
+
if assets:
|
|
197
|
+
update_assets_v2()
|
|
198
|
+
|
|
199
|
+
command = ["worker", "run"]
|
|
200
|
+
if not force and is_command_running(command):
|
|
201
|
+
console.print(
|
|
202
|
+
"\nO script já está em execução. Saindo...\n", style="bold yellow"
|
|
203
|
+
)
|
|
204
|
+
raise Exit(code=0)
|
|
205
|
+
|
|
206
|
+
run_worker(stop_event)
|
|
207
|
+
|
|
208
|
+
|
|
209
|
+
@app.command()
|
|
210
|
+
def update():
|
|
211
|
+
"""Força verificação/atualização do worker"""
|
|
212
|
+
check_for_update(stop_event)
|
|
@@ -605,7 +605,7 @@ async def entrada_de_notas_9(task: RpaProcessoEntradaDTO) -> RpaRetornoProcessoD
|
|
|
605
605
|
console.print(f"Tanque a ser distribuido: {info_distribuicao_obs}... \n")
|
|
606
606
|
send_keys("^({HOME})")
|
|
607
607
|
await worker_sleep(1)
|
|
608
|
-
send_keys("{DOWN " + str(index_tanque) + "}", pause=0.
|
|
608
|
+
send_keys("{DOWN " + str(index_tanque) + "}", pause=0.5)
|
|
609
609
|
await worker_sleep(1)
|
|
610
610
|
#Copiar e extrai o Seq Item XML
|
|
611
611
|
send_keys("^c")
|
|
@@ -617,7 +617,7 @@ async def entrada_de_notas_9(task: RpaProcessoEntradaDTO) -> RpaRetornoProcessoD
|
|
|
617
617
|
item_executado = seq_item
|
|
618
618
|
else:
|
|
619
619
|
while seq_item == item_executado:
|
|
620
|
-
send_keys("{DOWN}", pause=0.
|
|
620
|
+
send_keys("{DOWN}", pause=0.5)
|
|
621
621
|
index_tanque += 1
|
|
622
622
|
send_keys("^c")
|
|
623
623
|
copiado = pyperclip.paste()
|
|
@@ -626,12 +626,11 @@ async def entrada_de_notas_9(task: RpaProcessoEntradaDTO) -> RpaRetornoProcessoD
|
|
|
626
626
|
seq_item = colunas[0]
|
|
627
627
|
|
|
628
628
|
send_keys("+{F10}")
|
|
629
|
-
await worker_sleep(
|
|
629
|
+
await worker_sleep(2)
|
|
630
630
|
send_keys("{DOWN 6}")
|
|
631
|
-
await worker_sleep(
|
|
631
|
+
await worker_sleep(2)
|
|
632
632
|
send_keys("{ENTER}")
|
|
633
633
|
await worker_sleep(4)
|
|
634
|
-
|
|
635
634
|
|
|
636
635
|
max_attempts = 5
|
|
637
636
|
i = 0
|
|
@@ -640,7 +639,6 @@ async def entrada_de_notas_9(task: RpaProcessoEntradaDTO) -> RpaRetornoProcessoD
|
|
|
640
639
|
if distribuir_item_window["IsOpened"] == True:
|
|
641
640
|
app = Application().connect(title="Distribui Item Tanque")
|
|
642
641
|
main_window = app["Distribui Item Tanque"]
|
|
643
|
-
|
|
644
642
|
main_window.set_focus()
|
|
645
643
|
break
|
|
646
644
|
else:
|
|
@@ -665,11 +663,11 @@ async def entrada_de_notas_9(task: RpaProcessoEntradaDTO) -> RpaRetornoProcessoD
|
|
|
665
663
|
center_y = (grid_rect.top + grid_rect.bottom) // 2
|
|
666
664
|
|
|
667
665
|
pyautogui.click(center_x, center_y)
|
|
668
|
-
await worker_sleep(
|
|
666
|
+
await worker_sleep(4)
|
|
669
667
|
send_keys("^({HOME})")
|
|
670
|
-
await worker_sleep(
|
|
668
|
+
await worker_sleep(4)
|
|
671
669
|
send_keys("{LEFT 3}")
|
|
672
|
-
await worker_sleep(
|
|
670
|
+
await worker_sleep(4)
|
|
673
671
|
|
|
674
672
|
distribuiu_algo = False
|
|
675
673
|
distribuicao_atual = []
|
|
@@ -714,11 +712,11 @@ async def entrada_de_notas_9(task: RpaProcessoEntradaDTO) -> RpaRetornoProcessoD
|
|
|
714
712
|
quantidade_combustivel = re.findall(r'\((.*?)\)', second_info_distribuicao_obs)[0].replace('.', '')
|
|
715
713
|
|
|
716
714
|
send_keys("{LEFT 3}")
|
|
717
|
-
await worker_sleep(
|
|
715
|
+
await worker_sleep(2)
|
|
718
716
|
send_keys("{RIGHT 3}")
|
|
719
717
|
|
|
720
718
|
pyautogui.press('enter')
|
|
721
|
-
await worker_sleep(
|
|
719
|
+
await worker_sleep(2)
|
|
722
720
|
pyautogui.write(quantidade_combustivel)
|
|
723
721
|
pyautogui.press('enter')
|
|
724
722
|
list_tanques_distribuidos.append(second_info_distribuicao_obs)
|
|
@@ -1372,4 +1370,4 @@ async def entrada_de_notas_9(task: RpaProcessoEntradaDTO) -> RpaRetornoProcessoD
|
|
|
1372
1370
|
|
|
1373
1371
|
finally:
|
|
1374
1372
|
# Deleta o xml
|
|
1375
|
-
await delete_xml(nota["nfe"])
|
|
1373
|
+
await delete_xml(nota["nfe"])
|
|
@@ -1,232 +0,0 @@
|
|
|
1
|
-
import asyncio
|
|
2
|
-
import importlib.metadata
|
|
3
|
-
import threading
|
|
4
|
-
|
|
5
|
-
import inquirer
|
|
6
|
-
import psutil
|
|
7
|
-
from inquirer.themes import GreenPassion
|
|
8
|
-
from rich.console import Console
|
|
9
|
-
from typer import Context, Exit, Option, Typer
|
|
10
|
-
|
|
11
|
-
from worker_automate_hub.api.client import get_workers, load_environments
|
|
12
|
-
from worker_automate_hub.core.so_manipulation import (
|
|
13
|
-
add_worker_config,
|
|
14
|
-
download_tesseract,
|
|
15
|
-
update_assets_v2,
|
|
16
|
-
write_env_config,
|
|
17
|
-
)
|
|
18
|
-
from worker_automate_hub.utils.updater import check_for_update
|
|
19
|
-
from worker_automate_hub.utils.util import (
|
|
20
|
-
add_start_on_boot_to_registry,
|
|
21
|
-
create_worker_bat,
|
|
22
|
-
)
|
|
23
|
-
|
|
24
|
-
from .worker import run_worker
|
|
25
|
-
|
|
26
|
-
console = Console()
|
|
27
|
-
app = Typer()
|
|
28
|
-
stop_event = threading.Event() # Evento para parar as threads
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
HELP_MESSAGE = """
|
|
32
|
-
[b]Worker[/] - Grupo Argenta
|
|
33
|
-
|
|
34
|
-
Forma de uso: [b]worker [SUBCOMANDO] [ARGUMENTOS][/]
|
|
35
|
-
|
|
36
|
-
Existem 3 subcomandos disponíveis para essa aplicação
|
|
37
|
-
|
|
38
|
-
- [b]run[/]: Inicializa o Worker na máquina atual e começa a solicitar trabalho para o orquestrador.
|
|
39
|
-
- [b]validate[/]: Verifica se o Worker atual está configurado corretamente e pronto para ser inicializado.
|
|
40
|
-
- [b]assets[/]: Realiza a limpeza e depois download na pasta assets de todos arquivos utilizado pelo worker durante execução.
|
|
41
|
-
|
|
42
|
-
[b]Exemplos de uso:[/]
|
|
43
|
-
[b][blue]RUN[/][/]
|
|
44
|
-
[green][b]worker[/][/] [b]run[/]
|
|
45
|
-
|
|
46
|
-
[b][blue]UPDATE[/][/]
|
|
47
|
-
[green][b]worker[/][/] [b]update[/]
|
|
48
|
-
|
|
49
|
-
[b][blue]VALIDATE[/][/]
|
|
50
|
-
[green][b]worker[/][/] [b]validate[/]
|
|
51
|
-
|
|
52
|
-
---
|
|
53
|
-
|
|
54
|
-
[b]Help:[/]
|
|
55
|
-
[b]Para mais informações[/]
|
|
56
|
-
[green][b]worker[/][/] --help
|
|
57
|
-
|
|
58
|
-
[b]Para ver a versão instalada[/]
|
|
59
|
-
[green][b]worker[/][/] --version
|
|
60
|
-
|
|
61
|
-
[b]Para gerar o arquivo de configuração[/]
|
|
62
|
-
[green][b]worker[/][/] --configure
|
|
63
|
-
|
|
64
|
-
[b]Para informações detalhadas
|
|
65
|
-
[blue][link=https://github.com/SIM-Rede/worker-automate-hub]Repo no GIT Argenta[/][/] | [blue][link=https://pypi.org/project/worker-automate-hub/]Publicação no PyPI[/][/]
|
|
66
|
-
"""
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
def function_help(flag: bool):
|
|
70
|
-
if flag:
|
|
71
|
-
console.print(
|
|
72
|
-
importlib.metadata.version("worker-automate-hub"),
|
|
73
|
-
style="bold blue",
|
|
74
|
-
)
|
|
75
|
-
raise Exit(code=0)
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
def function_configure(flag: bool):
|
|
79
|
-
|
|
80
|
-
if flag:
|
|
81
|
-
console.clear()
|
|
82
|
-
environment_names = [
|
|
83
|
-
"local",
|
|
84
|
-
"qa",
|
|
85
|
-
"main",
|
|
86
|
-
]
|
|
87
|
-
q = [
|
|
88
|
-
inquirer.Text("vault_token", "Por favor digite o token do Vault"),
|
|
89
|
-
inquirer.List("env_list", "Selecione o ambiente", environment_names),
|
|
90
|
-
]
|
|
91
|
-
r = inquirer.prompt(q, theme=GreenPassion())
|
|
92
|
-
|
|
93
|
-
env_sel, credentials = load_environments(r["env_list"], r["vault_token"])
|
|
94
|
-
write_env_config(env_sel, credentials)
|
|
95
|
-
workers = asyncio.run(get_workers())
|
|
96
|
-
|
|
97
|
-
if workers == None:
|
|
98
|
-
console.print("\nNenhum worker encontrado.\n", style="yellow")
|
|
99
|
-
raise Exit(code=0)
|
|
100
|
-
else:
|
|
101
|
-
|
|
102
|
-
nomes_workers = [worker["nomRobo"] for worker in workers]
|
|
103
|
-
q2 = [
|
|
104
|
-
inquirer.List(
|
|
105
|
-
"worker_list", "Selecione um Worker", choices=nomes_workers
|
|
106
|
-
)
|
|
107
|
-
]
|
|
108
|
-
r2 = inquirer.prompt(q2, theme=GreenPassion())
|
|
109
|
-
worker_sel = next(
|
|
110
|
-
worker for worker in workers if worker["nomRobo"] == r2["worker_list"]
|
|
111
|
-
)
|
|
112
|
-
add_worker_config(worker_sel)
|
|
113
|
-
|
|
114
|
-
q3 = [
|
|
115
|
-
inquirer.Confirm(
|
|
116
|
-
"reg_config",
|
|
117
|
-
message="Adicionar configuração de inicialização aos registros do Windows?",
|
|
118
|
-
)
|
|
119
|
-
]
|
|
120
|
-
r3 = inquirer.prompt(q3, theme=GreenPassion())
|
|
121
|
-
|
|
122
|
-
if r3["reg_config"]:
|
|
123
|
-
add_start_on_boot_to_registry()
|
|
124
|
-
|
|
125
|
-
q4 = [
|
|
126
|
-
inquirer.Confirm(
|
|
127
|
-
"assets_config",
|
|
128
|
-
message="Atualizar a pasta assets?",
|
|
129
|
-
)
|
|
130
|
-
]
|
|
131
|
-
r4 = inquirer.prompt(q4, theme=GreenPassion())
|
|
132
|
-
|
|
133
|
-
if r4["assets_config"]:
|
|
134
|
-
update_assets_v2()
|
|
135
|
-
|
|
136
|
-
q5 = [
|
|
137
|
-
inquirer.Confirm(
|
|
138
|
-
"worker_bat", message="Criar o arquivo worker-startup.bat?"
|
|
139
|
-
)
|
|
140
|
-
]
|
|
141
|
-
r5 = inquirer.prompt(q5, theme=GreenPassion())
|
|
142
|
-
|
|
143
|
-
if r5["worker_bat"]:
|
|
144
|
-
create_worker_bat()
|
|
145
|
-
|
|
146
|
-
q6 = [
|
|
147
|
-
inquirer.Confirm(
|
|
148
|
-
"tesseract_install", message="Iniciar a instalação do Tesseract?"
|
|
149
|
-
)
|
|
150
|
-
]
|
|
151
|
-
r6 = inquirer.prompt(q6, theme=GreenPassion())
|
|
152
|
-
|
|
153
|
-
if r6["tesseract_install"]:
|
|
154
|
-
asyncio.run(download_tesseract())
|
|
155
|
-
|
|
156
|
-
console.print(
|
|
157
|
-
"\nConfiguração finalizada com sucesso!\n", style="bold green"
|
|
158
|
-
)
|
|
159
|
-
|
|
160
|
-
raise Exit(code=0)
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
@app.callback(invoke_without_command=True)
|
|
164
|
-
def main(
|
|
165
|
-
ctx: Context,
|
|
166
|
-
version: bool = Option(False, callback=function_help, is_flag=True),
|
|
167
|
-
configure: bool = Option(False, callback=function_configure, is_flag=True),
|
|
168
|
-
):
|
|
169
|
-
if ctx.invoked_subcommand:
|
|
170
|
-
return
|
|
171
|
-
console.print(HELP_MESSAGE)
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
def is_command_running(command):
|
|
175
|
-
"""
|
|
176
|
-
Verifica se um comando CLI está sendo executado em outro terminal.
|
|
177
|
-
|
|
178
|
-
:param command: O comando CLI a ser verificado (lista de strings).
|
|
179
|
-
:return: True se o comando estiver sendo executado, False caso contrário.
|
|
180
|
-
"""
|
|
181
|
-
command_str = " ".join(command)
|
|
182
|
-
rep = 0
|
|
183
|
-
for proc in psutil.process_iter(["pid", "name", "cmdline"]):
|
|
184
|
-
try:
|
|
185
|
-
cmdline = proc.info["cmdline"]
|
|
186
|
-
if cmdline and isinstance(cmdline, list):
|
|
187
|
-
cmdline_str = " ".join(cmdline)
|
|
188
|
-
if command_str in cmdline_str:
|
|
189
|
-
print(cmdline_str)
|
|
190
|
-
rep += 1
|
|
191
|
-
|
|
192
|
-
except (psutil.NoSuchProcess, psutil.AccessDenied, psutil.ZombieProcess):
|
|
193
|
-
continue
|
|
194
|
-
|
|
195
|
-
if rep > 1:
|
|
196
|
-
return True
|
|
197
|
-
else:
|
|
198
|
-
return False
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
from typer import Option
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
@app.command()
|
|
205
|
-
def run(
|
|
206
|
-
force: bool = Option(
|
|
207
|
-
False,
|
|
208
|
-
"--force",
|
|
209
|
-
help="Força a execução mesmo se outro comando já estiver rodando.",
|
|
210
|
-
),
|
|
211
|
-
assets: bool = Option(
|
|
212
|
-
False,
|
|
213
|
-
"--assets",
|
|
214
|
-
help="Executa o download da pasta assets atualizada.",
|
|
215
|
-
)
|
|
216
|
-
):
|
|
217
|
-
if assets:
|
|
218
|
-
update_assets_v2()
|
|
219
|
-
|
|
220
|
-
command = ["worker", "run"]
|
|
221
|
-
if not force and is_command_running(command):
|
|
222
|
-
console.print(
|
|
223
|
-
"\nO script já está em execução. Saindo...\n", style="bold yellow"
|
|
224
|
-
)
|
|
225
|
-
raise Exit(code=0)
|
|
226
|
-
else:
|
|
227
|
-
run_worker(stop_event)
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
@app.command()
|
|
231
|
-
def update():
|
|
232
|
-
check_for_update(stop_event)
|
|
File without changes
|
|
File without changes
|
{worker_automate_hub-0.5.795 → worker_automate_hub-0.5.797}/worker_automate_hub/api/__init__.py
RENAMED
|
File without changes
|
{worker_automate_hub-0.5.795 → worker_automate_hub-0.5.797}/worker_automate_hub/api/ahead_service.py
RENAMED
|
File without changes
|
{worker_automate_hub-0.5.795 → worker_automate_hub-0.5.797}/worker_automate_hub/api/client.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{worker_automate_hub-0.5.795 → worker_automate_hub-0.5.797}/worker_automate_hub/api/rdp_service.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{worker_automate_hub-0.5.795 → worker_automate_hub-0.5.797}/worker_automate_hub/config/__init__.py
RENAMED
|
File without changes
|
{worker_automate_hub-0.5.795 → worker_automate_hub-0.5.797}/worker_automate_hub/config/settings.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{worker_automate_hub-0.5.795 → worker_automate_hub-0.5.797}/worker_automate_hub/decorators/repeat.py
RENAMED
|
File without changes
|
{worker_automate_hub-0.5.795 → worker_automate_hub-0.5.797}/worker_automate_hub/decorators/retry.py
RENAMED
|
File without changes
|
|
File without changes
|
{worker_automate_hub-0.5.795 → worker_automate_hub-0.5.797}/worker_automate_hub/decorators/timeit.py
RENAMED
|
File without changes
|
{worker_automate_hub-0.5.795 → worker_automate_hub-0.5.797}/worker_automate_hub/models/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{worker_automate_hub-0.5.795 → worker_automate_hub-0.5.797}/worker_automate_hub/tasks/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{worker_automate_hub-0.5.795 → worker_automate_hub-0.5.797}/worker_automate_hub/utils/__init__.py
RENAMED
|
File without changes
|
{worker_automate_hub-0.5.795 → worker_automate_hub-0.5.797}/worker_automate_hub/utils/env.py
RENAMED
|
File without changes
|
|
File without changes
|
{worker_automate_hub-0.5.795 → worker_automate_hub-0.5.797}/worker_automate_hub/utils/logger.py
RENAMED
|
File without changes
|
{worker_automate_hub-0.5.795 → worker_automate_hub-0.5.797}/worker_automate_hub/utils/toast.py
RENAMED
|
File without changes
|
{worker_automate_hub-0.5.795 → worker_automate_hub-0.5.797}/worker_automate_hub/utils/updater.py
RENAMED
|
File without changes
|
{worker_automate_hub-0.5.795 → worker_automate_hub-0.5.797}/worker_automate_hub/utils/util.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|