Skip to main content

Implementation of Dijkstra's Shortest Path algorithm on 3D images.

Project description

Build Status PyPI version

dijkstra3d

Dijkstra's Shortest Path variants for 6, 18, and 26-connected 3D Image Volumes or 4 and 8-connected 2D images.

import dijkstra3d
import numpy as np

field = np.ones((512, 512, 512), dtype=np.int32)
source = (0,0,0)
target = (511, 511, 511)

# path is an [N,3] numpy array i.e. a list of x,y,z coordinates
# terminates early, default is 26 connected
path = dijkstra3d.dijkstra(field, source, target, connectivity=26) 
path = dijkstra3d.dijkstra(field, source, target, bidirectional=True) # 2x memory usage, faster

# Use distance from target as a heuristic (A* search)
# Does nothing if bidirectional=True (it's just not implemented)
path = dijkstra3d.dijkstra(field, source, target, compass=True) 

# parental_field is a performance optimization on dijkstra for when you
# want to return many target paths from a single source instead of
# a single path to a single target. `parents` is a field of parent voxels
# which can then be rapidly traversed to yield a path from the source. 
# The initial run is slower as we cannot stop early when a target is found
# but computing many paths is much faster. The unsigned parental field is 
# increased by 1 so we can represent background as zero. So a value means
# voxel+1. Use path_from_parents to compute a path from the source to a target.
parents = dijkstra3d.parental_field(field, source=(0,0,0), connectivity=6) # default is 26 connected
path = dijkstra3d.path_from_parents(parents, target=(511, 511, 511))
print(path.shape)

# Given a boolean label "field" and a source vertex, compute 
# the anisotropic euclidean chamfer distance from the source to all labeled vertices.
# Source can be a single point or a list of points. Accepts bool, (u)int8 dtypes.
dist_field = dijkstra3d.euclidean_distance_field(field, source=(0,0,0), anisotropy=(4,4,40))
dist_field = dijkstra3d.euclidean_distance_field(
  field, source=[ (0,0,0), (10, 40, 232) ], anisotropy=(4,4,40)
)

# To make the EDF go faster add the free_space_radius parameter. It's only
# safe to use if you know that some distance around the source point
# is unobstructed space. For that region, we use an equation instead
# of dijkstra's algorithm. Hybrid algorithm! free_space_radius is a physical
# distance, meaning you must account for anisotropy in setting it.
dist_field = dijkstra3d.euclidean_distance_field(field, source=(0,0,0), anisotropy=(4,4,40), free_space_radius=300) 

# You can also get one of the possibly multiple maxima locations instantly.
dist_field, max_loc = dijkstra3d.euclidean_distance_field(field, source=(0,0,0), return_max_location=True) 

# Given a numerical field, for each directed edge from adjacent voxels A and B, 
# use B as the edge weight. In this fashion, compute the distance from a source 
# point for all finite voxels. 
dist_field = dijkstra3d.distance_field(field, source=(0,0,0)) # single source
dist_field = dijkstra3d.distance_field(field, source=[ (0,0,0), (52, 55, 23) ]) # multi-source
dist_field, max_loc = dijkstra3d.distance_field(field, source=(0,0,0), return_max_location=True) # get the location of one of the maxima

# You can also provide a voxel connectivity graph to provide customized
# constraints on the permissible directions of travel. The graph is a
# uint32 image of equal size that contains a bitfield in each voxel 
# where each of the first 26-bits describes whether a direction is 
# passable. The description of this field can be seen here: 
# https://github.com/seung-lab/connected-components-3d/blob/3.2.0/cc3d_graphs.hpp#L73-L92
#
# The motivation for this feature is handling self-touching labels, but there
# are many possible ways of using this.
graph = np.zeros(field.shape, dtype=np.uint32)
graph += 0xffffffff # all directions are permissible
graph[5,5,5] = graph[5,5,5] & 0xfffffffe # sets +x direction as impassable at this voxel
path = dijkstra.dijkstra(..., voxel_graph=graph)

Perform dijkstra's shortest path algorithm on a 3D image grid. Vertices are voxels and edges are the nearest neighbors. For 6 connected images, these are the faces of the voxel (L1: manhattan distance), 18 is faces and edges, 26 is faces, edges, and corners (L: chebyshev distance). For given input voxels A and B, the edge weight from A to B is B and from B to A is A. All weights must be finite and non-negative (incl. negative zero).

What Problem does this Package Solve?

This package was developed in the course of exploring TEASAR skeletonization of 3D image volumes (now available in Kimimaro). Other commonly available packages implementing Dijkstra used matricies or object graphs as their underlying implementation. In either case, these generic graph packages necessitate explicitly creating the graph's edges and vertices, which turned out to be a significant computational cost compared with the search time. Additionally, some implementations required memory quadratic in the number of vertices (e.g. an NxN matrix for N nodes) which becomes prohibitive for large arrays. In some cases, a compressed sparse matrix representation was used to remain within memory limits.

Neither graph construction nor quadratic memory pressure are necessary for an image analysis application. The edges between voxels (3D pixels) are regular and implicit in the rectangular structure of the image. Additionally, the cost of each edge can be stored a single time instead of 26 times in contiguous uncompressed memory regions for faster performance.

Previous rationals aside, the most recent version of dijkstra3d also includes an optional method for specifying the voxel connectivity graph for each voxel via a bitfield. We found that in order to solve a problem of label self-contacts, we needed to specify impermissible directions of travel for some voxels. This is still a rather compact and fast way to process the graph, so it doesn't really invalidate our previous contention.

C++ Use

#include <vector>
#include "dijkstra3d.hpp"

// 3d array represented as 1d array
float* labels = new float[512*512*512](); 

// x + sx * y + sx * sy * z
int source = 0 + 512 * 5 + 512 * 512 * 3; // coordinate <0, 5, 3>
int target = 128 + 512 * 128 + 512 * 512 * 128; // coordinate <128, 128, 128>

vector<unsigned int> path = dijkstra::dijkstra3d<float>(
  labels, /*sx=*/512, /*sy=*/512, /*sz=*/512,
  source, target, /*connectivity=*/26 // 26 is default
);

vector<unsigned int> path = dijkstra::bidirectional_dijkstra3d<float>(
  labels, /*sx=*/512, /*sy=*/512, /*sz=*/512,
  source, target, /*connectivity=*/26 // 26 is default
);

// A* search using a distance to target heuristic
vector<unsigned int> path = dijkstra::compass_guided_dijkstra3d<float>(
  labels, /*sx=*/512, /*sy=*/512, /*sz=*/512,
  source, target, /*connectivity=*/26 // 26 is default
);

uint32_t* parents = dijkstra::parental_field3d<float>(
  labels, /*sx=*/512, /*sy=*/512, /*sz=*/512, 
  source, /*connectivity=*/26 // 26 is default
);
vector<unsigned int> path = dijkstra::query_shortest_path(parents, target);


// Really a chamfer distance.
// source can be a size_t (single source) or a std::vector<size_t> (multi-source)
float* field = dijkstra::euclidean_distance_field3d<float>(
  labels, 
  /*sx=*/512, /*sy=*/512, /*sz=*/512, 
  /*wx=*/4, /*wy=*/4, /*wz=*/40, 
  source, /*free_space_radius=*/0 // set to > 0 to switch on
);

// source can be a size_t (single source) or a std::vector<size_t> (multi-source)
float* field = dijkstra::distance_field3d<float>(labels, /*sx=*/512, /*sy=*/512, /*sz=*/512, source);

Python pip Binary Installation

pip install dijkstra3d

Python pip Source Installation

Requires a C++ compiler.

pip install numpy
pip install dijkstra3d

Python Direct Installation

Requires a C++ compiler.

git clone https://github.com/seung-lab/dijkstra3d.git
cd dijkstra3d
virtualenv -p python3 venv
source venv/bin/activate
pip install -r requirements.txt
python setup.py develop

Performance

I ran three algorithms on a field of ones from the bottom left corner to the top right corner of a 512x512x512 int8 image using a 3.7 GHz Intel i7-4920K CPU. Unidirectional search takes about 42 seconds (3.2 MVx/sec) with a maximum memory usage of about 1300 MB. In the unidirectional case, this test forces the algorithm to process nearly all of the volume (dijkstra aborts early when the target is found). In the bidirectional case, the volume is processed in about 11.8 seconds (11.3 MVx/sec) with a peak memory usage of about 2300 MB. The A* version processes the volume in 0.5 seconds (268.4 MVx/sec) with an identical memory profile to unidirectional search. A* works very well in this simple case, but may not be superior in all configurations.

Theoretical unidirectional memory allocation breakdown: 128 MB source image, 512 MB distance field, 512 MB parents field (1152 MB). Theoretical bidirectional memory allocation breakdown: 128 MB source image, 2x 512 distance field, 2x 512 MB parental field (2176 MB).

Fig. 1: A benchmark of dijkstra.dijkstra run on a 512<sup>3</sup> voxel field of ones from bottom left source to top right target. (black) unidirectional search (blue) bidirectional search (red) A* search aka compass=True.
Fig. 1: A benchmark of dijkstra.dijkstra run on a 5123 voxel field of ones from bottom left source to top right target. (black) unidirectional search (blue) bidirectional search (red) A* search aka compass=True.

import numpy as np
import time
import dijkstra3d

field = np.ones((512,512,512), order='F', dtype=np.int8)
source = (0,0,0)
target = (511,511,511)

path = dijkstra3d.dijkstra(field, source, target) # black line
path = dijkstra3d.dijkstra(field, source, target, bidirectional=True) # blue line
path = dijkstra3d.dijkstra(field, source, target, compass=True) # red line

Fig. 2: A benchmark of dijkstra.dijkstra run on a 50<sup>3</sup> voxel field of random integers of increasing variation from random source to random target. (blue/squares) unidirectional search (yellow/triangles) bidirectional search (red/diamonds) A* search aka .compass=True.
Fig. 2: A benchmark of dijkstra.dijkstra run on a 503 voxel field of random integers of increasing variation from random source to random target. (blue/squares) unidirectional search (yellow/triangles) bidirectional search (red/diamonds) A* search aka compass=True.

import numpy as np
import time
import dijkstra3d

N = 250
sx, sy, sz = 50, 50, 50

def trial(bi, compass):
  for n in range(0, 100, 1):
    accum = 0
    for i in range(N):
      if n > 0:
        values = np.random.randint(1,n+1, size=(sx,sy,sz))
      else:
        values = np.ones((sx,sy,sz))
      values = np.asfortranarray(values)
      start = np.random.randint(0,min(sx,sy,sz), size=(3,))
      target = np.random.randint(0,min(sx,sy,sz), size=(3,))  

      s = time.time()
      path_orig = dijkstra3d.dijkstra(values, start, target, bidirectional=bi, compass=compass)
      accum += (time.time() - s)

    MVx_per_sec = N * sx * sy * sz / accum / 1000000
    print(n, ',', '%.3f' % MVx_per_sec)

print("Unidirectional")
trial(False, False)
print("Bidirectional")
trial(True, False)
print("Compass")
trial(False, True)

Voxel Connectivity Graph

You may optionally provide a unsigned 32-bit integer image that specifies the allowed directions of travel per voxel as a directed graph. Each voxel in the graph contains a bitfield of which only the lower 26 bits are used to specify allowed directions. The top 6 bits have no assigned meaning. It is possible to use smaller width bitfields for 2D images (uint8) or for undirected graphs (uint16), but they are not currently supported. Please open an Issue or Pull Request if you need this functionality.

The specification below shows the meaning assigned to each bit. Bit 32 is the MSB, bit 1 is the LSB. Ones are allowed directions and zeros are disallowed directions.

    32     31     30     29     28     27     26     25     24     23     
------ ------ ------ ------ ------ ------ ------ ------ ------ ------
unused unused unused unused unused unused -x-y-z  x-y-z -x+y-z +x+y-z

    22     21     20     19     18     17     16     15     14     13
------ ------ ------ ------ ------ ------ ------ ------ ------ ------
-x-y+z +x-y+z -x+y+z    xyz   -y-z    y-z   -x-z    x-z    -yz     yz

    12     11     10      9      8      7      6      5      4      3
------ ------ ------ ------ ------ ------ ------ ------ ------ ------
   -xz     xz   -x-y    x-y    -xy     xy     -z     +z     -y     +y  
     2      1
------ ------
    -x     +x

There is an assistive tool available for producing these graphs from adjacent labels in the cc3d library.

References

  1. E. W. Dijkstra. "A Note on Two Problems in Connexion with Graphs" Numerische Mathematik 1. pp. 269-271. (1959)
  2. E. W. Dijkstra. "Go To Statement Considered Harmful". Communications of the ACM. Vol. 11, No. 3, pp. 147-148. (1968)
  3. Pohl, Ira. "Bi-directional Search", in Meltzer, Bernard; Michie, Donald (eds.), Machine Intelligence, 6, Edinburgh University Press, pp. 127-140. (1971)

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

dijkstra3d-1.12.1.tar.gz (272.5 kB view details)

Uploaded Source

Built Distributions

dijkstra3d-1.12.1-cp311-cp311-win_amd64.whl (207.6 kB view details)

Uploaded CPython 3.11 Windows x86-64

dijkstra3d-1.12.1-cp311-cp311-win32.whl (204.9 kB view details)

Uploaded CPython 3.11 Windows x86

dijkstra3d-1.12.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (2.4 MB view details)

Uploaded CPython 3.11 manylinux: glibc 2.17+ x86-64

dijkstra3d-1.12.1-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl (2.2 MB view details)

Uploaded CPython 3.11 manylinux: glibc 2.17+ i686

dijkstra3d-1.12.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (2.3 MB view details)

Uploaded CPython 3.11 manylinux: glibc 2.17+ ARM64

dijkstra3d-1.12.1-cp311-cp311-macosx_10_9_x86_64.whl (312.4 kB view details)

Uploaded CPython 3.11 macOS 10.9+ x86-64

dijkstra3d-1.12.1-cp311-cp311-macosx_10_9_universal2.whl (566.4 kB view details)

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

dijkstra3d-1.12.1-cp310-cp310-win_amd64.whl (208.5 kB view details)

Uploaded CPython 3.10 Windows x86-64

dijkstra3d-1.12.1-cp310-cp310-win32.whl (205.8 kB view details)

Uploaded CPython 3.10 Windows x86

dijkstra3d-1.12.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (2.3 MB view details)

Uploaded CPython 3.10 manylinux: glibc 2.17+ x86-64

dijkstra3d-1.12.1-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl (2.2 MB view details)

Uploaded CPython 3.10 manylinux: glibc 2.17+ i686

dijkstra3d-1.12.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (2.3 MB view details)

Uploaded CPython 3.10 manylinux: glibc 2.17+ ARM64

dijkstra3d-1.12.1-cp310-cp310-macosx_10_9_x86_64.whl (313.3 kB view details)

Uploaded CPython 3.10 macOS 10.9+ x86-64

dijkstra3d-1.12.1-cp310-cp310-macosx_10_9_universal2.whl (567.9 kB view details)

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

dijkstra3d-1.12.1-cp39-cp39-win_amd64.whl (212.4 kB view details)

Uploaded CPython 3.9 Windows x86-64

dijkstra3d-1.12.1-cp39-cp39-win32.whl (209.1 kB view details)

Uploaded CPython 3.9 Windows x86

dijkstra3d-1.12.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (2.4 MB view details)

Uploaded CPython 3.9 manylinux: glibc 2.17+ x86-64

dijkstra3d-1.12.1-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl (2.2 MB view details)

Uploaded CPython 3.9 manylinux: glibc 2.17+ i686

dijkstra3d-1.12.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (2.3 MB view details)

Uploaded CPython 3.9 manylinux: glibc 2.17+ ARM64

dijkstra3d-1.12.1-cp39-cp39-macosx_10_9_x86_64.whl (317.6 kB view details)

Uploaded CPython 3.9 macOS 10.9+ x86-64

dijkstra3d-1.12.1-cp39-cp39-macosx_10_9_universal2.whl (576.9 kB view details)

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

dijkstra3d-1.12.1-cp38-cp38-win_amd64.whl (213.1 kB view details)

Uploaded CPython 3.8 Windows x86-64

dijkstra3d-1.12.1-cp38-cp38-win32.whl (209.6 kB view details)

Uploaded CPython 3.8 Windows x86

dijkstra3d-1.12.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (2.4 MB view details)

Uploaded CPython 3.8 manylinux: glibc 2.17+ x86-64

dijkstra3d-1.12.1-cp38-cp38-manylinux_2_17_i686.manylinux2014_i686.whl (2.3 MB view details)

Uploaded CPython 3.8 manylinux: glibc 2.17+ i686

dijkstra3d-1.12.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (2.4 MB view details)

Uploaded CPython 3.8 manylinux: glibc 2.17+ ARM64

dijkstra3d-1.12.1-cp38-cp38-macosx_11_0_universal2.whl (566.0 kB view details)

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

dijkstra3d-1.12.1-cp38-cp38-macosx_10_9_x86_64.whl (312.3 kB view details)

Uploaded CPython 3.8 macOS 10.9+ x86-64

dijkstra3d-1.12.1-cp37-cp37m-win_amd64.whl (204.0 kB view details)

Uploaded CPython 3.7m Windows x86-64

dijkstra3d-1.12.1-cp37-cp37m-win32.whl (203.4 kB view details)

Uploaded CPython 3.7m Windows x86

dijkstra3d-1.12.1-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (2.3 MB view details)

Uploaded CPython 3.7m manylinux: glibc 2.17+ x86-64

dijkstra3d-1.12.1-cp37-cp37m-manylinux_2_17_i686.manylinux2014_i686.whl (2.2 MB view details)

Uploaded CPython 3.7m manylinux: glibc 2.17+ i686

dijkstra3d-1.12.1-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (2.3 MB view details)

Uploaded CPython 3.7m manylinux: glibc 2.17+ ARM64

dijkstra3d-1.12.1-cp37-cp37m-macosx_10_9_x86_64.whl (314.0 kB view details)

Uploaded CPython 3.7m macOS 10.9+ x86-64

File details

Details for the file dijkstra3d-1.12.1.tar.gz.

File metadata

  • Download URL: dijkstra3d-1.12.1.tar.gz
  • Upload date:
  • Size: 272.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.3.0 pkginfo/1.7.0 requests/2.21.0 setuptools/56.0.0 requests-toolbelt/0.9.1 tqdm/4.57.0 CPython/3.8.10

File hashes

Hashes for dijkstra3d-1.12.1.tar.gz
Algorithm Hash digest
SHA256 37997347310a4ba418f3b7a5d68141c6dacdecc47c57b553f42bbdf6b083383e
MD5 da510d47c24251e79763206ff57bd058
BLAKE2b-256 065f847ea90896b758bdbc0be152465493e6a2129a960a1baf2ae51e49cadb38

See more details on using hashes here.

Provenance

File details

Details for the file dijkstra3d-1.12.1-cp311-cp311-win_amd64.whl.

File metadata

  • Download URL: dijkstra3d-1.12.1-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 207.6 kB
  • Tags: CPython 3.11, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.3.0 pkginfo/1.7.0 requests/2.21.0 setuptools/56.0.0 requests-toolbelt/0.9.1 tqdm/4.57.0 CPython/3.8.10

File hashes

Hashes for dijkstra3d-1.12.1-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 74273978a4195b2332aa9997459aefb8984228f1d9f15e489bd9ddfac51ea0c9
MD5 5875b9cde3b1c721721899165cc586c0
BLAKE2b-256 1d051dd83b943dd45d4d4a3be522f07c113436412b338e20414e99b18793a6a9

See more details on using hashes here.

Provenance

File details

Details for the file dijkstra3d-1.12.1-cp311-cp311-win32.whl.

File metadata

  • Download URL: dijkstra3d-1.12.1-cp311-cp311-win32.whl
  • Upload date:
  • Size: 204.9 kB
  • Tags: CPython 3.11, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.3.0 pkginfo/1.7.0 requests/2.21.0 setuptools/56.0.0 requests-toolbelt/0.9.1 tqdm/4.57.0 CPython/3.8.10

File hashes

Hashes for dijkstra3d-1.12.1-cp311-cp311-win32.whl
Algorithm Hash digest
SHA256 126361439369428254bb4106836d9e1eae85ee300520a2dbdccf1b9b683ed56e
MD5 2da07b6bf8c7f258120f3380e64e2c07
BLAKE2b-256 42b46daa99b8d247e17ee68b7dc001daccd359710402718f4c74240b1cbf6c50

See more details on using hashes here.

Provenance

File details

Details for the file dijkstra3d-1.12.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for dijkstra3d-1.12.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 e6343b40ab0a0dd3e05cb0707b842ad668ea9335549bb3b16bf007b9d1195933
MD5 49a9666c5d27363f2a328dcf03fee3da
BLAKE2b-256 3789278a80416050129cb92ee0958dace7bc3384722025661a2d36ed25086c02

See more details on using hashes here.

Provenance

File details

Details for the file dijkstra3d-1.12.1-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for dijkstra3d-1.12.1-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 1aacc742fe83a8fd91dc04b1c7199eaae966ce961f52b6b55bd02ee2e5cd1b61
MD5 6a4588e974cfe9e1c7afc516e9896a67
BLAKE2b-256 6a6a343c8fc50112412d720c176243bd772352de7a37681c8c71c76a89baf84c

See more details on using hashes here.

Provenance

File details

Details for the file dijkstra3d-1.12.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for dijkstra3d-1.12.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 c0de391853cd4d9906cb45a3e934507de3b1fd1d85794bbde240c38c9e623186
MD5 5615b473ba8358be42781399c9728958
BLAKE2b-256 134649b6b97a7a6edd934eeb33084240c355a2c6bc4b825d0eb0e1fc5650b4f1

See more details on using hashes here.

Provenance

File details

Details for the file dijkstra3d-1.12.1-cp311-cp311-macosx_10_9_x86_64.whl.

File metadata

  • Download URL: dijkstra3d-1.12.1-cp311-cp311-macosx_10_9_x86_64.whl
  • Upload date:
  • Size: 312.4 kB
  • Tags: CPython 3.11, macOS 10.9+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.3.0 pkginfo/1.7.0 requests/2.21.0 setuptools/56.0.0 requests-toolbelt/0.9.1 tqdm/4.57.0 CPython/3.8.10

File hashes

Hashes for dijkstra3d-1.12.1-cp311-cp311-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 13530f6f7407c8436c151ea3ddfaa65ceb333b45ebfeba58be52c2fb889f26c1
MD5 60b476743f112ec5eee669016c62fde8
BLAKE2b-256 6e04beca64af327adb31440feaebdd934eca335638c59a0049fb048317790f7c

See more details on using hashes here.

Provenance

File details

Details for the file dijkstra3d-1.12.1-cp311-cp311-macosx_10_9_universal2.whl.

File metadata

  • Download URL: dijkstra3d-1.12.1-cp311-cp311-macosx_10_9_universal2.whl
  • Upload date:
  • Size: 566.4 kB
  • Tags: CPython 3.11, macOS 10.9+ universal2 (ARM64, x86-64)
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.3.0 pkginfo/1.7.0 requests/2.21.0 setuptools/56.0.0 requests-toolbelt/0.9.1 tqdm/4.57.0 CPython/3.8.10

File hashes

Hashes for dijkstra3d-1.12.1-cp311-cp311-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 b2ec90e02a6f095cd65ab123b235d6453a70048489387e381addeac0a65d9e2e
MD5 95d7816a3a7597f98862b14a94f79e4b
BLAKE2b-256 1753930a21c5ed8557eabd2bc81ebfb8e99238650ae761e167ed7d99e10663e4

See more details on using hashes here.

Provenance

File details

Details for the file dijkstra3d-1.12.1-cp310-cp310-win_amd64.whl.

File metadata

  • Download URL: dijkstra3d-1.12.1-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 208.5 kB
  • Tags: CPython 3.10, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.3.0 pkginfo/1.7.0 requests/2.21.0 setuptools/56.0.0 requests-toolbelt/0.9.1 tqdm/4.57.0 CPython/3.8.10

File hashes

Hashes for dijkstra3d-1.12.1-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 8f8b167126436251a4e97b5c03f1abf2828db72d33edfd2a47f4ecfbb2e28066
MD5 e3dd087eee2d1841e46a9a9cc07a1351
BLAKE2b-256 2d16853fdeadcfcb7d66e0f35b75306751448631c225c61e1e006008e8d7c831

See more details on using hashes here.

Provenance

File details

Details for the file dijkstra3d-1.12.1-cp310-cp310-win32.whl.

File metadata

  • Download URL: dijkstra3d-1.12.1-cp310-cp310-win32.whl
  • Upload date:
  • Size: 205.8 kB
  • Tags: CPython 3.10, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.3.0 pkginfo/1.7.0 requests/2.21.0 setuptools/56.0.0 requests-toolbelt/0.9.1 tqdm/4.57.0 CPython/3.8.10

File hashes

Hashes for dijkstra3d-1.12.1-cp310-cp310-win32.whl
Algorithm Hash digest
SHA256 b41559ee1647daa6dcb813250b0085785a555c5824651f0fa37b78b0b393253c
MD5 1e221482b242195f212f98ff48d0c4fb
BLAKE2b-256 de74f449f09de9ed1fcda8bfa2401498d65a40ae56fb7a5ac87f148dfe5e93e4

See more details on using hashes here.

Provenance

File details

Details for the file dijkstra3d-1.12.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for dijkstra3d-1.12.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 e169d6adfee57ccb139506081ea52a664ac676023116f5bcab5382a1cc8a16d5
MD5 4ddfcfa6d580461f00bb5bae963560fe
BLAKE2b-256 03898fb7ba215efcb9c5c76b286dea36bcb4631c068c730d50f8da609252dd28

See more details on using hashes here.

Provenance

File details

Details for the file dijkstra3d-1.12.1-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for dijkstra3d-1.12.1-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 65bf3f36212c60cbc235391f5290a5e0129ee8db682cf4c39bf57d813bddf4ff
MD5 204c7763150713b58c14000186a2be5b
BLAKE2b-256 540c49d811ddcdf2d68b9ed52ba80cda4cfa5011403444de38e38bb19f37579e

See more details on using hashes here.

Provenance

File details

Details for the file dijkstra3d-1.12.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for dijkstra3d-1.12.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 ce0704769feecf74e946a551f66d59c1d777788df7e041c1fe36d870ef064e3e
MD5 28c642a68d713d28f3dcdadb36d13b00
BLAKE2b-256 9e4c66182d0b15e7cbb074957553a021f3ae662c4e51e0258c9b447a5d3bbf4e

See more details on using hashes here.

Provenance

File details

Details for the file dijkstra3d-1.12.1-cp310-cp310-macosx_10_9_x86_64.whl.

File metadata

  • Download URL: dijkstra3d-1.12.1-cp310-cp310-macosx_10_9_x86_64.whl
  • Upload date:
  • Size: 313.3 kB
  • Tags: CPython 3.10, macOS 10.9+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.3.0 pkginfo/1.7.0 requests/2.21.0 setuptools/56.0.0 requests-toolbelt/0.9.1 tqdm/4.57.0 CPython/3.8.10

File hashes

Hashes for dijkstra3d-1.12.1-cp310-cp310-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 7fb46f080818d9bc4b4d3aefa9026879f8ebbc1e95acdf66243c1ee322a7f350
MD5 124e636f27627074dd6696b0389b9d81
BLAKE2b-256 e1d05e98a146c1abbc08c02755b79c56c86c0cd07eceba11c6fcaca8dccb7e4f

See more details on using hashes here.

Provenance

File details

Details for the file dijkstra3d-1.12.1-cp310-cp310-macosx_10_9_universal2.whl.

File metadata

  • Download URL: dijkstra3d-1.12.1-cp310-cp310-macosx_10_9_universal2.whl
  • Upload date:
  • Size: 567.9 kB
  • Tags: CPython 3.10, macOS 10.9+ universal2 (ARM64, x86-64)
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.3.0 pkginfo/1.7.0 requests/2.21.0 setuptools/56.0.0 requests-toolbelt/0.9.1 tqdm/4.57.0 CPython/3.8.10

File hashes

Hashes for dijkstra3d-1.12.1-cp310-cp310-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 ec42286f86eec365da04b09ac503e033e278074969e0b401fc9109d4951d308e
MD5 8aceb40615a33d3d2e0c65052011689d
BLAKE2b-256 e6d8ceef655955294816842d4dada70b251105fbe0625616b4e809f09b3d2686

See more details on using hashes here.

Provenance

File details

Details for the file dijkstra3d-1.12.1-cp39-cp39-win_amd64.whl.

File metadata

  • Download URL: dijkstra3d-1.12.1-cp39-cp39-win_amd64.whl
  • Upload date:
  • Size: 212.4 kB
  • Tags: CPython 3.9, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.3.0 pkginfo/1.7.0 requests/2.21.0 setuptools/56.0.0 requests-toolbelt/0.9.1 tqdm/4.57.0 CPython/3.8.10

File hashes

Hashes for dijkstra3d-1.12.1-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 da38ebf17c1ad975a1371feddf75cdd9fb0f917f31c8ca42259f0ac123ee13eb
MD5 cf2fb189aafbff9ccb3371a98f8a5527
BLAKE2b-256 13184d318929509c9cbff0b4b9162cb8720ff275aaa81aa22552c2554145785c

See more details on using hashes here.

Provenance

File details

Details for the file dijkstra3d-1.12.1-cp39-cp39-win32.whl.

File metadata

  • Download URL: dijkstra3d-1.12.1-cp39-cp39-win32.whl
  • Upload date:
  • Size: 209.1 kB
  • Tags: CPython 3.9, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.3.0 pkginfo/1.7.0 requests/2.21.0 setuptools/56.0.0 requests-toolbelt/0.9.1 tqdm/4.57.0 CPython/3.8.10

File hashes

Hashes for dijkstra3d-1.12.1-cp39-cp39-win32.whl
Algorithm Hash digest
SHA256 259b0f7f5234ac436d8aa5a242a7364d556cfc84495104d411afd6dcb8b5c3d7
MD5 df18d4ea633c5077ff22553f3670cd25
BLAKE2b-256 036af8d4fcdb3fcd4336c52ef8cb69b5689a78d5fa93fa7d5185f5b600554fa9

See more details on using hashes here.

Provenance

File details

Details for the file dijkstra3d-1.12.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for dijkstra3d-1.12.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 6f931872526f9ae54a323b7d9bcfe818305a319719376baf82e5c5f73b8e945b
MD5 4dd6843ef9ddfdf408e1308e00fd977b
BLAKE2b-256 d342d99c284715b099a4ef08146eaf852a4e71c25f5342ff96a61df1276e40b7

See more details on using hashes here.

Provenance

File details

Details for the file dijkstra3d-1.12.1-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for dijkstra3d-1.12.1-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 4676b47bd0200949e24668814ad98d6231f7f2ceb31838b23491609d3ee661b1
MD5 d5b6fa770ce4cdf731f4309ca4fe3bbb
BLAKE2b-256 a7f4d234d59cb91a524a56c5e26b5f14437956428a3b3ee8d0eccbb2945cdf72

See more details on using hashes here.

Provenance

File details

Details for the file dijkstra3d-1.12.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for dijkstra3d-1.12.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 a4edc35fac053ddd74021cf7472c86cafbff95e0d2e0576ff32621c26558ea46
MD5 2d18f47e84823eb09c22f1394023da5d
BLAKE2b-256 97bb05dfd8acae276f4199f29c162c4add7131ff1d5e8c1b0ed7d9725f2063e8

See more details on using hashes here.

Provenance

File details

Details for the file dijkstra3d-1.12.1-cp39-cp39-macosx_10_9_x86_64.whl.

File metadata

  • Download URL: dijkstra3d-1.12.1-cp39-cp39-macosx_10_9_x86_64.whl
  • Upload date:
  • Size: 317.6 kB
  • Tags: CPython 3.9, macOS 10.9+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.3.0 pkginfo/1.7.0 requests/2.21.0 setuptools/56.0.0 requests-toolbelt/0.9.1 tqdm/4.57.0 CPython/3.8.10

File hashes

Hashes for dijkstra3d-1.12.1-cp39-cp39-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 d3bb1c5db3d4f31e0f73b44e6c3f8b3d5b39fac20c608f30efe8d6668bd44011
MD5 15f40c6c29750531fc709ea7c6869dcd
BLAKE2b-256 b67bf43c1f67e36a8ac33bd52ceb46f931b76328b0e4f7ad1c9587bb38d2a11c

See more details on using hashes here.

Provenance

File details

Details for the file dijkstra3d-1.12.1-cp39-cp39-macosx_10_9_universal2.whl.

File metadata

  • Download URL: dijkstra3d-1.12.1-cp39-cp39-macosx_10_9_universal2.whl
  • Upload date:
  • Size: 576.9 kB
  • Tags: CPython 3.9, macOS 10.9+ universal2 (ARM64, x86-64)
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.3.0 pkginfo/1.7.0 requests/2.21.0 setuptools/56.0.0 requests-toolbelt/0.9.1 tqdm/4.57.0 CPython/3.8.10

File hashes

Hashes for dijkstra3d-1.12.1-cp39-cp39-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 cc0858be385f4db1f69c6389b34fbccc32ceeb4b1608afcaf2d4eb3a325e5407
MD5 3b6c4d8c4f5a3a332a17d3d32cc9f25e
BLAKE2b-256 e97606942aab86f720d7786b43fd0df14280e4ed108f3dc982230594da07c995

See more details on using hashes here.

Provenance

File details

Details for the file dijkstra3d-1.12.1-cp38-cp38-win_amd64.whl.

File metadata

  • Download URL: dijkstra3d-1.12.1-cp38-cp38-win_amd64.whl
  • Upload date:
  • Size: 213.1 kB
  • Tags: CPython 3.8, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.3.0 pkginfo/1.7.0 requests/2.21.0 setuptools/56.0.0 requests-toolbelt/0.9.1 tqdm/4.57.0 CPython/3.8.10

File hashes

Hashes for dijkstra3d-1.12.1-cp38-cp38-win_amd64.whl
Algorithm Hash digest
SHA256 bfe2b330783074cda3892e378bb616aa21b674f7e566fc9c68666c5fb9c69f84
MD5 8c39caf96e4cfa1f1c976f3a08893b76
BLAKE2b-256 402108f3431d2a27045be2f9022ac7872ab1fe46f85d8c4941558b4373c42ea1

See more details on using hashes here.

Provenance

File details

Details for the file dijkstra3d-1.12.1-cp38-cp38-win32.whl.

File metadata

  • Download URL: dijkstra3d-1.12.1-cp38-cp38-win32.whl
  • Upload date:
  • Size: 209.6 kB
  • Tags: CPython 3.8, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.3.0 pkginfo/1.7.0 requests/2.21.0 setuptools/56.0.0 requests-toolbelt/0.9.1 tqdm/4.57.0 CPython/3.8.10

File hashes

Hashes for dijkstra3d-1.12.1-cp38-cp38-win32.whl
Algorithm Hash digest
SHA256 30a0464c0fa9039df84e93613c7c546559f0733e4135f1e5f15972e847fc931a
MD5 f679dbb69df596c3a5539ae3ff6eebfd
BLAKE2b-256 73df56106fe6b5228101f8daa9d339876db6b6007a659aa597835497247f749e

See more details on using hashes here.

Provenance

File details

Details for the file dijkstra3d-1.12.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for dijkstra3d-1.12.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 d325ffe2b5c333e42f2b3331e19bbd9f0b3016180c51d279d415727f49b351ba
MD5 bff4f776501656f4ad3a8d4a71ab3d59
BLAKE2b-256 78bf6a847bf5df34e83d9629795e1d0f4a785b5f5480421f21ba4a59f0fb68a0

See more details on using hashes here.

Provenance

File details

Details for the file dijkstra3d-1.12.1-cp38-cp38-manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for dijkstra3d-1.12.1-cp38-cp38-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 b8393aa5fa8556e699990956518d7d549d038a42fea728cf91ad5c38c0c4e23d
MD5 c24c74faada87683e346220fa9d7d780
BLAKE2b-256 95b7b10ba6a227183d785c0abf327745e8af38bcf9b3a2cb04c845e2771de5e4

See more details on using hashes here.

Provenance

File details

Details for the file dijkstra3d-1.12.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for dijkstra3d-1.12.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 c4ca092cb088dedaeb794438ab170c8e4a4454e2213fb13c7190a2dfc7df0243
MD5 49fc67e9a5d257ccbc06394c5ab4b6a1
BLAKE2b-256 89dc960c25ff9f4b6a420a98ec0cfb19f6fc7c04941f849523b433754be6c4b1

See more details on using hashes here.

Provenance

File details

Details for the file dijkstra3d-1.12.1-cp38-cp38-macosx_11_0_universal2.whl.

File metadata

  • Download URL: dijkstra3d-1.12.1-cp38-cp38-macosx_11_0_universal2.whl
  • Upload date:
  • Size: 566.0 kB
  • Tags: CPython 3.8, macOS 11.0+ universal2 (ARM64, x86-64)
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.3.0 pkginfo/1.7.0 requests/2.21.0 setuptools/56.0.0 requests-toolbelt/0.9.1 tqdm/4.57.0 CPython/3.8.10

File hashes

Hashes for dijkstra3d-1.12.1-cp38-cp38-macosx_11_0_universal2.whl
Algorithm Hash digest
SHA256 8ff577dd3d8d9b98cf310ec7b5ad9514a522a911dce2933dc52f144fe4f7f5e9
MD5 5108cf7669553bb2fb4256d53e2edd76
BLAKE2b-256 822237d54942deb332091ac505106b93ac12b563e06a9bcc65dbdf09f7e21c70

See more details on using hashes here.

Provenance

File details

Details for the file dijkstra3d-1.12.1-cp38-cp38-macosx_10_9_x86_64.whl.

File metadata

  • Download URL: dijkstra3d-1.12.1-cp38-cp38-macosx_10_9_x86_64.whl
  • Upload date:
  • Size: 312.3 kB
  • Tags: CPython 3.8, macOS 10.9+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.3.0 pkginfo/1.7.0 requests/2.21.0 setuptools/56.0.0 requests-toolbelt/0.9.1 tqdm/4.57.0 CPython/3.8.10

File hashes

Hashes for dijkstra3d-1.12.1-cp38-cp38-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 c861568c7986ad4c8571a6a4fe4ea80ce23b8cf0d93c24728d6aa3f32b556dd9
MD5 315cdd7f152d0109fc442813f2c21981
BLAKE2b-256 c95c593c5c0576090b2df52a9dc710b14048aec887134187fdf32da9601dabb3

See more details on using hashes here.

Provenance

File details

Details for the file dijkstra3d-1.12.1-cp37-cp37m-win_amd64.whl.

File metadata

  • Download URL: dijkstra3d-1.12.1-cp37-cp37m-win_amd64.whl
  • Upload date:
  • Size: 204.0 kB
  • Tags: CPython 3.7m, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.3.0 pkginfo/1.7.0 requests/2.21.0 setuptools/56.0.0 requests-toolbelt/0.9.1 tqdm/4.57.0 CPython/3.8.10

File hashes

Hashes for dijkstra3d-1.12.1-cp37-cp37m-win_amd64.whl
Algorithm Hash digest
SHA256 aad042bda518c92026906227296228b0e810d2fcf50ab520bedd7e97f2716085
MD5 0bdc909dee722c1e910bac57f25eaa24
BLAKE2b-256 d9935368387ceeea66e4823fe3c8e25dc41e01dce574223c784ab8c26c79d893

See more details on using hashes here.

Provenance

File details

Details for the file dijkstra3d-1.12.1-cp37-cp37m-win32.whl.

File metadata

  • Download URL: dijkstra3d-1.12.1-cp37-cp37m-win32.whl
  • Upload date:
  • Size: 203.4 kB
  • Tags: CPython 3.7m, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.3.0 pkginfo/1.7.0 requests/2.21.0 setuptools/56.0.0 requests-toolbelt/0.9.1 tqdm/4.57.0 CPython/3.8.10

File hashes

Hashes for dijkstra3d-1.12.1-cp37-cp37m-win32.whl
Algorithm Hash digest
SHA256 24ee30118c284f11e035e44d9b107aba9c84a98d57db4c689a47b86d99b243b3
MD5 1cc68fd967c4d76c9de24012cdf5e050
BLAKE2b-256 9bfc7b96ce70d25c8884f7094942d4be9cd83990625da94b967b599d9075c744

See more details on using hashes here.

Provenance

File details

Details for the file dijkstra3d-1.12.1-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for dijkstra3d-1.12.1-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 ff8dbba3f23879baf5c5565f846a02cd7c4b73b5d23d0141c14ffdf6d8782cfb
MD5 663c858b6955f26d3e7b8ba35f42fa90
BLAKE2b-256 01ee9bb084be1f7821a86ebb04be9222492ff4636aaae1d8110d67d35420a9fc

See more details on using hashes here.

Provenance

File details

Details for the file dijkstra3d-1.12.1-cp37-cp37m-manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for dijkstra3d-1.12.1-cp37-cp37m-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 930298f429c872c7611bbe6cd656834e06b4d00568bee59e5f648e9e5027dfc3
MD5 847a83eb99c17281607f105173023c6c
BLAKE2b-256 ff008c170e1b40a7384a640561e535ac5f4366dae4d5ad34f8f5de395ea8f1d3

See more details on using hashes here.

Provenance

File details

Details for the file dijkstra3d-1.12.1-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for dijkstra3d-1.12.1-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 63f5c26bcacea17990a254e4ea66d89ca8989df909b22e0263874cdcac93307b
MD5 fef761cce32e85010ef4733a0439743e
BLAKE2b-256 ba5eb394958cdcba533c9eab4f92a1cb8524f673db394b30d20fb1de16332784

See more details on using hashes here.

Provenance

File details

Details for the file dijkstra3d-1.12.1-cp37-cp37m-macosx_10_9_x86_64.whl.

File metadata

  • Download URL: dijkstra3d-1.12.1-cp37-cp37m-macosx_10_9_x86_64.whl
  • Upload date:
  • Size: 314.0 kB
  • Tags: CPython 3.7m, macOS 10.9+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.3.0 pkginfo/1.7.0 requests/2.21.0 setuptools/56.0.0 requests-toolbelt/0.9.1 tqdm/4.57.0 CPython/3.8.10

File hashes

Hashes for dijkstra3d-1.12.1-cp37-cp37m-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 c5f5063166a0e78c0a9efaf686ed3eaa90245a3d5a1ac0470cfde9d9b323766c
MD5 c7c02d00ee39a48694e2463f5f296b9c
BLAKE2b-256 0b2819b6ab5708183dde4dde9d72eeb375e74e3db74684859b42ba090513403e

See more details on using hashes here.

Provenance

Supported by

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