dtcc-pyspade-native


Namedtcc-pyspade-native JSON
Version 0.1.1 PyPI version JSON
download
home_pageNone
SummarySpade C++ triangulation library packaged for Python projects (C++ only, no Python bindings)
upload_time2025-10-24 12:37:52
maintainerNone
docs_urlNone
authorNone
requires_python>=3.8
licenseMIT OR Apache-2.0
keywords triangulation delaunay mesh geometry cdt constrained-delaunay cpp native spade
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # dtcc-pyspade-native

[![PyPI version](https://badge.fury.io/py/dtcc-pyspade-native.svg)](https://badge.fury.io/py/dtcc-pyspade-native)
[![License](https://img.shields.io/badge/license-MIT%20OR%20Apache--2.0-blue.svg)](LICENSE)
[![Python](https://img.shields.io/pypi/pyversions/dtcc-pyspade-native.svg)](https://pypi.org/project/dtcc-pyspade-native/)

**Ship the Spade C++ triangulation library with your Python package** - no Python bindings, just pure C++ for your C++ extensions.

## What is this?

`dtcc-pyspade-native` packages the [Spade](https://github.com/Stoeoef/spade) C++ Delaunay triangulation library for distribution via PyPI. It's designed for Python projects that have C++ components and need fast, robust 2D triangulation.

**Key Point**: This package provides **C++ libraries only** - no Python API. Use it when your Python project already has C++ extensions (pybind11, Cython, etc.) and you want to use Spade in that C++ code.

## Quick Start

### Install

```bash
pip install dtcc-pyspade-native
```

### Use in Your Python Project

**pyproject.toml:**
```toml
[build-system]
requires = ["scikit-build-core", "pybind11", "dtcc-pyspade-native>=0.1.0"]

[project]
dependencies = ["dtcc-pyspade-native>=0.1.0"]
```

**CMakeLists.txt:**
```cmake
find_package(Python REQUIRED COMPONENTS Interpreter)

execute_process(
    COMMAND ${Python_EXECUTABLE} -c "import pyspade_native; print(pyspade_native.get_cmake_dir())"
    OUTPUT_VARIABLE PYSPADE_CMAKE_DIR
    OUTPUT_STRIP_TRAILING_WHITESPACE
)

find_package(pyspade_native REQUIRED PATHS ${PYSPADE_CMAKE_DIR} NO_DEFAULT_PATH)

target_link_libraries(your_module PRIVATE pyspade_native::spade_wrapper)
```

**your_module.cpp:**
```cpp
#include <spade_wrapper.h>

void triangulate() {
    std::vector<spade::Point> polygon = {{0,0,0}, {1,0,0}, {0.5,1,0}};
    auto result = spade::triangulate(polygon, {}, {}, 0.5,
                                     spade::Quality::Moderate, true);
    // Use result.points, result.triangles...
}
```

## Features

- ✅ **Easy Distribution**: Install via pip, no manual C++ library management
- ✅ **Cross-Platform**: Pre-built wheels for Linux, macOS, Windows
- ✅ **CMake Integration**: Clean `find_package()` support
- ✅ **No Rust Required**: Ships pre-built Rust FFI library
- ✅ **C++17**: Modern C++ API with STL containers
- ✅ **Constrained Delaunay**: Full CDT support with mesh refinement

## Use Cases

Perfect for:
- Python packages with pybind11/Cython/cffi extensions
- GIS applications with C++ backends
- Scientific computing tools
- CAD/CAM software with Python interfaces
- Any Python project that needs C++ triangulation

## Documentation

- [Installation Guide](docs/installation.md)
- [CMake Integration](docs/cmake.md)
- [C++ API Reference](docs/api.md)
- [Example Projects](examples/)
- [Troubleshooting](docs/troubleshooting.md)

## Python Helper API

```python
import pyspade_native

# Get paths for your build system
include_dir = pyspade_native.get_include_dir()
library_dir = pyspade_native.get_library_dir()
cmake_dir = pyspade_native.get_cmake_dir()

# Get available libraries
libs = pyspade_native.get_libraries()
# {'spade_wrapper': '/path/to/libspade_wrapper.so',
#  'spade_ffi': '/path/to/libspade_ffi.so'}

# Print installation info
pyspade_native.print_info()
```

## C++ API

The Spade C++ wrapper provides a clean, modern interface:

```cpp
namespace spade {
    // Triangulate a polygon with optional holes and interior constraints
    TriangulationResult triangulate(
        const std::vector<Point>& outer,
        const std::vector<std::vector<Point>>& holes = {},
        const std::vector<std::vector<Point>>& interior_loops = {},
        double maxh = 1.0,
        Quality quality = Quality::Default,
        bool enforce_constraints = true
    );

    enum class Quality {
        Default,   // No angle constraints
        Moderate   // 25-degree minimum angle
    };

    struct TriangulationResult {
        std::vector<Point> points;
        std::vector<Triangle> triangles;
        std::vector<Edge> edges;
        size_t num_vertices() const;
        size_t num_triangles() const;
        size_t num_edges() const;
    };
}
```

## Example Project

See [examples/complete-project](examples/complete-project) for a full working example of a Python package that uses dtcc-pyspade-native.

```bash
cd examples/complete-project
pip install .
python -c "from my_package import triangulate; print(triangulate([[0,0],[1,0],[0.5,1]]))"
```

## Building from Source

```bash
git clone https://github.com/dtcc-platform/dtcc-pyspade-native
cd dtcc-pyspade-native
pip install -e .
```

### Development

```bash
# Install in editable mode
pip install -e ".[dev]"

# Run tests
pytest tests/

# Build wheels
python -m build

# Run examples
cd examples/complete-project && pip install . && python test.py
```

## Requirements

### For Installation
- Python 3.8+
- C++ compiler with C++17 support
- CMake 3.15+

### For Building from Source
- All of the above
- Rust toolchain (automatically fetched if not present)

## Contributing

Contributions welcome! See [CONTRIBUTING.md](CONTRIBUTING.md) for guidelines.

## License

Dual-licensed under MIT OR Apache-2.0, matching the Spade library.

## Acknowledgments

This project packages the [Spade](https://github.com/Stoeoef/spade) library by Stefan Löffler for easy Python distribution. Developed as part of the [DTCC Platform](https://github.com/dtcc-platform).

## Links

- [PyPI Package](https://pypi.org/project/dtcc-pyspade-native/)
- [GitHub Repository](https://github.com/dtcc-platform/dtcc-pyspade-native)
- [Issue Tracker](https://github.com/dtcc-platform/dtcc-pyspade-native/issues)
- [Spade Library](https://github.com/Stoeoef/spade)
- [Documentation](https://dtcc-platform.github.io/dtcc-pyspade-native/)
            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "dtcc-pyspade-native",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.8",
    "maintainer_email": "DTCC Dev Team <dtcc@chalmers.se>",
    "keywords": "triangulation, delaunay, mesh, geometry, cdt, constrained-delaunay, cpp, native, spade",
    "author": null,
    "author_email": "Vasilis Naserentin <vasilis.naserentin@chalmers.se>",
    "download_url": "https://files.pythonhosted.org/packages/dd/eb/fef9926c2a0c71186e4df9a64a7697ff0c17aca19b564f7d46be8784b4b2/dtcc_pyspade_native-0.1.1.tar.gz",
    "platform": null,
    "description": "# dtcc-pyspade-native\n\n[![PyPI version](https://badge.fury.io/py/dtcc-pyspade-native.svg)](https://badge.fury.io/py/dtcc-pyspade-native)\n[![License](https://img.shields.io/badge/license-MIT%20OR%20Apache--2.0-blue.svg)](LICENSE)\n[![Python](https://img.shields.io/pypi/pyversions/dtcc-pyspade-native.svg)](https://pypi.org/project/dtcc-pyspade-native/)\n\n**Ship the Spade C++ triangulation library with your Python package** - no Python bindings, just pure C++ for your C++ extensions.\n\n## What is this?\n\n`dtcc-pyspade-native` packages the [Spade](https://github.com/Stoeoef/spade) C++ Delaunay triangulation library for distribution via PyPI. It's designed for Python projects that have C++ components and need fast, robust 2D triangulation.\n\n**Key Point**: This package provides **C++ libraries only** - no Python API. Use it when your Python project already has C++ extensions (pybind11, Cython, etc.) and you want to use Spade in that C++ code.\n\n## Quick Start\n\n### Install\n\n```bash\npip install dtcc-pyspade-native\n```\n\n### Use in Your Python Project\n\n**pyproject.toml:**\n```toml\n[build-system]\nrequires = [\"scikit-build-core\", \"pybind11\", \"dtcc-pyspade-native>=0.1.0\"]\n\n[project]\ndependencies = [\"dtcc-pyspade-native>=0.1.0\"]\n```\n\n**CMakeLists.txt:**\n```cmake\nfind_package(Python REQUIRED COMPONENTS Interpreter)\n\nexecute_process(\n    COMMAND ${Python_EXECUTABLE} -c \"import pyspade_native; print(pyspade_native.get_cmake_dir())\"\n    OUTPUT_VARIABLE PYSPADE_CMAKE_DIR\n    OUTPUT_STRIP_TRAILING_WHITESPACE\n)\n\nfind_package(pyspade_native REQUIRED PATHS ${PYSPADE_CMAKE_DIR} NO_DEFAULT_PATH)\n\ntarget_link_libraries(your_module PRIVATE pyspade_native::spade_wrapper)\n```\n\n**your_module.cpp:**\n```cpp\n#include <spade_wrapper.h>\n\nvoid triangulate() {\n    std::vector<spade::Point> polygon = {{0,0,0}, {1,0,0}, {0.5,1,0}};\n    auto result = spade::triangulate(polygon, {}, {}, 0.5,\n                                     spade::Quality::Moderate, true);\n    // Use result.points, result.triangles...\n}\n```\n\n## Features\n\n- \u2705 **Easy Distribution**: Install via pip, no manual C++ library management\n- \u2705 **Cross-Platform**: Pre-built wheels for Linux, macOS, Windows\n- \u2705 **CMake Integration**: Clean `find_package()` support\n- \u2705 **No Rust Required**: Ships pre-built Rust FFI library\n- \u2705 **C++17**: Modern C++ API with STL containers\n- \u2705 **Constrained Delaunay**: Full CDT support with mesh refinement\n\n## Use Cases\n\nPerfect for:\n- Python packages with pybind11/Cython/cffi extensions\n- GIS applications with C++ backends\n- Scientific computing tools\n- CAD/CAM software with Python interfaces\n- Any Python project that needs C++ triangulation\n\n## Documentation\n\n- [Installation Guide](docs/installation.md)\n- [CMake Integration](docs/cmake.md)\n- [C++ API Reference](docs/api.md)\n- [Example Projects](examples/)\n- [Troubleshooting](docs/troubleshooting.md)\n\n## Python Helper API\n\n```python\nimport pyspade_native\n\n# Get paths for your build system\ninclude_dir = pyspade_native.get_include_dir()\nlibrary_dir = pyspade_native.get_library_dir()\ncmake_dir = pyspade_native.get_cmake_dir()\n\n# Get available libraries\nlibs = pyspade_native.get_libraries()\n# {'spade_wrapper': '/path/to/libspade_wrapper.so',\n#  'spade_ffi': '/path/to/libspade_ffi.so'}\n\n# Print installation info\npyspade_native.print_info()\n```\n\n## C++ API\n\nThe Spade C++ wrapper provides a clean, modern interface:\n\n```cpp\nnamespace spade {\n    // Triangulate a polygon with optional holes and interior constraints\n    TriangulationResult triangulate(\n        const std::vector<Point>& outer,\n        const std::vector<std::vector<Point>>& holes = {},\n        const std::vector<std::vector<Point>>& interior_loops = {},\n        double maxh = 1.0,\n        Quality quality = Quality::Default,\n        bool enforce_constraints = true\n    );\n\n    enum class Quality {\n        Default,   // No angle constraints\n        Moderate   // 25-degree minimum angle\n    };\n\n    struct TriangulationResult {\n        std::vector<Point> points;\n        std::vector<Triangle> triangles;\n        std::vector<Edge> edges;\n        size_t num_vertices() const;\n        size_t num_triangles() const;\n        size_t num_edges() const;\n    };\n}\n```\n\n## Example Project\n\nSee [examples/complete-project](examples/complete-project) for a full working example of a Python package that uses dtcc-pyspade-native.\n\n```bash\ncd examples/complete-project\npip install .\npython -c \"from my_package import triangulate; print(triangulate([[0,0],[1,0],[0.5,1]]))\"\n```\n\n## Building from Source\n\n```bash\ngit clone https://github.com/dtcc-platform/dtcc-pyspade-native\ncd dtcc-pyspade-native\npip install -e .\n```\n\n### Development\n\n```bash\n# Install in editable mode\npip install -e \".[dev]\"\n\n# Run tests\npytest tests/\n\n# Build wheels\npython -m build\n\n# Run examples\ncd examples/complete-project && pip install . && python test.py\n```\n\n## Requirements\n\n### For Installation\n- Python 3.8+\n- C++ compiler with C++17 support\n- CMake 3.15+\n\n### For Building from Source\n- All of the above\n- Rust toolchain (automatically fetched if not present)\n\n## Contributing\n\nContributions welcome! See [CONTRIBUTING.md](CONTRIBUTING.md) for guidelines.\n\n## License\n\nDual-licensed under MIT OR Apache-2.0, matching the Spade library.\n\n## Acknowledgments\n\nThis project packages the [Spade](https://github.com/Stoeoef/spade) library by Stefan L\u00f6ffler for easy Python distribution. Developed as part of the [DTCC Platform](https://github.com/dtcc-platform).\n\n## Links\n\n- [PyPI Package](https://pypi.org/project/dtcc-pyspade-native/)\n- [GitHub Repository](https://github.com/dtcc-platform/dtcc-pyspade-native)\n- [Issue Tracker](https://github.com/dtcc-platform/dtcc-pyspade-native/issues)\n- [Spade Library](https://github.com/Stoeoef/spade)\n- [Documentation](https://dtcc-platform.github.io/dtcc-pyspade-native/)",
    "bugtrack_url": null,
    "license": "MIT OR Apache-2.0",
    "summary": "Spade C++ triangulation library packaged for Python projects (C++ only, no Python bindings)",
    "version": "0.1.1",
    "project_urls": {
        "Changelog": "https://github.com/dtcc-platform/dtcc-pyspade-native/blob/main/CHANGELOG.md",
        "Documentation": "https://dtcc-platform.github.io/dtcc-pyspade-native/",
        "Homepage": "https://github.com/dtcc-platform/dtcc-pyspade-native",
        "Issues": "https://github.com/dtcc-platform/dtcc-pyspade-native/issues",
        "Repository": "https://github.com/dtcc-platform/dtcc-pyspade-native"
    },
    "split_keywords": [
        "triangulation",
        " delaunay",
        " mesh",
        " geometry",
        " cdt",
        " constrained-delaunay",
        " cpp",
        " native",
        " spade"
    ],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "b5d876d9adc5beac7c223d98a124f28bf4ae2d4c4692c87103823dff2a8e55c6",
                "md5": "d47de632050462a94458c46e5a1859f9",
                "sha256": "d76b6ac2d8e8b08bac3f32f0ed8e670ffac73f0d1c50d22a6a3f0ea873a2a907"
            },
            "downloads": -1,
            "filename": "dtcc_pyspade_native-0.1.1-cp310-cp310-macosx_10_12_x86_64.whl",
            "has_sig": false,
            "md5_digest": "d47de632050462a94458c46e5a1859f9",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": ">=3.8",
            "size": 268727,
            "upload_time": "2025-10-24T12:37:19",
            "upload_time_iso_8601": "2025-10-24T12:37:19.709103Z",
            "url": "https://files.pythonhosted.org/packages/b5/d8/76d9adc5beac7c223d98a124f28bf4ae2d4c4692c87103823dff2a8e55c6/dtcc_pyspade_native-0.1.1-cp310-cp310-macosx_10_12_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "3fa94643a88ac3ee40e2f17e63e639d715e5dbb2303769ff16be1de77159772f",
                "md5": "427daaf0238ba15a7458ef0f58d49bab",
                "sha256": "a3a51e25617c8bfe12764da8af36b17a0129df8c68e820160cf0c2c05deb4cdb"
            },
            "downloads": -1,
            "filename": "dtcc_pyspade_native-0.1.1-cp310-cp310-macosx_11_0_arm64.whl",
            "has_sig": false,
            "md5_digest": "427daaf0238ba15a7458ef0f58d49bab",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": ">=3.8",
            "size": 248355,
            "upload_time": "2025-10-24T12:37:21",
            "upload_time_iso_8601": "2025-10-24T12:37:21.064331Z",
            "url": "https://files.pythonhosted.org/packages/3f/a9/4643a88ac3ee40e2f17e63e639d715e5dbb2303769ff16be1de77159772f/dtcc_pyspade_native-0.1.1-cp310-cp310-macosx_11_0_arm64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "4cbbf9a335a77d4bc7c86201621a049ce8846868695fd491afeb3ee566d0cb2c",
                "md5": "43434d6dd5640940d423969cc4b60cb7",
                "sha256": "23e63f68c02b75664f7d072aeab668e53f71d01d70807acbdc837669a9604cd5"
            },
            "downloads": -1,
            "filename": "dtcc_pyspade_native-0.1.1-cp310-cp310-manylinux_2_28_x86_64.whl",
            "has_sig": false,
            "md5_digest": "43434d6dd5640940d423969cc4b60cb7",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": ">=3.8",
            "size": 276344,
            "upload_time": "2025-10-24T12:37:22",
            "upload_time_iso_8601": "2025-10-24T12:37:22.530331Z",
            "url": "https://files.pythonhosted.org/packages/4c/bb/f9a335a77d4bc7c86201621a049ce8846868695fd491afeb3ee566d0cb2c/dtcc_pyspade_native-0.1.1-cp310-cp310-manylinux_2_28_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "7ee7a2d09b571c4731ed30701e9816e33a6882894e20965f7aab5a9bf3d167dc",
                "md5": "b5ca5f28b59dab0da771054dde101dcc",
                "sha256": "10d2b0fa35197e75240b825abd8c2c5d13b136a0cc63b60ed3ce7e44fa4b567c"
            },
            "downloads": -1,
            "filename": "dtcc_pyspade_native-0.1.1-cp310-cp310-win32.whl",
            "has_sig": false,
            "md5_digest": "b5ca5f28b59dab0da771054dde101dcc",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": ">=3.8",
            "size": 128398,
            "upload_time": "2025-10-24T12:37:24",
            "upload_time_iso_8601": "2025-10-24T12:37:24.064688Z",
            "url": "https://files.pythonhosted.org/packages/7e/e7/a2d09b571c4731ed30701e9816e33a6882894e20965f7aab5a9bf3d167dc/dtcc_pyspade_native-0.1.1-cp310-cp310-win32.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "6680b230ba00bf87f06569b1c46542a605d327bcb132c3589d1a63b5bd1aee87",
                "md5": "2361dd4e4451078f36d6b215a2b8b70f",
                "sha256": "c8a02775acd33130284c7b7470b9dced36f73769005025d59c4d04da0435914c"
            },
            "downloads": -1,
            "filename": "dtcc_pyspade_native-0.1.1-cp310-cp310-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "2361dd4e4451078f36d6b215a2b8b70f",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": ">=3.8",
            "size": 135486,
            "upload_time": "2025-10-24T12:37:25",
            "upload_time_iso_8601": "2025-10-24T12:37:25.361162Z",
            "url": "https://files.pythonhosted.org/packages/66/80/b230ba00bf87f06569b1c46542a605d327bcb132c3589d1a63b5bd1aee87/dtcc_pyspade_native-0.1.1-cp310-cp310-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "7489c7d1022105226cfb1559df4c751ab6aa1039c20778742b0cc9d56e4774b3",
                "md5": "3ed1a345a2e4a3a7968f41267d5b8757",
                "sha256": "4514e670d9820b12c87d522be048ba5bf9a82614a44a70057c60fd31e976c31e"
            },
            "downloads": -1,
            "filename": "dtcc_pyspade_native-0.1.1-cp311-cp311-macosx_10_12_x86_64.whl",
            "has_sig": false,
            "md5_digest": "3ed1a345a2e4a3a7968f41267d5b8757",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": ">=3.8",
            "size": 268728,
            "upload_time": "2025-10-24T12:37:26",
            "upload_time_iso_8601": "2025-10-24T12:37:26.820911Z",
            "url": "https://files.pythonhosted.org/packages/74/89/c7d1022105226cfb1559df4c751ab6aa1039c20778742b0cc9d56e4774b3/dtcc_pyspade_native-0.1.1-cp311-cp311-macosx_10_12_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "23b4881a20d0cb0e267a839413ad2febfdb2813d47ea19e37f2c9772f90e6425",
                "md5": "ce06831b5e837b72a00b4f3ebb306b19",
                "sha256": "a8d781ab8538c7f99a57de79d4f61ff6643844aabb4f6f4ca2cdf4295e036892"
            },
            "downloads": -1,
            "filename": "dtcc_pyspade_native-0.1.1-cp311-cp311-macosx_11_0_arm64.whl",
            "has_sig": false,
            "md5_digest": "ce06831b5e837b72a00b4f3ebb306b19",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": ">=3.8",
            "size": 248353,
            "upload_time": "2025-10-24T12:37:28",
            "upload_time_iso_8601": "2025-10-24T12:37:28.281530Z",
            "url": "https://files.pythonhosted.org/packages/23/b4/881a20d0cb0e267a839413ad2febfdb2813d47ea19e37f2c9772f90e6425/dtcc_pyspade_native-0.1.1-cp311-cp311-macosx_11_0_arm64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "05728cc0fb84c77371154a383d086c3a64e4c66291e6462785e6bc9ba6260a3a",
                "md5": "c0270686b341f063fe79ee35044cb50c",
                "sha256": "7ec1293e16bedc4e5558fc88c29e8894e24f6036fa8196b53a37a5dcb2c275c6"
            },
            "downloads": -1,
            "filename": "dtcc_pyspade_native-0.1.1-cp311-cp311-manylinux_2_28_x86_64.whl",
            "has_sig": false,
            "md5_digest": "c0270686b341f063fe79ee35044cb50c",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": ">=3.8",
            "size": 276346,
            "upload_time": "2025-10-24T12:37:29",
            "upload_time_iso_8601": "2025-10-24T12:37:29.803929Z",
            "url": "https://files.pythonhosted.org/packages/05/72/8cc0fb84c77371154a383d086c3a64e4c66291e6462785e6bc9ba6260a3a/dtcc_pyspade_native-0.1.1-cp311-cp311-manylinux_2_28_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "94d4312868330b837aab7b044e27562c3eaa1dc6ca12ee7e4efd6941b94eb473",
                "md5": "48c9d7874e66ccaa2bdebcf2b0052c54",
                "sha256": "e5d03430c5a1f9960b98ac656c478f26f27e410a0d1f6f89dcb434ea98696f30"
            },
            "downloads": -1,
            "filename": "dtcc_pyspade_native-0.1.1-cp311-cp311-win32.whl",
            "has_sig": false,
            "md5_digest": "48c9d7874e66ccaa2bdebcf2b0052c54",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": ">=3.8",
            "size": 128397,
            "upload_time": "2025-10-24T12:37:31",
            "upload_time_iso_8601": "2025-10-24T12:37:31.283711Z",
            "url": "https://files.pythonhosted.org/packages/94/d4/312868330b837aab7b044e27562c3eaa1dc6ca12ee7e4efd6941b94eb473/dtcc_pyspade_native-0.1.1-cp311-cp311-win32.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "c2c8231991dff4bfed1004df31107db1a651775be8ceca8307f592331637827b",
                "md5": "a80c98a20a18d9584dd460b0698c0a94",
                "sha256": "0679d02c08b96523bbb41215e5d545eb240f7eb16fe2089cd5f878147974f7fd"
            },
            "downloads": -1,
            "filename": "dtcc_pyspade_native-0.1.1-cp311-cp311-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "a80c98a20a18d9584dd460b0698c0a94",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": ">=3.8",
            "size": 135485,
            "upload_time": "2025-10-24T12:37:32",
            "upload_time_iso_8601": "2025-10-24T12:37:32.696659Z",
            "url": "https://files.pythonhosted.org/packages/c2/c8/231991dff4bfed1004df31107db1a651775be8ceca8307f592331637827b/dtcc_pyspade_native-0.1.1-cp311-cp311-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "dbbfa82343e4211c4350c83d257e0739b2694c3f95f5f3bce4f4a618f80680d2",
                "md5": "234763a5d0519f2ed4b30290d197d735",
                "sha256": "48ebbb15594bcd41f47aa0c265e016609e0f19989bbf06bf0b96c9db19ec1140"
            },
            "downloads": -1,
            "filename": "dtcc_pyspade_native-0.1.1-cp312-cp312-macosx_10_13_x86_64.whl",
            "has_sig": false,
            "md5_digest": "234763a5d0519f2ed4b30290d197d735",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": ">=3.8",
            "size": 268729,
            "upload_time": "2025-10-24T12:37:34",
            "upload_time_iso_8601": "2025-10-24T12:37:34.089677Z",
            "url": "https://files.pythonhosted.org/packages/db/bf/a82343e4211c4350c83d257e0739b2694c3f95f5f3bce4f4a618f80680d2/dtcc_pyspade_native-0.1.1-cp312-cp312-macosx_10_13_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "7cba9e536d3157b0fc3008ee2cbb4d5e1f9d996d98cc6f1306fa5799a13758ab",
                "md5": "3f37a74fab5729734c7f3cdaa99171ba",
                "sha256": "7bfa1a3dac287abdf0038146671b43f5f59e8713f20ffa2497ce22dc5c304f3a"
            },
            "downloads": -1,
            "filename": "dtcc_pyspade_native-0.1.1-cp312-cp312-macosx_11_0_arm64.whl",
            "has_sig": false,
            "md5_digest": "3f37a74fab5729734c7f3cdaa99171ba",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": ">=3.8",
            "size": 248353,
            "upload_time": "2025-10-24T12:37:35",
            "upload_time_iso_8601": "2025-10-24T12:37:35.192527Z",
            "url": "https://files.pythonhosted.org/packages/7c/ba/9e536d3157b0fc3008ee2cbb4d5e1f9d996d98cc6f1306fa5799a13758ab/dtcc_pyspade_native-0.1.1-cp312-cp312-macosx_11_0_arm64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "698e7f85e7d81906b24dafc9001b4360b505d4b88ceeec113bca55665bd6006e",
                "md5": "51f5c5d458318534466dff3889f5440a",
                "sha256": "b1a787bb6b4fdf082dd36864e352590718e5be0c4aaa67b330271794400ba99a"
            },
            "downloads": -1,
            "filename": "dtcc_pyspade_native-0.1.1-cp312-cp312-manylinux_2_28_x86_64.whl",
            "has_sig": false,
            "md5_digest": "51f5c5d458318534466dff3889f5440a",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": ">=3.8",
            "size": 276344,
            "upload_time": "2025-10-24T12:37:36",
            "upload_time_iso_8601": "2025-10-24T12:37:36.295057Z",
            "url": "https://files.pythonhosted.org/packages/69/8e/7f85e7d81906b24dafc9001b4360b505d4b88ceeec113bca55665bd6006e/dtcc_pyspade_native-0.1.1-cp312-cp312-manylinux_2_28_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "709cb490c4f40e9cf679cb8a501712184602de9ea37206681158d7f322b237b9",
                "md5": "ce854ce554124e900efd4c1cd2dbc61d",
                "sha256": "a92f4c1207dbb655d256b271c108861e7af84ccedbaf37db15193fc969cf1ced"
            },
            "downloads": -1,
            "filename": "dtcc_pyspade_native-0.1.1-cp312-cp312-win32.whl",
            "has_sig": false,
            "md5_digest": "ce854ce554124e900efd4c1cd2dbc61d",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": ">=3.8",
            "size": 128397,
            "upload_time": "2025-10-24T12:37:37",
            "upload_time_iso_8601": "2025-10-24T12:37:37.414328Z",
            "url": "https://files.pythonhosted.org/packages/70/9c/b490c4f40e9cf679cb8a501712184602de9ea37206681158d7f322b237b9/dtcc_pyspade_native-0.1.1-cp312-cp312-win32.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "2672e23503da5ab4c003aee4cb178a5cf00e5217e87a4b5d2d5319e2d1bea119",
                "md5": "e5a50400fa3a1c412e95a028da101127",
                "sha256": "48047b9fdd7cb4c202d6e4a3468a788d7456be77133336bfccc2a25d9332ed4b"
            },
            "downloads": -1,
            "filename": "dtcc_pyspade_native-0.1.1-cp312-cp312-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "e5a50400fa3a1c412e95a028da101127",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": ">=3.8",
            "size": 135485,
            "upload_time": "2025-10-24T12:37:38",
            "upload_time_iso_8601": "2025-10-24T12:37:38.329234Z",
            "url": "https://files.pythonhosted.org/packages/26/72/e23503da5ab4c003aee4cb178a5cf00e5217e87a4b5d2d5319e2d1bea119/dtcc_pyspade_native-0.1.1-cp312-cp312-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "15e8dd946da1be61b2f312cec6fa3eab040daf000e9b701bfe8869164c7406fc",
                "md5": "f16664730b81ea2f4d2f2f10cae438d9",
                "sha256": "f265e91c939409c9398135b477a4006905411cbf2b9e8bae3e33aaa66aa98ae0"
            },
            "downloads": -1,
            "filename": "dtcc_pyspade_native-0.1.1-cp38-cp38-macosx_10_12_x86_64.whl",
            "has_sig": false,
            "md5_digest": "f16664730b81ea2f4d2f2f10cae438d9",
            "packagetype": "bdist_wheel",
            "python_version": "cp38",
            "requires_python": ">=3.8",
            "size": 268715,
            "upload_time": "2025-10-24T12:37:39",
            "upload_time_iso_8601": "2025-10-24T12:37:39.319825Z",
            "url": "https://files.pythonhosted.org/packages/15/e8/dd946da1be61b2f312cec6fa3eab040daf000e9b701bfe8869164c7406fc/dtcc_pyspade_native-0.1.1-cp38-cp38-macosx_10_12_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "e938f1b2ada779fcaa062ae969c323b0546771fd886bc48e227bebbc09999abc",
                "md5": "8be451146237d9f95a1dbf7344d461b4",
                "sha256": "e0476937be7ae92600af76a892cf2022aa26dd77f936ec08a6f52a397956a1f3"
            },
            "downloads": -1,
            "filename": "dtcc_pyspade_native-0.1.1-cp38-cp38-macosx_11_0_arm64.whl",
            "has_sig": false,
            "md5_digest": "8be451146237d9f95a1dbf7344d461b4",
            "packagetype": "bdist_wheel",
            "python_version": "cp38",
            "requires_python": ">=3.8",
            "size": 248347,
            "upload_time": "2025-10-24T12:37:40",
            "upload_time_iso_8601": "2025-10-24T12:37:40.379951Z",
            "url": "https://files.pythonhosted.org/packages/e9/38/f1b2ada779fcaa062ae969c323b0546771fd886bc48e227bebbc09999abc/dtcc_pyspade_native-0.1.1-cp38-cp38-macosx_11_0_arm64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "5208e9704a982910c5c415231772678880160d84648fef0c3a37309066428bbd",
                "md5": "daba39b337d9d7447f3268716ef32081",
                "sha256": "ca1a14b32d03672a795ceeeecc0aeb56b3189182d28a6cdeb7b7ae0287e821cc"
            },
            "downloads": -1,
            "filename": "dtcc_pyspade_native-0.1.1-cp38-cp38-manylinux_2_28_x86_64.whl",
            "has_sig": false,
            "md5_digest": "daba39b337d9d7447f3268716ef32081",
            "packagetype": "bdist_wheel",
            "python_version": "cp38",
            "requires_python": ">=3.8",
            "size": 276343,
            "upload_time": "2025-10-24T12:37:41",
            "upload_time_iso_8601": "2025-10-24T12:37:41.440313Z",
            "url": "https://files.pythonhosted.org/packages/52/08/e9704a982910c5c415231772678880160d84648fef0c3a37309066428bbd/dtcc_pyspade_native-0.1.1-cp38-cp38-manylinux_2_28_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "121d54f050f25c4713394d9a3a8ebf7dd680bf017ab7bbc369e1867b9a9970fd",
                "md5": "943f1892875c48b7c066310e0c94c24a",
                "sha256": "732938ba87a72e0faec07d214ed8899cc3223ec1cadf36bbe8680b505324b3b9"
            },
            "downloads": -1,
            "filename": "dtcc_pyspade_native-0.1.1-cp38-cp38-win32.whl",
            "has_sig": false,
            "md5_digest": "943f1892875c48b7c066310e0c94c24a",
            "packagetype": "bdist_wheel",
            "python_version": "cp38",
            "requires_python": ">=3.8",
            "size": 128398,
            "upload_time": "2025-10-24T12:37:42",
            "upload_time_iso_8601": "2025-10-24T12:37:42.476968Z",
            "url": "https://files.pythonhosted.org/packages/12/1d/54f050f25c4713394d9a3a8ebf7dd680bf017ab7bbc369e1867b9a9970fd/dtcc_pyspade_native-0.1.1-cp38-cp38-win32.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "618abfabeec111267304e92258496c1cb1e3b0fbab6485a22f69ce4b380b619b",
                "md5": "f888fc67e25586e1d76c763bbb5f18e9",
                "sha256": "42c723b0d866d19e5637320604da995552cde1fd77f49df9e09486cb6a9ca812"
            },
            "downloads": -1,
            "filename": "dtcc_pyspade_native-0.1.1-cp38-cp38-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "f888fc67e25586e1d76c763bbb5f18e9",
            "packagetype": "bdist_wheel",
            "python_version": "cp38",
            "requires_python": ">=3.8",
            "size": 135483,
            "upload_time": "2025-10-24T12:37:43",
            "upload_time_iso_8601": "2025-10-24T12:37:43.418633Z",
            "url": "https://files.pythonhosted.org/packages/61/8a/bfabeec111267304e92258496c1cb1e3b0fbab6485a22f69ce4b380b619b/dtcc_pyspade_native-0.1.1-cp38-cp38-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "c33d54f06d40795e03f26b6e5aab8c9ca699d287df6a824bcdbe7004ae47e52c",
                "md5": "f2e6cd133831a4d0342f13d57be10fcf",
                "sha256": "6c79c70c1731aeb8f0160c1f2caaf9d499ef7981c723b1d3e58c9a31bf8a8b54"
            },
            "downloads": -1,
            "filename": "dtcc_pyspade_native-0.1.1-cp39-cp39-macosx_10_12_x86_64.whl",
            "has_sig": false,
            "md5_digest": "f2e6cd133831a4d0342f13d57be10fcf",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": ">=3.8",
            "size": 268727,
            "upload_time": "2025-10-24T12:37:44",
            "upload_time_iso_8601": "2025-10-24T12:37:44.403485Z",
            "url": "https://files.pythonhosted.org/packages/c3/3d/54f06d40795e03f26b6e5aab8c9ca699d287df6a824bcdbe7004ae47e52c/dtcc_pyspade_native-0.1.1-cp39-cp39-macosx_10_12_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "74d092ddc2537a39c121431e4b4aac7aba4ede58f71e3cc08a98243c3c95ba26",
                "md5": "9945918e7a5673f50a12bb6c2d296ee3",
                "sha256": "37f47d73e8e1c2e748ba68024ed99148a7d15c7ca201f353e4ae4b8a7b22f660"
            },
            "downloads": -1,
            "filename": "dtcc_pyspade_native-0.1.1-cp39-cp39-macosx_11_0_arm64.whl",
            "has_sig": false,
            "md5_digest": "9945918e7a5673f50a12bb6c2d296ee3",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": ">=3.8",
            "size": 248351,
            "upload_time": "2025-10-24T12:37:45",
            "upload_time_iso_8601": "2025-10-24T12:37:45.590358Z",
            "url": "https://files.pythonhosted.org/packages/74/d0/92ddc2537a39c121431e4b4aac7aba4ede58f71e3cc08a98243c3c95ba26/dtcc_pyspade_native-0.1.1-cp39-cp39-macosx_11_0_arm64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "a6f82fd51358ee45667acf2e36d1decf052c305f5d0d8888c629b7057faa34ef",
                "md5": "4e615b0d23705405e4266746a2900a8c",
                "sha256": "eb7dc7f498a9e70c19a24fc0658a7e967ea763c30b8cd3085f0d2f982c5d0b60"
            },
            "downloads": -1,
            "filename": "dtcc_pyspade_native-0.1.1-cp39-cp39-manylinux_2_28_x86_64.whl",
            "has_sig": false,
            "md5_digest": "4e615b0d23705405e4266746a2900a8c",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": ">=3.8",
            "size": 276344,
            "upload_time": "2025-10-24T12:37:48",
            "upload_time_iso_8601": "2025-10-24T12:37:48.143574Z",
            "url": "https://files.pythonhosted.org/packages/a6/f8/2fd51358ee45667acf2e36d1decf052c305f5d0d8888c629b7057faa34ef/dtcc_pyspade_native-0.1.1-cp39-cp39-manylinux_2_28_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "f89447d5bb1999e531b8cbfdefd07d48033159fdd84b7924840b707059fd38cc",
                "md5": "9e6e37374b88c7816764c48e2c0db242",
                "sha256": "e1e0a900740f27dcd84a293008a5d2540e3d78c75435ab3ad0aae5bef0e2d173"
            },
            "downloads": -1,
            "filename": "dtcc_pyspade_native-0.1.1-cp39-cp39-win32.whl",
            "has_sig": false,
            "md5_digest": "9e6e37374b88c7816764c48e2c0db242",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": ">=3.8",
            "size": 128398,
            "upload_time": "2025-10-24T12:37:49",
            "upload_time_iso_8601": "2025-10-24T12:37:49.431476Z",
            "url": "https://files.pythonhosted.org/packages/f8/94/47d5bb1999e531b8cbfdefd07d48033159fdd84b7924840b707059fd38cc/dtcc_pyspade_native-0.1.1-cp39-cp39-win32.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "a79ecaee94620a97d4a6ff002a2d3b7af59e23e6de37bc90b86baf3379f1d2ef",
                "md5": "969557554937f9d3a075abcce677a763",
                "sha256": "7a465e13cda7c3f96731291ae49e7438831d8ed471f5bb9ab8e85340bb96c5f2"
            },
            "downloads": -1,
            "filename": "dtcc_pyspade_native-0.1.1-cp39-cp39-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "969557554937f9d3a075abcce677a763",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": ">=3.8",
            "size": 135484,
            "upload_time": "2025-10-24T12:37:50",
            "upload_time_iso_8601": "2025-10-24T12:37:50.812968Z",
            "url": "https://files.pythonhosted.org/packages/a7/9e/caee94620a97d4a6ff002a2d3b7af59e23e6de37bc90b86baf3379f1d2ef/dtcc_pyspade_native-0.1.1-cp39-cp39-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "ddebfef9926c2a0c71186e4df9a64a7697ff0c17aca19b564f7d46be8784b4b2",
                "md5": "59d75d97ca90d3f17d93be9310beedd3",
                "sha256": "635348050c6eb153e769fe858655e67679c86e7d41dc137752e504a67034b9d7"
            },
            "downloads": -1,
            "filename": "dtcc_pyspade_native-0.1.1.tar.gz",
            "has_sig": false,
            "md5_digest": "59d75d97ca90d3f17d93be9310beedd3",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.8",
            "size": 34934,
            "upload_time": "2025-10-24T12:37:52",
            "upload_time_iso_8601": "2025-10-24T12:37:52.127870Z",
            "url": "https://files.pythonhosted.org/packages/dd/eb/fef9926c2a0c71186e4df9a64a7697ff0c17aca19b564f7d46be8784b4b2/dtcc_pyspade_native-0.1.1.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-10-24 12:37:52",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "dtcc-platform",
    "github_project": "dtcc-pyspade-native",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "lcname": "dtcc-pyspade-native"
}
        
Elapsed time: 1.37524s