elastro-client 1.3.25__tar.gz → 1.3.26__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 (126) hide show
  1. {elastro_client-1.3.25/elastro_client.egg-info → elastro_client-1.3.26}/PKG-INFO +1 -1
  2. {elastro_client-1.3.25 → elastro_client-1.3.26}/elastro/__init__.py +1 -1
  3. {elastro_client-1.3.25 → elastro_client-1.3.26}/elastro/server.py +19 -6
  4. {elastro_client-1.3.25 → elastro_client-1.3.26/elastro_client.egg-info}/PKG-INFO +1 -1
  5. {elastro_client-1.3.25 → elastro_client-1.3.26}/pyproject.toml +1 -1
  6. {elastro_client-1.3.25 → elastro_client-1.3.26}/.coveragerc +0 -0
  7. {elastro_client-1.3.25 → elastro_client-1.3.26}/LICENSE +0 -0
  8. {elastro_client-1.3.25 → elastro_client-1.3.26}/MANIFEST.in +0 -0
  9. {elastro_client-1.3.25 → elastro_client-1.3.26}/README.md +0 -0
  10. {elastro_client-1.3.25 → elastro_client-1.3.26}/docs/advanced_features.md +0 -0
  11. {elastro_client-1.3.25 → elastro_client-1.3.26}/docs/api_reference.md +0 -0
  12. {elastro_client-1.3.25 → elastro_client-1.3.26}/docs/cli_usage.md +0 -0
  13. {elastro_client-1.3.25 → elastro_client-1.3.26}/docs/commands_reference.md +0 -0
  14. {elastro_client-1.3.25 → elastro_client-1.3.26}/docs/getting_started.md +0 -0
  15. {elastro_client-1.3.25 → elastro_client-1.3.26}/docs/roadmap.md +0 -0
  16. {elastro_client-1.3.25 → elastro_client-1.3.26}/docs/troubleshooting.md +0 -0
  17. {elastro_client-1.3.25 → elastro_client-1.3.26}/elastro/advanced/__init__.py +0 -0
  18. {elastro_client-1.3.25 → elastro_client-1.3.26}/elastro/advanced/aggregations.py +0 -0
  19. {elastro_client-1.3.25 → elastro_client-1.3.26}/elastro/advanced/query_builder.py +0 -0
  20. {elastro_client-1.3.25 → elastro_client-1.3.26}/elastro/advanced/scroll.py +0 -0
  21. {elastro_client-1.3.25 → elastro_client-1.3.26}/elastro/cli/__init__.py +0 -0
  22. {elastro_client-1.3.25 → elastro_client-1.3.26}/elastro/cli/art.py +0 -0
  23. {elastro_client-1.3.25 → elastro_client-1.3.26}/elastro/cli/cli.py +0 -0
  24. {elastro_client-1.3.25 → elastro_client-1.3.26}/elastro/cli/commands/__init__.py +0 -0
  25. {elastro_client-1.3.25 → elastro_client-1.3.26}/elastro/cli/commands/cluster.py +0 -0
  26. {elastro_client-1.3.25 → elastro_client-1.3.26}/elastro/cli/commands/config.py +0 -0
  27. {elastro_client-1.3.25 → elastro_client-1.3.26}/elastro/cli/commands/datastream.py +0 -0
  28. {elastro_client-1.3.25 → elastro_client-1.3.26}/elastro/cli/commands/document.py +0 -0
  29. {elastro_client-1.3.25 → elastro_client-1.3.26}/elastro/cli/commands/gui.py +0 -0
  30. {elastro_client-1.3.25 → elastro_client-1.3.26}/elastro/cli/commands/ilm.py +0 -0
  31. {elastro_client-1.3.25 → elastro_client-1.3.26}/elastro/cli/commands/index.py +0 -0
  32. {elastro_client-1.3.25 → elastro_client-1.3.26}/elastro/cli/commands/index_recipes.py +0 -0
  33. {elastro_client-1.3.25 → elastro_client-1.3.26}/elastro/cli/commands/ingest.py +0 -0
  34. {elastro_client-1.3.25 → elastro_client-1.3.26}/elastro/cli/commands/ml.py +0 -0
  35. {elastro_client-1.3.25 → elastro_client-1.3.26}/elastro/cli/commands/painless_commands.py +0 -0
  36. {elastro_client-1.3.25 → elastro_client-1.3.26}/elastro/cli/commands/script.py +0 -0
  37. {elastro_client-1.3.25 → elastro_client-1.3.26}/elastro/cli/commands/security.py +0 -0
  38. {elastro_client-1.3.25 → elastro_client-1.3.26}/elastro/cli/commands/snapshot.py +0 -0
  39. {elastro_client-1.3.25 → elastro_client-1.3.26}/elastro/cli/commands/tasks.py +0 -0
  40. {elastro_client-1.3.25 → elastro_client-1.3.26}/elastro/cli/commands/template.py +0 -0
  41. {elastro_client-1.3.25 → elastro_client-1.3.26}/elastro/cli/commands/utils.py +0 -0
  42. {elastro_client-1.3.25 → elastro_client-1.3.26}/elastro/cli/completion.py +0 -0
  43. {elastro_client-1.3.25 → elastro_client-1.3.26}/elastro/cli/output.py +0 -0
  44. {elastro_client-1.3.25 → elastro_client-1.3.26}/elastro/config/__init__.py +0 -0
  45. {elastro_client-1.3.25 → elastro_client-1.3.26}/elastro/config/defaults.py +0 -0
  46. {elastro_client-1.3.25 → elastro_client-1.3.26}/elastro/config/loader.py +0 -0
  47. {elastro_client-1.3.25 → elastro_client-1.3.26}/elastro/core/__init__.py +0 -0
  48. {elastro_client-1.3.25 → elastro_client-1.3.26}/elastro/core/client.py +0 -0
  49. {elastro_client-1.3.25 → elastro_client-1.3.26}/elastro/core/datastream.py +0 -0
  50. {elastro_client-1.3.25 → elastro_client-1.3.26}/elastro/core/document.py +0 -0
  51. {elastro_client-1.3.25 → elastro_client-1.3.26}/elastro/core/document_bulk.py +0 -0
  52. {elastro_client-1.3.25 → elastro_client-1.3.26}/elastro/core/errors.py +0 -0
  53. {elastro_client-1.3.25 → elastro_client-1.3.26}/elastro/core/ilm.py +0 -0
  54. {elastro_client-1.3.25 → elastro_client-1.3.26}/elastro/core/index.py +0 -0
  55. {elastro_client-1.3.25 → elastro_client-1.3.26}/elastro/core/logger.py +0 -0
  56. {elastro_client-1.3.25 → elastro_client-1.3.26}/elastro/core/query_builder.py +0 -0
  57. {elastro_client-1.3.25 → elastro_client-1.3.26}/elastro/core/snapshot.py +0 -0
  58. {elastro_client-1.3.25 → elastro_client-1.3.26}/elastro/core/validation.py +0 -0
  59. {elastro_client-1.3.25 → elastro_client-1.3.26}/elastro/gui/assets/index-CDM13vFi.js +0 -0
  60. {elastro_client-1.3.25 → elastro_client-1.3.26}/elastro/gui/assets/index-_TTaaZ3u.css +0 -0
  61. {elastro_client-1.3.25 → elastro_client-1.3.26}/elastro/gui/elastro.svg +0 -0
  62. {elastro_client-1.3.25 → elastro_client-1.3.26}/elastro/gui/favicon.ico +0 -0
  63. {elastro_client-1.3.25 → elastro_client-1.3.26}/elastro/gui/index.html +0 -0
  64. {elastro_client-1.3.25 → elastro_client-1.3.26}/elastro/gui/vite.svg +0 -0
  65. {elastro_client-1.3.25 → elastro_client-1.3.26}/elastro/py.typed +0 -0
  66. {elastro_client-1.3.25 → elastro_client-1.3.26}/elastro/utils/__init__.py +0 -0
  67. {elastro_client-1.3.25 → elastro_client-1.3.26}/elastro/utils/aliases.py +0 -0
  68. {elastro_client-1.3.25 → elastro_client-1.3.26}/elastro/utils/health.py +0 -0
  69. {elastro_client-1.3.25 → elastro_client-1.3.26}/elastro/utils/snapshots.py +0 -0
  70. {elastro_client-1.3.25 → elastro_client-1.3.26}/elastro/utils/templates.py +0 -0
  71. {elastro_client-1.3.25 → elastro_client-1.3.26}/elastro_client.egg-info/SOURCES.txt +0 -0
  72. {elastro_client-1.3.25 → elastro_client-1.3.26}/elastro_client.egg-info/dependency_links.txt +0 -0
  73. {elastro_client-1.3.25 → elastro_client-1.3.26}/elastro_client.egg-info/entry_points.txt +0 -0
  74. {elastro_client-1.3.25 → elastro_client-1.3.26}/elastro_client.egg-info/requires.txt +0 -0
  75. {elastro_client-1.3.25 → elastro_client-1.3.26}/elastro_client.egg-info/top_level.txt +0 -0
  76. {elastro_client-1.3.25 → elastro_client-1.3.26}/examples/client.py +0 -0
  77. {elastro_client-1.3.25 → elastro_client-1.3.26}/examples/config_usage.py +0 -0
  78. {elastro_client-1.3.25 → elastro_client-1.3.26}/examples/datastreams.py +0 -0
  79. {elastro_client-1.3.25 → elastro_client-1.3.26}/examples/debug_connection.py +0 -0
  80. {elastro_client-1.3.25 → elastro_client-1.3.26}/examples/document_operations.py +0 -0
  81. {elastro_client-1.3.25 → elastro_client-1.3.26}/examples/index_management.py +0 -0
  82. {elastro_client-1.3.25 → elastro_client-1.3.26}/examples/search.py +0 -0
  83. {elastro_client-1.3.25 → elastro_client-1.3.26}/pytest.ini +0 -0
  84. {elastro_client-1.3.25 → elastro_client-1.3.26}/requirements.txt +0 -0
  85. {elastro_client-1.3.25 → elastro_client-1.3.26}/setup.cfg +0 -0
  86. {elastro_client-1.3.25 → elastro_client-1.3.26}/setup.py +0 -0
  87. {elastro_client-1.3.25 → elastro_client-1.3.26}/tests/__init__.py +0 -0
  88. {elastro_client-1.3.25 → elastro_client-1.3.26}/tests/conftest.py +0 -0
  89. {elastro_client-1.3.25 → elastro_client-1.3.26}/tests/fixtures/__init__.py +0 -0
  90. {elastro_client-1.3.25 → elastro_client-1.3.26}/tests/fixtures/datastream_fixtures.py +0 -0
  91. {elastro_client-1.3.25 → elastro_client-1.3.26}/tests/fixtures/document_fixtures.py +0 -0
  92. {elastro_client-1.3.25 → elastro_client-1.3.26}/tests/fixtures/index_fixtures.py +0 -0
  93. {elastro_client-1.3.25 → elastro_client-1.3.26}/tests/integration/__init__.py +0 -0
  94. {elastro_client-1.3.25 → elastro_client-1.3.26}/tests/integration/test_aggregations_integration.py +0 -0
  95. {elastro_client-1.3.25 → elastro_client-1.3.26}/tests/integration/test_client_integration.py +0 -0
  96. {elastro_client-1.3.25 → elastro_client-1.3.26}/tests/integration/test_datastream_integration.py +0 -0
  97. {elastro_client-1.3.25 → elastro_client-1.3.26}/tests/integration/test_docs_quickstart.py +0 -0
  98. {elastro_client-1.3.25 → elastro_client-1.3.26}/tests/integration/test_document_integration.py +0 -0
  99. {elastro_client-1.3.25 → elastro_client-1.3.26}/tests/integration/test_index_integration.py +0 -0
  100. {elastro_client-1.3.25 → elastro_client-1.3.26}/tests/integration/test_query_builder_integration.py +0 -0
  101. {elastro_client-1.3.25 → elastro_client-1.3.26}/tests/integration/test_scroll_integration.py +0 -0
  102. {elastro_client-1.3.25 → elastro_client-1.3.26}/tests/integration/test_workflow_integration.py +0 -0
  103. {elastro_client-1.3.25 → elastro_client-1.3.26}/tests/manual/test_es.py +0 -0
  104. {elastro_client-1.3.25 → elastro_client-1.3.26}/tests/unit/__init__.py +0 -0
  105. {elastro_client-1.3.25 → elastro_client-1.3.26}/tests/unit/advanced/__init__.py +0 -0
  106. {elastro_client-1.3.25 → elastro_client-1.3.26}/tests/unit/advanced/test_aggregations.py +0 -0
  107. {elastro_client-1.3.25 → elastro_client-1.3.26}/tests/unit/advanced/test_query_builder.py +0 -0
  108. {elastro_client-1.3.25 → elastro_client-1.3.26}/tests/unit/advanced/test_scroll.py +0 -0
  109. {elastro_client-1.3.25 → elastro_client-1.3.26}/tests/unit/config/__init__.py +0 -0
  110. {elastro_client-1.3.25 → elastro_client-1.3.26}/tests/unit/config/test_defaults.py +0 -0
  111. {elastro_client-1.3.25 → elastro_client-1.3.26}/tests/unit/config/test_loader.py +0 -0
  112. {elastro_client-1.3.25 → elastro_client-1.3.26}/tests/unit/core/__init__.py +0 -0
  113. {elastro_client-1.3.25 → elastro_client-1.3.26}/tests/unit/core/test_client.py +0 -0
  114. {elastro_client-1.3.25 → elastro_client-1.3.26}/tests/unit/core/test_datastream.py +0 -0
  115. {elastro_client-1.3.25 → elastro_client-1.3.26}/tests/unit/core/test_document.py +0 -0
  116. {elastro_client-1.3.25 → elastro_client-1.3.26}/tests/unit/core/test_document_bulk.py +0 -0
  117. {elastro_client-1.3.25 → elastro_client-1.3.26}/tests/unit/core/test_errors.py +0 -0
  118. {elastro_client-1.3.25 → elastro_client-1.3.26}/tests/unit/core/test_index.py +0 -0
  119. {elastro_client-1.3.25 → elastro_client-1.3.26}/tests/unit/core/test_validation.py +0 -0
  120. {elastro_client-1.3.25 → elastro_client-1.3.26}/tests/unit/utils/__init__.py +0 -0
  121. {elastro_client-1.3.25 → elastro_client-1.3.26}/tests/unit/utils/test_aliases.py +0 -0
  122. {elastro_client-1.3.25 → elastro_client-1.3.26}/tests/unit/utils/test_health.py +0 -0
  123. {elastro_client-1.3.25 → elastro_client-1.3.26}/tests/unit/utils/test_snapshots.py +0 -0
  124. {elastro_client-1.3.25 → elastro_client-1.3.26}/tests/unit/utils/test_templates.py +0 -0
  125. {elastro_client-1.3.25 → elastro_client-1.3.26}/tests/verify_api_actions.py +0 -0
  126. {elastro_client-1.3.25 → elastro_client-1.3.26}/tests/verify_cli_e2e.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: elastro-client
3
- Version: 1.3.25
3
+ Version: 1.3.26
4
4
  Summary: A comprehensive Python library for Elasticsearch management with both programmatic and CLI interfaces
5
5
  Author: Austin Jorgensen
6
6
  License-Expression: MIT
@@ -4,7 +4,7 @@ Elasticsearch Management Module.
4
4
  A module for managing Elasticsearch operations within a pipeline process.
5
5
  """
6
6
 
7
- __version__ = "1.3.25"
7
+ __version__ = "1.3.26"
8
8
 
9
9
  # Core component imports
10
10
  from elastro.core.client import ElasticsearchClient
@@ -534,28 +534,41 @@ class ElastroGUI:
534
534
  unassigned = explain.get("unassigned_info", {})
535
535
 
536
536
  routing_filter_fault = False
537
+ explanation_parts = []
537
538
  for node_decision in explain.get(
538
539
  "node_allocation_decisions", []
539
540
  ):
540
541
  for decider in node_decision.get("deciders", []):
542
+ if decider.get("decision") == "NO":
543
+ msg = decider.get("explanation", "").strip()
544
+ if msg and msg not in explanation_parts:
545
+ explanation_parts.append(msg)
546
+
541
547
  if decider.get(
542
548
  "decider"
543
549
  ) == "filter" and "index.routing.allocation" in decider.get(
544
550
  "explanation", ""
545
551
  ):
546
552
  routing_filter_fault = True
547
- break
548
- if routing_filter_fault:
549
- break
553
+
554
+ alloc_explanation = explain.get("allocate_explanation", "")
555
+ if (
556
+ "Elasticsearch isn't allowed to allocate this shard"
557
+ in alloc_explanation
558
+ and explanation_parts
559
+ ):
560
+ alloc_explanation = "Allocation blocked: " + " | ".join(
561
+ explanation_parts
562
+ )
563
+ elif not alloc_explanation:
564
+ alloc_explanation = "No explanation"
550
565
 
551
566
  results.append(
552
567
  {
553
568
  "index": name,
554
569
  "health": idx.get("health"),
555
570
  "status": idx.get("status"),
556
- "allocate_explanation": explain.get(
557
- "allocate_explanation", "No explanation"
558
- ),
571
+ "allocate_explanation": alloc_explanation,
559
572
  "reason": unassigned.get("reason", "UNKNOWN"),
560
573
  "routing_filter_fault": routing_filter_fault,
561
574
  }
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: elastro-client
3
- Version: 1.3.25
3
+ Version: 1.3.26
4
4
  Summary: A comprehensive Python library for Elasticsearch management with both programmatic and CLI interfaces
5
5
  Author: Austin Jorgensen
6
6
  License-Expression: MIT
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "elastro-client"
7
- version = "1.3.25"
7
+ version = "1.3.26"
8
8
  description = "A comprehensive Python library for Elasticsearch management with both programmatic and CLI interfaces"
9
9
  readme = "README.md"
10
10
  requires-python = ">=3.9,<3.14"
File without changes