maisaedu-utilities-prefect 1.2.68__tar.gz → 1.2.70__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.
Files changed (72) hide show
  1. {maisaedu_utilities_prefect-1.2.68 → maisaedu_utilities_prefect-1.2.70}/PKG-INFO +1 -1
  2. {maisaedu_utilities_prefect-1.2.68 → maisaedu_utilities_prefect-1.2.70}/maisaedu_utilities_prefect/hubspot/deals.py +115 -0
  3. {maisaedu_utilities_prefect-1.2.68 → maisaedu_utilities_prefect-1.2.70}/maisaedu_utilities_prefect/one_drive/document_handling.py +3 -3
  4. {maisaedu_utilities_prefect-1.2.68 → maisaedu_utilities_prefect-1.2.70}/maisaedu_utilities_prefect.egg-info/PKG-INFO +1 -1
  5. {maisaedu_utilities_prefect-1.2.68 → maisaedu_utilities_prefect-1.2.70}/setup.py +1 -1
  6. {maisaedu_utilities_prefect-1.2.68 → maisaedu_utilities_prefect-1.2.70}/LICENSE +0 -0
  7. {maisaedu_utilities_prefect-1.2.68 → maisaedu_utilities_prefect-1.2.70}/maisaedu_utilities_prefect/__init__.py +0 -0
  8. {maisaedu_utilities_prefect-1.2.68 → maisaedu_utilities_prefect-1.2.70}/maisaedu_utilities_prefect/azure_blob_service/__init__.py +0 -0
  9. {maisaedu_utilities_prefect-1.2.68 → maisaedu_utilities_prefect-1.2.70}/maisaedu_utilities_prefect/azure_blob_service/azureBlobService.py +0 -0
  10. {maisaedu_utilities_prefect-1.2.68 → maisaedu_utilities_prefect-1.2.70}/maisaedu_utilities_prefect/constants/__init__.py +0 -0
  11. {maisaedu_utilities_prefect-1.2.68 → maisaedu_utilities_prefect-1.2.70}/maisaedu_utilities_prefect/constants/env.py +0 -0
  12. {maisaedu_utilities_prefect-1.2.68 → maisaedu_utilities_prefect-1.2.70}/maisaedu_utilities_prefect/constants/notification.py +0 -0
  13. {maisaedu_utilities_prefect-1.2.68 → maisaedu_utilities_prefect-1.2.70}/maisaedu_utilities_prefect/constants/redshift.py +0 -0
  14. {maisaedu_utilities_prefect-1.2.68 → maisaedu_utilities_prefect-1.2.70}/maisaedu_utilities_prefect/constants/selenium.py +0 -0
  15. {maisaedu_utilities_prefect-1.2.68 → maisaedu_utilities_prefect-1.2.70}/maisaedu_utilities_prefect/database/__init__.py +0 -0
  16. {maisaedu_utilities_prefect-1.2.68 → maisaedu_utilities_prefect-1.2.70}/maisaedu_utilities_prefect/database/athena.py +0 -0
  17. {maisaedu_utilities_prefect-1.2.68 → maisaedu_utilities_prefect-1.2.70}/maisaedu_utilities_prefect/database/postgres.py +0 -0
  18. {maisaedu_utilities_prefect-1.2.68 → maisaedu_utilities_prefect-1.2.70}/maisaedu_utilities_prefect/dw.py +0 -0
  19. {maisaedu_utilities_prefect-1.2.68 → maisaedu_utilities_prefect-1.2.70}/maisaedu_utilities_prefect/googlesheet/__init__.py +0 -0
  20. {maisaedu_utilities_prefect-1.2.68 → maisaedu_utilities_prefect-1.2.70}/maisaedu_utilities_prefect/googlesheet/gspread.py +0 -0
  21. {maisaedu_utilities_prefect-1.2.68 → maisaedu_utilities_prefect-1.2.70}/maisaedu_utilities_prefect/hubspot/__init__.py +0 -0
  22. {maisaedu_utilities_prefect-1.2.68 → maisaedu_utilities_prefect-1.2.70}/maisaedu_utilities_prefect/hubspot/associations.py +0 -0
  23. {maisaedu_utilities_prefect-1.2.68 → maisaedu_utilities_prefect-1.2.70}/maisaedu_utilities_prefect/hubspot/company.py +0 -0
  24. {maisaedu_utilities_prefect-1.2.68 → maisaedu_utilities_prefect-1.2.70}/maisaedu_utilities_prefect/hubspot/contacts.py +0 -0
  25. {maisaedu_utilities_prefect-1.2.68 → maisaedu_utilities_prefect-1.2.70}/maisaedu_utilities_prefect/hubspot/contacts_lists.py +0 -0
  26. {maisaedu_utilities_prefect-1.2.68 → maisaedu_utilities_prefect-1.2.70}/maisaedu_utilities_prefect/hubspot/email_events.py +0 -0
  27. {maisaedu_utilities_prefect-1.2.68 → maisaedu_utilities_prefect-1.2.70}/maisaedu_utilities_prefect/hubspot/form_submission_events.py +0 -0
  28. {maisaedu_utilities_prefect-1.2.68 → maisaedu_utilities_prefect-1.2.70}/maisaedu_utilities_prefect/hubspot/forms.py +0 -0
  29. {maisaedu_utilities_prefect-1.2.68 → maisaedu_utilities_prefect-1.2.70}/maisaedu_utilities_prefect/hubspot/forms_submissions.py +0 -0
  30. {maisaedu_utilities_prefect-1.2.68 → maisaedu_utilities_prefect-1.2.70}/maisaedu_utilities_prefect/hubspot/landing_pages.py +0 -0
  31. {maisaedu_utilities_prefect-1.2.68 → maisaedu_utilities_prefect-1.2.70}/maisaedu_utilities_prefect/hubspot/lineItems.py +0 -0
  32. {maisaedu_utilities_prefect-1.2.68 → maisaedu_utilities_prefect-1.2.70}/maisaedu_utilities_prefect/hubspot/marketing_emails.py +0 -0
  33. {maisaedu_utilities_prefect-1.2.68 → maisaedu_utilities_prefect-1.2.70}/maisaedu_utilities_prefect/hubspot/objects.py +0 -0
  34. {maisaedu_utilities_prefect-1.2.68 → maisaedu_utilities_prefect-1.2.70}/maisaedu_utilities_prefect/hubspot/owners.py +0 -0
  35. {maisaedu_utilities_prefect-1.2.68 → maisaedu_utilities_prefect-1.2.70}/maisaedu_utilities_prefect/hubspot/pipelines.py +0 -0
  36. {maisaedu_utilities_prefect-1.2.68 → maisaedu_utilities_prefect-1.2.70}/maisaedu_utilities_prefect/hubspot/tickets.py +0 -0
  37. {maisaedu_utilities_prefect-1.2.68 → maisaedu_utilities_prefect-1.2.70}/maisaedu_utilities_prefect/hubspot/users.py +0 -0
  38. {maisaedu_utilities_prefect-1.2.68 → maisaedu_utilities_prefect-1.2.70}/maisaedu_utilities_prefect/llm/__init__.py +0 -0
  39. {maisaedu_utilities_prefect-1.2.68 → maisaedu_utilities_prefect-1.2.70}/maisaedu_utilities_prefect/llm/service/__init__.py +0 -0
  40. {maisaedu_utilities_prefect-1.2.68 → maisaedu_utilities_prefect-1.2.70}/maisaedu_utilities_prefect/llm/service/llm_service.py +0 -0
  41. {maisaedu_utilities_prefect-1.2.68 → maisaedu_utilities_prefect-1.2.70}/maisaedu_utilities_prefect/notification.py +0 -0
  42. {maisaedu_utilities_prefect-1.2.68 → maisaedu_utilities_prefect-1.2.70}/maisaedu_utilities_prefect/one_drive/__init__.py +0 -0
  43. {maisaedu_utilities_prefect-1.2.68 → maisaedu_utilities_prefect-1.2.70}/maisaedu_utilities_prefect/one_drive/extractor.py +0 -0
  44. {maisaedu_utilities_prefect-1.2.68 → maisaedu_utilities_prefect-1.2.70}/maisaedu_utilities_prefect/powerbi_api/__init__.py +0 -0
  45. {maisaedu_utilities_prefect-1.2.68 → maisaedu_utilities_prefect-1.2.70}/maisaedu_utilities_prefect/powerbi_api/models/__init__.py +0 -0
  46. {maisaedu_utilities_prefect-1.2.68 → maisaedu_utilities_prefect-1.2.70}/maisaedu_utilities_prefect/powerbi_api/models/adminGroupModel.py +0 -0
  47. {maisaedu_utilities_prefect-1.2.68 → maisaedu_utilities_prefect-1.2.70}/maisaedu_utilities_prefect/powerbi_api/models/datasetDatasourceModel.py +0 -0
  48. {maisaedu_utilities_prefect-1.2.68 → maisaedu_utilities_prefect-1.2.70}/maisaedu_utilities_prefect/powerbi_api/models/datasetRefreshScheduleModel.py +0 -0
  49. {maisaedu_utilities_prefect-1.2.68 → maisaedu_utilities_prefect-1.2.70}/maisaedu_utilities_prefect/powerbi_api/models/datasourceModel.py +0 -0
  50. {maisaedu_utilities_prefect-1.2.68 → maisaedu_utilities_prefect-1.2.70}/maisaedu_utilities_prefect/powerbi_api/models/gatewayModel.py +0 -0
  51. {maisaedu_utilities_prefect-1.2.68 → maisaedu_utilities_prefect-1.2.70}/maisaedu_utilities_prefect/powerbi_api/services/__init__.py +0 -0
  52. {maisaedu_utilities_prefect-1.2.68 → maisaedu_utilities_prefect-1.2.70}/maisaedu_utilities_prefect/powerbi_api/services/activityLogsService.py +0 -0
  53. {maisaedu_utilities_prefect-1.2.68 → maisaedu_utilities_prefect-1.2.70}/maisaedu_utilities_prefect/powerbi_api/services/adminGroupsService.py +0 -0
  54. {maisaedu_utilities_prefect-1.2.68 → maisaedu_utilities_prefect-1.2.70}/maisaedu_utilities_prefect/powerbi_api/services/client.py +0 -0
  55. {maisaedu_utilities_prefect-1.2.68 → maisaedu_utilities_prefect-1.2.70}/maisaedu_utilities_prefect/powerbi_api/services/datasetService.py +0 -0
  56. {maisaedu_utilities_prefect-1.2.68 → maisaedu_utilities_prefect-1.2.70}/maisaedu_utilities_prefect/powerbi_api/services/datasourceService.py +0 -0
  57. {maisaedu_utilities_prefect-1.2.68 → maisaedu_utilities_prefect-1.2.70}/maisaedu_utilities_prefect/powerbi_api/services/gatewayService.py +0 -0
  58. {maisaedu_utilities_prefect-1.2.68 → maisaedu_utilities_prefect-1.2.70}/maisaedu_utilities_prefect/powerbi_api/services/userService.py +0 -0
  59. {maisaedu_utilities_prefect-1.2.68 → maisaedu_utilities_prefect-1.2.70}/maisaedu_utilities_prefect/prefect_api/__init__.py +0 -0
  60. {maisaedu_utilities_prefect-1.2.68 → maisaedu_utilities_prefect-1.2.70}/maisaedu_utilities_prefect/prefect_api/flows.py +0 -0
  61. {maisaedu_utilities_prefect-1.2.68 → maisaedu_utilities_prefect-1.2.70}/maisaedu_utilities_prefect/scripts/flow-mem-limit +0 -0
  62. {maisaedu_utilities_prefect-1.2.68 → maisaedu_utilities_prefect-1.2.70}/maisaedu_utilities_prefect/scripts/refresh-secrets +0 -0
  63. {maisaedu_utilities_prefect-1.2.68 → maisaedu_utilities_prefect-1.2.70}/maisaedu_utilities_prefect/secrets.py +0 -0
  64. {maisaedu_utilities_prefect-1.2.68 → maisaedu_utilities_prefect-1.2.70}/maisaedu_utilities_prefect/selenium/__init__.py +0 -0
  65. {maisaedu_utilities_prefect-1.2.68 → maisaedu_utilities_prefect-1.2.70}/maisaedu_utilities_prefect/selenium/service/__init__.py +0 -0
  66. {maisaedu_utilities_prefect-1.2.68 → maisaedu_utilities_prefect-1.2.70}/maisaedu_utilities_prefect/tunnel.py +0 -0
  67. {maisaedu_utilities_prefect-1.2.68 → maisaedu_utilities_prefect-1.2.70}/maisaedu_utilities_prefect/utils.py +0 -0
  68. {maisaedu_utilities_prefect-1.2.68 → maisaedu_utilities_prefect-1.2.70}/maisaedu_utilities_prefect.egg-info/SOURCES.txt +0 -0
  69. {maisaedu_utilities_prefect-1.2.68 → maisaedu_utilities_prefect-1.2.70}/maisaedu_utilities_prefect.egg-info/dependency_links.txt +0 -0
  70. {maisaedu_utilities_prefect-1.2.68 → maisaedu_utilities_prefect-1.2.70}/maisaedu_utilities_prefect.egg-info/requires.txt +0 -0
  71. {maisaedu_utilities_prefect-1.2.68 → maisaedu_utilities_prefect-1.2.70}/maisaedu_utilities_prefect.egg-info/top_level.txt +0 -0
  72. {maisaedu_utilities_prefect-1.2.68 → maisaedu_utilities_prefect-1.2.70}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: maisaedu_utilities_prefect
3
- Version: 1.2.68
3
+ Version: 1.2.70
4
4
  Summary: Utilities for interaction with Prefect, for +A Education
5
5
  Home-page: UNKNOWN
6
6
  Author: A+ Educação
@@ -141,3 +141,118 @@ def get_all_deals_v1_recent_modified(
141
141
  prefect.get_run_logger().error(resp)
142
142
  raise Exception(e)
143
143
  return data
144
+
145
+ def get_deal_v3_with_history(
146
+ app_private_token,
147
+ deal_id,
148
+ properties_with_history,
149
+ tries=5,
150
+ ):
151
+ logger = prefect.get_run_logger()
152
+ base_url = f"https://api.hubapi.com/crm/v3/objects/deals/{deal_id}"
153
+
154
+ params = {}
155
+
156
+ if properties_with_history:
157
+ params["propertiesWithHistory"] = ",".join(properties_with_history)
158
+
159
+ headers = {
160
+ "content-type": "application/json",
161
+ "cache-control": "no-cache",
162
+ "Authorization": f"Bearer {app_private_token}",
163
+ }
164
+
165
+ for i in range(tries):
166
+ try:
167
+ r = requests.get(url=base_url, headers=headers, params=params)
168
+ r.raise_for_status()
169
+ response_dict = r.json()
170
+ return response_dict
171
+ except Exception as e:
172
+ logger.error(f"Error to fetch deal v3 with history (attempt {i+1}/{tries}): {e}")
173
+ if i == tries - 1:
174
+ raise
175
+
176
+
177
+ def chunk_list(values, chunk_size):
178
+ values = list(values)
179
+ for i in range(0, len(values), chunk_size):
180
+ yield values[i:i + chunk_size]
181
+
182
+ def get_deals_v3_batch_with_history(
183
+ app_private_token,
184
+ deal_ids,
185
+ properties_with_history=None,
186
+ properties=None,
187
+ batch_size=50,
188
+ tries=5,
189
+ ):
190
+ """
191
+ Lê deals em lote na API v3 usando:
192
+ POST /crm/v3/objects/deals/batch/read
193
+
194
+ - deal_ids: iterável de IDs de deals
195
+ - properties_with_history: lista de propriedades com histórico
196
+ - properties: lista de propriedades atuais
197
+ - batch_size: máximo 50 por causa da API da HubSpot
198
+
199
+ Retorna: dict {deal_id: payload_json_completo}
200
+ """
201
+ logger = prefect.get_run_logger()
202
+ url = "https://api.hubapi.com/crm/v3/objects/deals/batch/read"
203
+
204
+ # garantia extra: nunca passa de 50
205
+ if batch_size > 50:
206
+ batch_size = 50
207
+
208
+ headers = {
209
+ "content-type": "application/json",
210
+ "cache-control": "no-cache",
211
+ "Authorization": f"Bearer {app_private_token}",
212
+ }
213
+
214
+ results_by_id = {}
215
+
216
+ # garante lista de strings
217
+ deal_ids = [str(d) for d in deal_ids]
218
+
219
+ for ids_chunk in chunk_list(deal_ids, batch_size):
220
+ if not ids_chunk:
221
+ continue
222
+
223
+ # LOG para você ver o tamanho do chunk
224
+ logger.info(f"Chamando batch/read para {len(ids_chunk)} deals "
225
+ f"({ids_chunk[0]} .. {ids_chunk[-1]})")
226
+
227
+ body = {
228
+ "inputs": [{"id": did} for did in ids_chunk]
229
+ }
230
+
231
+ if properties:
232
+ body["properties"] = list(properties)
233
+
234
+ if properties_with_history:
235
+ body["propertiesWithHistory"] = list(properties_with_history)
236
+
237
+ for attempt in range(tries):
238
+ try:
239
+ r = requests.post(url, headers=headers, json=body, timeout=30)
240
+ r.raise_for_status()
241
+ resp = r.json()
242
+
243
+ for deal in resp.get("results", []):
244
+ deal_id = deal.get("id")
245
+ if deal_id is not None:
246
+ results_by_id[deal_id] = deal
247
+
248
+ break # deu certo, sai do retry
249
+ except Exception as e:
250
+ logger.error(
251
+ f"Erro ao buscar deals v3 em batch "
252
+ f"(chunk {ids_chunk[0]}..{ids_chunk[-1]}) "
253
+ f"(tentativa {attempt+1}/{tries}): {e}"
254
+ )
255
+ if attempt == tries - 1:
256
+ raise
257
+
258
+ return results_by_id
@@ -65,9 +65,9 @@ def get_shared_documents_by_query_search(query_string):
65
65
 
66
66
  for value in values:
67
67
  shared_documents.append({
68
- "id": value["resource"]["sharepointIds"]["listItemUniqueId"],
69
- "name": value["name"],
70
- "url": value["webUrl"]
68
+ "id": value["resource"]["parentReference"]["sharepointIds"]["listItemUniqueId"],
69
+ "name": value["resource"]["name"],
70
+ "url": value["resource"]["webUrl"]
71
71
  })
72
72
 
73
73
  return shared_documents
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: maisaedu-utilities-prefect
3
- Version: 1.2.68
3
+ Version: 1.2.70
4
4
  Summary: Utilities for interaction with Prefect, for +A Education
5
5
  Home-page: UNKNOWN
6
6
  Author: A+ Educação
@@ -2,7 +2,7 @@ from setuptools import setup, find_packages
2
2
 
3
3
  setup(
4
4
  name="maisaedu_utilities_prefect",
5
- version="1.2.68",
5
+ version="1.2.70",
6
6
  description="Utilities for interaction with Prefect, for +A Education",
7
7
  license="MIT License",
8
8
  author="A+ Educação",