Skip to main content

Convert messy overlapping polylines into clean topological centerline chains

Project description

topologize

Convert messy, overlapping polylines into a clean topological skeleton.

Given a set of curves — open or closed, possibly intersecting or bundled — topologize inflates them into a region, skeletonizes that region via constrained Delaunay triangulation, and returns a list of maximal non-branching polylines tracing the medial axis.

Before and after on topologize.svg

What it does

The three-stage pipeline:

  1. Inflate — buffer all input curves by inflation_radius and union the results into one or more polygons (Clipper2)
  2. Skeletonize — constrained Delaunay triangulation of the polygon interior; midpoints of internal edges form the skeleton graph
  3. Extract chains — snap nearby endpoints, then traverse the graph to extract maximal non-branching polylines

The output chains share junction points, so the result is a proper topological graph: you can traverse it, measure it, and match it to other representations.

When to use it

Use topologize when you have geometry that approximates a graph and need an actual graph — a set of polylines with shared junction points you can traverse, measure, or match to other data.

Concrete examples:

  • Vector artwork or scanned drawings converted to machine toolpaths (laser, pen plotter, CNC, printing)
  • Road, river, or network centerline extraction from polygon or buffered line data
  • GPS or sensor traces where the same route was recorded multiple times

Installation

pip install topologize

Runtime dependency: numpy only.

To build from source (requires a Rust toolchain):

git clone https://github.com/tdamsma/topologize
cd topologize
uv run maturin develop --release

Quick start

import numpy as np
from topologize import topologize

# Any collection of (N, 2) numpy arrays — open or closed, overlapping is fine
curves = [
    np.array([[0.0, 0.0], [10.0, 0.0], [5.0, 5.0]]),
    np.array([[0.1, 0.1], [9.9, 0.1], [5.1, 4.9]]),  # near-duplicate stroke
]

result = topologize(curves, inflation_radius=0.5)
result.chains          # list of (M, 2) arrays — one per non-branching segment
result.nodes           # (K, 2) array of unique junction/endpoint positions
result.chain_node_ids  # list of (start_id, end_id) per chain

inflation_radius is the main tuning parameter. Use roughly half the typical gap between nearby strokes — small enough to keep distinct paths separate, large enough to merge strokes that belong together.

For variable-width inflation, pass a list of per-vertex radius arrays:

widths_a = np.linspace(0.3, 0.1, len(curve_a))
widths_b = np.linspace(0.1, 0.5, len(curve_b))
result = topologize([curve_a, curve_b], inflation_radius=[widths_a, widths_b])
Parameter Type Description
curves list[np.ndarray] Input polylines, each (N, 2) or (N, 3) with per-vertex widths. Closed curves should repeat the first point at the end.
inflation_radius float | list Inflation radius. A single float for uniform width, or a list of per-vertex radius arrays for variable width.
feature_size float | None Scale parameter for all derived thresholds. Defaults to inflation_radius (float) or median(all widths) (list).
simplification float | None RDP tolerance on output chains (default: feature_size / 10). Set to 0 to disable.
min_tip_fraction float | None Prune terminal chains shorter than fraction × feature_size (default: 2.0). Set to 0 to disable.
junction_merge_fraction float | None Merge nearby junctions within fraction × feature_size (default: 1.5). Set to 0 to disable.
compute_widths bool If True, populate result.chain_widths with estimated contour width at each chain point.

Visualization

TopologizeResult has a built-in plot() method (requires plotly):

result.plot(curves, inflation_radius=0.5)                    # basic
result.plot(curves, inflation_radius=0.5, show_triangulation=True)  # + CDT overlay

When compute_widths=True, the plot also shows bead-width envelopes around each chain.

Batch processing

For workloads with many independent curve-sets (e.g. per-layer toolpath slicing), topologize_batch processes them in parallel via Rayon with the GIL released. Each job carries its own parameters:

from topologize import topologize_batch, TopologizeJob

jobs = [
    TopologizeJob(curves_layer_1, inflation_radius=0.5),
    TopologizeJob(curves_layer_2, inflation_radius=1.0, simplification=0.0),
    # ...
]
results = topologize_batch(jobs)
# returns list[TopologizeResult], one per job

On multi-core machines this is significantly faster than a Python loop.

Async-style processing with ThreadPoolExecutor

Single topologize releases the GIL during Rust computation, so you can also use Python's ThreadPoolExecutor for async-style processing:

from concurrent.futures import ThreadPoolExecutor
from topologize import topologize

with ThreadPoolExecutor() as pool:
    futures = [pool.submit(topologize, cs, inflation_radius=0.5) for cs in curve_sets]
    results = [f.result() for f in futures]

This is useful when jobs arrive one at a time (e.g. from a queue) rather than all at once.

Examples

All examples are # %% cell-delimited Python files — run directly or open as Jupyter notebooks.

uv sync --group dev  # install plotly, svgpathtools, etc.

# Getting started — basic usage and inflation_radius tuning
uv run python/examples/getting_started.py

# SVG centerline extraction
uv run python/examples/svg_centerline.py python/examples/data/topologize.svg --buffer 0.47

# Variable-width per-vertex inflation
uv run python/examples/variable_width_demo.py

# Curvature-adaptive boundary resampling (regenerates docs/resample_comparison.png)
uv run python/examples/resample_comparison.py

# Parallel / batch processing benchmarks
uv run python/examples/parallel_processing.py

Algorithm

See algorithm.md for a detailed description of all three pipeline stages, the boundary preprocessing steps (RDP simplification + subdivision), the post-processing applied to output chains (projection smoothing, endpoint straightening, RDP), and the rationale for the CDT midpoint approach over alternatives (Voronoi, Python prototype).

Project structure

src/
  lib.rs             pymodule entry point (_internal)
  python.rs          Python-facing bindings
  inflate.rs         Clipper2-based polygon inflation + boundary prep
  skeleton_cdt.rs    CDT midpoint-graph skeletonizer
  graph.rs           Endpoint snapping + chain extraction

python/
  topologize/
    __init__.py      Public API (TopologizeResult, topologize, topologize_batch, inflate, triangulate)
  examples/
    getting_started.py
    svg_centerline.py
    variable_width_demo.py
    resample_comparison.py
    compare_methods.py
    parallel_processing.py

tests/
  test_topologize.py
  test_batch.py
  test_merge.py
  test_resample.py

Cargo.toml           Rust manifest
pyproject.toml       Python build config (maturin)

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

topologize-0.0.8.tar.gz (555.3 kB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

topologize-0.0.8-cp315-cp315-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (535.7 kB view details)

Uploaded CPython 3.15manylinux: glibc 2.17+ x86-64

topologize-0.0.8-cp315-cp315-manylinux_2_17_i686.manylinux2014_i686.whl (591.0 kB view details)

Uploaded CPython 3.15manylinux: glibc 2.17+ i686

topologize-0.0.8-cp314-cp314t-musllinux_1_2_x86_64.whl (736.9 kB view details)

Uploaded CPython 3.14tmusllinux: musl 1.2+ x86-64

topologize-0.0.8-cp314-cp314t-musllinux_1_2_aarch64.whl (689.4 kB view details)

Uploaded CPython 3.14tmusllinux: musl 1.2+ ARM64

topologize-0.0.8-cp314-cp314t-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (539.4 kB view details)

Uploaded CPython 3.14tmanylinux: glibc 2.17+ ARMv7l

topologize-0.0.8-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (514.3 kB view details)

Uploaded CPython 3.14tmanylinux: glibc 2.17+ ARM64

topologize-0.0.8-cp314-cp314-win_amd64.whl (361.5 kB view details)

Uploaded CPython 3.14Windows x86-64

topologize-0.0.8-cp314-cp314-win32.whl (363.3 kB view details)

Uploaded CPython 3.14Windows x86

topologize-0.0.8-cp314-cp314-musllinux_1_2_x86_64.whl (738.5 kB view details)

Uploaded CPython 3.14musllinux: musl 1.2+ x86-64

topologize-0.0.8-cp314-cp314-musllinux_1_2_aarch64.whl (691.4 kB view details)

Uploaded CPython 3.14musllinux: musl 1.2+ ARM64

topologize-0.0.8-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (535.5 kB view details)

Uploaded CPython 3.14manylinux: glibc 2.17+ x86-64

topologize-0.0.8-cp314-cp314-manylinux_2_17_i686.manylinux2014_i686.whl (591.0 kB view details)

Uploaded CPython 3.14manylinux: glibc 2.17+ i686

topologize-0.0.8-cp314-cp314-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (540.8 kB view details)

Uploaded CPython 3.14manylinux: glibc 2.17+ ARMv7l

topologize-0.0.8-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (516.0 kB view details)

Uploaded CPython 3.14manylinux: glibc 2.17+ ARM64

topologize-0.0.8-cp314-cp314-macosx_11_0_arm64.whl (462.2 kB view details)

Uploaded CPython 3.14macOS 11.0+ ARM64

topologize-0.0.8-cp314-cp314-macosx_10_12_x86_64.whl (482.7 kB view details)

Uploaded CPython 3.14macOS 10.12+ x86-64

topologize-0.0.8-cp313-cp313t-musllinux_1_2_x86_64.whl (736.9 kB view details)

Uploaded CPython 3.13tmusllinux: musl 1.2+ x86-64

topologize-0.0.8-cp313-cp313t-musllinux_1_2_aarch64.whl (689.5 kB view details)

Uploaded CPython 3.13tmusllinux: musl 1.2+ ARM64

topologize-0.0.8-cp313-cp313t-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (539.3 kB view details)

Uploaded CPython 3.13tmanylinux: glibc 2.17+ ARMv7l

topologize-0.0.8-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (514.2 kB view details)

Uploaded CPython 3.13tmanylinux: glibc 2.17+ ARM64

topologize-0.0.8-cp313-cp313-win_amd64.whl (361.1 kB view details)

Uploaded CPython 3.13Windows x86-64

topologize-0.0.8-cp313-cp313-musllinux_1_2_x86_64.whl (738.3 kB view details)

Uploaded CPython 3.13musllinux: musl 1.2+ x86-64

topologize-0.0.8-cp313-cp313-musllinux_1_2_aarch64.whl (690.5 kB view details)

Uploaded CPython 3.13musllinux: musl 1.2+ ARM64

topologize-0.0.8-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (535.4 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ x86-64

topologize-0.0.8-cp313-cp313-manylinux_2_17_i686.manylinux2014_i686.whl (590.9 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ i686

topologize-0.0.8-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (541.0 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ ARMv7l

topologize-0.0.8-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (515.1 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ ARM64

topologize-0.0.8-cp313-cp313-macosx_11_0_arm64.whl (462.3 kB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

topologize-0.0.8-cp313-cp313-macosx_10_12_x86_64.whl (482.9 kB view details)

Uploaded CPython 3.13macOS 10.12+ x86-64

topologize-0.0.8-cp312-cp312-win_amd64.whl (361.7 kB view details)

Uploaded CPython 3.12Windows x86-64

topologize-0.0.8-cp312-cp312-musllinux_1_2_x86_64.whl (738.3 kB view details)

Uploaded CPython 3.12musllinux: musl 1.2+ x86-64

topologize-0.0.8-cp312-cp312-musllinux_1_2_aarch64.whl (691.0 kB view details)

Uploaded CPython 3.12musllinux: musl 1.2+ ARM64

topologize-0.0.8-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (535.8 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ x86-64

topologize-0.0.8-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl (591.3 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ i686

topologize-0.0.8-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (541.8 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ ARMv7l

topologize-0.0.8-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (515.6 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ ARM64

topologize-0.0.8-cp312-cp312-macosx_11_0_arm64.whl (462.8 kB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

topologize-0.0.8-cp312-cp312-macosx_10_12_x86_64.whl (483.4 kB view details)

Uploaded CPython 3.12macOS 10.12+ x86-64

File details

Details for the file topologize-0.0.8.tar.gz.

File metadata

  • Download URL: topologize-0.0.8.tar.gz
  • Upload date:
  • Size: 555.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for topologize-0.0.8.tar.gz
Algorithm Hash digest
SHA256 37fac6a8dc62317a1db2141aeb06021409ee1b980eb8ce4011fcd7d7db671fb5
MD5 49ab0a639b6a85e2c4ea02aafe50b280
BLAKE2b-256 85028596da60abb846f3c233718bff82b48543ed1ae6523cd29a8a6134c9b34e

See more details on using hashes here.

Provenance

The following attestation bundles were made for topologize-0.0.8.tar.gz:

Publisher: ci.yml on tdamsma/topologize

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file topologize-0.0.8-cp315-cp315-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for topologize-0.0.8-cp315-cp315-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 e927315400268a284acb2d6e331b1b11edc012f32f732f611c3e79ebf552848b
MD5 e86ec4d29794b50558822d6f322fc400
BLAKE2b-256 781c82e7bb6c6e93be6915cbef479a5d55620fd2ade52a5cc212b5d4656089f8

See more details on using hashes here.

Provenance

The following attestation bundles were made for topologize-0.0.8-cp315-cp315-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: ci.yml on tdamsma/topologize

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file topologize-0.0.8-cp315-cp315-manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for topologize-0.0.8-cp315-cp315-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 4bf824cce966b16637f5c83d3768bcb52218c6fed12ef3107df110dadd54467b
MD5 5dfd4d108dac56f2fbf0808f74a832b9
BLAKE2b-256 c6df7122f52321873af848d0cc40e533838352b23ece87b70ee1ccd81abbb7dd

See more details on using hashes here.

Provenance

The following attestation bundles were made for topologize-0.0.8-cp315-cp315-manylinux_2_17_i686.manylinux2014_i686.whl:

Publisher: ci.yml on tdamsma/topologize

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file topologize-0.0.8-cp314-cp314t-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for topologize-0.0.8-cp314-cp314t-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 629953c9eb0f57404d3a54eac85a87496433492e62b519421fee408b6680f02a
MD5 0cb47cbd85cd7bdb4c31a8805f9b2db1
BLAKE2b-256 88a7170486bc1c70129e4be37272e883855cf9d9c7e73ede1388c32abfe8a94b

See more details on using hashes here.

Provenance

The following attestation bundles were made for topologize-0.0.8-cp314-cp314t-musllinux_1_2_x86_64.whl:

Publisher: ci.yml on tdamsma/topologize

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file topologize-0.0.8-cp314-cp314t-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for topologize-0.0.8-cp314-cp314t-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 4fc52a665a330e70b2af0ecc45f5113d23f7edcbd5639103677adbba897ef32c
MD5 d8cd69b3161cc2cb947c60d2bb495ed3
BLAKE2b-256 019b6977492af3dece63c4613151642a89fd982d8e2cb5eeb6fb0a7c71cb7ec3

See more details on using hashes here.

Provenance

The following attestation bundles were made for topologize-0.0.8-cp314-cp314t-musllinux_1_2_aarch64.whl:

Publisher: ci.yml on tdamsma/topologize

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file topologize-0.0.8-cp314-cp314t-manylinux_2_17_armv7l.manylinux2014_armv7l.whl.

File metadata

File hashes

Hashes for topologize-0.0.8-cp314-cp314t-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Algorithm Hash digest
SHA256 086843fbdcb8f1c3ebe54cdedc22e59768c47fec285e30bbec04f41ebddc362f
MD5 f6b6ce2b9969b7687e85af2238e2d2fc
BLAKE2b-256 d6a12d39e3af6e56adeea87726114fc7e3dfad8ca7bac8bba439c3fe16349e6a

See more details on using hashes here.

Provenance

The following attestation bundles were made for topologize-0.0.8-cp314-cp314t-manylinux_2_17_armv7l.manylinux2014_armv7l.whl:

Publisher: ci.yml on tdamsma/topologize

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file topologize-0.0.8-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for topologize-0.0.8-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 b7b86790146107c8d5c57654c202e636f591548b40a28a83b8367286743f624c
MD5 11c0c95514a035b827c26abdfb3c37d6
BLAKE2b-256 afb09fb2b1556379c458ac4fec489d7406049dc68fb9c1a6b0352d32c908dd4b

See more details on using hashes here.

Provenance

The following attestation bundles were made for topologize-0.0.8-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl:

Publisher: ci.yml on tdamsma/topologize

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file topologize-0.0.8-cp314-cp314-win_amd64.whl.

File metadata

  • Download URL: topologize-0.0.8-cp314-cp314-win_amd64.whl
  • Upload date:
  • Size: 361.5 kB
  • Tags: CPython 3.14, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for topologize-0.0.8-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 c7268c6467c80b7b500eb2151d06cc2cdeccdd57c643c70be15889287cb23e5a
MD5 2065b47d0835458d67da5a9ad2c992b5
BLAKE2b-256 77eb0b503bd533815f5d4fdece9e6e097109378187e17610d670a91bc395fc3f

See more details on using hashes here.

Provenance

The following attestation bundles were made for topologize-0.0.8-cp314-cp314-win_amd64.whl:

Publisher: ci.yml on tdamsma/topologize

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file topologize-0.0.8-cp314-cp314-win32.whl.

File metadata

  • Download URL: topologize-0.0.8-cp314-cp314-win32.whl
  • Upload date:
  • Size: 363.3 kB
  • Tags: CPython 3.14, Windows x86
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for topologize-0.0.8-cp314-cp314-win32.whl
Algorithm Hash digest
SHA256 4882ae545d9f906bce8fcd9d6aa0a0e4d0fcd7fe5d72c14293511522aed61839
MD5 8dfcd1ef95926d83b0aaf72f24805af0
BLAKE2b-256 4e69f144a6ae49bbf8e25f3df4d5c1c0dc44ef0ea099cc68c55e993a2bb1b0b4

See more details on using hashes here.

Provenance

The following attestation bundles were made for topologize-0.0.8-cp314-cp314-win32.whl:

Publisher: ci.yml on tdamsma/topologize

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file topologize-0.0.8-cp314-cp314-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for topologize-0.0.8-cp314-cp314-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 d9a15851895b9a1f99bd21b2ac58a022d914bab5cf2296c3cae74399373c5e9c
MD5 ebb6336d2887f8a919fd1b2283d6996a
BLAKE2b-256 801680611cc065a2120e179ca649c2290c5df03a2e613f6695012c9558241e09

See more details on using hashes here.

Provenance

The following attestation bundles were made for topologize-0.0.8-cp314-cp314-musllinux_1_2_x86_64.whl:

Publisher: ci.yml on tdamsma/topologize

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file topologize-0.0.8-cp314-cp314-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for topologize-0.0.8-cp314-cp314-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 56c74703dabeff49066abdc341288e042599e6ba3b23910901dc0ad0440430a6
MD5 957988418031fc5ff344ae417650c962
BLAKE2b-256 e6427e9354d5dbea7f6e556231f06f180771ac7dbf241689f6f9b46071fdc3e9

See more details on using hashes here.

Provenance

The following attestation bundles were made for topologize-0.0.8-cp314-cp314-musllinux_1_2_aarch64.whl:

Publisher: ci.yml on tdamsma/topologize

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file topologize-0.0.8-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for topologize-0.0.8-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 b47dda9803748fadd3689c8fc4129ba6f7a1913f282773350ba4868e6e3e7639
MD5 468958967d3ffec93c2a4f10b1a39be1
BLAKE2b-256 79a1963def8a271e9d3ebb4cf16011ffa246a0c8b8fc2631116dcc4986771598

See more details on using hashes here.

Provenance

The following attestation bundles were made for topologize-0.0.8-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: ci.yml on tdamsma/topologize

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file topologize-0.0.8-cp314-cp314-manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for topologize-0.0.8-cp314-cp314-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 14576b2c611838a4cda8a1cc13cc6044ff46718b58f68471c0ce8abba28f99b6
MD5 f4e1066f3bd178439f9bb3c327846018
BLAKE2b-256 0fa2445b9d8fe5bfe4dc25719e4a510a07abb21564f8fd134d7d36edc52b4345

See more details on using hashes here.

Provenance

The following attestation bundles were made for topologize-0.0.8-cp314-cp314-manylinux_2_17_i686.manylinux2014_i686.whl:

Publisher: ci.yml on tdamsma/topologize

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file topologize-0.0.8-cp314-cp314-manylinux_2_17_armv7l.manylinux2014_armv7l.whl.

File metadata

File hashes

Hashes for topologize-0.0.8-cp314-cp314-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Algorithm Hash digest
SHA256 bab65d5fd8690aa213c111907efcdf326896f41163dc7fc20f971103d7fe807e
MD5 bbbf6837cb7f6a656de33d8c30709f6a
BLAKE2b-256 cec64874aa0c599feafd6f2b27a24a7544c8081899c4538ad8418140648fdc5e

See more details on using hashes here.

Provenance

The following attestation bundles were made for topologize-0.0.8-cp314-cp314-manylinux_2_17_armv7l.manylinux2014_armv7l.whl:

Publisher: ci.yml on tdamsma/topologize

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file topologize-0.0.8-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for topologize-0.0.8-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 1769f0da0737c080aba426aabc6f4e8c69a9db88ab287f72900a109a222a4bf6
MD5 26269deaabf48d428a83f354021d8efb
BLAKE2b-256 4f51960f06d863b76de799c98b56cc53300381f01328560f8c2454a7e08d7f26

See more details on using hashes here.

Provenance

The following attestation bundles were made for topologize-0.0.8-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl:

Publisher: ci.yml on tdamsma/topologize

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file topologize-0.0.8-cp314-cp314-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for topologize-0.0.8-cp314-cp314-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 a6290cf4447650aed9feafbdbbbf42e63d248da8f5305724e960214f2a1ce924
MD5 845e5862fa62ae565b11550f7a5501a9
BLAKE2b-256 8e8f5d4022639c052edb001b6ed479f5253d7f155656fea2615b192f1d7d697e

See more details on using hashes here.

Provenance

The following attestation bundles were made for topologize-0.0.8-cp314-cp314-macosx_11_0_arm64.whl:

Publisher: ci.yml on tdamsma/topologize

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file topologize-0.0.8-cp314-cp314-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for topologize-0.0.8-cp314-cp314-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 2f6bba31b4fc260f7e65862acce96b482948b0089e37da5d72402ec505695605
MD5 84ac5970bddf3da9a407b03b09102a78
BLAKE2b-256 a2a74b0fad33f9d81c4632991606cb23cad3d1ed81ff66b4c84b954440003763

See more details on using hashes here.

Provenance

The following attestation bundles were made for topologize-0.0.8-cp314-cp314-macosx_10_12_x86_64.whl:

Publisher: ci.yml on tdamsma/topologize

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file topologize-0.0.8-cp313-cp313t-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for topologize-0.0.8-cp313-cp313t-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 c401cc632bc60c3ff33d505c5470bca93c9424c629ef6801ce1bccf2d7daf4a2
MD5 560f5f08c40d950470d74b0e2352cb57
BLAKE2b-256 c7b975a41db85a4f8a58cbc1add818e3e9e7a9240e2b849352590f761394d38c

See more details on using hashes here.

Provenance

The following attestation bundles were made for topologize-0.0.8-cp313-cp313t-musllinux_1_2_x86_64.whl:

Publisher: ci.yml on tdamsma/topologize

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file topologize-0.0.8-cp313-cp313t-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for topologize-0.0.8-cp313-cp313t-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 005bd3a369d08d0438bd56b5af90d7bc2f8e8fe8e3a68c448bc635ba33173b2f
MD5 78114342c879d563d409b4ae2637eeb2
BLAKE2b-256 ec8e63b6f081b56e8c80eacc88184222663f4e2e1ed694b14b2781a5468f302c

See more details on using hashes here.

Provenance

The following attestation bundles were made for topologize-0.0.8-cp313-cp313t-musllinux_1_2_aarch64.whl:

Publisher: ci.yml on tdamsma/topologize

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file topologize-0.0.8-cp313-cp313t-manylinux_2_17_armv7l.manylinux2014_armv7l.whl.

File metadata

File hashes

Hashes for topologize-0.0.8-cp313-cp313t-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Algorithm Hash digest
SHA256 4220e13dceef9beec0dbbbf5807b1ba88ffe5954314aa451ec17d69008a45d72
MD5 593736cdabc48f480daf7be9b28f61b3
BLAKE2b-256 496cafb26193478208431fe969a193510810ee563f525616bdd4abdefa5c8ecf

See more details on using hashes here.

Provenance

The following attestation bundles were made for topologize-0.0.8-cp313-cp313t-manylinux_2_17_armv7l.manylinux2014_armv7l.whl:

Publisher: ci.yml on tdamsma/topologize

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file topologize-0.0.8-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for topologize-0.0.8-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 8da84ea186b5fdd9c83842a94dd2b889c30d4534f9826e9a50c09c2e5dcb57db
MD5 e2d16898b40a700dcd93b3dfa065be2e
BLAKE2b-256 406c6fa13d8d04a910ba5c47d8ef6657352601412991b7f79c7cf12c1c5dd725

See more details on using hashes here.

Provenance

The following attestation bundles were made for topologize-0.0.8-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl:

Publisher: ci.yml on tdamsma/topologize

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file topologize-0.0.8-cp313-cp313-win_amd64.whl.

File metadata

  • Download URL: topologize-0.0.8-cp313-cp313-win_amd64.whl
  • Upload date:
  • Size: 361.1 kB
  • Tags: CPython 3.13, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for topologize-0.0.8-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 eb972a453dbe414e4fc84cac27c5d68515444ddef7875e495aa10d2c9ca96100
MD5 035030a2f2b10208d090f8f381254b99
BLAKE2b-256 7f92f49d467f47901446ae0221e31f0c1dfbfa1c93c8669a9015fbbf4054e0c4

See more details on using hashes here.

Provenance

The following attestation bundles were made for topologize-0.0.8-cp313-cp313-win_amd64.whl:

Publisher: ci.yml on tdamsma/topologize

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file topologize-0.0.8-cp313-cp313-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for topologize-0.0.8-cp313-cp313-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 157c3b90c8fc561e69d4906df7f0107daaf7af7aad88d89fa59938904f119537
MD5 9aac5d1c28e81b8a622b0b707a03454b
BLAKE2b-256 e2109fe2dc63612c4e048ead2bb2b59c026651f2d593efcdb123d35271e8aac2

See more details on using hashes here.

Provenance

The following attestation bundles were made for topologize-0.0.8-cp313-cp313-musllinux_1_2_x86_64.whl:

Publisher: ci.yml on tdamsma/topologize

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file topologize-0.0.8-cp313-cp313-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for topologize-0.0.8-cp313-cp313-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 642ba3438877f1c532f18110ba21bb85f7e23ec715bde6b8ebab45ea241245df
MD5 ff469f0f9bb4864d4049f105658d1637
BLAKE2b-256 4bd281e0e744c5a95528f4f2fb59d140118f9bcb74d6415a40f6fdccec417494

See more details on using hashes here.

Provenance

The following attestation bundles were made for topologize-0.0.8-cp313-cp313-musllinux_1_2_aarch64.whl:

Publisher: ci.yml on tdamsma/topologize

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file topologize-0.0.8-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for topologize-0.0.8-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 181a3cf25bf191fa9a0f152c7c13dfbe80205132b7a66ebea6e0f7d178c2e399
MD5 8be84ac939d5d6e5e2c1ff00e4176a67
BLAKE2b-256 322c122eb7d2670ba9b150dfc06afccc2a7af15ba56b0848f1d30a028f183235

See more details on using hashes here.

Provenance

The following attestation bundles were made for topologize-0.0.8-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: ci.yml on tdamsma/topologize

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file topologize-0.0.8-cp313-cp313-manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for topologize-0.0.8-cp313-cp313-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 efdd4523123e1e5761cec765d679d005a13a6440083c6dbf2a54065696af05cb
MD5 838d92c0d4037a59a71c0ad5a0c8db59
BLAKE2b-256 a2f5285743ff5e48824504448524a6dc8d28dfe424ce4d2d16342482b4c9a6f3

See more details on using hashes here.

Provenance

The following attestation bundles were made for topologize-0.0.8-cp313-cp313-manylinux_2_17_i686.manylinux2014_i686.whl:

Publisher: ci.yml on tdamsma/topologize

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file topologize-0.0.8-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl.

File metadata

File hashes

Hashes for topologize-0.0.8-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Algorithm Hash digest
SHA256 1b11ac4b1432285bd5bad0ebd5d583ccc2dc6f620ad628e106ded2462916425e
MD5 acdff40099f5f6d9145f99f335b1b063
BLAKE2b-256 d22aa5754c00a53c2d34cf78626e2769eed031e4dc43eb1d256ca6d72ece7b96

See more details on using hashes here.

Provenance

The following attestation bundles were made for topologize-0.0.8-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl:

Publisher: ci.yml on tdamsma/topologize

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file topologize-0.0.8-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for topologize-0.0.8-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 5c65bdb40d1acb1062baf820ea603713b979026a9aee9dc0d131b2968de6660d
MD5 3528bcdf0f2bb879ab47ea01eeb25906
BLAKE2b-256 1f2f1111a0e442527cfdc13da3f43b9de90d6c64f30f8ea465485196993ee2ed

See more details on using hashes here.

Provenance

The following attestation bundles were made for topologize-0.0.8-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl:

Publisher: ci.yml on tdamsma/topologize

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file topologize-0.0.8-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for topologize-0.0.8-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 e403ab5a919dc7fbc74daf711083cd6266e3d690235588dc95a201a92f0a5123
MD5 6bfb9332728cfddf6072fc331c99b2e3
BLAKE2b-256 a7300a14719d788838ad90addacbe5b9ab608c723335c78e08da8d890aec9555

See more details on using hashes here.

Provenance

The following attestation bundles were made for topologize-0.0.8-cp313-cp313-macosx_11_0_arm64.whl:

Publisher: ci.yml on tdamsma/topologize

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file topologize-0.0.8-cp313-cp313-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for topologize-0.0.8-cp313-cp313-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 6364edda87766103fbd531d3ce3dfb6021d9652d5313b8e7129b538ef9bc2882
MD5 42d50d40b3f7ec1a1c82f8a14e522551
BLAKE2b-256 ce9f03246de36e896e6d7fa3911995839db0fa556bef192db39d1edb4fed0c7d

See more details on using hashes here.

Provenance

The following attestation bundles were made for topologize-0.0.8-cp313-cp313-macosx_10_12_x86_64.whl:

Publisher: ci.yml on tdamsma/topologize

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file topologize-0.0.8-cp312-cp312-win_amd64.whl.

File metadata

  • Download URL: topologize-0.0.8-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 361.7 kB
  • Tags: CPython 3.12, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for topologize-0.0.8-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 118753f4a846635f745ad6c17065f033b680699723d6ff05033159af6d9ed5fc
MD5 766714a361423052f480c74882ff7a02
BLAKE2b-256 c91a054dac458ddef7f98621ca4991dfe3701aa732855300fa2245b3b0d9c057

See more details on using hashes here.

Provenance

The following attestation bundles were made for topologize-0.0.8-cp312-cp312-win_amd64.whl:

Publisher: ci.yml on tdamsma/topologize

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file topologize-0.0.8-cp312-cp312-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for topologize-0.0.8-cp312-cp312-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 0783612a4a84cf3365b6bd3ff10c3ff820ce52ac05a23695b7caa73f1efa96a9
MD5 9e827dd7b0d98f757f927660b62b8ac4
BLAKE2b-256 74b94919d7ab626e825899178a7b1fd9f1ae345e7b34d4be1a3495ad8e549006

See more details on using hashes here.

Provenance

The following attestation bundles were made for topologize-0.0.8-cp312-cp312-musllinux_1_2_x86_64.whl:

Publisher: ci.yml on tdamsma/topologize

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file topologize-0.0.8-cp312-cp312-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for topologize-0.0.8-cp312-cp312-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 d80c90c8079359d26415628ad2d319b46c50bf03eafd761e65674fb1cf50e4ac
MD5 eb1889a6570f67a8aa347d3acc7b980d
BLAKE2b-256 8c2cc0c0412fe931e380b93b79398b9f2797037413a27bb41ea66bc6151d80ce

See more details on using hashes here.

Provenance

The following attestation bundles were made for topologize-0.0.8-cp312-cp312-musllinux_1_2_aarch64.whl:

Publisher: ci.yml on tdamsma/topologize

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file topologize-0.0.8-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for topologize-0.0.8-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 883c4e61edbdd896290e35b639273e3f04e4142cb81a30face1e52c3a287850d
MD5 aa1933352befc9c0a219fdcab9c18bc8
BLAKE2b-256 b43f4a98ebb50d5f42bfadd272b0ee53aca1655d4c864777a28cdb03fb9ab6fa

See more details on using hashes here.

Provenance

The following attestation bundles were made for topologize-0.0.8-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: ci.yml on tdamsma/topologize

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file topologize-0.0.8-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for topologize-0.0.8-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 00a2be240efaf4074594e4c6be2796d6b70296cb4f6f39d13edb0de7f3709321
MD5 844b2ac7f94510ce759fd51b0192b1f0
BLAKE2b-256 9c6aaddb260ac496f1f847b56ba0fa608493393e49714979ebafaa7df11e699e

See more details on using hashes here.

Provenance

The following attestation bundles were made for topologize-0.0.8-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl:

Publisher: ci.yml on tdamsma/topologize

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file topologize-0.0.8-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl.

File metadata

File hashes

Hashes for topologize-0.0.8-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Algorithm Hash digest
SHA256 68eac28797a8e36664f532be8dac318dfaa812f4ca5b2ebadd2578cf77d8618d
MD5 995768ca6b47087e9333da0440e290e7
BLAKE2b-256 db54f7a13ebe41caa8a3e3a5f91438d8d8a49c4fc96ec4cb58a2d3c6c63d0df7

See more details on using hashes here.

Provenance

The following attestation bundles were made for topologize-0.0.8-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl:

Publisher: ci.yml on tdamsma/topologize

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file topologize-0.0.8-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for topologize-0.0.8-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 c0baba77c521f76b5084f6e347aafb851ddfe7435d0499c3ebb02a169341218c
MD5 712ebffd58959a7e5cf6ec3289bb4e95
BLAKE2b-256 4cfa03447b188ad49bda3e244f65fa797d8e4a2aac9810bb45d89566fcb49a58

See more details on using hashes here.

Provenance

The following attestation bundles were made for topologize-0.0.8-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl:

Publisher: ci.yml on tdamsma/topologize

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file topologize-0.0.8-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for topologize-0.0.8-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 d0734f3afc6d47bad6fb5584e8f4e2da333a80102e9dfc6b777c37f12ac541ac
MD5 6128acf3d87a4aba9239d255d6346e7e
BLAKE2b-256 ad5d4028995117bf61c3d71bcdb2e710759ecf0ad499f07bb7b42c663ee7b379

See more details on using hashes here.

Provenance

The following attestation bundles were made for topologize-0.0.8-cp312-cp312-macosx_11_0_arm64.whl:

Publisher: ci.yml on tdamsma/topologize

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file topologize-0.0.8-cp312-cp312-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for topologize-0.0.8-cp312-cp312-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 fbc75f38fbd95f542b3fe9d8284807dbdede7629acbbd01ef695a3a310370a66
MD5 7af56e44ba5b2366fa6ceb9a34614b35
BLAKE2b-256 11a5ba007b0f14c041258bee2cd9c873b9b62135267305087c72c2a8b3785024

See more details on using hashes here.

Provenance

The following attestation bundles were made for topologize-0.0.8-cp312-cp312-macosx_10_12_x86_64.whl:

Publisher: ci.yml on tdamsma/topologize

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page