pylegend 0.7.0__tar.gz → 0.8.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (158) hide show
  1. {pylegend-0.7.0 → pylegend-0.8.0}/PKG-INFO +1 -1
  2. {pylegend-0.7.0 → pylegend-0.8.0}/pylegend/core/language/shared/literal_expressions.py +2 -2
  3. pylegend-0.8.0/pylegend/core/language/shared/pct_helpers.py +56 -0
  4. {pylegend-0.7.0 → pylegend-0.8.0}/pyproject.toml +2 -1
  5. {pylegend-0.7.0 → pylegend-0.8.0}/LICENSE +0 -0
  6. {pylegend-0.7.0 → pylegend-0.8.0}/LICENSE.spdx +0 -0
  7. {pylegend-0.7.0 → pylegend-0.8.0}/NOTICE +0 -0
  8. {pylegend-0.7.0 → pylegend-0.8.0}/README.md +0 -0
  9. {pylegend-0.7.0 → pylegend-0.8.0}/pylegend/__init__.py +0 -0
  10. {pylegend-0.7.0 → pylegend-0.8.0}/pylegend/_typing.py +0 -0
  11. {pylegend-0.7.0 → pylegend-0.8.0}/pylegend/core/__init__.py +0 -0
  12. {pylegend-0.7.0 → pylegend-0.8.0}/pylegend/core/database/__init__.py +0 -0
  13. {pylegend-0.7.0 → pylegend-0.8.0}/pylegend/core/database/sql_to_string/__init__.py +0 -0
  14. {pylegend-0.7.0 → pylegend-0.8.0}/pylegend/core/database/sql_to_string/config.py +0 -0
  15. {pylegend-0.7.0 → pylegend-0.8.0}/pylegend/core/database/sql_to_string/db_extension.py +0 -0
  16. {pylegend-0.7.0 → pylegend-0.8.0}/pylegend/core/database/sql_to_string/generator.py +0 -0
  17. {pylegend-0.7.0 → pylegend-0.8.0}/pylegend/core/language/__init__.py +0 -0
  18. {pylegend-0.7.0 → pylegend-0.8.0}/pylegend/core/language/legacy_api/__init__.py +0 -0
  19. {pylegend-0.7.0 → pylegend-0.8.0}/pylegend/core/language/legacy_api/aggregate_specification.py +0 -0
  20. {pylegend-0.7.0 → pylegend-0.8.0}/pylegend/core/language/legacy_api/legacy_api_tds_row.py +0 -0
  21. {pylegend-0.7.0 → pylegend-0.8.0}/pylegend/core/language/legendql_api/__init__.py +0 -0
  22. {pylegend-0.7.0 → pylegend-0.8.0}/pylegend/core/language/legendql_api/legendql_api_custom_expressions.py +0 -0
  23. {pylegend-0.7.0 → pylegend-0.8.0}/pylegend/core/language/legendql_api/legendql_api_tds_row.py +0 -0
  24. {pylegend-0.7.0 → pylegend-0.8.0}/pylegend/core/language/shared/__init__.py +0 -0
  25. {pylegend-0.7.0 → pylegend-0.8.0}/pylegend/core/language/shared/column_expressions.py +0 -0
  26. {pylegend-0.7.0 → pylegend-0.8.0}/pylegend/core/language/shared/expression.py +0 -0
  27. {pylegend-0.7.0 → pylegend-0.8.0}/pylegend/core/language/shared/functions.py +0 -0
  28. {pylegend-0.7.0 → pylegend-0.8.0}/pylegend/core/language/shared/helpers.py +0 -0
  29. {pylegend-0.7.0 → pylegend-0.8.0}/pylegend/core/language/shared/operations/__init__.py +0 -0
  30. {pylegend-0.7.0 → pylegend-0.8.0}/pylegend/core/language/shared/operations/binary_expression.py +0 -0
  31. {pylegend-0.7.0 → pylegend-0.8.0}/pylegend/core/language/shared/operations/boolean_operation_expressions.py +0 -0
  32. {pylegend-0.7.0 → pylegend-0.8.0}/pylegend/core/language/shared/operations/collection_operation_expressions.py +0 -0
  33. {pylegend-0.7.0 → pylegend-0.8.0}/pylegend/core/language/shared/operations/date_operation_expressions.py +0 -0
  34. {pylegend-0.7.0 → pylegend-0.8.0}/pylegend/core/language/shared/operations/float_operation_expressions.py +0 -0
  35. {pylegend-0.7.0 → pylegend-0.8.0}/pylegend/core/language/shared/operations/integer_operation_expressions.py +0 -0
  36. {pylegend-0.7.0 → pylegend-0.8.0}/pylegend/core/language/shared/operations/nullary_expression.py +0 -0
  37. {pylegend-0.7.0 → pylegend-0.8.0}/pylegend/core/language/shared/operations/number_operation_expressions.py +0 -0
  38. {pylegend-0.7.0 → pylegend-0.8.0}/pylegend/core/language/shared/operations/primitive_operation_expressions.py +0 -0
  39. {pylegend-0.7.0 → pylegend-0.8.0}/pylegend/core/language/shared/operations/string_operation_expressions.py +0 -0
  40. {pylegend-0.7.0 → pylegend-0.8.0}/pylegend/core/language/shared/operations/unary_expression.py +0 -0
  41. {pylegend-0.7.0 → pylegend-0.8.0}/pylegend/core/language/shared/primitive_collection.py +0 -0
  42. {pylegend-0.7.0 → pylegend-0.8.0}/pylegend/core/language/shared/primitives/__init__.py +0 -0
  43. {pylegend-0.7.0 → pylegend-0.8.0}/pylegend/core/language/shared/primitives/boolean.py +0 -0
  44. {pylegend-0.7.0 → pylegend-0.8.0}/pylegend/core/language/shared/primitives/date.py +0 -0
  45. {pylegend-0.7.0 → pylegend-0.8.0}/pylegend/core/language/shared/primitives/datetime.py +0 -0
  46. {pylegend-0.7.0 → pylegend-0.8.0}/pylegend/core/language/shared/primitives/float.py +0 -0
  47. {pylegend-0.7.0 → pylegend-0.8.0}/pylegend/core/language/shared/primitives/integer.py +0 -0
  48. {pylegend-0.7.0 → pylegend-0.8.0}/pylegend/core/language/shared/primitives/number.py +0 -0
  49. {pylegend-0.7.0 → pylegend-0.8.0}/pylegend/core/language/shared/primitives/primitive.py +0 -0
  50. {pylegend-0.7.0 → pylegend-0.8.0}/pylegend/core/language/shared/primitives/strictdate.py +0 -0
  51. {pylegend-0.7.0 → pylegend-0.8.0}/pylegend/core/language/shared/primitives/string.py +0 -0
  52. {pylegend-0.7.0 → pylegend-0.8.0}/pylegend/core/language/shared/tds_row.py +0 -0
  53. {pylegend-0.7.0 → pylegend-0.8.0}/pylegend/core/project_cooridnates.py +0 -0
  54. {pylegend-0.7.0 → pylegend-0.8.0}/pylegend/core/request/__init__.py +0 -0
  55. {pylegend-0.7.0 → pylegend-0.8.0}/pylegend/core/request/auth.py +0 -0
  56. {pylegend-0.7.0 → pylegend-0.8.0}/pylegend/core/request/legend_client.py +0 -0
  57. {pylegend-0.7.0 → pylegend-0.8.0}/pylegend/core/request/response_reader.py +0 -0
  58. {pylegend-0.7.0 → pylegend-0.8.0}/pylegend/core/request/service_client.py +0 -0
  59. {pylegend-0.7.0 → pylegend-0.8.0}/pylegend/core/sql/__init__.py +0 -0
  60. {pylegend-0.7.0 → pylegend-0.8.0}/pylegend/core/sql/metamodel.py +0 -0
  61. {pylegend-0.7.0 → pylegend-0.8.0}/pylegend/core/sql/metamodel_extension.py +0 -0
  62. {pylegend-0.7.0 → pylegend-0.8.0}/pylegend/core/tds/__init__.py +0 -0
  63. {pylegend-0.7.0 → pylegend-0.8.0}/pylegend/core/tds/abstract/__init__.py +0 -0
  64. {pylegend-0.7.0 → pylegend-0.8.0}/pylegend/core/tds/abstract/frames/__init__.py +0 -0
  65. {pylegend-0.7.0 → pylegend-0.8.0}/pylegend/core/tds/abstract/frames/applied_function_tds_frame.py +0 -0
  66. {pylegend-0.7.0 → pylegend-0.8.0}/pylegend/core/tds/abstract/frames/base_tds_frame.py +0 -0
  67. {pylegend-0.7.0 → pylegend-0.8.0}/pylegend/core/tds/abstract/frames/input_tds_frame.py +0 -0
  68. {pylegend-0.7.0 → pylegend-0.8.0}/pylegend/core/tds/abstract/function_helpers.py +0 -0
  69. {pylegend-0.7.0 → pylegend-0.8.0}/pylegend/core/tds/legacy_api/__init__.py +0 -0
  70. {pylegend-0.7.0 → pylegend-0.8.0}/pylegend/core/tds/legacy_api/frames/__init__.py +0 -0
  71. {pylegend-0.7.0 → pylegend-0.8.0}/pylegend/core/tds/legacy_api/frames/functions/__init__.py +0 -0
  72. {pylegend-0.7.0 → pylegend-0.8.0}/pylegend/core/tds/legacy_api/frames/functions/legacy_api_concatenate_function.py +0 -0
  73. {pylegend-0.7.0 → pylegend-0.8.0}/pylegend/core/tds/legacy_api/frames/functions/legacy_api_distinct_function.py +0 -0
  74. {pylegend-0.7.0 → pylegend-0.8.0}/pylegend/core/tds/legacy_api/frames/functions/legacy_api_drop_function.py +0 -0
  75. {pylegend-0.7.0 → pylegend-0.8.0}/pylegend/core/tds/legacy_api/frames/functions/legacy_api_extend_function.py +0 -0
  76. {pylegend-0.7.0 → pylegend-0.8.0}/pylegend/core/tds/legacy_api/frames/functions/legacy_api_filter_function.py +0 -0
  77. {pylegend-0.7.0 → pylegend-0.8.0}/pylegend/core/tds/legacy_api/frames/functions/legacy_api_group_by_function.py +0 -0
  78. {pylegend-0.7.0 → pylegend-0.8.0}/pylegend/core/tds/legacy_api/frames/functions/legacy_api_head_function.py +0 -0
  79. {pylegend-0.7.0 → pylegend-0.8.0}/pylegend/core/tds/legacy_api/frames/functions/legacy_api_join_by_columns_function.py +0 -0
  80. {pylegend-0.7.0 → pylegend-0.8.0}/pylegend/core/tds/legacy_api/frames/functions/legacy_api_join_function.py +0 -0
  81. {pylegend-0.7.0 → pylegend-0.8.0}/pylegend/core/tds/legacy_api/frames/functions/legacy_api_rename_columns_function.py +0 -0
  82. {pylegend-0.7.0 → pylegend-0.8.0}/pylegend/core/tds/legacy_api/frames/functions/legacy_api_restrict_function.py +0 -0
  83. {pylegend-0.7.0 → pylegend-0.8.0}/pylegend/core/tds/legacy_api/frames/functions/legacy_api_slice_function.py +0 -0
  84. {pylegend-0.7.0 → pylegend-0.8.0}/pylegend/core/tds/legacy_api/frames/functions/legacy_api_sort_function.py +0 -0
  85. {pylegend-0.7.0 → pylegend-0.8.0}/pylegend/core/tds/legacy_api/frames/legacy_api_applied_function_tds_frame.py +0 -0
  86. {pylegend-0.7.0 → pylegend-0.8.0}/pylegend/core/tds/legacy_api/frames/legacy_api_base_tds_frame.py +0 -0
  87. {pylegend-0.7.0 → pylegend-0.8.0}/pylegend/core/tds/legacy_api/frames/legacy_api_input_tds_frame.py +0 -0
  88. {pylegend-0.7.0 → pylegend-0.8.0}/pylegend/core/tds/legacy_api/frames/legacy_api_tds_frame.py +0 -0
  89. {pylegend-0.7.0 → pylegend-0.8.0}/pylegend/core/tds/legendql_api/__init__.py +0 -0
  90. {pylegend-0.7.0 → pylegend-0.8.0}/pylegend/core/tds/legendql_api/frames/__init__.py +0 -0
  91. {pylegend-0.7.0 → pylegend-0.8.0}/pylegend/core/tds/legendql_api/frames/functions/__init__.py +0 -0
  92. {pylegend-0.7.0 → pylegend-0.8.0}/pylegend/core/tds/legendql_api/frames/functions/legendql_api_asofjoin_function.py +0 -0
  93. {pylegend-0.7.0 → pylegend-0.8.0}/pylegend/core/tds/legendql_api/frames/functions/legendql_api_concatenate_function.py +0 -0
  94. {pylegend-0.7.0 → pylegend-0.8.0}/pylegend/core/tds/legendql_api/frames/functions/legendql_api_distinct_function.py +0 -0
  95. {pylegend-0.7.0 → pylegend-0.8.0}/pylegend/core/tds/legendql_api/frames/functions/legendql_api_drop_function.py +0 -0
  96. {pylegend-0.7.0 → pylegend-0.8.0}/pylegend/core/tds/legendql_api/frames/functions/legendql_api_extend_function.py +0 -0
  97. {pylegend-0.7.0 → pylegend-0.8.0}/pylegend/core/tds/legendql_api/frames/functions/legendql_api_filter_function.py +0 -0
  98. {pylegend-0.7.0 → pylegend-0.8.0}/pylegend/core/tds/legendql_api/frames/functions/legendql_api_function_helpers.py +0 -0
  99. {pylegend-0.7.0 → pylegend-0.8.0}/pylegend/core/tds/legendql_api/frames/functions/legendql_api_groupby_function.py +0 -0
  100. {pylegend-0.7.0 → pylegend-0.8.0}/pylegend/core/tds/legendql_api/frames/functions/legendql_api_head_function.py +0 -0
  101. {pylegend-0.7.0 → pylegend-0.8.0}/pylegend/core/tds/legendql_api/frames/functions/legendql_api_join_function.py +0 -0
  102. {pylegend-0.7.0 → pylegend-0.8.0}/pylegend/core/tds/legendql_api/frames/functions/legendql_api_project_function.py +0 -0
  103. {pylegend-0.7.0 → pylegend-0.8.0}/pylegend/core/tds/legendql_api/frames/functions/legendql_api_rename_function.py +0 -0
  104. {pylegend-0.7.0 → pylegend-0.8.0}/pylegend/core/tds/legendql_api/frames/functions/legendql_api_select_function.py +0 -0
  105. {pylegend-0.7.0 → pylegend-0.8.0}/pylegend/core/tds/legendql_api/frames/functions/legendql_api_slice_function.py +0 -0
  106. {pylegend-0.7.0 → pylegend-0.8.0}/pylegend/core/tds/legendql_api/frames/functions/legendql_api_sort_function.py +0 -0
  107. {pylegend-0.7.0 → pylegend-0.8.0}/pylegend/core/tds/legendql_api/frames/functions/legendql_api_window_extend_function.py +0 -0
  108. {pylegend-0.7.0 → pylegend-0.8.0}/pylegend/core/tds/legendql_api/frames/legendql_api_applied_function_tds_frame.py +0 -0
  109. {pylegend-0.7.0 → pylegend-0.8.0}/pylegend/core/tds/legendql_api/frames/legendql_api_base_tds_frame.py +0 -0
  110. {pylegend-0.7.0 → pylegend-0.8.0}/pylegend/core/tds/legendql_api/frames/legendql_api_input_tds_frame.py +0 -0
  111. {pylegend-0.7.0 → pylegend-0.8.0}/pylegend/core/tds/legendql_api/frames/legendql_api_tds_frame.py +0 -0
  112. {pylegend-0.7.0 → pylegend-0.8.0}/pylegend/core/tds/pandas_api/__init__.py +0 -0
  113. {pylegend-0.7.0 → pylegend-0.8.0}/pylegend/core/tds/pandas_api/frames/__init__.py +0 -0
  114. {pylegend-0.7.0 → pylegend-0.8.0}/pylegend/core/tds/pandas_api/frames/functions/__init__.py +0 -0
  115. {pylegend-0.7.0 → pylegend-0.8.0}/pylegend/core/tds/pandas_api/frames/functions/assign_function.py +0 -0
  116. {pylegend-0.7.0 → pylegend-0.8.0}/pylegend/core/tds/pandas_api/frames/pandas_api_applied_function_tds_frame.py +0 -0
  117. {pylegend-0.7.0 → pylegend-0.8.0}/pylegend/core/tds/pandas_api/frames/pandas_api_base_tds_frame.py +0 -0
  118. {pylegend-0.7.0 → pylegend-0.8.0}/pylegend/core/tds/pandas_api/frames/pandas_api_input_tds_frame.py +0 -0
  119. {pylegend-0.7.0 → pylegend-0.8.0}/pylegend/core/tds/pandas_api/frames/pandas_api_tds_frame.py +0 -0
  120. {pylegend-0.7.0 → pylegend-0.8.0}/pylegend/core/tds/result_handler/__init__.py +0 -0
  121. {pylegend-0.7.0 → pylegend-0.8.0}/pylegend/core/tds/result_handler/result_handler.py +0 -0
  122. {pylegend-0.7.0 → pylegend-0.8.0}/pylegend/core/tds/result_handler/to_csv_file_result_handler.py +0 -0
  123. {pylegend-0.7.0 → pylegend-0.8.0}/pylegend/core/tds/result_handler/to_json_file_result_handler.py +0 -0
  124. {pylegend-0.7.0 → pylegend-0.8.0}/pylegend/core/tds/result_handler/to_string_result_handler.py +0 -0
  125. {pylegend-0.7.0 → pylegend-0.8.0}/pylegend/core/tds/sql_query_helpers.py +0 -0
  126. {pylegend-0.7.0 → pylegend-0.8.0}/pylegend/core/tds/tds_column.py +0 -0
  127. {pylegend-0.7.0 → pylegend-0.8.0}/pylegend/core/tds/tds_frame.py +0 -0
  128. {pylegend-0.7.0 → pylegend-0.8.0}/pylegend/extensions/__init__.py +0 -0
  129. {pylegend-0.7.0 → pylegend-0.8.0}/pylegend/extensions/database/__init__.py +0 -0
  130. {pylegend-0.7.0 → pylegend-0.8.0}/pylegend/extensions/database/vendors/__init__.py +0 -0
  131. {pylegend-0.7.0 → pylegend-0.8.0}/pylegend/extensions/database/vendors/postgres/__init__.py +0 -0
  132. {pylegend-0.7.0 → pylegend-0.8.0}/pylegend/extensions/database/vendors/postgres/postgres_sql_to_string.py +0 -0
  133. {pylegend-0.7.0 → pylegend-0.8.0}/pylegend/extensions/tds/__init__.py +0 -0
  134. {pylegend-0.7.0 → pylegend-0.8.0}/pylegend/extensions/tds/abstract/__init__.py +0 -0
  135. {pylegend-0.7.0 → pylegend-0.8.0}/pylegend/extensions/tds/abstract/legend_function_input_frame.py +0 -0
  136. {pylegend-0.7.0 → pylegend-0.8.0}/pylegend/extensions/tds/abstract/legend_service_input_frame.py +0 -0
  137. {pylegend-0.7.0 → pylegend-0.8.0}/pylegend/extensions/tds/abstract/table_spec_input_frame.py +0 -0
  138. {pylegend-0.7.0 → pylegend-0.8.0}/pylegend/extensions/tds/legacy_api/__init__.py +0 -0
  139. {pylegend-0.7.0 → pylegend-0.8.0}/pylegend/extensions/tds/legacy_api/frames/__init__.py +0 -0
  140. {pylegend-0.7.0 → pylegend-0.8.0}/pylegend/extensions/tds/legacy_api/frames/legacy_api_legend_function_input_frame.py +0 -0
  141. {pylegend-0.7.0 → pylegend-0.8.0}/pylegend/extensions/tds/legacy_api/frames/legacy_api_legend_service_input_frame.py +0 -0
  142. {pylegend-0.7.0 → pylegend-0.8.0}/pylegend/extensions/tds/legacy_api/frames/legacy_api_table_spec_input_frame.py +0 -0
  143. {pylegend-0.7.0 → pylegend-0.8.0}/pylegend/extensions/tds/legendql_api/__init__.py +0 -0
  144. {pylegend-0.7.0 → pylegend-0.8.0}/pylegend/extensions/tds/legendql_api/frames/__init__.py +0 -0
  145. {pylegend-0.7.0 → pylegend-0.8.0}/pylegend/extensions/tds/legendql_api/frames/legendql_api_legend_function_input_frame.py +0 -0
  146. {pylegend-0.7.0 → pylegend-0.8.0}/pylegend/extensions/tds/legendql_api/frames/legendql_api_legend_service_input_frame.py +0 -0
  147. {pylegend-0.7.0 → pylegend-0.8.0}/pylegend/extensions/tds/legendql_api/frames/legendql_api_table_spec_input_frame.py +0 -0
  148. {pylegend-0.7.0 → pylegend-0.8.0}/pylegend/extensions/tds/pandas_api/__init__.py +0 -0
  149. {pylegend-0.7.0 → pylegend-0.8.0}/pylegend/extensions/tds/pandas_api/frames/__init__.py +0 -0
  150. {pylegend-0.7.0 → pylegend-0.8.0}/pylegend/extensions/tds/pandas_api/frames/pandas_api_legend_function_input_frame.py +0 -0
  151. {pylegend-0.7.0 → pylegend-0.8.0}/pylegend/extensions/tds/pandas_api/frames/pandas_api_legend_service_input_frame.py +0 -0
  152. {pylegend-0.7.0 → pylegend-0.8.0}/pylegend/extensions/tds/pandas_api/frames/pandas_api_table_spec_input_frame.py +0 -0
  153. {pylegend-0.7.0 → pylegend-0.8.0}/pylegend/extensions/tds/result_handler/__init__.py +0 -0
  154. {pylegend-0.7.0 → pylegend-0.8.0}/pylegend/extensions/tds/result_handler/to_pandas_df_result_handler.py +0 -0
  155. {pylegend-0.7.0 → pylegend-0.8.0}/pylegend/legacy_api_tds_client.py +0 -0
  156. {pylegend-0.7.0 → pylegend-0.8.0}/pylegend/legendql_api_tds_client.py +0 -0
  157. {pylegend-0.7.0 → pylegend-0.8.0}/pylegend/utils/__init__.py +0 -0
  158. {pylegend-0.7.0 → pylegend-0.8.0}/pylegend/utils/class_utils.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: pylegend
3
- Version: 0.7.0
3
+ Version: 0.8.0
4
4
  Summary: Python language binding for Legend data management platform
5
5
  License: Apache-2.0
6
6
  License-File: LICENSE
@@ -108,7 +108,7 @@ class PyLegendIntegerLiteralExpression(PyLegendExpressionIntegerReturn):
108
108
  return IntegerLiteral(value=self.__value)
109
109
 
110
110
  def to_pure_expression(self, config: FrameToPureConfig) -> str:
111
- return str(self.__value)
111
+ return f"minus({abs(self.__value)})" if self.__value < 0 else str(self.__value)
112
112
 
113
113
  def is_non_nullable(self) -> bool:
114
114
  return True
@@ -128,7 +128,7 @@ class PyLegendFloatLiteralExpression(PyLegendExpressionFloatReturn):
128
128
  return DoubleLiteral(value=self.__value)
129
129
 
130
130
  def to_pure_expression(self, config: FrameToPureConfig) -> str:
131
- return str(self.__value)
131
+ return f"minus({abs(self.__value)})" if self.__value < 0 else str(self.__value)
132
132
 
133
133
  def is_non_nullable(self) -> bool:
134
134
  return True
@@ -0,0 +1,56 @@
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 datetime import datetime, date
16
+ from pylegend._typing import (
17
+ PyLegendSequence,
18
+ PyLegendUnion,
19
+ )
20
+ from pylegend.core.language import (
21
+ convert_literal_to_literal_expression,
22
+ PyLegendBooleanLiteralExpression,
23
+ PyLegendStringLiteralExpression,
24
+ PyLegendIntegerLiteralExpression,
25
+ PyLegendFloatLiteralExpression,
26
+ PyLegendStrictDateLiteralExpression,
27
+ PyLegendDateTimeLiteralExpression,
28
+ PyLegendFloat,
29
+ PyLegendDateTime,
30
+ PyLegendStrictDate,
31
+ PyLegendString,
32
+ PyLegendInteger,
33
+ PyLegendBoolean,
34
+ PyLegendPrimitive
35
+ )
36
+
37
+ __all__: PyLegendSequence[str] = [
38
+ "c",
39
+ ]
40
+
41
+
42
+ def c(constant: PyLegendUnion[int, float, bool, str, datetime, date]) -> PyLegendPrimitive:
43
+ expr = convert_literal_to_literal_expression(constant)
44
+ if isinstance(expr, PyLegendBooleanLiteralExpression):
45
+ return PyLegendBoolean(expr)
46
+ if isinstance(expr, PyLegendStringLiteralExpression):
47
+ return PyLegendString(expr)
48
+ if isinstance(expr, PyLegendIntegerLiteralExpression):
49
+ return PyLegendInteger(expr)
50
+ if isinstance(expr, PyLegendFloatLiteralExpression):
51
+ return PyLegendFloat(expr)
52
+ if isinstance(expr, PyLegendDateTimeLiteralExpression):
53
+ return PyLegendDateTime(expr)
54
+ if isinstance(expr, PyLegendStrictDateLiteralExpression):
55
+ return PyLegendStrictDate(expr)
56
+ raise RuntimeError(f"Unsupported constant type: {type(constant)}")
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "pylegend"
3
- version = "0.7.0"
3
+ version = "0.8.0"
4
4
  description = "Python language binding for Legend data management platform"
5
5
  authors = ["PyLegend Maintainers <legend@finos.org>"]
6
6
  license = "Apache-2.0"
@@ -36,6 +36,7 @@ sqlalchemy = ">=2.0.0"
36
36
  pg8000 = ">=1.0.0"
37
37
  pymysql = ">=1.0.0"
38
38
  cryptography = ">=40.0.0"
39
+ wrapt = "<2.0.0"
39
40
 
40
41
  [build-system]
41
42
  requires = ["poetry-core"]
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes