worker-automate-hub 0.4.350__tar.gz → 0.4.352__tar.gz
Sign up to get free protection for your applications and to get access to all the features.
- {worker_automate_hub-0.4.350 → worker_automate_hub-0.4.352}/PKG-INFO +1 -1
- {worker_automate_hub-0.4.350 → worker_automate_hub-0.4.352}/pyproject.toml +1 -1
- {worker_automate_hub-0.4.350 → worker_automate_hub-0.4.352}/worker_automate_hub/tasks/jobs/entrada_de_notas_15.py +82 -0
- {worker_automate_hub-0.4.350 → worker_automate_hub-0.4.352}/worker_automate_hub/tasks/jobs/entrada_de_notas_16.py +81 -0
- {worker_automate_hub-0.4.350 → worker_automate_hub-0.4.352}/worker_automate_hub/tasks/jobs/sped_fiscal.py +2 -1
- {worker_automate_hub-0.4.350 → worker_automate_hub-0.4.352}/worker_automate_hub/utils/util.py +6 -5
- {worker_automate_hub-0.4.350 → worker_automate_hub-0.4.352}/README.md +0 -0
- {worker_automate_hub-0.4.350 → worker_automate_hub-0.4.352}/worker_automate_hub/__init__.py +0 -0
- {worker_automate_hub-0.4.350 → worker_automate_hub-0.4.352}/worker_automate_hub/api/__init__.py +0 -0
- {worker_automate_hub-0.4.350 → worker_automate_hub-0.4.352}/worker_automate_hub/api/ahead_service.py +0 -0
- {worker_automate_hub-0.4.350 → worker_automate_hub-0.4.352}/worker_automate_hub/api/client.py +0 -0
- {worker_automate_hub-0.4.350 → worker_automate_hub-0.4.352}/worker_automate_hub/api/helpers/__init__.py +0 -0
- {worker_automate_hub-0.4.350 → worker_automate_hub-0.4.352}/worker_automate_hub/api/helpers/api_helpers.py +0 -0
- {worker_automate_hub-0.4.350 → worker_automate_hub-0.4.352}/worker_automate_hub/api/rpa_historico_service.py +0 -0
- {worker_automate_hub-0.4.350 → worker_automate_hub-0.4.352}/worker_automate_hub/cli.py +0 -0
- {worker_automate_hub-0.4.350 → worker_automate_hub-0.4.352}/worker_automate_hub/config/__init__.py +0 -0
- {worker_automate_hub-0.4.350 → worker_automate_hub-0.4.352}/worker_automate_hub/config/settings.py +0 -0
- {worker_automate_hub-0.4.350 → worker_automate_hub-0.4.352}/worker_automate_hub/config.py +0 -0
- {worker_automate_hub-0.4.350 → worker_automate_hub-0.4.352}/worker_automate_hub/core/so_manipulation.py +0 -0
- {worker_automate_hub-0.4.350 → worker_automate_hub-0.4.352}/worker_automate_hub/decorators/__init__.py +0 -0
- {worker_automate_hub-0.4.350 → worker_automate_hub-0.4.352}/worker_automate_hub/decorators/deprecation.py +0 -0
- {worker_automate_hub-0.4.350 → worker_automate_hub-0.4.352}/worker_automate_hub/decorators/rate_limit.py +0 -0
- {worker_automate_hub-0.4.350 → worker_automate_hub-0.4.352}/worker_automate_hub/decorators/repeat.py +0 -0
- {worker_automate_hub-0.4.350 → worker_automate_hub-0.4.352}/worker_automate_hub/decorators/retry.py +0 -0
- {worker_automate_hub-0.4.350 → worker_automate_hub-0.4.352}/worker_automate_hub/decorators/singleton.py +0 -0
- {worker_automate_hub-0.4.350 → worker_automate_hub-0.4.352}/worker_automate_hub/decorators/timeit.py +0 -0
- {worker_automate_hub-0.4.350 → worker_automate_hub-0.4.352}/worker_automate_hub/models/__init__.py +0 -0
- {worker_automate_hub-0.4.350 → worker_automate_hub-0.4.352}/worker_automate_hub/models/dao/__init__.py +0 -0
- {worker_automate_hub-0.4.350 → worker_automate_hub-0.4.352}/worker_automate_hub/models/dao/rpa_configuracao.py +0 -0
- {worker_automate_hub-0.4.350 → worker_automate_hub-0.4.352}/worker_automate_hub/models/dao/rpa_historico.py +0 -0
- {worker_automate_hub-0.4.350 → worker_automate_hub-0.4.352}/worker_automate_hub/models/dao/rpa_processo.py +0 -0
- {worker_automate_hub-0.4.350 → worker_automate_hub-0.4.352}/worker_automate_hub/models/dto/__init__.py +0 -0
- {worker_automate_hub-0.4.350 → worker_automate_hub-0.4.352}/worker_automate_hub/models/dto/rpa_historico_request_dto.py +0 -0
- {worker_automate_hub-0.4.350 → worker_automate_hub-0.4.352}/worker_automate_hub/models/dto/rpa_processo_entrada_dto.py +0 -0
- {worker_automate_hub-0.4.350 → worker_automate_hub-0.4.352}/worker_automate_hub/models/dto/rpa_sistema_dto.py +0 -0
- {worker_automate_hub-0.4.350 → worker_automate_hub-0.4.352}/worker_automate_hub/tasks/__init__.py +0 -0
- {worker_automate_hub-0.4.350 → worker_automate_hub-0.4.352}/worker_automate_hub/tasks/jobs/__init__.py +0 -0
- {worker_automate_hub-0.4.350 → worker_automate_hub-0.4.352}/worker_automate_hub/tasks/jobs/coleta_dje_process.py +0 -0
- {worker_automate_hub-0.4.350 → worker_automate_hub-0.4.352}/worker_automate_hub/tasks/jobs/conexao_rdp.py +0 -0
- {worker_automate_hub-0.4.350 → worker_automate_hub-0.4.352}/worker_automate_hub/tasks/jobs/descartes.py +0 -0
- {worker_automate_hub-0.4.350 → worker_automate_hub-0.4.352}/worker_automate_hub/tasks/jobs/ecac_estadual_go.py +0 -0
- {worker_automate_hub-0.4.350 → worker_automate_hub-0.4.352}/worker_automate_hub/tasks/jobs/ecac_estadual_main.py +0 -0
- {worker_automate_hub-0.4.350 → worker_automate_hub-0.4.352}/worker_automate_hub/tasks/jobs/ecac_estadual_mt.py +0 -0
- {worker_automate_hub-0.4.350 → worker_automate_hub-0.4.352}/worker_automate_hub/tasks/jobs/ecac_estadual_sc.py +0 -0
- {worker_automate_hub-0.4.350 → worker_automate_hub-0.4.352}/worker_automate_hub/tasks/jobs/ecac_estadual_sp.py +0 -0
- {worker_automate_hub-0.4.350 → worker_automate_hub-0.4.352}/worker_automate_hub/tasks/jobs/ecac_federal.py +0 -0
- {worker_automate_hub-0.4.350 → worker_automate_hub-0.4.352}/worker_automate_hub/tasks/jobs/entrada_de_notas_207.py +0 -0
- {worker_automate_hub-0.4.350 → worker_automate_hub-0.4.352}/worker_automate_hub/tasks/jobs/entrada_de_notas_32.py +0 -0
- {worker_automate_hub-0.4.350 → worker_automate_hub-0.4.352}/worker_automate_hub/tasks/jobs/entrada_de_notas_33.py +0 -0
- {worker_automate_hub-0.4.350 → worker_automate_hub-0.4.352}/worker_automate_hub/tasks/jobs/entrada_de_notas_34.py +0 -0
- {worker_automate_hub-0.4.350 → worker_automate_hub-0.4.352}/worker_automate_hub/tasks/jobs/entrada_de_notas_36.py +0 -0
- {worker_automate_hub-0.4.350 → worker_automate_hub-0.4.352}/worker_automate_hub/tasks/jobs/entrada_de_notas_39.py +0 -0
- {worker_automate_hub-0.4.350 → worker_automate_hub-0.4.352}/worker_automate_hub/tasks/jobs/entrada_de_notas_500.py +0 -0
- {worker_automate_hub-0.4.350 → worker_automate_hub-0.4.352}/worker_automate_hub/tasks/jobs/entrada_de_notas_505.py +0 -0
- {worker_automate_hub-0.4.350 → worker_automate_hub-0.4.352}/worker_automate_hub/tasks/jobs/entrada_de_notas_7139.py +0 -0
- {worker_automate_hub-0.4.350 → worker_automate_hub-0.4.352}/worker_automate_hub/tasks/jobs/entrada_de_notas_9.py +0 -0
- {worker_automate_hub-0.4.350 → worker_automate_hub-0.4.352}/worker_automate_hub/tasks/jobs/exemplo_processo.py +0 -0
- {worker_automate_hub-0.4.350 → worker_automate_hub-0.4.352}/worker_automate_hub/tasks/jobs/fidc_gerar_nosso_numero.py +0 -0
- {worker_automate_hub-0.4.350 → worker_automate_hub-0.4.352}/worker_automate_hub/tasks/jobs/fidc_remessa_cobranca_cnab240.py +0 -0
- {worker_automate_hub-0.4.350 → worker_automate_hub-0.4.352}/worker_automate_hub/tasks/jobs/login_emsys.py +0 -0
- {worker_automate_hub-0.4.350 → worker_automate_hub-0.4.352}/worker_automate_hub/tasks/jobs/playground.py +0 -0
- {worker_automate_hub-0.4.350 → worker_automate_hub-0.4.352}/worker_automate_hub/tasks/jobs/transferencias.py +0 -0
- {worker_automate_hub-0.4.350 → worker_automate_hub-0.4.352}/worker_automate_hub/tasks/task_definitions.py +0 -0
- {worker_automate_hub-0.4.350 → worker_automate_hub-0.4.352}/worker_automate_hub/tasks/task_executor.py +0 -0
- {worker_automate_hub-0.4.350 → worker_automate_hub-0.4.352}/worker_automate_hub/utils/__init__.py +0 -0
- {worker_automate_hub-0.4.350 → worker_automate_hub-0.4.352}/worker_automate_hub/utils/env.py +0 -0
- {worker_automate_hub-0.4.350 → worker_automate_hub-0.4.352}/worker_automate_hub/utils/get_creds_gworkspace.py +0 -0
- {worker_automate_hub-0.4.350 → worker_automate_hub-0.4.352}/worker_automate_hub/utils/logger.py +0 -0
- {worker_automate_hub-0.4.350 → worker_automate_hub-0.4.352}/worker_automate_hub/utils/toast.py +0 -0
- {worker_automate_hub-0.4.350 → worker_automate_hub-0.4.352}/worker_automate_hub/utils/updater.py +0 -0
- {worker_automate_hub-0.4.350 → worker_automate_hub-0.4.352}/worker_automate_hub/utils/utils_nfe_entrada.py +0 -0
- {worker_automate_hub-0.4.350 → worker_automate_hub-0.4.352}/worker_automate_hub/worker.py +0 -0
@@ -1,7 +1,12 @@
|
|
1
1
|
import asyncio
|
2
|
+
import getpass
|
3
|
+
import os
|
2
4
|
import warnings
|
3
5
|
|
4
6
|
import pyautogui
|
7
|
+
from pywinauto.keyboard import send_keys
|
8
|
+
from PIL import Image, ImageEnhance
|
9
|
+
import pytesseract
|
5
10
|
from pywinauto.application import Application
|
6
11
|
from pywinauto_recorder.player import set_combobox
|
7
12
|
from rich.console import Console
|
@@ -332,6 +337,83 @@ async def entrada_de_notas_15(task: RpaProcessoEntradaDTO) -> RpaRetornoProcesso
|
|
332
337
|
status=RpaHistoricoStatusEnum.Falha,
|
333
338
|
)
|
334
339
|
|
340
|
+
try:
|
341
|
+
max_attempts = 60
|
342
|
+
i = 0
|
343
|
+
|
344
|
+
while i < max_attempts:
|
345
|
+
information_pop_up = await is_window_open("Information")
|
346
|
+
if information_pop_up["IsOpened"] == True:
|
347
|
+
break
|
348
|
+
else:
|
349
|
+
console.print(f"Aguardando confirmação de nota incluida...\n")
|
350
|
+
await worker_sleep(5)
|
351
|
+
i += 1
|
352
|
+
|
353
|
+
information_pop_up = await is_window_open("Information")
|
354
|
+
if information_pop_up["IsOpened"] == True:
|
355
|
+
app = Application().connect(class_name="TFrmNotaFiscalEntrada")
|
356
|
+
main_window = app["Information"]
|
357
|
+
|
358
|
+
main_window.set_focus()
|
359
|
+
|
360
|
+
console.print(f"Obtendo texto do Information...\n")
|
361
|
+
console.print(f"Tirando print da janela do Information para realização do OCR...\n")
|
362
|
+
|
363
|
+
window_rect = main_window.rectangle()
|
364
|
+
screenshot = pyautogui.screenshot(
|
365
|
+
region=(
|
366
|
+
window_rect.left,
|
367
|
+
window_rect.top,
|
368
|
+
window_rect.width(),
|
369
|
+
window_rect.height(),
|
370
|
+
)
|
371
|
+
)
|
372
|
+
username = getpass.getuser()
|
373
|
+
path_to_png = f"C:\\Users\\{username}\\Downloads\\information_popup_{nota.get("nfe")}.png"
|
374
|
+
screenshot.save(path_to_png)
|
375
|
+
console.print(f"Print salvo em {path_to_png}...\n")
|
376
|
+
|
377
|
+
console.print(
|
378
|
+
f"Preparando a imagem para maior resolução e assertividade no OCR...\n"
|
379
|
+
)
|
380
|
+
image = Image.open(path_to_png)
|
381
|
+
image = image.convert("L")
|
382
|
+
enhancer = ImageEnhance.Contrast(image)
|
383
|
+
image = enhancer.enhance(2.0)
|
384
|
+
image.save(path_to_png)
|
385
|
+
console.print(f"Imagem preparada com sucesso...\n")
|
386
|
+
console.print(f"Realizando OCR...\n")
|
387
|
+
captured_text = pytesseract.image_to_string(Image.open(path_to_png))
|
388
|
+
console.print(
|
389
|
+
f"Texto Full capturado {captured_text}...\n"
|
390
|
+
)
|
391
|
+
os.remove(path_to_png)
|
392
|
+
if 'nota fiscal inc' in captured_text.lower():
|
393
|
+
console.print(f"Tentando clicar no Botão OK...\n")
|
394
|
+
btn_ok = main_window.child_window(class_name="TButton")
|
395
|
+
|
396
|
+
if btn_ok.exists():
|
397
|
+
btn_ok.click()
|
398
|
+
retorno = True
|
399
|
+
else:
|
400
|
+
return RpaRetornoProcessoDTO(
|
401
|
+
sucesso=False,
|
402
|
+
retorno=f"Pop_up Informantion não mapeado para andamento do robô, mensagem {captured_text}",
|
403
|
+
status=RpaHistoricoStatusEnum.Falha,
|
404
|
+
)
|
405
|
+
else:
|
406
|
+
console.print(f"Aba Information não encontrada")
|
407
|
+
retorno = await verify_nf_incuded()
|
408
|
+
|
409
|
+
except Exception as e:
|
410
|
+
console.print(f"Erro ao conectar à janela Information: {e}\n")
|
411
|
+
return RpaRetornoProcessoDTO(
|
412
|
+
sucesso=False,
|
413
|
+
retorno=f"Erro em obter o retorno, Nota inserida com sucesso, erro {e}",
|
414
|
+
status=RpaHistoricoStatusEnum.Falha,
|
415
|
+
)
|
416
|
+
|
335
417
|
if retorno:
|
336
418
|
console.print("\nNota lançada com sucesso...", style="bold green")
|
337
419
|
await worker_sleep(6)
|
@@ -1,7 +1,12 @@
|
|
1
1
|
import asyncio
|
2
|
+
import getpass
|
3
|
+
import os
|
2
4
|
import warnings
|
3
5
|
|
4
6
|
import pyautogui
|
7
|
+
from pywinauto.keyboard import send_keys
|
8
|
+
from PIL import Image, ImageEnhance
|
9
|
+
import pytesseract
|
5
10
|
from pywinauto.application import Application
|
6
11
|
from pywinauto_recorder.player import set_combobox
|
7
12
|
from rich.console import Console
|
@@ -429,6 +434,82 @@ async def entrada_de_notas_16(task: RpaProcessoEntradaDTO) -> RpaRetornoProcesso
|
|
429
434
|
retorno=observacao,
|
430
435
|
status=RpaHistoricoStatusEnum.Falha,
|
431
436
|
)
|
437
|
+
try:
|
438
|
+
max_attempts = 60
|
439
|
+
i = 0
|
440
|
+
|
441
|
+
while i < max_attempts:
|
442
|
+
information_pop_up = await is_window_open("Information")
|
443
|
+
if information_pop_up["IsOpened"] == True:
|
444
|
+
break
|
445
|
+
else:
|
446
|
+
console.print(f"Aguardando confirmação de nota incluida...\n")
|
447
|
+
await worker_sleep(5)
|
448
|
+
i += 1
|
449
|
+
|
450
|
+
information_pop_up = await is_window_open("Information")
|
451
|
+
if information_pop_up["IsOpened"] == True:
|
452
|
+
app = Application().connect(class_name="TFrmNotaFiscalEntrada")
|
453
|
+
main_window = app["Information"]
|
454
|
+
|
455
|
+
main_window.set_focus()
|
456
|
+
|
457
|
+
console.print(f"Obtendo texto do Information...\n")
|
458
|
+
console.print(f"Tirando print da janela do Information para realização do OCR...\n")
|
459
|
+
|
460
|
+
window_rect = main_window.rectangle()
|
461
|
+
screenshot = pyautogui.screenshot(
|
462
|
+
region=(
|
463
|
+
window_rect.left,
|
464
|
+
window_rect.top,
|
465
|
+
window_rect.width(),
|
466
|
+
window_rect.height(),
|
467
|
+
)
|
468
|
+
)
|
469
|
+
username = getpass.getuser()
|
470
|
+
path_to_png = f"C:\\Users\\{username}\\Downloads\\information_popup_{nota.get("nfe")}.png"
|
471
|
+
screenshot.save(path_to_png)
|
472
|
+
console.print(f"Print salvo em {path_to_png}...\n")
|
473
|
+
|
474
|
+
console.print(
|
475
|
+
f"Preparando a imagem para maior resolução e assertividade no OCR...\n"
|
476
|
+
)
|
477
|
+
image = Image.open(path_to_png)
|
478
|
+
image = image.convert("L")
|
479
|
+
enhancer = ImageEnhance.Contrast(image)
|
480
|
+
image = enhancer.enhance(2.0)
|
481
|
+
image.save(path_to_png)
|
482
|
+
console.print(f"Imagem preparada com sucesso...\n")
|
483
|
+
console.print(f"Realizando OCR...\n")
|
484
|
+
captured_text = pytesseract.image_to_string(Image.open(path_to_png))
|
485
|
+
console.print(
|
486
|
+
f"Texto Full capturado {captured_text}...\n"
|
487
|
+
)
|
488
|
+
os.remove(path_to_png)
|
489
|
+
if 'nota fiscal inc' in captured_text.lower():
|
490
|
+
console.print(f"Tentando clicar no Botão OK...\n")
|
491
|
+
btn_ok = main_window.child_window(class_name="TButton")
|
492
|
+
|
493
|
+
if btn_ok.exists():
|
494
|
+
btn_ok.click()
|
495
|
+
retorno = True
|
496
|
+
else:
|
497
|
+
return RpaRetornoProcessoDTO(
|
498
|
+
sucesso=False,
|
499
|
+
retorno=f"Pop_up Informantion não mapeado para andamento do robô, mensagem {captured_text}",
|
500
|
+
status=RpaHistoricoStatusEnum.Falha,
|
501
|
+
)
|
502
|
+
else:
|
503
|
+
console.print(f"Aba Information não encontrada")
|
504
|
+
retorno = await verify_nf_incuded()
|
505
|
+
|
506
|
+
except Exception as e:
|
507
|
+
console.print(f"Erro ao conectar à janela Information: {e}\n")
|
508
|
+
return RpaRetornoProcessoDTO(
|
509
|
+
sucesso=False,
|
510
|
+
retorno=f"Erro em obter o retorno, Nota inserida com sucesso, erro {e}",
|
511
|
+
status=RpaHistoricoStatusEnum.Falha,
|
512
|
+
)
|
432
513
|
|
433
514
|
if retorno:
|
434
515
|
console.print("\nNota lançada com sucesso...", style="bold green")
|
@@ -139,7 +139,7 @@ async def sped_fiscal(task: RpaProcessoEntradaDTO) -> RpaRetornoProcessoDTO:
|
|
139
139
|
await worker_sleep(2)
|
140
140
|
|
141
141
|
console.print("Inserindo o período para geração do sped...\n")
|
142
|
-
periodo =
|
142
|
+
periodo = main_window.child_window(class_name="TDBIEditDate", found_index=0)
|
143
143
|
periodo.set_edit_text(periodo_dt)
|
144
144
|
await worker_sleep(2)
|
145
145
|
|
@@ -215,6 +215,7 @@ async def sped_fiscal(task: RpaProcessoEntradaDTO) -> RpaRetornoProcessoDTO:
|
|
215
215
|
status=RpaHistoricoStatusEnum.Falha,
|
216
216
|
)
|
217
217
|
|
218
|
+
|
218
219
|
console.print(f"Verificando sem possui o pop-up de Registro de Entrada... \n")
|
219
220
|
registro_entrada_pop_up_class = await is_window_open_by_class("TMsgBox")
|
220
221
|
if registro_entrada_pop_up_class == True:
|
{worker_automate_hub-0.4.350 → worker_automate_hub-0.4.352}/worker_automate_hub/utils/util.py
RENAMED
@@ -377,16 +377,17 @@ async def login_emsys_fiscal(
|
|
377
377
|
)
|
378
378
|
|
379
379
|
# Seleciona a filial do emsys
|
380
|
-
console.print("Seleciona a filial
|
380
|
+
console.print(f"Seleciona a filial {filial_cod} no emsys...")
|
381
381
|
app = Application().connect(class_name="TFrmSelecaoEmpresa")
|
382
382
|
main_window = app["TFrmSelecaoEmpresa"]
|
383
383
|
main_window.set_focus()
|
384
384
|
|
385
|
-
|
386
|
-
|
387
|
-
|
385
|
+
edit_filial = main_window.child_window(class_name="TEdit", found_index=0)
|
386
|
+
edit_filial.click()
|
387
|
+
await worker_sleep(1)
|
388
|
+
pyautogui.write(filial_cod)
|
388
389
|
await worker_sleep(2)
|
389
|
-
|
390
|
+
edit_filial.type_keys("{ENTER}")
|
390
391
|
|
391
392
|
|
392
393
|
await worker_sleep(5)
|
File without changes
|
File without changes
|
{worker_automate_hub-0.4.350 → worker_automate_hub-0.4.352}/worker_automate_hub/api/__init__.py
RENAMED
File without changes
|
{worker_automate_hub-0.4.350 → worker_automate_hub-0.4.352}/worker_automate_hub/api/ahead_service.py
RENAMED
File without changes
|
{worker_automate_hub-0.4.350 → worker_automate_hub-0.4.352}/worker_automate_hub/api/client.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{worker_automate_hub-0.4.350 → worker_automate_hub-0.4.352}/worker_automate_hub/config/__init__.py
RENAMED
File without changes
|
{worker_automate_hub-0.4.350 → worker_automate_hub-0.4.352}/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.4.350 → worker_automate_hub-0.4.352}/worker_automate_hub/decorators/repeat.py
RENAMED
File without changes
|
{worker_automate_hub-0.4.350 → worker_automate_hub-0.4.352}/worker_automate_hub/decorators/retry.py
RENAMED
File without changes
|
File without changes
|
{worker_automate_hub-0.4.350 → worker_automate_hub-0.4.352}/worker_automate_hub/decorators/timeit.py
RENAMED
File without changes
|
{worker_automate_hub-0.4.350 → worker_automate_hub-0.4.352}/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
|
{worker_automate_hub-0.4.350 → worker_automate_hub-0.4.352}/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
|
{worker_automate_hub-0.4.350 → worker_automate_hub-0.4.352}/worker_automate_hub/utils/__init__.py
RENAMED
File without changes
|
{worker_automate_hub-0.4.350 → worker_automate_hub-0.4.352}/worker_automate_hub/utils/env.py
RENAMED
File without changes
|
File without changes
|
{worker_automate_hub-0.4.350 → worker_automate_hub-0.4.352}/worker_automate_hub/utils/logger.py
RENAMED
File without changes
|
{worker_automate_hub-0.4.350 → worker_automate_hub-0.4.352}/worker_automate_hub/utils/toast.py
RENAMED
File without changes
|
{worker_automate_hub-0.4.350 → worker_automate_hub-0.4.352}/worker_automate_hub/utils/updater.py
RENAMED
File without changes
|
File without changes
|
File without changes
|