Skip to main content

An invigorating blend of 3D geometry tools in Python.

Project description

potpourri3d

A Python library of various algorithms and utilities for 3D triangle meshes and point clouds. Managed by Nicholas Sharp, with new tools added lazily as needed. Currently, mainly bindings to C++ tools from geometry-central.

pip install potpourri3d

The blend includes:

  • Mesh and point cloud reading/writing to a few file formats
  • Use heat methods to compute distance, parallel transport, logarithmic maps, and more

Installation

Potpourri3d is on the pypi package index with precompiled binaries for most configuations. Get it like:

pip install potpourri3d

If none of the precompiled binaries match your system, pip will attempt to compile the library from scratch. This requires cmake and a workng C++ compiler toolchain.

Note: Some bound functions invoke sparse linear solvers internally. The precompiled binaries use Eigen's solvers; using Suitesparse's solvers instead may significantly improve performance & robustness. To get them, locally compile the package on a machine with Suitesparse installed using the command below (relevant docs).

python -m pip install potpourri3d --no-binary potpourri3d

Documentation

Input / Output

Read/write meshes and point clouds from some common formats.

  • read_mesh(filename) Reads a mesh from file. Returns numpy matrices V, F, a Nx3 real numpy array of vertices and a Mx3 integer numpy array of 0-based face indices (or Mx4 for a quad mesh, etc).

    • filename the path to read the file from. Currently supports the same file types as geometry-central. The file type is inferred automatically from the path extension.
  • write_mesh(V, F, filename) Write a mesh from file. Returns numpy matrices V, F, a Vx3 real array of vertices and a Fx3 integer array of 0-based face indices (or Fx4 for a quad mesh, etc).

    • V a Nx3 real numpy array of vertices
    • F a Mx3 integer numpy array of faces, with 0-based vertex indices (or Mx4 for a quad mesh, etc).
    • filename the path to write the file to. Currently supports the same file types as geometry-central. The file type is inferred automatically from the path extension.

Mesh basic utilities

  • face_areas(V, F) computes a length-F real numpy array of face areas for a triangular mesh
  • vertex_areas(V, F) computes a length-V real numpy array of vertex areas for a triangular mesh (equal to 1/3 the sum of the incident face areas)
  • cotan_laplacian(V, F, denom_eps=0.) computes the cotan-Laplace matrix as a VxV real sparse csr scipy matrix. Optionally, set denom_eps to a small value like 1e-6 to get some additional stability in the presence of degenerate faces.

Mesh Distance

Use the heat method for geodesic distance to compute geodesic distance on surfaces. Repeated solves are fast after initial setup. Uses intrinsic triangulations internally for increased robustness.

import potpourri3d as pp3d

# = Stateful solves (much faster if computing distance many times)
solver = pp3d.MeshHeatMethodDistanceSolver(V,F)
dist = solver.compute_distance(7)
dist = solver.compute_distance_multisource([1,2,3])  

# = One-off versions
dist = pp3d.compute_distance(V,F,7)
dist = pp3d.compute_distance_multisource(V,F,[1,3,4])

The heat method works by solving a sequence of linear PDEs on the surface of your shape. On extremely coarse meshes, it may yield inaccurate results, if you observe this, consider using a finer mesh to improve accuracy. (TODO: do this internally with intrinsic Delaunay refinement.)

  • MeshHeatMethodDistanceSolver(V, F, t_coef=1., use_robust=True) construct an instance of the solver class.
    • V a Nx3 real numpy array of vertices
    • F a Mx3 integer numpy array of faces, with 0-based vertex indices (triangle meshes only, but need not be manifold).
    • t_coef set the time used for short-time heat flow. Generally don't change this. If necessary, larger values may make the solution more stable at the cost of smoothing it out.
    • use_robust use intrinsic triangulations for increased robustness. Generaly leave this enabled.
  • MeshHeatMethodDistanceSolver.compute_distance(v_ind) compute distance from a single vertex, given by zero-based index. Returns an array of distances.
  • MeshHeatMethodDistanceSolver.compute_distance_multisource(v_ind_list) compute distance from the nearest of a collection of vertices, given by a list of zero-based indices. Returns an array of distances.
  • compute_distance(V, F, v_ind) Similar to above, but one-off instead of stateful. Returns an array of distances.
  • compute_distance_multisource(V, F, v_ind_list) Similar to above, but one-off instead of stateful. Returns an array of distances.

Mesh Vector Heat

Use the vector heat method to compute various interpolation & vector-based quantities on meshes. Repeated solves are fast after initial setup.

import potpourri3d as pp3d

# = Stateful solves
V, F = # a Nx3 numpy array of points and Mx3 array of triangle face indices
solver = pp3d.MeshVectorHeatSolver(V,F)

# Extend the value `0.` from vertex 12 and `1.` from vertex 17. Any vertex 
# geodesically closer to 12. will take the value 0., and vice versa 
# (plus some slight smoothing)
ext = solver.extend_scalar([12, 17], [0.,1.])

# Get the tangent frames which are used by the solver to define tangent data
# at each vertex
basisX, basisY, basisN = solver.get_tangent_frames()

# Parallel transport a vector along the surface
# (and map it to a vector in 3D)
sourceV = 22
ext = solver.transport_tangent_vector(sourceV, [6., 6.])
ext3D = ext[:,0,np.newaxis] * basisX +  ext[:,1,np.newaxis] * basisY

# Compute the logarithmic map
logmap = solver.compute_log_map(sourceV)
  • MeshVectorHeatSolver(V, F, t_coef=1.) construct an instance of the solver class.
    • V a Nx3 real numpy array of vertices
    • F a Mx3 integer numpy array of faces, with 0-based vertex indices (triangle meshes only, should be manifold).
    • t_coef set the time used for short-time heat flow. Generally don't change this. If necessary, larger values may make the solution more stable at the cost of smoothing it out.
  • MeshVectorHeatSolver.extend_scalar(v_inds, values) nearest-geodesic-neighbor interpolate values defined at vertices. Vertices will take the value from the closest source vertex (plus some slight smoothing)
    • v_inds a list of source vertices
    • values a list of scalar values, one for each source vertex
  • MeshVectorHeatSolver.get_tangent_frames() get the coordinate frames used to define tangent data at each vertex. Returned as a tuple of basis-X, basis-Y, and normal axes, each as an Nx3 array. May be necessary for change-of-basis into or out of tangent vector convention.
  • MeshVectorHeatSolver.get_connection_laplacian() get the connection Laplacian used internally in the vector heat method, as a VxV sparse matrix.
  • MeshVectorHeatSolver.transport_tangent_vector(v_ind, vector) parallel transports a single vector across a surface
    • v_ind index of the source vertex
    • vector a 2D tangent vector to transport
  • MeshVectorHeatSolver.transport_tangent_vectors(v_inds, vectors) parallel transports a collection of vectors across a surface, such that each vertex takes the vector from its nearest-geodesic-neighbor.
    • v_inds a list of source vertices
    • vectors a list of 2D tangent vectors, one for each source vertex
  • MeshVectorHeatSolver.compute_log_map(v_ind) compute the logarithmic map centered at the given source vertex
    • v_ind index of the source vertex

Mesh Geodesic Paths

Use edge flips to compute geodesic paths on surfaces. These methods are especially useful when you want the path itself, rather than the distance. These routines use an iterative strategy which is quite fast, but note that it is not guaranteed to generate the globally-shortest geodesic (they sometimes find some other very short geodesic instead).

import potpourri3d as pp3d

V, F = # your mesh
path_solver = pp3d.EdgeFlipGeodesicSolver(V,F) # shares precomputation for repeated solves
path_pts = path_solver.find_geodesic_path(v_start=14, v_end=22)
# path_pts is a Vx3 numpy array of points forming the path
  • EdgeFlipGeodesicSolver(V, F) construct an instance of the solver class.
    • V a Nx3 real numpy array of vertices
    • F a Mx3 integer numpy array of faces, with 0-based vertex indices (must form a manifold, oriented triangle mesh).
  • EdgeFlipGeodesicSolver.find_geodesic_path(v_start, v_end) compute a geodesic from v_start to v_end. Output is an Nx3 numpy array of positions which define the path as a polyline along the surface.
  • EdgeFlipGeodesicSolver.find_geodesic_path_poly(v_list) like find_geodesic_path(), but takes as input a list of vertices [v_start, v_a, v_b, ..., v_end], which is shorted to find a path from v_start to v_end. Useful for finding geodesics which are not shortest paths. The input vertices do not need to be connected; the routine internally constructs a piecwise-Dijkstra path between them. However, that path must not cross itself.
  • EdgeFlipGeodesicSolver.find_geodesic_loop(v_list) like find_geodesic_path_poly(), but connects the first to last point to find a closed geodesic loop.

Point Cloud Distance & Vector Heat

Use the heat method for geodesic distance and vector heat method to compute various interpolation & vector-based quantities on point clouds. Repeated solves are fast after initial setup.

point cloud vector heat examples

import potpourri3d as pp3d

# = Stateful solves
P = # a Nx3 numpy array of points
solver = pp3d.PointCloudHeatSolver(P)

# Compute the geodesic distance to point 4
dists = solver.compute_distance(4)

# Extend the value `0.` from point 12 and `1.` from point 17. Any point 
# geodesically closer to 12. will take the value 0., and vice versa 
# (plus some slight smoothing)
ext = solver.extend_scalar([12, 17], [0.,1.])

# Get the tangent frames which are used by the solver to define tangent data
# at each point
basisX, basisY, basisN = solver.get_tangent_frames()

# Parallel transport a vector along the surface
# (and map it to a vector in 3D)
sourceP = 22
ext = solver.transport_tangent_vector(sourceP, [6., 6.])
ext3D = ext[:,0,np.newaxis] * basisX +  ext[:,1,np.newaxis] * basisY

# Compute the logarithmic map
logmap = solver.compute_log_map(sourceP)
  • PointCloudHeatSolver(P, t_coef=1.) construct an instance of the solver class.
    • P a Nx3 real numpy array of points
    • t_coef set the time used for short-time heat flow. Generally don't change this. If necessary, larger values may make the solution more stable at the cost of smoothing it out.
  • PointCloudHeatSolver.extend_scalar(p_inds, values) nearest-geodesic-neighbor interpolate values defined at points. Points will take the value from the closest source point (plus some slight smoothing)
    • v_inds a list of source points
    • values a list of scalar values, one for each source points
  • PointCloudHeatSolver.get_tangent_frames() get the coordinate frames used to define tangent data at each point. Returned as a tuple of basis-X, basis-Y, and normal axes, each as an Nx3 array. May be necessary for change-of-basis into or out of tangent vector convention.
  • PointCloudHeatSolver.transport_tangent_vector(p_ind, vector) parallel transports a single vector across a surface
    • p_ind index of the source point
    • vector a 2D tangent vector to transport
  • PointCloudHeatSolver.transport_tangent_vectors(p_inds, vectors) parallel transports a collection of vectors across a surface, such that each vertex takes the vector from its nearest-geodesic-neighbor.
    • p_inds a list of source points
    • vectors a list of 2D tangent vectors, one for each source point
  • PointCloudHeatSolver.compute_log_map(p_ind) compute the logarithmic map centered at the given source point
    • p_ind index of the source point

Other Point Cloud Routines

Local Triangulation

Construct a local triangulation of a point cloud, a surface-like set of triangles amongst the points in the cloud. This is not a nice connected/watertight mesh, instead it is a crazy soup, which is a union of sets of triangles computed independently around each point. These triangles are suitable for running many geometric algorithms on, such as approximating surface properties of the point cloud, evaluating physical and geometric energies, or building Laplace matrices. See "A Laplacian for Nonmanifold Triangle Meshes", Sharp & Crane 2020, Sec 5.7 for details.

  • PointCloudLocalTriangulation(P, with_degeneracy_heuristic=True)
    • PointCloudLocalTriangulation.get_local_triangulation() returns a [V,M,3] integer numpy array, holding indices of vertices which form the triangulation. Each [i,:,:] holds the local triangles about vertex i. M is the max number of neighbors in any local triangulation. For vertices with fewer neighbors, the trailing rows hold -1.

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

potpourri3d-1.0.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.

potpourri3d-1.0.0-pp39-pypy39_pp73-win_amd64.whl (486.7 kB view details)

Uploaded PyPyWindows x86-64

potpourri3d-1.0.0-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (867.9 kB view details)

Uploaded PyPymanylinux: glibc 2.17+ x86-64

potpourri3d-1.0.0-pp39-pypy39_pp73-manylinux_2_17_i686.manylinux2014_i686.whl (945.7 kB view details)

Uploaded PyPymanylinux: glibc 2.17+ i686

potpourri3d-1.0.0-pp39-pypy39_pp73-macosx_10_9_x86_64.whl (865.2 kB view details)

Uploaded PyPymacOS 10.9+ x86-64

potpourri3d-1.0.0-pp38-pypy38_pp73-win_amd64.whl (486.8 kB view details)

Uploaded PyPyWindows x86-64

potpourri3d-1.0.0-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (867.9 kB view details)

Uploaded PyPymanylinux: glibc 2.17+ x86-64

potpourri3d-1.0.0-pp38-pypy38_pp73-manylinux_2_17_i686.manylinux2014_i686.whl (945.8 kB view details)

Uploaded PyPymanylinux: glibc 2.17+ i686

potpourri3d-1.0.0-pp38-pypy38_pp73-macosx_10_9_x86_64.whl (865.2 kB view details)

Uploaded PyPymacOS 10.9+ x86-64

potpourri3d-1.0.0-pp37-pypy37_pp73-win_amd64.whl (486.5 kB view details)

Uploaded PyPyWindows x86-64

potpourri3d-1.0.0-pp37-pypy37_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (867.3 kB view details)

Uploaded PyPymanylinux: glibc 2.17+ x86-64

potpourri3d-1.0.0-pp37-pypy37_pp73-manylinux_2_17_i686.manylinux2014_i686.whl (945.4 kB view details)

Uploaded PyPymanylinux: glibc 2.17+ i686

potpourri3d-1.0.0-pp37-pypy37_pp73-macosx_10_9_x86_64.whl (864.9 kB view details)

Uploaded PyPymacOS 10.9+ x86-64

potpourri3d-1.0.0-cp311-cp311-win_amd64.whl (488.6 kB view details)

Uploaded CPython 3.11Windows x86-64

potpourri3d-1.0.0-cp311-cp311-win32.whl (430.5 kB view details)

Uploaded CPython 3.11Windows x86

potpourri3d-1.0.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (871.4 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64

potpourri3d-1.0.0-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl (948.2 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ i686

potpourri3d-1.0.0-cp311-cp311-macosx_11_0_arm64.whl (716.3 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

potpourri3d-1.0.0-cp311-cp311-macosx_10_9_x86_64.whl (866.7 kB view details)

Uploaded CPython 3.11macOS 10.9+ x86-64

potpourri3d-1.0.0-cp311-cp311-macosx_10_9_universal2.whl (1.6 MB view details)

Uploaded CPython 3.11macOS 10.9+ universal2 (ARM64, x86-64)

potpourri3d-1.0.0-cp310-cp310-win_amd64.whl (487.6 kB view details)

Uploaded CPython 3.10Windows x86-64

potpourri3d-1.0.0-cp310-cp310-win32.whl (429.4 kB view details)

Uploaded CPython 3.10Windows x86

potpourri3d-1.0.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (869.3 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ x86-64

potpourri3d-1.0.0-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl (946.3 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ i686

potpourri3d-1.0.0-cp310-cp310-macosx_11_0_arm64.whl (715.0 kB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

potpourri3d-1.0.0-cp310-cp310-macosx_10_9_x86_64.whl (865.5 kB view details)

Uploaded CPython 3.10macOS 10.9+ x86-64

potpourri3d-1.0.0-cp310-cp310-macosx_10_9_universal2.whl (1.6 MB view details)

Uploaded CPython 3.10macOS 10.9+ universal2 (ARM64, x86-64)

potpourri3d-1.0.0-cp39-cp39-win_amd64.whl (487.5 kB view details)

Uploaded CPython 3.9Windows x86-64

potpourri3d-1.0.0-cp39-cp39-win32.whl (429.5 kB view details)

Uploaded CPython 3.9Windows x86

potpourri3d-1.0.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (869.5 kB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ x86-64

potpourri3d-1.0.0-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl (946.8 kB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ i686

potpourri3d-1.0.0-cp39-cp39-macosx_11_0_arm64.whl (715.1 kB view details)

Uploaded CPython 3.9macOS 11.0+ ARM64

potpourri3d-1.0.0-cp39-cp39-macosx_10_9_x86_64.whl (865.5 kB view details)

Uploaded CPython 3.9macOS 10.9+ x86-64

potpourri3d-1.0.0-cp39-cp39-macosx_10_9_universal2.whl (1.6 MB view details)

Uploaded CPython 3.9macOS 10.9+ universal2 (ARM64, x86-64)

potpourri3d-1.0.0-cp38-cp38-win_amd64.whl (487.6 kB view details)

Uploaded CPython 3.8Windows x86-64

potpourri3d-1.0.0-cp38-cp38-win32.whl (429.2 kB view details)

Uploaded CPython 3.8Windows x86

potpourri3d-1.0.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (869.2 kB view details)

Uploaded CPython 3.8manylinux: glibc 2.17+ x86-64

potpourri3d-1.0.0-cp38-cp38-manylinux_2_17_i686.manylinux2014_i686.whl (946.0 kB view details)

Uploaded CPython 3.8manylinux: glibc 2.17+ i686

potpourri3d-1.0.0-cp38-cp38-macosx_11_0_arm64.whl (715.1 kB view details)

Uploaded CPython 3.8macOS 11.0+ ARM64

potpourri3d-1.0.0-cp38-cp38-macosx_10_9_x86_64.whl (865.5 kB view details)

Uploaded CPython 3.8macOS 10.9+ x86-64

potpourri3d-1.0.0-cp38-cp38-macosx_10_9_universal2.whl (1.6 MB view details)

Uploaded CPython 3.8macOS 10.9+ universal2 (ARM64, x86-64)

potpourri3d-1.0.0-cp37-cp37m-win_amd64.whl (487.6 kB view details)

Uploaded CPython 3.7mWindows x86-64

potpourri3d-1.0.0-cp37-cp37m-win32.whl (430.5 kB view details)

Uploaded CPython 3.7mWindows x86

potpourri3d-1.0.0-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (869.9 kB view details)

Uploaded CPython 3.7mmanylinux: glibc 2.17+ x86-64

potpourri3d-1.0.0-cp37-cp37m-manylinux_2_17_i686.manylinux2014_i686.whl (950.0 kB view details)

Uploaded CPython 3.7mmanylinux: glibc 2.17+ i686

potpourri3d-1.0.0-cp37-cp37m-macosx_10_9_x86_64.whl (864.2 kB view details)

Uploaded CPython 3.7mmacOS 10.9+ x86-64

potpourri3d-1.0.0-cp36-cp36m-win_amd64.whl (487.6 kB view details)

Uploaded CPython 3.6mWindows x86-64

potpourri3d-1.0.0-cp36-cp36m-win32.whl (430.5 kB view details)

Uploaded CPython 3.6mWindows x86

potpourri3d-1.0.0-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (870.1 kB view details)

Uploaded CPython 3.6mmanylinux: glibc 2.17+ x86-64

potpourri3d-1.0.0-cp36-cp36m-manylinux_2_17_i686.manylinux2014_i686.whl (949.9 kB view details)

Uploaded CPython 3.6mmanylinux: glibc 2.17+ i686

potpourri3d-1.0.0-cp36-cp36m-macosx_10_9_x86_64.whl (864.1 kB view details)

Uploaded CPython 3.6mmacOS 10.9+ x86-64

File details

Details for the file potpourri3d-1.0.0.tar.gz.

File metadata

  • Download URL: potpourri3d-1.0.0.tar.gz
  • Upload date:
  • Size: 1.4 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.9.17

File hashes

Hashes for potpourri3d-1.0.0.tar.gz
Algorithm Hash digest
SHA256 819e42955b75100e5f0c3080a8b1527b30c7a7dde734268427b9869e663f080c
MD5 8b250ae5adbe781a40d1f3012da779ca
BLAKE2b-256 8109a8daa4ac0726e5c17819a2f873d5e5f24b54d620b8fd71baf1e751ad5912

See more details on using hashes here.

File details

Details for the file potpourri3d-1.0.0-pp39-pypy39_pp73-win_amd64.whl.

File metadata

File hashes

Hashes for potpourri3d-1.0.0-pp39-pypy39_pp73-win_amd64.whl
Algorithm Hash digest
SHA256 631913707343f5172ae9788dae40295e086eb2b40cbbcf25d0c2307c0e6eaf5f
MD5 008c2e88abcf557cb9f4cfbc89f42ffc
BLAKE2b-256 2bf95653901402df63cca8cbbf65ba3a4b577d9ddf541dc96d45270fb408d077

See more details on using hashes here.

File details

Details for the file potpourri3d-1.0.0-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for potpourri3d-1.0.0-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 d7e171ad5f7f37116218c1a9f4751de52a5a444ef5e38a265ff0673f42eee90e
MD5 c9c4a2e24ee882f190c2d30d3d6eb1c4
BLAKE2b-256 7bf5598542abce6be51a897963fb022357ec4a2ea191724792088293f38e2e0e

See more details on using hashes here.

File details

Details for the file potpourri3d-1.0.0-pp39-pypy39_pp73-manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for potpourri3d-1.0.0-pp39-pypy39_pp73-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 9ca8a54061467e561d1fc2d38ebe82b6b9dccfb20f498f66dda0a5327a1bf767
MD5 1c8b98847ad4b9ec673fc2e21c96c9e1
BLAKE2b-256 298164b365031c9b83d7a9247e164fbdc414ff54ce89abb0037791349976c311

See more details on using hashes here.

File details

Details for the file potpourri3d-1.0.0-pp39-pypy39_pp73-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for potpourri3d-1.0.0-pp39-pypy39_pp73-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 6821eda59d4874a3e09073e5036267cc844a07937bce256cf8e17b3ca79259a7
MD5 2cc895aee910b3c78bef2b17a3374e44
BLAKE2b-256 5d0c7577eb2383b50e819f92e3d04abccaddef333d0bd6413011e2f4adc9109e

See more details on using hashes here.

File details

Details for the file potpourri3d-1.0.0-pp38-pypy38_pp73-win_amd64.whl.

File metadata

File hashes

Hashes for potpourri3d-1.0.0-pp38-pypy38_pp73-win_amd64.whl
Algorithm Hash digest
SHA256 e06e26322d4474b3d3f2b50a0e1382c54605b5ef71b22a67c4c090abdeee3503
MD5 88d53d8ae5d8a004c0e511ca292bf359
BLAKE2b-256 d24cd119073eef3adca1eb69655e9648694d9f23e1c03c2eb15004c715298e00

See more details on using hashes here.

File details

Details for the file potpourri3d-1.0.0-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for potpourri3d-1.0.0-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 a59dc66298118426793edc99d720b62227334bdcbbf35daaafff3f49eb1c58e3
MD5 19b98a77ba0c64150975c111d5f02be3
BLAKE2b-256 e3a26c7029732d8f36ad4f06e40983e97a24e7cdd2ab18cb7a0da264445df7dc

See more details on using hashes here.

File details

Details for the file potpourri3d-1.0.0-pp38-pypy38_pp73-manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for potpourri3d-1.0.0-pp38-pypy38_pp73-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 3a626207f8ba9d3e5ff54fde63c369eb506d5ff2ab1660f0ce303b49559992d4
MD5 282055df83aefc7f97ee04d37abc8310
BLAKE2b-256 feb78b2f80218b6a4ec07b589d33a8ce30d4386cb955a640146cdc7a0bb68a62

See more details on using hashes here.

File details

Details for the file potpourri3d-1.0.0-pp38-pypy38_pp73-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for potpourri3d-1.0.0-pp38-pypy38_pp73-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 7a0c44e3b3756c24f945d904f77b49417c99adc705b416e79dd000acd5875192
MD5 e798d8980ac762b331d3c8bfb1cc33bd
BLAKE2b-256 14b7b520686de801e21ce77312ba7c4b796a1e8e2e3daf5919dcf4f0526abaed

See more details on using hashes here.

File details

Details for the file potpourri3d-1.0.0-pp37-pypy37_pp73-win_amd64.whl.

File metadata

File hashes

Hashes for potpourri3d-1.0.0-pp37-pypy37_pp73-win_amd64.whl
Algorithm Hash digest
SHA256 4250c6cbd0c0f3718f0216ab6539e5c86b7c19c37367412c1ec69c72d3252456
MD5 78d236257c13012463b1b6663665f9ad
BLAKE2b-256 8d6fcfcba095f767bd7d1ed1f6560368d94ae76e086f3a7f65dc26df3ee987e9

See more details on using hashes here.

File details

Details for the file potpourri3d-1.0.0-pp37-pypy37_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for potpourri3d-1.0.0-pp37-pypy37_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 f0bfcdc009e8d826e6511e5dc0aa1308c52c3218347d1278d5e59e92999bec3e
MD5 3e91ec85aab18ba92cf16618edaafa31
BLAKE2b-256 fe45419d39a11e362eb172e0e4bdec472ed3c584355584dbc702471309cc9ab9

See more details on using hashes here.

File details

Details for the file potpourri3d-1.0.0-pp37-pypy37_pp73-manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for potpourri3d-1.0.0-pp37-pypy37_pp73-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 08704181dfa59625680a28dea76ed0b054dd0c22ea20c4a5e1fbf97ad2bff00c
MD5 6f9eb46cae70920b7c83830aed16e351
BLAKE2b-256 1f0799686339ee87f8b81260500f86b5e4071a58c212f3e857aaf8bba7bc6f3c

See more details on using hashes here.

File details

Details for the file potpourri3d-1.0.0-pp37-pypy37_pp73-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for potpourri3d-1.0.0-pp37-pypy37_pp73-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 67fda8d1a703d8dc4aea1b8e8f94e763bf654bbd0e71e5742b9c719694e53fee
MD5 959f0e786d12a613df27aef192b63cc3
BLAKE2b-256 9048803bfd0bab57c5eaa0a26b8d0df0538768c5351722c6ad4c462a184bca05

See more details on using hashes here.

File details

Details for the file potpourri3d-1.0.0-cp311-cp311-win_amd64.whl.

File metadata

File hashes

Hashes for potpourri3d-1.0.0-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 1f394f6d891fdf2273f0105d34e6da8cabe431ea873945e4ed1b8396d50142df
MD5 7d4233bf6115acb7c3dded01d2432cc6
BLAKE2b-256 00588762bd3cabe05bb3a6008313e35f54daf78429c74b2ef485bebcbcb83c5f

See more details on using hashes here.

File details

Details for the file potpourri3d-1.0.0-cp311-cp311-win32.whl.

File metadata

  • Download URL: potpourri3d-1.0.0-cp311-cp311-win32.whl
  • Upload date:
  • Size: 430.5 kB
  • Tags: CPython 3.11, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.9.17

File hashes

Hashes for potpourri3d-1.0.0-cp311-cp311-win32.whl
Algorithm Hash digest
SHA256 4ba781d629a6d4b90b443f2bd3d051278ddf772b2afd38f98db826cc06c4f0e9
MD5 c6680b06d16d15696d36562d781da085
BLAKE2b-256 a2ad6b7747af93b6a855b773bb16b3c47988450ef8fa27da02fec98d9ff9fde7

See more details on using hashes here.

File details

Details for the file potpourri3d-1.0.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for potpourri3d-1.0.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 551573310de753e4aeee745df7e62013a2fd3471e0ef24a51362f1cad7d6f16e
MD5 35839d0164013649cd6de2ef28283d0e
BLAKE2b-256 64f0de54a67fa5ce49d340e405603cdd7ee6292730dafc952ffee246fc689d60

See more details on using hashes here.

File details

Details for the file potpourri3d-1.0.0-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for potpourri3d-1.0.0-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 1bc7b40f1b9ecdbed79b80aabb73ea4edfb7f4df2f9c7d99a5fe4631f913f2ee
MD5 7f3f6798dc1b5a98db2fdee339c57252
BLAKE2b-256 0d51256c947791dc3502d5b0b3b742010d6aa10d4157afb32f05fb1d8a5f4abd

See more details on using hashes here.

File details

Details for the file potpourri3d-1.0.0-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for potpourri3d-1.0.0-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 fa7ad0aed90e6fdbb6f06dffb64638c1eb5cf26f4b6ab6b422d0222d6d4cb35e
MD5 639956445f78a451eb9692d1989bdfd0
BLAKE2b-256 e463592915bc2799edecc81cad40e5a90ced020f8a298b614ec4c31e89fb3d70

See more details on using hashes here.

File details

Details for the file potpourri3d-1.0.0-cp311-cp311-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for potpourri3d-1.0.0-cp311-cp311-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 d5b9208942274a9faefdb26fb87bb0d5ac38095e5a64b92915fafa5112f4ca19
MD5 4a8973dcd34433ede531cd6c1947e051
BLAKE2b-256 40dc7d0f8b65c782922164c73403ff4e0282fda43d177c919244f5c633edcd89

See more details on using hashes here.

File details

Details for the file potpourri3d-1.0.0-cp311-cp311-macosx_10_9_universal2.whl.

File metadata

File hashes

Hashes for potpourri3d-1.0.0-cp311-cp311-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 04cf0429e0e2b482aadba522d32f27590e0af28deb856b5364360360350a3f95
MD5 10c66eb84c8b11c39a13398c11bd86ba
BLAKE2b-256 76926733df4c8de95b9015697e7fac61da79d4ff351ea36e007661b5ac38f4e1

See more details on using hashes here.

File details

Details for the file potpourri3d-1.0.0-cp310-cp310-win_amd64.whl.

File metadata

File hashes

Hashes for potpourri3d-1.0.0-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 1234b458021a6f560c05215dae0ef8994a2a73b07468798000f8bf42a7078148
MD5 9b60688a25718ed23377f63a3ba0ed5c
BLAKE2b-256 349d3bf20646f84675b0d77b2c6028af5d8e2803a0ad09e8fa4967a33a447390

See more details on using hashes here.

File details

Details for the file potpourri3d-1.0.0-cp310-cp310-win32.whl.

File metadata

  • Download URL: potpourri3d-1.0.0-cp310-cp310-win32.whl
  • Upload date:
  • Size: 429.4 kB
  • Tags: CPython 3.10, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.9.17

File hashes

Hashes for potpourri3d-1.0.0-cp310-cp310-win32.whl
Algorithm Hash digest
SHA256 0d49cd9b5c15e889c7c07efa1e4c963ac9adb283c8e9c98c5d9a61e75bd55ead
MD5 6ff9183c9b468cfcd6012007949f7f9f
BLAKE2b-256 6d7e2bc494c998e5fa1f130fcd3ab5aa4f78796e2bb0a83590e98b15ea4572ae

See more details on using hashes here.

File details

Details for the file potpourri3d-1.0.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for potpourri3d-1.0.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 2d66fd314841c992b9a6c5600f4674c1cfbc745b8f4842219a1dbbcfae3f7c63
MD5 8b3ddb48e956930f31932cab77269604
BLAKE2b-256 de29f95028098a5efb0bbe14729d2cfeadc4aef64f9fefb5e8472aac66c25fc6

See more details on using hashes here.

File details

Details for the file potpourri3d-1.0.0-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for potpourri3d-1.0.0-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 be396e1dff2d57104a0e10e9ec849448713806da47cb98e2e5b1153bf6d22ad0
MD5 6d3be82280df5f560a546b5f8d9ea815
BLAKE2b-256 0be23c72605b0eb77ebad13a64e6add5559615b997673f98619d8498c80f99ff

See more details on using hashes here.

File details

Details for the file potpourri3d-1.0.0-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for potpourri3d-1.0.0-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 7cdfe1d6974586478ef24bb9d59784e69f9065bd9802201b18f53e978f4cdf7d
MD5 d2ce05819674d3468e342542234c5049
BLAKE2b-256 65324f051bb97129aeb19bcfc6da77a5ed629bf7329079877c7b9dccdab87105

See more details on using hashes here.

File details

Details for the file potpourri3d-1.0.0-cp310-cp310-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for potpourri3d-1.0.0-cp310-cp310-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 b5bbfd298bd9b5c171e10e338e27a1571b9b92058a267661fa8210b5334cf0d0
MD5 762aff19396bebbf756f804fe519f2b8
BLAKE2b-256 edaf24d4b135469d73d2d8a0b1fff8ec848f9e964b97e24c704102a1d85fdbb7

See more details on using hashes here.

File details

Details for the file potpourri3d-1.0.0-cp310-cp310-macosx_10_9_universal2.whl.

File metadata

File hashes

Hashes for potpourri3d-1.0.0-cp310-cp310-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 5778b948bb035b194f05900fd0df1103a5f510329a9f9dd6e5b00b0ac5727e34
MD5 9f8278c0ff2cd87c13aafd4b6998e7c6
BLAKE2b-256 c36d4f7142716a2307ff8b18cd2fa1703ebe377cb92d68ba695990f00ba1cf8b

See more details on using hashes here.

File details

Details for the file potpourri3d-1.0.0-cp39-cp39-win_amd64.whl.

File metadata

  • Download URL: potpourri3d-1.0.0-cp39-cp39-win_amd64.whl
  • Upload date:
  • Size: 487.5 kB
  • Tags: CPython 3.9, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.9.17

File hashes

Hashes for potpourri3d-1.0.0-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 879245b51bbf811606cbe0175633322257caf03ae50a54364fe6b898687cb57c
MD5 994409a2382ef7cf17902f7a79d1a73e
BLAKE2b-256 2645e039ab10b6b506180318e4b9f099f9fb17b01e243e98a1b88161efbf4ca2

See more details on using hashes here.

File details

Details for the file potpourri3d-1.0.0-cp39-cp39-win32.whl.

File metadata

  • Download URL: potpourri3d-1.0.0-cp39-cp39-win32.whl
  • Upload date:
  • Size: 429.5 kB
  • Tags: CPython 3.9, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.9.17

File hashes

Hashes for potpourri3d-1.0.0-cp39-cp39-win32.whl
Algorithm Hash digest
SHA256 09c8882c40a9fcace9bd0dca44d5d9caa093cc9f21f8c4bf04cce7ad258bca3b
MD5 a62cabe34187db4a0825dc852565327f
BLAKE2b-256 f83bb56a85fa790332ed1289afe22f67591af6e0605b2e45b6c931690dff5020

See more details on using hashes here.

File details

Details for the file potpourri3d-1.0.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for potpourri3d-1.0.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 84feb6d210ddf551da18d8f96c4781173748549191e96eaaa670fddf925bece0
MD5 91c62106aee596eb8e67863e8fa8c225
BLAKE2b-256 5c4ef29afae658437d7eda08c39fda3c4ba0b882e394822c5d857cb1d2a2137d

See more details on using hashes here.

File details

Details for the file potpourri3d-1.0.0-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for potpourri3d-1.0.0-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 fd3369a2baca65f175261265b48549d18a9cf6afcaef1634cfb247838de28a7f
MD5 5905551596249eda417e0b9b8771f966
BLAKE2b-256 ad964192a1a614fc519f4446574a58fedcb7bddfbb9ef3544208ac90a4ad4cda

See more details on using hashes here.

File details

Details for the file potpourri3d-1.0.0-cp39-cp39-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for potpourri3d-1.0.0-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 d18cbb4b487a7afeb29782859a77528c348313e0a8826699fed69f94e0e478eb
MD5 68b46bfb6bb6897559e1f7b441024955
BLAKE2b-256 7b37f858aa1a2101cd1e9e09f7cc856706eb29f3cb964a0fc236116767a093ec

See more details on using hashes here.

File details

Details for the file potpourri3d-1.0.0-cp39-cp39-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for potpourri3d-1.0.0-cp39-cp39-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 8e3f7d13e5f98139e30aee68fd7e626870830bdf3eb5183ee40b465cd23e92f9
MD5 6701379a87c96c59b8c8d6720d9aea0f
BLAKE2b-256 a84fe50eda3192f33c05cc584ff09f5d62990a891eb73a8d6a224a145fb399fe

See more details on using hashes here.

File details

Details for the file potpourri3d-1.0.0-cp39-cp39-macosx_10_9_universal2.whl.

File metadata

File hashes

Hashes for potpourri3d-1.0.0-cp39-cp39-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 d24d48f439e311dd14897b5eda1af6f23a13f2658f6e31e0c60deabc9f924b39
MD5 1eeb6263d15ed4b0bb58e539452614a9
BLAKE2b-256 054d8b425a44513807b5a6db8606308847979aec2157a43116ce917edf1f9b9c

See more details on using hashes here.

File details

Details for the file potpourri3d-1.0.0-cp38-cp38-win_amd64.whl.

File metadata

  • Download URL: potpourri3d-1.0.0-cp38-cp38-win_amd64.whl
  • Upload date:
  • Size: 487.6 kB
  • Tags: CPython 3.8, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.9.17

File hashes

Hashes for potpourri3d-1.0.0-cp38-cp38-win_amd64.whl
Algorithm Hash digest
SHA256 eb744a6d116f50de3254a8c35c959d2ac7a9cedc84742ef2752c88fa71c4d4c4
MD5 79d275490b74bef5f203060bf4f2d4f3
BLAKE2b-256 6e0e36d58c8fa8dc0d001fc7132b9a503acafffc9b378fda8f16fb20ffea4feb

See more details on using hashes here.

File details

Details for the file potpourri3d-1.0.0-cp38-cp38-win32.whl.

File metadata

  • Download URL: potpourri3d-1.0.0-cp38-cp38-win32.whl
  • Upload date:
  • Size: 429.2 kB
  • Tags: CPython 3.8, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.9.17

File hashes

Hashes for potpourri3d-1.0.0-cp38-cp38-win32.whl
Algorithm Hash digest
SHA256 3b46cea21516a561cd1c107c41e71f8b2ef309618462efa849ad5f98e5a48257
MD5 1fbbf7ec79be90a3e64b8eab20dc4d4e
BLAKE2b-256 c52e99e2eab488d74838dc0de7ff75d1ec42c1cc42237f61f7e3e12cb6817d2b

See more details on using hashes here.

File details

Details for the file potpourri3d-1.0.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for potpourri3d-1.0.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 a88248b62417d27081e89ce552f0b1b1e7e6c5fc53ce4bb3e7d888bc01455edc
MD5 a5f473235285020d889bedec36f3458a
BLAKE2b-256 4277b14a53ffc551d86c8bceb2ef4a3a57b3706138e378a1a5106f7846f1af07

See more details on using hashes here.

File details

Details for the file potpourri3d-1.0.0-cp38-cp38-manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for potpourri3d-1.0.0-cp38-cp38-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 e299a9b5960151da06cbba334da0370fa899d6d6b1d128c6a12a68f06e9672a8
MD5 8636d80054b701135cb47ef62d6ec9dc
BLAKE2b-256 623578c9a16304387f45c88168beebc2a21b08352f607e71bf430da1a9704d6e

See more details on using hashes here.

File details

Details for the file potpourri3d-1.0.0-cp38-cp38-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for potpourri3d-1.0.0-cp38-cp38-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 fe172b5597cda1a57b5a09e7b5f970e8b64c30ef0c5e4bcf778fe60659450b91
MD5 5d93d732b6954434e73e988083aad3fb
BLAKE2b-256 4d67b1b399c8ef2cbc8cab8b5ee95875e013b0d6581246fb0f420a4ff7a5290a

See more details on using hashes here.

File details

Details for the file potpourri3d-1.0.0-cp38-cp38-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for potpourri3d-1.0.0-cp38-cp38-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 978d30723ccd086a7fa2660e385183decf1de4277af4f910092b45587090527d
MD5 34d9718dfb102f6b97d45d1bd4ee62c6
BLAKE2b-256 85fc96ffbaa42ca7007a03dd10dd118ef9794a08599a676dc5667907ac86c820

See more details on using hashes here.

File details

Details for the file potpourri3d-1.0.0-cp38-cp38-macosx_10_9_universal2.whl.

File metadata

File hashes

Hashes for potpourri3d-1.0.0-cp38-cp38-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 0f402752ab9e527d70a6b8f09ee52347cc0d4f5c4e08a3c649ee69a7074e97cf
MD5 054394ac759ceb6556ac279080ab0b65
BLAKE2b-256 872deee5e7c388e459b67212f92d15e74eb022776633e8dca58e2778d898bde6

See more details on using hashes here.

File details

Details for the file potpourri3d-1.0.0-cp37-cp37m-win_amd64.whl.

File metadata

  • Download URL: potpourri3d-1.0.0-cp37-cp37m-win_amd64.whl
  • Upload date:
  • Size: 487.6 kB
  • Tags: CPython 3.7m, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.9.17

File hashes

Hashes for potpourri3d-1.0.0-cp37-cp37m-win_amd64.whl
Algorithm Hash digest
SHA256 99ca128fcc5a86b400a042fef4e67d4aeb07390f082ef2d28365a80e14829ef5
MD5 9ff90b442e064dad1de5a49775bdf454
BLAKE2b-256 dec1074f17da0b4ccb421f4ba08cdcaa0d311c53cabeec132b2d4182426a7530

See more details on using hashes here.

File details

Details for the file potpourri3d-1.0.0-cp37-cp37m-win32.whl.

File metadata

  • Download URL: potpourri3d-1.0.0-cp37-cp37m-win32.whl
  • Upload date:
  • Size: 430.5 kB
  • Tags: CPython 3.7m, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.9.17

File hashes

Hashes for potpourri3d-1.0.0-cp37-cp37m-win32.whl
Algorithm Hash digest
SHA256 53430dd3bc27871ae4e3ad8bd9a879dc5be720d2112f0b5d3a42463cd8c03ce7
MD5 ef94fd3214eae18931dfff44884b9a18
BLAKE2b-256 1daeb965f7a1d52e88c18f6b6b76f4f997556f641dac5dede370c97f57334aae

See more details on using hashes here.

File details

Details for the file potpourri3d-1.0.0-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for potpourri3d-1.0.0-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 a51d70a4fbb2b3f6022a8b00ba2900127155a7e8b8b147ff4b096ee25136fb3f
MD5 bbb55212f6432dc6ef77b012498236f5
BLAKE2b-256 442c7b3618a1ea29318ed91b44981770856abc78b8d2391ea4d0db05624849c8

See more details on using hashes here.

File details

Details for the file potpourri3d-1.0.0-cp37-cp37m-manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for potpourri3d-1.0.0-cp37-cp37m-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 5e90fb83129bfa93a520b068f60df8483be6f8fcb818f56cb55540c9ca86b4f7
MD5 7349d1f7d65a364ed45abf82769a4291
BLAKE2b-256 5d6d361c77ffb5cc12bb8c4cc2038ba77c75f1e6d9895d9a18e26d7693b4264a

See more details on using hashes here.

File details

Details for the file potpourri3d-1.0.0-cp37-cp37m-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for potpourri3d-1.0.0-cp37-cp37m-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 b9aa30ea4da407234e864add3fd8eceacc6dd6d98f17734df2ac88dbc639660b
MD5 22faf4ddd27b2b54e02141df8a78af30
BLAKE2b-256 170f1055dff1f2d0ec6efbb2e79c2e1cb87939ef1ec10c1c0af05b64c387f48b

See more details on using hashes here.

File details

Details for the file potpourri3d-1.0.0-cp36-cp36m-win_amd64.whl.

File metadata

  • Download URL: potpourri3d-1.0.0-cp36-cp36m-win_amd64.whl
  • Upload date:
  • Size: 487.6 kB
  • Tags: CPython 3.6m, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.9.17

File hashes

Hashes for potpourri3d-1.0.0-cp36-cp36m-win_amd64.whl
Algorithm Hash digest
SHA256 9449cc175591277b6413a6c8457ccf50dd66eddc27f043d28b2853b77ad10e46
MD5 a50154bf93f6ab0662cf90088faa3d73
BLAKE2b-256 c5181428e751cbf3a7da52d35f6e1032fc5c735a3b290ad154376a7c948ac7bb

See more details on using hashes here.

File details

Details for the file potpourri3d-1.0.0-cp36-cp36m-win32.whl.

File metadata

  • Download URL: potpourri3d-1.0.0-cp36-cp36m-win32.whl
  • Upload date:
  • Size: 430.5 kB
  • Tags: CPython 3.6m, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.9.17

File hashes

Hashes for potpourri3d-1.0.0-cp36-cp36m-win32.whl
Algorithm Hash digest
SHA256 bbef4773cfda3d382797beb6b744e5de5bf4fab998f5d07f1d02348736d04cb5
MD5 9fd5a37fb0c1a391888c924620366ddf
BLAKE2b-256 797baf3e8c28d56d7196420e540dec6dd20be628c45c83a7611234d47d8e41e4

See more details on using hashes here.

File details

Details for the file potpourri3d-1.0.0-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for potpourri3d-1.0.0-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 b1c5b9d050a3328bf111bbdf74f3c8160e9c8a80312bb8338a5c92c9b965d391
MD5 28cf2bbb5a08a779a2789bc64610f0a7
BLAKE2b-256 6c60b745981d0a99fb7f74e6342448c969203c7344355f5c3cbcae4b5c0749ff

See more details on using hashes here.

File details

Details for the file potpourri3d-1.0.0-cp36-cp36m-manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for potpourri3d-1.0.0-cp36-cp36m-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 187f3e38986a7034f8cea507d74578ccaac7c4144e9ed3836468a0ee032a6770
MD5 2beaad0b9746c146626cd0cab99d4f6a
BLAKE2b-256 c911c69ba3e35d8faa0e3663c78dd16890d4b71e6ffc0cd63cf9fe4dde76130e

See more details on using hashes here.

File details

Details for the file potpourri3d-1.0.0-cp36-cp36m-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for potpourri3d-1.0.0-cp36-cp36m-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 a9927b0a9fba0ecf3cf52e4925f7ea483ae316bd1a1bc712743367a6dc7658b8
MD5 da4283659c07f9a8030b507a77582ad8
BLAKE2b-256 5ef456139fcd29547a554df345932e39e76d618f4a8973138e142a22ee80b9b2

See more details on using hashes here.

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