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.
- exonware/__init__.py +1 -1
- exonware/xwnode/__init__.py +1 -1
- exonware/xwnode/base.py +1 -1
- exonware/xwnode/common/__init__.py +20 -0
- exonware/xwnode/common/management/__init__.py +26 -0
- exonware/xwnode/{strategies → common/management}/manager.py +2 -2
- exonware/xwnode/common/monitoring/__init__.py +26 -0
- exonware/xwnode/{strategies → common/monitoring}/metrics.py +2 -2
- exonware/xwnode/{strategies → common/monitoring}/pattern_detector.py +2 -2
- exonware/xwnode/{strategies → common/monitoring}/performance_monitor.py +2 -2
- exonware/xwnode/common/patterns/__init__.py +26 -0
- exonware/xwnode/{strategies → common/patterns}/advisor.py +1 -1
- exonware/xwnode/{strategies → common/patterns}/flyweight.py +4 -4
- exonware/xwnode/{strategies → common/patterns}/registry.py +109 -112
- exonware/xwnode/common/utils/__init__.py +26 -0
- exonware/xwnode/{strategies/edges → edges/strategies}/__init__.py +1 -1
- exonware/xwnode/{strategies/edges → edges/strategies}/base.py +3 -3
- exonware/xwnode/facade.py +4 -3
- exonware/xwnode/{strategies/nodes → nodes/strategies}/__init__.py +1 -1
- exonware/xwnode/{strategies/nodes → nodes/strategies}/adjacency_list.py +7 -2
- exonware/xwnode/{strategies/nodes → nodes/strategies}/aho_corasick.py +6 -1
- exonware/xwnode/{strategies/nodes → nodes/strategies}/array_list.py +6 -1
- exonware/xwnode/{strategies/nodes → nodes/strategies}/base.py +24 -4
- exonware/xwnode/nodes/strategies/contracts.py +116 -0
- exonware/xwnode/{strategies/nodes → nodes/strategies}/deque.py +7 -2
- exonware/xwnode/{strategies/nodes → nodes/strategies}/hash_map.py +4 -0
- exonware/xwnode/{strategies/nodes → nodes/strategies}/heap.py +6 -1
- exonware/xwnode/{strategies/nodes → nodes/strategies}/linked_list.py +6 -1
- exonware/xwnode/{strategies/nodes → nodes/strategies}/node_aho_corasick.py +6 -1
- exonware/xwnode/{strategies/nodes → nodes/strategies}/node_array_list.py +4 -0
- exonware/xwnode/{strategies/nodes → nodes/strategies}/node_avl_tree.py +6 -1
- exonware/xwnode/{strategies/nodes → nodes/strategies}/node_b_plus_tree.py +6 -1
- exonware/xwnode/{strategies/nodes → nodes/strategies}/node_bitmap.py +6 -1
- exonware/xwnode/{strategies/nodes → nodes/strategies}/node_bitset_dynamic.py +6 -1
- exonware/xwnode/{strategies/nodes → nodes/strategies}/node_bloom_filter.py +4 -0
- exonware/xwnode/{strategies/nodes → nodes/strategies}/node_btree.py +6 -1
- exonware/xwnode/{strategies/nodes → nodes/strategies}/node_count_min_sketch.py +4 -0
- exonware/xwnode/{strategies/nodes → nodes/strategies}/node_cow_tree.py +6 -1
- exonware/xwnode/{strategies/nodes → nodes/strategies}/node_fenwick_tree.py +6 -1
- exonware/xwnode/{strategies/nodes → nodes/strategies}/node_hash_map.py +4 -0
- exonware/xwnode/{strategies/nodes → nodes/strategies}/node_heap.py +6 -1
- exonware/xwnode/{strategies/nodes → nodes/strategies}/node_hyperloglog.py +4 -0
- exonware/xwnode/{strategies/nodes → nodes/strategies}/node_linked_list.py +4 -0
- exonware/xwnode/{strategies/nodes → nodes/strategies}/node_lsm_tree.py +6 -1
- exonware/xwnode/{strategies/nodes → nodes/strategies}/node_ordered_map.py +6 -1
- exonware/xwnode/{strategies/nodes → nodes/strategies}/node_ordered_map_balanced.py +6 -1
- exonware/xwnode/{strategies/nodes → nodes/strategies}/node_patricia.py +6 -1
- exonware/xwnode/{strategies/nodes → nodes/strategies}/node_persistent_tree.py +6 -1
- exonware/xwnode/{strategies/nodes → nodes/strategies}/node_radix_trie.py +6 -1
- exonware/xwnode/{strategies/nodes → nodes/strategies}/node_red_black_tree.py +6 -1
- exonware/xwnode/{strategies/nodes → nodes/strategies}/node_roaring_bitmap.py +6 -1
- exonware/xwnode/{strategies/nodes → nodes/strategies}/node_segment_tree.py +6 -1
- exonware/xwnode/{strategies/nodes → nodes/strategies}/node_set_hash.py +4 -0
- exonware/xwnode/{strategies/nodes → nodes/strategies}/node_set_tree.py +6 -1
- exonware/xwnode/{strategies/nodes → nodes/strategies}/node_skip_list.py +6 -1
- exonware/xwnode/{strategies/nodes → nodes/strategies}/node_splay_tree.py +6 -1
- exonware/xwnode/{strategies/nodes → nodes/strategies}/node_suffix_array.py +6 -1
- exonware/xwnode/{strategies/nodes → nodes/strategies}/node_treap.py +6 -1
- exonware/xwnode/{strategies/nodes → nodes/strategies}/node_tree_graph_hybrid.py +4 -0
- exonware/xwnode/{strategies/nodes → nodes/strategies}/node_trie.py +6 -1
- exonware/xwnode/{strategies/nodes → nodes/strategies}/node_union_find.py +6 -1
- exonware/xwnode/{strategies/nodes → nodes/strategies}/node_xdata_optimized.py +4 -0
- exonware/xwnode/{strategies/nodes → nodes/strategies}/priority_queue.py +7 -2
- exonware/xwnode/{strategies/nodes → nodes/strategies}/queue.py +7 -2
- exonware/xwnode/{strategies/nodes → nodes/strategies}/sparse_matrix.py +7 -2
- exonware/xwnode/{strategies/nodes → nodes/strategies}/stack.py +7 -2
- exonware/xwnode/{strategies/nodes → nodes/strategies}/trie.py +6 -1
- exonware/xwnode/{strategies/nodes → nodes/strategies}/union_find.py +6 -1
- exonware/xwnode/queries/executors/__init__.py +47 -0
- exonware/xwnode/queries/executors/advanced/__init__.py +37 -0
- exonware/xwnode/queries/executors/advanced/aggregate_executor.py +50 -0
- exonware/xwnode/queries/executors/advanced/ask_executor.py +50 -0
- exonware/xwnode/queries/executors/advanced/construct_executor.py +50 -0
- exonware/xwnode/queries/executors/advanced/describe_executor.py +50 -0
- exonware/xwnode/queries/executors/advanced/for_loop_executor.py +50 -0
- exonware/xwnode/queries/executors/advanced/foreach_executor.py +50 -0
- exonware/xwnode/queries/executors/advanced/join_executor.py +50 -0
- exonware/xwnode/queries/executors/advanced/let_executor.py +50 -0
- exonware/xwnode/queries/executors/advanced/mutation_executor.py +50 -0
- exonware/xwnode/queries/executors/advanced/options_executor.py +50 -0
- exonware/xwnode/queries/executors/advanced/pipe_executor.py +50 -0
- exonware/xwnode/queries/executors/advanced/subscribe_executor.py +50 -0
- exonware/xwnode/queries/executors/advanced/subscription_executor.py +50 -0
- exonware/xwnode/queries/executors/advanced/union_executor.py +50 -0
- exonware/xwnode/queries/executors/advanced/window_executor.py +51 -0
- exonware/xwnode/queries/executors/advanced/with_cte_executor.py +50 -0
- exonware/xwnode/queries/executors/aggregation/__init__.py +21 -0
- exonware/xwnode/queries/executors/aggregation/avg_executor.py +50 -0
- exonware/xwnode/queries/executors/aggregation/count_executor.py +38 -0
- exonware/xwnode/queries/executors/aggregation/distinct_executor.py +50 -0
- exonware/xwnode/queries/executors/aggregation/group_executor.py +50 -0
- exonware/xwnode/queries/executors/aggregation/having_executor.py +50 -0
- exonware/xwnode/queries/executors/aggregation/max_executor.py +50 -0
- exonware/xwnode/queries/executors/aggregation/min_executor.py +50 -0
- exonware/xwnode/queries/executors/aggregation/sum_executor.py +50 -0
- exonware/xwnode/queries/executors/aggregation/summarize_executor.py +50 -0
- exonware/xwnode/queries/executors/array/__init__.py +9 -0
- exonware/xwnode/queries/executors/array/indexing_executor.py +51 -0
- exonware/xwnode/queries/executors/array/slicing_executor.py +51 -0
- exonware/xwnode/queries/executors/base.py +257 -0
- exonware/xwnode/queries/executors/capability_checker.py +204 -0
- exonware/xwnode/queries/executors/contracts.py +166 -0
- exonware/xwnode/queries/executors/core/__init__.py +17 -0
- exonware/xwnode/queries/executors/core/create_executor.py +96 -0
- exonware/xwnode/queries/executors/core/delete_executor.py +99 -0
- exonware/xwnode/queries/executors/core/drop_executor.py +100 -0
- exonware/xwnode/queries/executors/core/insert_executor.py +39 -0
- exonware/xwnode/queries/executors/core/select_executor.py +152 -0
- exonware/xwnode/queries/executors/core/update_executor.py +102 -0
- exonware/xwnode/queries/executors/data/__init__.py +13 -0
- exonware/xwnode/queries/executors/data/alter_executor.py +50 -0
- exonware/xwnode/queries/executors/data/load_executor.py +50 -0
- exonware/xwnode/queries/executors/data/merge_executor.py +50 -0
- exonware/xwnode/queries/executors/data/store_executor.py +50 -0
- exonware/xwnode/queries/executors/engine.py +221 -0
- exonware/xwnode/queries/executors/errors.py +68 -0
- exonware/xwnode/queries/executors/filtering/__init__.py +25 -0
- exonware/xwnode/queries/executors/filtering/between_executor.py +80 -0
- exonware/xwnode/queries/executors/filtering/filter_executor.py +79 -0
- exonware/xwnode/queries/executors/filtering/has_executor.py +70 -0
- exonware/xwnode/queries/executors/filtering/in_executor.py +70 -0
- exonware/xwnode/queries/executors/filtering/like_executor.py +76 -0
- exonware/xwnode/queries/executors/filtering/optional_executor.py +76 -0
- exonware/xwnode/queries/executors/filtering/range_executor.py +80 -0
- exonware/xwnode/queries/executors/filtering/term_executor.py +77 -0
- exonware/xwnode/queries/executors/filtering/values_executor.py +71 -0
- exonware/xwnode/queries/executors/filtering/where_executor.py +44 -0
- exonware/xwnode/queries/executors/graph/__init__.py +15 -0
- exonware/xwnode/queries/executors/graph/in_traverse_executor.py +51 -0
- exonware/xwnode/queries/executors/graph/match_executor.py +51 -0
- exonware/xwnode/queries/executors/graph/out_executor.py +51 -0
- exonware/xwnode/queries/executors/graph/path_executor.py +51 -0
- exonware/xwnode/queries/executors/graph/return_executor.py +51 -0
- exonware/xwnode/queries/executors/ordering/__init__.py +9 -0
- exonware/xwnode/queries/executors/ordering/by_executor.py +50 -0
- exonware/xwnode/queries/executors/ordering/order_executor.py +51 -0
- exonware/xwnode/queries/executors/projection/__init__.py +9 -0
- exonware/xwnode/queries/executors/projection/extend_executor.py +50 -0
- exonware/xwnode/queries/executors/projection/project_executor.py +50 -0
- exonware/xwnode/queries/executors/registry.py +173 -0
- exonware/xwnode/queries/executors/types.py +93 -0
- exonware/xwnode/queries/parsers/__init__.py +26 -0
- exonware/xwnode/queries/parsers/base.py +86 -0
- exonware/xwnode/queries/parsers/contracts.py +46 -0
- exonware/xwnode/queries/parsers/errors.py +53 -0
- exonware/xwnode/queries/parsers/sql_param_extractor.py +318 -0
- exonware/xwnode/{strategies/queries → queries/strategies}/__init__.py +1 -1
- exonware/xwnode/{strategies/queries → queries/strategies}/base.py +1 -1
- exonware/xwnode/{strategies/queries → queries/strategies}/cql.py +1 -1
- exonware/xwnode/{strategies/queries → queries/strategies}/cypher.py +1 -1
- exonware/xwnode/{strategies/queries → queries/strategies}/datalog.py +1 -1
- exonware/xwnode/{strategies/queries → queries/strategies}/elastic_dsl.py +1 -1
- exonware/xwnode/{strategies/queries → queries/strategies}/eql.py +1 -1
- exonware/xwnode/{strategies/queries → queries/strategies}/flux.py +1 -1
- exonware/xwnode/{strategies/queries → queries/strategies}/gql.py +1 -1
- exonware/xwnode/{strategies/queries → queries/strategies}/graphql.py +1 -1
- exonware/xwnode/{strategies/queries → queries/strategies}/gremlin.py +1 -1
- exonware/xwnode/{strategies/queries → queries/strategies}/hiveql.py +1 -1
- exonware/xwnode/{strategies/queries → queries/strategies}/hql.py +1 -1
- exonware/xwnode/{strategies/queries → queries/strategies}/jmespath.py +1 -1
- exonware/xwnode/{strategies/queries → queries/strategies}/jq.py +1 -1
- exonware/xwnode/{strategies/queries → queries/strategies}/json_query.py +1 -1
- exonware/xwnode/{strategies/queries → queries/strategies}/jsoniq.py +1 -1
- exonware/xwnode/{strategies/queries → queries/strategies}/kql.py +1 -1
- exonware/xwnode/{strategies/queries → queries/strategies}/linq.py +1 -1
- exonware/xwnode/{strategies/queries → queries/strategies}/logql.py +1 -1
- exonware/xwnode/{strategies/queries → queries/strategies}/mql.py +1 -1
- exonware/xwnode/{strategies/queries → queries/strategies}/n1ql.py +1 -1
- exonware/xwnode/{strategies/queries → queries/strategies}/partiql.py +1 -1
- exonware/xwnode/{strategies/queries → queries/strategies}/pig.py +1 -1
- exonware/xwnode/{strategies/queries → queries/strategies}/promql.py +1 -1
- exonware/xwnode/{strategies/queries → queries/strategies}/sparql.py +1 -1
- exonware/xwnode/{strategies/queries → queries/strategies}/sql.py +1 -1
- exonware/xwnode/{strategies/queries → queries/strategies}/xml_query.py +1 -1
- exonware/xwnode/{strategies/queries → queries/strategies}/xpath.py +1 -1
- exonware/xwnode/{strategies/queries → queries/strategies}/xquery.py +1 -1
- exonware/xwnode/{strategies/queries → queries/strategies}/xwnode_executor.py +1 -1
- exonware/xwnode/{strategies/queries → queries/strategies}/xwquery.py +43 -11
- exonware/xwnode/strategies/__init__.py +8 -8
- exonware/xwnode/version.py +3 -3
- {exonware_xwnode-0.0.1.13.dist-info → exonware_xwnode-0.0.1.15.dist-info}/METADATA +2 -3
- exonware_xwnode-0.0.1.15.dist-info/RECORD +214 -0
- exonware/xwnode/strategies/impls/__init__.py +0 -13
- exonware/xwnode/strategies/nodes/_base_node.py +0 -307
- exonware_xwnode-0.0.1.13.dist-info/RECORD +0 -132
- /exonware/xwnode/{strategies → common/management}/migration.py +0 -0
- /exonware/xwnode/{strategies → common/utils}/simple.py +0 -0
- /exonware/xwnode/{strategies → common/utils}/utils.py +0 -0
- /exonware/xwnode/{strategies/impls → edges/strategies}/_base_edge.py +0 -0
- /exonware/xwnode/{strategies/edges → edges/strategies}/adj_list.py +0 -0
- /exonware/xwnode/{strategies/edges → edges/strategies}/adj_matrix.py +0 -0
- /exonware/xwnode/{strategies/impls → edges/strategies}/edge_adj_list.py +0 -0
- /exonware/xwnode/{strategies/impls → edges/strategies}/edge_adj_matrix.py +0 -0
- /exonware/xwnode/{strategies/impls → edges/strategies}/edge_bidir_wrapper.py +0 -0
- /exonware/xwnode/{strategies/impls → edges/strategies}/edge_block_adj_matrix.py +0 -0
- /exonware/xwnode/{strategies/impls → edges/strategies}/edge_coo.py +0 -0
- /exonware/xwnode/{strategies/impls → edges/strategies}/edge_csc.py +0 -0
- /exonware/xwnode/{strategies/impls → edges/strategies}/edge_csr.py +0 -0
- /exonware/xwnode/{strategies/impls → edges/strategies}/edge_dynamic_adj_list.py +0 -0
- /exonware/xwnode/{strategies/impls → edges/strategies}/edge_flow_network.py +0 -0
- /exonware/xwnode/{strategies/impls → edges/strategies}/edge_hyperedge_set.py +0 -0
- /exonware/xwnode/{strategies/impls → edges/strategies}/edge_neural_graph.py +0 -0
- /exonware/xwnode/{strategies/impls → edges/strategies}/edge_octree.py +0 -0
- /exonware/xwnode/{strategies/impls → edges/strategies}/edge_property_store.py +0 -0
- /exonware/xwnode/{strategies/impls → edges/strategies}/edge_quadtree.py +0 -0
- /exonware/xwnode/{strategies/impls → edges/strategies}/edge_rtree.py +0 -0
- /exonware/xwnode/{strategies/impls → edges/strategies}/edge_temporal_edgeset.py +0 -0
- /exonware/xwnode/{strategies/impls → edges/strategies}/edge_tree_graph_basic.py +0 -0
- /exonware/xwnode/{strategies/impls → edges/strategies}/edge_weighted_graph.py +0 -0
- /exonware/xwnode/{strategies/impls → nodes/strategies}/_base_node.py +0 -0
- /exonware/xwnode/{strategies/nodes → nodes/strategies}/node_cuckoo_hash.py +0 -0
- {exonware_xwnode-0.0.1.13.dist-info → exonware_xwnode-0.0.1.15.dist-info}/WHEEL +0 -0
- {exonware_xwnode-0.0.1.13.dist-info → exonware_xwnode-0.0.1.15.dist-info}/licenses/LICENSE +0 -0
@@ -8,7 +8,7 @@ and provides conversion between different query formats using actions in tree fo
|
|
8
8
|
Company: eXonware.com
|
9
9
|
Author: Eng. Muhammad AlShehri
|
10
10
|
Email: connect@exonware.com
|
11
|
-
Version: 0.0.1.
|
11
|
+
Version: 0.0.1.15
|
12
12
|
Generation Date: January 2, 2025
|
13
13
|
"""
|
14
14
|
|
@@ -21,6 +21,7 @@ from .base import AQueryStrategy
|
|
21
21
|
from ...base import XWNodeBase
|
22
22
|
from ...contracts import QueryMode, QueryTrait
|
23
23
|
from ...errors import XWNodeTypeError, XWNodeValueError
|
24
|
+
from ..parsers.sql_param_extractor import SQLParamExtractor
|
24
25
|
|
25
26
|
|
26
27
|
class XWQueryScriptStrategy(AQueryStrategy):
|
@@ -50,6 +51,9 @@ class XWQueryScriptStrategy(AQueryStrategy):
|
|
50
51
|
self._mode = QueryMode.AUTO
|
51
52
|
self._traits = QueryTrait.STRUCTURED | QueryTrait.ANALYTICAL | QueryTrait.BATCH
|
52
53
|
|
54
|
+
# Initialize parameter extractor for structured param extraction
|
55
|
+
self._param_extractor = SQLParamExtractor()
|
56
|
+
|
53
57
|
if actions_tree is None:
|
54
58
|
self._actions_tree = XWNodeBase.from_native({
|
55
59
|
"root": {
|
@@ -183,11 +187,20 @@ class XWQueryScriptStrategy(AQueryStrategy):
|
|
183
187
|
return statements
|
184
188
|
|
185
189
|
def _parse_statement_line(self, line: str, action_type: str, line_num: int) -> Optional[Dict[str, Any]]:
|
186
|
-
"""
|
190
|
+
"""
|
191
|
+
Parse a single statement line and extract structured parameters.
|
192
|
+
|
193
|
+
This now extracts structured params for executors instead of just storing raw text.
|
194
|
+
Follows DEV_GUIDELINES.md: proper parameter extraction for clean execution.
|
195
|
+
"""
|
196
|
+
# Extract structured parameters using the param extractor
|
197
|
+
params = self._param_extractor.extract_params(line, action_type)
|
198
|
+
|
187
199
|
return {
|
188
200
|
"type": action_type,
|
189
201
|
"id": f"action_{line_num}",
|
190
|
-
"
|
202
|
+
"params": params, # Now structured!
|
203
|
+
"content": line, # Keep raw for reference
|
191
204
|
"line_number": line_num,
|
192
205
|
"timestamp": datetime.now().isoformat(),
|
193
206
|
"children": [] # For nested actions
|
@@ -304,14 +317,33 @@ class XWQueryScriptStrategy(AQueryStrategy):
|
|
304
317
|
return None
|
305
318
|
|
306
319
|
def _execute_actions_tree(self, actions_tree: XWNodeBase, **kwargs) -> Any:
|
307
|
-
"""
|
308
|
-
|
309
|
-
|
310
|
-
|
311
|
-
|
312
|
-
|
313
|
-
|
314
|
-
|
320
|
+
"""
|
321
|
+
Execute actions tree - delegates to ExecutionEngine.
|
322
|
+
|
323
|
+
This method is kept for backward compatibility but should use ExecutionEngine.
|
324
|
+
Real execution happens in queries/executors/engine.py
|
325
|
+
"""
|
326
|
+
# Import here to avoid circular dependency
|
327
|
+
from ..executors.engine import ExecutionEngine
|
328
|
+
from ..executors.contracts import ExecutionContext
|
329
|
+
|
330
|
+
# Get or create node from kwargs
|
331
|
+
node = kwargs.get('node')
|
332
|
+
if node is None:
|
333
|
+
raise XWNodeValueError("Node is required for execution")
|
334
|
+
|
335
|
+
# Create execution context
|
336
|
+
context = ExecutionContext(
|
337
|
+
node=node,
|
338
|
+
variables=kwargs.get('variables', {}),
|
339
|
+
options=kwargs
|
340
|
+
)
|
341
|
+
|
342
|
+
# Use real ExecutionEngine
|
343
|
+
engine = ExecutionEngine()
|
344
|
+
result = engine.execute_actions_tree(actions_tree, context)
|
345
|
+
|
346
|
+
return result.data if result.success else {'error': result.error}
|
315
347
|
|
316
348
|
def add_action(self, action_type: str, **action_params) -> 'XWQueryScriptStrategy':
|
317
349
|
"""Add an action to the actions tree with proper nesting."""
|
@@ -15,7 +15,7 @@ This package implements the enhanced strategy system with xwsystem-inspired opti
|
|
15
15
|
Company: eXonware.com
|
16
16
|
Author: Eng. Muhammad AlShehri
|
17
17
|
Email: connect@exonware.com
|
18
|
-
Version: 0.0.1.
|
18
|
+
Version: 0.0.1.15
|
19
19
|
Generation Date: 07-Sep-2025
|
20
20
|
"""
|
21
21
|
|
@@ -90,15 +90,15 @@ from .queries.logql import LogQLStrategy
|
|
90
90
|
from .queries.xml_query import XMLQueryStrategy
|
91
91
|
from .queries.json_query import JSONQueryStrategy
|
92
92
|
|
93
|
-
from .registry import StrategyRegistry, get_registry, register_node_strategy, register_edge_strategy
|
94
|
-
from .advisor import StrategyAdvisor, get_advisor
|
95
|
-
from .manager import StrategyManager
|
93
|
+
from ..common.patterns.registry import StrategyRegistry, get_registry, register_node_strategy, register_edge_strategy
|
94
|
+
from ..common.patterns.advisor import StrategyAdvisor, get_advisor
|
95
|
+
from ..common.management.manager import StrategyManager
|
96
96
|
|
97
97
|
# Enhanced components
|
98
|
-
from .flyweight import StrategyFlyweight, get_flyweight, get_flyweight_stats, clear_flyweight_cache
|
99
|
-
from .pattern_detector import DataPatternDetector, get_detector, analyze_data_patterns, recommend_strategy
|
100
|
-
from .performance_monitor import StrategyPerformanceMonitor, get_monitor, record_operation, get_performance_summary
|
101
|
-
from .metrics import StrategyMetricsCollector, get_metrics_collector, collect_comprehensive_metrics, get_metrics_summary
|
98
|
+
from ..common.patterns.flyweight import StrategyFlyweight, get_flyweight, get_flyweight_stats, clear_flyweight_cache
|
99
|
+
from ..common.monitoring.pattern_detector import DataPatternDetector, get_detector, analyze_data_patterns, recommend_strategy
|
100
|
+
from ..common.monitoring.performance_monitor import StrategyPerformanceMonitor, get_monitor, record_operation, get_performance_summary
|
101
|
+
from ..common.monitoring.metrics import StrategyMetricsCollector, get_metrics_collector, collect_comprehensive_metrics, get_metrics_summary
|
102
102
|
|
103
103
|
__all__ = [
|
104
104
|
# Types and enums
|
exonware/xwnode/version.py
CHANGED
@@ -4,7 +4,7 @@ Centralized version management for xwnode.
|
|
4
4
|
Company: eXonware.com
|
5
5
|
Author: Eng. Muhammad AlShehri
|
6
6
|
Email: connect@exonware.com
|
7
|
-
Generation Date: October
|
7
|
+
Generation Date: October 09, 2025
|
8
8
|
|
9
9
|
This module provides centralized version management for the entire xwnode project.
|
10
10
|
All version references should import from this module to ensure consistency.
|
@@ -15,13 +15,13 @@ All version references should import from this module to ensure consistency.
|
|
15
15
|
# =============================================================================
|
16
16
|
|
17
17
|
# Main version - update this to change version across entire project
|
18
|
-
__version__ = "0.0.1.
|
18
|
+
__version__ = "0.0.1.15"
|
19
19
|
|
20
20
|
# Version components for programmatic access
|
21
21
|
VERSION_MAJOR = 0
|
22
22
|
VERSION_MINOR = 0
|
23
23
|
VERSION_PATCH = 1
|
24
|
-
VERSION_BUILD =
|
24
|
+
VERSION_BUILD = 15# Set to None for releases, or build number for dev builds
|
25
25
|
|
26
26
|
# Version metadata
|
27
27
|
VERSION_SUFFIX = "" # e.g., "dev", "alpha", "beta", "rc1"
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.4
|
2
2
|
Name: exonware-xwnode
|
3
|
-
Version: 0.0.1.
|
3
|
+
Version: 0.0.1.15
|
4
4
|
Summary: Node-based data processing and graph computation library
|
5
5
|
Project-URL: Homepage, https://exonware.com
|
6
6
|
Project-URL: Repository, https://github.com/exonware/xwnode
|
@@ -19,7 +19,6 @@ Classifier: Programming Language :: Python :: 3.9
|
|
19
19
|
Classifier: Programming Language :: Python :: 3.10
|
20
20
|
Classifier: Programming Language :: Python :: 3.11
|
21
21
|
Classifier: Programming Language :: Python :: 3.12
|
22
|
-
Classifier: Programming Language :: Python :: 3.13
|
23
22
|
Classifier: Topic :: Software Development :: Libraries :: Python Modules
|
24
23
|
Requires-Python: >=3.8
|
25
24
|
Requires-Dist: exonware-xwsystem>=0.0.1
|
@@ -41,7 +40,7 @@ Description-Content-Type: text/markdown
|
|
41
40
|
**Company:** eXonware.com
|
42
41
|
**Author:** Eng. Muhammad AlShehri
|
43
42
|
**Email:** connect@exonware.com
|
44
|
-
**Version:** 0.0.1.
|
43
|
+
**Version:** 0.0.1.15
|
45
44
|
|
46
45
|
## 🎯 **What is xwnode?**
|
47
46
|
|
@@ -0,0 +1,214 @@
|
|
1
|
+
exonware/__init__.py,sha256=OwaJSsl__tMu8N15ufFZVSEQzRZJNPo_1Cfwjn-6Y7c,324
|
2
|
+
exonware/xwnode/__init__.py,sha256=UbS5jtjb1HlHscZs5LK3iBJ6WxfwXrk5qQ5rHvo8asE,3814
|
3
|
+
exonware/xwnode/base.py,sha256=6Wv45p0IK-KGgxZUYZ5-Jc6GROWd8_nMHB4a43ImhFc,23832
|
4
|
+
exonware/xwnode/config.py,sha256=Kt8oFMhLmb-3rZdxWle-_Z3PGJj04XhZUp7K9FUnxN0,5707
|
5
|
+
exonware/xwnode/contracts.py,sha256=UHVk-7RWt-hVPJlRKVU8MnC9yE6QDAxzXji3f3UN4RE,20693
|
6
|
+
exonware/xwnode/errors.py,sha256=JZCrGdK31LlrE5cY1_s5Jb6x7zsBF0WUiE2PCWfIdNk,18396
|
7
|
+
exonware/xwnode/facade.py,sha256=AZFl1YSiJX8sUuDjuJ_gMIpiviKz-lEjIn0CRXTwwQQ,16083
|
8
|
+
exonware/xwnode/types.py,sha256=uioV6DW9nnQ0p3ZIdhYNQ5XtbQB2_INIljUkeCZox9o,34471
|
9
|
+
exonware/xwnode/version.py,sha256=YYqOMoD-SbCBN76ST1gyL8Z_3HB3Hmb23YnMbK2Wna0,2379
|
10
|
+
exonware/xwnode/common/__init__.py,sha256=mDNQoe02Z2GotSgeLKwBtIglHJpPhk1cUXi2dHU7rq0,387
|
11
|
+
exonware/xwnode/common/management/__init__.py,sha256=N4KCcoD_5p9YlSZiGnooXZJmaOo52dWNN2hFQ7thVbs,679
|
12
|
+
exonware/xwnode/common/management/manager.py,sha256=zBbEbQZfO_WcNiFAkcuZwxIHy6U7Hvco6bxKhgyqDOM,33909
|
13
|
+
exonware/xwnode/common/management/migration.py,sha256=w_YEpNiVtYBA50mGvfTVyLFz-GViyT5Adzmvlp8P4gk,20181
|
14
|
+
exonware/xwnode/common/monitoring/__init__.py,sha256=odW4av9VQ2mPZpSy9qYmLPLebm52n_pFYVJL7O3yhW0,679
|
15
|
+
exonware/xwnode/common/monitoring/metrics.py,sha256=mLvDWlcnJ5q24_cV0un96dH32e56DnDdbB-w0V0EEJA,19454
|
16
|
+
exonware/xwnode/common/monitoring/pattern_detector.py,sha256=T8zajXMrmDSTgjRmx_kWMUGe_nDZZEmpv9WFroZCPCU,21668
|
17
|
+
exonware/xwnode/common/monitoring/performance_monitor.py,sha256=tIIdcO1f72QKbtDl56rUS4Mdam6_ZQs6n_n8Ob90WLA,17474
|
18
|
+
exonware/xwnode/common/patterns/__init__.py,sha256=uMIYALBwaluuo4TbXCkVSqgtvNB9gMOlnK3t71kBkUU,675
|
19
|
+
exonware/xwnode/common/patterns/advisor.py,sha256=40pP7DRopEwlHv-QtSxeyeZC0ZJwhL-SbqVmb6G49gU,18189
|
20
|
+
exonware/xwnode/common/patterns/flyweight.py,sha256=ieM7mKkInz39mH_7hgXQseACQDLbnpb3B4xGwJ7Gd0c,11347
|
21
|
+
exonware/xwnode/common/patterns/registry.py,sha256=mbuTMNdeUzTEeG2EbwMfBxhYvzJaDs2JKwHimRL62FM,29231
|
22
|
+
exonware/xwnode/common/utils/__init__.py,sha256=0X-2I2Z9Hf9Gxqrpk0nWhstbNSgTbR9ewhkgBC4cqEM,669
|
23
|
+
exonware/xwnode/common/utils/simple.py,sha256=3hylQDJ9CRSIKdu3sc3qYJa2bQlVo7AlMQ3a0THNLxs,9079
|
24
|
+
exonware/xwnode/common/utils/utils.py,sha256=ma_C5Xpgpo0053jEWqzco4-KNyBOWanJhKvQ3Masq84,17554
|
25
|
+
exonware/xwnode/edges/strategies/__init__.py,sha256=MzqM43LbzyUfd9LH9XZ1RiPeFVRCCMssHO9TMtTPhLA,771
|
26
|
+
exonware/xwnode/edges/strategies/_base_edge.py,sha256=hmOEL3M0wz95h6FrcTBf9dzSiwemRuNyNH9bgk27AY8,13602
|
27
|
+
exonware/xwnode/edges/strategies/adj_list.py,sha256=RdvQayElMahOa239urnWqwQVkui8phj-0fsyI8FsUvM,8162
|
28
|
+
exonware/xwnode/edges/strategies/adj_matrix.py,sha256=pAsW5s264WvwUEYX7Ezgl-DW87kP8V6LZeDOuVXevqU,14744
|
29
|
+
exonware/xwnode/edges/strategies/base.py,sha256=32LoqgsXtWqpwg6Gp1FC9BmIm42yeQbhsmJjc4j6Gjc,6251
|
30
|
+
exonware/xwnode/edges/strategies/edge_adj_list.py,sha256=_QvMiSnX5Zt4pUqu6O06IceDTCKB8sOMBs5XYWte3Co,13986
|
31
|
+
exonware/xwnode/edges/strategies/edge_adj_matrix.py,sha256=Iyb2TCI7n9xCH-ZwQVZQLrJV_6MOIwKz1iECLA2rhVU,17551
|
32
|
+
exonware/xwnode/edges/strategies/edge_bidir_wrapper.py,sha256=wSv4XMVoBjjuAb9m22t5ZG3_XSynJYwmeUQe7fnLFQ0,18050
|
33
|
+
exonware/xwnode/edges/strategies/edge_block_adj_matrix.py,sha256=2TVJhSFyxqvbgPNNHnFhqsgD4ETzKS0IOS5lBEaDfok,21142
|
34
|
+
exonware/xwnode/edges/strategies/edge_coo.py,sha256=o9unqJeOuT5skhr4OSNCRTtGnvdsBSK6F8iFEQkGv_g,19970
|
35
|
+
exonware/xwnode/edges/strategies/edge_csc.py,sha256=wYtxoE7_-Ulaxhk9L8oq9VZbD4dZ1tCNESijY-wydU4,16781
|
36
|
+
exonware/xwnode/edges/strategies/edge_csr.py,sha256=My4-weNwJ9SS6cVr_aoEz2hZOJltRB23DakTEEHr90o,18634
|
37
|
+
exonware/xwnode/edges/strategies/edge_dynamic_adj_list.py,sha256=gl9CpS02LAqzNrZ7nhVWNE5iBTYLRw1SlSUrmZEXfoY,19668
|
38
|
+
exonware/xwnode/edges/strategies/edge_flow_network.py,sha256=Fgy36PBGuR-47SrNat7cc7SdDUSppScAY7bJ8m6uqJg,21473
|
39
|
+
exonware/xwnode/edges/strategies/edge_hyperedge_set.py,sha256=oYEtaen8pXX9fIKClTP9wxJ7aqTOJ_hS68WlHkw8Vf4,20764
|
40
|
+
exonware/xwnode/edges/strategies/edge_neural_graph.py,sha256=wFoYGdxh3wV2P0KmbKGkAmUyLmRtdXB_dYlGQVBYlmc,25117
|
41
|
+
exonware/xwnode/edges/strategies/edge_octree.py,sha256=NxNxaVQze97IZvkPGSkp7cuIZSj1XZ7VpEdfiLmH9YA,22969
|
42
|
+
exonware/xwnode/edges/strategies/edge_property_store.py,sha256=s5e70_soYYSZIqjBXU_zWY9FXI_bQjFmZzknu6qPQr0,25630
|
43
|
+
exonware/xwnode/edges/strategies/edge_quadtree.py,sha256=Br8v3F0Pi5G8T1UA_3IXQ6cvNQ1oJOOYAZ9GeQ2f_M8,20149
|
44
|
+
exonware/xwnode/edges/strategies/edge_rtree.py,sha256=0xGjjAzhno_PmCr-fc1JQCb1SVyLyE_J20CEYKDy118,31454
|
45
|
+
exonware/xwnode/edges/strategies/edge_temporal_edgeset.py,sha256=RjGu_u6C8sr4U7Oc4PhmxxvXMH7dycOpBVE4N1yO1qY,22127
|
46
|
+
exonware/xwnode/edges/strategies/edge_tree_graph_basic.py,sha256=GjQAT1kAcOw8eCqsIKbr7NJpXM2_FWCXk_XJN1fAlaE,9996
|
47
|
+
exonware/xwnode/edges/strategies/edge_weighted_graph.py,sha256=1w9qBMUgOf_s0bAXryXOZe_XrBOLpdofYCQNZguJfZs,16508
|
48
|
+
exonware/xwnode/nodes/strategies/__init__.py,sha256=ofOllkGy76m0p_JBREeEUrAaCMT8l24AJFPIDyAfvdI,1197
|
49
|
+
exonware/xwnode/nodes/strategies/_base_node.py,sha256=TE7ND2qSQnruJ01h1JtLI3WIzoJiLPdJnan5HeFWvwA,10270
|
50
|
+
exonware/xwnode/nodes/strategies/adjacency_list.py,sha256=1TutCdY_Be51dWEIFAEXtEC1HssfcZ3cIzJRD_Gh9qE,9049
|
51
|
+
exonware/xwnode/nodes/strategies/aho_corasick.py,sha256=fg30fOm-nKdVbKTNq365iCHqM_-eqQzn-uttoOB7Q7U,12515
|
52
|
+
exonware/xwnode/nodes/strategies/array_list.py,sha256=pgkMwMVAX9sNPDfF23VE32_otl1HzysR_K2bVzG-WvI,7185
|
53
|
+
exonware/xwnode/nodes/strategies/base.py,sha256=EghqlPvpv3a1YK6YeFrnGV-ovB9amS9ulAZhWmnSVlI,9627
|
54
|
+
exonware/xwnode/nodes/strategies/contracts.py,sha256=ga1KlDnlS3PoXa9YHBE8ddzh4V1D_P10XTqtyygDWDY,3225
|
55
|
+
exonware/xwnode/nodes/strategies/deque.py,sha256=pGR6CqzLSUoUBycHgEV6i1ysC-1bds6_noI57uA5hGM,6491
|
56
|
+
exonware/xwnode/nodes/strategies/hash_map.py,sha256=fEPE3xconVKzbx5BsQ84PHG-wy2Il2J8F7EoKF8s5mY,4617
|
57
|
+
exonware/xwnode/nodes/strategies/heap.py,sha256=VVntkz0vJgug9qpAwCTouQrmc1QNpUWMt1AuncGQUKk,10441
|
58
|
+
exonware/xwnode/nodes/strategies/linked_list.py,sha256=5thO3Bpw94S_Pnz5GQyIU5rGwXZY8IHTKyB-JHVS53c,7873
|
59
|
+
exonware/xwnode/nodes/strategies/node_aho_corasick.py,sha256=iH0yBzc43bh8hJ3ophazLJ2XTxIVhfThHIfwnG8pmG4,18674
|
60
|
+
exonware/xwnode/nodes/strategies/node_array_list.py,sha256=XdHvX1yK2BSrBZniMr1zQBY9Yms4A8P8t3hVk4lnzGQ,6113
|
61
|
+
exonware/xwnode/nodes/strategies/node_avl_tree.py,sha256=JEd3Xqb8KvA25e9kxYurHpeiXRd_THtWCEKac2NwdQs,12937
|
62
|
+
exonware/xwnode/nodes/strategies/node_b_plus_tree.py,sha256=19WpKY70wnEzl-h2ONEMIJSy3exAo5srJDnzGyZqiFk,18974
|
63
|
+
exonware/xwnode/nodes/strategies/node_bitmap.py,sha256=aI-IK-ydWDmZw_w0U5ZwAcJ1Rt7u4RAPWXHzs7MVjbw,15169
|
64
|
+
exonware/xwnode/nodes/strategies/node_bitset_dynamic.py,sha256=w9UceT9c9ahkBggJ1q96Jao-Y3NyQIhvUOcEsh-BGnE,18952
|
65
|
+
exonware/xwnode/nodes/strategies/node_bloom_filter.py,sha256=Oi2dQ7THEA_bplnPwxid-p8ltjf9qA1jsT1FimOJgvQ,13313
|
66
|
+
exonware/xwnode/nodes/strategies/node_btree.py,sha256=ekudIn6S8Gys5ayRECbELDWQ096CK0Wi-x-4yajlhHE,12361
|
67
|
+
exonware/xwnode/nodes/strategies/node_count_min_sketch.py,sha256=2tyMmBPFX7daU7Z5sQZMyJa9MXt-98bTQlcXkPdzTGA,17993
|
68
|
+
exonware/xwnode/nodes/strategies/node_cow_tree.py,sha256=jUwhavdGIanp2ia6YHwLXgqdShDlPGW6X3vAwj9K7RE,17216
|
69
|
+
exonware/xwnode/nodes/strategies/node_cuckoo_hash.py,sha256=HkwLYMfzDxBZ-UhLviBmU1v2yo1R-0sCqGkl3_ugHDQ,14958
|
70
|
+
exonware/xwnode/nodes/strategies/node_fenwick_tree.py,sha256=1M1oHIdbWLwo60KDKaRjjWyDHq9b3burmLIrLt_t2Y4,10821
|
71
|
+
exonware/xwnode/nodes/strategies/node_hash_map.py,sha256=iAffwQ22dmZgjGBo3fXtrf87868B5HOS2MgoaDFrYbQ,8742
|
72
|
+
exonware/xwnode/nodes/strategies/node_heap.py,sha256=AAlNRQkFQY-0eaDczN8vweov1_f01XmQjHARHLA3eB4,7013
|
73
|
+
exonware/xwnode/nodes/strategies/node_hyperloglog.py,sha256=K2yuhocNwXxj44RBNXnnTSp-JlG1-VzEW_VfpSsQxpE,14917
|
74
|
+
exonware/xwnode/nodes/strategies/node_linked_list.py,sha256=CV_qoYgeMAjB3gYpuMyuU3XWmmuVa3qqFrAvD6b_dVo,13513
|
75
|
+
exonware/xwnode/nodes/strategies/node_lsm_tree.py,sha256=oWgulsb0Qqfq5PBze3PPL2eNURG5VRLkuVlE05v36ss,14850
|
76
|
+
exonware/xwnode/nodes/strategies/node_ordered_map.py,sha256=H2TXHuhEOuz-CSKEaE8TGAwwaB2kAADnkTAnqpfJL0Y,14620
|
77
|
+
exonware/xwnode/nodes/strategies/node_ordered_map_balanced.py,sha256=u15_TVz4QMn79kMNcXQGpW6yJhPPi1jWWtx5d03EQ1k,20602
|
78
|
+
exonware/xwnode/nodes/strategies/node_patricia.py,sha256=cmx2oNM30Dhsj-NmvWw2GhqOsPDquwzSQUFLVgwwuBY,18790
|
79
|
+
exonware/xwnode/nodes/strategies/node_persistent_tree.py,sha256=fsdzNJYpTapbqgyxC6FAjGLYphgqufk9fHRjblHQuG4,14445
|
80
|
+
exonware/xwnode/nodes/strategies/node_radix_trie.py,sha256=vijspHG71lsU_zTNTNdWnCCdM3CjSn5FQgoG0qwyIPg,17236
|
81
|
+
exonware/xwnode/nodes/strategies/node_red_black_tree.py,sha256=cN94DNZEqZaVPLiYRAdK5BQCQSoMXGLEIhanRMqvU80,17800
|
82
|
+
exonware/xwnode/nodes/strategies/node_roaring_bitmap.py,sha256=nl3yksqHd8_3e6hBBoYL8Nl7KD1qRvEfs5346-P2Eic,20541
|
83
|
+
exonware/xwnode/nodes/strategies/node_segment_tree.py,sha256=-saFgpRyxSXlJNYUzI9gs2ERkww89DGtQQFSm06Ctfw,10874
|
84
|
+
exonware/xwnode/nodes/strategies/node_set_hash.py,sha256=zZX4zwRIuJRyhyaCIERS392No4bo0sxZRJmIkboC3wc,13379
|
85
|
+
exonware/xwnode/nodes/strategies/node_set_tree.py,sha256=DShmVvBi9vpmXXWrof92Lfb6HePIs2OoubrQUJzCT6U,15958
|
86
|
+
exonware/xwnode/nodes/strategies/node_skip_list.py,sha256=YLjBShPS4BHBRx_mlwevWOrtHS1O8f_LN93CgWFDjbw,11461
|
87
|
+
exonware/xwnode/nodes/strategies/node_splay_tree.py,sha256=xpzNwwL-o-iNG1xxt_wvkf7j1vsPmExWZ-xPdQEGFM8,13287
|
88
|
+
exonware/xwnode/nodes/strategies/node_suffix_array.py,sha256=TbWEBd8GnVHcPat4AEk5Q-mGvcXBzDegpQ0Gic8c8As,16984
|
89
|
+
exonware/xwnode/nodes/strategies/node_treap.py,sha256=I7aFY2uSecFm0YgoVCep03eol6OCb503Ge1zeqBQRSA,13897
|
90
|
+
exonware/xwnode/nodes/strategies/node_tree_graph_hybrid.py,sha256=rMjml66iaLunTnTxWpyvJHliMGLzbCnIExlfPbfCDkE,53757
|
91
|
+
exonware/xwnode/nodes/strategies/node_trie.py,sha256=5j2b20bIsSooufFj05bD3j1xR_0bi7UyQW338sH7Bvw,8678
|
92
|
+
exonware/xwnode/nodes/strategies/node_union_find.py,sha256=5MV7fPCFLbbdJvN2qSBaTZIuzLsl8zvdgzfH2jlNfGU,7271
|
93
|
+
exonware/xwnode/nodes/strategies/node_xdata_optimized.py,sha256=n1T4Y4s6d0oqwRMhWDjfV9Rf5884_C9fPPh_dCq4T6I,14495
|
94
|
+
exonware/xwnode/nodes/strategies/priority_queue.py,sha256=cakkwtW6vXnP06wdVwEvalO6QH0yJJppTjvDbQIFmZM,7930
|
95
|
+
exonware/xwnode/nodes/strategies/queue.py,sha256=F-hc83ZNE_OFZE3a5bPslsypNHSg2HGwCpl9DnVbcao,5391
|
96
|
+
exonware/xwnode/nodes/strategies/sparse_matrix.py,sha256=X_Tj6Rgr74mefH6bFnlMWEg0bXh3PNCFMEgokMfiZso,7250
|
97
|
+
exonware/xwnode/nodes/strategies/stack.py,sha256=ZUO-MzgkGgjm4EUSWkX92_YBzR3ORq6kzNKt29boGls,5158
|
98
|
+
exonware/xwnode/nodes/strategies/trie.py,sha256=hlzzr7gStVbri12SlLFLNYEA-5WXJ-LkoDPOsa8qU7I,9096
|
99
|
+
exonware/xwnode/nodes/strategies/union_find.py,sha256=ixCWYNI2Jtk8DqEauHL6qBitHViy7EZQwH-hawU2q34,10387
|
100
|
+
exonware/xwnode/queries/executors/__init__.py,sha256=qcYCTs-V0xd7CcNZoqNWorVnunVYdTBO6UZWILO5Aj8,1166
|
101
|
+
exonware/xwnode/queries/executors/base.py,sha256=pPqCGvVHOtoKeig6sJKBVVt17S5I7KYf3pPBkdhKuCE,7783
|
102
|
+
exonware/xwnode/queries/executors/capability_checker.py,sha256=mRzZc5rk-l6rr6m6uenO_ZD3pk-ZDgjTXLXoRt0oY14,8847
|
103
|
+
exonware/xwnode/queries/executors/contracts.py,sha256=chnI3h1AJeOnQRnC0ikdgUpufC23RWQWAHlIHbVRQm4,5223
|
104
|
+
exonware/xwnode/queries/executors/engine.py,sha256=FV7RL06WLMpo_dSCIcKsR04EkQK3NjWtXmjUhfAKgeI,7092
|
105
|
+
exonware/xwnode/queries/executors/errors.py,sha256=FSt9TF3rBRG-NYC_F7sjqltto5ZtDxJdG7Hp8QagtZY,1890
|
106
|
+
exonware/xwnode/queries/executors/registry.py,sha256=qW1bGcRREpedXeyw7cc8C93XWtDKpDes-1CBj7USXZw,5009
|
107
|
+
exonware/xwnode/queries/executors/types.py,sha256=qlWJxYuen8tTMvgVp8gO0UdVvA3sp54hyEMSnHIGAOE,2770
|
108
|
+
exonware/xwnode/queries/executors/advanced/__init__.py,sha256=DivB0uqu7ytZsu5YilnWt_-74D7f_JSNvwJ0ZHGvGUU,1146
|
109
|
+
exonware/xwnode/queries/executors/advanced/aggregate_executor.py,sha256=1N7y1coOLpx1DNjWJ_GKPrTh3yseIGT05qzCuuEixes,1498
|
110
|
+
exonware/xwnode/queries/executors/advanced/ask_executor.py,sha256=_9YGgjWVzztzhVVsPQQZO-GRilUpwUe5HOS8u75Bjx0,1432
|
111
|
+
exonware/xwnode/queries/executors/advanced/construct_executor.py,sha256=WueI0YZskphdXl4Kkwwd1dl_fCjhs4j7pdUoA6HD5TY,1493
|
112
|
+
exonware/xwnode/queries/executors/advanced/describe_executor.py,sha256=7PI62Lie-kNY1SKceIv8Nd80ey_vkoyU-i7YdcseQhQ,1479
|
113
|
+
exonware/xwnode/queries/executors/advanced/for_loop_executor.py,sha256=AKMGB4AB05jr4Pykc8CQpaQVTibkWU3MiZlDNG8mD94,1453
|
114
|
+
exonware/xwnode/queries/executors/advanced/foreach_executor.py,sha256=u_IDPpSQ4rj4k70ICgWnH_Qy-KnTLCTVU_a2dSo_EbE,1476
|
115
|
+
exonware/xwnode/queries/executors/advanced/join_executor.py,sha256=C1c8mlILrAd1hM-89SGeFO7kj6fxdLA5A6w42HvCaMU,1443
|
116
|
+
exonware/xwnode/queries/executors/advanced/let_executor.py,sha256=jeUuZuQp60L4mspxLu_f15PtQqYRTJAf7BBFVyb_rhw,1438
|
117
|
+
exonware/xwnode/queries/executors/advanced/mutation_executor.py,sha256=4EZr0S7k75uVsxCz9-7drIVGyhkxIIU9LKAFB8Cglm0,1476
|
118
|
+
exonware/xwnode/queries/executors/advanced/options_executor.py,sha256=tIANVVS0_82dZrKietUbGVozNY817CFGDxqF_ChzQ-w,1465
|
119
|
+
exonware/xwnode/queries/executors/advanced/pipe_executor.py,sha256=WJUtbEfZS3RD8_EDYDaEQKD-K9fKdXS-fQWpTEnCmo4,1432
|
120
|
+
exonware/xwnode/queries/executors/advanced/subscribe_executor.py,sha256=YM1FIr2Qc7bhVCeN6k-qfYZ1FmBaycpTfWDthePn7JI,1489
|
121
|
+
exonware/xwnode/queries/executors/advanced/subscription_executor.py,sha256=uRNNCfDel6ymsGpiPafKDTdBRtjdPNhPPp04aeXGoU8,1514
|
122
|
+
exonware/xwnode/queries/executors/advanced/union_executor.py,sha256=qBerTCvR83IiA7Iyk2tuGgYZU1oN7ZxNNKol1TSCZxA,1454
|
123
|
+
exonware/xwnode/queries/executors/advanced/window_executor.py,sha256=eI7MgbriDS9Wic_woqFsGBW4K6wKiRk2e2RLTTsLlAU,1519
|
124
|
+
exonware/xwnode/queries/executors/advanced/with_cte_executor.py,sha256=RjdJCRF6082ckKxEnl8haIOO_KBm9_oH-GOSOpK_1OI,1464
|
125
|
+
exonware/xwnode/queries/executors/aggregation/__init__.py,sha256=29fKp5tzR8qOpDnLaVHwItdrqiiIhUkOMfJhVWqRUJM,559
|
126
|
+
exonware/xwnode/queries/executors/aggregation/avg_executor.py,sha256=xSVKqhqlzw_dRmsu3fhOWpNOqk_GCjc-V7uS0AXtj0o,1446
|
127
|
+
exonware/xwnode/queries/executors/aggregation/count_executor.py,sha256=E3BbVA6QvBdduUgwTjRCuQdITaNO9s7IAAsUy-hQ6_I,1146
|
128
|
+
exonware/xwnode/queries/executors/aggregation/distinct_executor.py,sha256=5UABuL_2T-fFEBbC3Eo5sZ8J_XyC_gli07Bpr3mQMCM,1492
|
129
|
+
exonware/xwnode/queries/executors/aggregation/group_executor.py,sha256=1Y0EYMgGgZ0oLr82_3Bst_FDR8zrSTSTMWTqWgC475I,1463
|
130
|
+
exonware/xwnode/queries/executors/aggregation/having_executor.py,sha256=pKYS1HVbjQWseeQ_acVWW3-w8PtyZk18BqAK_-6a-Lg,1462
|
131
|
+
exonware/xwnode/queries/executors/aggregation/max_executor.py,sha256=LhdMYkv4vi3186HCKMk__hitpaPOt1-QNMdZ47OlgSg,1431
|
132
|
+
exonware/xwnode/queries/executors/aggregation/min_executor.py,sha256=1HCnwf-gO41-1Kq7cqsHQEGy3CA3UYno5VG1ACIeT24,1431
|
133
|
+
exonware/xwnode/queries/executors/aggregation/sum_executor.py,sha256=qDIAUsKKJsnRdbp3wXZTaPhpu3qVKi05jrcALa0qFRo,1442
|
134
|
+
exonware/xwnode/queries/executors/aggregation/summarize_executor.py,sha256=0v0NPK9Xcb6_kAJtYv-dFIYkoqW0oJtdlqE4M-ksSnM,1505
|
135
|
+
exonware/xwnode/queries/executors/array/__init__.py,sha256=4AGrHjYNq4pz92jViMixc_P06I9zQMC0ebM2l4HjeJU,190
|
136
|
+
exonware/xwnode/queries/executors/array/indexing_executor.py,sha256=xlWL-_ChvlAm7l2tF2l-RaAlcAjwQrT_fB4-YL-kB9Y,1552
|
137
|
+
exonware/xwnode/queries/executors/array/slicing_executor.py,sha256=deqUEQEyovjUO1V7Ny8WYh8lO0J6_T24J26JQQ0rkuc,1520
|
138
|
+
exonware/xwnode/queries/executors/core/__init__.py,sha256=gX7xCXEWO-Y2NtFAqFhKZHccv3agm3ar8rGViUpiV8I,443
|
139
|
+
exonware/xwnode/queries/executors/core/create_executor.py,sha256=ImIZ7KHdwvlyEC8Jc8HnniX9Vo5TXSUQcQS0GYaPvm4,3171
|
140
|
+
exonware/xwnode/queries/executors/core/delete_executor.py,sha256=qMP3N31BBEQES1qMPEzmardCz_Df-eGsBrCsv1RAVQs,3077
|
141
|
+
exonware/xwnode/queries/executors/core/drop_executor.py,sha256=t8Oao12dMpeI443oGWYfDLs39w2jyVBDAizDuE8ZIXg,3070
|
142
|
+
exonware/xwnode/queries/executors/core/insert_executor.py,sha256=5oU68OTiuhsN7cgdxwv4GKJiEjDjrvEUbAuJZMfgxVs,1190
|
143
|
+
exonware/xwnode/queries/executors/core/select_executor.py,sha256=DokkQPSJMp4lQJukIEWoNMKzrBMNgSOaVu8aD5ADoeo,5365
|
144
|
+
exonware/xwnode/queries/executors/core/update_executor.py,sha256=LkK1xlyWCi_4ZMvDDOnwHCNOTZzV19BFHPLLkRva4RY,3292
|
145
|
+
exonware/xwnode/queries/executors/data/__init__.py,sha256=VmOnd8M4oFrNpQKEAvPW0V4qb-zvv4VFpYugy8hZkdg,297
|
146
|
+
exonware/xwnode/queries/executors/data/alter_executor.py,sha256=F2NwwOvB-_gz0tVduIqG5iylFMfG5AJH-l_fQ98uB8A,1442
|
147
|
+
exonware/xwnode/queries/executors/data/load_executor.py,sha256=-hu1m4p3ruMWOUJ8eFCofZO4oxqBQD2OoqX6GSQOb4E,1441
|
148
|
+
exonware/xwnode/queries/executors/data/merge_executor.py,sha256=CHs4qrB68O6HF4H7q4aN8uG0G6Coxszr_UdLKhYLUFg,1438
|
149
|
+
exonware/xwnode/queries/executors/data/store_executor.py,sha256=tkthtnIu4gWQOgFa01M9tLnP7FjJW3Y2tKue5aHDgMk,1455
|
150
|
+
exonware/xwnode/queries/executors/filtering/__init__.py,sha256=GyCHfxXGXumimpoPbCnka5-G1su6QnVfHkyZb7xF8UA,683
|
151
|
+
exonware/xwnode/queries/executors/filtering/between_executor.py,sha256=v1HUIjUpmXHkRbQeFcbJl4r09ScMUkLiz5a3wel7iRg,2515
|
152
|
+
exonware/xwnode/queries/executors/filtering/filter_executor.py,sha256=qGv4D4rZIgy8E60M0KQ8X9bkBmOAm_c3HmK2I2MTanE,2521
|
153
|
+
exonware/xwnode/queries/executors/filtering/has_executor.py,sha256=fNG9OrhwDe97kSjD7LsnxOQVYER1MCccsxzur0C7baI,2142
|
154
|
+
exonware/xwnode/queries/executors/filtering/in_executor.py,sha256=w4IOiwc7x7TPHsuT7tuD-esIcLv7WLEaiJqNUX1zZds,2136
|
155
|
+
exonware/xwnode/queries/executors/filtering/like_executor.py,sha256=Mi8dy-MPzyUxdSFmnH1TlU8pXjg26-OgKJeePTue-W4,2398
|
156
|
+
exonware/xwnode/queries/executors/filtering/optional_executor.py,sha256=_CUQH5ZVKIh68tkeSvhJ4ST0ulxl2PYSVGrqFlwMlog,2499
|
157
|
+
exonware/xwnode/queries/executors/filtering/range_executor.py,sha256=HW9JhnDPsIJZYrzc3WUFTDQUF3lDukNREfzgXbtxYq0,2584
|
158
|
+
exonware/xwnode/queries/executors/filtering/term_executor.py,sha256=35fvh2hwokZe9csdRTa1tUpmmfpKEZuMJWegOkcTRf4,2506
|
159
|
+
exonware/xwnode/queries/executors/filtering/values_executor.py,sha256=wBfHdQIoWHd9Se2B8h4VjjgHAUvzkhmurX0jqSYP13c,2185
|
160
|
+
exonware/xwnode/queries/executors/filtering/where_executor.py,sha256=EP58NDWCJTnUK8GoDnC63OJVT9XOXqJmNWIKd97A7wE,1434
|
161
|
+
exonware/xwnode/queries/executors/graph/__init__.py,sha256=pzyyiZ_mMXpHbE_sDtvb4OYI2l0rAuRRT3bDN2MCXMA,374
|
162
|
+
exonware/xwnode/queries/executors/graph/in_traverse_executor.py,sha256=6_C6D0rJhF4JXRxd3zEmTbSnfWcpQZmRnifP47EXItM,1577
|
163
|
+
exonware/xwnode/queries/executors/graph/match_executor.py,sha256=qfvp40EyPSEHBBEX6_jIzhb2YvXa0gZh0sghjGEgDx0,1517
|
164
|
+
exonware/xwnode/queries/executors/graph/out_executor.py,sha256=1LYMtCgNEpCvUgr8PeKMykupryUF6wl4MD-7oiR_rEM,1499
|
165
|
+
exonware/xwnode/queries/executors/graph/path_executor.py,sha256=lpOjfoliJxLMYwY1t3cywBSVqugPTdPJM9wmtMJOdwY,1510
|
166
|
+
exonware/xwnode/queries/executors/graph/return_executor.py,sha256=DGhk_tI_M8sawI-kF7uBX5F-fu33L_tAcW3zGeCFbYs,1532
|
167
|
+
exonware/xwnode/queries/executors/ordering/__init__.py,sha256=vytddfkWSQTDKEpxT9JXgrG5oQB39giS7JYJ3JqKW8w,169
|
168
|
+
exonware/xwnode/queries/executors/ordering/by_executor.py,sha256=OPJKbZwnz5y3mgB-8kggXdlToLgZPyd3lAe55upDIJ8,1420
|
169
|
+
exonware/xwnode/queries/executors/ordering/order_executor.py,sha256=8iUX1-N3UaZp70hrOPEDIKwSgK_nuSlR9s8SwtofA-Y,1498
|
170
|
+
exonware/xwnode/queries/executors/projection/__init__.py,sha256=ybPligPcjTYH6Ia6dUbvCxq37zg3L7xlSyHoGjD6Z-o,189
|
171
|
+
exonware/xwnode/queries/executors/projection/extend_executor.py,sha256=0w8v1qCF0YvlUY8d5Zv4oA5FB0umZuAYL0LywaJLWMY,1472
|
172
|
+
exonware/xwnode/queries/executors/projection/project_executor.py,sha256=17RFEf9Ga6wmlO6Mt08if6D0ie416v1BlvK4ZrvcucM,1481
|
173
|
+
exonware/xwnode/queries/parsers/__init__.py,sha256=X7jnTyJnR6I8LP7gKbpci9Ny-D3ka4bra39k3X8OF-s,540
|
174
|
+
exonware/xwnode/queries/parsers/base.py,sha256=lNPm7sl97QTwC73zGuwMqzZyWxCjoMCJrODPgkO00R0,2286
|
175
|
+
exonware/xwnode/queries/parsers/contracts.py,sha256=ZptqIjZf63epDYX0e7gasUIW7zZfl-Zxzg6WNAgo-_Y,1086
|
176
|
+
exonware/xwnode/queries/parsers/errors.py,sha256=3ynA82ZgWx7QBBP53Xu-L7LVTz4sYaTdPaUJQVL252Q,1225
|
177
|
+
exonware/xwnode/queries/parsers/sql_param_extractor.py,sha256=k2-sMUeNZV8WtEe4ntC-29xITn0LqvoAvf7Mzh2C9MI,12260
|
178
|
+
exonware/xwnode/queries/strategies/__init__.py,sha256=7kKLdqdVLN_G2-81y0VBQxJpJGJILqITTRunUJyIoQw,617
|
179
|
+
exonware/xwnode/queries/strategies/base.py,sha256=V_cAhJ5ETR8U322CjBL0IWQGrEIZOizWoclJpYgVDI0,8357
|
180
|
+
exonware/xwnode/queries/strategies/cql.py,sha256=txe7466damfUZJ16dbwf-L8lbwDfzFn-4aVCDl8PmjY,7524
|
181
|
+
exonware/xwnode/queries/strategies/cypher.py,sha256=uQWbMYe09fla-u6I0jCqB0cjC8L08RRAqadb-LlgYJY,6560
|
182
|
+
exonware/xwnode/queries/strategies/datalog.py,sha256=P0gmfCiaHo1K9KiP32-45qDJvS-82OfwH7BHNyN4WK4,2740
|
183
|
+
exonware/xwnode/queries/strategies/elastic_dsl.py,sha256=k9RPlD43rjEvKa0KJ7FggGHqGBUVQ42qmT_JIHZWl4E,2771
|
184
|
+
exonware/xwnode/queries/strategies/eql.py,sha256=A-VH6Hj4XmnUDWNo43vWEhcg2YEG-GGVt136Ox2xdFI,2685
|
185
|
+
exonware/xwnode/queries/strategies/flux.py,sha256=r7dJ4_Y_8KO4zY75H6CYSSMjxjIcC57h7g-ZzY7RdRM,2747
|
186
|
+
exonware/xwnode/queries/strategies/gql.py,sha256=uvk0KBRePq_L51TTrWRTSyf9JXpY_68gies-FvZszdU,2409
|
187
|
+
exonware/xwnode/queries/strategies/graphql.py,sha256=teUMuCGRGSBFztSo-5XoAldQ1dkO1rCm9sHuIBwi10w,7402
|
188
|
+
exonware/xwnode/queries/strategies/gremlin.py,sha256=HGsmhxtlH0JYWKeQbZj6slqZanJ9xMCM4faMxhr_3mY,6850
|
189
|
+
exonware/xwnode/queries/strategies/hiveql.py,sha256=XSGHTexiGFoOuXSsN8tRxoP1aFF1BIm329NtRAW6mgk,7813
|
190
|
+
exonware/xwnode/queries/strategies/hql.py,sha256=mw1Umdg3gm-bRbYb-BR091a-o-nxoeOks_-TBInnY7g,2692
|
191
|
+
exonware/xwnode/queries/strategies/jmespath.py,sha256=ErqtzYN0Kaeb3f24Rw1YgQBAYQfL6o0io7eyXckPf34,7963
|
192
|
+
exonware/xwnode/queries/strategies/jq.py,sha256=R8WgrziYa2JKF7jekIbAkyAeKLbrPcv8_yRCOaSs_zI,2333
|
193
|
+
exonware/xwnode/queries/strategies/json_query.py,sha256=GT8cCeBMm3n7TbVbUSkYRSOS_jOA8vwWO5Kyu2XUKnM,2306
|
194
|
+
exonware/xwnode/queries/strategies/jsoniq.py,sha256=AG-JJkVc_-klF7LecgyTGiuT7NGXG70Bdjn43LwxJIk,8162
|
195
|
+
exonware/xwnode/queries/strategies/kql.py,sha256=NVqXpGd2zoHe2NiyzcON6h8SZb-DgawfLDBJI0SnaGM,2671
|
196
|
+
exonware/xwnode/queries/strategies/linq.py,sha256=0vcN8zJQ71KGzBQcb-NDIkaoCJ2-izawAMPR-ZeX5s8,7994
|
197
|
+
exonware/xwnode/queries/strategies/logql.py,sha256=1ffemmVKcEwBNTMU6n-ECIfV2klh71fbexoXVySJwdY,2744
|
198
|
+
exonware/xwnode/queries/strategies/mql.py,sha256=JSYTohQ_30J_A0c1D0Dd4wL9MsaquiQinNp5rtYe0hs,2554
|
199
|
+
exonware/xwnode/queries/strategies/n1ql.py,sha256=E27pY8v_hRUN6XvrADJSTr0eF1u4d85gnrX1e0r7aAE,7852
|
200
|
+
exonware/xwnode/queries/strategies/partiql.py,sha256=EZqDKlRaobkIbPpDGDPkUZfM-TCGgWpEqr4OV2DtQik,2717
|
201
|
+
exonware/xwnode/queries/strategies/pig.py,sha256=u7Oh6B5NAH8nVNsAqUO4Yl6HpAriYbgZbdwaRodPAV4,8530
|
202
|
+
exonware/xwnode/queries/strategies/promql.py,sha256=qSRXHoj7GwzaR-dB35Uo3gNMtpzZn2HefrUuVXsSyBA,2714
|
203
|
+
exonware/xwnode/queries/strategies/sparql.py,sha256=AUluGmvCeSOIs41DP6dM52MzH3xbjlZ-5JTygDFRfR8,7443
|
204
|
+
exonware/xwnode/queries/strategies/sql.py,sha256=XEIUt3S40ZFKZlCxOAuGYibVMMyNAJb2k6U-cc9sh04,10212
|
205
|
+
exonware/xwnode/queries/strategies/xml_query.py,sha256=CH5wkj8jx-30I_-m0Gl8DOm_7BkyPVJJ_BJGaadjFro,2329
|
206
|
+
exonware/xwnode/queries/strategies/xpath.py,sha256=SLGcuwqd9jet0-6zoReXWNBWBB_aAr55RMN8L_6x8Yg,9120
|
207
|
+
exonware/xwnode/queries/strategies/xquery.py,sha256=XaiNB4Ae8yTgjTFzsU7L_z025nwsA1FwIW54P0PcRzg,8692
|
208
|
+
exonware/xwnode/queries/strategies/xwnode_executor.py,sha256=Cn5ISBLmZpNblwGZQBG3PmjmOaKk9OuHry_KsSPH9mw,12191
|
209
|
+
exonware/xwnode/queries/strategies/xwquery.py,sha256=5ZKBd8IaehdPmyrA0TfHhH44OL7VnsjYxU01qKIxyeg,17513
|
210
|
+
exonware/xwnode/strategies/__init__.py,sha256=0Aw9hc5MT-fNhRdN26BayBmT6hBrverCVNUp_rARsqo,7695
|
211
|
+
exonware_xwnode-0.0.1.15.dist-info/METADATA,sha256=95dTVIgqktYDLspQejFzFYHCOVPRC8hXnDcu8dii5eI,5739
|
212
|
+
exonware_xwnode-0.0.1.15.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
|
213
|
+
exonware_xwnode-0.0.1.15.dist-info/licenses/LICENSE,sha256=w42ohoEUfhyT0NgiivAL4fWg2AMRLGnfXPMAR4EO-MU,1094
|
214
|
+
exonware_xwnode-0.0.1.15.dist-info/RECORD,,
|
@@ -1,13 +0,0 @@
|
|
1
|
-
"""
|
2
|
-
Strategy Implementations
|
3
|
-
|
4
|
-
This package contains all strategy implementations for the strategy system.
|
5
|
-
"""
|
6
|
-
|
7
|
-
from ._base_node import aNodeStrategy
|
8
|
-
from ._base_edge import aEdgeStrategy
|
9
|
-
|
10
|
-
__all__ = [
|
11
|
-
'aNodeStrategy',
|
12
|
-
'aEdgeStrategy',
|
13
|
-
]
|