pylegend 0.2.2__py3-none-any.whl → 0.4.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.
- pylegend/__init__.py +9 -5
- pylegend/core/{databse → database}/sql_to_string/__init__.py +3 -3
- pylegend/core/{databse → database}/sql_to_string/db_extension.py +11 -5
- pylegend/core/{databse → database}/sql_to_string/generator.py +2 -2
- pylegend/core/language/__init__.py +10 -10
- pylegend/core/language/legacy_api/__init__.py +13 -0
- pylegend/core/language/{aggregate_specification.py → legacy_api/aggregate_specification.py} +10 -10
- pylegend/core/language/legacy_api/legacy_api_tds_row.py +32 -0
- pylegend/core/language/legendql_api/__init__.py +13 -0
- pylegend/core/language/legendql_api/legendql_api_custom_expressions.py +541 -0
- pylegend/core/language/legendql_api/legendql_api_tds_row.py +292 -0
- pylegend/core/language/shared/__init__.py +13 -0
- pylegend/core/language/{column_expressions.py → shared/column_expressions.py} +32 -31
- pylegend/core/language/{expression.py → shared/expression.py} +8 -0
- pylegend/core/language/{functions.py → shared/functions.py} +3 -3
- pylegend/core/language/shared/helpers.py +75 -0
- pylegend/core/language/{literal_expressions.py → shared/literal_expressions.py} +39 -1
- pylegend/core/language/{operations → shared/operations}/binary_expression.py +34 -2
- pylegend/core/language/{operations → shared/operations}/boolean_operation_expressions.py +34 -6
- pylegend/core/language/{operations → shared/operations}/collection_operation_expressions.py +146 -26
- pylegend/core/language/{operations → shared/operations}/date_operation_expressions.py +164 -24
- pylegend/core/language/{operations → shared/operations}/float_operation_expressions.py +53 -8
- pylegend/core/language/{operations → shared/operations}/integer_operation_expressions.py +62 -9
- pylegend/core/language/{operations → shared/operations}/nullary_expression.py +9 -2
- pylegend/core/language/{operations → shared/operations}/number_operation_expressions.py +211 -30
- pylegend/core/language/{operations → shared/operations}/primitive_operation_expressions.py +42 -3
- pylegend/core/language/{operations → shared/operations}/string_operation_expressions.py +169 -21
- pylegend/core/language/{operations → shared/operations}/unary_expression.py +10 -2
- pylegend/core/language/{primitive_collection.py → shared/primitive_collection.py} +2 -2
- pylegend/core/language/{primitives → shared/primitives}/__init__.py +9 -9
- pylegend/core/language/{primitives → shared/primitives}/boolean.py +9 -5
- pylegend/core/language/{primitives → shared/primitives}/date.py +23 -15
- pylegend/core/language/{primitives → shared/primitives}/datetime.py +4 -5
- pylegend/core/language/{primitives → shared/primitives}/float.py +6 -6
- pylegend/core/language/{primitives → shared/primitives}/integer.py +6 -6
- pylegend/core/language/{primitives → shared/primitives}/number.py +16 -13
- pylegend/core/language/{primitives → shared/primitives}/primitive.py +25 -5
- pylegend/core/language/{primitives → shared/primitives}/strictdate.py +4 -5
- pylegend/core/language/{primitives → shared/primitives}/string.py +18 -19
- pylegend/core/language/{tds_row.py → shared/tds_row.py} +46 -16
- pylegend/core/request/__init__.py +8 -1
- pylegend/core/request/auth.py +89 -11
- pylegend/core/request/legend_client.py +32 -0
- pylegend/core/sql/metamodel_extension.py +16 -0
- pylegend/core/tds/abstract/__init__.py +13 -0
- pylegend/core/tds/abstract/frames/__init__.py +13 -0
- pylegend/core/tds/{legend_api/frames/legend_api_applied_function_tds_frame.py → abstract/frames/applied_function_tds_frame.py} +19 -13
- pylegend/core/tds/abstract/frames/base_tds_frame.py +125 -0
- pylegend/core/tds/{legend_api/frames/legend_api_input_tds_frame.py → abstract/frames/input_tds_frame.py} +9 -12
- pylegend/core/tds/{legend_api/frames/functions → abstract}/function_helpers.py +1 -1
- pylegend/core/tds/{legend_api/frames/functions/concatenate_function.py → legacy_api/frames/functions/legacy_api_concatenate_function.py} +25 -13
- pylegend/core/tds/{legend_api/frames/functions/distinct_function.py → legacy_api/frames/functions/legacy_api_distinct_function.py} +13 -8
- pylegend/core/tds/{legend_api/frames/functions/drop_function.py → legacy_api/frames/functions/legacy_api_drop_function.py} +13 -8
- pylegend/core/tds/{legend_api/frames/functions/extend_function.py → legacy_api/frames/functions/legacy_api_extend_function.py} +36 -16
- pylegend/core/tds/{legend_api/frames/functions/filter_function.py → legacy_api/frames/functions/legacy_api_filter_function.py} +25 -13
- pylegend/core/tds/{legend_api/frames/functions/group_by_function.py → legacy_api/frames/functions/legacy_api_group_by_function.py} +44 -17
- pylegend/core/tds/{legend_api/frames/functions/head_function.py → legacy_api/frames/functions/legacy_api_head_function.py} +13 -8
- 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
- pylegend/core/tds/{legend_api/frames/functions/join_function.py → legacy_api/frames/functions/legacy_api_join_function.py} +44 -20
- pylegend/core/tds/{legend_api/frames/functions/rename_columns_function.py → legacy_api/frames/functions/legacy_api_rename_columns_function.py} +20 -8
- pylegend/core/tds/{legend_api/frames/functions/restrict_function.py → legacy_api/frames/functions/legacy_api_restrict_function.py} +17 -8
- pylegend/core/tds/{legend_api/frames/functions/slice_function.py → legacy_api/frames/functions/legacy_api_slice_function.py} +13 -8
- pylegend/core/tds/{legend_api/frames/functions/sort_function.py → legacy_api/frames/functions/legacy_api_sort_function.py} +19 -8
- pylegend/core/tds/legacy_api/frames/legacy_api_applied_function_tds_frame.py +37 -0
- pylegend/core/tds/legacy_api/frames/legacy_api_base_tds_frame.py +204 -0
- pylegend/core/tds/legacy_api/frames/legacy_api_input_tds_frame.py +51 -0
- pylegend/core/tds/{legend_api/frames/legend_api_tds_frame.py → legacy_api/frames/legacy_api_tds_frame.py} +28 -28
- pylegend/core/tds/legendql_api/__init__.py +13 -0
- pylegend/core/tds/legendql_api/frames/__init__.py +13 -0
- pylegend/core/tds/legendql_api/frames/functions/__init__.py +13 -0
- pylegend/core/tds/legendql_api/frames/functions/legendql_api_asofjoin_function.py +156 -0
- pylegend/core/tds/legendql_api/frames/functions/legendql_api_concatenate_function.py +139 -0
- pylegend/core/tds/legendql_api/frames/functions/legendql_api_distinct_function.py +69 -0
- pylegend/core/tds/legendql_api/frames/functions/legendql_api_drop_function.py +74 -0
- pylegend/core/tds/legendql_api/frames/functions/legendql_api_extend_function.py +256 -0
- pylegend/core/tds/legendql_api/frames/functions/legendql_api_filter_function.py +121 -0
- pylegend/core/tds/legendql_api/frames/functions/legendql_api_function_helpers.py +137 -0
- pylegend/core/tds/legendql_api/frames/functions/legendql_api_groupby_function.py +256 -0
- pylegend/core/tds/legendql_api/frames/functions/legendql_api_head_function.py +74 -0
- pylegend/core/tds/legendql_api/frames/functions/legendql_api_join_function.py +214 -0
- pylegend/core/tds/legendql_api/frames/functions/legendql_api_project_function.py +169 -0
- pylegend/core/tds/legendql_api/frames/functions/legendql_api_rename_function.py +189 -0
- pylegend/core/tds/legendql_api/frames/functions/legendql_api_select_function.py +131 -0
- pylegend/core/tds/legendql_api/frames/functions/legendql_api_slice_function.py +82 -0
- pylegend/core/tds/legendql_api/frames/functions/legendql_api_sort_function.py +93 -0
- pylegend/core/tds/legendql_api/frames/functions/legendql_api_window_extend_function.py +283 -0
- pylegend/core/tds/legendql_api/frames/legendql_api_applied_function_tds_frame.py +37 -0
- pylegend/core/tds/legendql_api/frames/legendql_api_base_tds_frame.py +419 -0
- pylegend/core/tds/legendql_api/frames/legendql_api_input_tds_frame.py +50 -0
- pylegend/core/tds/legendql_api/frames/legendql_api_tds_frame.py +327 -0
- pylegend/core/tds/pandas_api/frames/functions/assign_function.py +6 -6
- pylegend/core/tds/pandas_api/frames/pandas_api_applied_function_tds_frame.py +4 -0
- pylegend/core/tds/pandas_api/frames/pandas_api_base_tds_frame.py +11 -3
- pylegend/core/tds/pandas_api/frames/pandas_api_tds_frame.py +2 -2
- pylegend/core/tds/tds_frame.py +32 -2
- pylegend/extensions/database/vendors/postgres/postgres_sql_to_string.py +1 -1
- pylegend/extensions/tds/abstract/legend_function_input_frame.py +4 -0
- pylegend/extensions/tds/abstract/legend_service_input_frame.py +4 -0
- pylegend/extensions/tds/abstract/table_spec_input_frame.py +4 -0
- 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
- 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
- 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
- pylegend/extensions/tds/legendql_api/__init__.py +13 -0
- pylegend/extensions/tds/legendql_api/frames/__init__.py +13 -0
- pylegend/extensions/tds/legendql_api/frames/legendql_api_legend_service_input_frame.py +46 -0
- pylegend/extensions/tds/legendql_api/frames/legendql_api_table_spec_input_frame.py +36 -0
- pylegend/{legend_api_tds_client.py → legacy_api_tds_client.py} +15 -15
- {pylegend-0.2.2.dist-info → pylegend-0.4.0.dist-info}/METADATA +7 -8
- pylegend-0.4.0.dist-info/NOTICE +5 -0
- pylegend-0.4.0.dist-info/RECORD +155 -0
- {pylegend-0.2.2.dist-info → pylegend-0.4.0.dist-info}/WHEEL +1 -1
- pylegend/core/tds/legend_api/frames/legend_api_base_tds_frame.py +0 -294
- pylegend-0.2.2.dist-info/RECORD +0 -115
- /pylegend/core/{databse → database}/__init__.py +0 -0
- /pylegend/core/{databse → database}/sql_to_string/config.py +0 -0
- /pylegend/core/language/{operations → shared/operations}/__init__.py +0 -0
- /pylegend/core/tds/{legend_api → legacy_api}/__init__.py +0 -0
- /pylegend/core/tds/{legend_api → legacy_api}/frames/__init__.py +0 -0
- /pylegend/core/tds/{legend_api → legacy_api}/frames/functions/__init__.py +0 -0
- /pylegend/extensions/tds/{legend_api → legacy_api}/__init__.py +0 -0
- /pylegend/extensions/tds/{legend_api → legacy_api}/frames/__init__.py +0 -0
- {pylegend-0.2.2.dist-info → pylegend-0.4.0.dist-info}/LICENSE +0 -0
- {pylegend-0.2.2.dist-info → pylegend-0.4.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.
|
|
21
|
+
from pylegend.core.tds.legacy_api.frames.legacy_api_tds_frame import LegacyApiTdsFrame
|
|
22
22
|
|
|
23
23
|
|
|
24
24
|
__all__: PyLegendSequence[str] = [
|
|
25
|
-
"
|
|
26
|
-
"
|
|
25
|
+
"LegacyApiTdsClient",
|
|
26
|
+
"legacy_api_tds_client",
|
|
27
27
|
]
|
|
28
28
|
|
|
29
29
|
|
|
30
|
-
class
|
|
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
|
-
) ->
|
|
44
|
-
from pylegend.extensions.tds.
|
|
45
|
-
|
|
43
|
+
) -> LegacyApiTdsFrame:
|
|
44
|
+
from pylegend.extensions.tds.legacy_api.frames.legacy_api_legend_service_input_frame import (
|
|
45
|
+
LegacyApiLegendServiceInputFrame
|
|
46
46
|
)
|
|
47
|
-
return
|
|
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
|
-
) ->
|
|
58
|
-
from pylegend.extensions.tds.
|
|
59
|
-
|
|
57
|
+
) -> LegacyApiTdsFrame:
|
|
58
|
+
from pylegend.extensions.tds.legacy_api.frames.legacy_api_legend_function_input_frame import (
|
|
59
|
+
LegacyApiLegendFunctionInputFrame
|
|
60
60
|
)
|
|
61
|
-
return
|
|
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
|
|
68
|
+
def legacy_api_tds_client(
|
|
69
69
|
legend_client: LegendClient
|
|
70
|
-
) ->
|
|
71
|
-
return
|
|
70
|
+
) -> LegacyApiTdsClient:
|
|
71
|
+
return LegacyApiTdsClient(
|
|
72
72
|
legend_client=legend_client
|
|
73
73
|
)
|
|
@@ -1,19 +1,18 @@
|
|
|
1
|
-
Metadata-Version: 2.
|
|
1
|
+
Metadata-Version: 2.3
|
|
2
2
|
Name: pylegend
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.4.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
|
+
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
|
[](https://community.finos.org/docs/governance/Software-Projects/stages/incubating)
|
|
27
26
|
[](https://pypi.org/project/pylegend/)
|
|
28
|
-
[](https://www.python.org/downloads)
|
|
28
|
+

|
|
30
29
|
[](https://opensource.org/licenses/Apache-2.0)
|
|
31
30
|

|
|
32
31
|

|
|
@@ -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.
|
|
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,155 @@
|
|
|
1
|
+
pylegend/__init__.py,sha256=MC4G2Ly0PJwW_Sr6KBVHut0GUd8GvDFy1Hoq6O2mnfo,1577
|
|
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=qN-vfbjweLkfq_kflX2nArBvw9gogN1r0xs62lFskw0,52878
|
|
8
|
+
pylegend/core/database/sql_to_string/generator.py,sha256=xk3siXWyR7_ahn6pwsUMi80V_7NV2tYa7x5dosiNJR4,2607
|
|
9
|
+
pylegend/core/language/__init__.py,sha256=y8zbWc-PqSYBVbcMbUfKYi9e1qe55PyxYrytr-k0wA8,4293
|
|
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=HF-Wxw-xpQabMd1GcDf0MYgGnv7WaruyJUA2_kz10RQ,1180
|
|
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=LhcPaAnG0JumNrXE2RU-qyp8pmkDOmdOiWSUzo8L0c8,21854
|
|
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=47kw9o9XTLvfidJOELh_G_FsSYvxWc2vz3iGn3xdRfU,3336
|
|
32
|
+
pylegend/core/language/shared/operations/string_operation_expressions.py,sha256=twsko7YNHP6CAwFJVdW2CEbbGylzN2yErZTjxzcEHkY,19506
|
|
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=BnSzaTL44j4LQe_xzxXD70rkIeQd8DuJqrFK9hLbi5g,7169
|
|
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=4hBAq9e1IBgR8Foz3ac9u1NhVRLOfE5cZ9GqU0dZngQ,3848
|
|
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=tbLNn0A-za2GhKaFRLdPXkRwPTY7KOh3Mc0yaMtMY1k,15681
|
|
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.4.0.dist-info/LICENSE,sha256=AGR96_qQPZO66Gjqq4G6r_g670K35VtW-IobTAkmZJM,11343
|
|
151
|
+
pylegend-0.4.0.dist-info/LICENSE.spdx,sha256=i7TsBclLotUvMjx9vZ_6S8Pp0r4uknWGw1RwiKBBvQ4,207
|
|
152
|
+
pylegend-0.4.0.dist-info/METADATA,sha256=yOwv_Bpg32vg8Lod2ETjXDquDdcJdrxMhKBVfH0Lfy0,4210
|
|
153
|
+
pylegend-0.4.0.dist-info/NOTICE,sha256=2Lr4FqiscyRI7-vyn7c2z-zqUw2p6x7upJyBvFKkHjk,167
|
|
154
|
+
pylegend-0.4.0.dist-info/WHEEL,sha256=b4K_helf-jlQoXBBETfwnf4B04YC67LOev0jo4fX5m8,88
|
|
155
|
+
pylegend-0.4.0.dist-info/RECORD,,
|