oracle-haystack 0.1.0__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.
@@ -0,0 +1,146 @@
1
+ # Byte-compiled / optimized / DLL files
2
+ __pycache__/
3
+ *.py[cod]
4
+ *$py.class
5
+
6
+ # C extensions
7
+ *.so
8
+
9
+ # Distribution / packaging
10
+ .Python
11
+ build/
12
+ develop-eggs/
13
+ dist/
14
+ downloads/
15
+ eggs/
16
+ .eggs/
17
+ lib/
18
+ lib64/
19
+ parts/
20
+ sdist/
21
+ var/
22
+ wheels/
23
+ pip-wheel-metadata/
24
+ share/python-wheels/
25
+ *.egg-info/
26
+ .installed.cfg
27
+ *.egg
28
+ MANIFEST
29
+
30
+ # PyInstaller
31
+ # Usually these files are written by a python script from a template
32
+ # before PyInstaller builds the exe, so as to inject date/other infos into it.
33
+ *.manifest
34
+ *.spec
35
+
36
+ # Installer logs
37
+ pip-log.txt
38
+ pip-delete-this-directory.txt
39
+
40
+ # Unit test / coverage reports
41
+ htmlcov/
42
+ .tox/
43
+ .nox/
44
+ .coverage
45
+ .coverage.*
46
+ .cache
47
+ nosetests.xml
48
+ coverage.xml
49
+ *.cover
50
+ *.py,cover
51
+ .hypothesis/
52
+ .pytest_cache/
53
+ volumes/
54
+
55
+ # Translations
56
+ *.mo
57
+ *.pot
58
+
59
+ # Django stuff:
60
+ *.log
61
+ local_settings.py
62
+ db.sqlite3
63
+ db.sqlite3-journal
64
+
65
+ # Flask stuff:
66
+ instance/
67
+ .webassets-cache
68
+
69
+ # Scrapy stuff:
70
+ .scrapy
71
+
72
+ # Sphinx documentation
73
+ docs/_build/
74
+
75
+ # PyBuilder
76
+ target/
77
+
78
+ # Jupyter Notebook
79
+ .ipynb_checkpoints
80
+
81
+ # IPython
82
+ profile_default/
83
+ ipython_config.py
84
+
85
+ # pyenv
86
+ .python-version
87
+
88
+ # pipenv
89
+ # According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control.
90
+ # However, in case of collaboration, if having platform-specific dependencies or dependencies
91
+ # having no cross-platform support, pipenv may install dependencies that don't work, or not
92
+ # install all needed dependencies.
93
+ #Pipfile.lock
94
+
95
+ # PEP 582; used by e.g. github.com/David-OConnor/pyflow
96
+ __pypackages__/
97
+
98
+ # Celery stuff
99
+ celerybeat-schedule
100
+ celerybeat.pid
101
+
102
+ # SageMath parsed files
103
+ *.sage.py
104
+
105
+ # Environments
106
+ .env
107
+ .venv
108
+ env/
109
+ venv/
110
+ ENV/
111
+ env.bak/
112
+ venv.bak/
113
+
114
+ # Spyder project settings
115
+ .spyderproject
116
+ .spyproject
117
+
118
+ # Rope project settings
119
+ .ropeproject
120
+
121
+ # mkdocs documentation
122
+ /site
123
+
124
+ # mypy
125
+ .mypy_cache/
126
+ .dmypy.json
127
+ dmypy.json
128
+
129
+ # Pyre type checker
130
+ .pyre/
131
+
132
+ # IDEs
133
+ .vscode
134
+
135
+ # Docs generation artifacts
136
+ _readme_*.md
137
+ .idea
138
+
139
+ # macOS
140
+ .DS_Store
141
+
142
+ # http cache (requests-cache)
143
+ **/http_cache.sqlite
144
+
145
+ # ruff
146
+ .ruff_cache
@@ -0,0 +1,18 @@
1
+ # Changelog
2
+
3
+ ## [integrations/oracle-v0.1.0] - 2026-04-15
4
+
5
+ ### 🚀 Features
6
+
7
+ - Initial release of `oracle-haystack` — Haystack DocumentStore backed by Oracle AI Vector Search (Oracle Database 23ai+)
8
+ - `OracleDocumentStore`: write, filter, count, and delete documents; embedding retrieval with COSINE/DOT_PRODUCT/EUCLIDEAN distance metrics
9
+ - `OracleEmbeddingRetriever`: synchronous and asynchronous embedding-based retrieval with `FilterPolicy` support
10
+ - `OracleConnectionConfig`: thin-mode (direct TCP) and thick-mode (wallet / ADB-S) connection configuration
11
+ - Optional HNSW vector index creation (`create_index=True`) with configurable neighbours, ef-construction, accuracy, and parallelism
12
+ - Connection pool managed via `oracledb.create_pool`; async operations offloaded with `asyncio.run_in_executor`
13
+
14
+ ### 🧪 Testing
15
+
16
+ - Unit tests for `OracleDocumentStore`, `OracleEmbeddingRetriever`, and `FilterTranslator`
17
+ - Integration test suite using a live Oracle 23ai Free instance (Docker-compose provided)
18
+ - CI workflow (`.github/workflows/oracle.yml`) covering lint, unit tests, integration tests, and nightly Haystack-main compatibility checks
@@ -0,0 +1,144 @@
1
+ Metadata-Version: 2.4
2
+ Name: oracle-haystack
3
+ Version: 0.1.0
4
+ Summary: Oracle AI Vector Search DocumentStore integration for Haystack
5
+ Project-URL: Source Code, https://github.com/deepset-ai/haystack-core-integrations/tree/main/integrations/oracle
6
+ Project-URL: Bug Tracker, https://github.com/deepset-ai/haystack-core-integrations/issues
7
+ Author-email: deepset GmbH <info@deepset.ai>
8
+ License-Expression: Apache-2.0
9
+ Keywords: OCI,RAG,document store,haystack,oracle,vector search
10
+ Classifier: Development Status :: 3 - Alpha
11
+ Classifier: License :: OSI Approved :: Apache Software License
12
+ Classifier: Programming Language :: Python
13
+ Classifier: Programming Language :: Python :: 3.10
14
+ Classifier: Programming Language :: Python :: 3.11
15
+ Classifier: Programming Language :: Python :: 3.12
16
+ Classifier: Programming Language :: Python :: 3.13
17
+ Classifier: Programming Language :: Python :: Implementation :: CPython
18
+ Requires-Python: >=3.10
19
+ Requires-Dist: haystack-ai>=2.26.1
20
+ Requires-Dist: oracledb<3.0.0,>=2.1.0
21
+ Provides-Extra: dev
22
+ Requires-Dist: mypy>=1.9.0; extra == 'dev'
23
+ Requires-Dist: pytest-asyncio>=0.23.0; extra == 'dev'
24
+ Requires-Dist: pytest>=8.0.0; extra == 'dev'
25
+ Requires-Dist: ruff>=0.4.0; extra == 'dev'
26
+ Description-Content-Type: text/markdown
27
+
28
+ # oracle-haystack
29
+
30
+ [![PyPI - Version](https://img.shields.io/pypi/v/oracle-haystack.svg)](https://pypi.org/project/oracle-haystack)
31
+ [![PyPI - Python Version](https://img.shields.io/pypi/pyversions/oracle-haystack.svg)](https://pypi.org/project/oracle-haystack)
32
+
33
+ Haystack DocumentStore backed by [Oracle AI Vector Search](https://www.oracle.com/database/ai-vector-search/), available in Oracle Database 23ai and later.
34
+
35
+ - [Changelog](https://github.com/deepset-ai/haystack-core-integrations/blob/main/integrations/oracle/CHANGELOG.md)
36
+
37
+ ---
38
+
39
+ ## Installation
40
+
41
+ ```bash
42
+ pip install oracle-haystack
43
+ ```
44
+
45
+ Requires Python 3.10+ and Oracle Database 23ai (or later). No Oracle Instant Client is needed for direct TCP connections (thin mode).
46
+
47
+ ## Usage
48
+
49
+ ```python
50
+ from haystack.utils import Secret
51
+ from haystack_integrations.document_stores.oracle import OracleConnectionConfig, OracleDocumentStore
52
+ from haystack_integrations.components.retrievers.oracle import OracleEmbeddingRetriever
53
+
54
+ # Configure the connection
55
+ config = OracleConnectionConfig(
56
+ user=Secret.from_env_var("ORACLE_USER"),
57
+ password=Secret.from_env_var("ORACLE_PASSWORD"),
58
+ dsn=Secret.from_env_var("ORACLE_DSN"),
59
+ )
60
+
61
+ # Create the document store
62
+ store = OracleDocumentStore(
63
+ connection_config=config,
64
+ table_name="my_documents",
65
+ embedding_dim=768,
66
+ distance_metric="COSINE",
67
+ create_table_if_not_exists=True,
68
+ )
69
+
70
+ # Write documents
71
+ from haystack.dataclasses import Document
72
+ store.write_documents([
73
+ Document(content="Oracle 23ai supports native vector search."),
74
+ ])
75
+
76
+ # Retrieve by embedding
77
+ retriever = OracleEmbeddingRetriever(document_store=store, top_k=5)
78
+ results = retriever.run(query_embedding=[0.1] * 768)
79
+ print(results["documents"])
80
+ ```
81
+
82
+ ### Connecting to Oracle Autonomous Database (ADB-S / wallet)
83
+
84
+ ```python
85
+ config = OracleConnectionConfig(
86
+ user=Secret.from_env_var("ORACLE_USER"),
87
+ password=Secret.from_env_var("ORACLE_PASSWORD"),
88
+ dsn=Secret.from_env_var("ORACLE_DSN"),
89
+ wallet_location="/path/to/wallet",
90
+ wallet_password=Secret.from_env_var("WALLET_PASSWORD"),
91
+ )
92
+ ```
93
+
94
+ ### Optional HNSW index
95
+
96
+ Pass `create_index=True` when constructing the store to build an HNSW vector index, which dramatically speeds up approximate nearest-neighbour search on large collections:
97
+
98
+ ```python
99
+ store = OracleDocumentStore(
100
+ connection_config=config,
101
+ table_name="my_documents",
102
+ embedding_dim=768,
103
+ create_index=True,
104
+ hnsw_neighbors=32,
105
+ hnsw_ef_construction=200,
106
+ hnsw_accuracy=95,
107
+ )
108
+ ```
109
+
110
+ ## Contributing
111
+
112
+ Refer to the general [Contribution Guidelines](https://github.com/deepset-ai/haystack-core-integrations/blob/main/CONTRIBUTING.md).
113
+
114
+ ### Running tests
115
+
116
+ #### Unit tests
117
+
118
+ ```bash
119
+ PYTHONPATH=src hatch run test:unit -vvv
120
+ ```
121
+
122
+ #### Integration tests against a live Oracle instance
123
+
124
+ Set `ORACLE_USER`, `ORACLE_PASSWORD`, and `ORACLE_DSN` environment variables to point at your Oracle 23ai instance, then:
125
+
126
+ ```bash
127
+ PYTHONPATH=src hatch run test:integration -vvv
128
+ ```
129
+
130
+ #### Integration tests via Docker (local Oracle 23ai Free)
131
+
132
+ A `docker-compose.yml` is provided that runs [`gvenzl/oracle-free:23-slim`](https://hub.docker.com/r/gvenzl/oracle-free) (Oracle Database 23ai Free edition).
133
+
134
+ ```bash
135
+ docker compose up -d --wait
136
+ ```
137
+
138
+ `--wait` blocks until the Oracle healthcheck passes (the first boot takes 2–4 minutes while Oracle initialises its data files).
139
+
140
+ Run the full integration test suite:
141
+
142
+ ```bash
143
+ PYTHONPATH=src hatch run test:integration -vvv
144
+ ```
@@ -0,0 +1,117 @@
1
+ # oracle-haystack
2
+
3
+ [![PyPI - Version](https://img.shields.io/pypi/v/oracle-haystack.svg)](https://pypi.org/project/oracle-haystack)
4
+ [![PyPI - Python Version](https://img.shields.io/pypi/pyversions/oracle-haystack.svg)](https://pypi.org/project/oracle-haystack)
5
+
6
+ Haystack DocumentStore backed by [Oracle AI Vector Search](https://www.oracle.com/database/ai-vector-search/), available in Oracle Database 23ai and later.
7
+
8
+ - [Changelog](https://github.com/deepset-ai/haystack-core-integrations/blob/main/integrations/oracle/CHANGELOG.md)
9
+
10
+ ---
11
+
12
+ ## Installation
13
+
14
+ ```bash
15
+ pip install oracle-haystack
16
+ ```
17
+
18
+ Requires Python 3.10+ and Oracle Database 23ai (or later). No Oracle Instant Client is needed for direct TCP connections (thin mode).
19
+
20
+ ## Usage
21
+
22
+ ```python
23
+ from haystack.utils import Secret
24
+ from haystack_integrations.document_stores.oracle import OracleConnectionConfig, OracleDocumentStore
25
+ from haystack_integrations.components.retrievers.oracle import OracleEmbeddingRetriever
26
+
27
+ # Configure the connection
28
+ config = OracleConnectionConfig(
29
+ user=Secret.from_env_var("ORACLE_USER"),
30
+ password=Secret.from_env_var("ORACLE_PASSWORD"),
31
+ dsn=Secret.from_env_var("ORACLE_DSN"),
32
+ )
33
+
34
+ # Create the document store
35
+ store = OracleDocumentStore(
36
+ connection_config=config,
37
+ table_name="my_documents",
38
+ embedding_dim=768,
39
+ distance_metric="COSINE",
40
+ create_table_if_not_exists=True,
41
+ )
42
+
43
+ # Write documents
44
+ from haystack.dataclasses import Document
45
+ store.write_documents([
46
+ Document(content="Oracle 23ai supports native vector search."),
47
+ ])
48
+
49
+ # Retrieve by embedding
50
+ retriever = OracleEmbeddingRetriever(document_store=store, top_k=5)
51
+ results = retriever.run(query_embedding=[0.1] * 768)
52
+ print(results["documents"])
53
+ ```
54
+
55
+ ### Connecting to Oracle Autonomous Database (ADB-S / wallet)
56
+
57
+ ```python
58
+ config = OracleConnectionConfig(
59
+ user=Secret.from_env_var("ORACLE_USER"),
60
+ password=Secret.from_env_var("ORACLE_PASSWORD"),
61
+ dsn=Secret.from_env_var("ORACLE_DSN"),
62
+ wallet_location="/path/to/wallet",
63
+ wallet_password=Secret.from_env_var("WALLET_PASSWORD"),
64
+ )
65
+ ```
66
+
67
+ ### Optional HNSW index
68
+
69
+ Pass `create_index=True` when constructing the store to build an HNSW vector index, which dramatically speeds up approximate nearest-neighbour search on large collections:
70
+
71
+ ```python
72
+ store = OracleDocumentStore(
73
+ connection_config=config,
74
+ table_name="my_documents",
75
+ embedding_dim=768,
76
+ create_index=True,
77
+ hnsw_neighbors=32,
78
+ hnsw_ef_construction=200,
79
+ hnsw_accuracy=95,
80
+ )
81
+ ```
82
+
83
+ ## Contributing
84
+
85
+ Refer to the general [Contribution Guidelines](https://github.com/deepset-ai/haystack-core-integrations/blob/main/CONTRIBUTING.md).
86
+
87
+ ### Running tests
88
+
89
+ #### Unit tests
90
+
91
+ ```bash
92
+ PYTHONPATH=src hatch run test:unit -vvv
93
+ ```
94
+
95
+ #### Integration tests against a live Oracle instance
96
+
97
+ Set `ORACLE_USER`, `ORACLE_PASSWORD`, and `ORACLE_DSN` environment variables to point at your Oracle 23ai instance, then:
98
+
99
+ ```bash
100
+ PYTHONPATH=src hatch run test:integration -vvv
101
+ ```
102
+
103
+ #### Integration tests via Docker (local Oracle 23ai Free)
104
+
105
+ A `docker-compose.yml` is provided that runs [`gvenzl/oracle-free:23-slim`](https://hub.docker.com/r/gvenzl/oracle-free) (Oracle Database 23ai Free edition).
106
+
107
+ ```bash
108
+ docker compose up -d --wait
109
+ ```
110
+
111
+ `--wait` blocks until the Oracle healthcheck passes (the first boot takes 2–4 minutes while Oracle initialises its data files).
112
+
113
+ Run the full integration test suite:
114
+
115
+ ```bash
116
+ PYTHONPATH=src hatch run test:integration -vvv
117
+ ```
@@ -0,0 +1,18 @@
1
+ services:
2
+ oracle:
3
+ image: gvenzl/oracle-free:23-slim
4
+ ports:
5
+ - 1521:1521
6
+ environment:
7
+ - ORACLE_PASSWORD=haystack
8
+ - APP_USER=haystack
9
+ - APP_USER_PASSWORD=haystack
10
+ - ORACLE_INIT_PARAMS=vector_memory_size=512M
11
+ volumes:
12
+ - ./init:/container-entrypoint-initdb.d
13
+ healthcheck:
14
+ test: ["CMD", "healthcheck.sh"]
15
+ interval: 10s
16
+ timeout: 5s
17
+ retries: 20
18
+ start_period: 30s
@@ -0,0 +1,7 @@
1
+ -- Enable vector memory pool required for HNSW in-memory vector indexes.
2
+ -- This script runs at container startup via /container-entrypoint-initdb.d.
3
+ -- The primary mechanism is ORACLE_INIT_PARAMS=vector_memory_size=512M in
4
+ -- docker-compose.yml (writes to SPFILE at DB creation time). This ALTER
5
+ -- SYSTEM acts as a belt-and-suspenders dynamic setter for pre-existing
6
+ -- database volumes where the SPFILE value may not have been written yet.
7
+ ALTER SYSTEM SET vector_memory_size = 512M SCOPE=BOTH;
@@ -0,0 +1,14 @@
1
+ loaders:
2
+ - modules:
3
+ - haystack_integrations.components.retrievers.oracle.embedding_retriever
4
+ - haystack_integrations.document_stores.oracle.document_store
5
+ search_path: [../src]
6
+ processors:
7
+ - type: filter
8
+ documented_only: true
9
+ skip_empty_modules: true
10
+ renderer:
11
+ description: Oracle AI Vector Search integration for Haystack
12
+ id: integrations-oracle
13
+ filename: oracle.md
14
+ title: Oracle AI Vector Search
@@ -0,0 +1,173 @@
1
+ [build-system]
2
+ requires = ["hatchling", "hatch-vcs"]
3
+ build-backend = "hatchling.build"
4
+
5
+ [project]
6
+ name = "oracle-haystack"
7
+ dynamic = ["version"]
8
+ description = "Oracle AI Vector Search DocumentStore integration for Haystack"
9
+ readme = "README.md"
10
+ requires-python = ">=3.10"
11
+ license = "Apache-2.0"
12
+ keywords = ["haystack", "oracle", "vector search", "document store", "RAG", "OCI"]
13
+ authors = [{ name = "deepset GmbH", email = "info@deepset.ai" }]
14
+ classifiers = [
15
+ "License :: OSI Approved :: Apache Software License",
16
+ "Development Status :: 3 - Alpha",
17
+ "Programming Language :: Python",
18
+ "Programming Language :: Python :: 3.10",
19
+ "Programming Language :: Python :: 3.11",
20
+ "Programming Language :: Python :: 3.12",
21
+ "Programming Language :: Python :: 3.13",
22
+ "Programming Language :: Python :: Implementation :: CPython",
23
+ ]
24
+ dependencies = [
25
+ "haystack-ai>=2.26.1",
26
+ "oracledb>=2.1.0,<3.0.0",
27
+ ]
28
+
29
+ [project.optional-dependencies]
30
+ dev = [
31
+ "pytest>=8.0.0",
32
+ "pytest-asyncio>=0.23.0",
33
+ "ruff>=0.4.0",
34
+ "mypy>=1.9.0",
35
+ ]
36
+
37
+ [project.urls]
38
+ "Source Code" = "https://github.com/deepset-ai/haystack-core-integrations/tree/main/integrations/oracle"
39
+ "Bug Tracker" = "https://github.com/deepset-ai/haystack-core-integrations/issues"
40
+
41
+ [tool.hatch.version]
42
+ source = "vcs"
43
+ tag-pattern = 'integrations\/oracle-v(?P<version>.*)'
44
+ fallback-version = "0.1.0"
45
+
46
+ [tool.hatch.version.raw-options]
47
+ root = "../.."
48
+ git_describe_command = 'git describe --tags --match="integrations/oracle-v[0-9]*"'
49
+
50
+ [tool.hatch.build.targets.wheel]
51
+ packages = ["src/haystack_integrations"]
52
+
53
+ [tool.hatch.envs.default]
54
+ installer = "uv"
55
+ dependencies = ["haystack-pydoc-tools", "ruff"]
56
+
57
+ [tool.hatch.envs.default.scripts]
58
+ docs = ["haystack-pydoc pydoc/config_docusaurus.yml"]
59
+ fmt = "ruff check --fix {args}; ruff format {args}"
60
+ fmt-check = "ruff check {args} && ruff format --check {args}"
61
+
62
+ [tool.hatch.envs.test]
63
+ dependencies = [
64
+ "pytest",
65
+ "pytest-asyncio",
66
+ "pytest-cov",
67
+ "pytest-rerunfailures",
68
+ "mypy",
69
+ "pip",
70
+ ]
71
+
72
+ [tool.hatch.envs.test.scripts]
73
+ unit = 'pytest -m "not integration" {args:tests}'
74
+ integration = 'pytest -m "integration" {args:tests}'
75
+ all = 'pytest {args:tests}'
76
+ unit-cov-retry = 'pytest --cov=haystack_integrations --reruns 3 --reruns-delay 30 -x -m "not integration" {args:tests}'
77
+ integration-cov-append-retry = 'pytest --cov=haystack_integrations --cov-append --reruns 3 --reruns-delay 30 -x -m "integration" {args:tests}'
78
+ types = "mypy -p haystack_integrations.document_stores.oracle -p haystack_integrations.components.retrievers.oracle {args}"
79
+
80
+
81
+ [tool.pytest.ini_options]
82
+ minversion = "6.0"
83
+ markers = ["unit: unit tests", "integration: integration tests"]
84
+ asyncio_mode = "auto"
85
+ asyncio_default_fixture_loop_scope = "class"
86
+
87
+ [tool.ruff]
88
+ line-length = 120
89
+
90
+ [tool.ruff.lint]
91
+ select = [
92
+ "A",
93
+ "ANN",
94
+ "ARG",
95
+ "B",
96
+ "C",
97
+ "D102", # Missing docstring in public method
98
+ "D103", # Missing docstring in public function
99
+ "D205", # 1 blank line required between summary line and description
100
+ "D209", # Closing triple quotes go to new line
101
+ "D213", # summary lines must be positioned on the second physical line of the docstring
102
+ "D417", # Missing argument descriptions in the docstring
103
+ "D419", # Docstring is empty
104
+ "DTZ",
105
+ "E",
106
+ "EM",
107
+ "F",
108
+ "FBT",
109
+ "I",
110
+ "ICN",
111
+ "ISC",
112
+ "N",
113
+ "PLC",
114
+ "PLE",
115
+ "PLR",
116
+ "PLW",
117
+ "Q",
118
+ "RUF",
119
+ "S",
120
+ "T",
121
+ "TID",
122
+ "UP",
123
+ "W",
124
+ "YTT",
125
+ ]
126
+ ignore = [
127
+ # Allow non-abstract empty methods in abstract base classes
128
+ "B027",
129
+ # Allow boolean positional values in function calls, like `dict.get(... True)`
130
+ "FBT003",
131
+ # Ignore checks for possible passwords
132
+ "S105",
133
+ "S106",
134
+ "S107",
135
+ # Ignore complexity
136
+ "C901",
137
+ "PLR0911",
138
+ "PLR0912",
139
+ "PLR0913",
140
+ "PLR0915",
141
+ # Allow `Any` - used legitimately for dynamic types and SDK boundaries
142
+ "ANN401",
143
+ # SQL is built from developer-supplied, regex-validated identifiers (table_name,
144
+ # distance_metric, embedding_dim); all user data is bound via named parameters.
145
+ "S608",
146
+ ]
147
+
148
+ [tool.ruff.lint.isort]
149
+ known-first-party = ["haystack_integrations"]
150
+
151
+ [tool.ruff.lint.flake8-tidy-imports]
152
+ ban-relative-imports = "parents"
153
+
154
+ [tool.ruff.lint.per-file-ignores]
155
+ # Tests can use magic values, assertions, relative imports, and don't need type annotations
156
+ "tests/**/*" = ["D", "PLR2004", "S101", "TID252", "ANN"]
157
+
158
+ [tool.coverage.run]
159
+ source = ["haystack_integrations"]
160
+ branch = true
161
+ relative_files = true
162
+ parallel = false
163
+
164
+ [tool.coverage.report]
165
+ omit = ["*/tests/*", "*/__init__.py"]
166
+ show_missing = true
167
+ exclude_lines = ["no cov", "if __name__ == .__main__.:", "if TYPE_CHECKING:"]
168
+
169
+ [tool.mypy]
170
+ install_types = true
171
+ non_interactive = true
172
+ check_untyped_defs = true
173
+ disallow_incomplete_defs = true
@@ -0,0 +1,7 @@
1
+ # SPDX-FileCopyrightText: 2023-present deepset GmbH <info@deepset.ai>
2
+ #
3
+ # SPDX-License-Identifier: Apache-2.0
4
+
5
+ from haystack_integrations.components.retrievers.oracle.embedding_retriever import OracleEmbeddingRetriever
6
+
7
+ __all__ = ["OracleEmbeddingRetriever"]