pylegend 0.10.0__py3-none-any.whl → 0.12.0__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.
Files changed (31) hide show
  1. pylegend/core/database/sql_to_string/db_extension.py +68 -6
  2. pylegend/core/language/legendql_api/legendql_api_custom_expressions.py +190 -5
  3. pylegend/core/language/pandas_api/pandas_api_series.py +3 -0
  4. pylegend/core/sql/metamodel.py +4 -1
  5. pylegend/core/tds/legendql_api/frames/functions/legendql_api_distinct_function.py +53 -7
  6. pylegend/core/tds/legendql_api/frames/legendql_api_base_tds_frame.py +146 -4
  7. pylegend/core/tds/legendql_api/frames/legendql_api_tds_frame.py +33 -2
  8. pylegend/core/tds/pandas_api/frames/functions/aggregate_function.py +221 -96
  9. pylegend/core/tds/pandas_api/frames/functions/assign_function.py +65 -23
  10. pylegend/core/tds/pandas_api/frames/functions/drop.py +3 -3
  11. pylegend/core/tds/pandas_api/frames/functions/dropna.py +167 -0
  12. pylegend/core/tds/pandas_api/frames/functions/fillna.py +162 -0
  13. pylegend/core/tds/pandas_api/frames/functions/filter.py +10 -5
  14. pylegend/core/tds/pandas_api/frames/functions/merge.py +513 -0
  15. pylegend/core/tds/pandas_api/frames/functions/rename.py +214 -0
  16. pylegend/core/tds/pandas_api/frames/functions/truncate_function.py +151 -120
  17. pylegend/core/tds/pandas_api/frames/pandas_api_applied_function_tds_frame.py +7 -3
  18. pylegend/core/tds/pandas_api/frames/pandas_api_base_tds_frame.py +559 -18
  19. pylegend/core/tds/pandas_api/frames/pandas_api_groupby_tds_frame.py +325 -0
  20. pylegend/core/tds/pandas_api/frames/pandas_api_tds_frame.py +218 -12
  21. pylegend/extensions/tds/abstract/csv_tds_frame.py +95 -0
  22. pylegend/extensions/tds/legendql_api/frames/legendql_api_csv_input_frame.py +36 -0
  23. pylegend/extensions/tds/pandas_api/frames/pandas_api_legend_function_input_frame.py +9 -4
  24. pylegend/extensions/tds/pandas_api/frames/pandas_api_legend_service_input_frame.py +12 -5
  25. pylegend/extensions/tds/pandas_api/frames/pandas_api_table_spec_input_frame.py +12 -4
  26. {pylegend-0.10.0.dist-info → pylegend-0.12.0.dist-info}/METADATA +1 -1
  27. {pylegend-0.10.0.dist-info → pylegend-0.12.0.dist-info}/RECORD +31 -24
  28. {pylegend-0.10.0.dist-info → pylegend-0.12.0.dist-info}/WHEEL +0 -0
  29. {pylegend-0.10.0.dist-info → pylegend-0.12.0.dist-info}/licenses/LICENSE +0 -0
  30. {pylegend-0.10.0.dist-info → pylegend-0.12.0.dist-info}/licenses/LICENSE.spdx +0 -0
  31. {pylegend-0.10.0.dist-info → pylegend-0.12.0.dist-info}/licenses/NOTICE +0 -0
@@ -0,0 +1,36 @@
1
+ # Copyright 2025 Goldman Sachs
2
+ #
3
+ # Licensed under the Apache License, Version 2.0 (the "License");
4
+ # you may not use this file except in compliance with the License.
5
+ # You may obtain a copy of the License at
6
+ #
7
+ # http://www.apache.org/licenses/LICENSE-2.0
8
+ #
9
+ # Unless required by applicable law or agreed to in writing, software
10
+ # distributed under the License is distributed on an "AS IS" BASIS,
11
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ # See the License for the specific language governing permissions and
13
+ # limitations under the License.
14
+ from pylegend._typing import (
15
+ PyLegendSequence,
16
+ )
17
+ from pylegend.core.tds.legendql_api.frames.legendql_api_input_tds_frame import (
18
+ LegendQLApiNonExecutableInputTdsFrame,
19
+ )
20
+ from pylegend.extensions.tds.abstract.csv_tds_frame import CsvInputFrameAbstract
21
+
22
+ __all__: PyLegendSequence[str] = [
23
+ "LegendQLApiCsvNonExecutableInputTdsFrame",
24
+ ]
25
+
26
+
27
+ class LegendQLApiCsvNonExecutableInputTdsFrame(
28
+ CsvInputFrameAbstract,
29
+ LegendQLApiNonExecutableInputTdsFrame
30
+ ):
31
+
32
+ def __init__(
33
+ self,
34
+ csv_string: str) -> None:
35
+ CsvInputFrameAbstract.__init__(self, csv_string=csv_string)
36
+ LegendQLApiNonExecutableInputTdsFrame.__init__(self, columns=self.columns())
@@ -13,20 +13,21 @@
13
13
  # limitations under the License.
14
14
 
15
15
  from pylegend._typing import (
16
- PyLegendSequence
16
+ PyLegendSequence,
17
+ PyLegendType
17
18
  )
18
- from pylegend.core.tds.pandas_api.frames.pandas_api_input_tds_frame import PandasApiExecutableInputTdsFrame
19
19
  from pylegend.core.project_cooridnates import ProjectCoordinates
20
20
  from pylegend.core.request.legend_client import LegendClient
21
+ from pylegend.core.tds.pandas_api.frames.pandas_api_input_tds_frame import PandasApiExecutableInputTdsFrame
22
+ from pylegend.core.tds.tds_frame import PyLegendTdsFrame
21
23
  from pylegend.extensions.tds.abstract.legend_function_input_frame import LegendFunctionInputFrameAbstract
22
24
 
23
-
24
25
  __all__: PyLegendSequence[str] = [
25
26
  "PandasApiLegendFunctionInputFrame"
26
27
  ]
27
28
 
28
29
 
29
- class PandasApiLegendFunctionInputFrame(LegendFunctionInputFrameAbstract, PandasApiExecutableInputTdsFrame):
30
+ class PandasApiLegendFunctionInputFrame(PandasApiExecutableInputTdsFrame, LegendFunctionInputFrameAbstract):
30
31
 
31
32
  def __init__(
32
33
  self,
@@ -35,6 +36,7 @@ class PandasApiLegendFunctionInputFrame(LegendFunctionInputFrameAbstract, Pandas
35
36
  legend_client: LegendClient,
36
37
  ) -> None:
37
38
  LegendFunctionInputFrameAbstract.__init__(self, path=path, project_coordinates=project_coordinates)
39
+ self._transformed_frame = None
38
40
  PandasApiExecutableInputTdsFrame.__init__(
39
41
  self,
40
42
  legend_client=legend_client,
@@ -44,3 +46,6 @@ class PandasApiLegendFunctionInputFrame(LegendFunctionInputFrameAbstract, Pandas
44
46
 
45
47
  def __str__(self) -> str:
46
48
  return f"PandasApiLegendFunctionInputFrame({'.'.join(self.get_path())})"
49
+
50
+ def get_super_type(self) -> PyLegendType[PyLegendTdsFrame]:
51
+ return LegendFunctionInputFrameAbstract
@@ -13,20 +13,23 @@
13
13
  # limitations under the License.
14
14
 
15
15
  from pylegend._typing import (
16
- PyLegendSequence
16
+ PyLegendSequence,
17
+ PyLegendType
17
18
  )
18
- from pylegend.core.tds.pandas_api.frames.pandas_api_input_tds_frame import PandasApiExecutableInputTdsFrame
19
19
  from pylegend.core.project_cooridnates import ProjectCoordinates
20
20
  from pylegend.core.request.legend_client import LegendClient
21
+ from pylegend.core.tds.pandas_api.frames.pandas_api_input_tds_frame import PandasApiExecutableInputTdsFrame
22
+ from pylegend.core.tds.tds_frame import (
23
+ PyLegendTdsFrame
24
+ )
21
25
  from pylegend.extensions.tds.abstract.legend_service_input_frame import LegendServiceInputFrameAbstract
22
26
 
23
-
24
27
  __all__: PyLegendSequence[str] = [
25
28
  "PandasApiLegendServiceInputFrame"
26
29
  ]
27
30
 
28
31
 
29
- class PandasApiLegendServiceInputFrame(LegendServiceInputFrameAbstract, PandasApiExecutableInputTdsFrame):
32
+ class PandasApiLegendServiceInputFrame(PandasApiExecutableInputTdsFrame, LegendServiceInputFrameAbstract):
30
33
 
31
34
  def __init__(
32
35
  self,
@@ -35,6 +38,7 @@ class PandasApiLegendServiceInputFrame(LegendServiceInputFrameAbstract, PandasAp
35
38
  legend_client: LegendClient,
36
39
  ) -> None:
37
40
  LegendServiceInputFrameAbstract.__init__(self, pattern=pattern, project_coordinates=project_coordinates)
41
+ self._transformed_frame = None
38
42
  PandasApiExecutableInputTdsFrame.__init__(
39
43
  self,
40
44
  legend_client=legend_client,
@@ -43,4 +47,7 @@ class PandasApiLegendServiceInputFrame(LegendServiceInputFrameAbstract, PandasAp
43
47
  LegendServiceInputFrameAbstract.set_initialized(self, True)
44
48
 
45
49
  def __str__(self) -> str:
46
- return f"PandasApiLegendServiceInputFrame({'.'.join(self.get_pattern())})"
50
+ return f"PandasApiLegendServiceInputFrame({'.'.join(self.get_pattern())})" # pragma: no cover
51
+
52
+ def get_super_type(self) -> PyLegendType[PyLegendTdsFrame]:
53
+ return LegendServiceInputFrameAbstract
@@ -14,23 +14,31 @@
14
14
 
15
15
  from pylegend._typing import (
16
16
  PyLegendList,
17
- PyLegendSequence
17
+ PyLegendSequence,
18
+ PyLegendType
19
+ )
20
+ from pylegend.core.sql.metamodel import (
21
+ QualifiedName
18
22
  )
19
23
  from pylegend.core.tds.pandas_api.frames.pandas_api_input_tds_frame import PandasApiNonExecutableInputTdsFrame
20
24
  from pylegend.core.tds.tds_column import TdsColumn
25
+ from pylegend.core.tds.tds_frame import PyLegendTdsFrame
21
26
  from pylegend.extensions.tds.abstract.table_spec_input_frame import TableSpecInputFrameAbstract
22
27
 
23
-
24
28
  __all__: PyLegendSequence[str] = [
25
29
  "PandasApiTableSpecInputFrame"
26
30
  ]
27
31
 
28
32
 
29
- class PandasApiTableSpecInputFrame(TableSpecInputFrameAbstract, PandasApiNonExecutableInputTdsFrame):
33
+ class PandasApiTableSpecInputFrame(PandasApiNonExecutableInputTdsFrame, TableSpecInputFrameAbstract):
34
+ table: QualifiedName
30
35
 
31
36
  def __init__(self, table_name_parts: PyLegendList[str], columns: PyLegendSequence[TdsColumn]) -> None:
32
37
  TableSpecInputFrameAbstract.__init__(self, table_name_parts=table_name_parts)
33
38
  PandasApiNonExecutableInputTdsFrame.__init__(self, columns=columns)
34
39
 
35
40
  def __str__(self) -> str:
36
- return f"PandasApiTableSpecInputFrame({'.'.join(self.table.parts)})"
41
+ return f"PandasApiTableSpecInputFrame({'.'.join(self.table.parts)})" # pragma: no cover
42
+
43
+ def get_super_type(self) -> PyLegendType[PyLegendTdsFrame]:
44
+ return TableSpecInputFrameAbstract
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: pylegend
3
- Version: 0.10.0
3
+ Version: 0.12.0
4
4
  Summary: Python language binding for Legend data management platform
5
5
  License: Apache-2.0
6
6
  License-File: LICENSE
@@ -4,19 +4,19 @@ pylegend/core/__init__.py,sha256=LXTDJSDmHQXtnMDZouhZp9IZQVpY6ONkINbUYjtnMkE,578
4
4
  pylegend/core/database/__init__.py,sha256=LXTDJSDmHQXtnMDZouhZp9IZQVpY6ONkINbUYjtnMkE,578
5
5
  pylegend/core/database/sql_to_string/__init__.py,sha256=_qWOoReR9ygprnShQRBtp4wFmqtiPEa88jAhOZpYY2c,1028
6
6
  pylegend/core/database/sql_to_string/config.py,sha256=xrwPFcuZyzZcKNGeOQTnFW2y7CqhT6laSAazVl93JLU,1384
7
- pylegend/core/database/sql_to_string/db_extension.py,sha256=uGQDsCzBJWHiCXh-WBKR2yACbDlVIivPQi1lqo1kIb0,54058
7
+ pylegend/core/database/sql_to_string/db_extension.py,sha256=o-hwigD4SCqibcJ0roVfwDPDavyr8IqVNBrvxjg-zLo,55897
8
8
  pylegend/core/database/sql_to_string/generator.py,sha256=xk3siXWyR7_ahn6pwsUMi80V_7NV2tYa7x5dosiNJR4,2607
9
9
  pylegend/core/language/__init__.py,sha256=sw70dEA5RT660Qmpjxdi1XKEWDwshuedomqHhyIJpvI,4331
10
10
  pylegend/core/language/legacy_api/__init__.py,sha256=g6w4WCuQ2pqQG6yyn-QLLXED3ttOOB8YnXzVt3ijb28,578
11
11
  pylegend/core/language/legacy_api/aggregate_specification.py,sha256=XT9kmlT3DqrJRUbQSju69ZW-23mORnJHE_Aplw_YpNw,2207
12
12
  pylegend/core/language/legacy_api/legacy_api_tds_row.py,sha256=B3L55ylNVnHoukuETEyU7zPS5E_G9H8hSesGN48zgkM,1149
13
13
  pylegend/core/language/legendql_api/__init__.py,sha256=g6w4WCuQ2pqQG6yyn-QLLXED3ttOOB8YnXzVt3ijb28,578
14
- pylegend/core/language/legendql_api/legendql_api_custom_expressions.py,sha256=DPKdwBzE1HVfYnE99kOWzB75Uqa1nPJPcdyT5P9tdQg,19283
14
+ pylegend/core/language/legendql_api/legendql_api_custom_expressions.py,sha256=5KsfFxWiJQ8C6Pgtpurhpw5kxsNXQQYpRZD9Et_ug4g,25780
15
15
  pylegend/core/language/legendql_api/legendql_api_tds_row.py,sha256=5hejBF2uYjXuaXLA8jHt6e3mj5JEQRZN_rwaPMT8JFI,10304
16
16
  pylegend/core/language/pandas_api/__init__.py,sha256=g6w4WCuQ2pqQG6yyn-QLLXED3ttOOB8YnXzVt3ijb28,578
17
17
  pylegend/core/language/pandas_api/pandas_api_aggregate_specification.py,sha256=T_RaPB9y_7kcnMC_CIEDJhxORID1plR99IGGPZvDnBk,1474
18
18
  pylegend/core/language/pandas_api/pandas_api_custom_expressions.py,sha256=xOXp0NdyNW6j_R_1sCy1JcdN9EWIqYRXngocsINpllE,2590
19
- pylegend/core/language/pandas_api/pandas_api_series.py,sha256=Z57V2cJmRDH2cDQYO6_jMvWzGAHhRbF6xj03r32gKSY,7272
19
+ pylegend/core/language/pandas_api/pandas_api_series.py,sha256=WJ--FaWeODIvS26RErugschR_CmypjzVu6H64sfwokQ,7359
20
20
  pylegend/core/language/pandas_api/pandas_api_tds_row.py,sha256=L0O5BLok3KqmzUgXFfM2fQgrpAxCfQ74bOplnetjyvw,2516
21
21
  pylegend/core/language/shared/__init__.py,sha256=g6w4WCuQ2pqQG6yyn-QLLXED3ttOOB8YnXzVt3ijb28,578
22
22
  pylegend/core/language/shared/column_expressions.py,sha256=qWHVvwPGwKroQX94a_ovUrxCPnosVMX3tBWlTj7uJ6k,4333
@@ -57,7 +57,7 @@ pylegend/core/request/legend_client.py,sha256=PLCCiazvFG2ujcHN-vGDQxpEl5QvFHBNNc
57
57
  pylegend/core/request/response_reader.py,sha256=TNMi2GKk4lkmf7VMeY5n2AwhxxuWbX4M8pgC2_pXFbE,1691
58
58
  pylegend/core/request/service_client.py,sha256=oNvMR6qNl5UcxpcAjIb4CCpd0MB3Z-Y5OJSyFPGeerM,3377
59
59
  pylegend/core/sql/__init__.py,sha256=LXTDJSDmHQXtnMDZouhZp9IZQVpY6ONkINbUYjtnMkE,578
60
- pylegend/core/sql/metamodel.py,sha256=6j3PxONqjCo5AaI_fZM9LElQNzXIXMaW0-5biTtC61I,20169
60
+ pylegend/core/sql/metamodel.py,sha256=UNGJ9mZWw7sJQzNwXsZjZtrASTBfPrM2Un8-BEd8jDg,20330
61
61
  pylegend/core/sql/metamodel_extension.py,sha256=5y63ms2MLdfW07X6R5hsozinWEr7LoB_lGXvROP4byk,16382
62
62
  pylegend/core/tds/__init__.py,sha256=LXTDJSDmHQXtnMDZouhZp9IZQVpY6ONkINbUYjtnMkE,578
63
63
  pylegend/core/tds/abstract/__init__.py,sha256=g6w4WCuQ2pqQG6yyn-QLLXED3ttOOB8YnXzVt3ijb28,578
@@ -91,7 +91,7 @@ pylegend/core/tds/legendql_api/frames/__init__.py,sha256=g6w4WCuQ2pqQG6yyn-QLLXE
91
91
  pylegend/core/tds/legendql_api/frames/functions/__init__.py,sha256=g6w4WCuQ2pqQG6yyn-QLLXED3ttOOB8YnXzVt3ijb28,578
92
92
  pylegend/core/tds/legendql_api/frames/functions/legendql_api_asofjoin_function.py,sha256=rqcP1SB24ExNVoPQm2fm2p9AR90BXeWRHmroHBnCUB4,7162
93
93
  pylegend/core/tds/legendql_api/frames/functions/legendql_api_concatenate_function.py,sha256=YlIjlFsl63P_Kb65Vfsz2iiuvGte-2FmxM1UBExK3aM,5429
94
- pylegend/core/tds/legendql_api/frames/functions/legendql_api_distinct_function.py,sha256=D9IQvwmzHHwhXJs6LkSiDPVN7PhpC72WwHuh8Rw3xcU,2531
94
+ pylegend/core/tds/legendql_api/frames/functions/legendql_api_distinct_function.py,sha256=XM53U87NXcG2X6qbc7D8Sndls__-GQHHDkcsCKOnqJc,4485
95
95
  pylegend/core/tds/legendql_api/frames/functions/legendql_api_drop_function.py,sha256=TRODbNc_F2L8qItQnp5vsmXF1pVFdMTEA26D8ISpmdM,2770
96
96
  pylegend/core/tds/legendql_api/frames/functions/legendql_api_extend_function.py,sha256=V-9Foub1UC2sSlH-4oZpukmZdlm1yWOPYmpj4clEKOc,12754
97
97
  pylegend/core/tds/legendql_api/frames/functions/legendql_api_filter_function.py,sha256=jlIqWQKcCF2Fqz1DjAPEsUY-_hbtqpd6Cp1gpiJcYBA,4993
@@ -106,23 +106,28 @@ pylegend/core/tds/legendql_api/frames/functions/legendql_api_slice_function.py,s
106
106
  pylegend/core/tds/legendql_api/frames/functions/legendql_api_sort_function.py,sha256=KHfxCCRXMSbIWG3KKuAR1BzThFx0rON8CJ_5g7QUTV4,3665
107
107
  pylegend/core/tds/legendql_api/frames/functions/legendql_api_window_extend_function.py,sha256=TapsKtSgZGaMDK_33NsrvozmuV-VkiWtdJJSdLYSYnM,14253
108
108
  pylegend/core/tds/legendql_api/frames/legendql_api_applied_function_tds_frame.py,sha256=kEh2XLoxYucQ6R7i5SKWSElUxbslufh5X5reIzOZbDw,1442
109
- pylegend/core/tds/legendql_api/frames/legendql_api_base_tds_frame.py,sha256=QOV1NG8Ku9S3MQg_B-GkAvA0z1wEMR6Z1eZSLz3uqa8,17659
109
+ pylegend/core/tds/legendql_api/frames/legendql_api_base_tds_frame.py,sha256=3TDKBgiE9O5ra-2yJSm2uIUjrLoSILW1fpzLajasmZI,23231
110
110
  pylegend/core/tds/legendql_api/frames/legendql_api_input_tds_frame.py,sha256=x4rl6ER2ksy_PAcz9vlN_GNXejKpUg_e_YgAynfzS1Q,2147
111
- pylegend/core/tds/legendql_api/frames/legendql_api_tds_frame.py,sha256=4-ffrFZia3jS8mToSVqz22J75t-MuI8-QZJQzm7AGAY,11366
111
+ pylegend/core/tds/legendql_api/frames/legendql_api_tds_frame.py,sha256=BFDdgeZ66DdoA9k4kzWU9KATZKLxvyQPeJ4HQh5qWMI,12581
112
112
  pylegend/core/tds/pandas_api/__init__.py,sha256=LXTDJSDmHQXtnMDZouhZp9IZQVpY6ONkINbUYjtnMkE,578
113
113
  pylegend/core/tds/pandas_api/frames/__init__.py,sha256=LXTDJSDmHQXtnMDZouhZp9IZQVpY6ONkINbUYjtnMkE,578
114
114
  pylegend/core/tds/pandas_api/frames/functions/__init__.py,sha256=LXTDJSDmHQXtnMDZouhZp9IZQVpY6ONkINbUYjtnMkE,578
115
- pylegend/core/tds/pandas_api/frames/functions/aggregate_function.py,sha256=nE2ufz_nLWGbik4k4KLnpLPOUqYjkfWE9z2cEXlWnRE,15346
116
- pylegend/core/tds/pandas_api/frames/functions/assign_function.py,sha256=yHqEdyLhYIjuZfUKE3ULKA5NmEwkNSVG8c4t-gDKPF4,4880
117
- pylegend/core/tds/pandas_api/frames/functions/drop.py,sha256=GGZTxOP5iv6zvR8TEggG166oWuaGkJQvOd9o9dQLJYU,7268
118
- pylegend/core/tds/pandas_api/frames/functions/filter.py,sha256=tiVCnDK2_8HahVh8KCbclrjC20i_tZWUbNiwZn-NLVs,7773
115
+ pylegend/core/tds/pandas_api/frames/functions/aggregate_function.py,sha256=rpFjIOE9LmbfL78b3fiD2dRB0Dq0hqGmdQLHcsvi59Y,21110
116
+ pylegend/core/tds/pandas_api/frames/functions/assign_function.py,sha256=uhCv1sDnVBZmT3H5Alu2NUvek8aKqWz5HIG2Vtut-hs,6931
117
+ pylegend/core/tds/pandas_api/frames/functions/drop.py,sha256=tJMeL9Or43QDng9SsxYvW_yus3Hjp03PSlX7P857d7s,7269
118
+ pylegend/core/tds/pandas_api/frames/functions/dropna.py,sha256=OVVwUsPSAykm1g-afVvwxQCr_AaoQtH0cFRVffl9eHs,6161
119
+ pylegend/core/tds/pandas_api/frames/functions/fillna.py,sha256=7XKfIpRlTtoIS1jzfPemOMuytH4njqQ_4GF2UKZliG0,6553
120
+ pylegend/core/tds/pandas_api/frames/functions/filter.py,sha256=TE-OfQqOrBwhS7bKDChsLRTAWOZreZikGQhQPByy8uA,7959
119
121
  pylegend/core/tds/pandas_api/frames/functions/filtering.py,sha256=FmzzobMoL-_mt3uFssveGTNCVGo6ZfttXZsj1c56uIo,3181
122
+ pylegend/core/tds/pandas_api/frames/functions/merge.py,sha256=bp9a9reNtUAKqaz1Kft3m7wegHKxOmIVoJH135A1iV0,21225
123
+ pylegend/core/tds/pandas_api/frames/functions/rename.py,sha256=afXj8EhsTVUNJAZDFAM_K3VOX5oH3TA2FxSDoZHfT6M,8898
120
124
  pylegend/core/tds/pandas_api/frames/functions/sort_values_function.py,sha256=sppDTCW3X0RXLYD2zBvjKEObtc_JfEtoNY7lj-60zqQ,7132
121
- pylegend/core/tds/pandas_api/frames/functions/truncate_function.py,sha256=8KsiQN9ju8iSmsk_IEOP0aoFfJHuDEHEAgE0KqDY-vc,4923
122
- pylegend/core/tds/pandas_api/frames/pandas_api_applied_function_tds_frame.py,sha256=NAnSHussMCb2WmhNIcXI_wGNnp7GQQl8sGgUvojAIgk,2821
123
- pylegend/core/tds/pandas_api/frames/pandas_api_base_tds_frame.py,sha256=QL9yYYwYwjeBV24Gv7YulJkoV-hUbEW8xU1wkKVZcuQ,14513
125
+ pylegend/core/tds/pandas_api/frames/functions/truncate_function.py,sha256=VUr9jzVhnU_mJVootUQfcEG8Q66vSJba1QGUGQiYxCk,6214
126
+ pylegend/core/tds/pandas_api/frames/pandas_api_applied_function_tds_frame.py,sha256=u2ONcOw9kP1JJxl2VZH_fKIaqdyY0n9nuIy_p-yQ93g,2967
127
+ pylegend/core/tds/pandas_api/frames/pandas_api_base_tds_frame.py,sha256=HBmAuI2VW6Fc67CzJ3vJV_OcEP0lYCDKJjVYB89ObBk,36833
128
+ pylegend/core/tds/pandas_api/frames/pandas_api_groupby_tds_frame.py,sha256=0K4Hb3FPs7ZzlZCWFG-65ZKkqEvHHj_FvE26g9rz7ps,13714
124
129
  pylegend/core/tds/pandas_api/frames/pandas_api_input_tds_frame.py,sha256=FgwIJCkawXuIjXYfVVrLa5RHfOO5xnSFI0pXti34L_8,2116
125
- pylegend/core/tds/pandas_api/frames/pandas_api_tds_frame.py,sha256=sIQeTdWJydIkxnoi96IlF8PYTkcCj4ddSwm_xaF401Q,4669
130
+ pylegend/core/tds/pandas_api/frames/pandas_api_tds_frame.py,sha256=QYRFRJ605cpb4en2r048EFyoPsl8ieymjChGQr87oz0,11833
126
131
  pylegend/core/tds/result_handler/__init__.py,sha256=8RE84xfkARwDbaQCvZulXcvDJlI-V5DuJp9RsdaGnqU,1141
127
132
  pylegend/core/tds/result_handler/result_handler.py,sha256=7tSzOswFCapAAdACphIR3Q0QISYyjo_On_vtsUIPAbA,1183
128
133
  pylegend/core/tds/result_handler/to_csv_file_result_handler.py,sha256=lm0UG87RNUXqQwOtSgxHbLKzAHebNuE3zIXM3ErtOxM,2270
@@ -138,6 +143,7 @@ pylegend/extensions/database/vendors/postgres/__init__.py,sha256=LXTDJSDmHQXtnMD
138
143
  pylegend/extensions/database/vendors/postgres/postgres_sql_to_string.py,sha256=QQ5lB-C8qNGS18UYHhG302t7DkVMjpfg4o8zmtW0ZDs,1341
139
144
  pylegend/extensions/tds/__init__.py,sha256=LXTDJSDmHQXtnMDZouhZp9IZQVpY6ONkINbUYjtnMkE,578
140
145
  pylegend/extensions/tds/abstract/__init__.py,sha256=LXTDJSDmHQXtnMDZouhZp9IZQVpY6ONkINbUYjtnMkE,578
146
+ pylegend/extensions/tds/abstract/csv_tds_frame.py,sha256=T11A6hh0e0X3l2Ty_pTMGc9dAi-NjYH1JrthUyVtrZw,2865
141
147
  pylegend/extensions/tds/abstract/legend_function_input_frame.py,sha256=-Od_c37Z_KfWxbOg4wnOXnR1u0Bl09PwuTlEcCgoe4c,3593
142
148
  pylegend/extensions/tds/abstract/legend_service_input_frame.py,sha256=NvjW7KZGFgHDvIJRUmzqGTiVWKmFFBqQUtff3GGwxmc,3617
143
149
  pylegend/extensions/tds/abstract/table_spec_input_frame.py,sha256=a10caG6_0VdTa9mOM013GA3LRbE-rp7NQobPDes3OaY,2498
@@ -148,23 +154,24 @@ pylegend/extensions/tds/legacy_api/frames/legacy_api_legend_service_input_frame.
148
154
  pylegend/extensions/tds/legacy_api/frames/legacy_api_table_spec_input_frame.py,sha256=QMNTG82yb0KbI2MgevigvLUSOu4jdkCRWpP6FTGHVEk,1465
149
155
  pylegend/extensions/tds/legendql_api/__init__.py,sha256=g6w4WCuQ2pqQG6yyn-QLLXED3ttOOB8YnXzVt3ijb28,578
150
156
  pylegend/extensions/tds/legendql_api/frames/__init__.py,sha256=g6w4WCuQ2pqQG6yyn-QLLXED3ttOOB8YnXzVt3ijb28,578
157
+ pylegend/extensions/tds/legendql_api/frames/legendql_api_csv_input_frame.py,sha256=t0qHptr4nEuV7XkPoK2nxKrJIByaUw-IYZKMWMZhjkw,1276
151
158
  pylegend/extensions/tds/legendql_api/frames/legendql_api_legend_function_input_frame.py,sha256=wT9bHzfSZ_nIllzx0SIEguUhrM6JdY31798gJAf8Gbc,1834
152
159
  pylegend/extensions/tds/legendql_api/frames/legendql_api_legend_service_input_frame.py,sha256=UNvZEn1xbXS1y_1Nv6ibTmMpjq6fbFB66U7Ff9Hve2w,1841
153
160
  pylegend/extensions/tds/legendql_api/frames/legendql_api_table_spec_input_frame.py,sha256=hJ4MEHOhSuc4i6iheKQtsbdEWxltD3-ilxpwbJYppPM,1481
154
161
  pylegend/extensions/tds/pandas_api/__init__.py,sha256=LXTDJSDmHQXtnMDZouhZp9IZQVpY6ONkINbUYjtnMkE,578
155
162
  pylegend/extensions/tds/pandas_api/frames/__init__.py,sha256=LXTDJSDmHQXtnMDZouhZp9IZQVpY6ONkINbUYjtnMkE,578
156
- pylegend/extensions/tds/pandas_api/frames/pandas_api_legend_function_input_frame.py,sha256=aJaNPJcfMdc8HTJKErah4BYSnHfmKMIMvoKtEeCx4zQ,1818
157
- pylegend/extensions/tds/pandas_api/frames/pandas_api_legend_service_input_frame.py,sha256=dOV6qXIrNkZ8gwmPt0ljr5CVViS4AH5Y4h3L-1WnNdM,1822
158
- pylegend/extensions/tds/pandas_api/frames/pandas_api_table_spec_input_frame.py,sha256=2pj-siOOvIFEqNOG-f4VUvhY9gBGUFFDZz7jZl7QpLg,1465
163
+ pylegend/extensions/tds/pandas_api/frames/pandas_api_legend_function_input_frame.py,sha256=qnvk2CmHOlFAFVHsjv_NaRw9svZy0ymsrrDs5VzgWt8,2044
164
+ pylegend/extensions/tds/pandas_api/frames/pandas_api_legend_service_input_frame.py,sha256=bYz6Mzw1DKA-fR69ExcIcgv59l3RBVJY6gPVOZgzv5k,2075
165
+ pylegend/extensions/tds/pandas_api/frames/pandas_api_table_spec_input_frame.py,sha256=wd50jVMuBfknbsM7ldCPadWWYT8cin5zYAlE1mtQkeA,1754
159
166
  pylegend/extensions/tds/result_handler/__init__.py,sha256=NIIUcl39wpSc51IhUUEKtEYlve89Xncq0YEG78Gren4,864
160
167
  pylegend/extensions/tds/result_handler/to_pandas_df_result_handler.py,sha256=tvVsxDOzHNTvzjdApIhmeefws5_u0N8Rqm7UvEtj70w,4958
161
168
  pylegend/legacy_api_tds_client.py,sha256=IXfo2pdBFV3M3S4RYKJcvudMc_OGdR0yvJhTV-ovI3s,2319
162
169
  pylegend/legendql_api_tds_client.py,sha256=oS6NET5pAA-hfVhVvwG6sRF7omyBs_gEYSAgA8Tky8U,2357
163
170
  pylegend/utils/__init__.py,sha256=LXTDJSDmHQXtnMDZouhZp9IZQVpY6ONkINbUYjtnMkE,578
164
171
  pylegend/utils/class_utils.py,sha256=t4PpF3jAXS_D6p9TqlSppryNYNOuy5C-kbKn2Kgb4QU,973
165
- pylegend-0.10.0.dist-info/METADATA,sha256=ooIKm2tPau4umdF7johlleadn28xEOYyDszx2yULIyI,4281
166
- pylegend-0.10.0.dist-info/WHEEL,sha256=zp0Cn7JsFoX2ATtOhtaFYIiE2rmFAD4OcMhtUki8W3U,88
167
- pylegend-0.10.0.dist-info/licenses/LICENSE,sha256=AGR96_qQPZO66Gjqq4G6r_g670K35VtW-IobTAkmZJM,11343
168
- pylegend-0.10.0.dist-info/licenses/LICENSE.spdx,sha256=i7TsBclLotUvMjx9vZ_6S8Pp0r4uknWGw1RwiKBBvQ4,207
169
- pylegend-0.10.0.dist-info/licenses/NOTICE,sha256=2Lr4FqiscyRI7-vyn7c2z-zqUw2p6x7upJyBvFKkHjk,167
170
- pylegend-0.10.0.dist-info/RECORD,,
172
+ pylegend-0.12.0.dist-info/METADATA,sha256=YEOJdVd5mlhj77NLk1oUZWflNte8um_E9OvDE9wYbTc,4281
173
+ pylegend-0.12.0.dist-info/WHEEL,sha256=zp0Cn7JsFoX2ATtOhtaFYIiE2rmFAD4OcMhtUki8W3U,88
174
+ pylegend-0.12.0.dist-info/licenses/LICENSE,sha256=AGR96_qQPZO66Gjqq4G6r_g670K35VtW-IobTAkmZJM,11343
175
+ pylegend-0.12.0.dist-info/licenses/LICENSE.spdx,sha256=i7TsBclLotUvMjx9vZ_6S8Pp0r4uknWGw1RwiKBBvQ4,207
176
+ pylegend-0.12.0.dist-info/licenses/NOTICE,sha256=2Lr4FqiscyRI7-vyn7c2z-zqUw2p6x7upJyBvFKkHjk,167
177
+ pylegend-0.12.0.dist-info/RECORD,,