csc-cia-stne 0.1.34__py3-none-any.whl → 0.1.36__py3-none-any.whl

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.
csc_cia_stne/jerry.py CHANGED
@@ -97,10 +97,10 @@ class JerryClient:
97
97
  self.username = config.username
98
98
  self.password = config.password
99
99
  self.verbose = config.verbose
100
- self.log = logging.getLogger("__main__")
101
100
  if self.verbose:
102
- self.log.setLevel(logging.INFO)
101
+ self.log = logging.getLogger("__main__")
103
102
  else:
103
+ self.log = logging.getLogger(__file__)
104
104
  self.log.setLevel(logging.CRITICAL)
105
105
 
106
106
  self.api_base_url = config.api_base_url.rstrip('/')
@@ -1,29 +1,39 @@
1
1
  from PyPDF2 import PdfReader, PdfWriter
2
2
  from io import BytesIO
3
- from typing import Optional
3
+ from typing import Optional, Dict, Any
4
4
 
5
- def extrair_x_paginas_pdf(file_path: str, pages_limit: int = 15) -> Optional[bytes]:
5
+ def extrair_x_paginas_pdf(file_path: str, pages_limit: int = 15) -> Dict[str, Any]:
6
6
  """
7
7
  Extrai as primeiras X páginas de um arquivo PDF e retorna os bytes dessas páginas.
8
8
 
9
9
  Args:
10
10
  file_path (str): Caminho completo do arquivo PDF original.
11
11
  pages_limit (int, optional): Número máximo de páginas a serem extraídas.
12
- Defaults to 15.
12
+ Padrão: 15.
13
13
 
14
14
  Returns:
15
- Optional[bytes]: Bytes do novo PDF contendo as primeiras X páginas,
16
- ou None em caso de erro.
15
+ Dict[str, Any]: Dicionário contendo:
16
+ - success (bool): True se a operação foi bem-sucedida, False caso contrário
17
+ - error (str|None): Mensagem de erro se houver falha, None se sucesso
18
+ - data (bytes|None): Bytes do PDF extraído se sucesso, None se erro
19
+ - total_doc_pages (int): Número total de páginas do documento original (apenas se success=True)
20
+ - extracted_pages (int): Número de páginas efetivamente extraídas (apenas se success=True)
17
21
 
18
22
  Note:
19
23
  - Se o PDF tiver menos páginas que pages_limit, todas serão extraídas
20
24
  - Utiliza PyPDF2 para manipulação do arquivo PDF
21
- - Retorna None em caso de erro no processamento
25
+ - Retorna success=False em caso de erro no processamento
22
26
 
23
27
  Example:
24
- >>> pdf_bytes = extrair_x_paginas_pdf("documento.pdf", 10)
25
- >>> if pdf_bytes["success"]:
26
- ... print(f"PDF extraído com {len(pdf_bytes["data"])} bytes")
28
+ >>> resultado = extrair_x_paginas_pdf("documento.pdf", 10)
29
+ >>> if resultado["success"]:
30
+ ... print(f"PDF extraído com {len(resultado['data'])} bytes")
31
+ ... print(f"Páginas extraídas: {resultado['extracted_pages']}/{resultado['total_doc_pages']}")
32
+ ... else:
33
+ ... print(f"Erro: {resultado['error']}")
34
+
35
+ Raises:
36
+ Não levanta exceções diretamente - erros são capturados e retornados no dicionário.
27
37
  """
28
38
  try:
29
39
  # Lê o arquivo PDF original
@@ -31,20 +41,21 @@ def extrair_x_paginas_pdf(file_path: str, pages_limit: int = 15) -> Optional[byt
31
41
  writer = PdfWriter()
32
42
 
33
43
  # Extrai as primeiras 'pages_limit' páginas ou menos, caso o PDF tenha menos de 'pages_limit' páginas
34
- for page_num in range(min(pages_limit, len(reader.pages))):
44
+ total_doc_pages = len(reader.pages)
45
+ for page_num in range(min(pages_limit, total_doc_pages)):
35
46
  writer.add_page(reader.pages[page_num])
36
47
 
37
48
  # Salva o novo PDF em um objeto BytesIO
38
49
  pdf_bytes = BytesIO()
39
50
  writer.write(pdf_bytes)
40
51
  pdf_bytes.seek(0) # Move o cursor para o início do buffer
41
- resposta = {"success": True, "error": None, "data": pdf_bytes.read()}
52
+ resposta = {"success": True, "error": None, "data": pdf_bytes.read(), "total_doc_pages": total_doc_pages, "extracted_pages": min(pages_limit, total_doc_pages)}
42
53
  return resposta
43
54
  except Exception as e:
44
55
  resposta = {"success": False, "error": f"Erro ao extrair as primeiras {pages_limit} páginas do PDF: {str(e)}", "data": None}
45
56
  return resposta
46
57
 
47
- def extrair_paginas_intervalo_pdf(file_path: str, page_start: int = 1, pages_limit: int = 15) -> Optional[bytes]:
58
+ def extrair_paginas_intervalo_pdf(file_path: str, page_start: int = 1, pages_limit: int = 15) -> Dict[str, Any]:
48
59
  """
49
60
  Extrai um número específico de páginas de um arquivo PDF a partir de uma página inicial.
50
61
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: csc_cia_stne
3
- Version: 0.1.34
3
+ Version: 0.1.36
4
4
  Summary: Biblioteca do time CSC-CIA utilizada no desenvolvimento de RPAs
5
5
  License: MIT
6
6
  Keywords: karavela,csc,cia,stone,rpa,botcity,stne
@@ -7,7 +7,7 @@ csc_cia_stne/gcp_bigquery.py,sha256=foq8azvvv_f7uikMDslX9RcUIrx7RAS-Sn0AGW0QFQc,
7
7
  csc_cia_stne/gcp_bucket.py,sha256=vMALWiW7IoBCuJAR8bUCpOV6BuBzI9AhRRk3b72OdMk,11515
8
8
  csc_cia_stne/gcp_document_ai.py,sha256=Dzlk7YR3M_LxE0sHn-Lxz-PA1NsUZN2hgY5PyUfs0IQ,4506
9
9
  csc_cia_stne/google_drive.py,sha256=7qwx4_RPEoSJgeVI02aLYNXA7o69_Z3qONvX5bfA4V0,44500
10
- csc_cia_stne/jerry.py,sha256=L-5BNrOPJ5Og4dmzvVURbM8vtVEo7RKxw0GDWgoIFxU,27188
10
+ csc_cia_stne/jerry.py,sha256=C3cF5Z21tUV_togECRN575_PebdVRperZJUC4-jVvKs,27199
11
11
  csc_cia_stne/karavela.py,sha256=jJCYX43D49gGuzmwwK6bN9XVnv2dXdp9iHnnV5H1LMQ,4794
12
12
  csc_cia_stne/logger_json.py,sha256=CXxSCOFGMymDi8XE9SKnPKjW4D0wJLqDLnxqePS26i8,3187
13
13
  csc_cia_stne/logger_rich.py,sha256=fklgkBb4rblKQd7YZ3q-eWfhGg9eflO2k2-z4pGh_yo,5201
@@ -24,7 +24,7 @@ csc_cia_stne/utilitarios/functions/func_converters.py,sha256=EY1zvlBaRX7G1MceVSi
24
24
  csc_cia_stne/utilitarios/functions/func_datetime.py,sha256=UA7ch4sQWTiYcz8r6LtGujIdpTU-Sht8qmTYvm9vhh0,257
25
25
  csc_cia_stne/utilitarios/functions/func_delete.py,sha256=o2h4leucTq5Cs0XxJ5aBzbRyuxusKXIoedn2tmxNp1E,2449
26
26
  csc_cia_stne/utilitarios/functions/func_get_secret.py,sha256=XFsAd9GnKnf9WLnARqNG2fFg5h_JEOxbVvt_78VFYh4,2959
27
- csc_cia_stne/utilitarios/functions/func_pdf_extract.py,sha256=uuGecPx4gh6uVyCvrqstK97G11FP7Sz0iwr52MUgD48,4508
27
+ csc_cia_stne/utilitarios/functions/func_pdf_extract.py,sha256=LbnojYXmxNwNKO5IUAiSMp5LwPVP6klQGB4c7HZMSHY,5339
28
28
  csc_cia_stne/utilitarios/functions/func_recriar_pastas.py,sha256=4whZpB3aJQaCPJ3osMAQpKrzEhqYtJbljGWlx_OvKIM,826
29
29
  csc_cia_stne/utilitarios/functions/func_settings.py,sha256=XwlfqdcfocXQ8kTsDKZ6GsAtpzr0_u44AOTIMtdem7U,2059
30
30
  csc_cia_stne/utilitarios/functions/func_titulo.py,sha256=bH4tYxovTARF-g2kWUK_GIzzXt8egbVdp6mWD6fc_3I,5345
@@ -41,8 +41,8 @@ csc_cia_stne/utilitarios/web_screen/__init__.py,sha256=5QcOPXKd95SvP2DoZiHS0gaU6
41
41
  csc_cia_stne/utilitarios/web_screen/web_screen_abstract.py,sha256=PjL8Vgfj_JdKidia7RFyCkro3avYLQu4RZRos41sh3w,3241
42
42
  csc_cia_stne/utilitarios/web_screen/web_screen_botcity.py,sha256=Xi5YJjl2pcxlX3OimqcBWRNXZEpAE7asyUjDJ4Oho5U,12297
43
43
  csc_cia_stne/utilitarios/web_screen/web_screen_selenium.py,sha256=JLIcPJE9ZX3Pd6zG6oTRMqqUAY063UzLY3ReRlxmiSM,15581
44
- csc_cia_stne-0.1.34.dist-info/licenses/LICENCE,sha256=LPGMtgKki2C3KEZP7hDhA1HBrlq5JCHkIeStUCLEMx4,1073
45
- csc_cia_stne-0.1.34.dist-info/METADATA,sha256=DAPag-w7hkkg2v2uKcG_8rYOLwMRUCdhQqb2um9Bl5k,1574
46
- csc_cia_stne-0.1.34.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
47
- csc_cia_stne-0.1.34.dist-info/top_level.txt,sha256=ldo7GVv3tQx5KJvwBzdZzzQmjPys2NDVVn1rv0BOF2Q,13
48
- csc_cia_stne-0.1.34.dist-info/RECORD,,
44
+ csc_cia_stne-0.1.36.dist-info/licenses/LICENCE,sha256=LPGMtgKki2C3KEZP7hDhA1HBrlq5JCHkIeStUCLEMx4,1073
45
+ csc_cia_stne-0.1.36.dist-info/METADATA,sha256=9IycHMFLcbG5zxuOz9Zf_w4WY9toiyPHX8_Asmu6miw,1574
46
+ csc_cia_stne-0.1.36.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
47
+ csc_cia_stne-0.1.36.dist-info/top_level.txt,sha256=ldo7GVv3tQx5KJvwBzdZzzQmjPys2NDVVn1rv0BOF2Q,13
48
+ csc_cia_stne-0.1.36.dist-info/RECORD,,