Name | duckdb JSON |
Version |
1.4.1
JSON |
| download |
home_page | None |
Summary | DuckDB in-process database |
upload_time | 2025-10-07 10:37:28 |
maintainer | DuckDB Foundation |
docs_url | None |
author | DuckDB Foundation |
requires_python | >=3.9.0 |
license | None |
keywords |
duckdb
database
sql
olap
|
VCS |
 |
bugtrack_url |
|
requirements |
No requirements were recorded.
|
Travis-CI |
No Travis.
|
coveralls test coverage |
No coveralls.
|
<div align="center">
<picture>
<source media="(prefers-color-scheme: light)" srcset="https://raw.githubusercontent.com/duckdb/duckdb/refs/heads/main/logo/DuckDB_Logo-horizontal.svg">
<source media="(prefers-color-scheme: dark)" srcset="https://raw.githubusercontent.com/duckdb/duckdb/refs/heads/main/logo/DuckDB_Logo-horizontal-dark-mode.svg">
<img alt="DuckDB logo" src="https://raw.githubusercontent.com/duckdb/duckdb/refs/heads/main/logo/DuckDB_Logo-horizontal.svg" height="100">
</picture>
</div>
<br />
<p align="center">
<a href="https://discord.gg/tcvwpjfnZx"><img src="https://shields.io/discord/909674491309850675" alt="Discord" /></a>
<a href="https://pypi.org/project/duckdb/"><img src="https://img.shields.io/pypi/v/duckdb.svg" alt="PyPI Latest Release"/></a>
</p>
<br />
<p align="center">
<a href="https://duckdb.org">DuckDB.org</a>
|
<a href="https://duckdb.org/docs/stable/guides/python/install">User Guide (Python)</a>
-
<a href="https://duckdb.org/docs/stable/clients/python/overview">API Docs (Python)</a>
</p>
# DuckDB: A Fast, In-Process, Portable, Open Source, Analytical Database System
* **Simple**: DuckDB is easy to install and deploy. It has zero external dependencies and runs in-process in its host application or as a single binary.
* **Portable**: DuckDB runs on Linux, macOS, Windows, Android, iOS and all popular hardware architectures. It has idiomatic client APIs for major programming languages.
* **Feature-rich**: DuckDB offers a rich SQL dialect. It can read and write file formats such as CSV, Parquet, and JSON, to and from the local file system and remote endpoints such as S3 buckets.
* **Fast**: DuckDB runs analytical queries at blazing speed thanks to its columnar engine, which supports parallel execution and can process larger-than-memory workloads.
* **Extensible**: DuckDB is extensible by third-party features such as new data types, functions, file formats and new SQL syntax. User contributions are available as community extensions.
* **Free**: DuckDB and its core extensions are open-source under the permissive MIT License. The intellectual property of the project is held by the DuckDB Foundation.
## Installation
Install the latest release of DuckDB directly from [PyPI](https://pypi.org/project/duckdb/):
```bash
pip install duckdb
```
Install with all optional dependencies:
```bash
pip install 'duckdb[all]'
```
## Development
Start by <a href="https://github.com/duckdb/duckdb-python/fork"><svg height="16" viewBox="0 0 16 16" version="1.1" width="16">
<path fill-rule="evenodd" d="M5 3.25a.75.75 0 11-1.5 0 .75.75 0 011.5 0zm0 2.122a2.25 2.25 0 10-1.5 0v.878A2.25 2.25 0 005.75 8.5h1.5v2.128a2.251 2.251 0 101.5 0V8.5h1.5a2.25 2.25 0 002.25-2.25v-.878a2.25 2.25 0 10-1.5 0v.878a.75.75 0 01-.75.75h-4.5A.75.75 0 015 6.25v-.878z"></path>
</svg>forking duckdb-python</a>.
### Cloning
After forking the duckdb-python repo we recommend you clone your fork as follows:
```shell
git clone --recurse-submodules $REPO_URL
git remote add upstream https://github.com/duckdb/duckdb-python.git
git fetch --all
```
... or, if you have already cloned your fork:
```shell
git submodule update --init --recursive
git remote add upstream https://github.com/duckdb/duckdb-python.git
git fetch --all
```
### Submodule update hook
If you'll be switching between branches that are have the submodule set to different refs, then make your life
easier and add the git hooks in the .githooks directory to your git hooks:
```shell
cp .githooks/post-checkout .git/hooks/
```
### Editable installs (general)
It's good to be aware of the following when performing an editable install:
- `uv sync` or `uv run [tool]` perform an editable install by default. We have
configured the project so that scikit-build-core will use a persistent build-dir, but since the build itself
happens in an isolated, ephemeral environment, cmake's paths will point to non-existing directories. CMake itself
will be missing.
- You should install all development dependencies, and then build the project without build isolation, in two separate
steps. After this you can happily keep building and running, as long as you don't forget to pass in the
`--no-build-isolation` flag.
```bash
# install all dev dependencies without building the project (needed once)
uv sync -p 3.11 --no-install-project
# build and install without build isolation
uv sync --no-build-isolation
```
### Editable installs (IDEs)
If you're using an IDE then life is a little simpler. You install build dependencies and the project in the two
steps outlined above, and from that point on you can rely on e.g. CLion's cmake capabilities to do incremental
compilation and editable rebuilds. This will skip scikit-build-core's build backend and all of uv's dependency
management, so for "real" builds you better revert to the CLI. However, this should work fine for coding and debugging.
### Cleaning
```shell
uv cache clean
rm -rf build .venv uv.lock
```
### Building wheels and sdists
To build a wheel and sdist for your system and the default Python version:
```bash
uv build
````
To build a wheel for a different Python version:
```bash
# E.g. for Python 3.9
uv build -p 3.9
```
### Running tests
Run all pytests:
```bash
uv run --no-build-isolation pytest ./tests --verbose
```
Exclude the test/slow directory:
```bash
uv run --no-build-isolation pytest ./tests --verbose --ignore=./tests/slow
```
### Test coverage
Run with coverage (during development you probably want to specify which tests to run):
```bash
COVERAGE=1 uv run --no-build-isolation coverage run -m pytest ./tests --verbose
```
The `COVERAGE` env var will compile the extension with `--coverage`, allowing us to collect coverage stats of C++
code as well as Python code.
Check coverage for Python code:
```bash
uvx coverage html -d htmlcov-python
uvx coverage report --format=markdown
```
Check coverage for C++ code (note: this will clutter your project dir with html files, consider saving them in some
other place):
```bash
uvx gcovr \
--gcov-ignore-errors all \
--root "$PWD" \
--filter "${PWD}/src/duckdb_py" \
--exclude '.*/\.cache/.*' \
--gcov-exclude '.*/\.cache/.*' \
--gcov-exclude '.*/external/.*' \
--gcov-exclude '.*/site-packages/.*' \
--exclude-unreachable-branches \
--exclude-throw-branches \
--html --html-details -o coverage-cpp.html \
build/coverage/src/duckdb_py \
--print-summary
```
### Typechecking and linting
- We're not running any mypy typechecking tests at the moment
- We're not running any Ruff / linting / formatting at the moment
### Cibuildwheel
You can run cibuildwheel locally for Linux. E.g. limited to Python 3.9:
```bash
CIBW_BUILD='cp39-*' uvx cibuildwheel --platform linux .
```
### Code conventions
* Follow the [Google Python styleguide](https://google.github.io/styleguide/pyguide.html)
* See the section on [Comments and Docstrings](https://google.github.io/styleguide/pyguide.html#s3.8-comments-and-docstrings)
### Tooling
This codebase is developed with the following tools:
- [Astral uv](https://docs.astral.sh/uv/) - for dependency management across all platforms we provide wheels for,
and for Python environment management. It will be hard to work on this codebase without having UV installed.
- [Scikit-build-core](https://scikit-build-core.readthedocs.io/en/latest/index.html) - the build backend for
building the extension. On the background, scikit-build-core uses cmake and ninja for compilation.
- [pybind11](https://pybind11.readthedocs.io/en/stable/index.html) - a bridge between C++ and Python.
- [CMake](https://cmake.org/) - the build system for both DuckDB itself and the DuckDB Python module.
- Cibuildwheel
### Merging changes to pythonpkg from duckdb main
1. Checkout main
2Identify the merge commits that brought in tags to main:
```bash
git log --graph --oneline --decorate main --simplify-by-decoration
```
3. Get the log of commits
```bash
git log --oneline 71c5c07cdd..c9254ecff2 -- tools/pythonpkg/
```
4. Checkout v1.3-ossivalis
5. Get the log of commits
```bash
git log --oneline v1.3.0..v1.3.1 -- tools/pythonpkg/
```
git diff --name-status 71c5c07cdd c9254ecff2 -- tools/pythonpkg/
```bash
git log --oneline 71c5c07cdd..c9254ecff2 -- tools/pythonpkg/
git diff --name-status <HASH_A> <HASH_B> -- tools/pythonpkg/
```
## Versioning and Releases
The DuckDB Python package versioning and release scheme follows that of DuckDB itself. This means that a `X.Y.Z[.
postN]` release of the Python package ships the DuckDB stable release `X.Y.Z`. The optional `.postN` releases ship the same stable release of DuckDB as their predecessors plus Python package-specific fixes and / or features.
| Types | DuckDB Version | Resulting Python Extension Version |
|------------------------------------------------------------------------|----------------|------------------------------------|
| Stable release: DuckDB stable release | `1.3.1` | `1.3.1` |
| Stable post release: DuckDB stable release + Python fixes and features | `1.3.1` | `1.3.1.postX` |
| Nightly micro: DuckDB next micro nightly + Python next micro nightly | `1.3.2.devM` | `1.3.2.devN` |
| Nightly minor: DuckDB next minor nightly + Python next minor nightly | `1.4.0.devM` | `1.4.0.devN` |
Note that we do not ship nightly post releases (e.g. we don't ship `1.3.1.post2.dev3`).
### Branch and Tag Strategy
We cut releases as follows:
| Type | Tag | How |
|----------------------|--------------|---------------------------------------------------------------------------------|
| Stable minor release | vX.Y.0 | Adding a tag on `main` |
| Stable micro release | vX.Y.Z | Adding a tag on a minor release branch (e.g. `v1.3-ossivalis`) |
| Stable post release | vX.Y.Z-postN | Adding a tag on a post release branch (e.g. `v1.3.1-post`) |
| Nightly micro | _not tagged_ | Combining HEAD of the _micro_ release branches of DuckDB and the Python package |
| Nightly minor | _not tagged_ | Combining HEAD of the _minor_ release branches of DuckDB and the Python package |
### Release Runbooks
We cut a new **stable minor release** with the following steps:
1. Create a PR on `main` to pin the DuckDB submodule to the tag of its current release.
1. Iff all tests pass in CI, merge the PR.
1. Manually start the release workflow with the hash of this commit, and the tag name.
1. Iff all goes well, create a new PR to let the submodule track DuckDB main.
We cut a new **stable micro release** with the following steps:
1. Create a PR on the minor release branch to pin the DuckDB submodule to the tag of its current release.
1. Iff all tests pass in CI, merge the PR.
1. Manually start the release workflow with the hash of this commit, and the tag name.
1. Iff all goes well, create a new PR to let the submodule track DuckDB's minor release branch.
We cut a new **stable post release** with the following steps:
1. Create a PR on the post release branch to pin the DuckDB submodule to the tag of its current release.
1. Iff all tests pass in CI, merge the PR.
1. Manually start the release workflow with the hash of this commit, and the tag name.
1. Iff all goes well, create a new PR to let the submodule track DuckDB's minor release branch.
### Dynamic Versioning Integration
The package uses `setuptools_scm` with `scikit-build` for automatic version determination, and implements a custom
versioning scheme.
- **pyproject.toml configuration**:
```toml
[tool.scikit-build]
metadata.version.provider = "scikit_build_core.metadata.setuptools_scm"
[tool.setuptools_scm]
version_scheme = "duckdb_packaging._setuptools_scm_version:version_scheme"
```
- **Environment variables**:
- `MAIN_BRANCH_VERSIONING=0`: Use release branch versioning (patch increments)
- `MAIN_BRANCH_VERSIONING=1`: Use main branch versioning (minor increments)
- `OVERRIDE_GIT_DESCRIBE`: Override version detection
Raw data
{
"_id": null,
"home_page": null,
"name": "duckdb",
"maintainer": "DuckDB Foundation",
"docs_url": null,
"requires_python": ">=3.9.0",
"maintainer_email": null,
"keywords": "DuckDB, Database, SQL, OLAP",
"author": "DuckDB Foundation",
"author_email": null,
"download_url": "https://files.pythonhosted.org/packages/ea/e7/21cf50a3d52ffceee1f0bcc3997fa96a5062e6bab705baee4f6c4e33cce5/duckdb-1.4.1.tar.gz",
"platform": null,
"description": "<div align=\"center\">\n <picture>\n <source media=\"(prefers-color-scheme: light)\" srcset=\"https://raw.githubusercontent.com/duckdb/duckdb/refs/heads/main/logo/DuckDB_Logo-horizontal.svg\">\n <source media=\"(prefers-color-scheme: dark)\" srcset=\"https://raw.githubusercontent.com/duckdb/duckdb/refs/heads/main/logo/DuckDB_Logo-horizontal-dark-mode.svg\">\n <img alt=\"DuckDB logo\" src=\"https://raw.githubusercontent.com/duckdb/duckdb/refs/heads/main/logo/DuckDB_Logo-horizontal.svg\" height=\"100\">\n </picture>\n</div>\n<br />\n<p align=\"center\">\n <a href=\"https://discord.gg/tcvwpjfnZx\"><img src=\"https://shields.io/discord/909674491309850675\" alt=\"Discord\" /></a>\n <a href=\"https://pypi.org/project/duckdb/\"><img src=\"https://img.shields.io/pypi/v/duckdb.svg\" alt=\"PyPI Latest Release\"/></a>\n</p>\n<br />\n<p align=\"center\">\n <a href=\"https://duckdb.org\">DuckDB.org</a>\n |\n <a href=\"https://duckdb.org/docs/stable/guides/python/install\">User Guide (Python)</a>\n -\n <a href=\"https://duckdb.org/docs/stable/clients/python/overview\">API Docs (Python)</a>\n</p>\n\n# DuckDB: A Fast, In-Process, Portable, Open Source, Analytical Database System\n\n* **Simple**: DuckDB is easy to install and deploy. It has zero external dependencies and runs in-process in its host application or as a single binary.\n* **Portable**: DuckDB runs on Linux, macOS, Windows, Android, iOS and all popular hardware architectures. It has idiomatic client APIs for major programming languages.\n* **Feature-rich**: DuckDB offers a rich SQL dialect. It can read and write file formats such as CSV, Parquet, and JSON, to and from the local file system and remote endpoints such as S3 buckets.\n* **Fast**: DuckDB runs analytical queries at blazing speed thanks to its columnar engine, which supports parallel execution and can process larger-than-memory workloads.\n* **Extensible**: DuckDB is extensible by third-party features such as new data types, functions, file formats and new SQL syntax. User contributions are available as community extensions.\n* **Free**: DuckDB and its core extensions are open-source under the permissive MIT License. The intellectual property of the project is held by the DuckDB Foundation.\n\n## Installation\n\nInstall the latest release of DuckDB directly from [PyPI](https://pypi.org/project/duckdb/):\n\n```bash\npip install duckdb\n```\n\nInstall with all optional dependencies:\n\n```bash\npip install 'duckdb[all]'\n```\n\n## Development\n\nStart by <a href=\"https://github.com/duckdb/duckdb-python/fork\"><svg height=\"16\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\">\n <path fill-rule=\"evenodd\" d=\"M5 3.25a.75.75 0 11-1.5 0 .75.75 0 011.5 0zm0 2.122a2.25 2.25 0 10-1.5 0v.878A2.25 2.25 0 005.75 8.5h1.5v2.128a2.251 2.251 0 101.5 0V8.5h1.5a2.25 2.25 0 002.25-2.25v-.878a2.25 2.25 0 10-1.5 0v.878a.75.75 0 01-.75.75h-4.5A.75.75 0 015 6.25v-.878z\"></path>\n</svg>forking duckdb-python</a>.\n\n### Cloning\n\nAfter forking the duckdb-python repo we recommend you clone your fork as follows:\n```shell\ngit clone --recurse-submodules $REPO_URL\ngit remote add upstream https://github.com/duckdb/duckdb-python.git\ngit fetch --all\n```\n\n... or, if you have already cloned your fork:\n```shell\ngit submodule update --init --recursive\ngit remote add upstream https://github.com/duckdb/duckdb-python.git\ngit fetch --all\n```\n\n### Submodule update hook\n\nIf you'll be switching between branches that are have the submodule set to different refs, then make your life\neasier and add the git hooks in the .githooks directory to your git hooks:\n```shell\ncp .githooks/post-checkout .git/hooks/\n```\n\n\n### Editable installs (general)\n\n It's good to be aware of the following when performing an editable install:\n- `uv sync` or `uv run [tool]` perform an editable install by default. We have\n configured the project so that scikit-build-core will use a persistent build-dir, but since the build itself\n happens in an isolated, ephemeral environment, cmake's paths will point to non-existing directories. CMake itself\n will be missing.\n- You should install all development dependencies, and then build the project without build isolation, in two separate\n steps. After this you can happily keep building and running, as long as you don't forget to pass in the\n `--no-build-isolation` flag.\n\n```bash\n# install all dev dependencies without building the project (needed once)\nuv sync -p 3.11 --no-install-project\n# build and install without build isolation\nuv sync --no-build-isolation\n```\n\n### Editable installs (IDEs)\n\n If you're using an IDE then life is a little simpler. You install build dependencies and the project in the two\n steps outlined above, and from that point on you can rely on e.g. CLion's cmake capabilities to do incremental\n compilation and editable rebuilds. This will skip scikit-build-core's build backend and all of uv's dependency\n management, so for \"real\" builds you better revert to the CLI. However, this should work fine for coding and debugging.\n\n\n### Cleaning\n\n```shell\nuv cache clean\nrm -rf build .venv uv.lock\n```\n\n\n### Building wheels and sdists\n\nTo build a wheel and sdist for your system and the default Python version:\n```bash\nuv build\n````\n\nTo build a wheel for a different Python version:\n```bash\n# E.g. for Python 3.9\nuv build -p 3.9\n```\n\n### Running tests\n\n Run all pytests:\n```bash\nuv run --no-build-isolation pytest ./tests --verbose\n```\n\n Exclude the test/slow directory:\n```bash\nuv run --no-build-isolation pytest ./tests --verbose --ignore=./tests/slow\n```\n\n### Test coverage\n\n Run with coverage (during development you probably want to specify which tests to run):\n```bash\nCOVERAGE=1 uv run --no-build-isolation coverage run -m pytest ./tests --verbose\n```\n\n The `COVERAGE` env var will compile the extension with `--coverage`, allowing us to collect coverage stats of C++\n code as well as Python code.\n\n Check coverage for Python code:\n```bash\nuvx coverage html -d htmlcov-python\nuvx coverage report --format=markdown\n```\n\n Check coverage for C++ code (note: this will clutter your project dir with html files, consider saving them in some\n other place):\n```bash\nuvx gcovr \\\n --gcov-ignore-errors all \\\n --root \"$PWD\" \\\n --filter \"${PWD}/src/duckdb_py\" \\\n --exclude '.*/\\.cache/.*' \\\n --gcov-exclude '.*/\\.cache/.*' \\\n --gcov-exclude '.*/external/.*' \\\n --gcov-exclude '.*/site-packages/.*' \\\n --exclude-unreachable-branches \\\n --exclude-throw-branches \\\n --html --html-details -o coverage-cpp.html \\\n build/coverage/src/duckdb_py \\\n --print-summary\n```\n\n### Typechecking and linting\n\n- We're not running any mypy typechecking tests at the moment\n- We're not running any Ruff / linting / formatting at the moment\n\n### Cibuildwheel\n\nYou can run cibuildwheel locally for Linux. E.g. limited to Python 3.9:\n```bash\nCIBW_BUILD='cp39-*' uvx cibuildwheel --platform linux .\n```\n\n### Code conventions\n\n* Follow the [Google Python styleguide](https://google.github.io/styleguide/pyguide.html)\n* See the section on [Comments and Docstrings](https://google.github.io/styleguide/pyguide.html#s3.8-comments-and-docstrings)\n\n### Tooling\n\nThis codebase is developed with the following tools:\n- [Astral uv](https://docs.astral.sh/uv/) - for dependency management across all platforms we provide wheels for,\n and for Python environment management. It will be hard to work on this codebase without having UV installed.\n- [Scikit-build-core](https://scikit-build-core.readthedocs.io/en/latest/index.html) - the build backend for\n building the extension. On the background, scikit-build-core uses cmake and ninja for compilation.\n- [pybind11](https://pybind11.readthedocs.io/en/stable/index.html) - a bridge between C++ and Python.\n- [CMake](https://cmake.org/) - the build system for both DuckDB itself and the DuckDB Python module.\n- Cibuildwheel\n\n### Merging changes to pythonpkg from duckdb main\n\n1. Checkout main\n2Identify the merge commits that brought in tags to main:\n```bash\ngit log --graph --oneline --decorate main --simplify-by-decoration\n```\n\n3. Get the log of commits\n```bash\ngit log --oneline 71c5c07cdd..c9254ecff2 -- tools/pythonpkg/\n```\n\n4. Checkout v1.3-ossivalis\n5. Get the log of commits\n```bash\ngit log --oneline v1.3.0..v1.3.1 -- tools/pythonpkg/\n```\ngit diff --name-status 71c5c07cdd c9254ecff2 -- tools/pythonpkg/\n\n```bash\ngit log --oneline 71c5c07cdd..c9254ecff2 -- tools/pythonpkg/\ngit diff --name-status <HASH_A> <HASH_B> -- tools/pythonpkg/\n```\n\n\n## Versioning and Releases\n\nThe DuckDB Python package versioning and release scheme follows that of DuckDB itself. This means that a `X.Y.Z[.\npostN]` release of the Python package ships the DuckDB stable release `X.Y.Z`. The optional `.postN` releases ship the same stable release of DuckDB as their predecessors plus Python package-specific fixes and / or features.\n\n| Types | DuckDB Version | Resulting Python Extension Version |\n|------------------------------------------------------------------------|----------------|------------------------------------|\n| Stable release: DuckDB stable release | `1.3.1` | `1.3.1` |\n| Stable post release: DuckDB stable release + Python fixes and features | `1.3.1` | `1.3.1.postX` |\n| Nightly micro: DuckDB next micro nightly + Python next micro nightly | `1.3.2.devM` | `1.3.2.devN` |\n| Nightly minor: DuckDB next minor nightly + Python next minor nightly | `1.4.0.devM` | `1.4.0.devN` |\n\nNote that we do not ship nightly post releases (e.g. we don't ship `1.3.1.post2.dev3`).\n\n### Branch and Tag Strategy\n\nWe cut releases as follows:\n\n| Type | Tag | How |\n|----------------------|--------------|---------------------------------------------------------------------------------|\n| Stable minor release | vX.Y.0 | Adding a tag on `main` |\n| Stable micro release | vX.Y.Z | Adding a tag on a minor release branch (e.g. `v1.3-ossivalis`) |\n| Stable post release | vX.Y.Z-postN | Adding a tag on a post release branch (e.g. `v1.3.1-post`) |\n| Nightly micro | _not tagged_ | Combining HEAD of the _micro_ release branches of DuckDB and the Python package |\n| Nightly minor | _not tagged_ | Combining HEAD of the _minor_ release branches of DuckDB and the Python package |\n\n### Release Runbooks\n\nWe cut a new **stable minor release** with the following steps:\n1. Create a PR on `main` to pin the DuckDB submodule to the tag of its current release.\n1. Iff all tests pass in CI, merge the PR.\n1. Manually start the release workflow with the hash of this commit, and the tag name.\n1. Iff all goes well, create a new PR to let the submodule track DuckDB main.\n\nWe cut a new **stable micro release** with the following steps:\n1. Create a PR on the minor release branch to pin the DuckDB submodule to the tag of its current release.\n1. Iff all tests pass in CI, merge the PR.\n1. Manually start the release workflow with the hash of this commit, and the tag name.\n1. Iff all goes well, create a new PR to let the submodule track DuckDB's minor release branch.\n\nWe cut a new **stable post release** with the following steps:\n1. Create a PR on the post release branch to pin the DuckDB submodule to the tag of its current release.\n1. Iff all tests pass in CI, merge the PR.\n1. Manually start the release workflow with the hash of this commit, and the tag name.\n1. Iff all goes well, create a new PR to let the submodule track DuckDB's minor release branch.\n\n### Dynamic Versioning Integration\n\nThe package uses `setuptools_scm` with `scikit-build` for automatic version determination, and implements a custom\nversioning scheme.\n\n- **pyproject.toml configuration**:\n ```toml\n [tool.scikit-build]\n metadata.version.provider = \"scikit_build_core.metadata.setuptools_scm\"\n\n [tool.setuptools_scm]\n version_scheme = \"duckdb_packaging._setuptools_scm_version:version_scheme\"\n ```\n\n- **Environment variables**:\n - `MAIN_BRANCH_VERSIONING=0`: Use release branch versioning (patch increments)\n - `MAIN_BRANCH_VERSIONING=1`: Use main branch versioning (minor increments)\n - `OVERRIDE_GIT_DESCRIBE`: Override version detection\n",
"bugtrack_url": null,
"license": null,
"summary": "DuckDB in-process database",
"version": "1.4.1",
"project_urls": {
"Changelog": "https://github.com/duckdb/duckdb/releases",
"Documentation": "https://duckdb.org/docs/stable/clients/python/overview",
"Issues": "https://github.com/duckdb/duckdb-python/issues",
"Source": "https://github.com/duckdb/duckdb-python"
},
"split_keywords": [
"duckdb",
" database",
" sql",
" olap"
],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "68cc00a07de0e33d16763edd4132d7c8a2f9efd57a2f296a25a948f239a1fadf",
"md5": "2e9d754230db26b4f81b62824d22928a",
"sha256": "296b4fff3908fb4c47b0aa1d77bd1933375e75401009d2dc81af8e7a0b8a05b4"
},
"downloads": -1,
"filename": "duckdb-1.4.1-cp310-cp310-macosx_10_9_universal2.whl",
"has_sig": false,
"md5_digest": "2e9d754230db26b4f81b62824d22928a",
"packagetype": "bdist_wheel",
"python_version": "cp310",
"requires_python": ">=3.9.0",
"size": 29062814,
"upload_time": "2025-10-07T10:36:14",
"upload_time_iso_8601": "2025-10-07T10:36:14.261572Z",
"url": "https://files.pythonhosted.org/packages/68/cc/00a07de0e33d16763edd4132d7c8a2f9efd57a2f296a25a948f239a1fadf/duckdb-1.4.1-cp310-cp310-macosx_10_9_universal2.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "17eafb0fda8886d1928f1b2a53a1163ef94f6f4b41f6d8b29eee457acfc2fa67",
"md5": "2a7a3796c03638124feb288d39fccb88",
"sha256": "0b4182800092115feee5d71a8691efb283d3c9f5eb0b36362b308ef007a12222"
},
"downloads": -1,
"filename": "duckdb-1.4.1-cp310-cp310-macosx_10_9_x86_64.whl",
"has_sig": false,
"md5_digest": "2a7a3796c03638124feb288d39fccb88",
"packagetype": "bdist_wheel",
"python_version": "cp310",
"requires_python": ">=3.9.0",
"size": 16161652,
"upload_time": "2025-10-07T10:36:17",
"upload_time_iso_8601": "2025-10-07T10:36:17.358577Z",
"url": "https://files.pythonhosted.org/packages/17/ea/fb0fda8886d1928f1b2a53a1163ef94f6f4b41f6d8b29eee457acfc2fa67/duckdb-1.4.1-cp310-cp310-macosx_10_9_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "b45f052e6436a71f461e61cd3a982954c029145a84b58cefa1dfb3eb2d96e4fc",
"md5": "574c3f7f7fa8cba0d8fdd86fdc595d26",
"sha256": "67cc3b6c7f7ba07a69e9331b8ccea7a60cbcd4204bb473e5da9b71588bd2eca9"
},
"downloads": -1,
"filename": "duckdb-1.4.1-cp310-cp310-macosx_11_0_arm64.whl",
"has_sig": false,
"md5_digest": "574c3f7f7fa8cba0d8fdd86fdc595d26",
"packagetype": "bdist_wheel",
"python_version": "cp310",
"requires_python": ">=3.9.0",
"size": 13753030,
"upload_time": "2025-10-07T10:36:19",
"upload_time_iso_8601": "2025-10-07T10:36:19.782441Z",
"url": "https://files.pythonhosted.org/packages/b4/5f/052e6436a71f461e61cd3a982954c029145a84b58cefa1dfb3eb2d96e4fc/duckdb-1.4.1-cp310-cp310-macosx_11_0_arm64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "c2fd3ae3c89d0f6ad54c0be4430e572306fbfc9f173c97b23c5025a540449325",
"md5": "d5d951efd86faacc6863114265bc92fd",
"sha256": "0cef0cee7030b561640cb9af718f8841b19cdd2aa020d53561057b5743bea90b"
},
"downloads": -1,
"filename": "duckdb-1.4.1-cp310-cp310-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl",
"has_sig": false,
"md5_digest": "d5d951efd86faacc6863114265bc92fd",
"packagetype": "bdist_wheel",
"python_version": "cp310",
"requires_python": ">=3.9.0",
"size": 18487683,
"upload_time": "2025-10-07T10:36:22",
"upload_time_iso_8601": "2025-10-07T10:36:22.375076Z",
"url": "https://files.pythonhosted.org/packages/c2/fd/3ae3c89d0f6ad54c0be4430e572306fbfc9f173c97b23c5025a540449325/duckdb-1.4.1-cp310-cp310-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "d43ceef454cd7c3880c2d55b50e18a9c7a213bf91ded79efcfb573d8d6dd8a47",
"md5": "eb5a7812cbed80cddd07e227f6e61a2c",
"sha256": "2bf93347f37a46bacce6ac859d651dbf5731e2c94a64ab358300425b09e3de23"
},
"downloads": -1,
"filename": "duckdb-1.4.1-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl",
"has_sig": false,
"md5_digest": "eb5a7812cbed80cddd07e227f6e61a2c",
"packagetype": "bdist_wheel",
"python_version": "cp310",
"requires_python": ">=3.9.0",
"size": 20487080,
"upload_time": "2025-10-07T10:36:24",
"upload_time_iso_8601": "2025-10-07T10:36:24.692188Z",
"url": "https://files.pythonhosted.org/packages/d4/3c/eef454cd7c3880c2d55b50e18a9c7a213bf91ded79efcfb573d8d6dd8a47/duckdb-1.4.1-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "bb5bb619f4c986a1cb0b06315239da9ce5fd94a20c07a344d03e2635d56a6967",
"md5": "a436c666f3683eb4fbcfb7fd51418563",
"sha256": "2e60d2361f978908a3d96eebaf1f4b346f283afcc467351aae50ea45ca293a2b"
},
"downloads": -1,
"filename": "duckdb-1.4.1-cp310-cp310-win_amd64.whl",
"has_sig": false,
"md5_digest": "a436c666f3683eb4fbcfb7fd51418563",
"packagetype": "bdist_wheel",
"python_version": "cp310",
"requires_python": ">=3.9.0",
"size": 12324436,
"upload_time": "2025-10-07T10:36:27",
"upload_time_iso_8601": "2025-10-07T10:36:27.458611Z",
"url": "https://files.pythonhosted.org/packages/bb/5b/b619f4c986a1cb0b06315239da9ce5fd94a20c07a344d03e2635d56a6967/duckdb-1.4.1-cp310-cp310-win_amd64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "d952606f13fa9669a24166d2fe523e28982d8ef9039874b4de774255c7806d1f",
"md5": "832f0fe652bd1742befbc377eb5ed976",
"sha256": "605d563c1d5203ca992497cd33fb386ac3d533deca970f9dcf539f62a34e22a9"
},
"downloads": -1,
"filename": "duckdb-1.4.1-cp311-cp311-macosx_10_9_universal2.whl",
"has_sig": false,
"md5_digest": "832f0fe652bd1742befbc377eb5ed976",
"packagetype": "bdist_wheel",
"python_version": "cp311",
"requires_python": ">=3.9.0",
"size": 29065894,
"upload_time": "2025-10-07T10:36:29",
"upload_time_iso_8601": "2025-10-07T10:36:29.837592Z",
"url": "https://files.pythonhosted.org/packages/d9/52/606f13fa9669a24166d2fe523e28982d8ef9039874b4de774255c7806d1f/duckdb-1.4.1-cp311-cp311-macosx_10_9_universal2.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "8457138241952ece868b9577e607858466315bed1739e1fbb47205df4dfdfd88",
"md5": "0d4b32b8790431ad0cff60075fee0cf5",
"sha256": "d3305c7c4b70336171de7adfdb50431f23671c000f11839b580c4201d9ce6ef5"
},
"downloads": -1,
"filename": "duckdb-1.4.1-cp311-cp311-macosx_10_9_x86_64.whl",
"has_sig": false,
"md5_digest": "0d4b32b8790431ad0cff60075fee0cf5",
"packagetype": "bdist_wheel",
"python_version": "cp311",
"requires_python": ">=3.9.0",
"size": 16163720,
"upload_time": "2025-10-07T10:36:32",
"upload_time_iso_8601": "2025-10-07T10:36:32.241757Z",
"url": "https://files.pythonhosted.org/packages/84/57/138241952ece868b9577e607858466315bed1739e1fbb47205df4dfdfd88/duckdb-1.4.1-cp311-cp311-macosx_10_9_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "a381afa3a0a78498a6f4acfea75c48a70c5082032d9ac87822713d7c2d164af1",
"md5": "9c05c358ad526d13774198cf85d1565c",
"sha256": "a063d6febbe34b32f1ad2e68822db4d0e4b1102036f49aaeeb22b844427a75df"
},
"downloads": -1,
"filename": "duckdb-1.4.1-cp311-cp311-macosx_11_0_arm64.whl",
"has_sig": false,
"md5_digest": "9c05c358ad526d13774198cf85d1565c",
"packagetype": "bdist_wheel",
"python_version": "cp311",
"requires_python": ">=3.9.0",
"size": 13756223,
"upload_time": "2025-10-07T10:36:34",
"upload_time_iso_8601": "2025-10-07T10:36:34.673121Z",
"url": "https://files.pythonhosted.org/packages/a3/81/afa3a0a78498a6f4acfea75c48a70c5082032d9ac87822713d7c2d164af1/duckdb-1.4.1-cp311-cp311-macosx_11_0_arm64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "47dd5f6064fbd9248e37a3e806a244f81e0390ab8f989d231b584fb954f257fc",
"md5": "b40a3e7f83c2bb8de4ba19b1745b115a",
"sha256": "d1ffcaaf74f7d1df3684b54685cbf8d3ce732781c541def8e1ced304859733ae"
},
"downloads": -1,
"filename": "duckdb-1.4.1-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl",
"has_sig": false,
"md5_digest": "b40a3e7f83c2bb8de4ba19b1745b115a",
"packagetype": "bdist_wheel",
"python_version": "cp311",
"requires_python": ">=3.9.0",
"size": 18487022,
"upload_time": "2025-10-07T10:36:36",
"upload_time_iso_8601": "2025-10-07T10:36:36.759191Z",
"url": "https://files.pythonhosted.org/packages/47/dd/5f6064fbd9248e37a3e806a244f81e0390ab8f989d231b584fb954f257fc/duckdb-1.4.1-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "a110b54969a1c42fd9344ad39228d671faceb8aa9f144b67cd9531a63551757f",
"md5": "764894402f1960390fb100bf6dd70139",
"sha256": "685d3d1599dc08160e0fa0cf09e93ac4ff8b8ed399cb69f8b5391cd46b5b207c"
},
"downloads": -1,
"filename": "duckdb-1.4.1-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl",
"has_sig": false,
"md5_digest": "764894402f1960390fb100bf6dd70139",
"packagetype": "bdist_wheel",
"python_version": "cp311",
"requires_python": ">=3.9.0",
"size": 20491004,
"upload_time": "2025-10-07T10:36:39",
"upload_time_iso_8601": "2025-10-07T10:36:39.318947Z",
"url": "https://files.pythonhosted.org/packages/a1/10/b54969a1c42fd9344ad39228d671faceb8aa9f144b67cd9531a63551757f/duckdb-1.4.1-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "edd57332ae8f804869a4e895937821b776199a283f8d9fc775fd3ae5a0558099",
"md5": "452cb2ba675665fd8ce2a7ba32bf9922",
"sha256": "78f1d28a15ae73bd449c43f80233732adffa49be1840a32de8f1a6bb5b286764"
},
"downloads": -1,
"filename": "duckdb-1.4.1-cp311-cp311-win_amd64.whl",
"has_sig": false,
"md5_digest": "452cb2ba675665fd8ce2a7ba32bf9922",
"packagetype": "bdist_wheel",
"python_version": "cp311",
"requires_python": ">=3.9.0",
"size": 12327619,
"upload_time": "2025-10-07T10:36:41",
"upload_time_iso_8601": "2025-10-07T10:36:41.509016Z",
"url": "https://files.pythonhosted.org/packages/ed/d5/7332ae8f804869a4e895937821b776199a283f8d9fc775fd3ae5a0558099/duckdb-1.4.1-cp311-cp311-win_amd64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "0e6c906a3fe41cd247b5638866fc1245226b528de196588802d4df4df1e6e819",
"md5": "44aecea00893e4ea61001ed18ab91ce8",
"sha256": "cd1765a7d180b7482874586859fc23bc9969d7d6c96ced83b245e6c6f49cde7f"
},
"downloads": -1,
"filename": "duckdb-1.4.1-cp312-cp312-macosx_10_13_universal2.whl",
"has_sig": false,
"md5_digest": "44aecea00893e4ea61001ed18ab91ce8",
"packagetype": "bdist_wheel",
"python_version": "cp312",
"requires_python": ">=3.9.0",
"size": 29076820,
"upload_time": "2025-10-07T10:36:43",
"upload_time_iso_8601": "2025-10-07T10:36:43.782362Z",
"url": "https://files.pythonhosted.org/packages/0e/6c/906a3fe41cd247b5638866fc1245226b528de196588802d4df4df1e6e819/duckdb-1.4.1-cp312-cp312-macosx_10_13_universal2.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "66c701dd33083f01f618c2a29f6dd068baf16945b8cbdb132929d3766610bbbb",
"md5": "84cc88afacde504212c528bacaf658a6",
"sha256": "8ed7a86725185470953410823762956606693c0813bb64e09c7d44dbd9253a64"
},
"downloads": -1,
"filename": "duckdb-1.4.1-cp312-cp312-macosx_10_13_x86_64.whl",
"has_sig": false,
"md5_digest": "84cc88afacde504212c528bacaf658a6",
"packagetype": "bdist_wheel",
"python_version": "cp312",
"requires_python": ">=3.9.0",
"size": 16167558,
"upload_time": "2025-10-07T10:36:46",
"upload_time_iso_8601": "2025-10-07T10:36:46.003251Z",
"url": "https://files.pythonhosted.org/packages/66/c7/01dd33083f01f618c2a29f6dd068baf16945b8cbdb132929d3766610bbbb/duckdb-1.4.1-cp312-cp312-macosx_10_13_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "81e2f983b4b7ae1dfbdd2792dd31dee9a0d35f88554452cbfc6c9d65e22fdfa9",
"md5": "5eeabab18042dbb85b5d2e9afa3f5991",
"sha256": "8a189bdfc64cfb9cc1adfbe4f2dcfde0a4992ec08505ad8ce33c886e4813f0bf"
},
"downloads": -1,
"filename": "duckdb-1.4.1-cp312-cp312-macosx_11_0_arm64.whl",
"has_sig": false,
"md5_digest": "5eeabab18042dbb85b5d2e9afa3f5991",
"packagetype": "bdist_wheel",
"python_version": "cp312",
"requires_python": ">=3.9.0",
"size": 13762226,
"upload_time": "2025-10-07T10:36:48",
"upload_time_iso_8601": "2025-10-07T10:36:48.550678Z",
"url": "https://files.pythonhosted.org/packages/81/e2/f983b4b7ae1dfbdd2792dd31dee9a0d35f88554452cbfc6c9d65e22fdfa9/duckdb-1.4.1-cp312-cp312-macosx_11_0_arm64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "ed34fb69a7be19b90f573b3cc890961be7b11870b77514769655657514f10a98",
"md5": "094e64470d9151290a4f1d1b27547cd3",
"sha256": "a9090089b6486f7319c92acdeed8acda022d4374032d78a465956f50fc52fabf"
},
"downloads": -1,
"filename": "duckdb-1.4.1-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl",
"has_sig": false,
"md5_digest": "094e64470d9151290a4f1d1b27547cd3",
"packagetype": "bdist_wheel",
"python_version": "cp312",
"requires_python": ">=3.9.0",
"size": 18500901,
"upload_time": "2025-10-07T10:36:52",
"upload_time_iso_8601": "2025-10-07T10:36:52.445299Z",
"url": "https://files.pythonhosted.org/packages/ed/34/fb69a7be19b90f573b3cc890961be7b11870b77514769655657514f10a98/duckdb-1.4.1-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "e4a51395d7b49d5589e85da9a9d7ffd8b50364c9d159c2807bef72d547f0ad1e",
"md5": "f84bed18b4b0bf669a4c73291b05be24",
"sha256": "142552ea3e768048e0e8c832077a545ca07792631c59edaee925e3e67401c2a0"
},
"downloads": -1,
"filename": "duckdb-1.4.1-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl",
"has_sig": false,
"md5_digest": "f84bed18b4b0bf669a4c73291b05be24",
"packagetype": "bdist_wheel",
"python_version": "cp312",
"requires_python": ">=3.9.0",
"size": 20514177,
"upload_time": "2025-10-07T10:36:55",
"upload_time_iso_8601": "2025-10-07T10:36:55.358776Z",
"url": "https://files.pythonhosted.org/packages/e4/a5/1395d7b49d5589e85da9a9d7ffd8b50364c9d159c2807bef72d547f0ad1e/duckdb-1.4.1-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "c02108f10706d30252753349ec545833fc0cea67c11abd0b5223acf2827f1056",
"md5": "41c669d821b719f7e239031515d27da2",
"sha256": "567f3b3a785a9e8650612461893c49ca799661d2345a6024dda48324ece89ded"
},
"downloads": -1,
"filename": "duckdb-1.4.1-cp312-cp312-win_amd64.whl",
"has_sig": false,
"md5_digest": "41c669d821b719f7e239031515d27da2",
"packagetype": "bdist_wheel",
"python_version": "cp312",
"requires_python": ">=3.9.0",
"size": 12336422,
"upload_time": "2025-10-07T10:36:57",
"upload_time_iso_8601": "2025-10-07T10:36:57.521946Z",
"url": "https://files.pythonhosted.org/packages/c0/21/08f10706d30252753349ec545833fc0cea67c11abd0b5223acf2827f1056/duckdb-1.4.1-cp312-cp312-win_amd64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "d708705988c33e38665c969f7876b3ca4328be578554aa7e3dc0f34158da3e64",
"md5": "93cc4c48bfc6d2e366f1724e185d4a0f",
"sha256": "46496a2518752ae0c6c5d75d4cdecf56ea23dd098746391176dd8e42cf157791"
},
"downloads": -1,
"filename": "duckdb-1.4.1-cp313-cp313-macosx_10_13_universal2.whl",
"has_sig": false,
"md5_digest": "93cc4c48bfc6d2e366f1724e185d4a0f",
"packagetype": "bdist_wheel",
"python_version": "cp313",
"requires_python": ">=3.9.0",
"size": 29077070,
"upload_time": "2025-10-07T10:36:59",
"upload_time_iso_8601": "2025-10-07T10:36:59.830195Z",
"url": "https://files.pythonhosted.org/packages/d7/08/705988c33e38665c969f7876b3ca4328be578554aa7e3dc0f34158da3e64/duckdb-1.4.1-cp313-cp313-macosx_10_13_universal2.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "99c57c9165f1e6b9069441bcda4da1e19382d4a2357783d37ff9ae238c5c41ac",
"md5": "4376c5129e99aa866d34d889fe842b87",
"sha256": "1c65ae7e9b541cea07d8075343bcfebdecc29a3c0481aa6078ee63d51951cfcd"
},
"downloads": -1,
"filename": "duckdb-1.4.1-cp313-cp313-macosx_10_13_x86_64.whl",
"has_sig": false,
"md5_digest": "4376c5129e99aa866d34d889fe842b87",
"packagetype": "bdist_wheel",
"python_version": "cp313",
"requires_python": ">=3.9.0",
"size": 16167506,
"upload_time": "2025-10-07T10:37:02",
"upload_time_iso_8601": "2025-10-07T10:37:02.240592Z",
"url": "https://files.pythonhosted.org/packages/99/c5/7c9165f1e6b9069441bcda4da1e19382d4a2357783d37ff9ae238c5c41ac/duckdb-1.4.1-cp313-cp313-macosx_10_13_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "3846267f4a570a0ee3ae6871ddc03435f9942884284e22a7ba9b7cb252ee69b6",
"md5": "05eaa677dce570161a07e7d3c5d322a0",
"sha256": "598d1a314e34b65d9399ddd066ccce1eeab6a60a2ef5885a84ce5ed62dbaf729"
},
"downloads": -1,
"filename": "duckdb-1.4.1-cp313-cp313-macosx_11_0_arm64.whl",
"has_sig": false,
"md5_digest": "05eaa677dce570161a07e7d3c5d322a0",
"packagetype": "bdist_wheel",
"python_version": "cp313",
"requires_python": ">=3.9.0",
"size": 13762330,
"upload_time": "2025-10-07T10:37:04",
"upload_time_iso_8601": "2025-10-07T10:37:04.581932Z",
"url": "https://files.pythonhosted.org/packages/38/46/267f4a570a0ee3ae6871ddc03435f9942884284e22a7ba9b7cb252ee69b6/duckdb-1.4.1-cp313-cp313-macosx_11_0_arm64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "157bc4f272a40c36d82df20937d93a1780eb39ab0107fe42b62cba889151eab9",
"md5": "7e2495862925a5983f3ed707a78623fd",
"sha256": "e2f16b8def782d484a9f035fc422bb6f06941ed0054b4511ddcdc514a7fb6a75"
},
"downloads": -1,
"filename": "duckdb-1.4.1-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl",
"has_sig": false,
"md5_digest": "7e2495862925a5983f3ed707a78623fd",
"packagetype": "bdist_wheel",
"python_version": "cp313",
"requires_python": ">=3.9.0",
"size": 18504687,
"upload_time": "2025-10-07T10:37:06",
"upload_time_iso_8601": "2025-10-07T10:37:06.991725Z",
"url": "https://files.pythonhosted.org/packages/15/7b/c4f272a40c36d82df20937d93a1780eb39ab0107fe42b62cba889151eab9/duckdb-1.4.1-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "17fc9b958751f0116d7b0406406b07fa6f5a10c22d699be27826d0b896f9bf51",
"md5": "e1d01fbe4266737df5a596f4eafea331",
"sha256": "a5a7d0aed068a5c33622a8848857947cab5cfb3f2a315b1251849bac2c74c492"
},
"downloads": -1,
"filename": "duckdb-1.4.1-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl",
"has_sig": false,
"md5_digest": "e1d01fbe4266737df5a596f4eafea331",
"packagetype": "bdist_wheel",
"python_version": "cp313",
"requires_python": ">=3.9.0",
"size": 20513823,
"upload_time": "2025-10-07T10:37:09",
"upload_time_iso_8601": "2025-10-07T10:37:09.349690Z",
"url": "https://files.pythonhosted.org/packages/17/fc/9b958751f0116d7b0406406b07fa6f5a10c22d699be27826d0b896f9bf51/duckdb-1.4.1-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "30794f544d73fcc0513b71296cb3ebb28a227d22e80dec27204977039b9fa875",
"md5": "4a1639adcc4a61f90ed3417294d99018",
"sha256": "280fd663dacdd12bb3c3bf41f3e5b2e5b95e00b88120afabb8b8befa5f335c6f"
},
"downloads": -1,
"filename": "duckdb-1.4.1-cp313-cp313-win_amd64.whl",
"has_sig": false,
"md5_digest": "4a1639adcc4a61f90ed3417294d99018",
"packagetype": "bdist_wheel",
"python_version": "cp313",
"requires_python": ">=3.9.0",
"size": 12336460,
"upload_time": "2025-10-07T10:37:12",
"upload_time_iso_8601": "2025-10-07T10:37:12.154260Z",
"url": "https://files.pythonhosted.org/packages/30/79/4f544d73fcc0513b71296cb3ebb28a227d22e80dec27204977039b9fa875/duckdb-1.4.1-cp313-cp313-win_amd64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "63497fcaf3d0c8194958f2fc61620ee9a0ba57fc0454183c24fce443caaf0815",
"md5": "71a36dbf744cd133ed60fb0eec52edfc",
"sha256": "04a31b3cf84d77ef02c9914567b5d63a43fc791b144655ee99581cd9f4949e63"
},
"downloads": -1,
"filename": "duckdb-1.4.1-cp39-cp39-macosx_10_9_universal2.whl",
"has_sig": false,
"md5_digest": "71a36dbf744cd133ed60fb0eec52edfc",
"packagetype": "bdist_wheel",
"python_version": "cp39",
"requires_python": ">=3.9.0",
"size": 29061482,
"upload_time": "2025-10-07T10:37:14",
"upload_time_iso_8601": "2025-10-07T10:37:14.454476Z",
"url": "https://files.pythonhosted.org/packages/63/49/7fcaf3d0c8194958f2fc61620ee9a0ba57fc0454183c24fce443caaf0815/duckdb-1.4.1-cp39-cp39-macosx_10_9_universal2.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "c4337374fc94491567e1c77a32bf89fac9dcfc85b955ebc80170ea8ffe130db5",
"md5": "5b1cc45dfd42fbdf364ee214ad65d737",
"sha256": "c01c5f9d0657a26938d640aa8d8effa91cacf66195ed4787824e6d5537bcaf21"
},
"downloads": -1,
"filename": "duckdb-1.4.1-cp39-cp39-macosx_10_9_x86_64.whl",
"has_sig": false,
"md5_digest": "5b1cc45dfd42fbdf364ee214ad65d737",
"packagetype": "bdist_wheel",
"python_version": "cp39",
"requires_python": ">=3.9.0",
"size": 16160209,
"upload_time": "2025-10-07T10:37:17",
"upload_time_iso_8601": "2025-10-07T10:37:17.304701Z",
"url": "https://files.pythonhosted.org/packages/c4/33/7374fc94491567e1c77a32bf89fac9dcfc85b955ebc80170ea8ffe130db5/duckdb-1.4.1-cp39-cp39-macosx_10_9_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "bd978fdf49a4696ccc63c84ad50eef7d7ec9f5d34a4e5763ce0cce339210af2b",
"md5": "91c475ee13205824989029da47126849",
"sha256": "80c12239abb2a063abcd75dc052e9884b41060615735a532a6e3e8390eee7f70"
},
"downloads": -1,
"filename": "duckdb-1.4.1-cp39-cp39-macosx_11_0_arm64.whl",
"has_sig": false,
"md5_digest": "91c475ee13205824989029da47126849",
"packagetype": "bdist_wheel",
"python_version": "cp39",
"requires_python": ">=3.9.0",
"size": 13752503,
"upload_time": "2025-10-07T10:37:19",
"upload_time_iso_8601": "2025-10-07T10:37:19.595258Z",
"url": "https://files.pythonhosted.org/packages/bd/97/8fdf49a4696ccc63c84ad50eef7d7ec9f5d34a4e5763ce0cce339210af2b/duckdb-1.4.1-cp39-cp39-macosx_11_0_arm64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "5eecc07ece0f1f31153be4d08a8801ca50c65ed3280d7578d3fc48972c83e64b",
"md5": "d737569b0fbbf903402535b2bac0cd96",
"sha256": "4b96d16a10256d05d818b34903243681764b6afc98f7d50b1ae60d23aa1f1f9e"
},
"downloads": -1,
"filename": "duckdb-1.4.1-cp39-cp39-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl",
"has_sig": false,
"md5_digest": "d737569b0fbbf903402535b2bac0cd96",
"packagetype": "bdist_wheel",
"python_version": "cp39",
"requires_python": ">=3.9.0",
"size": 18468107,
"upload_time": "2025-10-07T10:37:21",
"upload_time_iso_8601": "2025-10-07T10:37:21.883105Z",
"url": "https://files.pythonhosted.org/packages/5e/ec/c07ece0f1f31153be4d08a8801ca50c65ed3280d7578d3fc48972c83e64b/duckdb-1.4.1-cp39-cp39-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "6da330506391e592acaab45147e9a578c0bf3c144e1e461e1f942995fb0c66df",
"md5": "5bbba9ad887cb703517853fa5820b641",
"sha256": "e8aa4a4298a6a627599f6606c7bedfe77309c1fb05a606af48e0e72333861ef4"
},
"downloads": -1,
"filename": "duckdb-1.4.1-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl",
"has_sig": false,
"md5_digest": "5bbba9ad887cb703517853fa5820b641",
"packagetype": "bdist_wheel",
"python_version": "cp39",
"requires_python": ">=3.9.0",
"size": 20472027,
"upload_time": "2025-10-07T10:37:24",
"upload_time_iso_8601": "2025-10-07T10:37:24.255745Z",
"url": "https://files.pythonhosted.org/packages/6d/a3/30506391e592acaab45147e9a578c0bf3c144e1e461e1f942995fb0c66df/duckdb-1.4.1-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "28e646e9c440d5a9d0db9df81b1d35d5ca9b2c6e16eee9f43ccfd93284804224",
"md5": "518626117ec4cca72382c9fabd12c214",
"sha256": "09d152dd4ab24a5984cd289b553e142980b3f029292cdda29e34303c75138de6"
},
"downloads": -1,
"filename": "duckdb-1.4.1-cp39-cp39-win_amd64.whl",
"has_sig": false,
"md5_digest": "518626117ec4cca72382c9fabd12c214",
"packagetype": "bdist_wheel",
"python_version": "cp39",
"requires_python": ">=3.9.0",
"size": 12324883,
"upload_time": "2025-10-07T10:37:26",
"upload_time_iso_8601": "2025-10-07T10:37:26.474306Z",
"url": "https://files.pythonhosted.org/packages/28/e6/46e9c440d5a9d0db9df81b1d35d5ca9b2c6e16eee9f43ccfd93284804224/duckdb-1.4.1-cp39-cp39-win_amd64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "eae721cf50a3d52ffceee1f0bcc3997fa96a5062e6bab705baee4f6c4e33cce5",
"md5": "8078282cbcf0bc0486194989351b5ef6",
"sha256": "f903882f045d057ebccad12ac69975952832edfe133697694854bb784b8d6c76"
},
"downloads": -1,
"filename": "duckdb-1.4.1.tar.gz",
"has_sig": false,
"md5_digest": "8078282cbcf0bc0486194989351b5ef6",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.9.0",
"size": 18461687,
"upload_time": "2025-10-07T10:37:28",
"upload_time_iso_8601": "2025-10-07T10:37:28.605050Z",
"url": "https://files.pythonhosted.org/packages/ea/e7/21cf50a3d52ffceee1f0bcc3997fa96a5062e6bab705baee4f6c4e33cce5/duckdb-1.4.1.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-10-07 10:37:28",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "duckdb",
"github_project": "duckdb",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"lcname": "duckdb"
}