findly.unified-reporting-sdk 0.7.8__tar.gz → 0.7.9__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 (35) hide show
  1. {findly_unified_reporting_sdk-0.7.8 → findly_unified_reporting_sdk-0.7.9}/PKG-INFO +1 -1
  2. {findly_unified_reporting_sdk-0.7.8 → findly_unified_reporting_sdk-0.7.9}/findly/unified_reporting_sdk/data_sources/common/common_parser.py +1 -1
  3. {findly_unified_reporting_sdk-0.7.8 → findly_unified_reporting_sdk-0.7.9}/findly/unified_reporting_sdk/data_sources/ga4/ga4_client.py +5 -1
  4. {findly_unified_reporting_sdk-0.7.8 → findly_unified_reporting_sdk-0.7.9}/findly/unified_reporting_sdk/protos/findly_semantic_layer_pb2.py +32 -32
  5. {findly_unified_reporting_sdk-0.7.8 → findly_unified_reporting_sdk-0.7.9}/pyproject.toml +1 -1
  6. {findly_unified_reporting_sdk-0.7.8 → findly_unified_reporting_sdk-0.7.9}/LICENSE +0 -0
  7. {findly_unified_reporting_sdk-0.7.8 → findly_unified_reporting_sdk-0.7.9}/README.md +0 -0
  8. {findly_unified_reporting_sdk-0.7.8 → findly_unified_reporting_sdk-0.7.9}/findly/__init__.py +0 -0
  9. {findly_unified_reporting_sdk-0.7.8 → findly_unified_reporting_sdk-0.7.9}/findly/unified_reporting_sdk/__init__.py +0 -0
  10. {findly_unified_reporting_sdk-0.7.8 → findly_unified_reporting_sdk-0.7.9}/findly/unified_reporting_sdk/data_sources/__init__.py +0 -0
  11. {findly_unified_reporting_sdk-0.7.8 → findly_unified_reporting_sdk-0.7.9}/findly/unified_reporting_sdk/data_sources/common/__init__.py +0 -0
  12. {findly_unified_reporting_sdk-0.7.8 → findly_unified_reporting_sdk-0.7.9}/findly/unified_reporting_sdk/data_sources/common/date_range_helper.py +0 -0
  13. {findly_unified_reporting_sdk-0.7.8 → findly_unified_reporting_sdk-0.7.9}/findly/unified_reporting_sdk/data_sources/common/entities.py +0 -0
  14. {findly_unified_reporting_sdk-0.7.8 → findly_unified_reporting_sdk-0.7.9}/findly/unified_reporting_sdk/data_sources/common/reports_client.py +0 -0
  15. {findly_unified_reporting_sdk-0.7.8 → findly_unified_reporting_sdk-0.7.9}/findly/unified_reporting_sdk/data_sources/common/where_string_comparison.py +0 -0
  16. {findly_unified_reporting_sdk-0.7.8 → findly_unified_reporting_sdk-0.7.9}/findly/unified_reporting_sdk/data_sources/fb_ads/__init__.py +0 -0
  17. {findly_unified_reporting_sdk-0.7.8 → findly_unified_reporting_sdk-0.7.9}/findly/unified_reporting_sdk/data_sources/fb_ads/fb_ads_client.py +0 -0
  18. {findly_unified_reporting_sdk-0.7.8 → findly_unified_reporting_sdk-0.7.9}/findly/unified_reporting_sdk/data_sources/fb_ads/fb_ads_query_args_parser.py +0 -0
  19. {findly_unified_reporting_sdk-0.7.8 → findly_unified_reporting_sdk-0.7.9}/findly/unified_reporting_sdk/data_sources/fb_ads/metadata/action_breakdowns.csv +0 -0
  20. {findly_unified_reporting_sdk-0.7.8 → findly_unified_reporting_sdk-0.7.9}/findly/unified_reporting_sdk/data_sources/fb_ads/metadata/breakdowns.csv +0 -0
  21. {findly_unified_reporting_sdk-0.7.8 → findly_unified_reporting_sdk-0.7.9}/findly/unified_reporting_sdk/data_sources/fb_ads/metadata/dimensions.jsonl +0 -0
  22. {findly_unified_reporting_sdk-0.7.8 → findly_unified_reporting_sdk-0.7.9}/findly/unified_reporting_sdk/data_sources/fb_ads/metadata/fields.csv +0 -0
  23. {findly_unified_reporting_sdk-0.7.8 → findly_unified_reporting_sdk-0.7.9}/findly/unified_reporting_sdk/data_sources/fb_ads/metadata/metrics.jsonl +0 -0
  24. {findly_unified_reporting_sdk-0.7.8 → findly_unified_reporting_sdk-0.7.9}/findly/unified_reporting_sdk/data_sources/ga4/__init__.py +0 -0
  25. {findly_unified_reporting_sdk-0.7.8 → findly_unified_reporting_sdk-0.7.9}/findly/unified_reporting_sdk/data_sources/ga4/ga4_query_args_parser.py +0 -0
  26. {findly_unified_reporting_sdk-0.7.8 → findly_unified_reporting_sdk-0.7.9}/findly/unified_reporting_sdk/data_sources/ga4/metadata/dimensions.jsonl +0 -0
  27. {findly_unified_reporting_sdk-0.7.8 → findly_unified_reporting_sdk-0.7.9}/findly/unified_reporting_sdk/data_sources/gsc/__init__.py +0 -0
  28. {findly_unified_reporting_sdk-0.7.8 → findly_unified_reporting_sdk-0.7.9}/findly/unified_reporting_sdk/data_sources/gsc/gsc_client.py +0 -0
  29. {findly_unified_reporting_sdk-0.7.8 → findly_unified_reporting_sdk-0.7.9}/findly/unified_reporting_sdk/data_sources/gsc/gsc_service.py +0 -0
  30. {findly_unified_reporting_sdk-0.7.8 → findly_unified_reporting_sdk-0.7.9}/findly/unified_reporting_sdk/protos/.gitignore +0 -0
  31. {findly_unified_reporting_sdk-0.7.8 → findly_unified_reporting_sdk-0.7.9}/findly/unified_reporting_sdk/protos/__init__.py +0 -0
  32. {findly_unified_reporting_sdk-0.7.8 → findly_unified_reporting_sdk-0.7.9}/findly/unified_reporting_sdk/protos/findly_semantic_layer_pb2.pyi +0 -0
  33. {findly_unified_reporting_sdk-0.7.8 → findly_unified_reporting_sdk-0.7.9}/findly/unified_reporting_sdk/urs.py +0 -0
  34. {findly_unified_reporting_sdk-0.7.8 → findly_unified_reporting_sdk-0.7.9}/findly/unified_reporting_sdk/util/__init__.py +0 -0
  35. {findly_unified_reporting_sdk-0.7.8 → findly_unified_reporting_sdk-0.7.9}/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.8
3
+ Version: 0.7.9
4
4
  Summary:
5
5
  License: GPL-3.0-only
6
6
  Requires-Python: >=3.9,<4.0
@@ -167,7 +167,7 @@ class CommonParser:
167
167
  def equalize_dataframe_rows(
168
168
  self, dataframes: List[pd.DataFrame], dimensions: List[str]
169
169
  ) -> List[pd.DataFrame]:
170
- if len(dataframes) <= 1 or not dimensions or all(df.empty for df in dataframes):
170
+ if len(dataframes) <= 1 or not dimensions:
171
171
  return dataframes
172
172
 
173
173
  # Check if all dimensions exist in all dataframes
@@ -313,9 +313,13 @@ class GA4Client(ReportsClient):
313
313
  include_totals: bool = True,
314
314
  **kwargs: str,
315
315
  ) -> Optional[RunReportResponse]:
316
+
317
+ # deduplicate dimensions, otherwise we get an error
318
+ deduplicated_dimensions = list(set(dimensions))
319
+
316
320
  return await self._decorated_query_from_parts(
317
321
  metrics=metrics,
318
- dimensions=dimensions,
322
+ dimensions=deduplicated_dimensions,
319
323
  date_ranges=date_ranges,
320
324
  dimension_filter=dimension_filter,
321
325
  metric_filter=metric_filter,
@@ -2,10 +2,10 @@
2
2
  # Generated by the protocol buffer compiler. DO NOT EDIT!
3
3
  # source: findly_semantic_layer.proto
4
4
  """Generated protocol buffer code."""
5
+ from google.protobuf.internal import builder as _builder
5
6
  from google.protobuf import descriptor as _descriptor
6
7
  from google.protobuf import descriptor_pool as _descriptor_pool
7
8
  from google.protobuf import symbol_database as _symbol_database
8
- from google.protobuf.internal import builder as _builder
9
9
  # @@protoc_insertion_point(imports)
10
10
 
11
11
  _sym_db = _symbol_database.Default()
@@ -15,37 +15,37 @@ _sym_db = _symbol_database.Default()
15
15
 
16
16
  DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1b\x66indly_semantic_layer.proto\x12\x15\x66indly_semantic_layer\"\xd4\x02\n\tDimension\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x0b\x64\x65scription\x18\x02 \x01(\t\x12\x0c\n\x04\x65xpr\x18\x03 \x01(\t\x12\x32\n\x04type\x18\x04 \x01(\x0e\x32$.findly_semantic_layer.DimensionType\x12?\n\x0btype_params\x18\x05 \x01(\x0b\x32*.findly_semantic_layer.DimensionTypeParams\x12\x14\n\x0ctop_n_values\x18\x06 \x03(\t\x12\x16\n\nvalue_type\x18\x07 \x01(\tB\x02\x18\x01\x12\x19\n\x11\x64\x61ta_source_names\x18\x08 \x03(\t\x12\x14\n\x0c\x64isplay_name\x18\t \x01(\t\x12\x42\n\x0fvalue_type_enum\x18\n \x01(\x0e\x32).findly_semantic_layer.DimensionValueType\"k\n\x13\x44imensionTypeParams\x12@\n\x10time_granularity\x18\x01 \x01(\x0e\x32&.findly_semantic_layer.DateGranularity\x12\x12\n\nis_primary\x18\x02 \x01(\x08\"\x8b\x03\n\x06Metric\x12\n\n\x02id\x18\x01 \x01(\t\x12\x0c\n\x04name\x18\x02 \x01(\t\x12\x13\n\x0b\x64\x65scription\x18\x03 \x01(\t\x12\x12\n\nexpression\x18\x04 \x01(\t\x12\x18\n\x10view_id_of_table\x18\x05 \x01(\t\x12\x12\n\ntable_name\x18\x06 \x01(\t\x12\x10\n\x08measures\x18\x07 \x03(\t\x12\x11\n\tnumerator\x18\x08 \x01(\t\x12\x13\n\x0b\x64\x65nominator\x18\t \x01(\t\x12/\n\x04type\x18\n \x01(\x0e\x32!.findly_semantic_layer.MetricType\x12\x10\n\x06window\x18\x0b \x01(\tH\x00\x12\x17\n\rgrain_to_date\x18\x0c \x01(\tH\x00\x12:\n\nvalue_type\x18\r \x01(\x0e\x32&.findly_semantic_layer.MetricValueType\x12\x14\n\x0c\x64isplay_name\x18\x0e \x01(\t\x12\x12\n\nis_numeric\x18\x0f \x01(\x08\x42\x14\n\x12\x63umulative_process\"4\n\x0c\x44\x61teStrRange\x12\x12\n\nstart_date\x18\x01 \x01(\t\x12\x10\n\x08\x65nd_date\x18\x02 \x01(\t\"\x93\x03\n\tQueryArgs\x12\x14\n\x0cwhere_clause\x18\x01 \x01(\t\x12\x18\n\x10group_by_columns\x18\x02 \x03(\t\x12\x1a\n\x12metrics_expression\x18\x03 \x03(\t\x12\r\n\x05limit\x18\x04 \x01(\t\x12\x10\n\x08order_by\x18\x05 \x03(\t\x12\x19\n\x11\x64\x61te_where_clause\x18\x06 \x01(\t\x12\x0f\n\x07metrics\x18\x07 \x03(\t\x12\x15\n\rhaving_clause\x18\x08 \x01(\t\x12\x1c\n\x14incompatible_metrics\x18\t \x03(\t\x12\x1f\n\x17incompatible_dimensions\x18\n \x03(\t\x12\x38\n\x0b\x64\x61te_ranges\x18\x0b \x03(\x0b\x32#.findly_semantic_layer.DateStrRange\x12\x17\n\x0fsql_explanation\x18\x0c \x01(\t\x12\r\n\x05level\x18\r \x01(\t\x12\x16\n\x0etime_increment\x18\x0e \x01(\t\x12\x1d\n\x15main_data_source_name\x18\x0f \x01(\t\"\x80\x01\n\x12\x44\x61tasourceMetadata\x12>\n\x08location\x18\x01 \x01(\x0e\x32,.findly_semantic_layer.DataSourceIntegration\x12\x13\n\x0bproperty_id\x18\x02 \x01(\t\x12\x15\n\rproperty_name\x18\x03 \x01(\t*b\n\x15\x44\x61taSourceIntegration\x12 \n\x1c\x44\x41TA_SOURCE_LOCATION_UNKNOWN\x10\x00\x12\x12\n\x0eSEMANTIC_LAYER\x10\x01\x12\x07\n\x03GA4\x10\x02\x12\n\n\x06\x46\x42_ADS\x10\x03*S\n\x0f\x44\x61teGranularity\x12\x0b\n\x07UNKNOWN\x10\x00\x12\x07\n\x03\x44\x41Y\x10\x01\x12\x08\n\x04WEEK\x10\x02\x12\t\n\x05MONTH\x10\x03\x12\x0b\n\x07QUARTER\x10\x04\x12\x08\n\x04YEAR\x10\x05*\x7f\n\x0b\x41ggregation\x12\x17\n\x13\x41GGREGATION_UNKNOWN\x10\x00\x12\x07\n\x03SUM\x10\x01\x12\x0f\n\x0bSUM_BOOLEAN\x10\x02\x12\x12\n\x0e\x43OUNT_DISTINCT\x10\x03\x12\x07\n\x03MIN\x10\x04\x12\x07\n\x03MAX\x10\x05\x12\x0b\n\x07\x41VERAGE\x10\x06\x12\n\n\x06MEDIAN\x10\x07*\xab\x01\n\rDimensionType\x12\x15\n\x11\x44IMENSION_UNKNOWN\x10\x00\x12\x0f\n\x0b\x43\x41TEGORICAL\x10\x01\x12\x08\n\x04TIME\x10\x02\x12\x10\n\x0c\x46\x42_ADS_FIELD\x10\x03\x12\x14\n\x10\x46\x42_ADS_BREAKDOWN\x10\x04\x12\x1b\n\x17\x46\x42_ADS_ACTION_BREAKDOWN\x10\x05\x12#\n\x1f\x46\x42_ADS_SUMMARY_ACTION_BREAKDOWN\x10\x06*\x84\x01\n\x12\x44imensionValueType\x12\x16\n\x12VALUE_TYPE_UNKNOWN\x10\x00\x12\n\n\x06STRING\x10\x01\x12\x0b\n\x07INTEGER\x10\x02\x12\t\n\x05\x46LOAT\x10\x03\x12\x0b\n\x07\x42OOLEAN\x10\x04\x12\x08\n\x04\x44\x41TE\x10\x05\x12\x0c\n\x08\x44\x41TETIME\x10\x06\x12\r\n\tTIMESTAMP\x10\x07*o\n\nMetricType\x12\x12\n\x0eMETRIC_UNKNOWN\x10\x00\x12\x11\n\rMEASURE_PROXY\x10\x01\x12\x0e\n\nCUMULATIVE\x10\x02\x12\t\n\x05RATIO\x10\x03\x12\x0b\n\x07\x44\x45RIVED\x10\x04\x12\x12\n\x0eSQL_EXPRESSION\x10\x05*\xf9\x04\n\x0fMetricValueType\x12\x1d\n\x19METRIC_VALUE_TYPE_UNKNOWN\x10\x00\x12\x1d\n\x19METRIC_VALUE_TYPE_INTEGER\x10\x01\x12\x1b\n\x17METRIC_VALUE_TYPE_FLOAT\x10\x02\x12\x1d\n\x19METRIC_VALUE_TYPE_SECONDS\x10\x03\x12\"\n\x1eMETRIC_VALUE_TYPE_MILLISECONDS\x10\x04\x12\x1d\n\x19METRIC_VALUE_TYPE_MINUTES\x10\x05\x12\x1b\n\x17METRIC_VALUE_TYPE_HOURS\x10\x06\x12\x1e\n\x1aMETRIC_VALUE_TYPE_STANDARD\x10\x07\x12\x1e\n\x1aMETRIC_VALUE_TYPE_CURRENCY\x10\x08\x12\x1a\n\x16METRIC_VALUE_TYPE_FEET\x10\t\x12\x1b\n\x17METRIC_VALUE_TYPE_MILES\x10\n\x12\x1c\n\x18METRIC_VALUE_TYPE_METERS\x10\x0b\x12 \n\x1cMETRIC_VALUE_TYPE_KILOMETERS\x10\x0c\x12\x1c\n\x18METRIC_VALUE_TYPE_STRING\x10\r\x12$\n METRIC_VALUE_TYPE_NUMERIC_STRING\x10\x0e\x12+\n\'METRIC_VALUE_TYPE_LIST_ADS_ACTION_STATS\x10\x0f\x12\x32\n.METRIC_VALUE_TYPE_LIST_ADS_INSIGHTS_DDA_RESULT\x10\x10\x12.\n*METRIC_VALUE_TYPE_LIST_ADS_HISTOGRAM_STATS\x10\x11\x62\x06proto3')
17
17
 
18
- _globals = globals()
19
- _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
20
- _builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'findly_semantic_layer_pb2', _globals)
18
+ _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, globals())
19
+ _builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'findly_semantic_layer_pb2', globals())
21
20
  if _descriptor._USE_C_DESCRIPTORS == False:
21
+
22
22
  DESCRIPTOR._options = None
23
- _globals['_DIMENSION'].fields_by_name['value_type']._options = None
24
- _globals['_DIMENSION'].fields_by_name['value_type']._serialized_options = b'\030\001'
25
- _globals['_DATASOURCEINTEGRATION']._serialized_start=1495
26
- _globals['_DATASOURCEINTEGRATION']._serialized_end=1593
27
- _globals['_DATEGRANULARITY']._serialized_start=1595
28
- _globals['_DATEGRANULARITY']._serialized_end=1678
29
- _globals['_AGGREGATION']._serialized_start=1680
30
- _globals['_AGGREGATION']._serialized_end=1807
31
- _globals['_DIMENSIONTYPE']._serialized_start=1810
32
- _globals['_DIMENSIONTYPE']._serialized_end=1981
33
- _globals['_DIMENSIONVALUETYPE']._serialized_start=1984
34
- _globals['_DIMENSIONVALUETYPE']._serialized_end=2116
35
- _globals['_METRICTYPE']._serialized_start=2118
36
- _globals['_METRICTYPE']._serialized_end=2229
37
- _globals['_METRICVALUETYPE']._serialized_start=2232
38
- _globals['_METRICVALUETYPE']._serialized_end=2865
39
- _globals['_DIMENSION']._serialized_start=55
40
- _globals['_DIMENSION']._serialized_end=395
41
- _globals['_DIMENSIONTYPEPARAMS']._serialized_start=397
42
- _globals['_DIMENSIONTYPEPARAMS']._serialized_end=504
43
- _globals['_METRIC']._serialized_start=507
44
- _globals['_METRIC']._serialized_end=902
45
- _globals['_DATESTRRANGE']._serialized_start=904
46
- _globals['_DATESTRRANGE']._serialized_end=956
47
- _globals['_QUERYARGS']._serialized_start=959
48
- _globals['_QUERYARGS']._serialized_end=1362
49
- _globals['_DATASOURCEMETADATA']._serialized_start=1365
50
- _globals['_DATASOURCEMETADATA']._serialized_end=1493
23
+ _DIMENSION.fields_by_name['value_type']._options = None
24
+ _DIMENSION.fields_by_name['value_type']._serialized_options = b'\030\001'
25
+ _DATASOURCEINTEGRATION._serialized_start=1495
26
+ _DATASOURCEINTEGRATION._serialized_end=1593
27
+ _DATEGRANULARITY._serialized_start=1595
28
+ _DATEGRANULARITY._serialized_end=1678
29
+ _AGGREGATION._serialized_start=1680
30
+ _AGGREGATION._serialized_end=1807
31
+ _DIMENSIONTYPE._serialized_start=1810
32
+ _DIMENSIONTYPE._serialized_end=1981
33
+ _DIMENSIONVALUETYPE._serialized_start=1984
34
+ _DIMENSIONVALUETYPE._serialized_end=2116
35
+ _METRICTYPE._serialized_start=2118
36
+ _METRICTYPE._serialized_end=2229
37
+ _METRICVALUETYPE._serialized_start=2232
38
+ _METRICVALUETYPE._serialized_end=2865
39
+ _DIMENSION._serialized_start=55
40
+ _DIMENSION._serialized_end=395
41
+ _DIMENSIONTYPEPARAMS._serialized_start=397
42
+ _DIMENSIONTYPEPARAMS._serialized_end=504
43
+ _METRIC._serialized_start=507
44
+ _METRIC._serialized_end=902
45
+ _DATESTRRANGE._serialized_start=904
46
+ _DATESTRRANGE._serialized_end=956
47
+ _QUERYARGS._serialized_start=959
48
+ _QUERYARGS._serialized_end=1362
49
+ _DATASOURCEMETADATA._serialized_start=1365
50
+ _DATASOURCEMETADATA._serialized_end=1493
51
51
  # @@protoc_insertion_point(module_scope)
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "findly.unified-reporting-sdk"
3
- version = "0.7.8"
3
+ version = "0.7.9"
4
4
  license = "GPL-3.0-only"
5
5
  description = ""
6
6
  authors = []