findly.unified-reporting-sdk 0.7.12__tar.gz → 0.7.13__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.
- {findly_unified_reporting_sdk-0.7.12 → findly_unified_reporting_sdk-0.7.13}/PKG-INFO +6 -6
- {findly_unified_reporting_sdk-0.7.12 → findly_unified_reporting_sdk-0.7.13}/findly/unified_reporting_sdk/data_sources/ga4/ga4_query_args_parser.py +8 -8
- findly_unified_reporting_sdk-0.7.13/findly/unified_reporting_sdk/data_sources/gsc/gsc_service.py +42 -0
- {findly_unified_reporting_sdk-0.7.12 → findly_unified_reporting_sdk-0.7.13}/pyproject.toml +13 -13
- findly_unified_reporting_sdk-0.7.12/findly/unified_reporting_sdk/data_sources/gsc/gsc_service.py +0 -55
- {findly_unified_reporting_sdk-0.7.12 → findly_unified_reporting_sdk-0.7.13}/LICENSE +0 -0
- {findly_unified_reporting_sdk-0.7.12 → findly_unified_reporting_sdk-0.7.13}/README.md +0 -0
- {findly_unified_reporting_sdk-0.7.12 → findly_unified_reporting_sdk-0.7.13}/findly/__init__.py +0 -0
- {findly_unified_reporting_sdk-0.7.12 → findly_unified_reporting_sdk-0.7.13}/findly/unified_reporting_sdk/__init__.py +0 -0
- {findly_unified_reporting_sdk-0.7.12 → findly_unified_reporting_sdk-0.7.13}/findly/unified_reporting_sdk/data_sources/__init__.py +0 -0
- {findly_unified_reporting_sdk-0.7.12 → findly_unified_reporting_sdk-0.7.13}/findly/unified_reporting_sdk/data_sources/common/__init__.py +0 -0
- {findly_unified_reporting_sdk-0.7.12 → findly_unified_reporting_sdk-0.7.13}/findly/unified_reporting_sdk/data_sources/common/common_parser.py +0 -0
- {findly_unified_reporting_sdk-0.7.12 → findly_unified_reporting_sdk-0.7.13}/findly/unified_reporting_sdk/data_sources/common/date_range_helper.py +0 -0
- {findly_unified_reporting_sdk-0.7.12 → findly_unified_reporting_sdk-0.7.13}/findly/unified_reporting_sdk/data_sources/common/entities.py +0 -0
- {findly_unified_reporting_sdk-0.7.12 → findly_unified_reporting_sdk-0.7.13}/findly/unified_reporting_sdk/data_sources/common/reports_client.py +0 -0
- {findly_unified_reporting_sdk-0.7.12 → findly_unified_reporting_sdk-0.7.13}/findly/unified_reporting_sdk/data_sources/common/where_string_comparison.py +0 -0
- {findly_unified_reporting_sdk-0.7.12 → findly_unified_reporting_sdk-0.7.13}/findly/unified_reporting_sdk/data_sources/fb_ads/__init__.py +0 -0
- {findly_unified_reporting_sdk-0.7.12 → findly_unified_reporting_sdk-0.7.13}/findly/unified_reporting_sdk/data_sources/fb_ads/fb_ads_client.py +0 -0
- {findly_unified_reporting_sdk-0.7.12 → findly_unified_reporting_sdk-0.7.13}/findly/unified_reporting_sdk/data_sources/fb_ads/fb_ads_query_args_parser.py +0 -0
- {findly_unified_reporting_sdk-0.7.12 → findly_unified_reporting_sdk-0.7.13}/findly/unified_reporting_sdk/data_sources/fb_ads/metadata/action_breakdowns.csv +0 -0
- {findly_unified_reporting_sdk-0.7.12 → findly_unified_reporting_sdk-0.7.13}/findly/unified_reporting_sdk/data_sources/fb_ads/metadata/breakdowns.csv +0 -0
- {findly_unified_reporting_sdk-0.7.12 → findly_unified_reporting_sdk-0.7.13}/findly/unified_reporting_sdk/data_sources/fb_ads/metadata/dimensions.jsonl +0 -0
- {findly_unified_reporting_sdk-0.7.12 → findly_unified_reporting_sdk-0.7.13}/findly/unified_reporting_sdk/data_sources/fb_ads/metadata/fields.csv +0 -0
- {findly_unified_reporting_sdk-0.7.12 → findly_unified_reporting_sdk-0.7.13}/findly/unified_reporting_sdk/data_sources/fb_ads/metadata/metrics.jsonl +0 -0
- {findly_unified_reporting_sdk-0.7.12 → findly_unified_reporting_sdk-0.7.13}/findly/unified_reporting_sdk/data_sources/ga4/__init__.py +0 -0
- {findly_unified_reporting_sdk-0.7.12 → findly_unified_reporting_sdk-0.7.13}/findly/unified_reporting_sdk/data_sources/ga4/ga4_client.py +0 -0
- {findly_unified_reporting_sdk-0.7.12 → findly_unified_reporting_sdk-0.7.13}/findly/unified_reporting_sdk/data_sources/ga4/metadata/dimensions.jsonl +0 -0
- {findly_unified_reporting_sdk-0.7.12 → findly_unified_reporting_sdk-0.7.13}/findly/unified_reporting_sdk/data_sources/gsc/__init__.py +0 -0
- {findly_unified_reporting_sdk-0.7.12 → findly_unified_reporting_sdk-0.7.13}/findly/unified_reporting_sdk/data_sources/gsc/gsc_client.py +0 -0
- {findly_unified_reporting_sdk-0.7.12 → findly_unified_reporting_sdk-0.7.13}/findly/unified_reporting_sdk/protos/.gitignore +0 -0
- {findly_unified_reporting_sdk-0.7.12 → findly_unified_reporting_sdk-0.7.13}/findly/unified_reporting_sdk/protos/__init__.py +0 -0
- {findly_unified_reporting_sdk-0.7.12 → findly_unified_reporting_sdk-0.7.13}/findly/unified_reporting_sdk/protos/findly_semantic_layer_pb2.py +0 -0
- {findly_unified_reporting_sdk-0.7.12 → findly_unified_reporting_sdk-0.7.13}/findly/unified_reporting_sdk/protos/findly_semantic_layer_pb2.pyi +0 -0
- {findly_unified_reporting_sdk-0.7.12 → findly_unified_reporting_sdk-0.7.13}/findly/unified_reporting_sdk/urs.py +0 -0
- {findly_unified_reporting_sdk-0.7.12 → findly_unified_reporting_sdk-0.7.13}/findly/unified_reporting_sdk/util/__init__.py +0 -0
- {findly_unified_reporting_sdk-0.7.12 → findly_unified_reporting_sdk-0.7.13}/findly/unified_reporting_sdk/util/create_numeric_string_series.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: findly.unified-reporting-sdk
|
|
3
|
-
Version: 0.7.
|
|
3
|
+
Version: 0.7.13
|
|
4
4
|
Summary:
|
|
5
5
|
License: GPL-3.0-only
|
|
6
6
|
Requires-Python: >=3.9,<4.0
|
|
@@ -13,14 +13,14 @@ Classifier: Programming Language :: Python :: 3.12
|
|
|
13
13
|
Classifier: Programming Language :: Python :: 3.13
|
|
14
14
|
Requires-Dist: aiocache (>=0.12.2,<0.13.0)
|
|
15
15
|
Requires-Dist: backoff (>=2.2.1,<3.0.0)
|
|
16
|
-
Requires-Dist: facebook-business (>=
|
|
17
|
-
Requires-Dist: google-analytics-admin (>=0.
|
|
18
|
-
Requires-Dist: google-analytics-data (>=0.18.
|
|
19
|
-
Requires-Dist: google-api-python-client (>=2.
|
|
16
|
+
Requires-Dist: facebook-business (>=22.0.5,<23.0.0)
|
|
17
|
+
Requires-Dist: google-analytics-admin (>=0.24.0,<0.25.0)
|
|
18
|
+
Requires-Dist: google-analytics-data (>=0.18.18,<0.19.0)
|
|
19
|
+
Requires-Dist: google-api-python-client (>=2.169.0,<3.0.0)
|
|
20
20
|
Requires-Dist: oauth2client (>=4.1.3,<5.0.0)
|
|
21
21
|
Requires-Dist: pandas (>=2.2.3,<3.0.0)
|
|
22
22
|
Requires-Dist: protobuf (>=4.25.3,<5.0.0)
|
|
23
|
-
Requires-Dist: sqlglot (>=
|
|
23
|
+
Requires-Dist: sqlglot (>=26.17.1,<27.0.0)
|
|
24
24
|
Description-Content-Type: text/markdown
|
|
25
25
|
|
|
26
26
|
# Unified Reporting SDK (URS)
|
|
@@ -228,17 +228,17 @@ class GA4QueryArgsParser(CommonParser):
|
|
|
228
228
|
# Remove duplicates from metrics and dimensions to avoid redundant processing.
|
|
229
229
|
unique_metrics = list(dict.fromkeys(query_args.metrics))
|
|
230
230
|
unique_dimensions = list(dict.fromkeys(query_args.group_by_columns))
|
|
231
|
-
|
|
231
|
+
|
|
232
232
|
ga4_metrics_list = await self.get_metrics(
|
|
233
233
|
metrics_name_list=unique_metrics,
|
|
234
234
|
)
|
|
235
235
|
LOGGER.info("sucessfully got metrics")
|
|
236
|
-
|
|
236
|
+
|
|
237
237
|
ga4_dimensions_list = await self.get_dimensions(
|
|
238
238
|
dimensions_name_list=unique_dimensions,
|
|
239
239
|
)
|
|
240
240
|
LOGGER.info("sucessfully got dimensions")
|
|
241
|
-
|
|
241
|
+
|
|
242
242
|
ga4_date_ranges = self.get_date_ranges(
|
|
243
243
|
date_str_range_list=(
|
|
244
244
|
list(query_args.date_ranges)
|
|
@@ -248,7 +248,7 @@ class GA4QueryArgsParser(CommonParser):
|
|
|
248
248
|
format_function=format_ga4_date_ranges_default,
|
|
249
249
|
)
|
|
250
250
|
LOGGER.info("sucessfully got date ranges")
|
|
251
|
-
|
|
251
|
+
|
|
252
252
|
ga4_order_by_list = await self.get_order_by(
|
|
253
253
|
order_by_list=(
|
|
254
254
|
list(query_args.order_by) if query_args.order_by is not None else None
|
|
@@ -257,17 +257,17 @@ class GA4QueryArgsParser(CommonParser):
|
|
|
257
257
|
order_by_dimensions_candidates=list(query_args.group_by_columns),
|
|
258
258
|
)
|
|
259
259
|
LOGGER.info("sucessfully got order by")
|
|
260
|
-
|
|
260
|
+
|
|
261
261
|
ga4_dimension_filter_list = await self.get_filter_clause(
|
|
262
262
|
filter_clause=query_args.where_clause
|
|
263
263
|
)
|
|
264
264
|
LOGGER.info("sucessfully got dimension filter")
|
|
265
|
-
|
|
265
|
+
|
|
266
266
|
ga4_metrics_filter_list = await self.get_filter_clause(
|
|
267
267
|
filter_clause=query_args.having_clause
|
|
268
268
|
)
|
|
269
269
|
LOGGER.info("sucessfully got metrics filter")
|
|
270
|
-
|
|
270
|
+
|
|
271
271
|
LOGGER.info(
|
|
272
272
|
{
|
|
273
273
|
"msg": "query_parts",
|
|
@@ -283,7 +283,7 @@ class GA4QueryArgsParser(CommonParser):
|
|
|
283
283
|
"limit": query_args.limit,
|
|
284
284
|
}
|
|
285
285
|
)
|
|
286
|
-
|
|
286
|
+
|
|
287
287
|
ga4_request = {
|
|
288
288
|
"metrics": ga4_metrics_list,
|
|
289
289
|
"dimensions": ga4_dimensions_list,
|
findly_unified_reporting_sdk-0.7.13/findly/unified_reporting_sdk/data_sources/gsc/gsc_service.py
ADDED
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
# THIS IS VERY UNSTABLE AND MIGHT BE WRONG
|
|
2
|
+
|
|
3
|
+
from typing import Protocol, TypedDict, Any
|
|
4
|
+
|
|
5
|
+
from typing_extensions import Unpack
|
|
6
|
+
from googleapiclient.http import HttpRequest
|
|
7
|
+
from googleapiclient.discovery import Resource
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
class Sites(Protocol):
|
|
11
|
+
def add(self) -> None: ...
|
|
12
|
+
|
|
13
|
+
def delete(self) -> None: ...
|
|
14
|
+
|
|
15
|
+
def get(self) -> None: ...
|
|
16
|
+
|
|
17
|
+
def list(self) -> HttpRequest: ...
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
class SearchAnalytics(Protocol):
|
|
21
|
+
class SearchAnalyticsQueryKwargs(TypedDict):
|
|
22
|
+
siteUrl: str
|
|
23
|
+
|
|
24
|
+
def query(self, **kwargs: Unpack[SearchAnalyticsQueryKwargs]) -> HttpRequest: ...
|
|
25
|
+
|
|
26
|
+
def close(self) -> None: ...
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
class GscService(Protocol):
|
|
30
|
+
def close(self) -> None: ...
|
|
31
|
+
|
|
32
|
+
def new_batch_http_request(self) -> None: ...
|
|
33
|
+
|
|
34
|
+
def searchanalytics(self) -> SearchAnalytics: ...
|
|
35
|
+
|
|
36
|
+
def sitemaps(self) -> None: ...
|
|
37
|
+
|
|
38
|
+
def sites(self) -> Sites: ...
|
|
39
|
+
|
|
40
|
+
def urlInspection(self) -> None: ...
|
|
41
|
+
|
|
42
|
+
def urlTestingTools(self) -> None: ...
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[tool.poetry]
|
|
2
2
|
name = "findly.unified-reporting-sdk"
|
|
3
|
-
version = "0.7.
|
|
3
|
+
version = "0.7.13"
|
|
4
4
|
license = "GPL-3.0-only"
|
|
5
5
|
description = ""
|
|
6
6
|
authors = []
|
|
@@ -18,22 +18,22 @@ pandas = "^2.2.3"
|
|
|
18
18
|
protobuf = "^4.25.3"
|
|
19
19
|
backoff = "^2.2.1"
|
|
20
20
|
aiocache = "^0.12.2"
|
|
21
|
-
facebook-business = "^
|
|
22
|
-
sqlglot = "^
|
|
23
|
-
google-analytics-admin = "^0.
|
|
24
|
-
google-analytics-data = "^0.18.
|
|
25
|
-
google-api-python-client = "^2.
|
|
21
|
+
facebook-business = "^22.0.5"
|
|
22
|
+
sqlglot = "^26.17.1"
|
|
23
|
+
google-analytics-admin = "^0.24.0"
|
|
24
|
+
google-analytics-data = "^0.18.18"
|
|
25
|
+
google-api-python-client = "^2.169.0"
|
|
26
26
|
oauth2client = "^4.1.3"
|
|
27
27
|
|
|
28
28
|
[tool.poetry.group.typing.dependencies]
|
|
29
|
-
mypy = "^1.
|
|
30
|
-
types-python-dateutil = "^2.
|
|
31
|
-
types-protobuf = "^
|
|
29
|
+
mypy = "^1.15.0"
|
|
30
|
+
types-python-dateutil = "^2.9.0.20241206"
|
|
31
|
+
types-protobuf = "^6.30.2.20250506"
|
|
32
32
|
|
|
33
33
|
[tool.poetry.group.dev.dependencies]
|
|
34
|
-
pytest = "^8.
|
|
35
|
-
pytest-asyncio = "^0.
|
|
36
|
-
mypy-protobuf = "^3.
|
|
34
|
+
pytest = "^8.3.5"
|
|
35
|
+
pytest-asyncio = "^0.26.0"
|
|
36
|
+
mypy-protobuf = "^3.6.0"
|
|
37
37
|
python-dotenv = "^1.0.1"
|
|
38
38
|
|
|
39
39
|
[build-system]
|
|
@@ -46,7 +46,7 @@ disallow_incomplete_defs = "True"
|
|
|
46
46
|
check_untyped_defs = "True"
|
|
47
47
|
disallow_untyped_defs = "True"
|
|
48
48
|
warn_unused_ignores = "True"
|
|
49
|
-
exclude = ["protos"]
|
|
49
|
+
exclude = ["protos", "dist"]
|
|
50
50
|
|
|
51
51
|
[tool.pytest.ini_options]
|
|
52
52
|
pythonpath = [
|
findly_unified_reporting_sdk-0.7.12/findly/unified_reporting_sdk/data_sources/gsc/gsc_service.py
DELETED
|
@@ -1,55 +0,0 @@
|
|
|
1
|
-
# THIS IS VERY UNSTABLE AND MIGHT BE WRONG
|
|
2
|
-
|
|
3
|
-
from typing import Protocol, TypedDict, Any
|
|
4
|
-
|
|
5
|
-
from typing_extensions import Unpack
|
|
6
|
-
from googleapiclient.http import HttpRequest
|
|
7
|
-
from googleapiclient.discovery import Resource
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
class Sites(Protocol):
|
|
11
|
-
def add(self) -> None:
|
|
12
|
-
...
|
|
13
|
-
|
|
14
|
-
def delete(self) -> None:
|
|
15
|
-
...
|
|
16
|
-
|
|
17
|
-
def get(self) -> None:
|
|
18
|
-
...
|
|
19
|
-
|
|
20
|
-
def list(self) -> HttpRequest:
|
|
21
|
-
...
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
class SearchAnalytics(Protocol):
|
|
25
|
-
class SearchAnalyticsQueryKwargs(TypedDict):
|
|
26
|
-
siteUrl: str
|
|
27
|
-
|
|
28
|
-
def query(self, **kwargs: Unpack[SearchAnalyticsQueryKwargs]) -> HttpRequest:
|
|
29
|
-
...
|
|
30
|
-
|
|
31
|
-
def close(self) -> None:
|
|
32
|
-
...
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
class GscService(Protocol):
|
|
36
|
-
def close(self) -> None:
|
|
37
|
-
...
|
|
38
|
-
|
|
39
|
-
def new_batch_http_request(self) -> None:
|
|
40
|
-
...
|
|
41
|
-
|
|
42
|
-
def searchanalytics(self) -> SearchAnalytics:
|
|
43
|
-
...
|
|
44
|
-
|
|
45
|
-
def sitemaps(self) -> None:
|
|
46
|
-
...
|
|
47
|
-
|
|
48
|
-
def sites(self) -> Sites:
|
|
49
|
-
...
|
|
50
|
-
|
|
51
|
-
def urlInspection(self) -> None:
|
|
52
|
-
...
|
|
53
|
-
|
|
54
|
-
def urlTestingTools(self) -> None:
|
|
55
|
-
...
|
|
File without changes
|
|
File without changes
|
{findly_unified_reporting_sdk-0.7.12 → findly_unified_reporting_sdk-0.7.13}/findly/__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
|