tellaro-query-language 0.1.8__tar.gz → 0.1.9__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 (55) hide show
  1. {tellaro_query_language-0.1.8 → tellaro_query_language-0.1.9}/PKG-INFO +1 -1
  2. {tellaro_query_language-0.1.8 → tellaro_query_language-0.1.9}/pyproject.toml +1 -1
  3. {tellaro_query_language-0.1.8 → tellaro_query_language-0.1.9}/src/tql/evaluator.py +4 -1
  4. {tellaro_query_language-0.1.8 → tellaro_query_language-0.1.9}/src/tql/opensearch_components/lucene_converter.py +4 -1
  5. {tellaro_query_language-0.1.8 → tellaro_query_language-0.1.9}/src/tql/opensearch_components/query_converter.py +4 -1
  6. {tellaro_query_language-0.1.8 → tellaro_query_language-0.1.9}/src/tql/parser.py +5 -0
  7. {tellaro_query_language-0.1.8 → tellaro_query_language-0.1.9}/LICENSE +0 -0
  8. {tellaro_query_language-0.1.8 → tellaro_query_language-0.1.9}/README.md +0 -0
  9. {tellaro_query_language-0.1.8 → tellaro_query_language-0.1.9}/src/tql/__init__.py +0 -0
  10. {tellaro_query_language-0.1.8 → tellaro_query_language-0.1.9}/src/tql/analyzer.py +0 -0
  11. {tellaro_query_language-0.1.8 → tellaro_query_language-0.1.9}/src/tql/cache/__init__.py +0 -0
  12. {tellaro_query_language-0.1.8 → tellaro_query_language-0.1.9}/src/tql/cache/base.py +0 -0
  13. {tellaro_query_language-0.1.8 → tellaro_query_language-0.1.9}/src/tql/cache/memory.py +0 -0
  14. {tellaro_query_language-0.1.8 → tellaro_query_language-0.1.9}/src/tql/cache/redis.py +0 -0
  15. {tellaro_query_language-0.1.8 → tellaro_query_language-0.1.9}/src/tql/core.py +0 -0
  16. {tellaro_query_language-0.1.8 → tellaro_query_language-0.1.9}/src/tql/core_components/README.md +0 -0
  17. {tellaro_query_language-0.1.8 → tellaro_query_language-0.1.9}/src/tql/core_components/__init__.py +0 -0
  18. {tellaro_query_language-0.1.8 → tellaro_query_language-0.1.9}/src/tql/core_components/file_operations.py +0 -0
  19. {tellaro_query_language-0.1.8 → tellaro_query_language-0.1.9}/src/tql/core_components/opensearch_operations.py +0 -0
  20. {tellaro_query_language-0.1.8 → tellaro_query_language-0.1.9}/src/tql/core_components/stats_operations.py +0 -0
  21. {tellaro_query_language-0.1.8 → tellaro_query_language-0.1.9}/src/tql/core_components/validation_operations.py +0 -0
  22. {tellaro_query_language-0.1.8 → tellaro_query_language-0.1.9}/src/tql/evaluator_components/README.md +0 -0
  23. {tellaro_query_language-0.1.8 → tellaro_query_language-0.1.9}/src/tql/evaluator_components/__init__.py +0 -0
  24. {tellaro_query_language-0.1.8 → tellaro_query_language-0.1.9}/src/tql/evaluator_components/field_access.py +0 -0
  25. {tellaro_query_language-0.1.8 → tellaro_query_language-0.1.9}/src/tql/evaluator_components/special_expressions.py +0 -0
  26. {tellaro_query_language-0.1.8 → tellaro_query_language-0.1.9}/src/tql/evaluator_components/value_comparison.py +0 -0
  27. {tellaro_query_language-0.1.8 → tellaro_query_language-0.1.9}/src/tql/exceptions.py +0 -0
  28. {tellaro_query_language-0.1.8 → tellaro_query_language-0.1.9}/src/tql/geoip_normalizer.py +0 -0
  29. {tellaro_query_language-0.1.8 → tellaro_query_language-0.1.9}/src/tql/mutator_analyzer.py +0 -0
  30. {tellaro_query_language-0.1.8 → tellaro_query_language-0.1.9}/src/tql/mutators/__init__.py +0 -0
  31. {tellaro_query_language-0.1.8 → tellaro_query_language-0.1.9}/src/tql/mutators/base.py +0 -0
  32. {tellaro_query_language-0.1.8 → tellaro_query_language-0.1.9}/src/tql/mutators/dns.py +0 -0
  33. {tellaro_query_language-0.1.8 → tellaro_query_language-0.1.9}/src/tql/mutators/encoding.py +0 -0
  34. {tellaro_query_language-0.1.8 → tellaro_query_language-0.1.9}/src/tql/mutators/geo.py +0 -0
  35. {tellaro_query_language-0.1.8 → tellaro_query_language-0.1.9}/src/tql/mutators/list.py +0 -0
  36. {tellaro_query_language-0.1.8 → tellaro_query_language-0.1.9}/src/tql/mutators/network.py +0 -0
  37. {tellaro_query_language-0.1.8 → tellaro_query_language-0.1.9}/src/tql/mutators/security.py +0 -0
  38. {tellaro_query_language-0.1.8 → tellaro_query_language-0.1.9}/src/tql/mutators/string.py +0 -0
  39. {tellaro_query_language-0.1.8 → tellaro_query_language-0.1.9}/src/tql/opensearch.py +0 -0
  40. {tellaro_query_language-0.1.8 → tellaro_query_language-0.1.9}/src/tql/opensearch_components/README.md +0 -0
  41. {tellaro_query_language-0.1.8 → tellaro_query_language-0.1.9}/src/tql/opensearch_components/__init__.py +0 -0
  42. {tellaro_query_language-0.1.8 → tellaro_query_language-0.1.9}/src/tql/opensearch_components/field_mapping.py +0 -0
  43. {tellaro_query_language-0.1.8 → tellaro_query_language-0.1.9}/src/tql/opensearch_mappings.py +0 -0
  44. {tellaro_query_language-0.1.8 → tellaro_query_language-0.1.9}/src/tql/opensearch_stats.py +0 -0
  45. {tellaro_query_language-0.1.8 → tellaro_query_language-0.1.9}/src/tql/parser_components/README.md +0 -0
  46. {tellaro_query_language-0.1.8 → tellaro_query_language-0.1.9}/src/tql/parser_components/__init__.py +0 -0
  47. {tellaro_query_language-0.1.8 → tellaro_query_language-0.1.9}/src/tql/parser_components/ast_builder.py +0 -0
  48. {tellaro_query_language-0.1.8 → tellaro_query_language-0.1.9}/src/tql/parser_components/error_analyzer.py +0 -0
  49. {tellaro_query_language-0.1.8 → tellaro_query_language-0.1.9}/src/tql/parser_components/field_extractor.py +0 -0
  50. {tellaro_query_language-0.1.8 → tellaro_query_language-0.1.9}/src/tql/parser_components/grammar.py +0 -0
  51. {tellaro_query_language-0.1.8 → tellaro_query_language-0.1.9}/src/tql/post_processor.py +0 -0
  52. {tellaro_query_language-0.1.8 → tellaro_query_language-0.1.9}/src/tql/scripts.py +0 -0
  53. {tellaro_query_language-0.1.8 → tellaro_query_language-0.1.9}/src/tql/stats_evaluator.py +0 -0
  54. {tellaro_query_language-0.1.8 → tellaro_query_language-0.1.9}/src/tql/stats_transformer.py +0 -0
  55. {tellaro_query_language-0.1.8 → tellaro_query_language-0.1.9}/src/tql/validators.py +0 -0
@@ -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
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "tellaro-query-language"
3
- version = "0.1.8"
3
+ version = "0.1.9"
4
4
  description = "A flexible, human-friendly query language for searching and filtering structured data"
5
5
  authors = ["Justin Henderson <justin@tellaro.io>"]
6
6
  license = "MIT"
@@ -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)
@@ -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)