IGNITE-27988 DB API Driver: Move project directory#7678
Merged
Conversation
There was a problem hiding this comment.
Pull request overview
Moves the Apache Ignite 3 Python DB API driver into modules/platforms/python/dbapi and updates packaging, CI, docs, and tests to match the new project layout.
Changes:
- Adds/relocates the Python DB API driver package (
pyignite_dbapi) plus its native extension sources (cpp_module) under the new directory. - Introduces a full pytest-based test suite (including SSL fixtures) and a tox configuration for running it.
- Updates build/CI wiring (Gradle version bump path, TeamCity working dir, GitHub Actions wheels workflow) and adds wheel/sdist build scripts + Sphinx docs.
Reviewed changes
Copilot reviewed 5 out of 61 changed files in this pull request and generated no comments.
Show a summary per file
| File | Description |
|---|---|
| modules/platforms/python/dbapi/tox.ini | Adds tox config for running driver tests in the new location. |
| modules/platforms/python/dbapi/tests/util.py | Test helpers for starting/probing Ignite and creating test data. |
| modules/platforms/python/dbapi/tests/test_transactions.py | Adds transaction/autocommit behavior tests. |
| modules/platforms/python/dbapi/tests/test_ssl.py | Adds SSL connection tests and flaky/skip-marked paging test. |
| modules/platforms/python/dbapi/tests/test_fetch_table.py | Adds fetchone/fetchmany/fetchall paging tests. |
| modules/platforms/python/dbapi/tests/test_fetch_parameters.py | Adds parameter binding/roundtrip tests for many types. |
| modules/platforms/python/dbapi/tests/test_fetch_constants.py | Adds tests for fetching SQL constants and type mapping. |
| modules/platforms/python/dbapi/tests/test_executemany.py | Adds executemany behavior test. |
| modules/platforms/python/dbapi/tests/test_execute.py | Adds execute/description/rowcount behavior tests. |
| modules/platforms/python/dbapi/tests/test_errors.py | Adds error mapping/exception type tests. |
| modules/platforms/python/dbapi/tests/test_dbapi_compliance.py | Integrates dbapi-compliance suite with driver. |
| modules/platforms/python/dbapi/tests/test_connect.py | Adds connection argument validation + heartbeat tests. |
| modules/platforms/python/dbapi/tests/ssl/client_unknown.pem | Test TLS client cert/key fixture. |
| modules/platforms/python/dbapi/tests/ssl/client.pem | Test TLS client cert/key fixture. |
| modules/platforms/python/dbapi/tests/ssl/ca.pem | Test TLS CA cert fixture. |
| modules/platforms/python/dbapi/tests/conftest.py | Adds pytest fixtures for cluster, connections, cursors, cleanup. |
| modules/platforms/python/dbapi/tests/init.py | Marks tests as a package. |
| modules/platforms/python/dbapi/setup.py | Updates package metadata URL for new directory. |
| modules/platforms/python/dbapi/scripts/create_sdist.sh | Adds docker-oriented sdist build helper. |
| modules/platforms/python/dbapi/scripts/create_distr.sh | Adds docker-based wheels+sdist build orchestration. |
| modules/platforms/python/dbapi/scripts/build_wheels.sh | Adds manylinux wheel build + auditwheel repair script. |
| modules/platforms/python/dbapi/scripts/Dockerfile | Defines wheel-build image dependencies. |
| modules/platforms/python/dbapi/scripts/BuildWheels.ps1 | Adds Windows wheel build script using pyenv-win. |
| modules/platforms/python/dbapi/requirements/tests.txt | Adds pinned test dependencies. |
| modules/platforms/python/dbapi/requirements/install.txt | Adds pinned runtime dependencies. |
| modules/platforms/python/dbapi/requirements/docs.txt | Adds docs build dependencies (Sphinx). |
| modules/platforms/python/dbapi/pyignite_dbapi/native_type_code.py | Defines native type codes used for mapping. |
| modules/platforms/python/dbapi/pyignite_dbapi/_version.txt | Adds driver version file in new location. |
| modules/platforms/python/dbapi/pyignite_dbapi/init.py | Provides the PEP-249 surface API and type constructors. |
| modules/platforms/python/dbapi/docs/make.bat | Adds Windows Sphinx build entry point. |
| modules/platforms/python/dbapi/docs/index.rst | Adds Sphinx API reference docs. |
| modules/platforms/python/dbapi/docs/conf.py | Adds Sphinx configuration for the driver docs. |
| modules/platforms/python/dbapi/docs/_static/Apache_Ignite_logo_128x128.png | Adds docs favicon/logo asset. |
| modules/platforms/python/dbapi/docs/Makefile | Adds Unix Sphinx build entry point. |
| modules/platforms/python/dbapi/cpp_module/utils.h | Declares Python/C++ glue helpers for errors/types. |
| modules/platforms/python/dbapi/cpp_module/utils.cpp | Implements Python/C++ glue helpers for errors/types. |
| modules/platforms/python/dbapi/cpp_module/type_conversion.h | Implements primitive<->PyObject conversions. |
| modules/platforms/python/dbapi/cpp_module/statement.h | Declares SQL statement execution/page fetching logic. |
| modules/platforms/python/dbapi/cpp_module/statement.cpp | Implements SQL exec/batch exec, paging, param writing. |
| modules/platforms/python/dbapi/cpp_module/ssl_config.h | Adds SSL config container for connections. |
| modules/platforms/python/dbapi/cpp_module/result_page.h | Adds result page container for cursor paging. |
| modules/platforms/python/dbapi/cpp_module/py_string.h | Adds small wrapper for UTF-8 extraction from Py objects. |
| modules/platforms/python/dbapi/cpp_module/py_object.h | Adds RAII wrapper around PyObject*. |
| modules/platforms/python/dbapi/cpp_module/py_cursor.h | Declares native PyCursor object interface. |
| modules/platforms/python/dbapi/cpp_module/py_cursor.cpp | Implements native cursor methods (execute/fetch/metadata). |
| modules/platforms/python/dbapi/cpp_module/py_connection.h | Declares native PyConnection object interface. |
| modules/platforms/python/dbapi/cpp_module/py_connection.cpp | Implements native connection methods (cursor/tx/autocommit). |
| modules/platforms/python/dbapi/cpp_module/node_connection.h | Implements protocol/network connection + heartbeats/tx. |
| modules/platforms/python/dbapi/cpp_module/module.h | Defines module naming constants for extension/module interop. |
| modules/platforms/python/dbapi/cpp_module/module.cpp | Implements extension module init + connect() binding. |
| modules/platforms/python/dbapi/cpp_module/cursor.h | Implements local result cursor over result_page rows. |
| modules/platforms/python/dbapi/cpp_module/CMakeLists.txt | Builds the C++ extension against Ignite C++ libs. |
| modules/platforms/python/dbapi/README.md | Adds project-level usage/build/test/docs instructions. |
| modules/platforms/python/dbapi/NOTICE | Adds project notice for the driver package. |
| modules/platforms/python/dbapi/MANIFEST.in | Defines sdist contents (tests, requirements, cpp sources). |
| modules/platforms/python/dbapi/LICENSE | Adds Apache license header file for the package. |
| modules/platforms/python/dbapi/CMakeLists.txt | Updates Ignite C++ sources path resolution for new layout. |
| modules/platforms/python/dbapi/.gitignore | Adds Python/native build and docs artifacts ignore list. |
| modules/platforms/build.gradle | Updates Python version file path to new directory layout. |
| .teamcity/test/platform_tests/PlatformPythonTestsLinux.kt | Updates TeamCity working directory to new path. |
| .github/workflows/python_dbapi_wheels.yml | Narrows workflow paths and updates wheel build working dir/output paths. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
ptupitsyn
approved these changes
Feb 26, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
https://issues.apache.org/jira/browse/IGNITE-27988