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.
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) 

# 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

# 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.

What is that pairing_heap.hpp?

Early on, I anticipated using decrease key in my heap and implemented a pairing heap, which is supposed to be an improvement on the Fibbonacci heap. However, I ended up not using decrease key, and the STL priority queue ended up being faster. If you need a pairing heap outside of boost, check it out.

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.10.0.tar.gz (249.7 kB view details)

Uploaded Source

Built Distributions

dijkstra3d-1.10.0-cp39-cp39-win_amd64.whl (203.0 kB view details)

Uploaded CPython 3.9 Windows x86-64

dijkstra3d-1.10.0-cp39-cp39-win32.whl (195.8 kB view details)

Uploaded CPython 3.9 Windows x86

dijkstra3d-1.10.0-cp39-cp39-manylinux2010_x86_64.whl (1.7 MB view details)

Uploaded CPython 3.9 manylinux: glibc 2.12+ x86-64

dijkstra3d-1.10.0-cp39-cp39-manylinux2010_i686.whl (1.6 MB view details)

Uploaded CPython 3.9 manylinux: glibc 2.12+ i686

dijkstra3d-1.10.0-cp39-cp39-manylinux1_x86_64.whl (1.7 MB view details)

Uploaded CPython 3.9

dijkstra3d-1.10.0-cp39-cp39-manylinux1_i686.whl (1.6 MB view details)

Uploaded CPython 3.9

dijkstra3d-1.10.0-cp39-cp39-macosx_10_9_x86_64.whl (283.3 kB view details)

Uploaded CPython 3.9 macOS 10.9+ x86-64

dijkstra3d-1.10.0-cp39-cp39-macosx_10_9_universal2.whl (509.7 kB view details)

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

dijkstra3d-1.10.0-cp38-cp38-win_amd64.whl (204.4 kB view details)

Uploaded CPython 3.8 Windows x86-64

dijkstra3d-1.10.0-cp38-cp38-win32.whl (197.8 kB view details)

Uploaded CPython 3.8 Windows x86

dijkstra3d-1.10.0-cp38-cp38-manylinux2010_x86_64.whl (1.8 MB view details)

Uploaded CPython 3.8 manylinux: glibc 2.12+ x86-64

dijkstra3d-1.10.0-cp38-cp38-manylinux2010_i686.whl (1.7 MB view details)

Uploaded CPython 3.8 manylinux: glibc 2.12+ i686

dijkstra3d-1.10.0-cp38-cp38-manylinux1_x86_64.whl (1.8 MB view details)

Uploaded CPython 3.8

dijkstra3d-1.10.0-cp38-cp38-manylinux1_i686.whl (1.7 MB view details)

Uploaded CPython 3.8

dijkstra3d-1.10.0-cp38-cp38-macosx_11_0_universal2.whl (500.4 kB view details)

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

dijkstra3d-1.10.0-cp38-cp38-macosx_10_9_x86_64.whl (277.5 kB view details)

Uploaded CPython 3.8 macOS 10.9+ x86-64

dijkstra3d-1.10.0-cp37-cp37m-win_amd64.whl (198.5 kB view details)

Uploaded CPython 3.7m Windows x86-64

dijkstra3d-1.10.0-cp37-cp37m-win32.whl (191.0 kB view details)

Uploaded CPython 3.7m Windows x86

dijkstra3d-1.10.0-cp37-cp37m-manylinux2010_x86_64.whl (1.7 MB view details)

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

dijkstra3d-1.10.0-cp37-cp37m-manylinux2010_i686.whl (1.5 MB view details)

Uploaded CPython 3.7m manylinux: glibc 2.12+ i686

dijkstra3d-1.10.0-cp37-cp37m-manylinux1_x86_64.whl (1.7 MB view details)

Uploaded CPython 3.7m

dijkstra3d-1.10.0-cp37-cp37m-manylinux1_i686.whl (1.5 MB view details)

Uploaded CPython 3.7m

dijkstra3d-1.10.0-cp37-cp37m-macosx_10_9_x86_64.whl (278.4 kB view details)

Uploaded CPython 3.7m macOS 10.9+ x86-64

dijkstra3d-1.10.0-cp36-cp36m-win_amd64.whl (198.3 kB view details)

Uploaded CPython 3.6m Windows x86-64

dijkstra3d-1.10.0-cp36-cp36m-win32.whl (191.0 kB view details)

Uploaded CPython 3.6m Windows x86

dijkstra3d-1.10.0-cp36-cp36m-manylinux2010_x86_64.whl (1.7 MB view details)

Uploaded CPython 3.6m manylinux: glibc 2.12+ x86-64

dijkstra3d-1.10.0-cp36-cp36m-manylinux2010_i686.whl (1.5 MB view details)

Uploaded CPython 3.6m manylinux: glibc 2.12+ i686

dijkstra3d-1.10.0-cp36-cp36m-manylinux1_x86_64.whl (1.7 MB view details)

Uploaded CPython 3.6m

dijkstra3d-1.10.0-cp36-cp36m-manylinux1_i686.whl (1.5 MB view details)

Uploaded CPython 3.6m

dijkstra3d-1.10.0-cp36-cp36m-macosx_10_9_x86_64.whl (277.7 kB view details)

Uploaded CPython 3.6m macOS 10.9+ x86-64

File details

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

File metadata

  • Download URL: dijkstra3d-1.10.0.tar.gz
  • Upload date:
  • Size: 249.7 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.10.0.tar.gz
Algorithm Hash digest
SHA256 ac712766ec59beaab8c880cbf79263ef388cdc83d509a60f93958f8d2929cd64
MD5 24856b8b4764978f4fb66b1d4bf3108e
BLAKE2b-256 ad59e3a474d94ecb890e7063b34ab965af4f7b158bfcac306089d77b7838a206

See more details on using hashes here.

Provenance

File details

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

File metadata

  • Download URL: dijkstra3d-1.10.0-cp39-cp39-win_amd64.whl
  • Upload date:
  • Size: 203.0 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.10.0-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 2a78f68186d29aa53748b3b3af7dae550e7dc039caeea9f03e1ef71bd0e0a008
MD5 634bf54d5326170c28eac18fbe01bcb0
BLAKE2b-256 4e1407645d4838ce58b482bd893d97c5649b537313544f5f95afbe2495904bc2

See more details on using hashes here.

Provenance

File details

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

File metadata

  • Download URL: dijkstra3d-1.10.0-cp39-cp39-win32.whl
  • Upload date:
  • Size: 195.8 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.10.0-cp39-cp39-win32.whl
Algorithm Hash digest
SHA256 9aea0232d7eff525c17a813f4a4c883008bb214affa52d8468c37c537739e6f9
MD5 3a25c1f54bf25a160e5795344c671227
BLAKE2b-256 92127db2dac530dab0391cd2642c1412355249867f747d13ca9b4741217d0e51

See more details on using hashes here.

Provenance

File details

Details for the file dijkstra3d-1.10.0-cp39-cp39-manylinux2010_x86_64.whl.

File metadata

  • Download URL: dijkstra3d-1.10.0-cp39-cp39-manylinux2010_x86_64.whl
  • Upload date:
  • Size: 1.7 MB
  • Tags: CPython 3.9, manylinux: glibc 2.12+ 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.10.0-cp39-cp39-manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 30926d4af28883d19ad4a2b202fb57015ed3c3068c748580980d7ff11a4d857f
MD5 1bbe7981e5f66b109399d616c0ef9451
BLAKE2b-256 4af056f33b486e95852672a53d1b8d2e7eb726432f3b166dd6ff0ac6c4eb1d27

See more details on using hashes here.

Provenance

File details

Details for the file dijkstra3d-1.10.0-cp39-cp39-manylinux2010_i686.whl.

File metadata

  • Download URL: dijkstra3d-1.10.0-cp39-cp39-manylinux2010_i686.whl
  • Upload date:
  • Size: 1.6 MB
  • Tags: CPython 3.9, manylinux: glibc 2.12+ i686
  • 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.10.0-cp39-cp39-manylinux2010_i686.whl
Algorithm Hash digest
SHA256 d63a47327964975e6eaefc8c15fc7de6f6779c47f5d581bdce01e0e74d680e92
MD5 66190cfb86c2c4d2163d61357c69afea
BLAKE2b-256 38e5511ac83e42f2e1f46694394208b451d5fee9870823a9dc4e1814d17a250b

See more details on using hashes here.

Provenance

File details

Details for the file dijkstra3d-1.10.0-cp39-cp39-manylinux1_x86_64.whl.

File metadata

  • Download URL: dijkstra3d-1.10.0-cp39-cp39-manylinux1_x86_64.whl
  • Upload date:
  • Size: 1.7 MB
  • Tags: CPython 3.9
  • 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.10.0-cp39-cp39-manylinux1_x86_64.whl
Algorithm Hash digest
SHA256 82ff94a9fb064cf7bb0e88a2fe5abaa181a54ca2b57841d195b341397a608b5f
MD5 8b84b57aa0313f6e27ab474180c48f30
BLAKE2b-256 44e9fc51d6c38f059c06e0ea979a81867841fc6d4a7c764717c327b948e564fa

See more details on using hashes here.

Provenance

File details

Details for the file dijkstra3d-1.10.0-cp39-cp39-manylinux1_i686.whl.

File metadata

  • Download URL: dijkstra3d-1.10.0-cp39-cp39-manylinux1_i686.whl
  • Upload date:
  • Size: 1.6 MB
  • Tags: CPython 3.9
  • 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.10.0-cp39-cp39-manylinux1_i686.whl
Algorithm Hash digest
SHA256 3a48d8e31149149646242e2de3ee483c2d3b8f7f12523bd5392afbbbca275a75
MD5 ed0d60d1e1e2014934ffda29bff78076
BLAKE2b-256 c078503ff5a96c76930de3f913f86ff3c31b88e1308541402cdb7edacff2cc74

See more details on using hashes here.

Provenance

File details

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

File metadata

  • Download URL: dijkstra3d-1.10.0-cp39-cp39-macosx_10_9_x86_64.whl
  • Upload date:
  • Size: 283.3 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.10.0-cp39-cp39-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 43dc8a29d456f3fafcbf59607db11d92043e4d07bf052f359347a22dfcd929f1
MD5 a608fa28b262b97b58fe14681b4543ec
BLAKE2b-256 7bba74eebd7807db8f69b4489d124db402cde2441bce8cb9a681d69bf4c3b928

See more details on using hashes here.

Provenance

File details

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

File metadata

  • Download URL: dijkstra3d-1.10.0-cp39-cp39-macosx_10_9_universal2.whl
  • Upload date:
  • Size: 509.7 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.10.0-cp39-cp39-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 ebe017b854f9b7884011ad582eaa74749195ba83dceaf0baf586077ddbb584b0
MD5 0b86fc2455e604052d158bda86417900
BLAKE2b-256 324919842a54bda07a14967f6025d16b8c6b4071bfbf5a9b892374ba95b8422d

See more details on using hashes here.

Provenance

File details

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

File metadata

  • Download URL: dijkstra3d-1.10.0-cp38-cp38-win_amd64.whl
  • Upload date:
  • Size: 204.4 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.10.0-cp38-cp38-win_amd64.whl
Algorithm Hash digest
SHA256 751d8fdc257a49ccbc86de141cdaf6754328111e9c4c994c9392f6429beceef4
MD5 8ce95c0d6b72dc43cbcc204b57eda8e6
BLAKE2b-256 cc58bd35d23df0046ed3dca3bbd3e20e557a7af9e93a0b630afb43923e75a957

See more details on using hashes here.

Provenance

File details

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

File metadata

  • Download URL: dijkstra3d-1.10.0-cp38-cp38-win32.whl
  • Upload date:
  • Size: 197.8 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.10.0-cp38-cp38-win32.whl
Algorithm Hash digest
SHA256 637c1265a83407b03e2697bb37f251b432a985b635cd15ee2abd97577fc7e37d
MD5 7b0540739a025e34f7c8e8befce946c1
BLAKE2b-256 d85f7b622c0611217d02ac96f9b2dbfc275a2bb78312cc8f5fb633284347892d

See more details on using hashes here.

Provenance

File details

Details for the file dijkstra3d-1.10.0-cp38-cp38-manylinux2010_x86_64.whl.

File metadata

  • Download URL: dijkstra3d-1.10.0-cp38-cp38-manylinux2010_x86_64.whl
  • Upload date:
  • Size: 1.8 MB
  • Tags: CPython 3.8, manylinux: glibc 2.12+ 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.10.0-cp38-cp38-manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 060a0f49b1a8c399d81e1a1484c871e071cd0ee712ec6ae5b9d634bebd775477
MD5 0c2b4c178f6c5354f1b6adde3bb22be7
BLAKE2b-256 07585dac0789f6b70850ef451771d8233df3b476189b372514a209c434495ecf

See more details on using hashes here.

Provenance

File details

Details for the file dijkstra3d-1.10.0-cp38-cp38-manylinux2010_i686.whl.

File metadata

  • Download URL: dijkstra3d-1.10.0-cp38-cp38-manylinux2010_i686.whl
  • Upload date:
  • Size: 1.7 MB
  • Tags: CPython 3.8, manylinux: glibc 2.12+ i686
  • 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.10.0-cp38-cp38-manylinux2010_i686.whl
Algorithm Hash digest
SHA256 4e57ea6ca785f39d54efcdac9339af5bb1d6d60a4d62e608808882a046dbedb3
MD5 05ceb4423bdd4e69fe893b9549130dbd
BLAKE2b-256 64ff832fff194b537f8a0daaaa370c3364d94217119e55291951e5907455c851

See more details on using hashes here.

Provenance

File details

Details for the file dijkstra3d-1.10.0-cp38-cp38-manylinux1_x86_64.whl.

File metadata

  • Download URL: dijkstra3d-1.10.0-cp38-cp38-manylinux1_x86_64.whl
  • Upload date:
  • Size: 1.8 MB
  • Tags: CPython 3.8
  • 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.10.0-cp38-cp38-manylinux1_x86_64.whl
Algorithm Hash digest
SHA256 f9682cc219ac61fd2067f031ccb0e51e846f0e9155a3c8a9c07b50d9dc6a74a2
MD5 def68325307263ab7fb77d57f200322b
BLAKE2b-256 803aa29efe680ae3ef6b9fd524d3a0fc7fe9efd3416236483bf522de4946503d

See more details on using hashes here.

Provenance

File details

Details for the file dijkstra3d-1.10.0-cp38-cp38-manylinux1_i686.whl.

File metadata

  • Download URL: dijkstra3d-1.10.0-cp38-cp38-manylinux1_i686.whl
  • Upload date:
  • Size: 1.7 MB
  • Tags: CPython 3.8
  • 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.10.0-cp38-cp38-manylinux1_i686.whl
Algorithm Hash digest
SHA256 8abca0d6b14576eb6b3fb945118af701a136019db1ecba6ee63219ebd2a54400
MD5 390aca32ca84940524ade17d6b7d478b
BLAKE2b-256 50cac75f0e283ff5fae60ab893644714cea5b14f319e2d60bd92e5347a8f749b

See more details on using hashes here.

Provenance

File details

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

File metadata

  • Download URL: dijkstra3d-1.10.0-cp38-cp38-macosx_11_0_universal2.whl
  • Upload date:
  • Size: 500.4 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.10.0-cp38-cp38-macosx_11_0_universal2.whl
Algorithm Hash digest
SHA256 ac72383e7cbd250a10df489ef7b0bdb8d23050665de0f27df6917f366200271c
MD5 9b60da09380907d935137e0b256f082c
BLAKE2b-256 a4717fcd6ed4db8381eca5ebaa6ddd89a25b70e37b3934728cef558f2d5a3635

See more details on using hashes here.

Provenance

File details

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

File metadata

  • Download URL: dijkstra3d-1.10.0-cp38-cp38-macosx_10_9_x86_64.whl
  • Upload date:
  • Size: 277.5 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.10.0-cp38-cp38-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 bd4d71742fc47f2270d8fa88ca7e9c40c926147cd9187fd77c9d9b35b3997730
MD5 129f2c2f7393378317bb2def8185b929
BLAKE2b-256 4ff2f7d4fa5a528ff80d59d7097d735b29b49ffa45feaeed4aec6c16ff435523

See more details on using hashes here.

Provenance

File details

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

File metadata

  • Download URL: dijkstra3d-1.10.0-cp37-cp37m-win_amd64.whl
  • Upload date:
  • Size: 198.5 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.10.0-cp37-cp37m-win_amd64.whl
Algorithm Hash digest
SHA256 ef33a3b698246b4fb273dc9c153244424c7571d2615cb876b445e7ec3b03c1d0
MD5 2842ba7ab670c5d700a6801c14dda8a1
BLAKE2b-256 8b7e776e2ae0a4597cc88305f4b260db28e8627ba16a946792ee6506a140ec73

See more details on using hashes here.

Provenance

File details

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

File metadata

  • Download URL: dijkstra3d-1.10.0-cp37-cp37m-win32.whl
  • Upload date:
  • Size: 191.0 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.10.0-cp37-cp37m-win32.whl
Algorithm Hash digest
SHA256 92b2c85564bb7d62a83111a03e6ad5d50178acfabb12e38fcd411cc78d688ba0
MD5 8dbf6a8a34f439c037f77653e5c5ad6c
BLAKE2b-256 02f1a4a060f2e4c73f009820a8a406beac5247216181d69d8324477e14bd72fb

See more details on using hashes here.

Provenance

File details

Details for the file dijkstra3d-1.10.0-cp37-cp37m-manylinux2010_x86_64.whl.

File metadata

  • Download URL: dijkstra3d-1.10.0-cp37-cp37m-manylinux2010_x86_64.whl
  • Upload date:
  • Size: 1.7 MB
  • Tags: CPython 3.7m, manylinux: glibc 2.12+ 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.10.0-cp37-cp37m-manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 47d583d327403ba24041e788e3759644245d8947342cc920567ced796dcc212d
MD5 60238a9e045a236da2f4c6604e8ea7dc
BLAKE2b-256 0487e4f9949f82ec91ba6e8eec0fb58a5c0d8af47ab66a8086b849e2886dd9d4

See more details on using hashes here.

Provenance

File details

Details for the file dijkstra3d-1.10.0-cp37-cp37m-manylinux2010_i686.whl.

File metadata

  • Download URL: dijkstra3d-1.10.0-cp37-cp37m-manylinux2010_i686.whl
  • Upload date:
  • Size: 1.5 MB
  • Tags: CPython 3.7m, manylinux: glibc 2.12+ i686
  • 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.10.0-cp37-cp37m-manylinux2010_i686.whl
Algorithm Hash digest
SHA256 19fd74b0f7c627c595aad68e4b6683d9f420bba227a5781666627e3f40f55ef5
MD5 4d23572f4fb2e54d5d5d82bb51fbe9d8
BLAKE2b-256 1411ae87a8c3e7f41dfdc3bc59ba1c10b707b1385bdde801ba273ff9e07ea26f

See more details on using hashes here.

Provenance

File details

Details for the file dijkstra3d-1.10.0-cp37-cp37m-manylinux1_x86_64.whl.

File metadata

  • Download URL: dijkstra3d-1.10.0-cp37-cp37m-manylinux1_x86_64.whl
  • Upload date:
  • Size: 1.7 MB
  • Tags: CPython 3.7m
  • 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.10.0-cp37-cp37m-manylinux1_x86_64.whl
Algorithm Hash digest
SHA256 6be6c5e5d6a8e92de929d514d65256dc228f4876b0f74a677a145aa53fc93b66
MD5 238df49c9727dfe1873b31c38dbf21f6
BLAKE2b-256 47cc4cd5f43feaa1f68ec4c1c5feb9d803fb32c3a4e158dda71c49bced5b0d71

See more details on using hashes here.

Provenance

File details

Details for the file dijkstra3d-1.10.0-cp37-cp37m-manylinux1_i686.whl.

File metadata

  • Download URL: dijkstra3d-1.10.0-cp37-cp37m-manylinux1_i686.whl
  • Upload date:
  • Size: 1.5 MB
  • Tags: CPython 3.7m
  • 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.10.0-cp37-cp37m-manylinux1_i686.whl
Algorithm Hash digest
SHA256 74a8ab4327f20069d54b8b447e7cc8c3d8f2a250d214bea52b1da95c262db181
MD5 dc77987d777448a4eaa41381e35a7d1d
BLAKE2b-256 2b2ab03d546477c83be6d475d67f18f72e55fb4a96efc2e31a96d00ec5cda2bb

See more details on using hashes here.

Provenance

File details

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

File metadata

  • Download URL: dijkstra3d-1.10.0-cp37-cp37m-macosx_10_9_x86_64.whl
  • Upload date:
  • Size: 278.4 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.10.0-cp37-cp37m-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 579157e436857d115ad1d58631bd2af21ed71e3c82b515aaa25fc9c07e77bee1
MD5 b1c53dd0ac8f1d8416b07a80b5eda6e0
BLAKE2b-256 43fa2d15651477329115a205bcf872d34714b13a0e27fc7ff648b86095a525f6

See more details on using hashes here.

Provenance

File details

Details for the file dijkstra3d-1.10.0-cp36-cp36m-win_amd64.whl.

File metadata

  • Download URL: dijkstra3d-1.10.0-cp36-cp36m-win_amd64.whl
  • Upload date:
  • Size: 198.3 kB
  • Tags: CPython 3.6m, 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.10.0-cp36-cp36m-win_amd64.whl
Algorithm Hash digest
SHA256 8a82b111a1cc8dfee434f016917b0225b9eff478e580891979fec94c32da0c66
MD5 34f3a1784a32f4fb37cd234e5f6cb807
BLAKE2b-256 382bbfcfa5c73eda311461e645e62992e89f15d25d07b534e50fb402bc8ee770

See more details on using hashes here.

Provenance

File details

Details for the file dijkstra3d-1.10.0-cp36-cp36m-win32.whl.

File metadata

  • Download URL: dijkstra3d-1.10.0-cp36-cp36m-win32.whl
  • Upload date:
  • Size: 191.0 kB
  • Tags: CPython 3.6m, 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.10.0-cp36-cp36m-win32.whl
Algorithm Hash digest
SHA256 d0133f6860079fcc9c1308d198d3765788e4c9ea300645b4e4ff1d137b2119a7
MD5 b04edf6af2f625c8ae30a168c9884ebe
BLAKE2b-256 1a33a07c83c223049a8fb3b8307bb9fbf873159b6e82c36f90212e131e30bc35

See more details on using hashes here.

Provenance

File details

Details for the file dijkstra3d-1.10.0-cp36-cp36m-manylinux2010_x86_64.whl.

File metadata

  • Download URL: dijkstra3d-1.10.0-cp36-cp36m-manylinux2010_x86_64.whl
  • Upload date:
  • Size: 1.7 MB
  • Tags: CPython 3.6m, manylinux: glibc 2.12+ 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.10.0-cp36-cp36m-manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 52ca3af048fbcd08367328a0861ee662ee3a992ad734cead0f7c52b7bbf31ba7
MD5 3ebbc45a96775987e10bb8370dfbad25
BLAKE2b-256 e8014c2ceacaae296d1adb2ed981bc26f0238aa407806bdbe0da35c6f9efd1a2

See more details on using hashes here.

Provenance

File details

Details for the file dijkstra3d-1.10.0-cp36-cp36m-manylinux2010_i686.whl.

File metadata

  • Download URL: dijkstra3d-1.10.0-cp36-cp36m-manylinux2010_i686.whl
  • Upload date:
  • Size: 1.5 MB
  • Tags: CPython 3.6m, manylinux: glibc 2.12+ i686
  • 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.10.0-cp36-cp36m-manylinux2010_i686.whl
Algorithm Hash digest
SHA256 306707010a625c597d5112d60fab3600560756293d962e734912f3fd22b5e477
MD5 51f89f4116668493b614781e79fa74a1
BLAKE2b-256 7f7e2ec0e168d6a31ad3fda2974e1a92bae7141fe7c6f0a77732e210f555643c

See more details on using hashes here.

Provenance

File details

Details for the file dijkstra3d-1.10.0-cp36-cp36m-manylinux1_x86_64.whl.

File metadata

  • Download URL: dijkstra3d-1.10.0-cp36-cp36m-manylinux1_x86_64.whl
  • Upload date:
  • Size: 1.7 MB
  • Tags: CPython 3.6m
  • 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.10.0-cp36-cp36m-manylinux1_x86_64.whl
Algorithm Hash digest
SHA256 85cb00e163479fde05499c5e8fec2bf255b5abfe5f96ce4228211b30be6750b2
MD5 838defc35e0cb347b18236abe9ddf5d3
BLAKE2b-256 c66988cd2900dd95d0c0770d08f494a1357fc54f339e3a557d504fe90a140538

See more details on using hashes here.

Provenance

File details

Details for the file dijkstra3d-1.10.0-cp36-cp36m-manylinux1_i686.whl.

File metadata

  • Download URL: dijkstra3d-1.10.0-cp36-cp36m-manylinux1_i686.whl
  • Upload date:
  • Size: 1.5 MB
  • Tags: CPython 3.6m
  • 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.10.0-cp36-cp36m-manylinux1_i686.whl
Algorithm Hash digest
SHA256 ffc2811053759b1eb2e122fbdbe3fa51dc3a584c25f01e4fc6832a31c7e1f9e5
MD5 1eacdfaeb2a3e918e5023b14aaacdb4b
BLAKE2b-256 08ea0e336aad34c709c17f5de0951e6f8ee34c2e4da43e4f65ec4d9f218aa949

See more details on using hashes here.

Provenance

File details

Details for the file dijkstra3d-1.10.0-cp36-cp36m-macosx_10_9_x86_64.whl.

File metadata

  • Download URL: dijkstra3d-1.10.0-cp36-cp36m-macosx_10_9_x86_64.whl
  • Upload date:
  • Size: 277.7 kB
  • Tags: CPython 3.6m, 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.10.0-cp36-cp36m-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 8d5c7e38002429d38997df260d69c39cf0aa86446a38f7309ee97b171913aa15
MD5 ac588db210924e3b07955f398a88283e
BLAKE2b-256 050382991108b0d998573255e4e4b2b6ec0a54c32418f9673ff516700a06c9a6

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