ragbits-core 1.4.0.dev202601170236__tar.gz → 1.4.0.dev202601300258__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 (161) hide show
  1. {ragbits_core-1.4.0.dev202601170236 → ragbits_core-1.4.0.dev202601300258}/CHANGELOG.md +1 -0
  2. {ragbits_core-1.4.0.dev202601170236 → ragbits_core-1.4.0.dev202601300258}/PKG-INFO +1 -1
  3. {ragbits_core-1.4.0.dev202601170236 → ragbits_core-1.4.0.dev202601300258}/pyproject.toml +1 -1
  4. {ragbits_core-1.4.0.dev202601170236 → ragbits_core-1.4.0.dev202601300258}/src/ragbits/core/llms/base.py +3 -0
  5. {ragbits_core-1.4.0.dev202601170236 → ragbits_core-1.4.0.dev202601300258}/tests/unit/llms/test_base.py +17 -0
  6. {ragbits_core-1.4.0.dev202601170236 → ragbits_core-1.4.0.dev202601300258}/.gitignore +0 -0
  7. {ragbits_core-1.4.0.dev202601170236 → ragbits_core-1.4.0.dev202601300258}/README.md +0 -0
  8. {ragbits_core-1.4.0.dev202601170236 → ragbits_core-1.4.0.dev202601300258}/src/ragbits/core/__init__.py +0 -0
  9. {ragbits_core-1.4.0.dev202601170236 → ragbits_core-1.4.0.dev202601300258}/src/ragbits/core/audit/__init__.py +0 -0
  10. {ragbits_core-1.4.0.dev202601170236 → ragbits_core-1.4.0.dev202601300258}/src/ragbits/core/audit/metrics/__init__.py +0 -0
  11. {ragbits_core-1.4.0.dev202601170236 → ragbits_core-1.4.0.dev202601300258}/src/ragbits/core/audit/metrics/base.py +0 -0
  12. {ragbits_core-1.4.0.dev202601170236 → ragbits_core-1.4.0.dev202601300258}/src/ragbits/core/audit/metrics/logfire.py +0 -0
  13. {ragbits_core-1.4.0.dev202601170236 → ragbits_core-1.4.0.dev202601300258}/src/ragbits/core/audit/metrics/otel.py +0 -0
  14. {ragbits_core-1.4.0.dev202601170236 → ragbits_core-1.4.0.dev202601300258}/src/ragbits/core/audit/traces/__init__.py +0 -0
  15. {ragbits_core-1.4.0.dev202601170236 → ragbits_core-1.4.0.dev202601300258}/src/ragbits/core/audit/traces/base.py +0 -0
  16. {ragbits_core-1.4.0.dev202601170236 → ragbits_core-1.4.0.dev202601300258}/src/ragbits/core/audit/traces/cli.py +0 -0
  17. {ragbits_core-1.4.0.dev202601170236 → ragbits_core-1.4.0.dev202601300258}/src/ragbits/core/audit/traces/logfire.py +0 -0
  18. {ragbits_core-1.4.0.dev202601170236 → ragbits_core-1.4.0.dev202601300258}/src/ragbits/core/audit/traces/otel.py +0 -0
  19. {ragbits_core-1.4.0.dev202601170236 → ragbits_core-1.4.0.dev202601300258}/src/ragbits/core/cli.py +0 -0
  20. {ragbits_core-1.4.0.dev202601170236 → ragbits_core-1.4.0.dev202601300258}/src/ragbits/core/config.py +0 -0
  21. {ragbits_core-1.4.0.dev202601170236 → ragbits_core-1.4.0.dev202601300258}/src/ragbits/core/embeddings/__init__.py +0 -0
  22. {ragbits_core-1.4.0.dev202601170236 → ragbits_core-1.4.0.dev202601300258}/src/ragbits/core/embeddings/base.py +0 -0
  23. {ragbits_core-1.4.0.dev202601170236 → ragbits_core-1.4.0.dev202601300258}/src/ragbits/core/embeddings/dense/__init__.py +0 -0
  24. {ragbits_core-1.4.0.dev202601170236 → ragbits_core-1.4.0.dev202601300258}/src/ragbits/core/embeddings/dense/base.py +0 -0
  25. {ragbits_core-1.4.0.dev202601170236 → ragbits_core-1.4.0.dev202601300258}/src/ragbits/core/embeddings/dense/fastembed.py +0 -0
  26. {ragbits_core-1.4.0.dev202601170236 → ragbits_core-1.4.0.dev202601300258}/src/ragbits/core/embeddings/dense/litellm.py +0 -0
  27. {ragbits_core-1.4.0.dev202601170236 → ragbits_core-1.4.0.dev202601300258}/src/ragbits/core/embeddings/dense/local.py +0 -0
  28. {ragbits_core-1.4.0.dev202601170236 → ragbits_core-1.4.0.dev202601300258}/src/ragbits/core/embeddings/dense/noop.py +0 -0
  29. {ragbits_core-1.4.0.dev202601170236 → ragbits_core-1.4.0.dev202601300258}/src/ragbits/core/embeddings/dense/vertex_multimodal.py +0 -0
  30. {ragbits_core-1.4.0.dev202601170236 → ragbits_core-1.4.0.dev202601300258}/src/ragbits/core/embeddings/exceptions.py +0 -0
  31. {ragbits_core-1.4.0.dev202601170236 → ragbits_core-1.4.0.dev202601300258}/src/ragbits/core/embeddings/sparse/__init__.py +0 -0
  32. {ragbits_core-1.4.0.dev202601170236 → ragbits_core-1.4.0.dev202601300258}/src/ragbits/core/embeddings/sparse/bag_of_tokens.py +0 -0
  33. {ragbits_core-1.4.0.dev202601170236 → ragbits_core-1.4.0.dev202601300258}/src/ragbits/core/embeddings/sparse/base.py +0 -0
  34. {ragbits_core-1.4.0.dev202601170236 → ragbits_core-1.4.0.dev202601300258}/src/ragbits/core/embeddings/sparse/fastembed.py +0 -0
  35. {ragbits_core-1.4.0.dev202601170236 → ragbits_core-1.4.0.dev202601300258}/src/ragbits/core/llms/__init__.py +0 -0
  36. {ragbits_core-1.4.0.dev202601170236 → ragbits_core-1.4.0.dev202601300258}/src/ragbits/core/llms/exceptions.py +0 -0
  37. {ragbits_core-1.4.0.dev202601170236 → ragbits_core-1.4.0.dev202601300258}/src/ragbits/core/llms/factory.py +0 -0
  38. {ragbits_core-1.4.0.dev202601170236 → ragbits_core-1.4.0.dev202601300258}/src/ragbits/core/llms/litellm.py +0 -0
  39. {ragbits_core-1.4.0.dev202601170236 → ragbits_core-1.4.0.dev202601300258}/src/ragbits/core/llms/local.py +0 -0
  40. {ragbits_core-1.4.0.dev202601170236 → ragbits_core-1.4.0.dev202601300258}/src/ragbits/core/llms/mock.py +0 -0
  41. {ragbits_core-1.4.0.dev202601170236 → ragbits_core-1.4.0.dev202601300258}/src/ragbits/core/options.py +0 -0
  42. {ragbits_core-1.4.0.dev202601170236 → ragbits_core-1.4.0.dev202601300258}/src/ragbits/core/prompt/__init__.py +0 -0
  43. {ragbits_core-1.4.0.dev202601170236 → ragbits_core-1.4.0.dev202601300258}/src/ragbits/core/prompt/_cli.py +0 -0
  44. {ragbits_core-1.4.0.dev202601170236 → ragbits_core-1.4.0.dev202601300258}/src/ragbits/core/prompt/base.py +0 -0
  45. {ragbits_core-1.4.0.dev202601170236 → ragbits_core-1.4.0.dev202601300258}/src/ragbits/core/prompt/discovery.py +0 -0
  46. {ragbits_core-1.4.0.dev202601170236 → ragbits_core-1.4.0.dev202601300258}/src/ragbits/core/prompt/exceptions.py +0 -0
  47. {ragbits_core-1.4.0.dev202601170236 → ragbits_core-1.4.0.dev202601300258}/src/ragbits/core/prompt/parsers.py +0 -0
  48. {ragbits_core-1.4.0.dev202601170236 → ragbits_core-1.4.0.dev202601300258}/src/ragbits/core/prompt/prompt.py +0 -0
  49. {ragbits_core-1.4.0.dev202601170236 → ragbits_core-1.4.0.dev202601300258}/src/ragbits/core/prompt/promptfoo.py +0 -0
  50. {ragbits_core-1.4.0.dev202601170236 → ragbits_core-1.4.0.dev202601300258}/src/ragbits/core/py.typed +0 -0
  51. {ragbits_core-1.4.0.dev202601170236 → ragbits_core-1.4.0.dev202601300258}/src/ragbits/core/sources/__init__.py +0 -0
  52. {ragbits_core-1.4.0.dev202601170236 → ragbits_core-1.4.0.dev202601300258}/src/ragbits/core/sources/azure.py +0 -0
  53. {ragbits_core-1.4.0.dev202601170236 → ragbits_core-1.4.0.dev202601300258}/src/ragbits/core/sources/base.py +0 -0
  54. {ragbits_core-1.4.0.dev202601170236 → ragbits_core-1.4.0.dev202601300258}/src/ragbits/core/sources/exceptions.py +0 -0
  55. {ragbits_core-1.4.0.dev202601170236 → ragbits_core-1.4.0.dev202601300258}/src/ragbits/core/sources/gcs.py +0 -0
  56. {ragbits_core-1.4.0.dev202601170236 → ragbits_core-1.4.0.dev202601300258}/src/ragbits/core/sources/git.py +0 -0
  57. {ragbits_core-1.4.0.dev202601170236 → ragbits_core-1.4.0.dev202601300258}/src/ragbits/core/sources/google_drive.py +0 -0
  58. {ragbits_core-1.4.0.dev202601170236 → ragbits_core-1.4.0.dev202601300258}/src/ragbits/core/sources/hf.py +0 -0
  59. {ragbits_core-1.4.0.dev202601170236 → ragbits_core-1.4.0.dev202601300258}/src/ragbits/core/sources/local.py +0 -0
  60. {ragbits_core-1.4.0.dev202601170236 → ragbits_core-1.4.0.dev202601300258}/src/ragbits/core/sources/s3.py +0 -0
  61. {ragbits_core-1.4.0.dev202601170236 → ragbits_core-1.4.0.dev202601300258}/src/ragbits/core/sources/web.py +0 -0
  62. {ragbits_core-1.4.0.dev202601170236 → ragbits_core-1.4.0.dev202601300258}/src/ragbits/core/types.py +0 -0
  63. {ragbits_core-1.4.0.dev202601170236 → ragbits_core-1.4.0.dev202601300258}/src/ragbits/core/utils/__init__.py +0 -0
  64. {ragbits_core-1.4.0.dev202601170236 → ragbits_core-1.4.0.dev202601300258}/src/ragbits/core/utils/_pyproject.py +0 -0
  65. {ragbits_core-1.4.0.dev202601170236 → ragbits_core-1.4.0.dev202601300258}/src/ragbits/core/utils/config_handling.py +0 -0
  66. {ragbits_core-1.4.0.dev202601170236 → ragbits_core-1.4.0.dev202601300258}/src/ragbits/core/utils/decorators.py +0 -0
  67. {ragbits_core-1.4.0.dev202601170236 → ragbits_core-1.4.0.dev202601300258}/src/ragbits/core/utils/dict_transformations.py +0 -0
  68. {ragbits_core-1.4.0.dev202601170236 → ragbits_core-1.4.0.dev202601300258}/src/ragbits/core/utils/function_schema.py +0 -0
  69. {ragbits_core-1.4.0.dev202601170236 → ragbits_core-1.4.0.dev202601300258}/src/ragbits/core/utils/helpers.py +0 -0
  70. {ragbits_core-1.4.0.dev202601170236 → ragbits_core-1.4.0.dev202601300258}/src/ragbits/core/utils/lazy_litellm.py +0 -0
  71. {ragbits_core-1.4.0.dev202601170236 → ragbits_core-1.4.0.dev202601300258}/src/ragbits/core/utils/pydantic.py +0 -0
  72. {ragbits_core-1.4.0.dev202601170236 → ragbits_core-1.4.0.dev202601300258}/src/ragbits/core/utils/secrets.py +0 -0
  73. {ragbits_core-1.4.0.dev202601170236 → ragbits_core-1.4.0.dev202601300258}/src/ragbits/core/vector_stores/__init__.py +0 -0
  74. {ragbits_core-1.4.0.dev202601170236 → ragbits_core-1.4.0.dev202601300258}/src/ragbits/core/vector_stores/_cli.py +0 -0
  75. {ragbits_core-1.4.0.dev202601170236 → ragbits_core-1.4.0.dev202601300258}/src/ragbits/core/vector_stores/base.py +0 -0
  76. {ragbits_core-1.4.0.dev202601170236 → ragbits_core-1.4.0.dev202601300258}/src/ragbits/core/vector_stores/chroma.py +0 -0
  77. {ragbits_core-1.4.0.dev202601170236 → ragbits_core-1.4.0.dev202601300258}/src/ragbits/core/vector_stores/hybrid.py +0 -0
  78. {ragbits_core-1.4.0.dev202601170236 → ragbits_core-1.4.0.dev202601300258}/src/ragbits/core/vector_stores/hybrid_strategies.py +0 -0
  79. {ragbits_core-1.4.0.dev202601170236 → ragbits_core-1.4.0.dev202601300258}/src/ragbits/core/vector_stores/in_memory.py +0 -0
  80. {ragbits_core-1.4.0.dev202601170236 → ragbits_core-1.4.0.dev202601300258}/src/ragbits/core/vector_stores/pgvector.py +0 -0
  81. {ragbits_core-1.4.0.dev202601170236 → ragbits_core-1.4.0.dev202601300258}/src/ragbits/core/vector_stores/qdrant.py +0 -0
  82. {ragbits_core-1.4.0.dev202601170236 → ragbits_core-1.4.0.dev202601300258}/src/ragbits/core/vector_stores/weaviate.py +0 -0
  83. {ragbits_core-1.4.0.dev202601170236 → ragbits_core-1.4.0.dev202601300258}/tests/assets/img/test.png +0 -0
  84. {ragbits_core-1.4.0.dev202601170236 → ragbits_core-1.4.0.dev202601300258}/tests/assets/img/test2.jpg +0 -0
  85. {ragbits_core-1.4.0.dev202601170236 → ragbits_core-1.4.0.dev202601300258}/tests/assets/md/bar.md +0 -0
  86. {ragbits_core-1.4.0.dev202601170236 → ragbits_core-1.4.0.dev202601300258}/tests/assets/md/foo.md +0 -0
  87. {ragbits_core-1.4.0.dev202601170236 → ragbits_core-1.4.0.dev202601300258}/tests/cli/__init__.py +0 -0
  88. {ragbits_core-1.4.0.dev202601170236 → ragbits_core-1.4.0.dev202601300258}/tests/cli/test_cli_trace_handler.py +0 -0
  89. {ragbits_core-1.4.0.dev202601170236 → ragbits_core-1.4.0.dev202601300258}/tests/cli/test_vector_store.py +0 -0
  90. {ragbits_core-1.4.0.dev202601170236 → ragbits_core-1.4.0.dev202601300258}/tests/conftest.py +0 -0
  91. {ragbits_core-1.4.0.dev202601170236 → ragbits_core-1.4.0.dev202601300258}/tests/integration/sources/test_git.py +0 -0
  92. {ragbits_core-1.4.0.dev202601170236 → ragbits_core-1.4.0.dev202601300258}/tests/integration/sources/test_hf.py +0 -0
  93. {ragbits_core-1.4.0.dev202601170236 → ragbits_core-1.4.0.dev202601300258}/tests/integration/sources/test_s3.py +0 -0
  94. {ragbits_core-1.4.0.dev202601170236 → ragbits_core-1.4.0.dev202601300258}/tests/integration/vector_stores/__init__.py +0 -0
  95. {ragbits_core-1.4.0.dev202601170236 → ragbits_core-1.4.0.dev202601300258}/tests/integration/vector_stores/test_keyword_search.py +0 -0
  96. {ragbits_core-1.4.0.dev202601170236 → ragbits_core-1.4.0.dev202601300258}/tests/integration/vector_stores/test_vector_store.py +0 -0
  97. {ragbits_core-1.4.0.dev202601170236 → ragbits_core-1.4.0.dev202601300258}/tests/integration/vector_stores/test_vector_store_sparse.py +0 -0
  98. {ragbits_core-1.4.0.dev202601170236 → ragbits_core-1.4.0.dev202601300258}/tests/unit/__init__.py +0 -0
  99. {ragbits_core-1.4.0.dev202601170236 → ragbits_core-1.4.0.dev202601300258}/tests/unit/audit/test_cli.py +0 -0
  100. {ragbits_core-1.4.0.dev202601170236 → ragbits_core-1.4.0.dev202601300258}/tests/unit/audit/test_metrics.py +0 -0
  101. {ragbits_core-1.4.0.dev202601170236 → ragbits_core-1.4.0.dev202601300258}/tests/unit/audit/test_trace.py +0 -0
  102. {ragbits_core-1.4.0.dev202601170236 → ragbits_core-1.4.0.dev202601300258}/tests/unit/embeddings/test_bag_of_tokens.py +0 -0
  103. {ragbits_core-1.4.0.dev202601170236 → ragbits_core-1.4.0.dev202601300258}/tests/unit/embeddings/test_fastembed.py +0 -0
  104. {ragbits_core-1.4.0.dev202601170236 → ragbits_core-1.4.0.dev202601300258}/tests/unit/embeddings/test_from_config.py +0 -0
  105. {ragbits_core-1.4.0.dev202601170236 → ragbits_core-1.4.0.dev202601300258}/tests/unit/embeddings/test_litellm.py +0 -0
  106. {ragbits_core-1.4.0.dev202601170236 → ragbits_core-1.4.0.dev202601300258}/tests/unit/embeddings/test_local.py +0 -0
  107. {ragbits_core-1.4.0.dev202601170236 → ragbits_core-1.4.0.dev202601300258}/tests/unit/embeddings/test_noop.py +0 -0
  108. {ragbits_core-1.4.0.dev202601170236 → ragbits_core-1.4.0.dev202601300258}/tests/unit/embeddings/test_vector_size.py +0 -0
  109. {ragbits_core-1.4.0.dev202601170236 → ragbits_core-1.4.0.dev202601300258}/tests/unit/embeddings/test_vertex_multimodal.py +0 -0
  110. {ragbits_core-1.4.0.dev202601170236 → ragbits_core-1.4.0.dev202601300258}/tests/unit/llms/__init__.py +0 -0
  111. {ragbits_core-1.4.0.dev202601170236 → ragbits_core-1.4.0.dev202601300258}/tests/unit/llms/factory/__init__.py +0 -0
  112. {ragbits_core-1.4.0.dev202601170236 → ragbits_core-1.4.0.dev202601300258}/tests/unit/llms/factory/test_get_preferred_llm.py +0 -0
  113. {ragbits_core-1.4.0.dev202601170236 → ragbits_core-1.4.0.dev202601300258}/tests/unit/llms/test_from_config.py +0 -0
  114. {ragbits_core-1.4.0.dev202601170236 → ragbits_core-1.4.0.dev202601300258}/tests/unit/llms/test_litellm.py +0 -0
  115. {ragbits_core-1.4.0.dev202601170236 → ragbits_core-1.4.0.dev202601300258}/tests/unit/llms/test_local.py +0 -0
  116. {ragbits_core-1.4.0.dev202601170236 → ragbits_core-1.4.0.dev202601300258}/tests/unit/prompts/__init__.py +0 -0
  117. {ragbits_core-1.4.0.dev202601170236 → ragbits_core-1.4.0.dev202601300258}/tests/unit/prompts/discovery/__init__.py +0 -0
  118. {ragbits_core-1.4.0.dev202601170236 → ragbits_core-1.4.0.dev202601300258}/tests/unit/prompts/discovery/prompt_classes_for_tests.py +0 -0
  119. {ragbits_core-1.4.0.dev202601170236 → ragbits_core-1.4.0.dev202601300258}/tests/unit/prompts/discovery/ragbits_tests_pkg_with_prompts/__init__.py +0 -0
  120. {ragbits_core-1.4.0.dev202601170236 → ragbits_core-1.4.0.dev202601300258}/tests/unit/prompts/discovery/ragbits_tests_pkg_with_prompts/prompts/__init__.py +0 -0
  121. {ragbits_core-1.4.0.dev202601170236 → ragbits_core-1.4.0.dev202601300258}/tests/unit/prompts/discovery/ragbits_tests_pkg_with_prompts/prompts/temp_prompt1.py +0 -0
  122. {ragbits_core-1.4.0.dev202601170236 → ragbits_core-1.4.0.dev202601300258}/tests/unit/prompts/discovery/ragbits_tests_pkg_with_prompts/prompts/temp_prompt2.py +0 -0
  123. {ragbits_core-1.4.0.dev202601170236 → ragbits_core-1.4.0.dev202601300258}/tests/unit/prompts/discovery/test_prompt_discovery.py +0 -0
  124. {ragbits_core-1.4.0.dev202601170236 → ragbits_core-1.4.0.dev202601300258}/tests/unit/prompts/test_parsers.py +0 -0
  125. {ragbits_core-1.4.0.dev202601170236 → ragbits_core-1.4.0.dev202601300258}/tests/unit/prompts/test_prompt.py +0 -0
  126. {ragbits_core-1.4.0.dev202601170236 → ragbits_core-1.4.0.dev202601300258}/tests/unit/sources/test_aws.py +0 -0
  127. {ragbits_core-1.4.0.dev202601170236 → ragbits_core-1.4.0.dev202601300258}/tests/unit/sources/test_azure.py +0 -0
  128. {ragbits_core-1.4.0.dev202601170236 → ragbits_core-1.4.0.dev202601300258}/tests/unit/sources/test_exceptions.py +0 -0
  129. {ragbits_core-1.4.0.dev202601170236 → ragbits_core-1.4.0.dev202601300258}/tests/unit/sources/test_gcs.py +0 -0
  130. {ragbits_core-1.4.0.dev202601170236 → ragbits_core-1.4.0.dev202601300258}/tests/unit/sources/test_git.py +0 -0
  131. {ragbits_core-1.4.0.dev202601170236 → ragbits_core-1.4.0.dev202601300258}/tests/unit/sources/test_google_drive.py +0 -0
  132. {ragbits_core-1.4.0.dev202601170236 → ragbits_core-1.4.0.dev202601300258}/tests/unit/sources/test_hf.py +0 -0
  133. {ragbits_core-1.4.0.dev202601170236 → ragbits_core-1.4.0.dev202601300258}/tests/unit/sources/test_local.py +0 -0
  134. {ragbits_core-1.4.0.dev202601170236 → ragbits_core-1.4.0.dev202601300258}/tests/unit/sources/test_source_discriminator.py +0 -0
  135. {ragbits_core-1.4.0.dev202601170236 → ragbits_core-1.4.0.dev202601300258}/tests/unit/sources/test_web.py +0 -0
  136. {ragbits_core-1.4.0.dev202601170236 → ragbits_core-1.4.0.dev202601300258}/tests/unit/test_options.py +0 -0
  137. {ragbits_core-1.4.0.dev202601170236 → ragbits_core-1.4.0.dev202601300258}/tests/unit/utils/__init__.py +0 -0
  138. {ragbits_core-1.4.0.dev202601170236 → ragbits_core-1.4.0.dev202601300258}/tests/unit/utils/pyproject/test_find.py +0 -0
  139. {ragbits_core-1.4.0.dev202601170236 → ragbits_core-1.4.0.dev202601300258}/tests/unit/utils/pyproject/test_get_config.py +0 -0
  140. {ragbits_core-1.4.0.dev202601170236 → ragbits_core-1.4.0.dev202601300258}/tests/unit/utils/pyproject/test_get_instace.py +0 -0
  141. {ragbits_core-1.4.0.dev202601170236 → ragbits_core-1.4.0.dev202601300258}/tests/unit/utils/test_config_handling.py +0 -0
  142. {ragbits_core-1.4.0.dev202601170236 → ragbits_core-1.4.0.dev202601300258}/tests/unit/utils/test_decorators.py +0 -0
  143. {ragbits_core-1.4.0.dev202601170236 → ragbits_core-1.4.0.dev202601300258}/tests/unit/utils/test_dict_transformations.py +0 -0
  144. {ragbits_core-1.4.0.dev202601170236 → ragbits_core-1.4.0.dev202601300258}/tests/unit/utils/test_function_schema.py +0 -0
  145. {ragbits_core-1.4.0.dev202601170236 → ragbits_core-1.4.0.dev202601300258}/tests/unit/utils/test_helpers.py +0 -0
  146. {ragbits_core-1.4.0.dev202601170236 → ragbits_core-1.4.0.dev202601300258}/tests/unit/utils/test_secrets.py +0 -0
  147. {ragbits_core-1.4.0.dev202601170236 → ragbits_core-1.4.0.dev202601300258}/tests/unit/utils/testprojects/bad_factory_project/pyproject.toml +0 -0
  148. {ragbits_core-1.4.0.dev202601170236 → ragbits_core-1.4.0.dev202601300258}/tests/unit/utils/testprojects/factory_project/pyproject.toml +0 -0
  149. {ragbits_core-1.4.0.dev202601170236 → ragbits_core-1.4.0.dev202601300258}/tests/unit/utils/testprojects/happy_project/pyproject.toml +0 -0
  150. {ragbits_core-1.4.0.dev202601170236 → ragbits_core-1.4.0.dev202601300258}/tests/unit/utils/testprojects/project_with_instance_factory/pyproject.toml +0 -0
  151. {ragbits_core-1.4.0.dev202601170236 → ragbits_core-1.4.0.dev202601300258}/tests/unit/utils/testprojects/project_with_instances_yaml/instances.yaml +0 -0
  152. {ragbits_core-1.4.0.dev202601170236 → ragbits_core-1.4.0.dev202601300258}/tests/unit/utils/testprojects/project_with_instances_yaml/pyproject.toml +0 -0
  153. {ragbits_core-1.4.0.dev202601170236 → ragbits_core-1.4.0.dev202601300258}/tests/unit/vector_stores/test_base.py +0 -0
  154. {ragbits_core-1.4.0.dev202601170236 → ragbits_core-1.4.0.dev202601300258}/tests/unit/vector_stores/test_chroma.py +0 -0
  155. {ragbits_core-1.4.0.dev202601170236 → ragbits_core-1.4.0.dev202601300258}/tests/unit/vector_stores/test_from_config.py +0 -0
  156. {ragbits_core-1.4.0.dev202601170236 → ragbits_core-1.4.0.dev202601300258}/tests/unit/vector_stores/test_hybrid.py +0 -0
  157. {ragbits_core-1.4.0.dev202601170236 → ragbits_core-1.4.0.dev202601300258}/tests/unit/vector_stores/test_hybrid_strategies.py +0 -0
  158. {ragbits_core-1.4.0.dev202601170236 → ragbits_core-1.4.0.dev202601300258}/tests/unit/vector_stores/test_in_memory.py +0 -0
  159. {ragbits_core-1.4.0.dev202601170236 → ragbits_core-1.4.0.dev202601300258}/tests/unit/vector_stores/test_pgvector.py +0 -0
  160. {ragbits_core-1.4.0.dev202601170236 → ragbits_core-1.4.0.dev202601300258}/tests/unit/vector_stores/test_qdrant.py +0 -0
  161. {ragbits_core-1.4.0.dev202601170236 → ragbits_core-1.4.0.dev202601300258}/tests/unit/vector_stores/test_weaviate.py +0 -0
@@ -5,6 +5,7 @@
5
5
  - Add Support for Thinking in agents (#837)
6
6
  - Add support for confirmation requests in chat (#853)
7
7
  - Add name parameter and slightly refactor HuggingFace dataloder (#829)
8
+ - Fix trace context managers not closing properly when streaming (#922)
8
9
 
9
10
  ## 1.3.0 (2025-09-11)
10
11
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: ragbits-core
3
- Version: 1.4.0.dev202601170236
3
+ Version: 1.4.0.dev202601300258
4
4
  Summary: Building blocks for rapid development of GenAI applications
5
5
  Project-URL: Homepage, https://github.com/deepsense-ai/ragbits
6
6
  Project-URL: Bug Reports, https://github.com/deepsense-ai/ragbits/issues
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "ragbits-core"
3
- version = "1.4.0.dev202601170236"
3
+ version = "1.4.0.dev202601300258"
4
4
  description = "Building blocks for rapid development of GenAI applications"
5
5
  readme = "README.md"
6
6
  requires-python = ">=3.10"
@@ -244,6 +244,9 @@ class LLMResultStreaming(AsyncIterator[T]):
244
244
  self.metadata: LLMResponseWithMetadata = item
245
245
  if item.usage:
246
246
  self.usage += item.usage
247
+ # Exhaust generator to let trace context managers close properly
248
+ async for _ in self._generator:
249
+ pass
247
250
  raise StopAsyncIteration
248
251
  case Usage():
249
252
  self.usage += item
@@ -411,3 +411,20 @@ async def test_generate_with_metadata_tracing_and_metrics(
411
411
  assert metric_calls[2][1]["value"] == 90.0 # total_tokens / throughput
412
412
  assert metric_calls[2][1]["attributes"]["model"] == llm.model_name
413
413
  assert metric_calls[2][1]["metric_type"] == MetricType.HISTOGRAM
414
+
415
+
416
+ async def test_generate_streaming_trace_handler_closes_properly(llm: MockLLM, mock_trace_handler: MagicMock):
417
+ set_trace_handlers(mock_trace_handler)
418
+
419
+ prompt = SimplePrompt("Hello")
420
+ stream = llm.generate_streaming(prompt)
421
+
422
+ responses = [response async for response in stream]
423
+ assert responses == ["first response", "second response"]
424
+
425
+ # Verify trace context manager was called and properly exited
426
+ mock_trace_handler.trace.assert_called_once()
427
+ # The context manager's __enter__ and __exit__ should both be called
428
+ trace_cm = mock_trace_handler.trace.return_value
429
+ trace_cm.__enter__.assert_called_once()
430
+ trace_cm.__exit__.assert_called_once()