ragbits-core 1.4.0.dev202509220622__tar.gz → 1.4.0.dev202512151244__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.
- {ragbits_core-1.4.0.dev202509220622 → ragbits_core-1.4.0.dev202512151244}/.gitignore +5 -0
- {ragbits_core-1.4.0.dev202509220622 → ragbits_core-1.4.0.dev202512151244}/CHANGELOG.md +9 -4
- {ragbits_core-1.4.0.dev202509220622 → ragbits_core-1.4.0.dev202512151244}/PKG-INFO +3 -1
- {ragbits_core-1.4.0.dev202509220622 → ragbits_core-1.4.0.dev202512151244}/README.md +2 -0
- {ragbits_core-1.4.0.dev202509220622 → ragbits_core-1.4.0.dev202512151244}/pyproject.toml +1 -1
- {ragbits_core-1.4.0.dev202509220622 → ragbits_core-1.4.0.dev202512151244}/src/ragbits/core/llms/litellm.py +115 -4
- {ragbits_core-1.4.0.dev202509220622 → ragbits_core-1.4.0.dev202512151244}/src/ragbits/core/sources/hf.py +35 -17
- {ragbits_core-1.4.0.dev202509220622 → ragbits_core-1.4.0.dev202512151244}/src/ragbits/core/__init__.py +0 -0
- {ragbits_core-1.4.0.dev202509220622 → ragbits_core-1.4.0.dev202512151244}/src/ragbits/core/audit/__init__.py +0 -0
- {ragbits_core-1.4.0.dev202509220622 → ragbits_core-1.4.0.dev202512151244}/src/ragbits/core/audit/metrics/__init__.py +0 -0
- {ragbits_core-1.4.0.dev202509220622 → ragbits_core-1.4.0.dev202512151244}/src/ragbits/core/audit/metrics/base.py +0 -0
- {ragbits_core-1.4.0.dev202509220622 → ragbits_core-1.4.0.dev202512151244}/src/ragbits/core/audit/metrics/logfire.py +0 -0
- {ragbits_core-1.4.0.dev202509220622 → ragbits_core-1.4.0.dev202512151244}/src/ragbits/core/audit/metrics/otel.py +0 -0
- {ragbits_core-1.4.0.dev202509220622 → ragbits_core-1.4.0.dev202512151244}/src/ragbits/core/audit/traces/__init__.py +0 -0
- {ragbits_core-1.4.0.dev202509220622 → ragbits_core-1.4.0.dev202512151244}/src/ragbits/core/audit/traces/base.py +0 -0
- {ragbits_core-1.4.0.dev202509220622 → ragbits_core-1.4.0.dev202512151244}/src/ragbits/core/audit/traces/cli.py +0 -0
- {ragbits_core-1.4.0.dev202509220622 → ragbits_core-1.4.0.dev202512151244}/src/ragbits/core/audit/traces/logfire.py +0 -0
- {ragbits_core-1.4.0.dev202509220622 → ragbits_core-1.4.0.dev202512151244}/src/ragbits/core/audit/traces/otel.py +0 -0
- {ragbits_core-1.4.0.dev202509220622 → ragbits_core-1.4.0.dev202512151244}/src/ragbits/core/cli.py +0 -0
- {ragbits_core-1.4.0.dev202509220622 → ragbits_core-1.4.0.dev202512151244}/src/ragbits/core/config.py +0 -0
- {ragbits_core-1.4.0.dev202509220622 → ragbits_core-1.4.0.dev202512151244}/src/ragbits/core/embeddings/__init__.py +0 -0
- {ragbits_core-1.4.0.dev202509220622 → ragbits_core-1.4.0.dev202512151244}/src/ragbits/core/embeddings/base.py +0 -0
- {ragbits_core-1.4.0.dev202509220622 → ragbits_core-1.4.0.dev202512151244}/src/ragbits/core/embeddings/dense/__init__.py +0 -0
- {ragbits_core-1.4.0.dev202509220622 → ragbits_core-1.4.0.dev202512151244}/src/ragbits/core/embeddings/dense/base.py +0 -0
- {ragbits_core-1.4.0.dev202509220622 → ragbits_core-1.4.0.dev202512151244}/src/ragbits/core/embeddings/dense/fastembed.py +0 -0
- {ragbits_core-1.4.0.dev202509220622 → ragbits_core-1.4.0.dev202512151244}/src/ragbits/core/embeddings/dense/litellm.py +0 -0
- {ragbits_core-1.4.0.dev202509220622 → ragbits_core-1.4.0.dev202512151244}/src/ragbits/core/embeddings/dense/local.py +0 -0
- {ragbits_core-1.4.0.dev202509220622 → ragbits_core-1.4.0.dev202512151244}/src/ragbits/core/embeddings/dense/noop.py +0 -0
- {ragbits_core-1.4.0.dev202509220622 → ragbits_core-1.4.0.dev202512151244}/src/ragbits/core/embeddings/dense/vertex_multimodal.py +0 -0
- {ragbits_core-1.4.0.dev202509220622 → ragbits_core-1.4.0.dev202512151244}/src/ragbits/core/embeddings/exceptions.py +0 -0
- {ragbits_core-1.4.0.dev202509220622 → ragbits_core-1.4.0.dev202512151244}/src/ragbits/core/embeddings/sparse/__init__.py +0 -0
- {ragbits_core-1.4.0.dev202509220622 → ragbits_core-1.4.0.dev202512151244}/src/ragbits/core/embeddings/sparse/bag_of_tokens.py +0 -0
- {ragbits_core-1.4.0.dev202509220622 → ragbits_core-1.4.0.dev202512151244}/src/ragbits/core/embeddings/sparse/base.py +0 -0
- {ragbits_core-1.4.0.dev202509220622 → ragbits_core-1.4.0.dev202512151244}/src/ragbits/core/embeddings/sparse/fastembed.py +0 -0
- {ragbits_core-1.4.0.dev202509220622 → ragbits_core-1.4.0.dev202512151244}/src/ragbits/core/llms/__init__.py +0 -0
- {ragbits_core-1.4.0.dev202509220622 → ragbits_core-1.4.0.dev202512151244}/src/ragbits/core/llms/base.py +0 -0
- {ragbits_core-1.4.0.dev202509220622 → ragbits_core-1.4.0.dev202512151244}/src/ragbits/core/llms/exceptions.py +0 -0
- {ragbits_core-1.4.0.dev202509220622 → ragbits_core-1.4.0.dev202512151244}/src/ragbits/core/llms/factory.py +0 -0
- {ragbits_core-1.4.0.dev202509220622 → ragbits_core-1.4.0.dev202512151244}/src/ragbits/core/llms/local.py +0 -0
- {ragbits_core-1.4.0.dev202509220622 → ragbits_core-1.4.0.dev202512151244}/src/ragbits/core/llms/mock.py +0 -0
- {ragbits_core-1.4.0.dev202509220622 → ragbits_core-1.4.0.dev202512151244}/src/ragbits/core/options.py +0 -0
- {ragbits_core-1.4.0.dev202509220622 → ragbits_core-1.4.0.dev202512151244}/src/ragbits/core/prompt/__init__.py +0 -0
- {ragbits_core-1.4.0.dev202509220622 → ragbits_core-1.4.0.dev202512151244}/src/ragbits/core/prompt/_cli.py +0 -0
- {ragbits_core-1.4.0.dev202509220622 → ragbits_core-1.4.0.dev202512151244}/src/ragbits/core/prompt/base.py +0 -0
- {ragbits_core-1.4.0.dev202509220622 → ragbits_core-1.4.0.dev202512151244}/src/ragbits/core/prompt/discovery.py +0 -0
- {ragbits_core-1.4.0.dev202509220622 → ragbits_core-1.4.0.dev202512151244}/src/ragbits/core/prompt/exceptions.py +0 -0
- {ragbits_core-1.4.0.dev202509220622 → ragbits_core-1.4.0.dev202512151244}/src/ragbits/core/prompt/parsers.py +0 -0
- {ragbits_core-1.4.0.dev202509220622 → ragbits_core-1.4.0.dev202512151244}/src/ragbits/core/prompt/prompt.py +0 -0
- {ragbits_core-1.4.0.dev202509220622 → ragbits_core-1.4.0.dev202512151244}/src/ragbits/core/prompt/promptfoo.py +0 -0
- {ragbits_core-1.4.0.dev202509220622 → ragbits_core-1.4.0.dev202512151244}/src/ragbits/core/py.typed +0 -0
- {ragbits_core-1.4.0.dev202509220622 → ragbits_core-1.4.0.dev202512151244}/src/ragbits/core/sources/__init__.py +0 -0
- {ragbits_core-1.4.0.dev202509220622 → ragbits_core-1.4.0.dev202512151244}/src/ragbits/core/sources/azure.py +0 -0
- {ragbits_core-1.4.0.dev202509220622 → ragbits_core-1.4.0.dev202512151244}/src/ragbits/core/sources/base.py +0 -0
- {ragbits_core-1.4.0.dev202509220622 → ragbits_core-1.4.0.dev202512151244}/src/ragbits/core/sources/exceptions.py +0 -0
- {ragbits_core-1.4.0.dev202509220622 → ragbits_core-1.4.0.dev202512151244}/src/ragbits/core/sources/gcs.py +0 -0
- {ragbits_core-1.4.0.dev202509220622 → ragbits_core-1.4.0.dev202512151244}/src/ragbits/core/sources/git.py +0 -0
- {ragbits_core-1.4.0.dev202509220622 → ragbits_core-1.4.0.dev202512151244}/src/ragbits/core/sources/google_drive.py +0 -0
- {ragbits_core-1.4.0.dev202509220622 → ragbits_core-1.4.0.dev202512151244}/src/ragbits/core/sources/local.py +0 -0
- {ragbits_core-1.4.0.dev202509220622 → ragbits_core-1.4.0.dev202512151244}/src/ragbits/core/sources/s3.py +0 -0
- {ragbits_core-1.4.0.dev202509220622 → ragbits_core-1.4.0.dev202512151244}/src/ragbits/core/sources/web.py +0 -0
- {ragbits_core-1.4.0.dev202509220622 → ragbits_core-1.4.0.dev202512151244}/src/ragbits/core/types.py +0 -0
- {ragbits_core-1.4.0.dev202509220622 → ragbits_core-1.4.0.dev202512151244}/src/ragbits/core/utils/__init__.py +0 -0
- {ragbits_core-1.4.0.dev202509220622 → ragbits_core-1.4.0.dev202512151244}/src/ragbits/core/utils/_pyproject.py +0 -0
- {ragbits_core-1.4.0.dev202509220622 → ragbits_core-1.4.0.dev202512151244}/src/ragbits/core/utils/config_handling.py +0 -0
- {ragbits_core-1.4.0.dev202509220622 → ragbits_core-1.4.0.dev202512151244}/src/ragbits/core/utils/decorators.py +0 -0
- {ragbits_core-1.4.0.dev202509220622 → ragbits_core-1.4.0.dev202512151244}/src/ragbits/core/utils/dict_transformations.py +0 -0
- {ragbits_core-1.4.0.dev202509220622 → ragbits_core-1.4.0.dev202512151244}/src/ragbits/core/utils/function_schema.py +0 -0
- {ragbits_core-1.4.0.dev202509220622 → ragbits_core-1.4.0.dev202512151244}/src/ragbits/core/utils/helpers.py +0 -0
- {ragbits_core-1.4.0.dev202509220622 → ragbits_core-1.4.0.dev202512151244}/src/ragbits/core/utils/lazy_litellm.py +0 -0
- {ragbits_core-1.4.0.dev202509220622 → ragbits_core-1.4.0.dev202512151244}/src/ragbits/core/utils/pydantic.py +0 -0
- {ragbits_core-1.4.0.dev202509220622 → ragbits_core-1.4.0.dev202512151244}/src/ragbits/core/utils/secrets.py +0 -0
- {ragbits_core-1.4.0.dev202509220622 → ragbits_core-1.4.0.dev202512151244}/src/ragbits/core/vector_stores/__init__.py +0 -0
- {ragbits_core-1.4.0.dev202509220622 → ragbits_core-1.4.0.dev202512151244}/src/ragbits/core/vector_stores/_cli.py +0 -0
- {ragbits_core-1.4.0.dev202509220622 → ragbits_core-1.4.0.dev202512151244}/src/ragbits/core/vector_stores/base.py +0 -0
- {ragbits_core-1.4.0.dev202509220622 → ragbits_core-1.4.0.dev202512151244}/src/ragbits/core/vector_stores/chroma.py +0 -0
- {ragbits_core-1.4.0.dev202509220622 → ragbits_core-1.4.0.dev202512151244}/src/ragbits/core/vector_stores/hybrid.py +0 -0
- {ragbits_core-1.4.0.dev202509220622 → ragbits_core-1.4.0.dev202512151244}/src/ragbits/core/vector_stores/hybrid_strategies.py +0 -0
- {ragbits_core-1.4.0.dev202509220622 → ragbits_core-1.4.0.dev202512151244}/src/ragbits/core/vector_stores/in_memory.py +0 -0
- {ragbits_core-1.4.0.dev202509220622 → ragbits_core-1.4.0.dev202512151244}/src/ragbits/core/vector_stores/pgvector.py +0 -0
- {ragbits_core-1.4.0.dev202509220622 → ragbits_core-1.4.0.dev202512151244}/src/ragbits/core/vector_stores/qdrant.py +0 -0
- {ragbits_core-1.4.0.dev202509220622 → ragbits_core-1.4.0.dev202512151244}/src/ragbits/core/vector_stores/weaviate.py +0 -0
- {ragbits_core-1.4.0.dev202509220622 → ragbits_core-1.4.0.dev202512151244}/tests/assets/img/test.png +0 -0
- {ragbits_core-1.4.0.dev202509220622 → ragbits_core-1.4.0.dev202512151244}/tests/assets/img/test2.jpg +0 -0
- {ragbits_core-1.4.0.dev202509220622 → ragbits_core-1.4.0.dev202512151244}/tests/assets/md/bar.md +0 -0
- {ragbits_core-1.4.0.dev202509220622 → ragbits_core-1.4.0.dev202512151244}/tests/assets/md/foo.md +0 -0
- {ragbits_core-1.4.0.dev202509220622 → ragbits_core-1.4.0.dev202512151244}/tests/cli/__init__.py +0 -0
- {ragbits_core-1.4.0.dev202509220622 → ragbits_core-1.4.0.dev202512151244}/tests/cli/test_cli_trace_handler.py +0 -0
- {ragbits_core-1.4.0.dev202509220622 → ragbits_core-1.4.0.dev202512151244}/tests/cli/test_vector_store.py +0 -0
- {ragbits_core-1.4.0.dev202509220622 → ragbits_core-1.4.0.dev202512151244}/tests/conftest.py +0 -0
- {ragbits_core-1.4.0.dev202509220622 → ragbits_core-1.4.0.dev202512151244}/tests/integration/sources/test_git.py +0 -0
- {ragbits_core-1.4.0.dev202509220622 → ragbits_core-1.4.0.dev202512151244}/tests/integration/sources/test_hf.py +0 -0
- {ragbits_core-1.4.0.dev202509220622 → ragbits_core-1.4.0.dev202512151244}/tests/integration/sources/test_s3.py +0 -0
- {ragbits_core-1.4.0.dev202509220622 → ragbits_core-1.4.0.dev202512151244}/tests/integration/vector_stores/__init__.py +0 -0
- {ragbits_core-1.4.0.dev202509220622 → ragbits_core-1.4.0.dev202512151244}/tests/integration/vector_stores/test_keyword_search.py +0 -0
- {ragbits_core-1.4.0.dev202509220622 → ragbits_core-1.4.0.dev202512151244}/tests/integration/vector_stores/test_vector_store.py +0 -0
- {ragbits_core-1.4.0.dev202509220622 → ragbits_core-1.4.0.dev202512151244}/tests/integration/vector_stores/test_vector_store_sparse.py +0 -0
- {ragbits_core-1.4.0.dev202509220622 → ragbits_core-1.4.0.dev202512151244}/tests/unit/__init__.py +0 -0
- {ragbits_core-1.4.0.dev202509220622 → ragbits_core-1.4.0.dev202512151244}/tests/unit/audit/test_cli.py +0 -0
- {ragbits_core-1.4.0.dev202509220622 → ragbits_core-1.4.0.dev202512151244}/tests/unit/audit/test_metrics.py +0 -0
- {ragbits_core-1.4.0.dev202509220622 → ragbits_core-1.4.0.dev202512151244}/tests/unit/audit/test_trace.py +0 -0
- {ragbits_core-1.4.0.dev202509220622 → ragbits_core-1.4.0.dev202512151244}/tests/unit/embeddings/test_bag_of_tokens.py +0 -0
- {ragbits_core-1.4.0.dev202509220622 → ragbits_core-1.4.0.dev202512151244}/tests/unit/embeddings/test_fastembed.py +0 -0
- {ragbits_core-1.4.0.dev202509220622 → ragbits_core-1.4.0.dev202512151244}/tests/unit/embeddings/test_from_config.py +0 -0
- {ragbits_core-1.4.0.dev202509220622 → ragbits_core-1.4.0.dev202512151244}/tests/unit/embeddings/test_litellm.py +0 -0
- {ragbits_core-1.4.0.dev202509220622 → ragbits_core-1.4.0.dev202512151244}/tests/unit/embeddings/test_local.py +0 -0
- {ragbits_core-1.4.0.dev202509220622 → ragbits_core-1.4.0.dev202512151244}/tests/unit/embeddings/test_noop.py +0 -0
- {ragbits_core-1.4.0.dev202509220622 → ragbits_core-1.4.0.dev202512151244}/tests/unit/embeddings/test_vector_size.py +0 -0
- {ragbits_core-1.4.0.dev202509220622 → ragbits_core-1.4.0.dev202512151244}/tests/unit/embeddings/test_vertex_multimodal.py +0 -0
- {ragbits_core-1.4.0.dev202509220622 → ragbits_core-1.4.0.dev202512151244}/tests/unit/llms/__init__.py +0 -0
- {ragbits_core-1.4.0.dev202509220622 → ragbits_core-1.4.0.dev202512151244}/tests/unit/llms/factory/__init__.py +0 -0
- {ragbits_core-1.4.0.dev202509220622 → ragbits_core-1.4.0.dev202512151244}/tests/unit/llms/factory/test_get_preferred_llm.py +0 -0
- {ragbits_core-1.4.0.dev202509220622 → ragbits_core-1.4.0.dev202512151244}/tests/unit/llms/test_base.py +0 -0
- {ragbits_core-1.4.0.dev202509220622 → ragbits_core-1.4.0.dev202512151244}/tests/unit/llms/test_from_config.py +0 -0
- {ragbits_core-1.4.0.dev202509220622 → ragbits_core-1.4.0.dev202512151244}/tests/unit/llms/test_litellm.py +0 -0
- {ragbits_core-1.4.0.dev202509220622 → ragbits_core-1.4.0.dev202512151244}/tests/unit/llms/test_local.py +0 -0
- {ragbits_core-1.4.0.dev202509220622 → ragbits_core-1.4.0.dev202512151244}/tests/unit/prompts/__init__.py +0 -0
- {ragbits_core-1.4.0.dev202509220622 → ragbits_core-1.4.0.dev202512151244}/tests/unit/prompts/discovery/__init__.py +0 -0
- {ragbits_core-1.4.0.dev202509220622 → ragbits_core-1.4.0.dev202512151244}/tests/unit/prompts/discovery/prompt_classes_for_tests.py +0 -0
- {ragbits_core-1.4.0.dev202509220622 → ragbits_core-1.4.0.dev202512151244}/tests/unit/prompts/discovery/ragbits_tests_pkg_with_prompts/__init__.py +0 -0
- {ragbits_core-1.4.0.dev202509220622 → ragbits_core-1.4.0.dev202512151244}/tests/unit/prompts/discovery/ragbits_tests_pkg_with_prompts/prompts/__init__.py +0 -0
- {ragbits_core-1.4.0.dev202509220622 → ragbits_core-1.4.0.dev202512151244}/tests/unit/prompts/discovery/ragbits_tests_pkg_with_prompts/prompts/temp_prompt1.py +0 -0
- {ragbits_core-1.4.0.dev202509220622 → ragbits_core-1.4.0.dev202512151244}/tests/unit/prompts/discovery/ragbits_tests_pkg_with_prompts/prompts/temp_prompt2.py +0 -0
- {ragbits_core-1.4.0.dev202509220622 → ragbits_core-1.4.0.dev202512151244}/tests/unit/prompts/discovery/test_prompt_discovery.py +0 -0
- {ragbits_core-1.4.0.dev202509220622 → ragbits_core-1.4.0.dev202512151244}/tests/unit/prompts/test_parsers.py +0 -0
- {ragbits_core-1.4.0.dev202509220622 → ragbits_core-1.4.0.dev202512151244}/tests/unit/prompts/test_prompt.py +0 -0
- {ragbits_core-1.4.0.dev202509220622 → ragbits_core-1.4.0.dev202512151244}/tests/unit/sources/test_aws.py +0 -0
- {ragbits_core-1.4.0.dev202509220622 → ragbits_core-1.4.0.dev202512151244}/tests/unit/sources/test_azure.py +0 -0
- {ragbits_core-1.4.0.dev202509220622 → ragbits_core-1.4.0.dev202512151244}/tests/unit/sources/test_exceptions.py +0 -0
- {ragbits_core-1.4.0.dev202509220622 → ragbits_core-1.4.0.dev202512151244}/tests/unit/sources/test_gcs.py +0 -0
- {ragbits_core-1.4.0.dev202509220622 → ragbits_core-1.4.0.dev202512151244}/tests/unit/sources/test_git.py +0 -0
- {ragbits_core-1.4.0.dev202509220622 → ragbits_core-1.4.0.dev202512151244}/tests/unit/sources/test_google_drive.py +0 -0
- {ragbits_core-1.4.0.dev202509220622 → ragbits_core-1.4.0.dev202512151244}/tests/unit/sources/test_hf.py +0 -0
- {ragbits_core-1.4.0.dev202509220622 → ragbits_core-1.4.0.dev202512151244}/tests/unit/sources/test_local.py +0 -0
- {ragbits_core-1.4.0.dev202509220622 → ragbits_core-1.4.0.dev202512151244}/tests/unit/sources/test_source_discriminator.py +0 -0
- {ragbits_core-1.4.0.dev202509220622 → ragbits_core-1.4.0.dev202512151244}/tests/unit/sources/test_web.py +0 -0
- {ragbits_core-1.4.0.dev202509220622 → ragbits_core-1.4.0.dev202512151244}/tests/unit/test_options.py +0 -0
- {ragbits_core-1.4.0.dev202509220622 → ragbits_core-1.4.0.dev202512151244}/tests/unit/utils/__init__.py +0 -0
- {ragbits_core-1.4.0.dev202509220622 → ragbits_core-1.4.0.dev202512151244}/tests/unit/utils/pyproject/test_find.py +0 -0
- {ragbits_core-1.4.0.dev202509220622 → ragbits_core-1.4.0.dev202512151244}/tests/unit/utils/pyproject/test_get_config.py +0 -0
- {ragbits_core-1.4.0.dev202509220622 → ragbits_core-1.4.0.dev202512151244}/tests/unit/utils/pyproject/test_get_instace.py +0 -0
- {ragbits_core-1.4.0.dev202509220622 → ragbits_core-1.4.0.dev202512151244}/tests/unit/utils/test_config_handling.py +0 -0
- {ragbits_core-1.4.0.dev202509220622 → ragbits_core-1.4.0.dev202512151244}/tests/unit/utils/test_decorators.py +0 -0
- {ragbits_core-1.4.0.dev202509220622 → ragbits_core-1.4.0.dev202512151244}/tests/unit/utils/test_dict_transformations.py +0 -0
- {ragbits_core-1.4.0.dev202509220622 → ragbits_core-1.4.0.dev202512151244}/tests/unit/utils/test_function_schema.py +0 -0
- {ragbits_core-1.4.0.dev202509220622 → ragbits_core-1.4.0.dev202512151244}/tests/unit/utils/test_helpers.py +0 -0
- {ragbits_core-1.4.0.dev202509220622 → ragbits_core-1.4.0.dev202512151244}/tests/unit/utils/test_secrets.py +0 -0
- {ragbits_core-1.4.0.dev202509220622 → ragbits_core-1.4.0.dev202512151244}/tests/unit/utils/testprojects/bad_factory_project/pyproject.toml +0 -0
- {ragbits_core-1.4.0.dev202509220622 → ragbits_core-1.4.0.dev202512151244}/tests/unit/utils/testprojects/factory_project/pyproject.toml +0 -0
- {ragbits_core-1.4.0.dev202509220622 → ragbits_core-1.4.0.dev202512151244}/tests/unit/utils/testprojects/happy_project/pyproject.toml +0 -0
- {ragbits_core-1.4.0.dev202509220622 → ragbits_core-1.4.0.dev202512151244}/tests/unit/utils/testprojects/project_with_instance_factory/pyproject.toml +0 -0
- {ragbits_core-1.4.0.dev202509220622 → ragbits_core-1.4.0.dev202512151244}/tests/unit/utils/testprojects/project_with_instances_yaml/instances.yaml +0 -0
- {ragbits_core-1.4.0.dev202509220622 → ragbits_core-1.4.0.dev202512151244}/tests/unit/utils/testprojects/project_with_instances_yaml/pyproject.toml +0 -0
- {ragbits_core-1.4.0.dev202509220622 → ragbits_core-1.4.0.dev202512151244}/tests/unit/vector_stores/test_base.py +0 -0
- {ragbits_core-1.4.0.dev202509220622 → ragbits_core-1.4.0.dev202512151244}/tests/unit/vector_stores/test_chroma.py +0 -0
- {ragbits_core-1.4.0.dev202509220622 → ragbits_core-1.4.0.dev202512151244}/tests/unit/vector_stores/test_from_config.py +0 -0
- {ragbits_core-1.4.0.dev202509220622 → ragbits_core-1.4.0.dev202512151244}/tests/unit/vector_stores/test_hybrid.py +0 -0
- {ragbits_core-1.4.0.dev202509220622 → ragbits_core-1.4.0.dev202512151244}/tests/unit/vector_stores/test_hybrid_strategies.py +0 -0
- {ragbits_core-1.4.0.dev202509220622 → ragbits_core-1.4.0.dev202512151244}/tests/unit/vector_stores/test_in_memory.py +0 -0
- {ragbits_core-1.4.0.dev202509220622 → ragbits_core-1.4.0.dev202512151244}/tests/unit/vector_stores/test_pgvector.py +0 -0
- {ragbits_core-1.4.0.dev202509220622 → ragbits_core-1.4.0.dev202512151244}/tests/unit/vector_stores/test_qdrant.py +0 -0
- {ragbits_core-1.4.0.dev202509220622 → ragbits_core-1.4.0.dev202512151244}/tests/unit/vector_stores/test_weaviate.py +0 -0
|
@@ -8,6 +8,7 @@ venv/
|
|
|
8
8
|
.venv/
|
|
9
9
|
__pycache__/
|
|
10
10
|
**.egg-info/
|
|
11
|
+
.deepeval/
|
|
11
12
|
|
|
12
13
|
# Local cursor rules
|
|
13
14
|
.cursor/rules/local/
|
|
@@ -109,3 +110,7 @@ node_modules/
|
|
|
109
110
|
lazygit
|
|
110
111
|
|
|
111
112
|
lazygit.tar.gz
|
|
113
|
+
|
|
114
|
+
# chat conversation logs
|
|
115
|
+
duet_conversation.log
|
|
116
|
+
worktrees/
|
|
@@ -2,18 +2,20 @@
|
|
|
2
2
|
|
|
3
3
|
## Unreleased
|
|
4
4
|
|
|
5
|
+
- Add Support for Thinking in agents (#837)
|
|
6
|
+
- Add support for confirmation requests in chat (#853)
|
|
7
|
+
- Add name parameter and slightly refactor HuggingFace dataloder (#829)
|
|
8
|
+
|
|
5
9
|
## 1.3.0 (2025-09-11)
|
|
6
10
|
|
|
7
11
|
- feat: improve app startup speed with lazy LiteLLM loading
|
|
8
12
|
|
|
9
|
-
|
|
10
13
|
- Feat: added support for IVFFlat indexing and Halfvec datatype
|
|
11
14
|
|
|
12
15
|
- Added Lazy loading of dependencies in local.py and during importing of LiteLLM
|
|
13
16
|
- Add tool_choice parameter to LLM interface (#738)
|
|
14
17
|
- Fix Prompt consumes same iterator twice leading to no data added to chat (#768)
|
|
15
18
|
|
|
16
|
-
|
|
17
19
|
## 1.2.2 (2025-08-08)
|
|
18
20
|
|
|
19
21
|
- Fix: rendering iterator arguments in Prompt (#768)
|
|
@@ -94,6 +96,7 @@
|
|
|
94
96
|
## 0.16.0 (2025-04-29)
|
|
95
97
|
|
|
96
98
|
## 0.15.0 (2025-04-28)
|
|
99
|
+
|
|
97
100
|
- Allow using sparse embeddings with Qdrant and local vector stores (#493)
|
|
98
101
|
- Add support for sparse embeddings in the Pgvector Vector Store (#493)
|
|
99
102
|
- Added secret key environment variable / generation for signatures across ragbits packages (#537)
|
|
@@ -109,6 +112,7 @@
|
|
|
109
112
|
- modify LocalEmbedder to use sentence-transformers instead of torch (#508)
|
|
110
113
|
|
|
111
114
|
## 0.13.0 (2025-04-02)
|
|
115
|
+
|
|
112
116
|
- Make the score in VectorStoreResult consistent (always bigger is better)
|
|
113
117
|
- Add router option to LiteLLMEmbedder (#440)
|
|
114
118
|
- Make LLM / Embedder APIs consistent (#463)
|
|
@@ -117,11 +121,13 @@
|
|
|
117
121
|
- Cost and capabilities config for custom litellm models (#481)
|
|
118
122
|
|
|
119
123
|
## 0.12.0 (2025-03-25)
|
|
124
|
+
|
|
120
125
|
- Allow Prompt class to accept the asynchronous response_parser. Change the signature of parse_response method.
|
|
121
126
|
- Fix from_config for LiteLLM class (#441)
|
|
122
127
|
- Fix Qdrant vector store serialization (#419)
|
|
123
128
|
|
|
124
129
|
## 0.11.0 (2025-03-25)
|
|
130
|
+
|
|
125
131
|
- Add HybridSearchVectorStore which can aggregate results from multiple VectorStores (#412)
|
|
126
132
|
|
|
127
133
|
## 0.10.2 (2025-03-21)
|
|
@@ -202,7 +208,6 @@
|
|
|
202
208
|
- Add streaming interface to LLMs (#188).
|
|
203
209
|
- Better images support in Prompt abstractions (#201).
|
|
204
210
|
|
|
205
|
-
|
|
206
211
|
## 0.3.0 (2024-11-06)
|
|
207
212
|
|
|
208
213
|
### Added
|
|
@@ -242,4 +247,4 @@
|
|
|
242
247
|
- LiteLLM integration.
|
|
243
248
|
- ChromaDB integration.
|
|
244
249
|
- Prompts lab.
|
|
245
|
-
- Prompts autodiscovery.
|
|
250
|
+
- Prompts autodiscovery.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: ragbits-core
|
|
3
|
-
Version: 1.4.0.
|
|
3
|
+
Version: 1.4.0.dev202512151244
|
|
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
|
|
@@ -89,6 +89,8 @@ pip install ragbits-core
|
|
|
89
89
|
## Quick Start
|
|
90
90
|
|
|
91
91
|
```python
|
|
92
|
+
import asyncio
|
|
93
|
+
|
|
92
94
|
from pydantic import BaseModel
|
|
93
95
|
from ragbits.core.prompt import Prompt
|
|
94
96
|
from ragbits.core.llms.litellm import LiteLLM
|
|
@@ -102,6 +102,7 @@ class LiteLLM(LLM[LiteLLMOptions], LazyLiteLLM):
|
|
|
102
102
|
self.use_structured_output = use_structured_output
|
|
103
103
|
self.router = router
|
|
104
104
|
self.custom_model_cost_config = custom_model_cost_config
|
|
105
|
+
self._cached_router: Router | None = None # Cache for auto-created router
|
|
105
106
|
if custom_model_cost_config:
|
|
106
107
|
self._litellm.register_model(custom_model_cost_config)
|
|
107
108
|
|
|
@@ -315,8 +316,13 @@ class LiteLLM(LLM[LiteLLMOptions], LazyLiteLLM):
|
|
|
315
316
|
stream=True,
|
|
316
317
|
stream_options={"include_usage": True},
|
|
317
318
|
)
|
|
318
|
-
|
|
319
|
-
|
|
319
|
+
|
|
320
|
+
try:
|
|
321
|
+
if (not response.completion_stream and not response.choices) and not response.reasoning: # type: ignore
|
|
322
|
+
raise LLMEmptyResponseError()
|
|
323
|
+
except AttributeError:
|
|
324
|
+
# some providers might not include some parameters (i.e. Gemini -> choices)
|
|
325
|
+
pass
|
|
320
326
|
|
|
321
327
|
async def response_to_async_generator(response: "CustomStreamWrapper") -> AsyncGenerator[dict, None]:
|
|
322
328
|
nonlocal input_tokens, provider_calculated_usage
|
|
@@ -429,11 +435,21 @@ class LiteLLM(LLM[LiteLLMOptions], LazyLiteLLM):
|
|
|
429
435
|
stream: bool = False,
|
|
430
436
|
stream_options: dict | None = None,
|
|
431
437
|
) -> "ModelResponse | CustomStreamWrapper":
|
|
432
|
-
|
|
438
|
+
# Use provided router, or create/reuse cached router
|
|
439
|
+
if self.router:
|
|
440
|
+
entrypoint = self.router
|
|
441
|
+
else:
|
|
442
|
+
# Create router only once and cache it to avoid callback leak
|
|
443
|
+
if self._cached_router is None:
|
|
444
|
+
self._cached_router = self._create_router_from_self_and_options(options)
|
|
445
|
+
entrypoint = self._cached_router
|
|
446
|
+
|
|
447
|
+
# Preprocess messages for Claude with reasoning enabled
|
|
448
|
+
processed_conversation = self._preprocess_messages_for_claude(conversation, options)
|
|
433
449
|
|
|
434
450
|
# Prepare kwargs for the completion call
|
|
435
451
|
completion_kwargs = {
|
|
436
|
-
"messages":
|
|
452
|
+
"messages": processed_conversation,
|
|
437
453
|
"model": self.model_name,
|
|
438
454
|
"response_format": response_format,
|
|
439
455
|
"tools": tools,
|
|
@@ -461,6 +477,101 @@ class LiteLLM(LLM[LiteLLMOptions], LazyLiteLLM):
|
|
|
461
477
|
raise LLMResponseError() from exc
|
|
462
478
|
return response
|
|
463
479
|
|
|
480
|
+
def _preprocess_messages_for_claude(self, conversation: ChatFormat, options: LiteLLMOptions) -> ChatFormat:
|
|
481
|
+
"""
|
|
482
|
+
Preprocess messages for Claude when reasoning is enabled.
|
|
483
|
+
|
|
484
|
+
Claude + reasoning_effort + tool calls creates a conflict:
|
|
485
|
+
- LiteLLM validates messages against OpenAI format (rejects Claude native format)
|
|
486
|
+
- Claude requires thinking blocks when reasoning_effort is set (rejects OpenAI format)
|
|
487
|
+
|
|
488
|
+
Subject to removal after the following are resolved on LiteLLM's side:
|
|
489
|
+
Issue: https://github.com/BerriAI/litellm/issues/14194
|
|
490
|
+
Linked PR(s): https://github.com/BerriAI/litellm/pull/15220
|
|
491
|
+
|
|
492
|
+
Solution: Summarize tool call history and append to last user message.
|
|
493
|
+
This provides context to Claude without triggering validation errors.
|
|
494
|
+
|
|
495
|
+
Args:
|
|
496
|
+
conversation: The conversation in OpenAI format
|
|
497
|
+
options: LLM options including reasoning_effort
|
|
498
|
+
|
|
499
|
+
Returns:
|
|
500
|
+
Processed conversation with tool context included
|
|
501
|
+
"""
|
|
502
|
+
|
|
503
|
+
def create_enhanced_user_message(
|
|
504
|
+
tool_summary_parts: list[str], original_user_msg: str | None
|
|
505
|
+
) -> dict[str, Any]:
|
|
506
|
+
if tool_summary_parts and original_user_msg:
|
|
507
|
+
enhanced_message = original_user_msg
|
|
508
|
+
enhanced_message += "\n\n[Previous tool calls in this conversation:"
|
|
509
|
+
|
|
510
|
+
for summary in tool_summary_parts:
|
|
511
|
+
enhanced_message += f"\n- {summary}"
|
|
512
|
+
enhanced_message += "\nUse this information to provide your final answer.]"
|
|
513
|
+
return {"role": "user", "content": enhanced_message}
|
|
514
|
+
|
|
515
|
+
return {"role": "user", "content": original_user_msg}
|
|
516
|
+
|
|
517
|
+
# Only process for Claude models with reasoning enabled
|
|
518
|
+
is_claude = "anthropic" in self.model_name.lower() or "claude" in self.model_name.lower()
|
|
519
|
+
has_reasoning = options.reasoning_effort is not NOT_GIVEN and options.reasoning_effort is not None
|
|
520
|
+
|
|
521
|
+
if not (is_claude and has_reasoning):
|
|
522
|
+
return conversation
|
|
523
|
+
|
|
524
|
+
# Check if conversation has tool calls
|
|
525
|
+
has_tool_calls = any(msg.get("role") == "assistant" and msg.get("tool_calls") for msg in conversation)
|
|
526
|
+
|
|
527
|
+
if not has_tool_calls:
|
|
528
|
+
# No tool calls, conversation is fine as-is
|
|
529
|
+
return conversation
|
|
530
|
+
|
|
531
|
+
# Build tool call summary from conversation history
|
|
532
|
+
tool_summary_parts = []
|
|
533
|
+
i = 0
|
|
534
|
+
while i < len(conversation):
|
|
535
|
+
msg = conversation[i]
|
|
536
|
+
if msg.get("role") == "assistant" and msg.get("tool_calls"):
|
|
537
|
+
# Found assistant message with tool calls
|
|
538
|
+
for tool_call in msg["tool_calls"]:
|
|
539
|
+
tool_name = tool_call["function"]["name"]
|
|
540
|
+
tool_args = tool_call["function"]["arguments"]
|
|
541
|
+
tool_id = tool_call["id"]
|
|
542
|
+
|
|
543
|
+
# Find corresponding tool result
|
|
544
|
+
tool_result = None
|
|
545
|
+
for j in range(i + 1, len(conversation)):
|
|
546
|
+
if conversation[j].get("role") == "tool" and conversation[j].get("tool_call_id") == tool_id:
|
|
547
|
+
tool_result = conversation[j].get("content")
|
|
548
|
+
break
|
|
549
|
+
|
|
550
|
+
if tool_result:
|
|
551
|
+
tool_summary_parts.append(f"{tool_name}({tool_args}) returned: {tool_result}")
|
|
552
|
+
i += 1
|
|
553
|
+
|
|
554
|
+
# Build processed conversation
|
|
555
|
+
processed = []
|
|
556
|
+
|
|
557
|
+
# Keep system message if present
|
|
558
|
+
for msg in conversation:
|
|
559
|
+
if msg.get("role") == "system":
|
|
560
|
+
processed.append(msg)
|
|
561
|
+
break
|
|
562
|
+
|
|
563
|
+
# Get the original user message (first non-system)
|
|
564
|
+
original_user_msg = None
|
|
565
|
+
for msg in conversation:
|
|
566
|
+
if msg.get("role") == "user":
|
|
567
|
+
original_user_msg = msg.get("content", "")
|
|
568
|
+
break
|
|
569
|
+
|
|
570
|
+
# Create enhanced user message with tool context
|
|
571
|
+
processed.append(create_enhanced_user_message(tool_summary_parts, original_user_msg))
|
|
572
|
+
|
|
573
|
+
return processed
|
|
574
|
+
|
|
464
575
|
def _get_response_format(
|
|
465
576
|
self, output_schema: type[BaseModel] | dict | None, json_mode: bool
|
|
466
577
|
) -> type[BaseModel] | dict | None:
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import re
|
|
2
2
|
from collections.abc import Iterable
|
|
3
3
|
from pathlib import Path
|
|
4
|
-
from typing import ClassVar
|
|
4
|
+
from typing import TYPE_CHECKING, ClassVar, TypeAlias
|
|
5
5
|
|
|
6
6
|
from typing_extensions import Self
|
|
7
7
|
|
|
@@ -10,6 +10,11 @@ from ragbits.core.sources.base import Source, get_local_storage_dir
|
|
|
10
10
|
from ragbits.core.sources.exceptions import SourceConnectionError, SourceNotFoundError
|
|
11
11
|
from ragbits.core.utils.decorators import requires_dependencies
|
|
12
12
|
|
|
13
|
+
if TYPE_CHECKING:
|
|
14
|
+
from datasets import Dataset, DatasetDict, IterableDataset, IterableDatasetDict
|
|
15
|
+
|
|
16
|
+
HFDataset: TypeAlias = Dataset | DatasetDict | IterableDataset | IterableDatasetDict
|
|
17
|
+
|
|
13
18
|
|
|
14
19
|
class HuggingFaceSource(Source):
|
|
15
20
|
"""
|
|
@@ -23,6 +28,7 @@ class HuggingFaceSource(Source):
|
|
|
23
28
|
|
|
24
29
|
protocol: ClassVar[str] = "hf"
|
|
25
30
|
path: str
|
|
31
|
+
name: str | None = None
|
|
26
32
|
split: str = "train"
|
|
27
33
|
row: int | None = None
|
|
28
34
|
|
|
@@ -33,6 +39,32 @@ class HuggingFaceSource(Source):
|
|
|
33
39
|
"""
|
|
34
40
|
return f"hf:{self.path}/{self.split}{f'/{self.row}' if self.row is not None else ''}"
|
|
35
41
|
|
|
42
|
+
def _load_dataset(self, streaming: bool = False) -> "HFDataset":
|
|
43
|
+
"""
|
|
44
|
+
Load the dataset from Hugging Face.
|
|
45
|
+
|
|
46
|
+
Args:
|
|
47
|
+
streaming: Whether to stream the dataset.
|
|
48
|
+
|
|
49
|
+
Returns:
|
|
50
|
+
The loaded dataset.
|
|
51
|
+
|
|
52
|
+
Raises:
|
|
53
|
+
SourceConnectionError: If the source connection fails.
|
|
54
|
+
SourceNotFoundError: If the source dataset is not found.
|
|
55
|
+
"""
|
|
56
|
+
from datasets import load_dataset
|
|
57
|
+
from datasets.exceptions import DatasetNotFoundError
|
|
58
|
+
|
|
59
|
+
try:
|
|
60
|
+
if self.name is not None and str(self.name).strip():
|
|
61
|
+
return load_dataset(self.path, self.name, split=self.split, streaming=streaming)
|
|
62
|
+
return load_dataset(self.path, split=self.split, streaming=streaming)
|
|
63
|
+
except ConnectionError as exc:
|
|
64
|
+
raise SourceConnectionError() from exc
|
|
65
|
+
except DatasetNotFoundError as exc:
|
|
66
|
+
raise SourceNotFoundError(source_id=self.id) from exc
|
|
67
|
+
|
|
36
68
|
@requires_dependencies(["datasets"], "hf")
|
|
37
69
|
async def fetch(self) -> Path:
|
|
38
70
|
"""
|
|
@@ -45,17 +77,9 @@ class HuggingFaceSource(Source):
|
|
|
45
77
|
SourceConnectionError: If the source connection fails.
|
|
46
78
|
SourceNotFoundError: If the source document is not found.
|
|
47
79
|
"""
|
|
48
|
-
from datasets import load_dataset
|
|
49
|
-
from datasets.exceptions import DatasetNotFoundError
|
|
50
|
-
|
|
51
80
|
with trace(path=self.path, split=self.split, row=self.row) as outputs:
|
|
52
81
|
if self.row is not None:
|
|
53
|
-
|
|
54
|
-
dataset = load_dataset(self.path, split=self.split, streaming=True)
|
|
55
|
-
except ConnectionError as exc:
|
|
56
|
-
raise SourceConnectionError() from exc
|
|
57
|
-
except DatasetNotFoundError as exc:
|
|
58
|
-
raise SourceNotFoundError(source_id=self.id) from exc
|
|
82
|
+
dataset = self._load_dataset(streaming=True)
|
|
59
83
|
|
|
60
84
|
try:
|
|
61
85
|
data = next(iter(dataset.skip(self.row).take(1)))
|
|
@@ -78,13 +102,7 @@ class HuggingFaceSource(Source):
|
|
|
78
102
|
path = source_dir / f"{self.split}.json"
|
|
79
103
|
|
|
80
104
|
if not path.is_file():
|
|
81
|
-
|
|
82
|
-
dataset = load_dataset(self.path, split=self.split)
|
|
83
|
-
except ConnectionError as exc:
|
|
84
|
-
raise SourceConnectionError() from exc
|
|
85
|
-
except DatasetNotFoundError as exc:
|
|
86
|
-
raise SourceNotFoundError(source_id=self.id) from exc
|
|
87
|
-
|
|
105
|
+
dataset = self._load_dataset(streaming=False)
|
|
88
106
|
dataset.to_json(path)
|
|
89
107
|
outputs.path = path
|
|
90
108
|
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{ragbits_core-1.4.0.dev202509220622 → ragbits_core-1.4.0.dev202512151244}/src/ragbits/core/cli.py
RENAMED
|
File without changes
|
{ragbits_core-1.4.0.dev202509220622 → ragbits_core-1.4.0.dev202512151244}/src/ragbits/core/config.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{ragbits_core-1.4.0.dev202509220622 → ragbits_core-1.4.0.dev202512151244}/src/ragbits/core/py.typed
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{ragbits_core-1.4.0.dev202509220622 → ragbits_core-1.4.0.dev202512151244}/src/ragbits/core/types.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{ragbits_core-1.4.0.dev202509220622 → ragbits_core-1.4.0.dev202512151244}/tests/assets/img/test.png
RENAMED
|
File without changes
|
{ragbits_core-1.4.0.dev202509220622 → ragbits_core-1.4.0.dev202512151244}/tests/assets/img/test2.jpg
RENAMED
|
File without changes
|
{ragbits_core-1.4.0.dev202509220622 → ragbits_core-1.4.0.dev202512151244}/tests/assets/md/bar.md
RENAMED
|
File without changes
|
{ragbits_core-1.4.0.dev202509220622 → ragbits_core-1.4.0.dev202512151244}/tests/assets/md/foo.md
RENAMED
|
File without changes
|
{ragbits_core-1.4.0.dev202509220622 → ragbits_core-1.4.0.dev202512151244}/tests/cli/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{ragbits_core-1.4.0.dev202509220622 → ragbits_core-1.4.0.dev202512151244}/tests/unit/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{ragbits_core-1.4.0.dev202509220622 → ragbits_core-1.4.0.dev202512151244}/tests/unit/test_options.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|