kirun-py 3.3.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 (295) hide show
  1. kirun_py-3.3.0/PKG-INFO +13 -0
  2. kirun_py-3.3.0/pyproject.toml +30 -0
  3. kirun_py-3.3.0/setup.cfg +4 -0
  4. kirun_py-3.3.0/src/kirun_py/__init__.py +96 -0
  5. kirun_py-3.3.0/src/kirun_py/constant/__init__.py +1 -0
  6. kirun_py-3.3.0/src/kirun_py/constant/ki_run_constants.py +4 -0
  7. kirun_py-3.3.0/src/kirun_py/dsl/__init__.py +5 -0
  8. kirun_py-3.3.0/src/kirun_py/dsl/dsl_compiler.py +130 -0
  9. kirun_py-3.3.0/src/kirun_py/dsl/lexer/__init__.py +14 -0
  10. kirun_py-3.3.0/src/kirun_py/dsl/lexer/dsl_lexer.py +410 -0
  11. kirun_py-3.3.0/src/kirun_py/dsl/lexer/dsl_token.py +88 -0
  12. kirun_py-3.3.0/src/kirun_py/dsl/lexer/keywords.py +72 -0
  13. kirun_py-3.3.0/src/kirun_py/dsl/lexer/lexer_error.py +39 -0
  14. kirun_py-3.3.0/src/kirun_py/dsl/parser/__init__.py +6 -0
  15. kirun_py-3.3.0/src/kirun_py/dsl/parser/ast/__init__.py +27 -0
  16. kirun_py-3.3.0/src/kirun_py/dsl/parser/ast/argument_node.py +45 -0
  17. kirun_py-3.3.0/src/kirun_py/dsl/parser/ast/ast_node.py +27 -0
  18. kirun_py-3.3.0/src/kirun_py/dsl/parser/ast/complex_value_node.py +24 -0
  19. kirun_py-3.3.0/src/kirun_py/dsl/parser/ast/event_decl_node.py +33 -0
  20. kirun_py-3.3.0/src/kirun_py/dsl/parser/ast/expression_node.py +27 -0
  21. kirun_py-3.3.0/src/kirun_py/dsl/parser/ast/function_call_node.py +34 -0
  22. kirun_py-3.3.0/src/kirun_py/dsl/parser/ast/function_def_node.py +45 -0
  23. kirun_py-3.3.0/src/kirun_py/dsl/parser/ast/parameter_decl_node.py +31 -0
  24. kirun_py-3.3.0/src/kirun_py/dsl/parser/ast/schema_literal_node.py +36 -0
  25. kirun_py-3.3.0/src/kirun_py/dsl/parser/ast/schema_node.py +24 -0
  26. kirun_py-3.3.0/src/kirun_py/dsl/parser/ast/statement_node.py +52 -0
  27. kirun_py-3.3.0/src/kirun_py/dsl/parser/dsl_parser.py +772 -0
  28. kirun_py-3.3.0/src/kirun_py/dsl/parser/dsl_parser_error.py +32 -0
  29. kirun_py-3.3.0/src/kirun_py/dsl/transformer/__init__.py +13 -0
  30. kirun_py-3.3.0/src/kirun_py/dsl/transformer/ast_to_json.py +273 -0
  31. kirun_py-3.3.0/src/kirun_py/dsl/transformer/expression_handler.py +43 -0
  32. kirun_py-3.3.0/src/kirun_py/dsl/transformer/json_to_text.py +550 -0
  33. kirun_py-3.3.0/src/kirun_py/dsl/transformer/schema_transformer.py +92 -0
  34. kirun_py-3.3.0/src/kirun_py/exception/__init__.py +2 -0
  35. kirun_py-3.3.0/src/kirun_py/exception/execution_exception.py +10 -0
  36. kirun_py-3.3.0/src/kirun_py/exception/ki_runtime_exception.py +10 -0
  37. kirun_py-3.3.0/src/kirun_py/function/__init__.py +1 -0
  38. kirun_py-3.3.0/src/kirun_py/function/abstract_function.py +146 -0
  39. kirun_py-3.3.0/src/kirun_py/function/function_.py +22 -0
  40. kirun_py-3.3.0/src/kirun_py/function/system/__init__.py +1 -0
  41. kirun_py-3.3.0/src/kirun_py/function/system/array/__init__.py +71 -0
  42. kirun_py-3.3.0/src/kirun_py/function/system/array/abstract_array_function.py +192 -0
  43. kirun_py-3.3.0/src/kirun_py/function/system/array/add_first.py +40 -0
  44. kirun_py-3.3.0/src/kirun_py/function/system/array/array_function_repository.py +95 -0
  45. kirun_py-3.3.0/src/kirun_py/function/system/array/array_to_array_of_objects.py +62 -0
  46. kirun_py-3.3.0/src/kirun_py/function/system/array/array_to_object.py +109 -0
  47. kirun_py-3.3.0/src/kirun_py/function/system/array/binary_search.py +76 -0
  48. kirun_py-3.3.0/src/kirun_py/function/system/array/compare.py +137 -0
  49. kirun_py-3.3.0/src/kirun_py/function/system/array/concatenate.py +39 -0
  50. kirun_py-3.3.0/src/kirun_py/function/system/array/copy.py +66 -0
  51. kirun_py-3.3.0/src/kirun_py/function/system/array/delete.py +60 -0
  52. kirun_py-3.3.0/src/kirun_py/function/system/array/delete_first.py +39 -0
  53. kirun_py-3.3.0/src/kirun_py/function/system/array/delete_from.py +64 -0
  54. kirun_py-3.3.0/src/kirun_py/function/system/array/delete_last.py +39 -0
  55. kirun_py-3.3.0/src/kirun_py/function/system/array/disjoint.py +90 -0
  56. kirun_py-3.3.0/src/kirun_py/function/system/array/equals.py +42 -0
  57. kirun_py-3.3.0/src/kirun_py/function/system/array/fill.py +66 -0
  58. kirun_py-3.3.0/src/kirun_py/function/system/array/frequency.py +75 -0
  59. kirun_py-3.3.0/src/kirun_py/function/system/array/index_of.py +63 -0
  60. kirun_py-3.3.0/src/kirun_py/function/system/array/index_of_array.py +73 -0
  61. kirun_py-3.3.0/src/kirun_py/function/system/array/insert.py +54 -0
  62. kirun_py-3.3.0/src/kirun_py/function/system/array/insert_last.py +43 -0
  63. kirun_py-3.3.0/src/kirun_py/function/system/array/join.py +71 -0
  64. kirun_py-3.3.0/src/kirun_py/function/system/array/last_index_of.py +64 -0
  65. kirun_py-3.3.0/src/kirun_py/function/system/array/last_index_of_array.py +72 -0
  66. kirun_py-3.3.0/src/kirun_py/function/system/array/max_.py +44 -0
  67. kirun_py-3.3.0/src/kirun_py/function/system/array/min_.py +48 -0
  68. kirun_py-3.3.0/src/kirun_py/function/system/array/mis_match.py +67 -0
  69. kirun_py-3.3.0/src/kirun_py/function/system/array/remove_duplicates.py +68 -0
  70. kirun_py-3.3.0/src/kirun_py/function/system/array/reverse.py +61 -0
  71. kirun_py-3.3.0/src/kirun_py/function/system/array/rotate.py +62 -0
  72. kirun_py-3.3.0/src/kirun_py/function/system/array/shuffle.py +50 -0
  73. kirun_py-3.3.0/src/kirun_py/function/system/array/sort.py +116 -0
  74. kirun_py-3.3.0/src/kirun_py/function/system/array/sub_array.py +58 -0
  75. kirun_py-3.3.0/src/kirun_py/function/system/context/__init__.py +1 -0
  76. kirun_py-3.3.0/src/kirun_py/function/system/context/create.py +79 -0
  77. kirun_py-3.3.0/src/kirun_py/function/system/context/get.py +67 -0
  78. kirun_py-3.3.0/src/kirun_py/function/system/context/set_function.py +343 -0
  79. kirun_py-3.3.0/src/kirun_py/function/system/date/__init__.py +40 -0
  80. kirun_py-3.3.0/src/kirun_py/function/system/date/abstract_date_function.py +212 -0
  81. kirun_py-3.3.0/src/kirun_py/function/system/date/add_subtract_time.py +97 -0
  82. kirun_py-3.3.0/src/kirun_py/function/system/date/common.py +32 -0
  83. kirun_py-3.3.0/src/kirun_py/function/system/date/date_function_repository.py +274 -0
  84. kirun_py-3.3.0/src/kirun_py/function/system/date/epoch_to_timestamp.py +63 -0
  85. kirun_py-3.3.0/src/kirun_py/function/system/date/from_date_string.py +49 -0
  86. kirun_py-3.3.0/src/kirun_py/function/system/date/from_now.py +131 -0
  87. kirun_py-3.3.0/src/kirun_py/function/system/date/get_current.py +24 -0
  88. kirun_py-3.3.0/src/kirun_py/function/system/date/get_names.py +77 -0
  89. kirun_py-3.3.0/src/kirun_py/function/system/date/is_between.py +57 -0
  90. kirun_py-3.3.0/src/kirun_py/function/system/date/is_valid_iso_date.py +59 -0
  91. kirun_py-3.3.0/src/kirun_py/function/system/date/last_first_of.py +58 -0
  92. kirun_py-3.3.0/src/kirun_py/function/system/date/set_time_zone.py +49 -0
  93. kirun_py-3.3.0/src/kirun_py/function/system/date/start_end_of.py +90 -0
  94. kirun_py-3.3.0/src/kirun_py/function/system/date/time_as.py +71 -0
  95. kirun_py-3.3.0/src/kirun_py/function/system/date/timestamp_to_epoch.py +51 -0
  96. kirun_py-3.3.0/src/kirun_py/function/system/date/to_date_string.py +98 -0
  97. kirun_py-3.3.0/src/kirun_py/function/system/generate_event.py +81 -0
  98. kirun_py-3.3.0/src/kirun_py/function/system/if_.py +54 -0
  99. kirun_py-3.3.0/src/kirun_py/function/system/json/__init__.py +1 -0
  100. kirun_py-3.3.0/src/kirun_py/function/system/json/json_parse.py +61 -0
  101. kirun_py-3.3.0/src/kirun_py/function/system/json/json_stringify.py +46 -0
  102. kirun_py-3.3.0/src/kirun_py/function/system/loop/__init__.py +1 -0
  103. kirun_py-3.3.0/src/kirun_py/function/system/loop/break_.py +45 -0
  104. kirun_py-3.3.0/src/kirun_py/function/system/loop/count_loop.py +83 -0
  105. kirun_py-3.3.0/src/kirun_py/function/system/loop/for_each_loop.py +90 -0
  106. kirun_py-3.3.0/src/kirun_py/function/system/loop/range_loop.py +132 -0
  107. kirun_py-3.3.0/src/kirun_py/function/system/make.py +80 -0
  108. kirun_py-3.3.0/src/kirun_py/function/system/math/__init__.py +21 -0
  109. kirun_py-3.3.0/src/kirun_py/function/system/math/add.py +46 -0
  110. kirun_py-3.3.0/src/kirun_py/function/system/math/generic_math_function.py +89 -0
  111. kirun_py-3.3.0/src/kirun_py/function/system/math/hypotenuse.py +55 -0
  112. kirun_py-3.3.0/src/kirun_py/function/system/math/math_function_repository.py +130 -0
  113. kirun_py-3.3.0/src/kirun_py/function/system/math/maximum.py +46 -0
  114. kirun_py-3.3.0/src/kirun_py/function/system/math/minimum.py +46 -0
  115. kirun_py-3.3.0/src/kirun_py/function/system/math/random_.py +40 -0
  116. kirun_py-3.3.0/src/kirun_py/function/system/math/random_any.py +58 -0
  117. kirun_py-3.3.0/src/kirun_py/function/system/object/__init__.py +21 -0
  118. kirun_py-3.3.0/src/kirun_py/function/system/object/abstract_object_function.py +30 -0
  119. kirun_py-3.3.0/src/kirun_py/function/system/object/object_convert.py +106 -0
  120. kirun_py-3.3.0/src/kirun_py/function/system/object/object_delete_key.py +56 -0
  121. kirun_py-3.3.0/src/kirun_py/function/system/object/object_entries.py +38 -0
  122. kirun_py-3.3.0/src/kirun_py/function/system/object/object_function_repository.py +38 -0
  123. kirun_py-3.3.0/src/kirun_py/function/system/object/object_keys.py +41 -0
  124. kirun_py-3.3.0/src/kirun_py/function/system/object/object_put_value.py +68 -0
  125. kirun_py-3.3.0/src/kirun_py/function/system/object/object_values.py +40 -0
  126. kirun_py-3.3.0/src/kirun_py/function/system/print_.py +57 -0
  127. kirun_py-3.3.0/src/kirun_py/function/system/string/__init__.py +33 -0
  128. kirun_py-3.3.0/src/kirun_py/function/system/string/abstract_string_function.py +381 -0
  129. kirun_py-3.3.0/src/kirun_py/function/system/string/concatenate.py +59 -0
  130. kirun_py-3.3.0/src/kirun_py/function/system/string/delete_for_given_length.py +74 -0
  131. kirun_py-3.3.0/src/kirun_py/function/system/string/insert_at_given_position.py +74 -0
  132. kirun_py-3.3.0/src/kirun_py/function/system/string/matches.py +61 -0
  133. kirun_py-3.3.0/src/kirun_py/function/system/string/post_pad.py +80 -0
  134. kirun_py-3.3.0/src/kirun_py/function/system/string/pre_pad.py +81 -0
  135. kirun_py-3.3.0/src/kirun_py/function/system/string/region_matches.py +107 -0
  136. kirun_py-3.3.0/src/kirun_py/function/system/string/replace_at_given_position.py +85 -0
  137. kirun_py-3.3.0/src/kirun_py/function/system/string/reverse.py +56 -0
  138. kirun_py-3.3.0/src/kirun_py/function/system/string/split.py +61 -0
  139. kirun_py-3.3.0/src/kirun_py/function/system/string/string_function_repository.py +161 -0
  140. kirun_py-3.3.0/src/kirun_py/function/system/string/to_string.py +62 -0
  141. kirun_py-3.3.0/src/kirun_py/function/system/string/trim_to.py +61 -0
  142. kirun_py-3.3.0/src/kirun_py/function/system/validate_schema.py +79 -0
  143. kirun_py-3.3.0/src/kirun_py/function/system/wait.py +49 -0
  144. kirun_py-3.3.0/src/kirun_py/hybrid_repository.py +25 -0
  145. kirun_py-3.3.0/src/kirun_py/json/__init__.py +1 -0
  146. kirun_py-3.3.0/src/kirun_py/json/json_expression.py +6 -0
  147. kirun_py-3.3.0/src/kirun_py/json/schema/__init__.py +1 -0
  148. kirun_py-3.3.0/src/kirun_py/json/schema/array/__init__.py +1 -0
  149. kirun_py-3.3.0/src/kirun_py/json/schema/array/array_schema_type.py +69 -0
  150. kirun_py-3.3.0/src/kirun_py/json/schema/convertor/__init__.py +0 -0
  151. kirun_py-3.3.0/src/kirun_py/json/schema/convertor/boolean_convertor.py +47 -0
  152. kirun_py-3.3.0/src/kirun_py/json/schema/convertor/enums/__init__.py +0 -0
  153. kirun_py-3.3.0/src/kirun_py/json/schema/convertor/enums/conversion_mode.py +8 -0
  154. kirun_py-3.3.0/src/kirun_py/json/schema/convertor/exception/__init__.py +0 -0
  155. kirun_py-3.3.0/src/kirun_py/json/schema/convertor/exception/schema_conversion_exception.py +35 -0
  156. kirun_py-3.3.0/src/kirun_py/json/schema/convertor/null_convertor.py +22 -0
  157. kirun_py-3.3.0/src/kirun_py/json/schema/convertor/number_convertor.py +40 -0
  158. kirun_py-3.3.0/src/kirun_py/json/schema/convertor/string_convertor.py +20 -0
  159. kirun_py-3.3.0/src/kirun_py/json/schema/schema.py +759 -0
  160. kirun_py-3.3.0/src/kirun_py/json/schema/schema_util.py +131 -0
  161. kirun_py-3.3.0/src/kirun_py/json/schema/string/__init__.py +1 -0
  162. kirun_py-3.3.0/src/kirun_py/json/schema/string/string_format.py +9 -0
  163. kirun_py-3.3.0/src/kirun_py/json/schema/type/__init__.py +5 -0
  164. kirun_py-3.3.0/src/kirun_py/json/schema/type/multiple_type.py +26 -0
  165. kirun_py-3.3.0/src/kirun_py/json/schema/type/schema_type.py +13 -0
  166. kirun_py-3.3.0/src/kirun_py/json/schema/type/single_type.py +22 -0
  167. kirun_py-3.3.0/src/kirun_py/json/schema/type/type_.py +16 -0
  168. kirun_py-3.3.0/src/kirun_py/json/schema/type/type_util.py +35 -0
  169. kirun_py-3.3.0/src/kirun_py/json/schema/validator/__init__.py +1 -0
  170. kirun_py-3.3.0/src/kirun_py/json/schema/validator/any_of_all_of_one_of_validator.py +142 -0
  171. kirun_py-3.3.0/src/kirun_py/json/schema/validator/array_validator.py +293 -0
  172. kirun_py-3.3.0/src/kirun_py/json/schema/validator/boolean_validator.py +29 -0
  173. kirun_py-3.3.0/src/kirun_py/json/schema/validator/exception/__init__.py +2 -0
  174. kirun_py-3.3.0/src/kirun_py/json/schema/validator/exception/schema_reference_exception.py +15 -0
  175. kirun_py-3.3.0/src/kirun_py/json/schema/validator/exception/schema_validation_exception.py +15 -0
  176. kirun_py-3.3.0/src/kirun_py/json/schema/validator/null_validator.py +22 -0
  177. kirun_py-3.3.0/src/kirun_py/json/schema/validator/number_validator.py +170 -0
  178. kirun_py-3.3.0/src/kirun_py/json/schema/validator/object_validator.py +222 -0
  179. kirun_py-3.3.0/src/kirun_py/json/schema/validator/schema_validator.py +200 -0
  180. kirun_py-3.3.0/src/kirun_py/json/schema/validator/string_validator.py +134 -0
  181. kirun_py-3.3.0/src/kirun_py/json/schema/validator/type_validator.py +61 -0
  182. kirun_py-3.3.0/src/kirun_py/model/__init__.py +15 -0
  183. kirun_py-3.3.0/src/kirun_py/model/abstract_statement.py +49 -0
  184. kirun_py-3.3.0/src/kirun_py/model/argument.py +34 -0
  185. kirun_py-3.3.0/src/kirun_py/model/event.py +59 -0
  186. kirun_py-3.3.0/src/kirun_py/model/event_result.py +32 -0
  187. kirun_py-3.3.0/src/kirun_py/model/function_definition.py +120 -0
  188. kirun_py-3.3.0/src/kirun_py/model/function_output.py +37 -0
  189. kirun_py-3.3.0/src/kirun_py/model/function_output_generator.py +9 -0
  190. kirun_py-3.3.0/src/kirun_py/model/function_signature.py +96 -0
  191. kirun_py-3.3.0/src/kirun_py/model/parameter.py +102 -0
  192. kirun_py-3.3.0/src/kirun_py/model/parameter_reference.py +88 -0
  193. kirun_py-3.3.0/src/kirun_py/model/parameter_reference_type.py +6 -0
  194. kirun_py-3.3.0/src/kirun_py/model/parameter_type.py +6 -0
  195. kirun_py-3.3.0/src/kirun_py/model/position.py +31 -0
  196. kirun_py-3.3.0/src/kirun_py/model/statement.py +166 -0
  197. kirun_py-3.3.0/src/kirun_py/model/statement_group.py +61 -0
  198. kirun_py-3.3.0/src/kirun_py/namespaces/__init__.py +1 -0
  199. kirun_py-3.3.0/src/kirun_py/namespaces/namespaces.py +10 -0
  200. kirun_py-3.3.0/src/kirun_py/repository/__init__.py +10 -0
  201. kirun_py-3.3.0/src/kirun_py/repository/ki_run_function_repository.py +93 -0
  202. kirun_py-3.3.0/src/kirun_py/repository/ki_run_schema_repository.py +72 -0
  203. kirun_py-3.3.0/src/kirun_py/runtime/__init__.py +0 -0
  204. kirun_py-3.3.0/src/kirun_py/runtime/context_element.py +26 -0
  205. kirun_py-3.3.0/src/kirun_py/runtime/debug/__init__.py +14 -0
  206. kirun_py-3.3.0/src/kirun_py/runtime/debug/debug_collector.py +262 -0
  207. kirun_py-3.3.0/src/kirun_py/runtime/debug/debug_formatter.py +94 -0
  208. kirun_py-3.3.0/src/kirun_py/runtime/debug/types.py +42 -0
  209. kirun_py-3.3.0/src/kirun_py/runtime/expression/__init__.py +0 -0
  210. kirun_py-3.3.0/src/kirun_py/runtime/expression/exception/__init__.py +0 -0
  211. kirun_py-3.3.0/src/kirun_py/runtime/expression/exception/expression_evaluation_exception.py +15 -0
  212. kirun_py-3.3.0/src/kirun_py/runtime/expression/expression.py +583 -0
  213. kirun_py-3.3.0/src/kirun_py/runtime/expression/expression_evaluator.py +745 -0
  214. kirun_py-3.3.0/src/kirun_py/runtime/expression/expression_lexer.py +318 -0
  215. kirun_py-3.3.0/src/kirun_py/runtime/expression/expression_parser.py +544 -0
  216. kirun_py-3.3.0/src/kirun_py/runtime/expression/expression_token.py +13 -0
  217. kirun_py-3.3.0/src/kirun_py/runtime/expression/expression_token_value.py +22 -0
  218. kirun_py-3.3.0/src/kirun_py/runtime/expression/operation.py +289 -0
  219. kirun_py-3.3.0/src/kirun_py/runtime/expression/operators/__init__.py +1 -0
  220. kirun_py-3.3.0/src/kirun_py/runtime/expression/operators/binary/__init__.py +1 -0
  221. kirun_py-3.3.0/src/kirun_py/runtime/expression/operators/binary/arithmetic_addition_operator.py +27 -0
  222. kirun_py-3.3.0/src/kirun_py/runtime/expression/operators/binary/arithmetic_division_operator.py +13 -0
  223. kirun_py-3.3.0/src/kirun_py/runtime/expression/operators/binary/arithmetic_integer_division_operator.py +13 -0
  224. kirun_py-3.3.0/src/kirun_py/runtime/expression/operators/binary/arithmetic_modulus_operator.py +13 -0
  225. kirun_py-3.3.0/src/kirun_py/runtime/expression/operators/binary/arithmetic_multiplication_operator.py +41 -0
  226. kirun_py-3.3.0/src/kirun_py/runtime/expression/operators/binary/arithmetic_subtraction_operator.py +13 -0
  227. kirun_py-3.3.0/src/kirun_py/runtime/expression/operators/binary/array_operator.py +35 -0
  228. kirun_py-3.3.0/src/kirun_py/runtime/expression/operators/binary/array_range_operator.py +13 -0
  229. kirun_py-3.3.0/src/kirun_py/runtime/expression/operators/binary/binary_operator.py +24 -0
  230. kirun_py-3.3.0/src/kirun_py/runtime/expression/operators/binary/bitwise_and_operator.py +13 -0
  231. kirun_py-3.3.0/src/kirun_py/runtime/expression/operators/binary/bitwise_left_shift_operator.py +13 -0
  232. kirun_py-3.3.0/src/kirun_py/runtime/expression/operators/binary/bitwise_or_operator.py +13 -0
  233. kirun_py-3.3.0/src/kirun_py/runtime/expression/operators/binary/bitwise_right_shift_operator.py +13 -0
  234. kirun_py-3.3.0/src/kirun_py/runtime/expression/operators/binary/bitwise_unsigned_right_shift_operator.py +13 -0
  235. kirun_py-3.3.0/src/kirun_py/runtime/expression/operators/binary/bitwise_xor_operator.py +13 -0
  236. kirun_py-3.3.0/src/kirun_py/runtime/expression/operators/binary/logical_and_operator.py +11 -0
  237. kirun_py-3.3.0/src/kirun_py/runtime/expression/operators/binary/logical_equal_operator.py +12 -0
  238. kirun_py-3.3.0/src/kirun_py/runtime/expression/operators/binary/logical_greater_than_equal_operator.py +32 -0
  239. kirun_py-3.3.0/src/kirun_py/runtime/expression/operators/binary/logical_greater_than_operator.py +32 -0
  240. kirun_py-3.3.0/src/kirun_py/runtime/expression/operators/binary/logical_less_than_equal_operator.py +32 -0
  241. kirun_py-3.3.0/src/kirun_py/runtime/expression/operators/binary/logical_less_than_operator.py +32 -0
  242. kirun_py-3.3.0/src/kirun_py/runtime/expression/operators/binary/logical_not_equal_operator.py +12 -0
  243. kirun_py-3.3.0/src/kirun_py/runtime/expression/operators/binary/logical_nullish_coalescing_operator.py +12 -0
  244. kirun_py-3.3.0/src/kirun_py/runtime/expression/operators/binary/logical_or_operator.py +11 -0
  245. kirun_py-3.3.0/src/kirun_py/runtime/expression/operators/binary/object_operator.py +26 -0
  246. kirun_py-3.3.0/src/kirun_py/runtime/expression/operators/ternary/__init__.py +1 -0
  247. kirun_py-3.3.0/src/kirun_py/runtime/expression/operators/ternary/conditional_ternary_operator.py +11 -0
  248. kirun_py-3.3.0/src/kirun_py/runtime/expression/operators/ternary/ternary_operator.py +24 -0
  249. kirun_py-3.3.0/src/kirun_py/runtime/expression/operators/unary/__init__.py +1 -0
  250. kirun_py-3.3.0/src/kirun_py/runtime/expression/operators/unary/arithmetic_unary_minus_operator.py +15 -0
  251. kirun_py-3.3.0/src/kirun_py/runtime/expression/operators/unary/arithmetic_unary_plus_operator.py +15 -0
  252. kirun_py-3.3.0/src/kirun_py/runtime/expression/operators/unary/bitwise_complement_operator.py +28 -0
  253. kirun_py-3.3.0/src/kirun_py/runtime/expression/operators/unary/logical_not_operator.py +14 -0
  254. kirun_py-3.3.0/src/kirun_py/runtime/expression/operators/unary/unary_operator.py +24 -0
  255. kirun_py-3.3.0/src/kirun_py/runtime/expression/tokenextractor/__init__.py +1 -0
  256. kirun_py-3.3.0/src/kirun_py/runtime/expression/tokenextractor/expression_internal_value_extractor.py +38 -0
  257. kirun_py-3.3.0/src/kirun_py/runtime/expression/tokenextractor/literal_token_value_extractor.py +79 -0
  258. kirun_py-3.3.0/src/kirun_py/runtime/expression/tokenextractor/object_value_setter_extractor.py +282 -0
  259. kirun_py-3.3.0/src/kirun_py/runtime/expression/tokenextractor/token_value_extractor.py +374 -0
  260. kirun_py-3.3.0/src/kirun_py/runtime/function_execution_parameters.py +135 -0
  261. kirun_py-3.3.0/src/kirun_py/runtime/graph/__init__.py +1 -0
  262. kirun_py-3.3.0/src/kirun_py/runtime/graph/execution_graph.py +79 -0
  263. kirun_py-3.3.0/src/kirun_py/runtime/graph/graph_vertex.py +124 -0
  264. kirun_py-3.3.0/src/kirun_py/runtime/graph/graph_vertex_type.py +12 -0
  265. kirun_py-3.3.0/src/kirun_py/runtime/ki_runtime.py +915 -0
  266. kirun_py-3.3.0/src/kirun_py/runtime/statement_execution.py +56 -0
  267. kirun_py-3.3.0/src/kirun_py/runtime/statement_message.py +33 -0
  268. kirun_py-3.3.0/src/kirun_py/runtime/statement_message_type.py +9 -0
  269. kirun_py-3.3.0/src/kirun_py/runtime/tokenextractor/__init__.py +1 -0
  270. kirun_py-3.3.0/src/kirun_py/runtime/tokenextractor/arguments_token_value_extractor.py +42 -0
  271. kirun_py-3.3.0/src/kirun_py/runtime/tokenextractor/context_token_value_extractor.py +48 -0
  272. kirun_py-3.3.0/src/kirun_py/runtime/tokenextractor/output_map_token_value_extractor.py +70 -0
  273. kirun_py-3.3.0/src/kirun_py/util/__init__.py +8 -0
  274. kirun_py-3.3.0/src/kirun_py/util/array_util.py +29 -0
  275. kirun_py-3.3.0/src/kirun_py/util/deep_equal.py +56 -0
  276. kirun_py-3.3.0/src/kirun_py/util/duplicate.py +8 -0
  277. kirun_py-3.3.0/src/kirun_py/util/error_message_formatter.py +120 -0
  278. kirun_py-3.3.0/src/kirun_py/util/json/__init__.py +0 -0
  279. kirun_py-3.3.0/src/kirun_py/util/linked_list.py +187 -0
  280. kirun_py-3.3.0/src/kirun_py/util/map_util.py +49 -0
  281. kirun_py-3.3.0/src/kirun_py/util/null_check.py +5 -0
  282. kirun_py-3.3.0/src/kirun_py/util/primitive/__init__.py +1 -0
  283. kirun_py-3.3.0/src/kirun_py/util/primitive/primitive_util.py +141 -0
  284. kirun_py-3.3.0/src/kirun_py/util/string/__init__.py +3 -0
  285. kirun_py-3.3.0/src/kirun_py/util/string/string_builder.py +48 -0
  286. kirun_py-3.3.0/src/kirun_py/util/string/string_formatter.py +27 -0
  287. kirun_py-3.3.0/src/kirun_py/util/string/string_util.py +57 -0
  288. kirun_py-3.3.0/src/kirun_py/util/tuples.py +53 -0
  289. kirun_py-3.3.0/src/kirun_py/util/uuid_.py +5 -0
  290. kirun_py-3.3.0/src/kirun_py/util/valid_date_time_util.py +137 -0
  291. kirun_py-3.3.0/src/kirun_py.egg-info/PKG-INFO +13 -0
  292. kirun_py-3.3.0/src/kirun_py.egg-info/SOURCES.txt +293 -0
  293. kirun_py-3.3.0/src/kirun_py.egg-info/dependency_links.txt +1 -0
  294. kirun_py-3.3.0/src/kirun_py.egg-info/requires.txt +7 -0
  295. kirun_py-3.3.0/src/kirun_py.egg-info/top_level.txt +1 -0
@@ -0,0 +1,13 @@
1
+ Metadata-Version: 2.4
2
+ Name: kirun-py
3
+ Version: 3.3.0
4
+ Summary: Python Runtime for Kinetic Instructions
5
+ Author: Kiran Kumar Grandhi
6
+ License: MIT
7
+ Requires-Python: >=3.9
8
+ Requires-Dist: python-dateutil>=2.8
9
+ Provides-Extra: dev
10
+ Requires-Dist: pytest>=7.0; extra == "dev"
11
+ Requires-Dist: pytest-asyncio>=0.21; extra == "dev"
12
+ Requires-Dist: pytest-cov>=4.0; extra == "dev"
13
+ Requires-Dist: ruff>=0.1; extra == "dev"
@@ -0,0 +1,30 @@
1
+ [build-system]
2
+ requires = ["setuptools>=68.0", "wheel"]
3
+ build-backend = "setuptools.build_meta"
4
+
5
+ [project]
6
+ name = "kirun-py"
7
+ version = "3.3.0"
8
+ description = "Python Runtime for Kinetic Instructions"
9
+ authors = [{ name = "Kiran Kumar Grandhi" }]
10
+ license = { text = "MIT" }
11
+ requires-python = ">=3.9"
12
+ dependencies = ["python-dateutil>=2.8"]
13
+
14
+ [project.optional-dependencies]
15
+ dev = [
16
+ "pytest>=7.0",
17
+ "pytest-asyncio>=0.21",
18
+ "pytest-cov>=4.0",
19
+ "ruff>=0.1",
20
+ ]
21
+
22
+ [tool.setuptools.packages.find]
23
+ where = ["src"]
24
+
25
+ [tool.pytest.ini_options]
26
+ asyncio_mode = "auto"
27
+ testpaths = ["tests"]
28
+
29
+ [tool.ruff]
30
+ line-length = 120
@@ -0,0 +1,4 @@
1
+ [egg_info]
2
+ tag_build =
3
+ tag_date = 0
4
+
@@ -0,0 +1,96 @@
1
+ # kirun-py: Python Runtime for Kinetic Instructions
2
+
3
+ # Core repositories
4
+ from kirun_py.repository.ki_run_function_repository import KIRunFunctionRepository
5
+ from kirun_py.repository.ki_run_schema_repository import KIRunSchemaRepository
6
+ from kirun_py.repository import Repository
7
+ from kirun_py.hybrid_repository import HybridRepository
8
+
9
+ # Runtime
10
+ from kirun_py.runtime.ki_runtime import KIRuntime
11
+ from kirun_py.runtime.function_execution_parameters import FunctionExecutionParameters
12
+ from kirun_py.runtime.context_element import ContextElement
13
+ from kirun_py.runtime.statement_execution import StatementExecution
14
+ from kirun_py.runtime.statement_message import StatementMessage
15
+ from kirun_py.runtime.statement_message_type import StatementMessageType
16
+ from kirun_py.runtime.graph.execution_graph import ExecutionGraph
17
+ from kirun_py.runtime.graph.graph_vertex import GraphVertex
18
+ from kirun_py.runtime.graph.graph_vertex_type import GraphVertexType
19
+ from kirun_py.runtime.expression.expression import Expression
20
+ from kirun_py.runtime.expression.expression_evaluator import ExpressionEvaluator
21
+ from kirun_py.runtime.expression.operation import Operation
22
+ from kirun_py.runtime.expression.expression_token import ExpressionToken
23
+ from kirun_py.runtime.expression.expression_token_value import ExpressionTokenValue
24
+ from kirun_py.runtime.expression.exception.expression_evaluation_exception import ExpressionEvaluationException
25
+ from kirun_py.runtime.expression.tokenextractor.token_value_extractor import TokenValueExtractor
26
+ from kirun_py.runtime.expression.tokenextractor.literal_token_value_extractor import LiteralTokenValueExtractor
27
+ from kirun_py.runtime.tokenextractor.context_token_value_extractor import ContextTokenValueExtractor
28
+ from kirun_py.runtime.tokenextractor.output_map_token_value_extractor import OutputMapTokenValueExtractor
29
+ from kirun_py.runtime.tokenextractor.arguments_token_value_extractor import ArgumentsTokenValueExtractor
30
+
31
+ # Function abstractions
32
+ from kirun_py.function.function_ import Function
33
+ from kirun_py.function.abstract_function import AbstractFunction
34
+
35
+ # Model
36
+ from kirun_py.model.parameter import Parameter
37
+ from kirun_py.model.parameter_reference import ParameterReference
38
+ from kirun_py.model.parameter_reference_type import ParameterReferenceType
39
+ from kirun_py.model.parameter_type import ParameterType
40
+ from kirun_py.model.event import Event
41
+ from kirun_py.model.event_result import EventResult
42
+ from kirun_py.model.function_definition import FunctionDefinition
43
+ from kirun_py.model.function_signature import FunctionSignature
44
+ from kirun_py.model.function_output import FunctionOutput
45
+ from kirun_py.model.function_output_generator import FunctionOutputGenerator
46
+ from kirun_py.model.statement import Statement
47
+ from kirun_py.model.statement_group import StatementGroup
48
+ from kirun_py.model.abstract_statement import AbstractStatement
49
+ from kirun_py.model.argument import Argument
50
+ from kirun_py.model.position import Position
51
+
52
+ # JSON/Schema
53
+ from kirun_py.json.schema.schema import Schema, AdditionalType
54
+ from kirun_py.json.schema.schema_util import SchemaUtil
55
+ from kirun_py.json.schema.type.schema_type import SchemaType
56
+ from kirun_py.json.schema.type.type_util import TypeUtil
57
+ from kirun_py.json.schema.validator.schema_validator import SchemaValidator
58
+ from kirun_py.json.schema.validator.exception.schema_validation_exception import SchemaValidationException
59
+
60
+ # Namespaces
61
+ from kirun_py.namespaces.namespaces import Namespaces
62
+
63
+ # Exceptions
64
+ from kirun_py.exception.ki_runtime_exception import KIRuntimeException
65
+ from kirun_py.exception.execution_exception import ExecutionException
66
+
67
+ # Utilities
68
+ from kirun_py.util.null_check import is_null_value
69
+ from kirun_py.util.deep_equal import deep_equal
70
+ from kirun_py.util.linked_list import LinkedList
71
+ from kirun_py.util.tuples import Tuple2, Tuple3, Tuple4
72
+ from kirun_py.util.string.string_formatter import StringFormatter
73
+ from kirun_py.util.string.string_util import StringUtil
74
+ from kirun_py.util.string.string_builder import StringBuilder
75
+
76
+ __all__ = [
77
+ 'KIRunFunctionRepository', 'KIRunSchemaRepository', 'Repository', 'HybridRepository',
78
+ 'KIRuntime', 'FunctionExecutionParameters', 'ContextElement',
79
+ 'StatementExecution', 'StatementMessage', 'StatementMessageType',
80
+ 'ExecutionGraph', 'GraphVertex', 'GraphVertexType',
81
+ 'Expression', 'ExpressionEvaluator', 'Operation', 'ExpressionToken',
82
+ 'ExpressionTokenValue', 'ExpressionEvaluationException',
83
+ 'TokenValueExtractor', 'LiteralTokenValueExtractor',
84
+ 'ContextTokenValueExtractor', 'OutputMapTokenValueExtractor', 'ArgumentsTokenValueExtractor',
85
+ 'Function', 'AbstractFunction',
86
+ 'Parameter', 'ParameterReference', 'ParameterReferenceType', 'ParameterType',
87
+ 'Event', 'EventResult', 'FunctionDefinition', 'FunctionSignature', 'FunctionOutput',
88
+ 'FunctionOutputGenerator', 'Statement', 'StatementGroup', 'AbstractStatement',
89
+ 'Argument', 'Position',
90
+ 'Schema', 'AdditionalType', 'SchemaUtil', 'SchemaType', 'TypeUtil',
91
+ 'SchemaValidator', 'SchemaValidationException',
92
+ 'Namespaces',
93
+ 'KIRuntimeException', 'ExecutionException',
94
+ 'is_null_value', 'deep_equal', 'LinkedList', 'Tuple2', 'Tuple3', 'Tuple4',
95
+ 'StringFormatter', 'StringUtil', 'StringBuilder',
96
+ ]
@@ -0,0 +1 @@
1
+ from .ki_run_constants import KIRunConstants
@@ -0,0 +1,4 @@
1
+ class KIRunConstants:
2
+ NAMESPACE: str = 'namespace'
3
+ NAME: str = 'name'
4
+ ID: str = 'id'
@@ -0,0 +1,5 @@
1
+ from __future__ import annotations
2
+
3
+ from kirun_py.dsl.dsl_compiler import DSLCompiler, ValidationResult, FormattedError
4
+
5
+ __all__ = ['DSLCompiler', 'ValidationResult', 'FormattedError']
@@ -0,0 +1,130 @@
1
+ from __future__ import annotations
2
+
3
+ from typing import Any, List, Optional
4
+
5
+ from kirun_py.dsl.lexer.dsl_lexer import DSLLexer
6
+ from kirun_py.dsl.parser.dsl_parser import DSLParser
7
+ from kirun_py.dsl.transformer.ast_to_json import ASTToJSONTransformer
8
+ from kirun_py.dsl.transformer.json_to_text import JSONToTextTransformer
9
+
10
+
11
+ class FormattedError:
12
+ """Formatted error for user-friendly display."""
13
+
14
+ def __init__(
15
+ self,
16
+ message: str,
17
+ line: Optional[int] = None,
18
+ column: Optional[int] = None,
19
+ snippet: Optional[str] = None,
20
+ ) -> None:
21
+ self.message = message
22
+ self.line = line
23
+ self.column = column
24
+ self.snippet = snippet
25
+
26
+
27
+ class ValidationResult:
28
+ """Validation result with errors if any."""
29
+
30
+ def __init__(self, valid: bool, errors: Optional[List[FormattedError]] = None) -> None:
31
+ self.valid = valid
32
+ self.errors: List[FormattedError] = errors if errors is not None else []
33
+
34
+
35
+ class DSLCompiler:
36
+ """
37
+ DSL Compiler - High-level API.
38
+ Main entry point for DSL compilation and decompilation.
39
+ """
40
+
41
+ @staticmethod
42
+ def compile(text: str) -> Any:
43
+ """
44
+ Compile DSL text to FunctionDefinition JSON.
45
+
46
+ Args:
47
+ text: DSL source text.
48
+
49
+ Returns:
50
+ FunctionDefinition JSON (dict).
51
+ """
52
+ # 1. Lex
53
+ lexer = DSLLexer(text)
54
+ tokens = lexer.tokenize()
55
+
56
+ # 2. Parse (pass original input for exact expression extraction)
57
+ parser = DSLParser(tokens, text)
58
+ ast = parser.parse()
59
+
60
+ # 3. Transform
61
+ transformer = ASTToJSONTransformer()
62
+
63
+ # Flatten nested blocks before transformation
64
+ transformer.flatten_nested_blocks(ast)
65
+
66
+ json_obj = transformer.transform(ast)
67
+
68
+ return json_obj
69
+
70
+ @staticmethod
71
+ async def decompile(json_obj: Any) -> str:
72
+ """
73
+ Decompile FunctionDefinition JSON to DSL text.
74
+
75
+ Args:
76
+ json_obj: FunctionDefinition JSON (dict).
77
+
78
+ Returns:
79
+ DSL source text.
80
+ """
81
+ transformer = JSONToTextTransformer()
82
+ return await transformer.transform(json_obj)
83
+
84
+ @staticmethod
85
+ def validate(text: str) -> ValidationResult:
86
+ """
87
+ Validate DSL syntax without full compilation.
88
+
89
+ Args:
90
+ text: DSL source text.
91
+
92
+ Returns:
93
+ ValidationResult with errors if any.
94
+ """
95
+ try:
96
+ DSLCompiler.compile(text)
97
+ return ValidationResult(valid=True)
98
+ except Exception as error:
99
+ return ValidationResult(
100
+ valid=False,
101
+ errors=[DSLCompiler._format_error(error)],
102
+ )
103
+
104
+ @staticmethod
105
+ async def format(text: str) -> str:
106
+ """
107
+ Format DSL text (parse and regenerate with consistent formatting).
108
+
109
+ Args:
110
+ text: DSL source text.
111
+
112
+ Returns:
113
+ Formatted DSL text.
114
+ """
115
+ json_obj = DSLCompiler.compile(text)
116
+ return await DSLCompiler.decompile(json_obj)
117
+
118
+ @staticmethod
119
+ def _format_error(error: Exception) -> FormattedError:
120
+ """Format error for user-friendly display."""
121
+ formatted = FormattedError(
122
+ message=str(error) or 'Unknown error',
123
+ )
124
+
125
+ location = getattr(error, 'location', None)
126
+ if location is not None:
127
+ formatted.line = getattr(location, 'line', None)
128
+ formatted.column = getattr(location, 'column', None)
129
+
130
+ return formatted
@@ -0,0 +1,14 @@
1
+ from __future__ import annotations
2
+
3
+ from kirun_py.dsl.lexer.dsl_token import DSLTokenType, SourceLocation, DSLToken
4
+ from kirun_py.dsl.lexer.keywords import KEYWORDS, BLOCK_NAMES, PRIMITIVE_TYPES, is_keyword, is_block_name, is_primitive_type
5
+ from kirun_py.dsl.lexer.lexer_error import LexerError
6
+ from kirun_py.dsl.lexer.dsl_lexer import DSLLexer
7
+
8
+ __all__ = [
9
+ 'DSLTokenType', 'SourceLocation', 'DSLToken',
10
+ 'KEYWORDS', 'BLOCK_NAMES', 'PRIMITIVE_TYPES',
11
+ 'is_keyword', 'is_block_name', 'is_primitive_type',
12
+ 'LexerError',
13
+ 'DSLLexer',
14
+ ]