vavacars-data-utils 1.3.7__tar.gz → 1.4.1__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 (40) hide show
  1. {vavacars_data_utils-1.3.7 → vavacars_data_utils-1.4.1}/PKG-INFO +4 -4
  2. {vavacars_data_utils-1.3.7 → vavacars_data_utils-1.4.1}/setup.cfg +2 -2
  3. vavacars_data_utils-1.4.1/vava_utils/loganalytics/__init__.py +1 -0
  4. vavacars_data_utils-1.4.1/vava_utils/loganalytics/loganalytics_helper.py +51 -0
  5. {vavacars_data_utils-1.3.7 → vavacars_data_utils-1.4.1}/vavacars_data_utils.egg-info/PKG-INFO +4 -4
  6. {vavacars_data_utils-1.3.7 → vavacars_data_utils-1.4.1}/vavacars_data_utils.egg-info/SOURCES.txt +4 -0
  7. {vavacars_data_utils-1.3.7 → vavacars_data_utils-1.4.1}/vavacars_data_utils.egg-info/requires.txt +1 -1
  8. {vavacars_data_utils-1.3.7 → vavacars_data_utils-1.4.1}/README.md +0 -0
  9. {vavacars_data_utils-1.3.7 → vavacars_data_utils-1.4.1}/pyproject.toml +0 -0
  10. {vavacars_data_utils-1.3.7 → vavacars_data_utils-1.4.1}/test/utils/__init__.py +0 -0
  11. {vavacars_data_utils-1.3.7 → vavacars_data_utils-1.4.1}/test/utils/test_strings.py +0 -0
  12. {vavacars_data_utils-1.3.7 → vavacars_data_utils-1.4.1}/vava_utils/__init__.py +0 -0
  13. {vavacars_data_utils-1.3.7 → vavacars_data_utils-1.4.1}/vava_utils/azure/__init__.py +0 -0
  14. {vavacars_data_utils-1.3.7 → vavacars_data_utils-1.4.1}/vava_utils/azure/az_helper.py +0 -0
  15. {vavacars_data_utils-1.3.7 → vavacars_data_utils-1.4.1}/vava_utils/bigquery/__init__.py +0 -0
  16. {vavacars_data_utils-1.3.7 → vavacars_data_utils-1.4.1}/vava_utils/bigquery/bigquery_helper.py +0 -0
  17. {vavacars_data_utils-1.3.7 → vavacars_data_utils-1.4.1}/vava_utils/camunda/__init__.py +0 -0
  18. {vavacars_data_utils-1.3.7 → vavacars_data_utils-1.4.1}/vava_utils/camunda/camunda_helper.py +0 -0
  19. {vavacars_data_utils-1.3.7 → vavacars_data_utils-1.4.1}/vava_utils/email/__init__.py +0 -0
  20. {vavacars_data_utils-1.3.7 → vavacars_data_utils-1.4.1}/vava_utils/email/email_helper.py +0 -0
  21. {vavacars_data_utils-1.3.7 → vavacars_data_utils-1.4.1}/vava_utils/salesforce/__init__.py +0 -0
  22. {vavacars_data_utils-1.3.7 → vavacars_data_utils-1.4.1}/vava_utils/salesforce/salesforce_helper.py +0 -0
  23. {vavacars_data_utils-1.3.7 → vavacars_data_utils-1.4.1}/vava_utils/smartiq/__init__.py +0 -0
  24. {vavacars_data_utils-1.3.7 → vavacars_data_utils-1.4.1}/vava_utils/smartiq/smartiq_helper.py +0 -0
  25. {vavacars_data_utils-1.3.7 → vavacars_data_utils-1.4.1}/vava_utils/smartiq/smartiq_helper_v2.py +0 -0
  26. {vavacars_data_utils-1.3.7 → vavacars_data_utils-1.4.1}/vava_utils/sql/__init__.py +0 -0
  27. {vavacars_data_utils-1.3.7 → vavacars_data_utils-1.4.1}/vava_utils/sql/sql_helper.py +0 -0
  28. {vavacars_data_utils-1.3.7 → vavacars_data_utils-1.4.1}/vava_utils/turkey/__init__.py +0 -0
  29. {vavacars_data_utils-1.3.7 → vavacars_data_utils-1.4.1}/vava_utils/turkey/dates.py +0 -0
  30. {vavacars_data_utils-1.3.7 → vavacars_data_utils-1.4.1}/vava_utils/utils/__init__.py +0 -0
  31. {vavacars_data_utils-1.3.7 → vavacars_data_utils-1.4.1}/vava_utils/utils/callables.py +0 -0
  32. {vavacars_data_utils-1.3.7 → vavacars_data_utils-1.4.1}/vava_utils/utils/comparisons.py +0 -0
  33. {vavacars_data_utils-1.3.7 → vavacars_data_utils-1.4.1}/vava_utils/utils/naming.py +0 -0
  34. {vavacars_data_utils-1.3.7 → vavacars_data_utils-1.4.1}/vava_utils/utils/singleton.py +0 -0
  35. {vavacars_data_utils-1.3.7 → vavacars_data_utils-1.4.1}/vava_utils/utils/strings.py +0 -0
  36. {vavacars_data_utils-1.3.7 → vavacars_data_utils-1.4.1}/vava_utils/utils/utils.py +0 -0
  37. {vavacars_data_utils-1.3.7 → vavacars_data_utils-1.4.1}/vava_utils/vavaprice/__init__.py +0 -0
  38. {vavacars_data_utils-1.3.7 → vavacars_data_utils-1.4.1}/vava_utils/vavaprice/vavaprice_helper.py +0 -0
  39. {vavacars_data_utils-1.3.7 → vavacars_data_utils-1.4.1}/vavacars_data_utils.egg-info/dependency_links.txt +0 -0
  40. {vavacars_data_utils-1.3.7 → vavacars_data_utils-1.4.1}/vavacars_data_utils.egg-info/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
- Metadata-Version: 2.1
1
+ Metadata-Version: 2.2
2
2
  Name: vavacars_data_utils
3
- Version: 1.3.7
3
+ Version: 1.4.1
4
4
  Summary: Package with utils
5
5
  Home-page: https://dev.azure.com/vavacars/DataScience/_git/Data.Utils
6
6
  Author: Vavacars Data Science Team
@@ -22,8 +22,8 @@ Requires-Dist: sqlalchemy<2.0; extra == "sql"
22
22
  Requires-Dist: psycopg2-binary; extra == "sql"
23
23
  Requires-Dist: pyodbc; extra == "sql"
24
24
  Requires-Dist: msal; extra == "sql"
25
- Provides-Extra: emai
26
- Requires-Dist: azure-communication-email; extra == "emai"
25
+ Provides-Extra: email
26
+ Requires-Dist: azure-communication-email; extra == "email"
27
27
  Provides-Extra: azure
28
28
  Requires-Dist: azureml-core; extra == "azure"
29
29
 
@@ -1,6 +1,6 @@
1
1
  [metadata]
2
2
  name = vavacars_data_utils
3
- version = 1.3.7
3
+ version = 1.4.1
4
4
  author = Vavacars Data Science Team
5
5
  author_email = acg@vava.cars
6
6
  description = Package with utils
@@ -40,7 +40,7 @@ sql =
40
40
  psycopg2-binary
41
41
  pyodbc
42
42
  msal
43
- emai =
43
+ email =
44
44
  azure-communication-email
45
45
  azure =
46
46
  azureml-core
@@ -0,0 +1 @@
1
+ from .loganalytics_helper import LogAnalyticsHelper
@@ -0,0 +1,51 @@
1
+ import logging
2
+ import pandas as pd
3
+ from azure.identity import ClientSecretCredential
4
+ from azure.monitor.query import LogsQueryClient, LogsQueryStatus
5
+ from azure.core.exceptions import HttpResponseError
6
+ import datetime
7
+
8
+
9
+ class UnknownQueryStatusError(Exception):
10
+ """Custom exception for unknown query status"""
11
+
12
+ pass
13
+
14
+
15
+ class LogAnalyticsHelper:
16
+
17
+ def __init__(
18
+ self,
19
+ service_principal_id: str,
20
+ service_principal_password: str,
21
+ tentant_id: str,
22
+ workspace_id: str = "58ca4766-72b7-4610-8d1c-4b6a88a49a01",
23
+ ):
24
+ self.client = LogsQueryClient(
25
+ ClientSecretCredential(tentant_id, service_principal_id, service_principal_password)
26
+ )
27
+ self.workspace_id = workspace_id
28
+
29
+ def query(self, query: str, start: datetime.datetime = None, end: datetime.datetime = None, **kwargs):
30
+
31
+ timespan = None if start is None or end is None else (start, end)
32
+ response = self.client.query_workspace(workspace_id=self.workspace_id, query=query, timespan=timespan, **kwargs)
33
+
34
+ if response.status == LogsQueryStatus.SUCCESS:
35
+ data = response.tables
36
+ elif response.status == LogsQueryStatus.PARTIAL:
37
+ logging.warning(f"Partial query success. Error: {response.partial_error.message}")
38
+ data = response.partial_data
39
+ else:
40
+ logging.error(f"Unknown query status: {response.status}")
41
+ raise UnknownQueryStatusError(f"Received an unknown query status: {response.status}")
42
+
43
+ dataframes = [pd.DataFrame(t.rows, columns=t.columns) for t in data]
44
+
45
+ if len(dataframes) == 1:
46
+ return dataframes[0]
47
+ elif len(dataframes) > 1:
48
+ return dataframes
49
+ else:
50
+ logging.warning("No data found in the query result")
51
+ return None
@@ -1,6 +1,6 @@
1
- Metadata-Version: 2.1
1
+ Metadata-Version: 2.2
2
2
  Name: vavacars_data_utils
3
- Version: 1.3.7
3
+ Version: 1.4.1
4
4
  Summary: Package with utils
5
5
  Home-page: https://dev.azure.com/vavacars/DataScience/_git/Data.Utils
6
6
  Author: Vavacars Data Science Team
@@ -22,8 +22,8 @@ Requires-Dist: sqlalchemy<2.0; extra == "sql"
22
22
  Requires-Dist: psycopg2-binary; extra == "sql"
23
23
  Requires-Dist: pyodbc; extra == "sql"
24
24
  Requires-Dist: msal; extra == "sql"
25
- Provides-Extra: emai
26
- Requires-Dist: azure-communication-email; extra == "emai"
25
+ Provides-Extra: email
26
+ Requires-Dist: azure-communication-email; extra == "email"
27
27
  Provides-Extra: azure
28
28
  Requires-Dist: azureml-core; extra == "azure"
29
29
 
@@ -12,6 +12,8 @@ setup.cfg
12
12
  ./vava_utils/camunda/camunda_helper.py
13
13
  ./vava_utils/email/__init__.py
14
14
  ./vava_utils/email/email_helper.py
15
+ ./vava_utils/loganalytics/__init__.py
16
+ ./vava_utils/loganalytics/loganalytics_helper.py
15
17
  ./vava_utils/salesforce/__init__.py
16
18
  ./vava_utils/salesforce/salesforce_helper.py
17
19
  ./vava_utils/smartiq/__init__.py
@@ -41,6 +43,8 @@ vava_utils/camunda/__init__.py
41
43
  vava_utils/camunda/camunda_helper.py
42
44
  vava_utils/email/__init__.py
43
45
  vava_utils/email/email_helper.py
46
+ vava_utils/loganalytics/__init__.py
47
+ vava_utils/loganalytics/loganalytics_helper.py
44
48
  vava_utils/salesforce/__init__.py
45
49
  vava_utils/salesforce/salesforce_helper.py
46
50
  vava_utils/smartiq/__init__.py
@@ -10,7 +10,7 @@ azureml-core
10
10
  google-cloud-bigquery
11
11
  google-api-core
12
12
 
13
- [emai]
13
+ [email]
14
14
  azure-communication-email
15
15
 
16
16
  [sql]