exonware-xwnode 0.0.1.13__py3-none-any.whl → 0.0.1.15__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (213) hide show
  1. exonware/__init__.py +1 -1
  2. exonware/xwnode/__init__.py +1 -1
  3. exonware/xwnode/base.py +1 -1
  4. exonware/xwnode/common/__init__.py +20 -0
  5. exonware/xwnode/common/management/__init__.py +26 -0
  6. exonware/xwnode/{strategies → common/management}/manager.py +2 -2
  7. exonware/xwnode/common/monitoring/__init__.py +26 -0
  8. exonware/xwnode/{strategies → common/monitoring}/metrics.py +2 -2
  9. exonware/xwnode/{strategies → common/monitoring}/pattern_detector.py +2 -2
  10. exonware/xwnode/{strategies → common/monitoring}/performance_monitor.py +2 -2
  11. exonware/xwnode/common/patterns/__init__.py +26 -0
  12. exonware/xwnode/{strategies → common/patterns}/advisor.py +1 -1
  13. exonware/xwnode/{strategies → common/patterns}/flyweight.py +4 -4
  14. exonware/xwnode/{strategies → common/patterns}/registry.py +109 -112
  15. exonware/xwnode/common/utils/__init__.py +26 -0
  16. exonware/xwnode/{strategies/edges → edges/strategies}/__init__.py +1 -1
  17. exonware/xwnode/{strategies/edges → edges/strategies}/base.py +3 -3
  18. exonware/xwnode/facade.py +4 -3
  19. exonware/xwnode/{strategies/nodes → nodes/strategies}/__init__.py +1 -1
  20. exonware/xwnode/{strategies/nodes → nodes/strategies}/adjacency_list.py +7 -2
  21. exonware/xwnode/{strategies/nodes → nodes/strategies}/aho_corasick.py +6 -1
  22. exonware/xwnode/{strategies/nodes → nodes/strategies}/array_list.py +6 -1
  23. exonware/xwnode/{strategies/nodes → nodes/strategies}/base.py +24 -4
  24. exonware/xwnode/nodes/strategies/contracts.py +116 -0
  25. exonware/xwnode/{strategies/nodes → nodes/strategies}/deque.py +7 -2
  26. exonware/xwnode/{strategies/nodes → nodes/strategies}/hash_map.py +4 -0
  27. exonware/xwnode/{strategies/nodes → nodes/strategies}/heap.py +6 -1
  28. exonware/xwnode/{strategies/nodes → nodes/strategies}/linked_list.py +6 -1
  29. exonware/xwnode/{strategies/nodes → nodes/strategies}/node_aho_corasick.py +6 -1
  30. exonware/xwnode/{strategies/nodes → nodes/strategies}/node_array_list.py +4 -0
  31. exonware/xwnode/{strategies/nodes → nodes/strategies}/node_avl_tree.py +6 -1
  32. exonware/xwnode/{strategies/nodes → nodes/strategies}/node_b_plus_tree.py +6 -1
  33. exonware/xwnode/{strategies/nodes → nodes/strategies}/node_bitmap.py +6 -1
  34. exonware/xwnode/{strategies/nodes → nodes/strategies}/node_bitset_dynamic.py +6 -1
  35. exonware/xwnode/{strategies/nodes → nodes/strategies}/node_bloom_filter.py +4 -0
  36. exonware/xwnode/{strategies/nodes → nodes/strategies}/node_btree.py +6 -1
  37. exonware/xwnode/{strategies/nodes → nodes/strategies}/node_count_min_sketch.py +4 -0
  38. exonware/xwnode/{strategies/nodes → nodes/strategies}/node_cow_tree.py +6 -1
  39. exonware/xwnode/{strategies/nodes → nodes/strategies}/node_fenwick_tree.py +6 -1
  40. exonware/xwnode/{strategies/nodes → nodes/strategies}/node_hash_map.py +4 -0
  41. exonware/xwnode/{strategies/nodes → nodes/strategies}/node_heap.py +6 -1
  42. exonware/xwnode/{strategies/nodes → nodes/strategies}/node_hyperloglog.py +4 -0
  43. exonware/xwnode/{strategies/nodes → nodes/strategies}/node_linked_list.py +4 -0
  44. exonware/xwnode/{strategies/nodes → nodes/strategies}/node_lsm_tree.py +6 -1
  45. exonware/xwnode/{strategies/nodes → nodes/strategies}/node_ordered_map.py +6 -1
  46. exonware/xwnode/{strategies/nodes → nodes/strategies}/node_ordered_map_balanced.py +6 -1
  47. exonware/xwnode/{strategies/nodes → nodes/strategies}/node_patricia.py +6 -1
  48. exonware/xwnode/{strategies/nodes → nodes/strategies}/node_persistent_tree.py +6 -1
  49. exonware/xwnode/{strategies/nodes → nodes/strategies}/node_radix_trie.py +6 -1
  50. exonware/xwnode/{strategies/nodes → nodes/strategies}/node_red_black_tree.py +6 -1
  51. exonware/xwnode/{strategies/nodes → nodes/strategies}/node_roaring_bitmap.py +6 -1
  52. exonware/xwnode/{strategies/nodes → nodes/strategies}/node_segment_tree.py +6 -1
  53. exonware/xwnode/{strategies/nodes → nodes/strategies}/node_set_hash.py +4 -0
  54. exonware/xwnode/{strategies/nodes → nodes/strategies}/node_set_tree.py +6 -1
  55. exonware/xwnode/{strategies/nodes → nodes/strategies}/node_skip_list.py +6 -1
  56. exonware/xwnode/{strategies/nodes → nodes/strategies}/node_splay_tree.py +6 -1
  57. exonware/xwnode/{strategies/nodes → nodes/strategies}/node_suffix_array.py +6 -1
  58. exonware/xwnode/{strategies/nodes → nodes/strategies}/node_treap.py +6 -1
  59. exonware/xwnode/{strategies/nodes → nodes/strategies}/node_tree_graph_hybrid.py +4 -0
  60. exonware/xwnode/{strategies/nodes → nodes/strategies}/node_trie.py +6 -1
  61. exonware/xwnode/{strategies/nodes → nodes/strategies}/node_union_find.py +6 -1
  62. exonware/xwnode/{strategies/nodes → nodes/strategies}/node_xdata_optimized.py +4 -0
  63. exonware/xwnode/{strategies/nodes → nodes/strategies}/priority_queue.py +7 -2
  64. exonware/xwnode/{strategies/nodes → nodes/strategies}/queue.py +7 -2
  65. exonware/xwnode/{strategies/nodes → nodes/strategies}/sparse_matrix.py +7 -2
  66. exonware/xwnode/{strategies/nodes → nodes/strategies}/stack.py +7 -2
  67. exonware/xwnode/{strategies/nodes → nodes/strategies}/trie.py +6 -1
  68. exonware/xwnode/{strategies/nodes → nodes/strategies}/union_find.py +6 -1
  69. exonware/xwnode/queries/executors/__init__.py +47 -0
  70. exonware/xwnode/queries/executors/advanced/__init__.py +37 -0
  71. exonware/xwnode/queries/executors/advanced/aggregate_executor.py +50 -0
  72. exonware/xwnode/queries/executors/advanced/ask_executor.py +50 -0
  73. exonware/xwnode/queries/executors/advanced/construct_executor.py +50 -0
  74. exonware/xwnode/queries/executors/advanced/describe_executor.py +50 -0
  75. exonware/xwnode/queries/executors/advanced/for_loop_executor.py +50 -0
  76. exonware/xwnode/queries/executors/advanced/foreach_executor.py +50 -0
  77. exonware/xwnode/queries/executors/advanced/join_executor.py +50 -0
  78. exonware/xwnode/queries/executors/advanced/let_executor.py +50 -0
  79. exonware/xwnode/queries/executors/advanced/mutation_executor.py +50 -0
  80. exonware/xwnode/queries/executors/advanced/options_executor.py +50 -0
  81. exonware/xwnode/queries/executors/advanced/pipe_executor.py +50 -0
  82. exonware/xwnode/queries/executors/advanced/subscribe_executor.py +50 -0
  83. exonware/xwnode/queries/executors/advanced/subscription_executor.py +50 -0
  84. exonware/xwnode/queries/executors/advanced/union_executor.py +50 -0
  85. exonware/xwnode/queries/executors/advanced/window_executor.py +51 -0
  86. exonware/xwnode/queries/executors/advanced/with_cte_executor.py +50 -0
  87. exonware/xwnode/queries/executors/aggregation/__init__.py +21 -0
  88. exonware/xwnode/queries/executors/aggregation/avg_executor.py +50 -0
  89. exonware/xwnode/queries/executors/aggregation/count_executor.py +38 -0
  90. exonware/xwnode/queries/executors/aggregation/distinct_executor.py +50 -0
  91. exonware/xwnode/queries/executors/aggregation/group_executor.py +50 -0
  92. exonware/xwnode/queries/executors/aggregation/having_executor.py +50 -0
  93. exonware/xwnode/queries/executors/aggregation/max_executor.py +50 -0
  94. exonware/xwnode/queries/executors/aggregation/min_executor.py +50 -0
  95. exonware/xwnode/queries/executors/aggregation/sum_executor.py +50 -0
  96. exonware/xwnode/queries/executors/aggregation/summarize_executor.py +50 -0
  97. exonware/xwnode/queries/executors/array/__init__.py +9 -0
  98. exonware/xwnode/queries/executors/array/indexing_executor.py +51 -0
  99. exonware/xwnode/queries/executors/array/slicing_executor.py +51 -0
  100. exonware/xwnode/queries/executors/base.py +257 -0
  101. exonware/xwnode/queries/executors/capability_checker.py +204 -0
  102. exonware/xwnode/queries/executors/contracts.py +166 -0
  103. exonware/xwnode/queries/executors/core/__init__.py +17 -0
  104. exonware/xwnode/queries/executors/core/create_executor.py +96 -0
  105. exonware/xwnode/queries/executors/core/delete_executor.py +99 -0
  106. exonware/xwnode/queries/executors/core/drop_executor.py +100 -0
  107. exonware/xwnode/queries/executors/core/insert_executor.py +39 -0
  108. exonware/xwnode/queries/executors/core/select_executor.py +152 -0
  109. exonware/xwnode/queries/executors/core/update_executor.py +102 -0
  110. exonware/xwnode/queries/executors/data/__init__.py +13 -0
  111. exonware/xwnode/queries/executors/data/alter_executor.py +50 -0
  112. exonware/xwnode/queries/executors/data/load_executor.py +50 -0
  113. exonware/xwnode/queries/executors/data/merge_executor.py +50 -0
  114. exonware/xwnode/queries/executors/data/store_executor.py +50 -0
  115. exonware/xwnode/queries/executors/engine.py +221 -0
  116. exonware/xwnode/queries/executors/errors.py +68 -0
  117. exonware/xwnode/queries/executors/filtering/__init__.py +25 -0
  118. exonware/xwnode/queries/executors/filtering/between_executor.py +80 -0
  119. exonware/xwnode/queries/executors/filtering/filter_executor.py +79 -0
  120. exonware/xwnode/queries/executors/filtering/has_executor.py +70 -0
  121. exonware/xwnode/queries/executors/filtering/in_executor.py +70 -0
  122. exonware/xwnode/queries/executors/filtering/like_executor.py +76 -0
  123. exonware/xwnode/queries/executors/filtering/optional_executor.py +76 -0
  124. exonware/xwnode/queries/executors/filtering/range_executor.py +80 -0
  125. exonware/xwnode/queries/executors/filtering/term_executor.py +77 -0
  126. exonware/xwnode/queries/executors/filtering/values_executor.py +71 -0
  127. exonware/xwnode/queries/executors/filtering/where_executor.py +44 -0
  128. exonware/xwnode/queries/executors/graph/__init__.py +15 -0
  129. exonware/xwnode/queries/executors/graph/in_traverse_executor.py +51 -0
  130. exonware/xwnode/queries/executors/graph/match_executor.py +51 -0
  131. exonware/xwnode/queries/executors/graph/out_executor.py +51 -0
  132. exonware/xwnode/queries/executors/graph/path_executor.py +51 -0
  133. exonware/xwnode/queries/executors/graph/return_executor.py +51 -0
  134. exonware/xwnode/queries/executors/ordering/__init__.py +9 -0
  135. exonware/xwnode/queries/executors/ordering/by_executor.py +50 -0
  136. exonware/xwnode/queries/executors/ordering/order_executor.py +51 -0
  137. exonware/xwnode/queries/executors/projection/__init__.py +9 -0
  138. exonware/xwnode/queries/executors/projection/extend_executor.py +50 -0
  139. exonware/xwnode/queries/executors/projection/project_executor.py +50 -0
  140. exonware/xwnode/queries/executors/registry.py +173 -0
  141. exonware/xwnode/queries/executors/types.py +93 -0
  142. exonware/xwnode/queries/parsers/__init__.py +26 -0
  143. exonware/xwnode/queries/parsers/base.py +86 -0
  144. exonware/xwnode/queries/parsers/contracts.py +46 -0
  145. exonware/xwnode/queries/parsers/errors.py +53 -0
  146. exonware/xwnode/queries/parsers/sql_param_extractor.py +318 -0
  147. exonware/xwnode/{strategies/queries → queries/strategies}/__init__.py +1 -1
  148. exonware/xwnode/{strategies/queries → queries/strategies}/base.py +1 -1
  149. exonware/xwnode/{strategies/queries → queries/strategies}/cql.py +1 -1
  150. exonware/xwnode/{strategies/queries → queries/strategies}/cypher.py +1 -1
  151. exonware/xwnode/{strategies/queries → queries/strategies}/datalog.py +1 -1
  152. exonware/xwnode/{strategies/queries → queries/strategies}/elastic_dsl.py +1 -1
  153. exonware/xwnode/{strategies/queries → queries/strategies}/eql.py +1 -1
  154. exonware/xwnode/{strategies/queries → queries/strategies}/flux.py +1 -1
  155. exonware/xwnode/{strategies/queries → queries/strategies}/gql.py +1 -1
  156. exonware/xwnode/{strategies/queries → queries/strategies}/graphql.py +1 -1
  157. exonware/xwnode/{strategies/queries → queries/strategies}/gremlin.py +1 -1
  158. exonware/xwnode/{strategies/queries → queries/strategies}/hiveql.py +1 -1
  159. exonware/xwnode/{strategies/queries → queries/strategies}/hql.py +1 -1
  160. exonware/xwnode/{strategies/queries → queries/strategies}/jmespath.py +1 -1
  161. exonware/xwnode/{strategies/queries → queries/strategies}/jq.py +1 -1
  162. exonware/xwnode/{strategies/queries → queries/strategies}/json_query.py +1 -1
  163. exonware/xwnode/{strategies/queries → queries/strategies}/jsoniq.py +1 -1
  164. exonware/xwnode/{strategies/queries → queries/strategies}/kql.py +1 -1
  165. exonware/xwnode/{strategies/queries → queries/strategies}/linq.py +1 -1
  166. exonware/xwnode/{strategies/queries → queries/strategies}/logql.py +1 -1
  167. exonware/xwnode/{strategies/queries → queries/strategies}/mql.py +1 -1
  168. exonware/xwnode/{strategies/queries → queries/strategies}/n1ql.py +1 -1
  169. exonware/xwnode/{strategies/queries → queries/strategies}/partiql.py +1 -1
  170. exonware/xwnode/{strategies/queries → queries/strategies}/pig.py +1 -1
  171. exonware/xwnode/{strategies/queries → queries/strategies}/promql.py +1 -1
  172. exonware/xwnode/{strategies/queries → queries/strategies}/sparql.py +1 -1
  173. exonware/xwnode/{strategies/queries → queries/strategies}/sql.py +1 -1
  174. exonware/xwnode/{strategies/queries → queries/strategies}/xml_query.py +1 -1
  175. exonware/xwnode/{strategies/queries → queries/strategies}/xpath.py +1 -1
  176. exonware/xwnode/{strategies/queries → queries/strategies}/xquery.py +1 -1
  177. exonware/xwnode/{strategies/queries → queries/strategies}/xwnode_executor.py +1 -1
  178. exonware/xwnode/{strategies/queries → queries/strategies}/xwquery.py +43 -11
  179. exonware/xwnode/strategies/__init__.py +8 -8
  180. exonware/xwnode/version.py +3 -3
  181. {exonware_xwnode-0.0.1.13.dist-info → exonware_xwnode-0.0.1.15.dist-info}/METADATA +2 -3
  182. exonware_xwnode-0.0.1.15.dist-info/RECORD +214 -0
  183. exonware/xwnode/strategies/impls/__init__.py +0 -13
  184. exonware/xwnode/strategies/nodes/_base_node.py +0 -307
  185. exonware_xwnode-0.0.1.13.dist-info/RECORD +0 -132
  186. /exonware/xwnode/{strategies → common/management}/migration.py +0 -0
  187. /exonware/xwnode/{strategies → common/utils}/simple.py +0 -0
  188. /exonware/xwnode/{strategies → common/utils}/utils.py +0 -0
  189. /exonware/xwnode/{strategies/impls → edges/strategies}/_base_edge.py +0 -0
  190. /exonware/xwnode/{strategies/edges → edges/strategies}/adj_list.py +0 -0
  191. /exonware/xwnode/{strategies/edges → edges/strategies}/adj_matrix.py +0 -0
  192. /exonware/xwnode/{strategies/impls → edges/strategies}/edge_adj_list.py +0 -0
  193. /exonware/xwnode/{strategies/impls → edges/strategies}/edge_adj_matrix.py +0 -0
  194. /exonware/xwnode/{strategies/impls → edges/strategies}/edge_bidir_wrapper.py +0 -0
  195. /exonware/xwnode/{strategies/impls → edges/strategies}/edge_block_adj_matrix.py +0 -0
  196. /exonware/xwnode/{strategies/impls → edges/strategies}/edge_coo.py +0 -0
  197. /exonware/xwnode/{strategies/impls → edges/strategies}/edge_csc.py +0 -0
  198. /exonware/xwnode/{strategies/impls → edges/strategies}/edge_csr.py +0 -0
  199. /exonware/xwnode/{strategies/impls → edges/strategies}/edge_dynamic_adj_list.py +0 -0
  200. /exonware/xwnode/{strategies/impls → edges/strategies}/edge_flow_network.py +0 -0
  201. /exonware/xwnode/{strategies/impls → edges/strategies}/edge_hyperedge_set.py +0 -0
  202. /exonware/xwnode/{strategies/impls → edges/strategies}/edge_neural_graph.py +0 -0
  203. /exonware/xwnode/{strategies/impls → edges/strategies}/edge_octree.py +0 -0
  204. /exonware/xwnode/{strategies/impls → edges/strategies}/edge_property_store.py +0 -0
  205. /exonware/xwnode/{strategies/impls → edges/strategies}/edge_quadtree.py +0 -0
  206. /exonware/xwnode/{strategies/impls → edges/strategies}/edge_rtree.py +0 -0
  207. /exonware/xwnode/{strategies/impls → edges/strategies}/edge_temporal_edgeset.py +0 -0
  208. /exonware/xwnode/{strategies/impls → edges/strategies}/edge_tree_graph_basic.py +0 -0
  209. /exonware/xwnode/{strategies/impls → edges/strategies}/edge_weighted_graph.py +0 -0
  210. /exonware/xwnode/{strategies/impls → nodes/strategies}/_base_node.py +0 -0
  211. /exonware/xwnode/{strategies/nodes → nodes/strategies}/node_cuckoo_hash.py +0 -0
  212. {exonware_xwnode-0.0.1.13.dist-info → exonware_xwnode-0.0.1.15.dist-info}/WHEEL +0 -0
  213. {exonware_xwnode-0.0.1.13.dist-info → exonware_xwnode-0.0.1.15.dist-info}/licenses/LICENSE +0 -0
@@ -0,0 +1,50 @@
1
+ #!/usr/bin/env python3
2
+ """
3
+ #exonware/xwnode/src/exonware/xwnode/queries/executors/advanced/construct_executor.py
4
+
5
+ CONSTRUCT Executor
6
+
7
+ Company: eXonware.com
8
+ Author: Eng. Muhammad AlShehri
9
+ Email: connect@exonware.com
10
+ Version: 0.0.1.15
11
+ Generation Date: 09-Oct-2025
12
+ """
13
+
14
+ from typing import Any, Dict, List
15
+ from ..base import AUniversalOperationExecutor
16
+ from ..contracts import Action, ExecutionContext, ExecutionResult
17
+ from ..types import OperationType
18
+
19
+ class ConstructExecutor(AUniversalOperationExecutor):
20
+ """
21
+ CONSTRUCT operation executor.
22
+
23
+ Constructs new data structures
24
+
25
+ Capability: Universal
26
+ Operation Type: ADVANCED
27
+ """
28
+
29
+ OPERATION_NAME = "CONSTRUCT"
30
+ OPERATION_TYPE = OperationType.ADVANCED
31
+ SUPPORTED_NODE_TYPES = [] # Universal
32
+
33
+ def _do_execute(self, action: Action, context: ExecutionContext) -> ExecutionResult:
34
+ """Execute CONSTRUCT operation."""
35
+ params = action.params
36
+ node = context.node
37
+
38
+ result_data = self._execute_construct(node, params, context)
39
+
40
+ return ExecutionResult(
41
+ success=True,
42
+ data=result_data,
43
+ operation=self.OPERATION_NAME,
44
+ metadata={'operation': self.OPERATION_NAME}
45
+ )
46
+
47
+ def _execute_construct(self, node: Any, params: Dict, context: ExecutionContext) -> Dict:
48
+ """Execute construct logic."""
49
+ # Implementation here
50
+ return {'result': 'CONSTRUCT executed', 'params': params}
@@ -0,0 +1,50 @@
1
+ #!/usr/bin/env python3
2
+ """
3
+ #exonware/xwnode/src/exonware/xwnode/queries/executors/advanced/describe_executor.py
4
+
5
+ DESCRIBE Executor
6
+
7
+ Company: eXonware.com
8
+ Author: Eng. Muhammad AlShehri
9
+ Email: connect@exonware.com
10
+ Version: 0.0.1.15
11
+ Generation Date: 09-Oct-2025
12
+ """
13
+
14
+ from typing import Any, Dict, List
15
+ from ..base import AUniversalOperationExecutor
16
+ from ..contracts import Action, ExecutionContext, ExecutionResult
17
+ from ..types import OperationType
18
+
19
+ class DescribeExecutor(AUniversalOperationExecutor):
20
+ """
21
+ DESCRIBE operation executor.
22
+
23
+ Describes structure/schema
24
+
25
+ Capability: Universal
26
+ Operation Type: ADVANCED
27
+ """
28
+
29
+ OPERATION_NAME = "DESCRIBE"
30
+ OPERATION_TYPE = OperationType.ADVANCED
31
+ SUPPORTED_NODE_TYPES = [] # Universal
32
+
33
+ def _do_execute(self, action: Action, context: ExecutionContext) -> ExecutionResult:
34
+ """Execute DESCRIBE operation."""
35
+ params = action.params
36
+ node = context.node
37
+
38
+ result_data = self._execute_describe(node, params, context)
39
+
40
+ return ExecutionResult(
41
+ success=True,
42
+ data=result_data,
43
+ operation=self.OPERATION_NAME,
44
+ metadata={'operation': self.OPERATION_NAME}
45
+ )
46
+
47
+ def _execute_describe(self, node: Any, params: Dict, context: ExecutionContext) -> Dict:
48
+ """Execute describe logic."""
49
+ # Implementation here
50
+ return {'result': 'DESCRIBE executed', 'params': params}
@@ -0,0 +1,50 @@
1
+ #!/usr/bin/env python3
2
+ """
3
+ #exonware/xwnode/src/exonware/xwnode/queries/executors/advanced/for_loop_executor.py
4
+
5
+ FOR Executor
6
+
7
+ Company: eXonware.com
8
+ Author: Eng. Muhammad AlShehri
9
+ Email: connect@exonware.com
10
+ Version: 0.0.1.15
11
+ Generation Date: 09-Oct-2025
12
+ """
13
+
14
+ from typing import Any, Dict, List
15
+ from ..base import AUniversalOperationExecutor
16
+ from ..contracts import Action, ExecutionContext, ExecutionResult
17
+ from ..types import OperationType
18
+
19
+ class ForLoopExecutor(AUniversalOperationExecutor):
20
+ """
21
+ FOR operation executor.
22
+
23
+ For loop construct
24
+
25
+ Capability: Universal
26
+ Operation Type: CONTROL_FLOW
27
+ """
28
+
29
+ OPERATION_NAME = "FOR"
30
+ OPERATION_TYPE = OperationType.CONTROL_FLOW
31
+ SUPPORTED_NODE_TYPES = [] # Universal
32
+
33
+ def _do_execute(self, action: Action, context: ExecutionContext) -> ExecutionResult:
34
+ """Execute FOR operation."""
35
+ params = action.params
36
+ node = context.node
37
+
38
+ result_data = self._execute_for_loop(node, params, context)
39
+
40
+ return ExecutionResult(
41
+ success=True,
42
+ data=result_data,
43
+ operation=self.OPERATION_NAME,
44
+ metadata={'operation': self.OPERATION_NAME}
45
+ )
46
+
47
+ def _execute_for_loop(self, node: Any, params: Dict, context: ExecutionContext) -> Dict:
48
+ """Execute for_loop logic."""
49
+ # Implementation here
50
+ return {'result': 'FOR executed', 'params': params}
@@ -0,0 +1,50 @@
1
+ #!/usr/bin/env python3
2
+ """
3
+ #exonware/xwnode/src/exonware/xwnode/queries/executors/advanced/foreach_executor.py
4
+
5
+ FOREACH Executor
6
+
7
+ Company: eXonware.com
8
+ Author: Eng. Muhammad AlShehri
9
+ Email: connect@exonware.com
10
+ Version: 0.0.1.15
11
+ Generation Date: 09-Oct-2025
12
+ """
13
+
14
+ from typing import Any, Dict, List
15
+ from ..base import AUniversalOperationExecutor
16
+ from ..contracts import Action, ExecutionContext, ExecutionResult
17
+ from ..types import OperationType
18
+
19
+ class ForeachExecutor(AUniversalOperationExecutor):
20
+ """
21
+ FOREACH operation executor.
22
+
23
+ Iterates over collections
24
+
25
+ Capability: Universal
26
+ Operation Type: CONTROL_FLOW
27
+ """
28
+
29
+ OPERATION_NAME = "FOREACH"
30
+ OPERATION_TYPE = OperationType.CONTROL_FLOW
31
+ SUPPORTED_NODE_TYPES = [] # Universal
32
+
33
+ def _do_execute(self, action: Action, context: ExecutionContext) -> ExecutionResult:
34
+ """Execute FOREACH operation."""
35
+ params = action.params
36
+ node = context.node
37
+
38
+ result_data = self._execute_foreach(node, params, context)
39
+
40
+ return ExecutionResult(
41
+ success=True,
42
+ data=result_data,
43
+ operation=self.OPERATION_NAME,
44
+ metadata={'operation': self.OPERATION_NAME}
45
+ )
46
+
47
+ def _execute_foreach(self, node: Any, params: Dict, context: ExecutionContext) -> Dict:
48
+ """Execute foreach logic."""
49
+ # Implementation here
50
+ return {'result': 'FOREACH executed', 'params': params}
@@ -0,0 +1,50 @@
1
+ #!/usr/bin/env python3
2
+ """
3
+ #exonware/xwnode/src/exonware/xwnode/queries/executors/advanced/join_executor.py
4
+
5
+ JOIN Executor
6
+
7
+ Company: eXonware.com
8
+ Author: Eng. Muhammad AlShehri
9
+ Email: connect@exonware.com
10
+ Version: 0.0.1.15
11
+ Generation Date: 09-Oct-2025
12
+ """
13
+
14
+ from typing import Any, Dict, List
15
+ from ..base import AUniversalOperationExecutor
16
+ from ..contracts import Action, ExecutionContext, ExecutionResult
17
+ from ..types import OperationType
18
+
19
+ class JoinExecutor(AUniversalOperationExecutor):
20
+ """
21
+ JOIN operation executor.
22
+
23
+ Joins data from multiple sources
24
+
25
+ Capability: Universal
26
+ Operation Type: JOINING
27
+ """
28
+
29
+ OPERATION_NAME = "JOIN"
30
+ OPERATION_TYPE = OperationType.JOINING
31
+ SUPPORTED_NODE_TYPES = [] # Universal
32
+
33
+ def _do_execute(self, action: Action, context: ExecutionContext) -> ExecutionResult:
34
+ """Execute JOIN operation."""
35
+ params = action.params
36
+ node = context.node
37
+
38
+ result_data = self._execute_join(node, params, context)
39
+
40
+ return ExecutionResult(
41
+ success=True,
42
+ data=result_data,
43
+ operation=self.OPERATION_NAME,
44
+ metadata={'operation': self.OPERATION_NAME}
45
+ )
46
+
47
+ def _execute_join(self, node: Any, params: Dict, context: ExecutionContext) -> Dict:
48
+ """Execute join logic."""
49
+ # Implementation here
50
+ return {'result': 'JOIN executed', 'params': params}
@@ -0,0 +1,50 @@
1
+ #!/usr/bin/env python3
2
+ """
3
+ #exonware/xwnode/src/exonware/xwnode/queries/executors/advanced/let_executor.py
4
+
5
+ LET Executor
6
+
7
+ Company: eXonware.com
8
+ Author: Eng. Muhammad AlShehri
9
+ Email: connect@exonware.com
10
+ Version: 0.0.1.15
11
+ Generation Date: 09-Oct-2025
12
+ """
13
+
14
+ from typing import Any, Dict, List
15
+ from ..base import AUniversalOperationExecutor
16
+ from ..contracts import Action, ExecutionContext, ExecutionResult
17
+ from ..types import OperationType
18
+
19
+ class LetExecutor(AUniversalOperationExecutor):
20
+ """
21
+ LET operation executor.
22
+
23
+ Variable binding/assignment
24
+
25
+ Capability: Universal
26
+ Operation Type: CONTROL_FLOW
27
+ """
28
+
29
+ OPERATION_NAME = "LET"
30
+ OPERATION_TYPE = OperationType.CONTROL_FLOW
31
+ SUPPORTED_NODE_TYPES = [] # Universal
32
+
33
+ def _do_execute(self, action: Action, context: ExecutionContext) -> ExecutionResult:
34
+ """Execute LET operation."""
35
+ params = action.params
36
+ node = context.node
37
+
38
+ result_data = self._execute_let(node, params, context)
39
+
40
+ return ExecutionResult(
41
+ success=True,
42
+ data=result_data,
43
+ operation=self.OPERATION_NAME,
44
+ metadata={'operation': self.OPERATION_NAME}
45
+ )
46
+
47
+ def _execute_let(self, node: Any, params: Dict, context: ExecutionContext) -> Dict:
48
+ """Execute let logic."""
49
+ # Implementation here
50
+ return {'result': 'LET executed', 'params': params}
@@ -0,0 +1,50 @@
1
+ #!/usr/bin/env python3
2
+ """
3
+ #exonware/xwnode/src/exonware/xwnode/queries/executors/advanced/mutation_executor.py
4
+
5
+ MUTATION Executor
6
+
7
+ Company: eXonware.com
8
+ Author: Eng. Muhammad AlShehri
9
+ Email: connect@exonware.com
10
+ Version: 0.0.1.15
11
+ Generation Date: 09-Oct-2025
12
+ """
13
+
14
+ from typing import Any, Dict, List
15
+ from ..base import AUniversalOperationExecutor
16
+ from ..contracts import Action, ExecutionContext, ExecutionResult
17
+ from ..types import OperationType
18
+
19
+ class MutationExecutor(AUniversalOperationExecutor):
20
+ """
21
+ MUTATION operation executor.
22
+
23
+ Transactional mutations
24
+
25
+ Capability: Universal
26
+ Operation Type: ADVANCED
27
+ """
28
+
29
+ OPERATION_NAME = "MUTATION"
30
+ OPERATION_TYPE = OperationType.ADVANCED
31
+ SUPPORTED_NODE_TYPES = [] # Universal
32
+
33
+ def _do_execute(self, action: Action, context: ExecutionContext) -> ExecutionResult:
34
+ """Execute MUTATION operation."""
35
+ params = action.params
36
+ node = context.node
37
+
38
+ result_data = self._execute_mutation(node, params, context)
39
+
40
+ return ExecutionResult(
41
+ success=True,
42
+ data=result_data,
43
+ operation=self.OPERATION_NAME,
44
+ metadata={'operation': self.OPERATION_NAME}
45
+ )
46
+
47
+ def _execute_mutation(self, node: Any, params: Dict, context: ExecutionContext) -> Dict:
48
+ """Execute mutation logic."""
49
+ # Implementation here
50
+ return {'result': 'MUTATION executed', 'params': params}
@@ -0,0 +1,50 @@
1
+ #!/usr/bin/env python3
2
+ """
3
+ #exonware/xwnode/src/exonware/xwnode/queries/executors/advanced/options_executor.py
4
+
5
+ OPTIONS Executor
6
+
7
+ Company: eXonware.com
8
+ Author: Eng. Muhammad AlShehri
9
+ Email: connect@exonware.com
10
+ Version: 0.0.1.15
11
+ Generation Date: 09-Oct-2025
12
+ """
13
+
14
+ from typing import Any, Dict, List
15
+ from ..base import AUniversalOperationExecutor
16
+ from ..contracts import Action, ExecutionContext, ExecutionResult
17
+ from ..types import OperationType
18
+
19
+ class OptionsExecutor(AUniversalOperationExecutor):
20
+ """
21
+ OPTIONS operation executor.
22
+
23
+ Query options/metadata
24
+
25
+ Capability: Universal
26
+ Operation Type: ADVANCED
27
+ """
28
+
29
+ OPERATION_NAME = "OPTIONS"
30
+ OPERATION_TYPE = OperationType.ADVANCED
31
+ SUPPORTED_NODE_TYPES = [] # Universal
32
+
33
+ def _do_execute(self, action: Action, context: ExecutionContext) -> ExecutionResult:
34
+ """Execute OPTIONS operation."""
35
+ params = action.params
36
+ node = context.node
37
+
38
+ result_data = self._execute_options(node, params, context)
39
+
40
+ return ExecutionResult(
41
+ success=True,
42
+ data=result_data,
43
+ operation=self.OPERATION_NAME,
44
+ metadata={'operation': self.OPERATION_NAME}
45
+ )
46
+
47
+ def _execute_options(self, node: Any, params: Dict, context: ExecutionContext) -> Dict:
48
+ """Execute options logic."""
49
+ # Implementation here
50
+ return {'result': 'OPTIONS executed', 'params': params}
@@ -0,0 +1,50 @@
1
+ #!/usr/bin/env python3
2
+ """
3
+ #exonware/xwnode/src/exonware/xwnode/queries/executors/advanced/pipe_executor.py
4
+
5
+ PIPE Executor
6
+
7
+ Company: eXonware.com
8
+ Author: Eng. Muhammad AlShehri
9
+ Email: connect@exonware.com
10
+ Version: 0.0.1.15
11
+ Generation Date: 09-Oct-2025
12
+ """
13
+
14
+ from typing import Any, Dict, List
15
+ from ..base import AUniversalOperationExecutor
16
+ from ..contracts import Action, ExecutionContext, ExecutionResult
17
+ from ..types import OperationType
18
+
19
+ class PipeExecutor(AUniversalOperationExecutor):
20
+ """
21
+ PIPE operation executor.
22
+
23
+ Pipeline operations
24
+
25
+ Capability: Universal
26
+ Operation Type: ADVANCED
27
+ """
28
+
29
+ OPERATION_NAME = "PIPE"
30
+ OPERATION_TYPE = OperationType.ADVANCED
31
+ SUPPORTED_NODE_TYPES = [] # Universal
32
+
33
+ def _do_execute(self, action: Action, context: ExecutionContext) -> ExecutionResult:
34
+ """Execute PIPE operation."""
35
+ params = action.params
36
+ node = context.node
37
+
38
+ result_data = self._execute_pipe(node, params, context)
39
+
40
+ return ExecutionResult(
41
+ success=True,
42
+ data=result_data,
43
+ operation=self.OPERATION_NAME,
44
+ metadata={'operation': self.OPERATION_NAME}
45
+ )
46
+
47
+ def _execute_pipe(self, node: Any, params: Dict, context: ExecutionContext) -> Dict:
48
+ """Execute pipe logic."""
49
+ # Implementation here
50
+ return {'result': 'PIPE executed', 'params': params}
@@ -0,0 +1,50 @@
1
+ #!/usr/bin/env python3
2
+ """
3
+ #exonware/xwnode/src/exonware/xwnode/queries/executors/advanced/subscribe_executor.py
4
+
5
+ SUBSCRIBE Executor
6
+
7
+ Company: eXonware.com
8
+ Author: Eng. Muhammad AlShehri
9
+ Email: connect@exonware.com
10
+ Version: 0.0.1.15
11
+ Generation Date: 09-Oct-2025
12
+ """
13
+
14
+ from typing import Any, Dict, List
15
+ from ..base import AUniversalOperationExecutor
16
+ from ..contracts import Action, ExecutionContext, ExecutionResult
17
+ from ..types import OperationType
18
+
19
+ class SubscribeExecutor(AUniversalOperationExecutor):
20
+ """
21
+ SUBSCRIBE operation executor.
22
+
23
+ Subscribes to data changes
24
+
25
+ Capability: Universal
26
+ Operation Type: ADVANCED
27
+ """
28
+
29
+ OPERATION_NAME = "SUBSCRIBE"
30
+ OPERATION_TYPE = OperationType.ADVANCED
31
+ SUPPORTED_NODE_TYPES = [] # Universal
32
+
33
+ def _do_execute(self, action: Action, context: ExecutionContext) -> ExecutionResult:
34
+ """Execute SUBSCRIBE operation."""
35
+ params = action.params
36
+ node = context.node
37
+
38
+ result_data = self._execute_subscribe(node, params, context)
39
+
40
+ return ExecutionResult(
41
+ success=True,
42
+ data=result_data,
43
+ operation=self.OPERATION_NAME,
44
+ metadata={'operation': self.OPERATION_NAME}
45
+ )
46
+
47
+ def _execute_subscribe(self, node: Any, params: Dict, context: ExecutionContext) -> Dict:
48
+ """Execute subscribe logic."""
49
+ # Implementation here
50
+ return {'result': 'SUBSCRIBE executed', 'params': params}
@@ -0,0 +1,50 @@
1
+ #!/usr/bin/env python3
2
+ """
3
+ #exonware/xwnode/src/exonware/xwnode/queries/executors/advanced/subscription_executor.py
4
+
5
+ SUBSCRIPTION Executor
6
+
7
+ Company: eXonware.com
8
+ Author: Eng. Muhammad AlShehri
9
+ Email: connect@exonware.com
10
+ Version: 0.0.1.15
11
+ Generation Date: 09-Oct-2025
12
+ """
13
+
14
+ from typing import Any, Dict, List
15
+ from ..base import AUniversalOperationExecutor
16
+ from ..contracts import Action, ExecutionContext, ExecutionResult
17
+ from ..types import OperationType
18
+
19
+ class SubscriptionExecutor(AUniversalOperationExecutor):
20
+ """
21
+ SUBSCRIPTION operation executor.
22
+
23
+ Manages subscriptions
24
+
25
+ Capability: Universal
26
+ Operation Type: ADVANCED
27
+ """
28
+
29
+ OPERATION_NAME = "SUBSCRIPTION"
30
+ OPERATION_TYPE = OperationType.ADVANCED
31
+ SUPPORTED_NODE_TYPES = [] # Universal
32
+
33
+ def _do_execute(self, action: Action, context: ExecutionContext) -> ExecutionResult:
34
+ """Execute SUBSCRIPTION operation."""
35
+ params = action.params
36
+ node = context.node
37
+
38
+ result_data = self._execute_subscription(node, params, context)
39
+
40
+ return ExecutionResult(
41
+ success=True,
42
+ data=result_data,
43
+ operation=self.OPERATION_NAME,
44
+ metadata={'operation': self.OPERATION_NAME}
45
+ )
46
+
47
+ def _execute_subscription(self, node: Any, params: Dict, context: ExecutionContext) -> Dict:
48
+ """Execute subscription logic."""
49
+ # Implementation here
50
+ return {'result': 'SUBSCRIPTION executed', 'params': params}
@@ -0,0 +1,50 @@
1
+ #!/usr/bin/env python3
2
+ """
3
+ #exonware/xwnode/src/exonware/xwnode/queries/executors/advanced/union_executor.py
4
+
5
+ UNION Executor
6
+
7
+ Company: eXonware.com
8
+ Author: Eng. Muhammad AlShehri
9
+ Email: connect@exonware.com
10
+ Version: 0.0.1.15
11
+ Generation Date: 09-Oct-2025
12
+ """
13
+
14
+ from typing import Any, Dict, List
15
+ from ..base import AUniversalOperationExecutor
16
+ from ..contracts import Action, ExecutionContext, ExecutionResult
17
+ from ..types import OperationType
18
+
19
+ class UnionExecutor(AUniversalOperationExecutor):
20
+ """
21
+ UNION operation executor.
22
+
23
+ Unions data from multiple sources
24
+
25
+ Capability: Universal
26
+ Operation Type: JOINING
27
+ """
28
+
29
+ OPERATION_NAME = "UNION"
30
+ OPERATION_TYPE = OperationType.JOINING
31
+ SUPPORTED_NODE_TYPES = [] # Universal
32
+
33
+ def _do_execute(self, action: Action, context: ExecutionContext) -> ExecutionResult:
34
+ """Execute UNION operation."""
35
+ params = action.params
36
+ node = context.node
37
+
38
+ result_data = self._execute_union(node, params, context)
39
+
40
+ return ExecutionResult(
41
+ success=True,
42
+ data=result_data,
43
+ operation=self.OPERATION_NAME,
44
+ metadata={'operation': self.OPERATION_NAME}
45
+ )
46
+
47
+ def _execute_union(self, node: Any, params: Dict, context: ExecutionContext) -> Dict:
48
+ """Execute union logic."""
49
+ # Implementation here
50
+ return {'result': 'UNION executed', 'params': params}
@@ -0,0 +1,51 @@
1
+ #!/usr/bin/env python3
2
+ """
3
+ #exonware/xwnode/src/exonware/xwnode/queries/executors/advanced/window_executor.py
4
+
5
+ WINDOW Executor
6
+
7
+ Company: eXonware.com
8
+ Author: Eng. Muhammad AlShehri
9
+ Email: connect@exonware.com
10
+ Version: 0.0.1.15
11
+ Generation Date: 09-Oct-2025
12
+ """
13
+
14
+ from typing import Any, Dict, List
15
+ from ..base import AOperationExecutor
16
+ from ..contracts import Action, ExecutionContext, ExecutionResult
17
+ from ..types import OperationType
18
+ from ...nodes.strategies.contracts import NodeType
19
+
20
+ class WindowExecutor(AOperationExecutor):
21
+ """
22
+ WINDOW operation executor.
23
+
24
+ Window functions for time-series
25
+
26
+ Capability: LINEAR, TREE only
27
+ Operation Type: WINDOW
28
+ """
29
+
30
+ OPERATION_NAME = "WINDOW"
31
+ OPERATION_TYPE = OperationType.WINDOW
32
+ SUPPORTED_NODE_TYPES = [NodeType.LINEAR, NodeType.TREE]
33
+
34
+ def _do_execute(self, action: Action, context: ExecutionContext) -> ExecutionResult:
35
+ """Execute WINDOW operation."""
36
+ params = action.params
37
+ node = context.node
38
+
39
+ result_data = self._execute_window(node, params, context)
40
+
41
+ return ExecutionResult(
42
+ success=True,
43
+ data=result_data,
44
+ operation=self.OPERATION_NAME,
45
+ metadata={'operation': self.OPERATION_NAME}
46
+ )
47
+
48
+ def _execute_window(self, node: Any, params: Dict, context: ExecutionContext) -> Dict:
49
+ """Execute window logic."""
50
+ # Implementation here
51
+ return {'result': 'WINDOW executed', 'params': params}