Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
73 commits
Select commit Hold shift + click to select a range
bbedcb4
integration with windows
adrian-zawadzki Sep 25, 2025
8a044aa
compile fixes
adrian-zawadzki Sep 29, 2025
4cc804a
changed gnu packed to windows compatible version
adrian-zawadzki Oct 1, 2025
f841b2e
fixed tests
adrian-zawadzki Oct 3, 2025
7225131
removed comments
adrian-zawadzki Oct 3, 2025
2477370
merge
adrian-zawadzki Oct 3, 2025
ed9c611
merge and test fixes
adrian-zawadzki Oct 6, 2025
f736802
changed ci
adrian-zawadzki Oct 8, 2025
23b7491
merge
adrian-zawadzki Oct 8, 2025
6cca22b
changed ci
adrian-zawadzki Oct 8, 2025
a7f4dd1
changed ci
adrian-zawadzki Oct 8, 2025
e243387
changed ci
adrian-zawadzki Oct 8, 2025
0c70e71
changed ci
adrian-zawadzki Oct 8, 2025
6ffd8a0
changed ci
adrian-zawadzki Oct 8, 2025
5fd61d2
changed ci
adrian-zawadzki Oct 8, 2025
72a3f1e
changed ci
adrian-zawadzki Oct 8, 2025
4b8c933
changed ci
adrian-zawadzki Oct 8, 2025
609b871
changed ci
adrian-zawadzki Oct 8, 2025
3cb83f1
changed ci
adrian-zawadzki Oct 8, 2025
7bce687
changed ci
adrian-zawadzki Oct 8, 2025
624ad95
changed ci
adrian-zawadzki Oct 8, 2025
546164b
changed ci
adrian-zawadzki Oct 8, 2025
353258e
changed ci
adrian-zawadzki Oct 8, 2025
5352916
changed ci
adrian-zawadzki Oct 8, 2025
3205fb1
changed ci
adrian-zawadzki Oct 8, 2025
6cc1f9f
changed ci
adrian-zawadzki Oct 8, 2025
68adda3
changed ci
adrian-zawadzki Oct 8, 2025
ce0dfce
changed ci
adrian-zawadzki Oct 8, 2025
4da111c
changed ci
adrian-zawadzki Oct 8, 2025
eba3cbc
changed ci
adrian-zawadzki Oct 8, 2025
04be5ba
changed ci
adrian-zawadzki Oct 8, 2025
c887d42
changed ci
adrian-zawadzki Oct 8, 2025
7d2e079
changed ci
adrian-zawadzki Oct 8, 2025
fd24877
changed ci
adrian-zawadzki Oct 8, 2025
4e335c1
changed ci
adrian-zawadzki Oct 8, 2025
dc337dc
changed ci
adrian-zawadzki Oct 8, 2025
d3620c5
changed ci
adrian-zawadzki Oct 8, 2025
8e5d885
changed ci
adrian-zawadzki Oct 8, 2025
cdfd4b6
changed ci
adrian-zawadzki Oct 8, 2025
d30c0f6
changed ci
adrian-zawadzki Oct 8, 2025
0a54816
changed ci
adrian-zawadzki Oct 8, 2025
a932b11
changed ci
adrian-zawadzki Oct 9, 2025
266c1b6
changed ci
adrian-zawadzki Oct 9, 2025
9da42c6
changed ci
adrian-zawadzki Oct 9, 2025
19e02b6
changed ci
adrian-zawadzki Oct 9, 2025
6f9f231
changed ci
adrian-zawadzki Oct 9, 2025
531d48b
changed ci
adrian-zawadzki Oct 9, 2025
2d8e58a
changed ci
adrian-zawadzki Oct 9, 2025
7ccfc23
changed ci
adrian-zawadzki Oct 9, 2025
a6d5548
changed ci
adrian-zawadzki Oct 9, 2025
9ada386
changed ci
adrian-zawadzki Oct 9, 2025
8192be7
changed ci
adrian-zawadzki Oct 9, 2025
b93db28
added type name changes
adrian-zawadzki Oct 10, 2025
2cbfb35
merge
adrian-zawadzki Oct 10, 2025
839d3f6
Merge branch 'main' of github.com:wskozlowski/dbzero_ce into feature/…
adrian-zawadzki Oct 11, 2025
35ca798
changed ci
adrian-zawadzki Oct 11, 2025
46b4d01
changed ci
adrian-zawadzki Oct 11, 2025
9e9d493
changed ci
adrian-zawadzki Oct 11, 2025
61cac63
changed ci
adrian-zawadzki Oct 11, 2025
de76dcf
changed ci
adrian-zawadzki Oct 11, 2025
6511e99
changed ci
adrian-zawadzki Oct 11, 2025
1025f6b
changed ci
adrian-zawadzki Oct 11, 2025
5598461
changed ci
adrian-zawadzki Oct 11, 2025
cf16cd7
changed requrements
adrian-zawadzki Oct 11, 2025
a6b4eba
changed requrements
adrian-zawadzki Oct 11, 2025
300e259
added fixes for comparation and script for meson generation
adrian-zawadzki Oct 19, 2025
c8886fd
merge
adrian-zawadzki Oct 20, 2025
eea3a5e
Merge branch 'feature/ci_test' of github.com:wskozlowski/dbzero_ce in…
adrian-zawadzki Oct 20, 2025
af214c2
fixed tests and added test for ci
adrian-zawadzki Oct 20, 2025
af20a27
changed ci
adrian-zawadzki Oct 20, 2025
dc52886
changed ci
adrian-zawadzki Oct 20, 2025
58ffd79
changed ci
adrian-zawadzki Oct 20, 2025
186356d
changed ci
adrian-zawadzki Oct 20, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
78 changes: 77 additions & 1 deletion .github/workflows/build-and-deploy.yml
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,8 @@ jobs:
- python-version: "3.14"
python-tag: "314"
architecture: "AMD64"



steps:
- uses: actions/checkout@v4
Expand All @@ -47,6 +49,7 @@ jobs:
run: |
python scripts/generate_meson.py ./src/dbzero/ core
python scripts/generate_meson_tests.py tests/
python scripts/generate_meson_dbzero.py dbzero/

- name: Configure git
run: |
Expand Down Expand Up @@ -80,6 +83,7 @@ jobs:
- uses: actions/checkout@v3
- run: python3 scripts/generate_meson.py ./src/dbzero/ core
- run: python3 scripts/generate_meson_tests.py tests/
- run: python3 scripts/generate_meson_dbzero.py dbzero/
- run: git config --global user.email "you@example.com"
- run: git config --global user.name "Your Name"
- run: rm .gitignore
Expand All @@ -97,6 +101,77 @@ jobs:
name: wheels-linux-${{ matrix.python-version }}
path: dist/*.whl

test-wheels-windows:
runs-on: windows-latest
needs: wheels-windows
strategy:
fail-fast: false
matrix:
include:
- python-version: "3.10"
python-tag: "310"
architecture: "AMD64"
- python-version: "3.11"
python-tag: "311"
architecture: "AMD64"
- python-version: "3.12"
python-tag: "312"
architecture: "AMD64"
- python-version: "3.13"
python-tag: "313"
architecture: "AMD64"
- python-version: "3.14"
python-tag: "314"
architecture: "AMD64"
steps:
- uses: actions/checkout@v4
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}
- name: Download wheel artifact
uses: actions/download-artifact@v4
with:
name: wheels-windows-${{ matrix.python-version }}
path: ./wheels/
- name: Install wheel and dependencies
run: |
pip install pytest
pip install -r requirements.txt
Get-ChildItem -Path "./wheels/*.whl" | ForEach-Object { pip install $_.FullName }
shell: powershell
- name: Run tests
run: |
python -m pytest -m 'not integration_test' -m 'not stress_test' -c pytest.ini --capture=no -vv

test-wheels-linux:
runs-on: ubuntu-latest
needs: wheels-linux
strategy:
fail-fast: false
matrix:
python-version: ["3.10", "3.11", "3.12", "3.13", "3.14"]

steps:
- uses: actions/checkout@v4
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}
- name: Download wheel artifact
uses: actions/download-artifact@v4
with:
name: wheels-linux-${{ matrix.python-version }}
path: ./wheels/
- name: Install wheel and dependencies
run: |
pip install pytest
pip install -r requirements.txt
pip install ./wheels/*.whl
- name: Run tests
run: |
python -m pytest -m 'not integration_test' -m 'not stress_test' -c pytest.ini --capture=no -vv

sdist:
runs-on: ubuntu-latest
steps:
Expand All @@ -105,6 +180,7 @@ jobs:
run: |
python scripts/generate_meson.py ./src/dbzero/ core
python scripts/generate_meson_tests.py tests/
python scripts/generate_meson_dbzero.py dbzero/

- name: Configure git
run: |
Expand All @@ -122,7 +198,7 @@ jobs:
deploy-to-pypi:
name: Deploy to PyPI (Manual)
runs-on: ubuntu-latest
needs: [sdist, wheels-linux, wheels-windows]
needs: [sdist, test-wheels-windows]
if: github.event_name == 'workflow_dispatch'
environment: pypi-deployment
permissions:
Expand Down
72 changes: 72 additions & 0 deletions .github/workflows/build-and-test.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,72 @@
name: Build and Deploy Packages
on:
push:
branches: [ "main" ]
pull_request:
branches: [ "main" ]
workflow_dispatch:

jobs:
build-linux:
runs-on: ubuntu-latest
timeout-minutes: 60
strategy:
fail-fast: false
matrix:
python-version: ["3.12"]
steps:
- uses: actions/checkout@v4
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}
- uses: actions/checkout@v3
- run: python3 scripts/generate_meson.py ./src/dbzero/ core
- run: python3 scripts/generate_meson_tests.py tests/
- run: python3 scripts/generate_meson_dbzero.py dbzero/
- run: git config --global user.email "you@example.com"
- run: git config --global user.name "Your Name"
- run: rm .gitignore
- run: git add . && git commit -m "Update meson files"
- run: pip install build
- run: python3 -m build
env:
CIBW_SKIP: pp* cp36-* *-musllinux*
CIBW_ARCHS_MACOS: x86_64 arm64
CIBW_ARCHS_LINUX: x86_64 aarch64
CIBW_ARCHS_WINDOWS: ${{ matrix.architecture }}

- uses: actions/upload-artifact@v4
with:
name: wheels-linux-${{ matrix.python-version }}
path: dist/*.whl

test-wheels-linux:
runs-on: ubuntu-latest
timeout-minutes: 15
needs: build-linux
strategy:
fail-fast: false
matrix:
python-version: ["3.12"]

steps:
- uses: actions/checkout@v4
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}
- name: Download wheel artifact
uses: actions/download-artifact@v4
with:
name: wheels-linux-${{ matrix.python-version }}
path: ./wheels/
- name: Install wheel and dependencies
run: |
pip install pytest
pip install -r requirements.txt
pip install ./wheels/*.whl
- name: Run tests
run: |
python -m pytest -m 'not integration_test' -m 'not stress_test' -c pytest.ini --capture=no -vv

3 changes: 1 addition & 2 deletions requirements.txt
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,5 @@ pytest==7.2.1
pytest-asyncio==0.23.8
build==0.10.0
meson-python==0.13.2
patchelf==0.17.2.1
fasteners==0.19
psutil==7.0.0
psutil==7.0.0
22 changes: 16 additions & 6 deletions src/dbzero/bindings/python/collections/PyDict.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -185,29 +185,39 @@ namespace db0::python
{
switch (op) {
case Py_EQ: {
// First check sizes
if (dict_obj->ext().size() != PyDict_Size(other)) {

// check sizes

if(PyDict_Check(other)) {
if (dict_obj->ext().size() != (size_t)(PyDict_Size(other))) {
return PyBool_fromBool(false);
}
} else if (DictObject_Check(other)) {
DictObject * other_list = (DictObject*) other;
if (dict_obj->ext().size() != other_list->ext().size()) {
return PyBool_fromBool(false);
}
} else {
// false if types do not match
return PyBool_fromBool(false);
}



// Check all key-value pairs match
auto iterator = Py_OWN(PyObject_GetIter(dict_obj));
if (!iterator) {
return nullptr;
}

ObjectSharedPtr key;
Py_FOR(key, iterator) {
auto our_value = Py_OWN(tryDictObject_GetItem(dict_obj, *key));
if (!our_value) {
return nullptr;
}

auto their_value = Py_OWN(PyDict_GetItem(other, *key));
if (!their_value) {
return PyBool_fromBool(false);
}

int cmp_result = PyObject_RichCompareBool(*our_value, *their_value, Py_EQ);
if (cmp_result == -1) {
return nullptr;
Expand Down