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.7.tar.gz (411.8 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.7-cp314-cp314t-musllinux_1_2_x86_64.whl (726.5 kB view details)

Uploaded CPython 3.14tmusllinux: musl 1.2+ x86-64

topologize-0.0.7-cp314-cp314t-musllinux_1_2_aarch64.whl (675.9 kB view details)

Uploaded CPython 3.14tmusllinux: musl 1.2+ ARM64

topologize-0.0.7-cp314-cp314t-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (528.6 kB view details)

Uploaded CPython 3.14tmanylinux: glibc 2.17+ ARMv7l

topologize-0.0.7-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (500.0 kB view details)

Uploaded CPython 3.14tmanylinux: glibc 2.17+ ARM64

topologize-0.0.7-cp314-cp314-win_amd64.whl (345.7 kB view details)

Uploaded CPython 3.14Windows x86-64

topologize-0.0.7-cp314-cp314-win32.whl (351.4 kB view details)

Uploaded CPython 3.14Windows x86

topologize-0.0.7-cp314-cp314-musllinux_1_2_x86_64.whl (727.2 kB view details)

Uploaded CPython 3.14musllinux: musl 1.2+ x86-64

topologize-0.0.7-cp314-cp314-musllinux_1_2_aarch64.whl (677.7 kB view details)

Uploaded CPython 3.14musllinux: musl 1.2+ ARM64

topologize-0.0.7-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (524.1 kB view details)

Uploaded CPython 3.14manylinux: glibc 2.17+ x86-64

topologize-0.0.7-cp314-cp314-manylinux_2_17_i686.manylinux2014_i686.whl (576.1 kB view details)

Uploaded CPython 3.14manylinux: glibc 2.17+ i686

topologize-0.0.7-cp314-cp314-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (529.7 kB view details)

Uploaded CPython 3.14manylinux: glibc 2.17+ ARMv7l

topologize-0.0.7-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (502.0 kB view details)

Uploaded CPython 3.14manylinux: glibc 2.17+ ARM64

topologize-0.0.7-cp314-cp314-macosx_11_0_arm64.whl (454.2 kB view details)

Uploaded CPython 3.14macOS 11.0+ ARM64

topologize-0.0.7-cp314-cp314-macosx_10_12_x86_64.whl (474.7 kB view details)

Uploaded CPython 3.14macOS 10.12+ x86-64

topologize-0.0.7-cp313-cp313t-musllinux_1_2_x86_64.whl (726.4 kB view details)

Uploaded CPython 3.13tmusllinux: musl 1.2+ x86-64

topologize-0.0.7-cp313-cp313t-musllinux_1_2_aarch64.whl (676.0 kB view details)

Uploaded CPython 3.13tmusllinux: musl 1.2+ ARM64

topologize-0.0.7-cp313-cp313t-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (528.8 kB view details)

Uploaded CPython 3.13tmanylinux: glibc 2.17+ ARMv7l

topologize-0.0.7-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (500.3 kB view details)

Uploaded CPython 3.13tmanylinux: glibc 2.17+ ARM64

topologize-0.0.7-cp313-cp313-win_amd64.whl (346.3 kB view details)

Uploaded CPython 3.13Windows x86-64

topologize-0.0.7-cp313-cp313-musllinux_1_2_x86_64.whl (727.7 kB view details)

Uploaded CPython 3.13musllinux: musl 1.2+ x86-64

topologize-0.0.7-cp313-cp313-musllinux_1_2_aarch64.whl (678.1 kB view details)

Uploaded CPython 3.13musllinux: musl 1.2+ ARM64

topologize-0.0.7-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (524.4 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ x86-64

topologize-0.0.7-cp313-cp313-manylinux_2_17_i686.manylinux2014_i686.whl (576.1 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ i686

topologize-0.0.7-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (530.4 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ ARMv7l

topologize-0.0.7-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (502.7 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ ARM64

topologize-0.0.7-cp313-cp313-macosx_11_0_arm64.whl (454.2 kB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

topologize-0.0.7-cp313-cp313-macosx_10_12_x86_64.whl (474.9 kB view details)

Uploaded CPython 3.13macOS 10.12+ x86-64

topologize-0.0.7-cp312-cp312-win_amd64.whl (346.7 kB view details)

Uploaded CPython 3.12Windows x86-64

topologize-0.0.7-cp312-cp312-musllinux_1_2_x86_64.whl (728.1 kB view details)

Uploaded CPython 3.12musllinux: musl 1.2+ x86-64

topologize-0.0.7-cp312-cp312-musllinux_1_2_aarch64.whl (678.8 kB view details)

Uploaded CPython 3.12musllinux: musl 1.2+ ARM64

topologize-0.0.7-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (525.0 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ x86-64

topologize-0.0.7-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl (576.8 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ i686

topologize-0.0.7-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (530.7 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ ARMv7l

topologize-0.0.7-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (503.3 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ ARM64

topologize-0.0.7-cp312-cp312-macosx_11_0_arm64.whl (454.6 kB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

topologize-0.0.7-cp312-cp312-macosx_10_12_x86_64.whl (475.4 kB view details)

Uploaded CPython 3.12macOS 10.12+ x86-64

File details

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

File metadata

  • Download URL: topologize-0.0.7.tar.gz
  • Upload date:
  • Size: 411.8 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.7.tar.gz
Algorithm Hash digest
SHA256 719d4b7199e038e3a8dbff96679b375a4dd14e8edc3f3e59ab5701cf9f45915e
MD5 0da7cb7b8072ec01db06aa21fa76a778
BLAKE2b-256 a28c220a93379054e8a7e81589aef5231e364d0e9173b335ea808400f3f1e640

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for topologize-0.0.7-cp314-cp314t-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 bd471df6a61c6df42efbc35e347197a031d3730ce2102347ae555ae854e61d5d
MD5 4f6a0654c75b6695170d226a082935e5
BLAKE2b-256 fd9356ca19cc93c13991673b2415538a7fa50995f9ced74d1f5e50bda3915725

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for topologize-0.0.7-cp314-cp314t-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 d46cfda2faeb7c22ced17dec351186b7441ea8c9ff552b224d7f63f1de4c5cb6
MD5 a72e4fdc81779e5887110198165c3d37
BLAKE2b-256 1194902d52dc244f2e52d5c85cc9161b5ef0cdea64e4e4a02f8ff01e8216c29e

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for topologize-0.0.7-cp314-cp314t-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Algorithm Hash digest
SHA256 1b0b71937a47b46715a35fffd1a1093c447ced1624911851082800c65070d281
MD5 1a24e53a7b5125b5766228389bd408a6
BLAKE2b-256 430ee420d944fd7b93864a7e7f5ac86cf046d115607abd5526dd49208103e4b7

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for topologize-0.0.7-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 6bc7dec386dabee6c1d9d3842c05904810cc4a5b86b4723f96bd3b9734e7074c
MD5 8fbd8abe06294ad5ffe8826aae09dd19
BLAKE2b-256 19f40f2e5051d9f5e1993b81b0d716732b01b02523d744018fffc0acdc61724a

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: topologize-0.0.7-cp314-cp314-win_amd64.whl
  • Upload date:
  • Size: 345.7 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.7-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 fe350e97840ab6aa6ac5650f59c65e94645156e46b6cead902cfeda10d5dc66d
MD5 2d5cff68ecb08ba67a0ae31c97b1ae26
BLAKE2b-256 8848a89c257a884cb988aaaa494b0f7879ec2025c61b8276b163afd0b7f9fbd6

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: topologize-0.0.7-cp314-cp314-win32.whl
  • Upload date:
  • Size: 351.4 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.7-cp314-cp314-win32.whl
Algorithm Hash digest
SHA256 c5261793206f55cc3c3a271421318368522373a548e13331f7fb7ed61c779623
MD5 2c4f92d728b77c110680e40ae5057ecd
BLAKE2b-256 00baa9d8f0a9a1c95c3713f206331522ce42aaf6bcdc97ed5506bbe86572e963

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for topologize-0.0.7-cp314-cp314-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 bc61bdbe21f18c4a0498ad88524193300945a3bdec88c5814773916bdc0d0816
MD5 cbcb388552be06e8625ed11f29ad2ca7
BLAKE2b-256 277fa3d1f43f6019fd5cdf91db622e0fc13079170b2e75c38a9763eaa13b933f

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for topologize-0.0.7-cp314-cp314-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 ce9b7901e9312abb0af412ed6032e2be6b23593ad56c4df54e39de2a6352452b
MD5 d113169bc90502df784cb54167645765
BLAKE2b-256 5c7d228848f449c6f3ad3d3fdeaa90f128026c66a95578d11119a31d06bb9971

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for topologize-0.0.7-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 4700e53953ee2a1975f40731813bc60e54144745318272c8b29ba445e68bee04
MD5 5ae6bfe6ba3b2e6f358eac9ffafcc9cf
BLAKE2b-256 c1837c9bd50c44e84b1b13033911769a968b0b6c51bc9fc6365eb44817580eee

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for topologize-0.0.7-cp314-cp314-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 756d646ca87213d287f5ea74a121f327b8bf3811bb4ce5929e60b36d3ec469d7
MD5 1cf2380e22f548743161bf9e52ad50f2
BLAKE2b-256 563e260c4d01e397fd424155f840950b4980ed7c3d7508d3c04d6b4ded768f3c

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for topologize-0.0.7-cp314-cp314-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Algorithm Hash digest
SHA256 363dce2ffd6d75d495cc8645365c3561ca7b3333490287bbb5efea7853b6794f
MD5 7befc7b576b995ba77244b3cd0bde725
BLAKE2b-256 f2c9a28e4fd0380e0981a642301a5852ae0708fe5d9c84677dfb4373bc3a5b3c

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for topologize-0.0.7-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 b653e69cc9d51bd2e492ff832e0a82f725086fc43adc0a6c0edb9979923a1cb9
MD5 681f2c33daccc6ab59c14601b3c26404
BLAKE2b-256 f1e59eb34b6f7828f457f2943ffe97f1908f8c8922c35e1dc7d3f3a80cd6f8ba

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for topologize-0.0.7-cp314-cp314-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 2ce8c75d95750e37c7514bcf8dd5f3a2a1c7ae1c74166889f29ca98ff4474a00
MD5 a307ff258a37b39e665e97d7f71b19a8
BLAKE2b-256 8dfe5f1977708e1006954f54ab1485d1c3de1cef52444619aee730b69ccf92c4

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for topologize-0.0.7-cp314-cp314-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 13574b2e8472019d42f75b0e8dba0a0945a5cc7d83c776e4aabd6b194c4044f8
MD5 68dc8ded05a28f4dcc84a05af1d03ceb
BLAKE2b-256 81c77c47b09aa3e86993aad30564ec280a39251dbc75adf0b7670da17f6abc95

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for topologize-0.0.7-cp313-cp313t-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 d6db6befef185bbafc597889197fb6c773f4bc0d28baadda2fb88c1faf1108c6
MD5 0beb4aba5a4778c1c567bd43f9cf5567
BLAKE2b-256 9aa98fc9bbe3a8488b6a7a9bf0961a800f10b83f0a3e4ceb27268dd0ec623f85

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for topologize-0.0.7-cp313-cp313t-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 149df070958ff21717b19b3e80600f62cc79c376db28a4a2ab28ee51b7ea173c
MD5 fc57464f105312a1d8063cf24f87f320
BLAKE2b-256 7040685520ff5d5ff00da5181f2b34b2d5454595760c2b9458ee11b64c7563d8

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for topologize-0.0.7-cp313-cp313t-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Algorithm Hash digest
SHA256 ad23c29feb19322ff75831921d6f26048acb4e9b502a14778862698cb616e7a9
MD5 fa752cb96c1066e566fd69fd9f66c33e
BLAKE2b-256 b6f47ec001d274060bc88114bc5cb4093633210b9a93e6b3fa8805628ef2fb4f

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for topologize-0.0.7-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 5a08ffab8691ceeba39be1f26f9bb626c48f70cdc065c50d1b05358913f28d83
MD5 794b2d23da98e0e1d3e0bf6eb68f22fd
BLAKE2b-256 4fac7b869c0b0c73cac5e7b0a3a6f01589de1ff64ec41aec5e0ff2c4c233146a

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: topologize-0.0.7-cp313-cp313-win_amd64.whl
  • Upload date:
  • Size: 346.3 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.7-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 dd6d8e63453c0da4e10583ff193e0c5093bda16f2892cccea66335302eba3c90
MD5 80ebc95672aa903374b80a012b683ef8
BLAKE2b-256 a69a98f4212d445a9eddfed318ac07b8d34fede2d2e4ae109d5da603cb271921

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for topologize-0.0.7-cp313-cp313-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 f3acfaff3ed76a9d827f45eea843a94ef24b3f2d68e17060bd9a113b38a7b0c1
MD5 1eed18c2ebee6bc00841a578b7525bca
BLAKE2b-256 9903254c477a17f7c80ef333f6523b03a9d9157a28066a71687b49799d6aadae

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for topologize-0.0.7-cp313-cp313-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 c8b47485295023ea25371443f97996a0fa1f19bb024bdda1ccc9d05e89bc0162
MD5 dbec841dd0ee368827dd71d4963ed59b
BLAKE2b-256 b592cc94fcf7f0b116ebdd3a7a223589984012c68793d33373dfad5fc05e3560

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for topologize-0.0.7-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 19a7a20ec82e3f44839a1f93c5aaa52bfdd34c807c0572ac2474ee0e07c12093
MD5 b9914d82dbd343d22da9e2e91fef8c63
BLAKE2b-256 f8bd0bdd75d7b92d76d14141ec983e9669f510883609fa238373a4996ac8f3cd

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for topologize-0.0.7-cp313-cp313-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 244a263344fb9b28e9dda5fa399e3e4cd7966e5e4fb257afe640bcd97ae48b98
MD5 58d46c73690c7ebc06e15ccddad57314
BLAKE2b-256 5e0eb5e874197f455c8c16bc1f0c73db3e26f734988cad68e2c0433feb082b39

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for topologize-0.0.7-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Algorithm Hash digest
SHA256 3823d37ff46e798c766407437b61e7fa25ff5c0ec2fcc4201c163e2aec1ea1f7
MD5 67b43e1e9b4781562e9e8cc15594ad30
BLAKE2b-256 1a19418e0437782909c093b6b78a642a9f2115a6285220a9f89518f258a42fb6

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for topologize-0.0.7-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 d0eebd5371de5b6ed456d738e3aed074a55b5dcd6dfb9f5cca9466c08d597951
MD5 3608fcbc369b520b713721b833ba80f8
BLAKE2b-256 b787b2ba34dcbba9c037af27a3346073bce7bd5470bab7b13735e241b62669e6

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for topologize-0.0.7-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 dd1e48a19e35e382ac44f5efad6113beb34b1c3f0be90fa1c11f00fb61a07ae0
MD5 26a7902971702142748d63c5c8ed3aa0
BLAKE2b-256 94cc37156a395501d9301ae3cdda6ba341362419b76d628db474286aeaca57a2

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for topologize-0.0.7-cp313-cp313-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 143e9a7be229b0ce1ea7d3baf2dc197eeb6b5676f5418ef3c1360dde2ead2720
MD5 82bcf5e0061a24154db6954fdf727d4a
BLAKE2b-256 057c5421af6399ff3c547ca9c64f785709d89db6ea7027cac6af717de491b478

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: topologize-0.0.7-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 346.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.7-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 5b3be45f1bddbc3225e75ef537b863386fc7fa459a6fa60f3fafafe74f36d4ed
MD5 53007f18d32f4d9e6134c00f39b9c235
BLAKE2b-256 76ab28cff32f7b28e18fbff121652cdeb6e2428f543d576e39db85756449927d

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for topologize-0.0.7-cp312-cp312-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 8a629ed5421c9ca271ec7539b036bc4aed4b9d70276f44c1cad6c2c8ed616334
MD5 18655794b3ac6478efc5bc00fa122ff2
BLAKE2b-256 438fab7ed0a7a41366b6eceafaa68832cceec7ead56283505b340d428fc0e896

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for topologize-0.0.7-cp312-cp312-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 14fdc08b535fa30fa99fb23622ca74093f4785b2fbc461edc079f82c3c012ced
MD5 61b0145f105064d121cdc537aacdec9b
BLAKE2b-256 035c751942f95a6112bd2cbed7f940fa114a55979af3309b6738e5098f82a2dd

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for topologize-0.0.7-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 dc07df43c2216a62167dcca22d7bdc5d78f1a1a19e112678c225df1e43d1f9ec
MD5 ee66a364723361014fa4b3dcb8d8f874
BLAKE2b-256 abe7dccba74260df18f49fc4166361ae4fce5bc1041d34fc757ac8941de58d3d

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for topologize-0.0.7-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 fdea6bcbd9e67387730901465264897341fbdcc96a6cdea1afbc604c2c7c0ac8
MD5 dc03677817493f5f85bbcb29bd461924
BLAKE2b-256 cf669bc205d5bd34f0d51b0666a27714de295498ca06160d1f6b62b0818c5c2c

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for topologize-0.0.7-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Algorithm Hash digest
SHA256 e662ee733ad9c6c8b750ee9eb77cc45f4757192d4a7577d6e00a5f81e4db1d34
MD5 b44518e7f3b12cc99f162ec13b0c937a
BLAKE2b-256 0194d4a1cd1d9d5c990d61a4049a0a3a72dbc69ad8f3424e84d684c1823df5ce

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for topologize-0.0.7-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 4313bbfa975eadf16669e79f32ec3cec76ee20b24947662b37f71083c2a211bc
MD5 492569ef70d46bb1a18bed42e11e9f71
BLAKE2b-256 1e804f81b1561ac7cd41264c823d6ef57277754b5acf92ebe9d14279587d4ef8

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for topologize-0.0.7-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 0b268efc7861ab15864a932379c03655d71ef0515bed974996102a78b7807c99
MD5 fe5ec9619d341a66c99f688756d294bb
BLAKE2b-256 f3a05e668fc5b64fc9af527858e80ff7d1da4dc7c4bef0e15b1aca6f81b414e0

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for topologize-0.0.7-cp312-cp312-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 292475e86a1701bfef6fd6125f40cf68243f1c7cf7d847bf422a5fe0c9e98ce0
MD5 107cb1492d2f78ca5ab26e04a8da3417
BLAKE2b-256 1e01256ae3dd0e75147cdec3f5aeef34a5e35f7a68ee3ee69e3c092203a10355

See more details on using hashes here.

Provenance

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