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

# 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
    compare_methods.py
    parallel_processing.py

tests/
  test_topologize.py
  test_batch.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.5.tar.gz (409.9 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.5-cp314-cp314t-musllinux_1_2_x86_64.whl (708.8 kB view details)

Uploaded CPython 3.14tmusllinux: musl 1.2+ x86-64

topologize-0.0.5-cp314-cp314t-musllinux_1_2_aarch64.whl (661.5 kB view details)

Uploaded CPython 3.14tmusllinux: musl 1.2+ ARM64

topologize-0.0.5-cp314-cp314t-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (508.8 kB view details)

Uploaded CPython 3.14tmanylinux: glibc 2.17+ ARMv7l

topologize-0.0.5-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (485.8 kB view details)

Uploaded CPython 3.14tmanylinux: glibc 2.17+ ARM64

topologize-0.0.5-cp314-cp314-win_amd64.whl (329.3 kB view details)

Uploaded CPython 3.14Windows x86-64

topologize-0.0.5-cp314-cp314-win32.whl (334.4 kB view details)

Uploaded CPython 3.14Windows x86

topologize-0.0.5-cp314-cp314-musllinux_1_2_x86_64.whl (709.1 kB view details)

Uploaded CPython 3.14musllinux: musl 1.2+ x86-64

topologize-0.0.5-cp314-cp314-musllinux_1_2_aarch64.whl (663.4 kB view details)

Uploaded CPython 3.14musllinux: musl 1.2+ ARM64

topologize-0.0.5-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (507.0 kB view details)

Uploaded CPython 3.14manylinux: glibc 2.17+ x86-64

topologize-0.0.5-cp314-cp314-manylinux_2_17_i686.manylinux2014_i686.whl (557.9 kB view details)

Uploaded CPython 3.14manylinux: glibc 2.17+ i686

topologize-0.0.5-cp314-cp314-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (509.8 kB view details)

Uploaded CPython 3.14manylinux: glibc 2.17+ ARMv7l

topologize-0.0.5-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (487.7 kB view details)

Uploaded CPython 3.14manylinux: glibc 2.17+ ARM64

topologize-0.0.5-cp314-cp314-macosx_11_0_arm64.whl (437.9 kB view details)

Uploaded CPython 3.14macOS 11.0+ ARM64

topologize-0.0.5-cp314-cp314-macosx_10_12_x86_64.whl (459.0 kB view details)

Uploaded CPython 3.14macOS 10.12+ x86-64

topologize-0.0.5-cp313-cp313t-musllinux_1_2_x86_64.whl (708.7 kB view details)

Uploaded CPython 3.13tmusllinux: musl 1.2+ x86-64

topologize-0.0.5-cp313-cp313t-musllinux_1_2_aarch64.whl (661.6 kB view details)

Uploaded CPython 3.13tmusllinux: musl 1.2+ ARM64

topologize-0.0.5-cp313-cp313t-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (508.9 kB view details)

Uploaded CPython 3.13tmanylinux: glibc 2.17+ ARMv7l

topologize-0.0.5-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (485.7 kB view details)

Uploaded CPython 3.13tmanylinux: glibc 2.17+ ARM64

topologize-0.0.5-cp313-cp313-win_amd64.whl (329.3 kB view details)

Uploaded CPython 3.13Windows x86-64

topologize-0.0.5-cp313-cp313-musllinux_1_2_x86_64.whl (709.0 kB view details)

Uploaded CPython 3.13musllinux: musl 1.2+ x86-64

topologize-0.0.5-cp313-cp313-musllinux_1_2_aarch64.whl (663.8 kB view details)

Uploaded CPython 3.13musllinux: musl 1.2+ ARM64

topologize-0.0.5-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (506.9 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ x86-64

topologize-0.0.5-cp313-cp313-manylinux_2_17_i686.manylinux2014_i686.whl (557.7 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ i686

topologize-0.0.5-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (510.7 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ ARMv7l

topologize-0.0.5-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (488.1 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ ARM64

topologize-0.0.5-cp313-cp313-macosx_11_0_arm64.whl (438.0 kB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

topologize-0.0.5-cp313-cp313-macosx_10_12_x86_64.whl (459.2 kB view details)

Uploaded CPython 3.13macOS 10.12+ x86-64

topologize-0.0.5-cp312-cp312-win_amd64.whl (329.7 kB view details)

Uploaded CPython 3.12Windows x86-64

topologize-0.0.5-cp312-cp312-musllinux_1_2_x86_64.whl (709.4 kB view details)

Uploaded CPython 3.12musllinux: musl 1.2+ x86-64

topologize-0.0.5-cp312-cp312-musllinux_1_2_aarch64.whl (664.4 kB view details)

Uploaded CPython 3.12musllinux: musl 1.2+ ARM64

topologize-0.0.5-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (507.6 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ x86-64

topologize-0.0.5-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl (558.5 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ i686

topologize-0.0.5-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (511.0 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ ARMv7l

topologize-0.0.5-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (488.6 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ ARM64

topologize-0.0.5-cp312-cp312-macosx_11_0_arm64.whl (438.4 kB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

topologize-0.0.5-cp312-cp312-macosx_10_12_x86_64.whl (459.7 kB view details)

Uploaded CPython 3.12macOS 10.12+ x86-64

File details

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

File metadata

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

File hashes

Hashes for topologize-0.0.5.tar.gz
Algorithm Hash digest
SHA256 37bf82c9bf1f9994dddda8400120892494f2da7ad4b90569b136c173aa1b6afa
MD5 568935d8585102824f4dd52b360af6d9
BLAKE2b-256 000cee5d69f595a182993b58eb88e9bd2eb342fe277d31fd5d257c27bb08bc2c

See more details on using hashes here.

Provenance

The following attestation bundles were made for topologize-0.0.5.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.5-cp314-cp314t-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for topologize-0.0.5-cp314-cp314t-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 c236932c579fb0c6917e69d910076fefe63241cd5ee4a19c195b50177aeec028
MD5 a3a9d5086e8d5427cfed1baa04d12b8e
BLAKE2b-256 0bd3e61850a41b28cc6f81943a3df48180ff60c75129d0375e17746119119f00

See more details on using hashes here.

Provenance

The following attestation bundles were made for topologize-0.0.5-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.5-cp314-cp314t-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for topologize-0.0.5-cp314-cp314t-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 1ad057078eb02b27a638bb2834df2d8e77d409795a5726c80ca59c6992e54f23
MD5 585ea0dca3082bc97f2e14901d848a9b
BLAKE2b-256 8dc9b41a7bc3b77b4812cdb29aa89c189c86e84634b48e3466d968c50f1bffe1

See more details on using hashes here.

Provenance

The following attestation bundles were made for topologize-0.0.5-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.5-cp314-cp314t-manylinux_2_17_armv7l.manylinux2014_armv7l.whl.

File metadata

File hashes

Hashes for topologize-0.0.5-cp314-cp314t-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Algorithm Hash digest
SHA256 d36442e1efe25413ac14b7f8aa9b198b092808806d72bfe3bd30d9377125a075
MD5 f28f9dedea10144fef73e223903ffd66
BLAKE2b-256 db4fdad27ead68e5bb51c7abb445e01f775ad765eea85db4ec951ee14dde08ad

See more details on using hashes here.

Provenance

The following attestation bundles were made for topologize-0.0.5-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.5-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for topologize-0.0.5-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 e0bd49f2fef3d82e7959854e1672924cfd41bb8bc4dcf13810b0ccefb2a561a4
MD5 01ed37b48fa05defe5fed5f83a698963
BLAKE2b-256 e1adbf97923ba4b1e9da62e6a4363e88c9179bddd457dbc0fa8bf9a67c4f8a55

See more details on using hashes here.

Provenance

The following attestation bundles were made for topologize-0.0.5-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.5-cp314-cp314-win_amd64.whl.

File metadata

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

File hashes

Hashes for topologize-0.0.5-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 8eb559d60c3c76d2e3f9c9401ae8204cf0967e3b2ff6b38ca0e4ffa29ced0368
MD5 ee5e75a319e893aafb5d2bcd09b0c040
BLAKE2b-256 35e6e41080abff2b99972287f595dc6ceb87f9f7b57f6cd4ee0e4aca75af1fd6

See more details on using hashes here.

Provenance

The following attestation bundles were made for topologize-0.0.5-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.5-cp314-cp314-win32.whl.

File metadata

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

File hashes

Hashes for topologize-0.0.5-cp314-cp314-win32.whl
Algorithm Hash digest
SHA256 fdc333438d5ac45e0975421da4cc5f6c838bef3c2077c0f1fbac9a70a62f863e
MD5 1b5cfc2a4396d1f4ed8cba2a07c70f18
BLAKE2b-256 0b1738ad2ef58a2b2ff9f59071665e98ac36757607ba89f342d569bec2bf4557

See more details on using hashes here.

Provenance

The following attestation bundles were made for topologize-0.0.5-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.5-cp314-cp314-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for topologize-0.0.5-cp314-cp314-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 40609df30e5f88c2a6ced15ba829358c741698ee9f545162f0ca0472a296342c
MD5 bae3c9533ce68c7a4d55cf19494ab93d
BLAKE2b-256 3d9dc0744418a4be8648aea12f2b1f4d35e2ba1230beb17eb3658292d92b9e09

See more details on using hashes here.

Provenance

The following attestation bundles were made for topologize-0.0.5-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.5-cp314-cp314-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for topologize-0.0.5-cp314-cp314-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 efa03cafeee5d42a495634f4d839eb68ac6f530a27dc197918ec8e3bf8e27630
MD5 545a737f7a45f88bb09d13022d2d3e96
BLAKE2b-256 3678f77373c810a32b77b71b01953b4a1bad63e1e0da13b41bce0e816c6252cb

See more details on using hashes here.

Provenance

The following attestation bundles were made for topologize-0.0.5-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.5-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for topologize-0.0.5-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 e8beb447dde6b66d92c76294eaf992583c1ce039a69a5ee034676dbe8fb373f1
MD5 ea9bfdbc09873c09b6114d1a50a9fbb0
BLAKE2b-256 43c549daffe05e45c44207e443d2db870972985dfd865287e1923c37a8d9d56c

See more details on using hashes here.

Provenance

The following attestation bundles were made for topologize-0.0.5-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.5-cp314-cp314-manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for topologize-0.0.5-cp314-cp314-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 1eb7a1767d91a9265fecc856dd6410ec22d4b4cd692698665f3219dbaa337bfe
MD5 5691ddba41a87c4f9898be5f40c877cd
BLAKE2b-256 9c6d3706c37b29808caa7cfa7f27a742fff9648a8526f92b5b244b36f37523c5

See more details on using hashes here.

Provenance

The following attestation bundles were made for topologize-0.0.5-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.5-cp314-cp314-manylinux_2_17_armv7l.manylinux2014_armv7l.whl.

File metadata

File hashes

Hashes for topologize-0.0.5-cp314-cp314-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Algorithm Hash digest
SHA256 d885ad57f7fb907ed3368f07b61c692705abe21fa18fda75347b6754979b8ced
MD5 935d5dabbbb09d012f8b70e372d4aeb7
BLAKE2b-256 c256fe0b7a7c84c4d9d910f39a58aa52556f58e9a0ae967ce10fe4e64ea7e3b8

See more details on using hashes here.

Provenance

The following attestation bundles were made for topologize-0.0.5-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.5-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for topologize-0.0.5-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 f6b8dcc91f9cd83c19b135986bbfffc1e15c8a3dab5b69821a953e0053c243c0
MD5 59e3b79ae5d5c27f2448e3ea5e2291d7
BLAKE2b-256 c4b394541b9d4183ef9d83b6c8cae4b8cc2b9148c4e3d5e62af39ab8a5958295

See more details on using hashes here.

Provenance

The following attestation bundles were made for topologize-0.0.5-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.5-cp314-cp314-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for topologize-0.0.5-cp314-cp314-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 9911e4edd72e9fdf86cf171cb333747ed117a439684fcaa7abcfd288b196c959
MD5 10246e5a8a3d1b2b04de5b64d9f3fc8d
BLAKE2b-256 a71e85e640822f8e503e7c14a588822614330e597e6d01b7bf33444231f4e483

See more details on using hashes here.

Provenance

The following attestation bundles were made for topologize-0.0.5-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.5-cp314-cp314-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for topologize-0.0.5-cp314-cp314-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 1dcf220ebcaf11693c9ae5d6c306b2664cf2629dbc64dc6534c13d25b11ee5ce
MD5 fd99a74905cf4fd165dd643348b226d8
BLAKE2b-256 c5d09dbd57b9c94039eb04c4b475ae7a0b6b8c16569bbff8c95b94b61a24fbb7

See more details on using hashes here.

Provenance

The following attestation bundles were made for topologize-0.0.5-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.5-cp313-cp313t-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for topologize-0.0.5-cp313-cp313t-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 6abffe53b5c660e9f6577327b58fbc188eafe198585480037f9a45913cff1774
MD5 251f00c7d21ea4fedba0a173d668d9c8
BLAKE2b-256 f95be6bb4431d39d2e0289e28d7a707a8d5cd5f74592fd8829dbf4048b2aff4f

See more details on using hashes here.

Provenance

The following attestation bundles were made for topologize-0.0.5-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.5-cp313-cp313t-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for topologize-0.0.5-cp313-cp313t-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 df6e6c5c89733475141f316aee12db2906ad0d4cda8b0021d44efbd9b6bd93a9
MD5 786343cf3ea3c9376810f06ca56748f8
BLAKE2b-256 568da9571c85f42ea797a43f9c81f90f7d47a07ca24f072367aa47d8813fe435

See more details on using hashes here.

Provenance

The following attestation bundles were made for topologize-0.0.5-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.5-cp313-cp313t-manylinux_2_17_armv7l.manylinux2014_armv7l.whl.

File metadata

File hashes

Hashes for topologize-0.0.5-cp313-cp313t-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Algorithm Hash digest
SHA256 c079747fb19c69b0f4c1d4041e7d083c4eaf9b4e6b304bf34305506c81fa8593
MD5 fd07ad804f6d4832f5c97a9ce57ad524
BLAKE2b-256 5092aae448ca67eaff2632d9b290595d8881e838e98fc23ce680c7033c5f4629

See more details on using hashes here.

Provenance

The following attestation bundles were made for topologize-0.0.5-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.5-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for topologize-0.0.5-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 e705952f56280b0bb502a45b2165a5e989964d20fb121d7e5f11319a3eaed0f6
MD5 54ac2221676a177e196d6c4c50a86c42
BLAKE2b-256 cd609715bf3d78fc2d70e9c781aee1b212f4d63a55208f167b1fcc36b7b98c39

See more details on using hashes here.

Provenance

The following attestation bundles were made for topologize-0.0.5-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.5-cp313-cp313-win_amd64.whl.

File metadata

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

File hashes

Hashes for topologize-0.0.5-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 4ab30aab29e38b2b80c96bc6a5b221c185e843dfb7e9a2d193b6ee986a9bda6f
MD5 a44841b4d73258dacd46dd55f4f3dc84
BLAKE2b-256 fbd845b09c51f595b28349e011b7a6feba68c0fd809d317be2a0c4d17bbe98a1

See more details on using hashes here.

Provenance

The following attestation bundles were made for topologize-0.0.5-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.5-cp313-cp313-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for topologize-0.0.5-cp313-cp313-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 9c5b0ee01a8bf9573ae0e3206dd4bfeb8d3f1f39ab079aa073c0a04563a2c371
MD5 a1849ce1a3415d3c783570397978af11
BLAKE2b-256 10d802587ae67edb0c6c46759b1d73c7deacbbe324a27112998194848643c168

See more details on using hashes here.

Provenance

The following attestation bundles were made for topologize-0.0.5-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.5-cp313-cp313-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for topologize-0.0.5-cp313-cp313-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 27ab064901cfdca802cb8e2bd581a4a13c6378442da89249fda627e9cab5da8e
MD5 bcaac41a7d958a425b19f0214a1e0f2e
BLAKE2b-256 70c791603c72f2ba7fdcad74fa4af4c26850b1cb85894dd562fe4e527c389776

See more details on using hashes here.

Provenance

The following attestation bundles were made for topologize-0.0.5-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.5-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for topologize-0.0.5-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 031df58172a375a3b3c4cd8d147d3330f5d944331a8b9e775b385368ce068280
MD5 aeacd52d3cc597feaf91d03415943bf1
BLAKE2b-256 bd13890f92318120684d436879b9f51a7e15799da9e800326d7f426b43d706d6

See more details on using hashes here.

Provenance

The following attestation bundles were made for topologize-0.0.5-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.5-cp313-cp313-manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for topologize-0.0.5-cp313-cp313-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 a17442cea0f8ff029ba14c93e73637b01980639d9b3d7b3f018555da667de6c7
MD5 eda1e91aee1106ffa174718082fee950
BLAKE2b-256 b9172f0d14ab994acacd78312181ca526e1a10920cd52593883f24d5f9d2f42c

See more details on using hashes here.

Provenance

The following attestation bundles were made for topologize-0.0.5-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.5-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl.

File metadata

File hashes

Hashes for topologize-0.0.5-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Algorithm Hash digest
SHA256 524161ce6293783f4943e255a4e115403bb5b60c6eca2603750cf532267495ff
MD5 bd402f7a33810abf3d15e8910c636fe3
BLAKE2b-256 9d4c034db136224f73edf930dbbae1abc789d562f0ee3a8bf81a0963ae337d3c

See more details on using hashes here.

Provenance

The following attestation bundles were made for topologize-0.0.5-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.5-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for topologize-0.0.5-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 a7a008f11889822782d4bf1b2bc05250210559603aebb98e8315a3688f75d75a
MD5 3f51a7bd10777b0213698ab1472fbc89
BLAKE2b-256 64906b3b82a83a1ade5aadaa1edf46956ce6912e712e8ec240f9a34f8d2a646a

See more details on using hashes here.

Provenance

The following attestation bundles were made for topologize-0.0.5-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.5-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for topologize-0.0.5-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 9bb94bad4f2d101a3f9e943f039764a6060e9be0e497c2266262a4fad0b82e6c
MD5 1aba15d79d29642f51e6b3d01fe0dc06
BLAKE2b-256 87de75c0807ae36b2c45c47aeacc61382f3b3bba76ed4ec6182e1a86035674e2

See more details on using hashes here.

Provenance

The following attestation bundles were made for topologize-0.0.5-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.5-cp313-cp313-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for topologize-0.0.5-cp313-cp313-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 1c39249cd6aa9f5c69240f8d7788afce281e0c3d329d62fbb3cee3d13bbab83c
MD5 76a5d14c5be935c83f4c8392e01b2344
BLAKE2b-256 c2493e7f6a762f541edd5ae0322b231ff199003bb6b130212fd34043e8cceac5

See more details on using hashes here.

Provenance

The following attestation bundles were made for topologize-0.0.5-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.5-cp312-cp312-win_amd64.whl.

File metadata

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

File hashes

Hashes for topologize-0.0.5-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 bcdf9800a6a8b67da937b4d3897dd81725dc5b6ffc3132712fcdfbe77f935b31
MD5 373da96ce699432802ff1954963a35cd
BLAKE2b-256 6ba59b61a8663f79f389e5e71ddb880d048cdb344ecac73269dbe554a13bce53

See more details on using hashes here.

Provenance

The following attestation bundles were made for topologize-0.0.5-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.5-cp312-cp312-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for topologize-0.0.5-cp312-cp312-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 425a0c7ca4264bea158b29986b6088b85b84357ccd74db2663de4cc71130cdb2
MD5 580be11084fa97e78f93317af95a27a3
BLAKE2b-256 8642b5cd2099192772b469cf4349ac1cf271e8e6a47e4b5638c5897a67e9a58b

See more details on using hashes here.

Provenance

The following attestation bundles were made for topologize-0.0.5-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.5-cp312-cp312-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for topologize-0.0.5-cp312-cp312-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 bc9d792b163b4d6063a0582af346bfdcf51480940679b0a4aef7d19b570d540c
MD5 9bf1a9623571f8c782da7c8e339f22df
BLAKE2b-256 68a3eb72d12a52be861f151b4ac8f7bf68bda277166f8766453e94d4f361f6aa

See more details on using hashes here.

Provenance

The following attestation bundles were made for topologize-0.0.5-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.5-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for topologize-0.0.5-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 61c278744e0046736f51ddf88f2d6483afb93728e5e5a465d7d2ce7b81d8a39a
MD5 a528a6d8136b82d17460979b9f4f73b0
BLAKE2b-256 ac9ab43fc3df9adb956728c3850404007fc40803103b262c440951f7b978bfa2

See more details on using hashes here.

Provenance

The following attestation bundles were made for topologize-0.0.5-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.5-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for topologize-0.0.5-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 d5cbc55f206f19528b5d0107a98375a4700aac7412a2c3df0b38cfcd9435500c
MD5 8be08557cb59384e3cb65d0075d31e61
BLAKE2b-256 9e4a441a2483b2684c584629000a5b7ca672fc80873afbc078f7729c19ac8381

See more details on using hashes here.

Provenance

The following attestation bundles were made for topologize-0.0.5-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.5-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl.

File metadata

File hashes

Hashes for topologize-0.0.5-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Algorithm Hash digest
SHA256 3b91c923e237f3e1cfa988985cec46e4196adcd487e3fded5489433ee76af079
MD5 c6ad8f732278fb4e7f32e2d85f54f820
BLAKE2b-256 b95404bc8779dc69be251309ef2e51d0e18aadbcbb480ac368bcaf064453bdc2

See more details on using hashes here.

Provenance

The following attestation bundles were made for topologize-0.0.5-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.5-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for topologize-0.0.5-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 17700328a7114bfce113a74d571c6fa0bb9945dc88c746d303e921d0163e6b66
MD5 c7bf8759f6f0f3061b14a4aa943563e8
BLAKE2b-256 99b85b4300d1414c6a387bb747c92407687eb65924bb297feaed84b00a9b5d18

See more details on using hashes here.

Provenance

The following attestation bundles were made for topologize-0.0.5-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.5-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for topologize-0.0.5-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 00f2b6f0d3cc50c8f210f0d9748002a7ee951aeeb9fcaf64963cd0c7decbc384
MD5 7445f81669d4ff3e6d21756b41ed5ac5
BLAKE2b-256 7443ba232b9b4af20fbb3269056d14224752a492c53fda6401f568b675d95efa

See more details on using hashes here.

Provenance

The following attestation bundles were made for topologize-0.0.5-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.5-cp312-cp312-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for topologize-0.0.5-cp312-cp312-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 17cfbfb43d91d13fe099d9d3698993875f93fbd12f14fdab5c32df7d5077c2db
MD5 57a1d160df62b7ca080c9b0ed31e414c
BLAKE2b-256 39a0585d2ec920250bf25fe2577a0bdf74db09d354c7ae6e913f7c08aba137e1

See more details on using hashes here.

Provenance

The following attestation bundles were made for topologize-0.0.5-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