Skip to main content

pyvoro2

CI Docs PyPI Python Versions License

Documentation: https://delonecommons.github.io/pyvoro2/


pyvoro2 is a scientific Python package for computing 2D and 3D Voronoi and power/Laguerre tessellations, with particular support for periodic topology and inverse fitting of power weights from partial geometric data.

pyvoro2 0.8.0: this source describes the finalized v0.8 release contract. One exact source commit is independently reviewed and qualified with its artifacts under issue #33 before the public tag is created. The archived v0.6.3 release remains the software baseline cited by the current separator-inverse manuscript.

The v0.8 tree provides:

  • standard Voronoi tessellations;
  • power/Laguerre tessellations directly from mathematical weights, with the existing radius representation retained;
  • a dedicated pyvoro2.planar namespace for 2D rectangular domains;
  • bounded, partially periodic, and triclinic periodic 3D domains;
  • explicit periodic neighbor-image shifts;
  • diagnostics, validation, topology normalization, and visualization helpers;
  • separator-based inverse fitting in 2D and 3D, including graph/connectivity diagnostics, hard-constraint witnesses, realized-boundary matching, and an optional realization-aware active-set loop.

The package is evolving toward a stable architecture for forward and inverse weighted tessellations. v0.8 is a feature-free maintenance and compatibility-removal release. v0.9 is reserved for functional/API stabilization and downstream readiness, 1.0 stabilizes the existing core, prescribed cell measures begin in v1.1, and mixed separator-plus-measure fitting begins in v1.2.

pyvoro2 is designed to be explicit and predictable:

  • it vendors and wraps upstream Voro++ sources, including a small numeric robustness fix already accepted upstream for power/Laguerre pruning;
  • 3D and planar APIs remain separate where their backends and domain support differ;
  • power weights are the mathematical quantities, while Voro++ radii are a backend representation;
  • algebraic inverse fit and realized geometry are reported as separate layers;
  • numerical and topological failure modes are exposed through diagnostics rather than hidden fallback.

License note: pyvoro2-authored code is released under LGPLv3+ starting with version 0.6.0. Earlier versions were released under MIT. Vendored third-party code remains under its own licenses.

Quickstart

1) Standard Voronoi in a 3D box

For 3D visualization, install the optional dependency with pip install "pyvoro2[viz]".

import numpy as np
import pyvoro2 as pv
from pyvoro2.viz3d import view_tessellation

points = np.random.default_rng(0).uniform(-1.5, 1.5, size=(10, 3))
box = pv.Box(((-2, 2), (-2, 2), (-2, 2)))
result = pv.compute(points, domain=box, mode='standard')

view_tessellation(
    result.cells,
    domain=box,
    show_vertices=False,
)
Voronoi tessellation in a box

2) Planar periodic workflow

import numpy as np
import pyvoro2.planar as pv2

points2d = np.array([
    [0.2, 0.2],
    [0.8, 0.25],
    [0.4, 0.8],
], dtype=float)

cell2d = pv2.RectangularCell(
    ((0.0, 1.0), (0.0, 1.0)),
    periodic=(True, True),
)
result2d = pv2.compute(
    points2d,
    domain=cell2d,
    return_diagnostics=True,
    normalize='topology',
)

diagnostics2d = result2d.require_tessellation_diagnostics()
topology2d = result2d.require_normalized_topology()

3) Power/Laguerre tessellation

The forward compute(...) APIs accept mathematical power weights directly:

weights = np.linspace(-0.2, 0.2, len(points))

result = pv.compute(
    points,
    domain=box,
    mode='power',
    weights=weights,
    include_empty=True,
)

The power function is ||x - p_i||^2 - w_i: weights have squared-length units, may be negative, and are converted to non-negative backend radii using one common global shift. Adding the same constant to every weight leaves the complete diagram unchanged. Existing radii= calls remain available, but the resulting length-unit radii are a non-unique backend representation rather than necessarily physical radii. Supply exactly one of weights= or radii= in power mode. Finite representability is necessary for conversion but does not guarantee a numerically resolvable native tessellation. Voro++ evaluates radical geometry with binary64 squared-radius arithmetic, so very large absolute radii**2 values or genuine weight ranges relative to squared coordinate/domain scales can lose geometric resolution. There is no universal safe cutoff: the onset depends on scale, geometry, platform, and compiler, and periodic power tessellations are a particularly sensitive regime. See Power diagrams for the precise distinction.

4) Periodic crystal cell with neighbor image shifts

cell = pv.PeriodicCell(
    vectors=(
        (10.0, 0.0, 0.0),
        (2.0,  9.0, 0.0),
        (1.0,  0.5, 8.0),
    )
)

result = pv.compute(points, domain=cell, return_face_shifts=True)

# result.require_boundaries() returns faces aligned with input-site order.
# Each face can include:
#   adjacent_cell  (neighbor site id)
#   adjacent_shift (which periodic image produced the face)

5) Fit weights from separator observations

import pyvoro2.inverse as inverse
import pyvoro2.inverse.separator as separator

points_pair = np.array([
    [0.0, 0.0, 0.0],
    [2.0, 0.0, 0.0],
])
pair_box = pv.Box(((-5, 5), (-5, 5), (-5, 5)))

observations = inverse.resolve_separator_observations(
    points_pair,
    [(0, 1, 0.25)],
    measurement='fraction',
    domain=pair_box,
)

fit = inverse.fit_weights_from_separators(
    points_pair,
    observations,
    model=separator.FitModel(mismatch=separator.SquaredLoss()),
)

The small pyvoro2.inverse surface is the normal fixed-observation route. Advanced models, realized-boundary checks, reports, and the experimental active-set workflow are available explicitly from pyvoro2.inverse.separator.

Numerical safety notes

Voro++ uses fixed absolute tolerances internally. pyvoro2 always rejects generator pairs whose squared distance is at most 1e-10 before native insertion; very small or very large coordinate systems can still lose geometric accuracy.

pyvoro2 does not silently rescale coordinates. Rescale explicitly when using unusual units.

A user policy can add a diagnostic range above the mandatory 1e-5 safety distance:

result = pv.compute(
    points,
    domain=cell,
    duplicate_check='raise',
    duplicate_threshold=1e-3,
)

duplicate_check='off', warn, and raise affect only safe pairs below the configured user threshold. Mandatory violations always raise. For periodic domains mandatory safety always uses certified minimum-image geometry; duplicate_wrap=False changes only the optional diagnostic metric.

Inserted generators must lie in each non-periodic half-open interval [lo, hi); periodic axes are remapped. This includes temporary ghost generators. Locate query points themselves are not inserted.

For stricter post-hoc checks, see:

  • pyvoro2.validate_tessellation(..., level='strict');
  • pyvoro2.validate_normalized_topology(..., level='strict');
  • pyvoro2.planar.validate_tessellation(..., level='strict');
  • pyvoro2.planar.validate_normalized_topology(..., level='strict').

The vendored Voro++ snapshot includes the upstream robustness fix for radical pruning in power mode. This avoids rare cross-platform cases where fully periodic power tessellations could produce a non-reciprocal face/neighbor graph under aggressive floating-point code generation.

Why use pyvoro2?

Voro++ is fast and mature, but its low-level C++ interface does not provide all of the Python-side contracts needed in scientific workflows. pyvoro2 adds:

  • triclinic periodic cells and coordinate mapping in 3D;
  • partially periodic orthorhombic cells for slabs and wires;
  • explicit planar support through pyvoro2.planar;
  • periodic image-labelled faces and edges for graph construction;
  • diagnostics and normalization for reproducible topology;
  • owner lookup with locate(...);
  • non-inserting probe cells with ghost_cells(...);
  • separator-based inverse fitting with inspectable graph, feasibility, realization, and active-set diagnostics.

Documentation overview

Section What it contains
Choosing an API Preferred forward and inverse entry points, lifecycle status, result layers, and the static scalability contract.
Capabilities and limitations Current supported contracts, wrapper restrictions, backend limits, unsupported geometry, and open architecture decisions.
Concepts A concise user introduction to Voronoi and power/Laguerre tessellations.
Glossary Power weights, backend radii, gauge, separator observations, realization, and active-set terminology.
Domains (3D) Box, OrthorhombicCell, and PeriodicCell.
Planar (2D) The planar namespace, rectangular periodicity, diagnostics, normalization, and plotting.
Operations Forward tessellation, owner lookup, and ghost-cell workflows.
Topology and graphs Periodic image-labelled adjacency and normalized topology.
Separator fitting Current inverse API, result diagnostics, realization matching, and active-set refinement.
v0.6.3–v0.8 migration Canonical replacements and the completed v0.8 compatibility removal.
Theory API-independent definitions of power diagrams, weights, gauge, and separator inversion.
Development Architecture, workflow, documentation conventions, release plans, API lifecycle, and decision records.
Visualization Optional py3Dmol and matplotlib helpers.
Examples Executable notebook workflows.
API reference Exact signatures and docstring reference for spatial, planar, and separator-fitting APIs.
v0.8.0 release notes Removals, fixes, maintenance, documentation, and the release distribution contract.
Roadmap v0.8 cleanup, v0.9 functional stabilization, the stable 1.0 core, v1.1 prescribed measures, v1.2 mixed fitting, and future research.

Installation

Most users should install a prebuilt wheel:

pip install pyvoro2

The v0.8 qualification workflow targets 20 standard GIL-enabled CPython wheels: Python 3.10, 3.11, 3.12, 3.13, and 3.14 for each of manylinux x86_64, Windows AMD64, macOS arm64, and macOS x86_64. It also builds one source distribution. Other operating systems, architectures, interpreter implementations, free-threaded CPython builds, musllinux, 32-bit targets, Windows arm64, and macOS universal2 do not have v0.8 prebuilt wheels.

Optional extras:

  • pyvoro2[sparse] for optional SciPy sparse-direct static quadratic separator fitting;
  • pyvoro2[viz] for 3D py3Dmol and 2D plotting;
  • pyvoro2[viz2d] for 2D matplotlib plotting only;
  • pyvoro2[all] for the full local notebook, docs, lint, test, and release validation stack.

Supported source builds use standard GIL-enabled CPython 3.10–3.14 and require a C++17 compiler, CMake 3.20 or newer, and Python development headers. Free-threaded CPython builds are not currently supported. Ninja is recommended because the build backend uses CMake efficiently with it. Typical toolchains are GCC or Clang on Linux, Xcode Command Line Tools on macOS, and Visual Studio Build Tools with the "Desktop development with C++" workload on Windows. These are source-build requirements, not pyvoro2 runtime dependencies.

For an editable runtime-only build:

python -m pip install --upgrade pip
python -m pip install -e .

For local repository development and all validation tools:

python -m pip install --upgrade pip
python -m pip install -e ".[all]"

See Contributing for platform notes and clean-environment verification.

Testing

The default suite includes deterministic tests and seeded fuzz/property tests with --fuzz-n=10:

pip install -e ".[test]"
pytest -q

Increased seeded fuzz coverage and the optional independent-wrapper group:

# Explicitly select fuzz tests and raise their iteration count
pytest -m fuzz --fuzz-n 100

# Independent wrapper cross-checks; requires pyvoro
pip install pyvoro
pytest -m pyvoro --fuzz-n 100

For a complete local publishability pass:

python tools/release_check.py

Project status and support

pyvoro2 is currently beta. This source describes v0.8.0, including the completed compatibility removal, Python 3.14 and wheel-matrix preparation, and the accepted bounded API-contract corrections. The v0.8 source is finalized before one exact commit and its artifacts are qualified under issue #33; any tracked correction changes that candidate. The archived v0.6.3 release remains the software baseline cited by the separator-inverse manuscript. The v0.8.0 release uses the project Git tag, GitHub Release, and package-distribution process and intentionally creates no new pyvoro2 Zenodo software-version record. Existing historical pyvoro2 and project/reproducibility Zenodo records remain valid. New inverse families begin after the stable 1.0 core. See the v0.8.0 release notes and the completed v0.8 plans.

Reproducible bugs and focused feature proposals are welcome through GitHub issues. Development is currently led by one maintainer, so support is best-effort. Contribution and decision policies are described in CONTRIBUTING.md.

AI-assisted development

The project has used the latest Chat and Codex models available at the time of development for planning, implementation support, testing, and documentation. The maintainer reviews and validates all integrated changes and remains responsible for the software and scientific claims.

See AI-assisted development for details.

License

  • pyvoro2-authored code is LGPLv3+ starting with version 0.6.0;
  • versions before 0.6.0 were released under MIT;
  • vendored Voro++ code remains under its upstream license.

This README is auto-generated from the MkDocs sources in docs/. To update it, edit the docs pages and re-run: python tools/gen_readme.py.

Download files

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

Source Distribution

pyvoro2-0.8.0.tar.gz (1.4 MB view details)

Uploaded Source

Built Distributions

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

pyvoro2-0.8.0-cp314-cp314-win_amd64.whl (653.3 kB view details)

Uploaded CPython 3.14Windows x86-64

pyvoro2-0.8.0-cp314-cp314-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (712.2 kB view details)

Uploaded CPython 3.14manylinux: glibc 2.24+ x86-64manylinux: glibc 2.28+ x86-64

pyvoro2-0.8.0-cp314-cp314-macosx_11_0_arm64.whl (607.6 kB view details)

Uploaded CPython 3.14macOS 11.0+ ARM64

pyvoro2-0.8.0-cp314-cp314-macosx_10_15_x86_64.whl (652.2 kB view details)

Uploaded CPython 3.14macOS 10.15+ x86-64

pyvoro2-0.8.0-cp313-cp313-win_amd64.whl (644.0 kB view details)

Uploaded CPython 3.13Windows x86-64

pyvoro2-0.8.0-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (711.8 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.24+ x86-64manylinux: glibc 2.28+ x86-64

pyvoro2-0.8.0-cp313-cp313-macosx_11_0_arm64.whl (607.1 kB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

pyvoro2-0.8.0-cp313-cp313-macosx_10_13_x86_64.whl (652.0 kB view details)

Uploaded CPython 3.13macOS 10.13+ x86-64

pyvoro2-0.8.0-cp312-cp312-win_amd64.whl (644.0 kB view details)

Uploaded CPython 3.12Windows x86-64

pyvoro2-0.8.0-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (711.6 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.24+ x86-64manylinux: glibc 2.28+ x86-64

pyvoro2-0.8.0-cp312-cp312-macosx_11_0_arm64.whl (607.0 kB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

pyvoro2-0.8.0-cp312-cp312-macosx_10_13_x86_64.whl (651.8 kB view details)

Uploaded CPython 3.12macOS 10.13+ x86-64

pyvoro2-0.8.0-cp311-cp311-win_amd64.whl (637.0 kB view details)

Uploaded CPython 3.11Windows x86-64

pyvoro2-0.8.0-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (711.9 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.24+ x86-64manylinux: glibc 2.28+ x86-64

pyvoro2-0.8.0-cp311-cp311-macosx_11_0_arm64.whl (604.3 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

pyvoro2-0.8.0-cp311-cp311-macosx_10_9_x86_64.whl (647.0 kB view details)

Uploaded CPython 3.11macOS 10.9+ x86-64

pyvoro2-0.8.0-cp310-cp310-win_amd64.whl (636.0 kB view details)

Uploaded CPython 3.10Windows x86-64

pyvoro2-0.8.0-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (709.9 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.24+ x86-64manylinux: glibc 2.28+ x86-64

pyvoro2-0.8.0-cp310-cp310-macosx_11_0_arm64.whl (602.1 kB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

pyvoro2-0.8.0-cp310-cp310-macosx_10_9_x86_64.whl (644.3 kB view details)

Uploaded CPython 3.10macOS 10.9+ x86-64

File details

Details for the file pyvoro2-0.8.0.tar.gz.

File metadata

  • Download URL: pyvoro2-0.8.0.tar.gz
  • Upload date:
  • Size: 1.4 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.14

File hashes

Hashes for pyvoro2-0.8.0.tar.gz
Algorithm Hash digest
SHA256 27c525394b0881230cc7f68d8b8d3c695275d349cae37ddce13e34e0232e0c6a
MD5 fb6e1cabd03ea9696951891e9911bd41
BLAKE2b-256 ca0a8c3fb40d6199788fc95592c8ff2329adcd20135b8d1600648d3b3d70db2d

See more details on using hashes here.

File details

Details for the file pyvoro2-0.8.0-cp314-cp314-win_amd64.whl.

File metadata

  • Download URL: pyvoro2-0.8.0-cp314-cp314-win_amd64.whl
  • Upload date:
  • Size: 653.3 kB
  • Tags: CPython 3.14, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.14

File hashes

Hashes for pyvoro2-0.8.0-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 513c4f0d2de1a4ed555c5d62b982f9a3a901d25eb560904d5868466847a7b1ed
MD5 a3c88ea214cfd7f4a0c1b12af8b4327d
BLAKE2b-256 a960fa713444f2b9ea20efc6b4f731af4ac0dfb20c03707decd4f58ba7a7c97f

See more details on using hashes here.

File details

Details for the file pyvoro2-0.8.0-cp314-cp314-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for pyvoro2-0.8.0-cp314-cp314-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 dd8470cd91b7091fb73bec46ade24889de364b908a747f8caf17151ebf46420a
MD5 10d6bc1d10842efcb289bf6db6210e43
BLAKE2b-256 970f9dfa07088a628b968b5f59eaad1f985e47d98445cbefc3bbf036fc88a304

See more details on using hashes here.

File details

Details for the file pyvoro2-0.8.0-cp314-cp314-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pyvoro2-0.8.0-cp314-cp314-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 8534f88b253bac9035e2e2d68ab23a1b7d3c2c943b743f3717d0b22f6d9b5a06
MD5 c0c46a853d58866778afbe7e11272ffe
BLAKE2b-256 ba7e1014f8c034d20cee7e35697c3655aededd42d3b55b65d46185128cdabcd2

See more details on using hashes here.

File details

Details for the file pyvoro2-0.8.0-cp314-cp314-macosx_10_15_x86_64.whl.

File metadata

File hashes

Hashes for pyvoro2-0.8.0-cp314-cp314-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 2b2f7ae06da8147b54790bc3d6a9d8980cc3a4d0d150caa1338937f32d7fcc1c
MD5 b8ed599fd966dc8271cedb46a18b7abd
BLAKE2b-256 9b4fe50851b7d459e9298aa0b1e9aab14892bb1126465298893cb5e4ad8fe6fa

See more details on using hashes here.

File details

Details for the file pyvoro2-0.8.0-cp313-cp313-win_amd64.whl.

File metadata

  • Download URL: pyvoro2-0.8.0-cp313-cp313-win_amd64.whl
  • Upload date:
  • Size: 644.0 kB
  • Tags: CPython 3.13, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.14

File hashes

Hashes for pyvoro2-0.8.0-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 5d45ee1a3a284b0ba51791d2749c377c541e33ab1d8d3674b95e8615e4d6968d
MD5 cc9a36a3adbcddca3ccc8a9701642240
BLAKE2b-256 df1d2b58b32172f5111a8309895ca1fa7ae386289111f07709bcf219f4bf0471

See more details on using hashes here.

File details

Details for the file pyvoro2-0.8.0-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for pyvoro2-0.8.0-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 52a18551344079f9fb7c2bc07c2c24126dd6b892b9de20a15961bbe2966b5437
MD5 a7c129e32a5e399dc6a5aa39f902d19a
BLAKE2b-256 3e6bbfa811c5f189dbd285788325c288fc3cba37637c3a7b9db777a55ec78ab8

See more details on using hashes here.

File details

Details for the file pyvoro2-0.8.0-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pyvoro2-0.8.0-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 7a1fd066fec9e34cbb7e6f6ed82d10bc1dca31dde5f9daafbc5c15891fca1fa3
MD5 79ddab664275691deb9b51fb60989434
BLAKE2b-256 f03672a19f19fe3fe4ac83b19361bb0ac3ec98a66357a69c321da8f9ca94231d

See more details on using hashes here.

File details

Details for the file pyvoro2-0.8.0-cp313-cp313-macosx_10_13_x86_64.whl.

File metadata

File hashes

Hashes for pyvoro2-0.8.0-cp313-cp313-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 ebbd1131d4fd54ef2dd224eb471f56954e9d893219c833686af0201141d847ff
MD5 7cf986cee14f7f11384f7bcc894cfbae
BLAKE2b-256 65600af95133b2dd56ab6dfabf689c75d43c3333f08ce1e28a57ec7f04be0191

See more details on using hashes here.

File details

Details for the file pyvoro2-0.8.0-cp312-cp312-win_amd64.whl.

File metadata

  • Download URL: pyvoro2-0.8.0-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 644.0 kB
  • Tags: CPython 3.12, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.14

File hashes

Hashes for pyvoro2-0.8.0-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 c48c8e8349cb7c20eafbe3b7ee0bbd6553f242d5356ddc376729c050240a1071
MD5 21634105e38e7111660594523a9a51b1
BLAKE2b-256 5e922f86f88698680536b5810b2a0d354cc514b47aab873e946ed6393ee56896

See more details on using hashes here.

File details

Details for the file pyvoro2-0.8.0-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for pyvoro2-0.8.0-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 266b996a8379b0a183b73e440b95c7300df560e5349f58492b6f185130a90bf2
MD5 1e6fa72e7317f84ba41704d0fd27e32d
BLAKE2b-256 6dc62e9bad8eaab12d61a700b2865cf218360af36ac9e0846dfadb799ee9bb25

See more details on using hashes here.

File details

Details for the file pyvoro2-0.8.0-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pyvoro2-0.8.0-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 f2d03063f5f0f716b0c1e6ba830a5b764cafe22b7c119185c5bab2263c19a6f6
MD5 94cb7a5685c2bfba1cf2737a775320e4
BLAKE2b-256 9445199222f2b0270b895233c8bb0176324ff3097f2d2c94a1b17531fd86672a

See more details on using hashes here.

File details

Details for the file pyvoro2-0.8.0-cp312-cp312-macosx_10_13_x86_64.whl.

File metadata

File hashes

Hashes for pyvoro2-0.8.0-cp312-cp312-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 6ad635a2482bfca7f38d878b61cb099370b287f9ed56b2a3e299cca9120e7c3f
MD5 1d49e4b58edc9bc07b5081527c2bd55d
BLAKE2b-256 d02db857564bb1862b9284de50a1e7e40a4243734090e16db5b9a50048f98329

See more details on using hashes here.

File details

Details for the file pyvoro2-0.8.0-cp311-cp311-win_amd64.whl.

File metadata

  • Download URL: pyvoro2-0.8.0-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 637.0 kB
  • Tags: CPython 3.11, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.14

File hashes

Hashes for pyvoro2-0.8.0-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 0e94f09ed28578e3c533898c2924793efda2438f8b62762377b859c0ab2923b0
MD5 cce0e19a79cbd59055f87abdd811b23e
BLAKE2b-256 9d237abb0b15f64e73b5f2fd89a648170239e89f28a93148238f5a9a30379b5f

See more details on using hashes here.

File details

Details for the file pyvoro2-0.8.0-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for pyvoro2-0.8.0-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 eb687ee51c7c8cd6738760ac82abc098d88b1e18fb802e96dd29008b634b3fb4
MD5 2419f5b16c04ac3093b082e37188ccf9
BLAKE2b-256 a89a62911c7760164d9198448b07d330dc9c899770138132a9a849ffe929f8e7

See more details on using hashes here.

File details

Details for the file pyvoro2-0.8.0-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pyvoro2-0.8.0-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 f8c50eda1000d66174e77848aa719972168ab94fa90dba3e8df0d62afd624d1c
MD5 9c94330162eba9ee755eabea6174e66e
BLAKE2b-256 4114212d92e0cd2813dd84d3c3034cd8cbff7c0778e232d49e3c5377676dbf8b

See more details on using hashes here.

File details

Details for the file pyvoro2-0.8.0-cp311-cp311-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for pyvoro2-0.8.0-cp311-cp311-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 69de551e34c175999d0fe4b9eaf9196db5cb82ffb1a141b7a7b9b065bb770c41
MD5 42d91b494b8bdb0b334a799d395e7f66
BLAKE2b-256 d34ae7ca6fa6962f4b2eb230ac2ea5f39fb42f9351353e91ffcacfc8285c2fac

See more details on using hashes here.

File details

Details for the file pyvoro2-0.8.0-cp310-cp310-win_amd64.whl.

File metadata

  • Download URL: pyvoro2-0.8.0-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 636.0 kB
  • Tags: CPython 3.10, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.14

File hashes

Hashes for pyvoro2-0.8.0-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 cedbdd32be9cb2153b6586f3dbe18fa48e69c11528540d272cd34202be383d86
MD5 090e01129b4785b228a01e719d1f0464
BLAKE2b-256 1304f48c71fc7309d04d9b52991bae2d7fa23e7dfbfea68db858b327c9cc38cf

See more details on using hashes here.

File details

Details for the file pyvoro2-0.8.0-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for pyvoro2-0.8.0-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 324fc0d1ac093a39f343970bfbc80d2fd6095bdc0ea3429ab184958cda158343
MD5 26b890cd5522a576e778d51ef0d006d1
BLAKE2b-256 656d87e16136c4fecb8ee79a6e37f342f2f8efe7e470d34d369d4b11f22a8127

See more details on using hashes here.

File details

Details for the file pyvoro2-0.8.0-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pyvoro2-0.8.0-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 46400dbe53d18fe7c70d6ebfd958b89b7fd1d3754ed0b9d02c6a1f90f251e742
MD5 806e695e69880018a434994474625f4b
BLAKE2b-256 cc6b5596e11bb6961ed20891d86659466ade833c577e80d3b8f13057abc03acb

See more details on using hashes here.

File details

Details for the file pyvoro2-0.8.0-cp310-cp310-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for pyvoro2-0.8.0-cp310-cp310-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 7ffb3f6a8148d110de8389a6e90084ff1a5db17f5ff4c46d674376dc9b393e7f
MD5 b2ef9b0057b8dad88cab9ad46fd6e539
BLAKE2b-256 a014b545c9dfb4604105e544043866a33e77cf3e7b9e49381ce0ab12f97eb209

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

0.8.0 This release

21 files

0.7.0

13 files

0.6.3

13 files

0.6.1

13 files

0.4.2.post1

13 files

0.4.2

21 files

0.4.0

21 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page