pylegend 0.3.0__py3-none-any.whl → 0.5.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 (124) hide show
  1. pylegend/__init__.py +16 -6
  2. pylegend/core/{databse → database}/sql_to_string/__init__.py +3 -3
  3. pylegend/core/{databse → database}/sql_to_string/db_extension.py +14 -5
  4. pylegend/core/{databse → database}/sql_to_string/generator.py +2 -2
  5. pylegend/core/language/__init__.py +12 -10
  6. pylegend/core/language/legacy_api/__init__.py +13 -0
  7. pylegend/core/language/{aggregate_specification.py → legacy_api/aggregate_specification.py} +10 -10
  8. pylegend/core/language/legacy_api/legacy_api_tds_row.py +32 -0
  9. pylegend/core/language/legendql_api/__init__.py +13 -0
  10. pylegend/core/language/legendql_api/legendql_api_custom_expressions.py +541 -0
  11. pylegend/core/language/legendql_api/legendql_api_tds_row.py +292 -0
  12. pylegend/core/language/shared/__init__.py +13 -0
  13. pylegend/core/language/{column_expressions.py → shared/column_expressions.py} +32 -31
  14. pylegend/core/language/{expression.py → shared/expression.py} +8 -0
  15. pylegend/core/language/{functions.py → shared/functions.py} +12 -3
  16. pylegend/core/language/shared/helpers.py +75 -0
  17. pylegend/core/language/{literal_expressions.py → shared/literal_expressions.py} +39 -1
  18. pylegend/core/language/{operations → shared/operations}/binary_expression.py +34 -2
  19. pylegend/core/language/{operations → shared/operations}/boolean_operation_expressions.py +34 -6
  20. pylegend/core/language/{operations → shared/operations}/collection_operation_expressions.py +146 -26
  21. pylegend/core/language/{operations → shared/operations}/date_operation_expressions.py +288 -24
  22. pylegend/core/language/{operations → shared/operations}/float_operation_expressions.py +53 -8
  23. pylegend/core/language/{operations → shared/operations}/integer_operation_expressions.py +62 -9
  24. pylegend/core/language/{operations → shared/operations}/nullary_expression.py +9 -2
  25. pylegend/core/language/{operations → shared/operations}/number_operation_expressions.py +211 -30
  26. pylegend/core/language/shared/operations/primitive_operation_expressions.py +155 -0
  27. pylegend/core/language/{operations → shared/operations}/string_operation_expressions.py +194 -21
  28. pylegend/core/language/{operations → shared/operations}/unary_expression.py +10 -2
  29. pylegend/core/language/{primitive_collection.py → shared/primitive_collection.py} +2 -2
  30. pylegend/core/language/{primitives → shared/primitives}/__init__.py +9 -9
  31. pylegend/core/language/{primitives → shared/primitives}/boolean.py +9 -5
  32. pylegend/core/language/{primitives → shared/primitives}/date.py +60 -15
  33. pylegend/core/language/{primitives → shared/primitives}/datetime.py +4 -5
  34. pylegend/core/language/{primitives → shared/primitives}/float.py +6 -6
  35. pylegend/core/language/{primitives → shared/primitives}/integer.py +6 -6
  36. pylegend/core/language/{primitives → shared/primitives}/number.py +16 -13
  37. pylegend/core/language/{primitives → shared/primitives}/primitive.py +41 -5
  38. pylegend/core/language/{primitives → shared/primitives}/strictdate.py +4 -5
  39. pylegend/core/language/{primitives → shared/primitives}/string.py +18 -19
  40. pylegend/core/language/{tds_row.py → shared/tds_row.py} +46 -16
  41. pylegend/core/request/__init__.py +7 -1
  42. pylegend/core/request/auth.py +55 -1
  43. pylegend/core/request/legend_client.py +32 -0
  44. pylegend/core/sql/metamodel_extension.py +28 -0
  45. pylegend/core/tds/abstract/__init__.py +13 -0
  46. pylegend/core/tds/abstract/frames/__init__.py +13 -0
  47. pylegend/core/tds/{legend_api/frames/legend_api_applied_function_tds_frame.py → abstract/frames/applied_function_tds_frame.py} +19 -13
  48. pylegend/core/tds/abstract/frames/base_tds_frame.py +125 -0
  49. pylegend/core/tds/{legend_api/frames/legend_api_input_tds_frame.py → abstract/frames/input_tds_frame.py} +9 -12
  50. pylegend/core/tds/{legend_api/frames/functions → abstract}/function_helpers.py +1 -1
  51. pylegend/core/tds/{legend_api/frames/functions/concatenate_function.py → legacy_api/frames/functions/legacy_api_concatenate_function.py} +25 -13
  52. pylegend/core/tds/{legend_api/frames/functions/distinct_function.py → legacy_api/frames/functions/legacy_api_distinct_function.py} +13 -8
  53. pylegend/core/tds/{legend_api/frames/functions/drop_function.py → legacy_api/frames/functions/legacy_api_drop_function.py} +13 -8
  54. pylegend/core/tds/{legend_api/frames/functions/extend_function.py → legacy_api/frames/functions/legacy_api_extend_function.py} +36 -16
  55. pylegend/core/tds/{legend_api/frames/functions/filter_function.py → legacy_api/frames/functions/legacy_api_filter_function.py} +25 -13
  56. pylegend/core/tds/{legend_api/frames/functions/group_by_function.py → legacy_api/frames/functions/legacy_api_group_by_function.py} +44 -17
  57. pylegend/core/tds/{legend_api/frames/functions/head_function.py → legacy_api/frames/functions/legacy_api_head_function.py} +13 -8
  58. pylegend/core/tds/{legend_api/frames/functions/join_by_columns_function.py → legacy_api/frames/functions/legacy_api_join_by_columns_function.py} +40 -13
  59. pylegend/core/tds/{legend_api/frames/functions/join_function.py → legacy_api/frames/functions/legacy_api_join_function.py} +44 -20
  60. pylegend/core/tds/{legend_api/frames/functions/rename_columns_function.py → legacy_api/frames/functions/legacy_api_rename_columns_function.py} +20 -8
  61. pylegend/core/tds/{legend_api/frames/functions/restrict_function.py → legacy_api/frames/functions/legacy_api_restrict_function.py} +17 -8
  62. pylegend/core/tds/{legend_api/frames/functions/slice_function.py → legacy_api/frames/functions/legacy_api_slice_function.py} +13 -8
  63. pylegend/core/tds/{legend_api/frames/functions/sort_function.py → legacy_api/frames/functions/legacy_api_sort_function.py} +19 -8
  64. pylegend/core/tds/legacy_api/frames/legacy_api_applied_function_tds_frame.py +37 -0
  65. pylegend/core/tds/legacy_api/frames/legacy_api_base_tds_frame.py +204 -0
  66. pylegend/core/tds/legacy_api/frames/legacy_api_input_tds_frame.py +51 -0
  67. pylegend/core/tds/{legend_api/frames/legend_api_tds_frame.py → legacy_api/frames/legacy_api_tds_frame.py} +28 -28
  68. pylegend/core/tds/legendql_api/__init__.py +13 -0
  69. pylegend/core/tds/legendql_api/frames/__init__.py +13 -0
  70. pylegend/core/tds/legendql_api/frames/functions/__init__.py +13 -0
  71. pylegend/core/tds/legendql_api/frames/functions/legendql_api_asofjoin_function.py +156 -0
  72. pylegend/core/tds/legendql_api/frames/functions/legendql_api_concatenate_function.py +139 -0
  73. pylegend/core/tds/legendql_api/frames/functions/legendql_api_distinct_function.py +69 -0
  74. pylegend/core/tds/legendql_api/frames/functions/legendql_api_drop_function.py +74 -0
  75. pylegend/core/tds/legendql_api/frames/functions/legendql_api_extend_function.py +256 -0
  76. pylegend/core/tds/legendql_api/frames/functions/legendql_api_filter_function.py +121 -0
  77. pylegend/core/tds/legendql_api/frames/functions/legendql_api_function_helpers.py +137 -0
  78. pylegend/core/tds/legendql_api/frames/functions/legendql_api_groupby_function.py +256 -0
  79. pylegend/core/tds/legendql_api/frames/functions/legendql_api_head_function.py +74 -0
  80. pylegend/core/tds/legendql_api/frames/functions/legendql_api_join_function.py +214 -0
  81. pylegend/core/tds/legendql_api/frames/functions/legendql_api_project_function.py +169 -0
  82. pylegend/core/tds/legendql_api/frames/functions/legendql_api_rename_function.py +189 -0
  83. pylegend/core/tds/legendql_api/frames/functions/legendql_api_select_function.py +131 -0
  84. pylegend/core/tds/legendql_api/frames/functions/legendql_api_slice_function.py +82 -0
  85. pylegend/core/tds/legendql_api/frames/functions/legendql_api_sort_function.py +93 -0
  86. pylegend/core/tds/legendql_api/frames/functions/legendql_api_window_extend_function.py +283 -0
  87. pylegend/core/tds/legendql_api/frames/legendql_api_applied_function_tds_frame.py +37 -0
  88. pylegend/core/tds/legendql_api/frames/legendql_api_base_tds_frame.py +419 -0
  89. pylegend/core/tds/legendql_api/frames/legendql_api_input_tds_frame.py +50 -0
  90. pylegend/core/tds/legendql_api/frames/legendql_api_tds_frame.py +327 -0
  91. pylegend/core/tds/pandas_api/frames/functions/assign_function.py +6 -6
  92. pylegend/core/tds/pandas_api/frames/pandas_api_applied_function_tds_frame.py +4 -0
  93. pylegend/core/tds/pandas_api/frames/pandas_api_base_tds_frame.py +11 -3
  94. pylegend/core/tds/pandas_api/frames/pandas_api_tds_frame.py +2 -2
  95. pylegend/core/tds/tds_frame.py +32 -2
  96. pylegend/extensions/database/vendors/postgres/postgres_sql_to_string.py +1 -1
  97. pylegend/extensions/tds/abstract/legend_function_input_frame.py +4 -0
  98. pylegend/extensions/tds/abstract/legend_service_input_frame.py +4 -0
  99. pylegend/extensions/tds/abstract/table_spec_input_frame.py +4 -0
  100. pylegend/extensions/tds/{legend_api/frames/legend_api_legend_function_input_frame.py → legacy_api/frames/legacy_api_legend_function_input_frame.py} +5 -5
  101. pylegend/extensions/tds/{legend_api/frames/legend_api_legend_service_input_frame.py → legacy_api/frames/legacy_api_legend_service_input_frame.py} +6 -6
  102. pylegend/extensions/tds/{legend_api/frames/legend_api_table_spec_input_frame.py → legacy_api/frames/legacy_api_table_spec_input_frame.py} +5 -5
  103. pylegend/extensions/tds/legendql_api/__init__.py +13 -0
  104. pylegend/extensions/tds/legendql_api/frames/__init__.py +13 -0
  105. pylegend/extensions/tds/legendql_api/frames/legendql_api_legend_service_input_frame.py +46 -0
  106. pylegend/extensions/tds/legendql_api/frames/legendql_api_table_spec_input_frame.py +36 -0
  107. pylegend/{legend_api_tds_client.py → legacy_api_tds_client.py} +15 -15
  108. {pylegend-0.3.0.dist-info → pylegend-0.5.0.dist-info}/METADATA +7 -8
  109. pylegend-0.5.0.dist-info/NOTICE +5 -0
  110. pylegend-0.5.0.dist-info/RECORD +155 -0
  111. {pylegend-0.3.0.dist-info → pylegend-0.5.0.dist-info}/WHEEL +1 -1
  112. pylegend/core/language/operations/primitive_operation_expressions.py +0 -56
  113. pylegend/core/tds/legend_api/frames/legend_api_base_tds_frame.py +0 -294
  114. pylegend-0.3.0.dist-info/RECORD +0 -115
  115. /pylegend/core/{databse → database}/__init__.py +0 -0
  116. /pylegend/core/{databse → database}/sql_to_string/config.py +0 -0
  117. /pylegend/core/language/{operations → shared/operations}/__init__.py +0 -0
  118. /pylegend/core/tds/{legend_api → legacy_api}/__init__.py +0 -0
  119. /pylegend/core/tds/{legend_api → legacy_api}/frames/__init__.py +0 -0
  120. /pylegend/core/tds/{legend_api → legacy_api}/frames/functions/__init__.py +0 -0
  121. /pylegend/extensions/tds/{legend_api → legacy_api}/__init__.py +0 -0
  122. /pylegend/extensions/tds/{legend_api → legacy_api}/frames/__init__.py +0 -0
  123. {pylegend-0.3.0.dist-info → pylegend-0.5.0.dist-info}/LICENSE +0 -0
  124. {pylegend-0.3.0.dist-info → pylegend-0.5.0.dist-info}/LICENSE.spdx +0 -0
@@ -0,0 +1,13 @@
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.
@@ -0,0 +1,13 @@
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.
@@ -0,0 +1,46 @@
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
+
15
+ from pylegend._typing import (
16
+ PyLegendSequence
17
+ )
18
+ from pylegend.core.tds.legendql_api.frames.legendql_api_input_tds_frame import LegendQLApiExecutableInputTdsFrame
19
+ from pylegend.core.project_cooridnates import ProjectCoordinates
20
+ from pylegend.core.request.legend_client import LegendClient
21
+ from pylegend.extensions.tds.abstract.legend_service_input_frame import LegendServiceInputFrameAbstract
22
+
23
+
24
+ __all__: PyLegendSequence[str] = [
25
+ "LegendQLApiLegendServiceInputFrame"
26
+ ]
27
+
28
+
29
+ class LegendQLApiLegendServiceInputFrame(LegendServiceInputFrameAbstract, LegendQLApiExecutableInputTdsFrame):
30
+
31
+ def __init__(
32
+ self,
33
+ pattern: str,
34
+ project_coordinates: ProjectCoordinates,
35
+ legend_client: LegendClient,
36
+ ) -> None:
37
+ LegendServiceInputFrameAbstract.__init__(self, pattern=pattern, project_coordinates=project_coordinates)
38
+ LegendQLApiExecutableInputTdsFrame.__init__(
39
+ self,
40
+ legend_client=legend_client,
41
+ columns=legend_client.get_sql_string_schema(self.to_sql_query())
42
+ )
43
+ LegendQLApiLegendServiceInputFrame.set_initialized(self, True)
44
+
45
+ def __str__(self) -> str:
46
+ return f"LegendQLApiLegendServiceInputFrame({'.'.join(self.get_pattern())})"
@@ -0,0 +1,36 @@
1
+ # Copyright 2023 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
+
15
+ from pylegend._typing import (
16
+ PyLegendList,
17
+ PyLegendSequence
18
+ )
19
+ from pylegend.core.tds.legendql_api.frames.legendql_api_input_tds_frame import LegendQLApiNonExecutableInputTdsFrame
20
+ from pylegend.core.tds.tds_column import TdsColumn
21
+ from pylegend.extensions.tds.abstract.table_spec_input_frame import TableSpecInputFrameAbstract
22
+
23
+
24
+ __all__: PyLegendSequence[str] = [
25
+ "LegendQLApiTableSpecInputFrame"
26
+ ]
27
+
28
+
29
+ class LegendQLApiTableSpecInputFrame(TableSpecInputFrameAbstract, LegendQLApiNonExecutableInputTdsFrame):
30
+
31
+ def __init__(self, table_name_parts: PyLegendList[str], columns: PyLegendSequence[TdsColumn]) -> None:
32
+ TableSpecInputFrameAbstract.__init__(self, table_name_parts=table_name_parts)
33
+ LegendQLApiNonExecutableInputTdsFrame.__init__(self, columns=columns)
34
+
35
+ def __str__(self) -> str:
36
+ return f"LegendQLApiTableSpecInputFrame({'.'.join(self.table.parts)})"
@@ -18,16 +18,16 @@ from pylegend._typing import (
18
18
  )
19
19
  from pylegend.core.request import LegendClient
20
20
  from pylegend.core.project_cooridnates import ProjectCoordinates
21
- from pylegend.core.tds.legend_api.frames.legend_api_tds_frame import LegendApiTdsFrame
21
+ from pylegend.core.tds.legacy_api.frames.legacy_api_tds_frame import LegacyApiTdsFrame
22
22
 
23
23
 
24
24
  __all__: PyLegendSequence[str] = [
25
- "LegendApiTdsClient",
26
- "legend_api_tds_client",
25
+ "LegacyApiTdsClient",
26
+ "legacy_api_tds_client",
27
27
  ]
28
28
 
29
29
 
30
- class LegendApiTdsClient:
30
+ class LegacyApiTdsClient:
31
31
  __legend_client: LegendClient
32
32
 
33
33
  def __init__(
@@ -40,11 +40,11 @@ class LegendApiTdsClient:
40
40
  self,
41
41
  service_pattern: str,
42
42
  project_coordinates: ProjectCoordinates
43
- ) -> LegendApiTdsFrame:
44
- from pylegend.extensions.tds.legend_api.frames.legend_api_legend_service_input_frame import (
45
- LegendApiLegendServiceInputFrame
43
+ ) -> LegacyApiTdsFrame:
44
+ from pylegend.extensions.tds.legacy_api.frames.legacy_api_legend_service_input_frame import (
45
+ LegacyApiLegendServiceInputFrame
46
46
  )
47
- return LegendApiLegendServiceInputFrame(
47
+ return LegacyApiLegendServiceInputFrame(
48
48
  pattern=service_pattern,
49
49
  project_coordinates=project_coordinates,
50
50
  legend_client=self.__legend_client
@@ -54,20 +54,20 @@ class LegendApiTdsClient:
54
54
  self,
55
55
  function_path: str,
56
56
  project_coordinates: ProjectCoordinates
57
- ) -> LegendApiTdsFrame:
58
- from pylegend.extensions.tds.legend_api.frames.legend_api_legend_function_input_frame import (
59
- LegendApiLegendFunctionInputFrame
57
+ ) -> LegacyApiTdsFrame:
58
+ from pylegend.extensions.tds.legacy_api.frames.legacy_api_legend_function_input_frame import (
59
+ LegacyApiLegendFunctionInputFrame
60
60
  )
61
- return LegendApiLegendFunctionInputFrame(
61
+ return LegacyApiLegendFunctionInputFrame(
62
62
  path=function_path,
63
63
  project_coordinates=project_coordinates,
64
64
  legend_client=self.__legend_client
65
65
  )
66
66
 
67
67
 
68
- def legend_api_tds_client(
68
+ def legacy_api_tds_client(
69
69
  legend_client: LegendClient
70
- ) -> LegendApiTdsClient:
71
- return LegendApiTdsClient(
70
+ ) -> LegacyApiTdsClient:
71
+ return LegacyApiTdsClient(
72
72
  legend_client=legend_client
73
73
  )
@@ -1,19 +1,18 @@
1
- Metadata-Version: 2.1
1
+ Metadata-Version: 2.3
2
2
  Name: pylegend
3
- Version: 0.3.0
3
+ Version: 0.5.0
4
4
  Summary: Python language binding for Legend data management platform
5
- Home-page: https://github.com/finos/pylegend
6
5
  License: Apache-2.0
7
6
  Author: PyLegend Maintainers
8
7
  Author-email: legend@finos.org
9
- Requires-Python: >=3.8,<3.13
8
+ Requires-Python: >=3.9,<3.14
10
9
  Classifier: License :: OSI Approved :: Apache Software License
11
10
  Classifier: Programming Language :: Python :: 3
12
- Classifier: Programming Language :: Python :: 3.8
13
11
  Classifier: Programming Language :: Python :: 3.9
14
12
  Classifier: Programming Language :: Python :: 3.10
15
13
  Classifier: Programming Language :: Python :: 3.11
16
14
  Classifier: Programming Language :: Python :: 3.12
15
+ Classifier: Programming Language :: Python :: 3.13
17
16
  Requires-Dist: ijson (>=3.1.4)
18
17
  Requires-Dist: numpy (>=1.20.0) ; python_version < "3.12"
19
18
  Requires-Dist: numpy (>=1.26.0) ; python_version >= "3.12"
@@ -25,8 +24,8 @@ Description-Content-Type: text/markdown
25
24
 
26
25
  [![FINOS - Incubating](https://cdn.jsdelivr.net/gh/finos/contrib-toolbox@master/images/badge-incubating.svg)](https://community.finos.org/docs/governance/Software-Projects/stages/incubating)
27
26
  [![pypi](https://img.shields.io/pypi/v/pylegend.svg)](https://pypi.org/project/pylegend/)
28
- [![python](https://img.shields.io/badge/python-3.8%20%7C%203.9%20%7C%203.10%20%7C%203.11%20%7C%203.12-blue)](https://www.python.org/downloads)
29
- ![CI Testing](https://img.shields.io/badge/CI%20Testing-Linux%20%7C%20%20macOS%20%7C%20Windows%20-orange)
27
+ [![python](https://img.shields.io/badge/python-3.9%20%7C%203.10%20%7C%203.11%20%7C%203.12%20%7C%203.13-blue)](https://www.python.org/downloads)
28
+ ![CI Testing](https://img.shields.io/badge/CI%20Testing-Linux%20%7C%20%20Windows%20-orange)
30
29
  [![License](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](https://opensource.org/licenses/Apache-2.0)
31
30
  ![Build](https://github.com/finos/pylegend/workflows/Build%20CI/badge.svg)
32
31
  ![CVE Scan](https://github.com/finos/pylegend/workflows/CVE%20Scan/badge.svg)
@@ -41,7 +40,7 @@ PyLegend is part of [Legend](https://github.com/finos/legend) data management pl
41
40
 
42
41
  ## Build from source
43
42
 
44
- PyLegend requires Python 3.8 or higher. We use [Poetry](https://python-poetry.org/) tool for dependency management and packaging. To install poetry, follow instructions [here](https://python-poetry.org/docs/#installation).
43
+ PyLegend requires Python 3.9 or higher. We use [Poetry](https://python-poetry.org/) tool for dependency management and packaging. To install poetry, follow instructions [here](https://python-poetry.org/docs/#installation).
45
44
 
46
45
  Run `poetry install` to install dependencies. If you intend to contribute, install dev dependencies using the command `poetry install --with dev`.
47
46
 
@@ -0,0 +1,5 @@
1
+ pylegend - FINOS
2
+ Copyright 2023 Goldman Sachs - info@gs.com
3
+
4
+ This product includes software developed at the Fintech Open Source Foundation (https://www.finos.org/).
5
+
@@ -0,0 +1,155 @@
1
+ pylegend/__init__.py,sha256=gYOX0h2mTsQ_miZfuHosVzYR9O_IZjTP1FAum3naIW4,1668
2
+ pylegend/_typing.py,sha256=3P2K9xyyODrYRx3iDI8jtF1vGGqPbYiKqLEN9bBCdi0,1479
3
+ pylegend/core/__init__.py,sha256=LXTDJSDmHQXtnMDZouhZp9IZQVpY6ONkINbUYjtnMkE,578
4
+ pylegend/core/database/__init__.py,sha256=LXTDJSDmHQXtnMDZouhZp9IZQVpY6ONkINbUYjtnMkE,578
5
+ pylegend/core/database/sql_to_string/__init__.py,sha256=_qWOoReR9ygprnShQRBtp4wFmqtiPEa88jAhOZpYY2c,1028
6
+ pylegend/core/database/sql_to_string/config.py,sha256=xrwPFcuZyzZcKNGeOQTnFW2y7CqhT6laSAazVl93JLU,1384
7
+ pylegend/core/database/sql_to_string/db_extension.py,sha256=dCSz9Sc4iXWsn3u9gaMAzyZsYa1ytQ8TeeAEHBWeGOE,52986
8
+ pylegend/core/database/sql_to_string/generator.py,sha256=xk3siXWyR7_ahn6pwsUMi80V_7NV2tYa7x5dosiNJR4,2607
9
+ pylegend/core/language/__init__.py,sha256=sw70dEA5RT660Qmpjxdi1XKEWDwshuedomqHhyIJpvI,4331
10
+ pylegend/core/language/legacy_api/__init__.py,sha256=g6w4WCuQ2pqQG6yyn-QLLXED3ttOOB8YnXzVt3ijb28,578
11
+ pylegend/core/language/legacy_api/aggregate_specification.py,sha256=XT9kmlT3DqrJRUbQSju69ZW-23mORnJHE_Aplw_YpNw,2207
12
+ pylegend/core/language/legacy_api/legacy_api_tds_row.py,sha256=B3L55ylNVnHoukuETEyU7zPS5E_G9H8hSesGN48zgkM,1149
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
15
+ pylegend/core/language/legendql_api/legendql_api_tds_row.py,sha256=5hejBF2uYjXuaXLA8jHt6e3mj5JEQRZN_rwaPMT8JFI,10304
16
+ pylegend/core/language/shared/__init__.py,sha256=g6w4WCuQ2pqQG6yyn-QLLXED3ttOOB8YnXzVt3ijb28,578
17
+ pylegend/core/language/shared/column_expressions.py,sha256=qWHVvwPGwKroQX94a_ovUrxCPnosVMX3tBWlTj7uJ6k,4333
18
+ pylegend/core/language/shared/expression.py,sha256=-XDJ3JfkyQ2FunACUEGI4CeTgqCvBexp55_YCaZUD1k,2446
19
+ pylegend/core/language/shared/functions.py,sha256=G94EiFdZV4jorJTX23ErxKP1GusKl61G3qQN1e26Zws,1495
20
+ pylegend/core/language/shared/helpers.py,sha256=PKse5aunaf3OMeXG0kt39XljAtN60pDDDFZ-d43-UU0,2777
21
+ pylegend/core/language/shared/literal_expressions.py,sha256=bU9pO-H9DxNyDlWVMiJC__YPzHQLo_v9aedllozBzVo,6185
22
+ pylegend/core/language/shared/operations/__init__.py,sha256=LXTDJSDmHQXtnMDZouhZp9IZQVpY6ONkINbUYjtnMkE,578
23
+ pylegend/core/language/shared/operations/binary_expression.py,sha256=zQuwPHUQzrhqOwSpajB2xososioCPVZYi-67DSaYBvg,4020
24
+ pylegend/core/language/shared/operations/boolean_operation_expressions.py,sha256=GQZp4xQttW-ayntXvyvnxhRIdcnuCFyUK7zsf8c5wJQ,4618
25
+ pylegend/core/language/shared/operations/collection_operation_expressions.py,sha256=PuyICSjPadQNWkp8aZnCZblRnG_uh7lPEXMDN9nwKRI,22412
26
+ pylegend/core/language/shared/operations/date_operation_expressions.py,sha256=q20u_NfcJFiE7GHhp0uxJzIqfwynCvVkJ5taPc45tKM,26503
27
+ pylegend/core/language/shared/operations/float_operation_expressions.py,sha256=XXZRgSUFLW0GLn6fMynQvFaHTxNJ5fln1UqpdhhDM18,6969
28
+ pylegend/core/language/shared/operations/integer_operation_expressions.py,sha256=UfxJJW3QOh-U1skZwXRIM2k2nvQTwjnT3FMrrI_a2qU,8302
29
+ pylegend/core/language/shared/operations/nullary_expression.py,sha256=svlZ5ejYqz843v3xkcImizcKia6RiWXXD_hA_QFT2wg,2083
30
+ pylegend/core/language/shared/operations/number_operation_expressions.py,sha256=BIayvrXqPjD5OQr7ttO0JgkV9zos6cCJ2OUZ5Vhq8SM,29700
31
+ pylegend/core/language/shared/operations/primitive_operation_expressions.py,sha256=4emM6WwCQtcgUucHW5xRR2r9pQMrDT5u7bz1U_AGqOs,5409
32
+ pylegend/core/language/shared/operations/string_operation_expressions.py,sha256=bkoV7mxLgZnrbKElXv-mfixqlktlp07CknhNK5R5zg8,20377
33
+ pylegend/core/language/shared/operations/unary_expression.py,sha256=tJCHacGspj-dkr4fepB8i9MntFMWqFVLBGORvhcly7U,2400
34
+ pylegend/core/language/shared/primitive_collection.py,sha256=ShUtgdZkZ8cKdQJLP5iU_zYDK7piMzWlimvjhnyfnGk,13098
35
+ pylegend/core/language/shared/primitives/__init__.py,sha256=9p7VVRhzeRQwTkxXQBBZuJY6P9V-yX0Q_elviaYIgPg,1649
36
+ pylegend/core/language/shared/primitives/boolean.py,sha256=x0JgS8E9AXv0fkExuCCyD9Paim2xwfU9cn-1Jh3bqtI,4058
37
+ pylegend/core/language/shared/primitives/date.py,sha256=CFiz6LquJIUHBIdHGZ5j16wYcw-Bo4nYHeM7Hne1EWI,9062
38
+ pylegend/core/language/shared/primitives/datetime.py,sha256=F8m-pLm_VcefI-_iF8CCjbi-AZKzrXxqyuXZtxJB_AU,2495
39
+ pylegend/core/language/shared/primitives/float.py,sha256=LpD3nWogv8aT6RECgI7rVmsRPY4ji96JCXdTEAr2EAg,6146
40
+ pylegend/core/language/shared/primitives/integer.py,sha256=dXccyccyR9UWlqTlTobTdl4PrSy7W9NPDnJKCVewJ9w,7334
41
+ pylegend/core/language/shared/primitives/number.py,sha256=bYqBFtsauUGijP1kqRuSYDSTIVokU0b-paFH3uZGQZU,13699
42
+ pylegend/core/language/shared/primitives/primitive.py,sha256=RUirddeU8kMV-wqeo2Kju7eyisY6epddIUWxZXKuKmg,4486
43
+ pylegend/core/language/shared/primitives/strictdate.py,sha256=FidyUqdWTaOrk6tomYHQvhfnGW--zVTt9ldIgGxJk5M,2503
44
+ pylegend/core/language/shared/primitives/string.py,sha256=qjiKaR5wioL8tz55BnTENtKlOGP4d1G0cVP-WhYMNrs,8282
45
+ pylegend/core/language/shared/tds_row.py,sha256=23sxVfa74T-TlfAs1CgvwjhV26b-FyZ72yGy9BqP7CE,9027
46
+ pylegend/core/project_cooridnates.py,sha256=t1G6gJzcRQRbCjGpCOk0vBiqd0F8Y_e15Nu4NuzYd6I,3751
47
+ pylegend/core/request/__init__.py,sha256=6jQTL8B8Sd1rsCXHr4dZ398OrvROoGI6Y_aAI_FOfiI,1082
48
+ pylegend/core/request/auth.py,sha256=TVoH6HNJTzRphW2zk5P_TE-QEAtpTMSEQV2U99KgLnU,4586
49
+ pylegend/core/request/legend_client.py,sha256=PLCCiazvFG2ujcHN-vGDQxpEl5QvFHBNNcM-lsSXOXI,3767
50
+ pylegend/core/request/response_reader.py,sha256=TNMi2GKk4lkmf7VMeY5n2AwhxxuWbX4M8pgC2_pXFbE,1691
51
+ pylegend/core/request/service_client.py,sha256=oNvMR6qNl5UcxpcAjIb4CCpd0MB3Z-Y5OJSyFPGeerM,3377
52
+ pylegend/core/sql/__init__.py,sha256=LXTDJSDmHQXtnMDZouhZp9IZQVpY6ONkINbUYjtnMkE,578
53
+ pylegend/core/sql/metamodel.py,sha256=B7aqblDyyiTsqWZUW2Is9_2FHTsYTkvhJ1FVxXxoSF8,20134
54
+ pylegend/core/sql/metamodel_extension.py,sha256=B53DUH4nXPWqMmbcfmLAHvJHX370J0Ml_eYdJzASbJE,15905
55
+ pylegend/core/tds/__init__.py,sha256=LXTDJSDmHQXtnMDZouhZp9IZQVpY6ONkINbUYjtnMkE,578
56
+ pylegend/core/tds/abstract/__init__.py,sha256=g6w4WCuQ2pqQG6yyn-QLLXED3ttOOB8YnXzVt3ijb28,578
57
+ pylegend/core/tds/abstract/frames/__init__.py,sha256=g6w4WCuQ2pqQG6yyn-QLLXED3ttOOB8YnXzVt3ijb28,578
58
+ pylegend/core/tds/abstract/frames/applied_function_tds_frame.py,sha256=C_Kh8N2kNRuzloPwpAKYvhKx_IEKfzNuVS4m8EJicvg,2760
59
+ pylegend/core/tds/abstract/frames/base_tds_frame.py,sha256=EpYBt5B0rw8TO9JByYMypv9aa5-oYMjSKCh4i8EwVTU,4767
60
+ pylegend/core/tds/abstract/frames/input_tds_frame.py,sha256=gskDqtBMn-UoLpK3hmqg8wCrePDUb8hjre3snRFZUys,1785
61
+ pylegend/core/tds/abstract/function_helpers.py,sha256=YGtXpelbCwTvt9mOlKQynJEmQ7FCrf_FPpe3BC3gnvY,2046
62
+ pylegend/core/tds/legacy_api/__init__.py,sha256=LXTDJSDmHQXtnMDZouhZp9IZQVpY6ONkINbUYjtnMkE,578
63
+ pylegend/core/tds/legacy_api/frames/__init__.py,sha256=LXTDJSDmHQXtnMDZouhZp9IZQVpY6ONkINbUYjtnMkE,578
64
+ pylegend/core/tds/legacy_api/frames/functions/__init__.py,sha256=LXTDJSDmHQXtnMDZouhZp9IZQVpY6ONkINbUYjtnMkE,578
65
+ pylegend/core/tds/legacy_api/frames/functions/legacy_api_concatenate_function.py,sha256=0DM-vFZz1MsD8ZofYk6egPiSHk9kCeaKtTkfNLD4XXg,5389
66
+ pylegend/core/tds/legacy_api/frames/functions/legacy_api_distinct_function.py,sha256=VvXQPjnAjyRmlyoA7F3uOlLQodxC8rsExw40adwFoB0,2509
67
+ pylegend/core/tds/legacy_api/frames/functions/legacy_api_drop_function.py,sha256=GswtQka0n_HOesI6jfhcr1OClmI8gVBFgRfBewN2LWc,2744
68
+ pylegend/core/tds/legacy_api/frames/functions/legacy_api_extend_function.py,sha256=_n2H8DB9yX4Uoz7g3FUREobY6hn4QItvjAqTTn5bWNU,7466
69
+ pylegend/core/tds/legacy_api/frames/functions/legacy_api_filter_function.py,sha256=zK_cnW2M3plBhsF8TRD9Zyvrn4kynqr8BEkbJh7w2ps,4891
70
+ pylegend/core/tds/legacy_api/frames/functions/legacy_api_group_by_function.py,sha256=HYoL28uLfikYk4XCl4bHBgfjMdEHjstcT7PQADJx5Oc,10655
71
+ pylegend/core/tds/legacy_api/frames/functions/legacy_api_head_function.py,sha256=_--251uGZGtNGzP0fQKx1rMDKsNvGuH9GjZz0FuIAfs,2721
72
+ pylegend/core/tds/legacy_api/frames/functions/legacy_api_join_by_columns_function.py,sha256=FZtsl3n6A2fSOHCDay868CYr9spl7jHp4mMFnnAhbns,11538
73
+ pylegend/core/tds/legacy_api/frames/functions/legacy_api_join_function.py,sha256=4LzW24c4Hn2R4A6fjRvxBBdd3gf-N1yWVgXiVSwarz4,9197
74
+ pylegend/core/tds/legacy_api/frames/functions/legacy_api_rename_columns_function.py,sha256=UaiiE7PO-wkxVC4V_l8HZ0Cj26EKsAlc9RGQA-iEM4U,5670
75
+ pylegend/core/tds/legacy_api/frames/functions/legacy_api_restrict_function.py,sha256=TMKmDnTsjWbIq3eOFU8BDhXVABYpIXPaJhManG_4SvA,4913
76
+ pylegend/core/tds/legacy_api/frames/functions/legacy_api_slice_function.py,sha256=fxz_m94OZry4kXxwyMG7suJ-5iTUPC9_SLSEBHR39rA,3223
77
+ pylegend/core/tds/legacy_api/frames/functions/legacy_api_sort_function.py,sha256=6Z-v0I5-mlG2FlZInnd022_6hH2zdR9_gh5yoGUM4zs,5900
78
+ pylegend/core/tds/legacy_api/frames/legacy_api_applied_function_tds_frame.py,sha256=TeLCuCqpDro0Ky3f3yMFO3PZC42F_91PjzLng0Fhniw,1422
79
+ pylegend/core/tds/legacy_api/frames/legacy_api_base_tds_frame.py,sha256=BCgCfq5p7R8i3piK4h1Mn8NK7xdTn77jUvuGJzE3W3Q,8777
80
+ pylegend/core/tds/legacy_api/frames/legacy_api_input_tds_frame.py,sha256=FcKJwKyG_TH4Bqn0aFU5v4l_pWC9bwYHB4f02Jp_CMs,2119
81
+ pylegend/core/tds/legacy_api/frames/legacy_api_tds_frame.py,sha256=F5PM5Slhaavlrgqw1GE4NiwdBsFS1o_1wPGZW8HQpOA,4196
82
+ pylegend/core/tds/legendql_api/__init__.py,sha256=g6w4WCuQ2pqQG6yyn-QLLXED3ttOOB8YnXzVt3ijb28,578
83
+ pylegend/core/tds/legendql_api/frames/__init__.py,sha256=g6w4WCuQ2pqQG6yyn-QLLXED3ttOOB8YnXzVt3ijb28,578
84
+ pylegend/core/tds/legendql_api/frames/functions/__init__.py,sha256=g6w4WCuQ2pqQG6yyn-QLLXED3ttOOB8YnXzVt3ijb28,578
85
+ pylegend/core/tds/legendql_api/frames/functions/legendql_api_asofjoin_function.py,sha256=rqcP1SB24ExNVoPQm2fm2p9AR90BXeWRHmroHBnCUB4,7162
86
+ pylegend/core/tds/legendql_api/frames/functions/legendql_api_concatenate_function.py,sha256=YlIjlFsl63P_Kb65Vfsz2iiuvGte-2FmxM1UBExK3aM,5429
87
+ pylegend/core/tds/legendql_api/frames/functions/legendql_api_distinct_function.py,sha256=D9IQvwmzHHwhXJs6LkSiDPVN7PhpC72WwHuh8Rw3xcU,2531
88
+ pylegend/core/tds/legendql_api/frames/functions/legendql_api_drop_function.py,sha256=TRODbNc_F2L8qItQnp5vsmXF1pVFdMTEA26D8ISpmdM,2770
89
+ pylegend/core/tds/legendql_api/frames/functions/legendql_api_extend_function.py,sha256=V-9Foub1UC2sSlH-4oZpukmZdlm1yWOPYmpj4clEKOc,12754
90
+ pylegend/core/tds/legendql_api/frames/functions/legendql_api_filter_function.py,sha256=jlIqWQKcCF2Fqz1DjAPEsUY-_hbtqpd6Cp1gpiJcYBA,4993
91
+ pylegend/core/tds/legendql_api/frames/functions/legendql_api_function_helpers.py,sha256=SCgP7KjJNmKTN1-aPlS28gCkXSGHmOOkY6gEn8exQhc,5592
92
+ pylegend/core/tds/legendql_api/frames/functions/legendql_api_groupby_function.py,sha256=MolMqJcFWLPwT5BOEfR5_QNwwBg5DdL2a2y59QYpKZI,12012
93
+ pylegend/core/tds/legendql_api/frames/functions/legendql_api_head_function.py,sha256=WdETku0klmTIhIixGeyti-zb6Pmp0m7t5sgGrsXsMAk,2742
94
+ pylegend/core/tds/legendql_api/frames/functions/legendql_api_join_function.py,sha256=ij0Pbgzw5tywwz9dqZXKFcDOBvRTo21WS8xkO5pTkf0,9228
95
+ pylegend/core/tds/legendql_api/frames/functions/legendql_api_project_function.py,sha256=7-xTaHizQF2FNWaYpcL8g2Njgav6o5Y2jx5mQSoxrV4,8119
96
+ pylegend/core/tds/legendql_api/frames/functions/legendql_api_rename_function.py,sha256=0EPO2GSMImL84Y-RAsUplF0yZvRmg34QLVZVt6JUJBw,8801
97
+ pylegend/core/tds/legendql_api/frames/functions/legendql_api_select_function.py,sha256=_7lYdKin-aQn5tw1zofuXC3T-DxC6XxSJPSfWJqS_7I,5617
98
+ pylegend/core/tds/legendql_api/frames/functions/legendql_api_slice_function.py,sha256=kt1VH-W-RitF-DUcJWKB73NvxSOeAAXN7deeeAwopw4,3249
99
+ pylegend/core/tds/legendql_api/frames/functions/legendql_api_sort_function.py,sha256=KHfxCCRXMSbIWG3KKuAR1BzThFx0rON8CJ_5g7QUTV4,3665
100
+ pylegend/core/tds/legendql_api/frames/functions/legendql_api_window_extend_function.py,sha256=rhim7HNPhnIcbmlKiNN0yhzcpbdZY6aqHTIzHIrJwZw,14276
101
+ pylegend/core/tds/legendql_api/frames/legendql_api_applied_function_tds_frame.py,sha256=kEh2XLoxYucQ6R7i5SKWSElUxbslufh5X5reIzOZbDw,1442
102
+ pylegend/core/tds/legendql_api/frames/legendql_api_base_tds_frame.py,sha256=QOV1NG8Ku9S3MQg_B-GkAvA0z1wEMR6Z1eZSLz3uqa8,17659
103
+ pylegend/core/tds/legendql_api/frames/legendql_api_input_tds_frame.py,sha256=x4rl6ER2ksy_PAcz9vlN_GNXejKpUg_e_YgAynfzS1Q,2147
104
+ pylegend/core/tds/legendql_api/frames/legendql_api_tds_frame.py,sha256=4-ffrFZia3jS8mToSVqz22J75t-MuI8-QZJQzm7AGAY,11366
105
+ pylegend/core/tds/pandas_api/__init__.py,sha256=LXTDJSDmHQXtnMDZouhZp9IZQVpY6ONkINbUYjtnMkE,578
106
+ pylegend/core/tds/pandas_api/frames/__init__.py,sha256=LXTDJSDmHQXtnMDZouhZp9IZQVpY6ONkINbUYjtnMkE,578
107
+ pylegend/core/tds/pandas_api/frames/functions/__init__.py,sha256=LXTDJSDmHQXtnMDZouhZp9IZQVpY6ONkINbUYjtnMkE,578
108
+ pylegend/core/tds/pandas_api/frames/functions/assign_function.py,sha256=s4zJo5pQoNYWj4HrR8sRS-mINuMN86cv7lMd_kf6N-M,4633
109
+ pylegend/core/tds/pandas_api/frames/pandas_api_applied_function_tds_frame.py,sha256=Edb5UVFsUkTqASyFnhDzyCM5WVjwwKBs-deAYpmwBhs,2747
110
+ pylegend/core/tds/pandas_api/frames/pandas_api_base_tds_frame.py,sha256=7y9PaAeTli1bg4penmPlE5rt0oZvwoZXBhB-UpnAjfA,5756
111
+ pylegend/core/tds/pandas_api/frames/pandas_api_input_tds_frame.py,sha256=R74vHUXs7G1V_fquGS9-Y9OfagL4kY2zfd1PNNme4S4,1913
112
+ pylegend/core/tds/pandas_api/frames/pandas_api_tds_frame.py,sha256=Z9GbuiORa4cS6DtCQlLWtIageprIc0E8dONpaxcf3ZA,1285
113
+ pylegend/core/tds/result_handler/__init__.py,sha256=8RE84xfkARwDbaQCvZulXcvDJlI-V5DuJp9RsdaGnqU,1141
114
+ pylegend/core/tds/result_handler/result_handler.py,sha256=7tSzOswFCapAAdACphIR3Q0QISYyjo_On_vtsUIPAbA,1183
115
+ pylegend/core/tds/result_handler/to_csv_file_result_handler.py,sha256=lm0UG87RNUXqQwOtSgxHbLKzAHebNuE3zIXM3ErtOxM,2270
116
+ pylegend/core/tds/result_handler/to_json_file_result_handler.py,sha256=6Qc6hxNvWhceMeIE8skdwcY5V_dLJ7YHmxV37W6MRdo,1357
117
+ pylegend/core/tds/result_handler/to_string_result_handler.py,sha256=y7xlSahtrsMhzFU2aPHgoT2NKm-Jn7RC2rEZmbYfYTY,1142
118
+ pylegend/core/tds/sql_query_helpers.py,sha256=9uN6I8D-fLdqVbkJb5gWm0wU-QrKDdtH4pdM_Njn55c,3614
119
+ pylegend/core/tds/tds_column.py,sha256=Kyi39cO0X9lFOom1m0gC4GrWBSmzlMj4BMT-9x_cG3A,5231
120
+ pylegend/core/tds/tds_frame.py,sha256=UgsIzRiKcSNnxs8ZQV_qqaSv-l8e1_8zAZU_DKDQaDI,3731
121
+ pylegend/extensions/__init__.py,sha256=LXTDJSDmHQXtnMDZouhZp9IZQVpY6ONkINbUYjtnMkE,578
122
+ pylegend/extensions/database/__init__.py,sha256=LXTDJSDmHQXtnMDZouhZp9IZQVpY6ONkINbUYjtnMkE,578
123
+ pylegend/extensions/database/vendors/__init__.py,sha256=LXTDJSDmHQXtnMDZouhZp9IZQVpY6ONkINbUYjtnMkE,578
124
+ pylegend/extensions/database/vendors/postgres/__init__.py,sha256=LXTDJSDmHQXtnMDZouhZp9IZQVpY6ONkINbUYjtnMkE,578
125
+ pylegend/extensions/database/vendors/postgres/postgres_sql_to_string.py,sha256=QQ5lB-C8qNGS18UYHhG302t7DkVMjpfg4o8zmtW0ZDs,1341
126
+ pylegend/extensions/tds/__init__.py,sha256=LXTDJSDmHQXtnMDZouhZp9IZQVpY6ONkINbUYjtnMkE,578
127
+ pylegend/extensions/tds/abstract/__init__.py,sha256=LXTDJSDmHQXtnMDZouhZp9IZQVpY6ONkINbUYjtnMkE,578
128
+ pylegend/extensions/tds/abstract/legend_function_input_frame.py,sha256=-Od_c37Z_KfWxbOg4wnOXnR1u0Bl09PwuTlEcCgoe4c,3593
129
+ pylegend/extensions/tds/abstract/legend_service_input_frame.py,sha256=NvjW7KZGFgHDvIJRUmzqGTiVWKmFFBqQUtff3GGwxmc,3617
130
+ pylegend/extensions/tds/abstract/table_spec_input_frame.py,sha256=a10caG6_0VdTa9mOM013GA3LRbE-rp7NQobPDes3OaY,2498
131
+ pylegend/extensions/tds/legacy_api/__init__.py,sha256=LXTDJSDmHQXtnMDZouhZp9IZQVpY6ONkINbUYjtnMkE,578
132
+ pylegend/extensions/tds/legacy_api/frames/__init__.py,sha256=LXTDJSDmHQXtnMDZouhZp9IZQVpY6ONkINbUYjtnMkE,578
133
+ pylegend/extensions/tds/legacy_api/frames/legacy_api_legend_function_input_frame.py,sha256=7TyTCRezOTEgAliq6Zd_50adKWsUsH-HPxjeGMeA0To,1818
134
+ pylegend/extensions/tds/legacy_api/frames/legacy_api_legend_service_input_frame.py,sha256=ZxLcQiyRk88sYnJ3yMXqsb6N_d60qKtEglEeD8PouBY,1823
135
+ pylegend/extensions/tds/legacy_api/frames/legacy_api_table_spec_input_frame.py,sha256=QMNTG82yb0KbI2MgevigvLUSOu4jdkCRWpP6FTGHVEk,1465
136
+ pylegend/extensions/tds/legendql_api/__init__.py,sha256=g6w4WCuQ2pqQG6yyn-QLLXED3ttOOB8YnXzVt3ijb28,578
137
+ pylegend/extensions/tds/legendql_api/frames/__init__.py,sha256=g6w4WCuQ2pqQG6yyn-QLLXED3ttOOB8YnXzVt3ijb28,578
138
+ pylegend/extensions/tds/legendql_api/frames/legendql_api_legend_service_input_frame.py,sha256=UNvZEn1xbXS1y_1Nv6ibTmMpjq6fbFB66U7Ff9Hve2w,1841
139
+ pylegend/extensions/tds/legendql_api/frames/legendql_api_table_spec_input_frame.py,sha256=hJ4MEHOhSuc4i6iheKQtsbdEWxltD3-ilxpwbJYppPM,1481
140
+ pylegend/extensions/tds/pandas_api/__init__.py,sha256=LXTDJSDmHQXtnMDZouhZp9IZQVpY6ONkINbUYjtnMkE,578
141
+ pylegend/extensions/tds/pandas_api/frames/__init__.py,sha256=LXTDJSDmHQXtnMDZouhZp9IZQVpY6ONkINbUYjtnMkE,578
142
+ pylegend/extensions/tds/pandas_api/frames/pandas_api_legend_function_input_frame.py,sha256=aJaNPJcfMdc8HTJKErah4BYSnHfmKMIMvoKtEeCx4zQ,1818
143
+ pylegend/extensions/tds/pandas_api/frames/pandas_api_legend_service_input_frame.py,sha256=dOV6qXIrNkZ8gwmPt0ljr5CVViS4AH5Y4h3L-1WnNdM,1822
144
+ pylegend/extensions/tds/pandas_api/frames/pandas_api_table_spec_input_frame.py,sha256=2pj-siOOvIFEqNOG-f4VUvhY9gBGUFFDZz7jZl7QpLg,1465
145
+ pylegend/extensions/tds/result_handler/__init__.py,sha256=NIIUcl39wpSc51IhUUEKtEYlve89Xncq0YEG78Gren4,864
146
+ pylegend/extensions/tds/result_handler/to_pandas_df_result_handler.py,sha256=tvVsxDOzHNTvzjdApIhmeefws5_u0N8Rqm7UvEtj70w,4958
147
+ pylegend/legacy_api_tds_client.py,sha256=IXfo2pdBFV3M3S4RYKJcvudMc_OGdR0yvJhTV-ovI3s,2319
148
+ pylegend/utils/__init__.py,sha256=LXTDJSDmHQXtnMDZouhZp9IZQVpY6ONkINbUYjtnMkE,578
149
+ pylegend/utils/class_utils.py,sha256=t4PpF3jAXS_D6p9TqlSppryNYNOuy5C-kbKn2Kgb4QU,973
150
+ pylegend-0.5.0.dist-info/LICENSE,sha256=AGR96_qQPZO66Gjqq4G6r_g670K35VtW-IobTAkmZJM,11343
151
+ pylegend-0.5.0.dist-info/LICENSE.spdx,sha256=i7TsBclLotUvMjx9vZ_6S8Pp0r4uknWGw1RwiKBBvQ4,207
152
+ pylegend-0.5.0.dist-info/METADATA,sha256=ggohQnjEXzNQyJsn8l54276zCqQOl8yx8VK9Fif7nTs,4210
153
+ pylegend-0.5.0.dist-info/NOTICE,sha256=2Lr4FqiscyRI7-vyn7c2z-zqUw2p6x7upJyBvFKkHjk,167
154
+ pylegend-0.5.0.dist-info/WHEEL,sha256=b4K_helf-jlQoXBBETfwnf4B04YC67LOev0jo4fX5m8,88
155
+ pylegend-0.5.0.dist-info/RECORD,,
@@ -1,4 +1,4 @@
1
1
  Wheel-Version: 1.0
2
- Generator: poetry-core 1.8.1
2
+ Generator: poetry-core 2.1.3
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
@@ -1,56 +0,0 @@
1
- # Copyright 2023 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
-
15
- from pylegend._typing import (
16
- PyLegendSequence,
17
- PyLegendDict,
18
- )
19
- from pylegend.core.language.expression import (
20
- PyLegendExpression,
21
- PyLegendExpressionBooleanReturn,
22
- )
23
- from pylegend.core.language.operations.binary_expression import PyLegendBinaryExpression
24
- from pylegend.core.sql.metamodel import (
25
- Expression,
26
- QuerySpecification,
27
- ComparisonExpression,
28
- ComparisonOperator,
29
- )
30
- from pylegend.core.tds.tds_frame import FrameToSqlConfig
31
-
32
-
33
- __all__: PyLegendSequence[str] = [
34
- "PyLegendPrimitiveEqualsExpression",
35
- ]
36
-
37
-
38
- class PyLegendPrimitiveEqualsExpression(PyLegendBinaryExpression, PyLegendExpressionBooleanReturn):
39
-
40
- @staticmethod
41
- def __to_sql_func(
42
- expression1: Expression,
43
- expression2: Expression,
44
- frame_name_to_base_query_map: PyLegendDict[str, QuerySpecification],
45
- config: FrameToSqlConfig
46
- ) -> Expression:
47
- return ComparisonExpression(expression1, expression2, ComparisonOperator.EQUAL)
48
-
49
- def __init__(self, operand1: PyLegendExpression, operand2: PyLegendExpression) -> None:
50
- PyLegendExpressionBooleanReturn.__init__(self)
51
- PyLegendBinaryExpression.__init__(
52
- self,
53
- operand1,
54
- operand2,
55
- PyLegendPrimitiveEqualsExpression.__to_sql_func
56
- )