tellaro-query-language 0.1.8__py3-none-any.whl → 0.1.9__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.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: tellaro-query-language
3
- Version: 0.1.8
3
+ Version: 0.1.9
4
4
  Summary: A flexible, human-friendly query language for searching and filtering structured data
5
5
  Home-page: https://github.com/tellaro/tellaro-query-language
6
6
  License: MIT
@@ -11,7 +11,7 @@ tql/core_components/file_operations.py,sha256=Jr0kkxz_OP2KHOAsIr7KMtYe_lbu8LuBUy
11
11
  tql/core_components/opensearch_operations.py,sha256=HIiSosL2uek88H6aPkX_QDnlgV8bT1fbotG652Z2vdE,37900
12
12
  tql/core_components/stats_operations.py,sha256=zAfDhVOFFPMrRIMw6Qtjxbobbdi7ao_HuHBCcVc3BGY,7579
13
13
  tql/core_components/validation_operations.py,sha256=_VPXh0HABBjsXF99jFT7B6-5QAPsADOCy6poinGrxeE,22454
14
- tql/evaluator.py,sha256=YdgS1vuxUEPAHhUsZey-Y4NydeS8CTYOy_O8R5_K8cE,15421
14
+ tql/evaluator.py,sha256=kjqf2rkjdfPhrX2gyNtiBpdnBpob3LFkTuvplLtc-Ww,15542
15
15
  tql/evaluator_components/README.md,sha256=c59yf2au34yPhrru7JWgGop_ORteB6w5vfMhsac8j3k,3882
16
16
  tql/evaluator_components/__init__.py,sha256=DourRUSYXWPnCghBFj7W0YfMeymT3X8YTDCwnLIyP1c,535
17
17
  tql/evaluator_components/field_access.py,sha256=BuXvL9jlv4H77neT70Vh7_qokmzs-d4EbSDA2FB1IT0,6435
@@ -33,11 +33,11 @@ tql/opensearch.py,sha256=J7LhfVJfaXEWtyZqVDqNZaeIbIcUYJr2cQtfKzdyIhM,3362
33
33
  tql/opensearch_components/README.md,sha256=gt-qLmmach8Kh7-QwLZmoAxxIL79XIG1EDqJum8PMZE,3756
34
34
  tql/opensearch_components/__init__.py,sha256=_zIZY8Fns7mkEcY6w2p9FNRBXtEmmPFFJEcFRfrVyXA,514
35
35
  tql/opensearch_components/field_mapping.py,sha256=N4r7VkzNeXjIhNDt2cfnd1LbkvaS_9O298PIDAcR_Hw,17569
36
- tql/opensearch_components/lucene_converter.py,sha256=ZbupWZ2smGhWfE9cSIrNo7MZVY35l2t86HYM-bd7nKw,12436
37
- tql/opensearch_components/query_converter.py,sha256=9Nkhehb8X7jIQcyRaHCa5WCKWtovdRGKuSdDsBulrG0,36722
36
+ tql/opensearch_components/lucene_converter.py,sha256=ke1cMCeGVf5UorjwhN3y9x-GO-AHJ7FmbuTPSNMxYJo,12570
37
+ tql/opensearch_components/query_converter.py,sha256=QodPaRJf5fI_DpMzRGINFIdpmcZZ_3Umlw1h33zsrZE,36858
38
38
  tql/opensearch_mappings.py,sha256=zJCCdMrxK7mswrkxd5LiOhunQ9GIJNZdhktVoGXgVgk,11529
39
39
  tql/opensearch_stats.py,sha256=h-hA2EZ-sc4S1zxr7jaInmonfrgTXoGBbb9sOYurdFE,17823
40
- tql/parser.py,sha256=dnjgc-sDVihe-VIVPT_SRULeng4OWaLtkbM23dluT6M,75532
40
+ tql/parser.py,sha256=MnY1Gxm8vl2Uw2tU2CyFB26uE3TSeUx6i7APtlwh7Fk,75727
41
41
  tql/parser_components/README.md,sha256=lvQX72ckq2zyotGs8QIHHCIFqaA7bOHwkP44wU8Zoiw,2322
42
42
  tql/parser_components/__init__.py,sha256=zBwHBMPJyHSBbaOojf6qTrJYjJg5A6tPUE8nHFdRiQs,521
43
43
  tql/parser_components/ast_builder.py,sha256=-pbcYhZNoRm0AnjmJRAAlXLCAwHfauchTpX_6KO0plE,6793
@@ -49,8 +49,8 @@ tql/scripts.py,sha256=VOr5vCjIvKlW36kwvJx7JGFIRM16IJZlbJcWlBexBtk,3728
49
49
  tql/stats_evaluator.py,sha256=lOEbICFuP0krZZqEjREz37xlpm35_P6eRgkHVgJLNI4,15703
50
50
  tql/stats_transformer.py,sha256=MT-4rDWZSySgn4Fuq9H0c-mvwFYLM6FqWpPv2rHX-rE,7588
51
51
  tql/validators.py,sha256=e9MlX-zQ_O3M8YP8vXyMjKU8iiJMTh6mMK0iv0_4gTY,3771
52
- tellaro_query_language-0.1.8.dist-info/LICENSE,sha256=zRhQ85LnW55fWgAjQctckwQ67DX5Jmt64lq343ThZFU,1063
53
- tellaro_query_language-0.1.8.dist-info/METADATA,sha256=7dSseBpILkxyeAW0B7QQ3psZORRfkM0Cai7l5uiQGCU,15109
54
- tellaro_query_language-0.1.8.dist-info/WHEEL,sha256=sP946D7jFCHeNz5Iq4fL4Lu-PrWrFsgfLXbbkciIZwg,88
55
- tellaro_query_language-0.1.8.dist-info/entry_points.txt,sha256=H43APfGBMsZkKsUCnFTaqprQPW-Kce2yz2qsBL3dZrw,164
56
- tellaro_query_language-0.1.8.dist-info/RECORD,,
52
+ tellaro_query_language-0.1.9.dist-info/LICENSE,sha256=zRhQ85LnW55fWgAjQctckwQ67DX5Jmt64lq343ThZFU,1063
53
+ tellaro_query_language-0.1.9.dist-info/METADATA,sha256=fChSevkv4sS0e0XQcq4oDH5kP0FZZj7zRHJs84duh_c,15109
54
+ tellaro_query_language-0.1.9.dist-info/WHEEL,sha256=sP946D7jFCHeNz5Iq4fL4Lu-PrWrFsgfLXbbkciIZwg,88
55
+ tellaro_query_language-0.1.9.dist-info/entry_points.txt,sha256=H43APfGBMsZkKsUCnFTaqprQPW-Kce2yz2qsBL3dZrw,164
56
+ tellaro_query_language-0.1.9.dist-info/RECORD,,
tql/evaluator.py CHANGED
@@ -81,7 +81,10 @@ class TQLEvaluator:
81
81
  if isinstance(node, dict):
82
82
  node_type = node.get("type")
83
83
 
84
- if node_type == "comparison":
84
+ if node_type == "match_all":
85
+ # Empty query matches all records
86
+ return True
87
+ elif node_type == "comparison":
85
88
  return self._evaluate_comparison(node, record, field_mappings)
86
89
  elif node_type == "logical_op":
87
90
  return self._evaluate_logical_op(node, record, field_mappings)
@@ -31,7 +31,10 @@ class LuceneConverter:
31
31
  if isinstance(node, dict):
32
32
  node_type = node.get("type")
33
33
 
34
- if node_type == "comparison":
34
+ if node_type == "match_all":
35
+ # Empty query matches all documents in Lucene
36
+ return "*:*"
37
+ elif node_type == "comparison":
35
38
  return self._convert_comparison_to_lucene(node)
36
39
  elif node_type == "logical_op":
37
40
  return self._convert_logical_op_to_lucene(node)
@@ -27,7 +27,10 @@ class QueryConverter:
27
27
  if isinstance(node, dict):
28
28
  node_type = node.get("type")
29
29
 
30
- if node_type == "comparison":
30
+ if node_type == "match_all":
31
+ # Empty query matches all documents
32
+ return {"match_all": {}}
33
+ elif node_type == "comparison":
31
34
  return self._convert_comparison(node)
32
35
  elif node_type == "logical_op":
33
36
  return self._convert_logical_op(node)
tql/parser.py CHANGED
@@ -43,6 +43,11 @@ class TQLParser:
43
43
  Raises:
44
44
  TQLParseError: If the query has invalid syntax
45
45
  """
46
+ # Handle empty or whitespace-only queries
47
+ if not query or not query.strip():
48
+ # Return a special AST that matches all records
49
+ return {"type": "match_all"}
50
+
46
51
  try:
47
52
  # Parse the query
48
53
  parsed_result = self.grammar.tql_expr.parseString(query, parseAll=True)