vc-delta3d 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.
- vc_delta3d-0.1.0/.github/workflows/release.yml +113 -0
- vc_delta3d-0.1.0/.gitignore +6 -0
- vc_delta3d-0.1.0/CMakeLists.txt +86 -0
- vc_delta3d-0.1.0/LICENSE +675 -0
- vc_delta3d-0.1.0/PKG-INFO +65 -0
- vc_delta3d-0.1.0/README.md +39 -0
- vc_delta3d-0.1.0/benchmark/.gitignore +1 -0
- vc_delta3d-0.1.0/benchmark/README.md +21 -0
- vc_delta3d-0.1.0/benchmark/bench.cpp +116 -0
- vc_delta3d-0.1.0/benchmark/run.py +205 -0
- vc_delta3d-0.1.0/cmake/vc_delta3dConfig.cmake.in +4 -0
- vc_delta3d-0.1.0/examples/README.md +48 -0
- vc_delta3d-0.1.0/examples/recompress_zarr.py +364 -0
- vc_delta3d-0.1.0/include/vc_delta3d/codec.hpp +120 -0
- vc_delta3d-0.1.0/pyproject.toml +67 -0
- vc_delta3d-0.1.0/python/bindings.cpp +124 -0
- vc_delta3d-0.1.0/python/vc_delta3d/__init__.py +22 -0
- vc_delta3d-0.1.0/python/vc_delta3d/numcodecs.py +68 -0
- vc_delta3d-0.1.0/src/codec.cpp +685 -0
- vc_delta3d-0.1.0/tests/doctest/doctest.h +4 -0
- vc_delta3d-0.1.0/tests/test_codec.cpp +326 -0
- vc_delta3d-0.1.0/tests/test_python.py +42 -0
- vc_delta3d-0.1.0/tests/vc_test.hpp +286 -0
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
name: Build and publish Python distributions
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
pull_request:
|
|
5
|
+
push:
|
|
6
|
+
branches:
|
|
7
|
+
- main
|
|
8
|
+
workflow_dispatch:
|
|
9
|
+
release:
|
|
10
|
+
types:
|
|
11
|
+
- published
|
|
12
|
+
|
|
13
|
+
permissions:
|
|
14
|
+
contents: read
|
|
15
|
+
|
|
16
|
+
jobs:
|
|
17
|
+
build-wheels:
|
|
18
|
+
name: Build ${{ matrix.platform }} wheels
|
|
19
|
+
runs-on: ${{ matrix.os }}
|
|
20
|
+
strategy:
|
|
21
|
+
fail-fast: false
|
|
22
|
+
matrix:
|
|
23
|
+
include:
|
|
24
|
+
- platform: linux-x86_64
|
|
25
|
+
os: ubuntu-24.04
|
|
26
|
+
arch: x86_64
|
|
27
|
+
- platform: linux-aarch64
|
|
28
|
+
os: ubuntu-24.04-arm
|
|
29
|
+
arch: aarch64
|
|
30
|
+
- platform: macos-arm64
|
|
31
|
+
os: macos-14
|
|
32
|
+
arch: arm64
|
|
33
|
+
- platform: windows-amd64
|
|
34
|
+
os: windows-2025
|
|
35
|
+
arch: AMD64
|
|
36
|
+
|
|
37
|
+
steps:
|
|
38
|
+
- name: Check out source
|
|
39
|
+
uses: actions/checkout@v6
|
|
40
|
+
with:
|
|
41
|
+
persist-credentials: false
|
|
42
|
+
|
|
43
|
+
- name: Build and test wheels
|
|
44
|
+
uses: pypa/cibuildwheel@v4.1.1
|
|
45
|
+
env:
|
|
46
|
+
CIBW_ARCHS: ${{ matrix.arch }}
|
|
47
|
+
with:
|
|
48
|
+
output-dir: wheelhouse
|
|
49
|
+
|
|
50
|
+
- name: Upload wheels
|
|
51
|
+
uses: actions/upload-artifact@v6
|
|
52
|
+
with:
|
|
53
|
+
name: wheels-${{ matrix.platform }}
|
|
54
|
+
path: wheelhouse/*.whl
|
|
55
|
+
if-no-files-found: error
|
|
56
|
+
|
|
57
|
+
build-sdist:
|
|
58
|
+
name: Build source distribution
|
|
59
|
+
runs-on: ubuntu-24.04
|
|
60
|
+
|
|
61
|
+
steps:
|
|
62
|
+
- name: Check out source
|
|
63
|
+
uses: actions/checkout@v6
|
|
64
|
+
with:
|
|
65
|
+
persist-credentials: false
|
|
66
|
+
|
|
67
|
+
- name: Set up Python
|
|
68
|
+
uses: actions/setup-python@v6
|
|
69
|
+
with:
|
|
70
|
+
python-version: "3.14"
|
|
71
|
+
|
|
72
|
+
- name: Build and check source distribution
|
|
73
|
+
run: |
|
|
74
|
+
python -m pip install build twine
|
|
75
|
+
python -m build --sdist
|
|
76
|
+
python -m twine check dist/*
|
|
77
|
+
|
|
78
|
+
- name: Upload source distribution
|
|
79
|
+
uses: actions/upload-artifact@v6
|
|
80
|
+
with:
|
|
81
|
+
name: sdist
|
|
82
|
+
path: dist/*.tar.gz
|
|
83
|
+
if-no-files-found: error
|
|
84
|
+
|
|
85
|
+
publish:
|
|
86
|
+
name: Publish to PyPI
|
|
87
|
+
if: github.event_name == 'release' && github.event.action == 'published'
|
|
88
|
+
needs:
|
|
89
|
+
- build-wheels
|
|
90
|
+
- build-sdist
|
|
91
|
+
runs-on: ubuntu-24.04
|
|
92
|
+
environment:
|
|
93
|
+
name: pypi
|
|
94
|
+
url: https://pypi.org/p/vc-delta3d
|
|
95
|
+
permissions:
|
|
96
|
+
id-token: write
|
|
97
|
+
|
|
98
|
+
steps:
|
|
99
|
+
- name: Download distributions
|
|
100
|
+
uses: actions/download-artifact@v5
|
|
101
|
+
with:
|
|
102
|
+
pattern: wheels-*
|
|
103
|
+
path: dist
|
|
104
|
+
merge-multiple: true
|
|
105
|
+
|
|
106
|
+
- name: Download source distribution
|
|
107
|
+
uses: actions/download-artifact@v5
|
|
108
|
+
with:
|
|
109
|
+
name: sdist
|
|
110
|
+
path: dist
|
|
111
|
+
|
|
112
|
+
- name: Publish distributions
|
|
113
|
+
uses: pypa/gh-action-pypi-publish@release/v1
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
cmake_minimum_required(VERSION 3.22)
|
|
2
|
+
|
|
3
|
+
project(vc_delta3d VERSION 0.1.0 LANGUAGES CXX)
|
|
4
|
+
|
|
5
|
+
include(GNUInstallDirs)
|
|
6
|
+
include(CMakePackageConfigHelpers)
|
|
7
|
+
|
|
8
|
+
option(VC_DELTA3D_BUILD_PYTHON "Build the Python extension" OFF)
|
|
9
|
+
option(VC_DELTA3D_BUILD_TESTS "Build the C++ codec tests" ${PROJECT_IS_TOP_LEVEL})
|
|
10
|
+
option(VC_DELTA3D_INSTALL_CPP "Install the C++ library and CMake package" ON)
|
|
11
|
+
|
|
12
|
+
add_library(vc_delta3d STATIC src/codec.cpp)
|
|
13
|
+
add_library(vc_delta3d::vc_delta3d ALIAS vc_delta3d)
|
|
14
|
+
set_target_properties(vc_delta3d PROPERTIES
|
|
15
|
+
EXPORT_NAME vc_delta3d
|
|
16
|
+
POSITION_INDEPENDENT_CODE ON
|
|
17
|
+
)
|
|
18
|
+
target_compile_features(vc_delta3d PUBLIC cxx_std_20)
|
|
19
|
+
target_include_directories(vc_delta3d
|
|
20
|
+
PUBLIC
|
|
21
|
+
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>
|
|
22
|
+
$<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>
|
|
23
|
+
)
|
|
24
|
+
if(VC_DELTA3D_BUILD_PYTHON)
|
|
25
|
+
find_package(Python REQUIRED COMPONENTS Interpreter Development.Module)
|
|
26
|
+
execute_process(
|
|
27
|
+
COMMAND "${Python_EXECUTABLE}" -m nanobind --cmake_dir
|
|
28
|
+
OUTPUT_VARIABLE VC_DELTA3D_NANOBIND_CMAKE_DIR
|
|
29
|
+
RESULT_VARIABLE VC_DELTA3D_NANOBIND_RESULT
|
|
30
|
+
OUTPUT_STRIP_TRAILING_WHITESPACE
|
|
31
|
+
ERROR_QUIET
|
|
32
|
+
)
|
|
33
|
+
if(VC_DELTA3D_NANOBIND_RESULT EQUAL 0 AND VC_DELTA3D_NANOBIND_CMAKE_DIR)
|
|
34
|
+
list(APPEND CMAKE_PREFIX_PATH "${VC_DELTA3D_NANOBIND_CMAKE_DIR}")
|
|
35
|
+
endif()
|
|
36
|
+
find_package(nanobind CONFIG REQUIRED)
|
|
37
|
+
|
|
38
|
+
nanobind_add_module(vc_delta3d_python NOMINSIZE python/bindings.cpp)
|
|
39
|
+
set_target_properties(vc_delta3d_python PROPERTIES OUTPUT_NAME _codec)
|
|
40
|
+
target_link_libraries(vc_delta3d_python PRIVATE vc_delta3d::vc_delta3d)
|
|
41
|
+
target_compile_features(vc_delta3d_python PRIVATE cxx_std_20)
|
|
42
|
+
install(TARGETS vc_delta3d_python
|
|
43
|
+
LIBRARY DESTINATION vc_delta3d
|
|
44
|
+
RUNTIME DESTINATION vc_delta3d
|
|
45
|
+
)
|
|
46
|
+
endif()
|
|
47
|
+
|
|
48
|
+
if(VC_DELTA3D_BUILD_TESTS)
|
|
49
|
+
enable_testing()
|
|
50
|
+
add_executable(vc_delta3d_tests tests/test_codec.cpp)
|
|
51
|
+
target_include_directories(vc_delta3d_tests PRIVATE tests)
|
|
52
|
+
target_link_libraries(vc_delta3d_tests PRIVATE vc_delta3d::vc_delta3d)
|
|
53
|
+
add_test(NAME vc_delta3d_tests COMMAND vc_delta3d_tests)
|
|
54
|
+
endif()
|
|
55
|
+
|
|
56
|
+
if(VC_DELTA3D_INSTALL_CPP)
|
|
57
|
+
install(TARGETS vc_delta3d
|
|
58
|
+
EXPORT vc_delta3dTargets
|
|
59
|
+
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
|
|
60
|
+
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
|
|
61
|
+
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
|
|
62
|
+
INCLUDES DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
|
|
63
|
+
)
|
|
64
|
+
install(DIRECTORY include/ DESTINATION ${CMAKE_INSTALL_INCLUDEDIR})
|
|
65
|
+
install(EXPORT vc_delta3dTargets
|
|
66
|
+
FILE vc_delta3dTargets.cmake
|
|
67
|
+
NAMESPACE vc_delta3d::
|
|
68
|
+
DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/vc_delta3d
|
|
69
|
+
)
|
|
70
|
+
|
|
71
|
+
configure_package_config_file(
|
|
72
|
+
cmake/vc_delta3dConfig.cmake.in
|
|
73
|
+
"${CMAKE_CURRENT_BINARY_DIR}/vc_delta3dConfig.cmake"
|
|
74
|
+
INSTALL_DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/vc_delta3d
|
|
75
|
+
)
|
|
76
|
+
write_basic_package_version_file(
|
|
77
|
+
"${CMAKE_CURRENT_BINARY_DIR}/vc_delta3dConfigVersion.cmake"
|
|
78
|
+
VERSION ${PROJECT_VERSION}
|
|
79
|
+
COMPATIBILITY SameMajorVersion
|
|
80
|
+
)
|
|
81
|
+
install(FILES
|
|
82
|
+
"${CMAKE_CURRENT_BINARY_DIR}/vc_delta3dConfig.cmake"
|
|
83
|
+
"${CMAKE_CURRENT_BINARY_DIR}/vc_delta3dConfigVersion.cmake"
|
|
84
|
+
DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/vc_delta3d
|
|
85
|
+
)
|
|
86
|
+
endif()
|