findly.unified-reporting-sdk 0.7.13__py3-none-any.whl → 0.7.14__py3-none-any.whl

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.
@@ -11,10 +11,6 @@ from findly.unified_reporting_sdk.data_sources.common.common_parser import (
11
11
  RESERVED_TOTAL,
12
12
  )
13
13
 
14
- from findly.unified_reporting_sdk.util.create_numeric_string_series import (
15
- create_numeric_string_series,
16
- )
17
-
18
14
  from findly.unified_reporting_sdk.data_sources.common.where_string_comparison import (
19
15
  parse_where_column_condition,
20
16
  WhereClauseInformation,
@@ -333,8 +329,6 @@ class FbAdsQueryArgsParser(CommonParser):
333
329
 
334
330
  # remove duplicates from explosions and reset index
335
331
  df = df.drop_duplicates().reset_index(drop=True)
336
- # Also cap float columns to 2 decimal places
337
- df = df.apply(create_numeric_string_series)
338
332
 
339
333
  # At last, return that if there is only one date range,
340
334
  # else, we need to split the dataframe into multiple dataframes
@@ -555,9 +549,6 @@ class FbAdsQueryArgsParser(CommonParser):
555
549
  # Keep only the first row
556
550
  summary_df = summary_df.head(1)
557
551
 
558
- # Also cap float columns to 2 decimal places
559
- summary_df = summary_df.apply(create_numeric_string_series)
560
-
561
552
  return [summary_df]
562
553
 
563
554
  async def parse_query_args_to_request_params(
@@ -83,14 +83,14 @@ class GA4QueryArgsParser(CommonParser):
83
83
  # Check if the metric header ends with 'Rate'
84
84
  if header.endswith("Rate"):
85
85
  # Convert the value to a float and multiply by 100
86
- value_number = round(float(value) * 100, 2)
86
+ value_number = float(value) * 100
87
87
  else:
88
88
  # Cap float values to 2 decimal places
89
89
  value_number = float(value)
90
90
  if value_number.is_integer():
91
91
  value_number = int(value_number)
92
92
  else:
93
- value_number = round(value_number, 2)
93
+ value_number = value_number
94
94
  row_dict[header] = value_number
95
95
 
96
96
  rows.append(row_dict)
@@ -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
6
5
  from google.protobuf import descriptor as _descriptor
7
6
  from google.protobuf import descriptor_pool as _descriptor_pool
8
7
  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
- _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, globals())
19
- _builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'findly_semantic_layer_pb2', globals())
18
+ _globals = globals()
19
+ _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
20
+ _builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'findly_semantic_layer_pb2', _globals)
20
21
  if _descriptor._USE_C_DESCRIPTORS == False:
21
-
22
22
  DESCRIPTOR._options = None
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
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
51
51
  # @@protoc_insertion_point(module_scope)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: findly.unified-reporting-sdk
3
- Version: 0.7.13
3
+ Version: 0.7.14
4
4
  Summary:
5
5
  License: GPL-3.0-only
6
6
  Requires-Python: >=3.9,<4.0
@@ -9,7 +9,7 @@ findly/unified_reporting_sdk/data_sources/common/reports_client.py,sha256=zvr6it
9
9
  findly/unified_reporting_sdk/data_sources/common/where_string_comparison.py,sha256=rraEwXe_bo0R1Fbq6-C_Ooz0_J5C0tr1VwHvajKWfsg,8298
10
10
  findly/unified_reporting_sdk/data_sources/fb_ads/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
11
11
  findly/unified_reporting_sdk/data_sources/fb_ads/fb_ads_client.py,sha256=K4Z6cIBNdQWBrD_NKT_QRz8-gJE7YnoOeZmxGhgUT8A,22004
12
- findly/unified_reporting_sdk/data_sources/fb_ads/fb_ads_query_args_parser.py,sha256=eh9yp6bLJzPP9hY8CNDiBAcfZ6G-aYmgCfsr2wWBQ4c,31791
12
+ findly/unified_reporting_sdk/data_sources/fb_ads/fb_ads_query_args_parser.py,sha256=GKzJXCgQd4FUziMSXKch4eyLk8rK9DsIyLQN7rAc2NY,31442
13
13
  findly/unified_reporting_sdk/data_sources/fb_ads/metadata/action_breakdowns.csv,sha256=FUjp_e4aPnkKPIjCmEq4gOmSInFefAZQNsSs3-rRcLg,1492
14
14
  findly/unified_reporting_sdk/data_sources/fb_ads/metadata/breakdowns.csv,sha256=-i_hd5NAJjHkcfMboqemRmnAalZ4Z8TczNzeYuaFnsw,5778
15
15
  findly/unified_reporting_sdk/data_sources/fb_ads/metadata/dimensions.jsonl,sha256=066M3G-khDomEBN3BwE2wf5QVTZDucC7Cqr_77CZfN8,16133
@@ -17,19 +17,17 @@ findly/unified_reporting_sdk/data_sources/fb_ads/metadata/fields.csv,sha256=9FQ8
17
17
  findly/unified_reporting_sdk/data_sources/fb_ads/metadata/metrics.jsonl,sha256=k46VIKAOZiuefpo-umQ7SYZnl8I5NIzP7_KITLfL974,19606
18
18
  findly/unified_reporting_sdk/data_sources/ga4/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
19
19
  findly/unified_reporting_sdk/data_sources/ga4/ga4_client.py,sha256=_HDaDyxecq5CRxyGi1FcGeMismxhqgg598ISMrpIvrQ,39901
20
- findly/unified_reporting_sdk/data_sources/ga4/ga4_query_args_parser.py,sha256=8ftQuPITs_6SCgLFGrUTpaUNuRuL9oUn4rXA-oBnWEM,30220
20
+ findly/unified_reporting_sdk/data_sources/ga4/ga4_query_args_parser.py,sha256=-s9iLTuFvpxx4NGll6GrUNQ_Exc_3UDZOFJ8EdPBYiA,30200
21
21
  findly/unified_reporting_sdk/data_sources/ga4/metadata/dimensions.jsonl,sha256=nSecS8Pi0ZTjsd1PlIyqAbYF56Chw2zLYRWetLkG9VQ,33511
22
22
  findly/unified_reporting_sdk/data_sources/gsc/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
23
23
  findly/unified_reporting_sdk/data_sources/gsc/gsc_client.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
24
24
  findly/unified_reporting_sdk/data_sources/gsc/gsc_service.py,sha256=C6wm38Hu-UozFll71G3b03e2hgLFiC4I5yjcuo9hB4M,934
25
25
  findly/unified_reporting_sdk/protos/.gitignore,sha256=jyvVCY11J1OlOGM-nZCWKSR1vfO6fP65lnH65qf5W20,27
26
26
  findly/unified_reporting_sdk/protos/__init__.py,sha256=sfz7Yn3hvQrnhTfoZPGTbo0F1_Fw4X494wPSZojRajA,137
27
- findly/unified_reporting_sdk/protos/findly_semantic_layer_pb2.py,sha256=aVZGPhrYEKN8PExrm8GzAZJI6Yzip8XxfIaDJlh4R88,6925
27
+ findly/unified_reporting_sdk/protos/findly_semantic_layer_pb2.py,sha256=SaY46pOt8sDiVWrpY_f0uDwfgm_OPcHUkCdetnbPnUw,7279
28
28
  findly/unified_reporting_sdk/protos/findly_semantic_layer_pb2.pyi,sha256=jjoQm4TljpS8pcF6bqj21ygTQ-ayCzS3ScrRtbd5hPA,31043
29
29
  findly/unified_reporting_sdk/urs.py,sha256=-vhOFpi-M0uo_tZ_O_hTDDEGO-ATf78nqEf5JhIcaz4,2956
30
- findly/unified_reporting_sdk/util/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
31
- findly/unified_reporting_sdk/util/create_numeric_string_series.py,sha256=MmufpYatIhcVxA9e3H1dR1CrejXRnA8j4NNjJxfvBVA,457
32
- findly_unified_reporting_sdk-0.7.13.dist-info/LICENSE,sha256=OXLcl0T2SZ8Pmy2_dmlvKuetivmyPd5m1q-Gyd-zaYY,35149
33
- findly_unified_reporting_sdk-0.7.13.dist-info/METADATA,sha256=cVB7Zx1MT6iT4IxYmuem0whzUPn8xCHgiz032V_AuoU,3213
34
- findly_unified_reporting_sdk-0.7.13.dist-info/WHEEL,sha256=Nq82e9rUAnEjt98J6MlVmMCZb-t9cYE2Ir1kpBmnWfs,88
35
- findly_unified_reporting_sdk-0.7.13.dist-info/RECORD,,
30
+ findly_unified_reporting_sdk-0.7.14.dist-info/LICENSE,sha256=OXLcl0T2SZ8Pmy2_dmlvKuetivmyPd5m1q-Gyd-zaYY,35149
31
+ findly_unified_reporting_sdk-0.7.14.dist-info/METADATA,sha256=0zNhdl6yBerd1pxBEOGD0qA-K67Hni8_yLi63-8brvo,3213
32
+ findly_unified_reporting_sdk-0.7.14.dist-info/WHEEL,sha256=Nq82e9rUAnEjt98J6MlVmMCZb-t9cYE2Ir1kpBmnWfs,88
33
+ findly_unified_reporting_sdk-0.7.14.dist-info/RECORD,,
File without changes
@@ -1,16 +0,0 @@
1
- import pandas as pd
2
-
3
- DEFAULT_FLOAT_PRECISION = 2
4
-
5
-
6
- def create_numeric_string_series(
7
- col: pd.Series, precision: int = DEFAULT_FLOAT_PRECISION
8
- ) -> pd.Series:
9
- try:
10
- numeric_col: pd.Series = pd.to_numeric(col)
11
- if (numeric_col.dropna() % 1 == 0).all():
12
- return numeric_col.astype(int).astype(str)
13
- else:
14
- return numeric_col.astype(float).round(precision).astype(str)
15
- except Exception:
16
- return col