maisaedu-utilities-prefect 1.2.70__tar.gz → 1.2.72__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.
- {maisaedu_utilities_prefect-1.2.70 → maisaedu_utilities_prefect-1.2.72}/PKG-INFO +1 -1
- maisaedu_utilities_prefect-1.2.72/maisaedu_utilities_prefect/hubspot/marketing_emails.py +48 -0
- {maisaedu_utilities_prefect-1.2.70 → maisaedu_utilities_prefect-1.2.72}/maisaedu_utilities_prefect.egg-info/PKG-INFO +1 -1
- {maisaedu_utilities_prefect-1.2.70 → maisaedu_utilities_prefect-1.2.72}/setup.py +1 -1
- maisaedu_utilities_prefect-1.2.70/maisaedu_utilities_prefect/hubspot/marketing_emails.py +0 -65
- {maisaedu_utilities_prefect-1.2.70 → maisaedu_utilities_prefect-1.2.72}/LICENSE +0 -0
- {maisaedu_utilities_prefect-1.2.70 → maisaedu_utilities_prefect-1.2.72}/maisaedu_utilities_prefect/__init__.py +0 -0
- {maisaedu_utilities_prefect-1.2.70 → maisaedu_utilities_prefect-1.2.72}/maisaedu_utilities_prefect/azure_blob_service/__init__.py +0 -0
- {maisaedu_utilities_prefect-1.2.70 → maisaedu_utilities_prefect-1.2.72}/maisaedu_utilities_prefect/azure_blob_service/azureBlobService.py +0 -0
- {maisaedu_utilities_prefect-1.2.70 → maisaedu_utilities_prefect-1.2.72}/maisaedu_utilities_prefect/constants/__init__.py +0 -0
- {maisaedu_utilities_prefect-1.2.70 → maisaedu_utilities_prefect-1.2.72}/maisaedu_utilities_prefect/constants/env.py +0 -0
- {maisaedu_utilities_prefect-1.2.70 → maisaedu_utilities_prefect-1.2.72}/maisaedu_utilities_prefect/constants/notification.py +0 -0
- {maisaedu_utilities_prefect-1.2.70 → maisaedu_utilities_prefect-1.2.72}/maisaedu_utilities_prefect/constants/redshift.py +0 -0
- {maisaedu_utilities_prefect-1.2.70 → maisaedu_utilities_prefect-1.2.72}/maisaedu_utilities_prefect/constants/selenium.py +0 -0
- {maisaedu_utilities_prefect-1.2.70 → maisaedu_utilities_prefect-1.2.72}/maisaedu_utilities_prefect/database/__init__.py +0 -0
- {maisaedu_utilities_prefect-1.2.70 → maisaedu_utilities_prefect-1.2.72}/maisaedu_utilities_prefect/database/athena.py +0 -0
- {maisaedu_utilities_prefect-1.2.70 → maisaedu_utilities_prefect-1.2.72}/maisaedu_utilities_prefect/database/postgres.py +0 -0
- {maisaedu_utilities_prefect-1.2.70 → maisaedu_utilities_prefect-1.2.72}/maisaedu_utilities_prefect/dw.py +0 -0
- {maisaedu_utilities_prefect-1.2.70 → maisaedu_utilities_prefect-1.2.72}/maisaedu_utilities_prefect/googlesheet/__init__.py +0 -0
- {maisaedu_utilities_prefect-1.2.70 → maisaedu_utilities_prefect-1.2.72}/maisaedu_utilities_prefect/googlesheet/gspread.py +0 -0
- {maisaedu_utilities_prefect-1.2.70 → maisaedu_utilities_prefect-1.2.72}/maisaedu_utilities_prefect/hubspot/__init__.py +0 -0
- {maisaedu_utilities_prefect-1.2.70 → maisaedu_utilities_prefect-1.2.72}/maisaedu_utilities_prefect/hubspot/associations.py +0 -0
- {maisaedu_utilities_prefect-1.2.70 → maisaedu_utilities_prefect-1.2.72}/maisaedu_utilities_prefect/hubspot/company.py +0 -0
- {maisaedu_utilities_prefect-1.2.70 → maisaedu_utilities_prefect-1.2.72}/maisaedu_utilities_prefect/hubspot/contacts.py +0 -0
- {maisaedu_utilities_prefect-1.2.70 → maisaedu_utilities_prefect-1.2.72}/maisaedu_utilities_prefect/hubspot/contacts_lists.py +0 -0
- {maisaedu_utilities_prefect-1.2.70 → maisaedu_utilities_prefect-1.2.72}/maisaedu_utilities_prefect/hubspot/deals.py +0 -0
- {maisaedu_utilities_prefect-1.2.70 → maisaedu_utilities_prefect-1.2.72}/maisaedu_utilities_prefect/hubspot/email_events.py +0 -0
- {maisaedu_utilities_prefect-1.2.70 → maisaedu_utilities_prefect-1.2.72}/maisaedu_utilities_prefect/hubspot/form_submission_events.py +0 -0
- {maisaedu_utilities_prefect-1.2.70 → maisaedu_utilities_prefect-1.2.72}/maisaedu_utilities_prefect/hubspot/forms.py +0 -0
- {maisaedu_utilities_prefect-1.2.70 → maisaedu_utilities_prefect-1.2.72}/maisaedu_utilities_prefect/hubspot/forms_submissions.py +0 -0
- {maisaedu_utilities_prefect-1.2.70 → maisaedu_utilities_prefect-1.2.72}/maisaedu_utilities_prefect/hubspot/landing_pages.py +0 -0
- {maisaedu_utilities_prefect-1.2.70 → maisaedu_utilities_prefect-1.2.72}/maisaedu_utilities_prefect/hubspot/lineItems.py +0 -0
- {maisaedu_utilities_prefect-1.2.70 → maisaedu_utilities_prefect-1.2.72}/maisaedu_utilities_prefect/hubspot/objects.py +0 -0
- {maisaedu_utilities_prefect-1.2.70 → maisaedu_utilities_prefect-1.2.72}/maisaedu_utilities_prefect/hubspot/owners.py +0 -0
- {maisaedu_utilities_prefect-1.2.70 → maisaedu_utilities_prefect-1.2.72}/maisaedu_utilities_prefect/hubspot/pipelines.py +0 -0
- {maisaedu_utilities_prefect-1.2.70 → maisaedu_utilities_prefect-1.2.72}/maisaedu_utilities_prefect/hubspot/tickets.py +0 -0
- {maisaedu_utilities_prefect-1.2.70 → maisaedu_utilities_prefect-1.2.72}/maisaedu_utilities_prefect/hubspot/users.py +0 -0
- {maisaedu_utilities_prefect-1.2.70 → maisaedu_utilities_prefect-1.2.72}/maisaedu_utilities_prefect/llm/__init__.py +0 -0
- {maisaedu_utilities_prefect-1.2.70 → maisaedu_utilities_prefect-1.2.72}/maisaedu_utilities_prefect/llm/service/__init__.py +0 -0
- {maisaedu_utilities_prefect-1.2.70 → maisaedu_utilities_prefect-1.2.72}/maisaedu_utilities_prefect/llm/service/llm_service.py +0 -0
- {maisaedu_utilities_prefect-1.2.70 → maisaedu_utilities_prefect-1.2.72}/maisaedu_utilities_prefect/notification.py +0 -0
- {maisaedu_utilities_prefect-1.2.70 → maisaedu_utilities_prefect-1.2.72}/maisaedu_utilities_prefect/one_drive/__init__.py +0 -0
- {maisaedu_utilities_prefect-1.2.70 → maisaedu_utilities_prefect-1.2.72}/maisaedu_utilities_prefect/one_drive/document_handling.py +0 -0
- {maisaedu_utilities_prefect-1.2.70 → maisaedu_utilities_prefect-1.2.72}/maisaedu_utilities_prefect/one_drive/extractor.py +0 -0
- {maisaedu_utilities_prefect-1.2.70 → maisaedu_utilities_prefect-1.2.72}/maisaedu_utilities_prefect/powerbi_api/__init__.py +0 -0
- {maisaedu_utilities_prefect-1.2.70 → maisaedu_utilities_prefect-1.2.72}/maisaedu_utilities_prefect/powerbi_api/models/__init__.py +0 -0
- {maisaedu_utilities_prefect-1.2.70 → maisaedu_utilities_prefect-1.2.72}/maisaedu_utilities_prefect/powerbi_api/models/adminGroupModel.py +0 -0
- {maisaedu_utilities_prefect-1.2.70 → maisaedu_utilities_prefect-1.2.72}/maisaedu_utilities_prefect/powerbi_api/models/datasetDatasourceModel.py +0 -0
- {maisaedu_utilities_prefect-1.2.70 → maisaedu_utilities_prefect-1.2.72}/maisaedu_utilities_prefect/powerbi_api/models/datasetRefreshScheduleModel.py +0 -0
- {maisaedu_utilities_prefect-1.2.70 → maisaedu_utilities_prefect-1.2.72}/maisaedu_utilities_prefect/powerbi_api/models/datasourceModel.py +0 -0
- {maisaedu_utilities_prefect-1.2.70 → maisaedu_utilities_prefect-1.2.72}/maisaedu_utilities_prefect/powerbi_api/models/gatewayModel.py +0 -0
- {maisaedu_utilities_prefect-1.2.70 → maisaedu_utilities_prefect-1.2.72}/maisaedu_utilities_prefect/powerbi_api/services/__init__.py +0 -0
- {maisaedu_utilities_prefect-1.2.70 → maisaedu_utilities_prefect-1.2.72}/maisaedu_utilities_prefect/powerbi_api/services/activityLogsService.py +0 -0
- {maisaedu_utilities_prefect-1.2.70 → maisaedu_utilities_prefect-1.2.72}/maisaedu_utilities_prefect/powerbi_api/services/adminGroupsService.py +0 -0
- {maisaedu_utilities_prefect-1.2.70 → maisaedu_utilities_prefect-1.2.72}/maisaedu_utilities_prefect/powerbi_api/services/client.py +0 -0
- {maisaedu_utilities_prefect-1.2.70 → maisaedu_utilities_prefect-1.2.72}/maisaedu_utilities_prefect/powerbi_api/services/datasetService.py +0 -0
- {maisaedu_utilities_prefect-1.2.70 → maisaedu_utilities_prefect-1.2.72}/maisaedu_utilities_prefect/powerbi_api/services/datasourceService.py +0 -0
- {maisaedu_utilities_prefect-1.2.70 → maisaedu_utilities_prefect-1.2.72}/maisaedu_utilities_prefect/powerbi_api/services/gatewayService.py +0 -0
- {maisaedu_utilities_prefect-1.2.70 → maisaedu_utilities_prefect-1.2.72}/maisaedu_utilities_prefect/powerbi_api/services/userService.py +0 -0
- {maisaedu_utilities_prefect-1.2.70 → maisaedu_utilities_prefect-1.2.72}/maisaedu_utilities_prefect/prefect_api/__init__.py +0 -0
- {maisaedu_utilities_prefect-1.2.70 → maisaedu_utilities_prefect-1.2.72}/maisaedu_utilities_prefect/prefect_api/flows.py +0 -0
- {maisaedu_utilities_prefect-1.2.70 → maisaedu_utilities_prefect-1.2.72}/maisaedu_utilities_prefect/scripts/flow-mem-limit +0 -0
- {maisaedu_utilities_prefect-1.2.70 → maisaedu_utilities_prefect-1.2.72}/maisaedu_utilities_prefect/scripts/refresh-secrets +0 -0
- {maisaedu_utilities_prefect-1.2.70 → maisaedu_utilities_prefect-1.2.72}/maisaedu_utilities_prefect/secrets.py +0 -0
- {maisaedu_utilities_prefect-1.2.70 → maisaedu_utilities_prefect-1.2.72}/maisaedu_utilities_prefect/selenium/__init__.py +0 -0
- {maisaedu_utilities_prefect-1.2.70 → maisaedu_utilities_prefect-1.2.72}/maisaedu_utilities_prefect/selenium/service/__init__.py +0 -0
- {maisaedu_utilities_prefect-1.2.70 → maisaedu_utilities_prefect-1.2.72}/maisaedu_utilities_prefect/tunnel.py +0 -0
- {maisaedu_utilities_prefect-1.2.70 → maisaedu_utilities_prefect-1.2.72}/maisaedu_utilities_prefect/utils.py +0 -0
- {maisaedu_utilities_prefect-1.2.70 → maisaedu_utilities_prefect-1.2.72}/maisaedu_utilities_prefect.egg-info/SOURCES.txt +0 -0
- {maisaedu_utilities_prefect-1.2.70 → maisaedu_utilities_prefect-1.2.72}/maisaedu_utilities_prefect.egg-info/dependency_links.txt +0 -0
- {maisaedu_utilities_prefect-1.2.70 → maisaedu_utilities_prefect-1.2.72}/maisaedu_utilities_prefect.egg-info/requires.txt +0 -0
- {maisaedu_utilities_prefect-1.2.70 → maisaedu_utilities_prefect-1.2.72}/maisaedu_utilities_prefect.egg-info/top_level.txt +0 -0
- {maisaedu_utilities_prefect-1.2.70 → maisaedu_utilities_prefect-1.2.72}/setup.cfg +0 -0
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
|
|
2
|
+
from retry import retry
|
|
3
|
+
import requests
|
|
4
|
+
import json
|
|
5
|
+
import urllib
|
|
6
|
+
|
|
7
|
+
@retry(tries=5, delay=2, backoff=2)
|
|
8
|
+
def get_marketing_emails(api_key, app_private_token, after=None):
|
|
9
|
+
url = "https://api.hubapi.com/marketing/v3/emails?"
|
|
10
|
+
if api_key is not None:
|
|
11
|
+
parameter_dict = {"hapikey": api_key, "limit": 100}
|
|
12
|
+
headers = {"content-type": "application/json", "cache-control": "no-cache"}
|
|
13
|
+
else:
|
|
14
|
+
parameter_dict = {"limit": 100}
|
|
15
|
+
headers = {
|
|
16
|
+
"content-type": "application/json",
|
|
17
|
+
"cache-control": "no-cache",
|
|
18
|
+
"Authorization": f"Bearer {app_private_token}",
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
if after is not None:
|
|
22
|
+
parameter_dict["after"] = after
|
|
23
|
+
|
|
24
|
+
parameter_dict["includeStats"] = "true"
|
|
25
|
+
|
|
26
|
+
parameters = urllib.parse.urlencode(parameter_dict)
|
|
27
|
+
|
|
28
|
+
url = url + parameters
|
|
29
|
+
|
|
30
|
+
r = requests.get(url=url, headers=headers)
|
|
31
|
+
r.raise_for_status()
|
|
32
|
+
response_dict = json.loads(r.text)
|
|
33
|
+
return response_dict
|
|
34
|
+
|
|
35
|
+
|
|
36
|
+
def get_all_marketing_emails(api_key, app_private_token):
|
|
37
|
+
has_more = True
|
|
38
|
+
after = None
|
|
39
|
+
while has_more:
|
|
40
|
+
resp = get_marketing_emails(api_key, app_private_token, after)
|
|
41
|
+
|
|
42
|
+
if "paging" in resp and "next" in resp["paging"]:
|
|
43
|
+
after = resp["paging"]["next"]["after"]
|
|
44
|
+
has_more = True
|
|
45
|
+
else:
|
|
46
|
+
has_more = False
|
|
47
|
+
|
|
48
|
+
yield resp["results"]
|
|
@@ -1,65 +0,0 @@
|
|
|
1
|
-
import requests
|
|
2
|
-
import json
|
|
3
|
-
import urllib
|
|
4
|
-
import time
|
|
5
|
-
import prefect
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
def get_marketing_emails(api_key, app_private_token, offset=None):
|
|
9
|
-
url = "https://api.hubapi.com/marketing-emails/v1/emails/with-statistics?"
|
|
10
|
-
if api_key is not None:
|
|
11
|
-
parameter_dict = {"hapikey": api_key, "limit": 100}
|
|
12
|
-
headers = {"content-type": "application/json", "cache-control": "no-cache"}
|
|
13
|
-
else:
|
|
14
|
-
parameter_dict = {"limit": 100}
|
|
15
|
-
headers = {
|
|
16
|
-
"content-type": "application/json",
|
|
17
|
-
"cache-control": "no-cache",
|
|
18
|
-
"Authorization": f"Bearer {app_private_token}",
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
if offset is not None:
|
|
22
|
-
parameter_dict["offset"] = offset
|
|
23
|
-
|
|
24
|
-
parameter_dict["orderBy"] = "updated"
|
|
25
|
-
|
|
26
|
-
parameters = urllib.parse.urlencode(parameter_dict)
|
|
27
|
-
|
|
28
|
-
url = url + parameters
|
|
29
|
-
|
|
30
|
-
try:
|
|
31
|
-
r = requests.get(url=url, headers=headers)
|
|
32
|
-
response_dict = json.loads(r.text)
|
|
33
|
-
return response_dict
|
|
34
|
-
except Exception as e:
|
|
35
|
-
print(e)
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
def get_all_marketing_emails(api_key, app_private_token):
|
|
39
|
-
offset = 0
|
|
40
|
-
total = 1
|
|
41
|
-
attempts = 0
|
|
42
|
-
while total > offset:
|
|
43
|
-
resp = get_marketing_emails(api_key, app_private_token, offset)
|
|
44
|
-
|
|
45
|
-
try:
|
|
46
|
-
if "objects" in resp and "offset" in resp:
|
|
47
|
-
attempts = 0
|
|
48
|
-
offset = resp["offset"] + len(resp["objects"])
|
|
49
|
-
total = resp["total"]
|
|
50
|
-
|
|
51
|
-
yield resp["objects"]
|
|
52
|
-
else:
|
|
53
|
-
attempts += 1
|
|
54
|
-
if attempts > 2:
|
|
55
|
-
offset = total
|
|
56
|
-
except Exception as e:
|
|
57
|
-
if "errorType" in e and e["errorType"] == "RATE_LIMIT":
|
|
58
|
-
print(e)
|
|
59
|
-
print(resp)
|
|
60
|
-
time.sleep(10)
|
|
61
|
-
else:
|
|
62
|
-
prefect.get_run_logger().error("Failed")
|
|
63
|
-
prefect.get_run_logger().error(e)
|
|
64
|
-
prefect.get_run_logger().error(resp)
|
|
65
|
-
raise e
|
|
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
|
|
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
|