Skip to main content

A Python port of Martini for fast terrain mesh generation

Project description

pymartini

A Cython port of Martini for fast RTIN terrain mesh generation, 2-3x faster than Martini in Node. The only dependency is Numpy.

Install

Currently only source builds are provided, so you'll need to have Cython and a C compiler available during installation. Additionally numpy must already exist during install. Pull requests are welcome to package as platform-specific wheels.

pip install numpy
pip install pymartini

Using

Example

The API is modeled after Martini.

from pymartini import Martini

# set up mesh generator for a certain 2^k+1 grid size
# Usually either 257 or 513
martini = Martini(257)

# generate RTIN hierarchy from terrain data (an array of size^2 length)
tile = martini.create_tile(terrain)

# get a mesh (vertices and triangles indices) for a 10m error
vertices, triangles = tile.get_mesh(10)

Utilities

A few utilities are included.

decode_ele

A helper function to decode a PNG terrain tile into elevations.

Arguments
  • png (np.ndarray): Ndarray of elevations encoded in three channels, representing red, green, and blue. Must be of shape (tile_size, tile_size, >=3), where tile_size is usually 256 or 512
  • encoding (str): Either 'mapbox' or 'terrarium', the two main RGB encodings for elevation values
Returns
  • (np.array) Array of shape (tile_size^2) with decoded elevation values
Example
from imageio import imread
from pymartini import decode_ele

path = './test/data/fuji.png'
fuji = imread(path)
terrain = decode_ele(fuji, 'mapbox')

rescale_positions

A helper function to rescale the vertices output and add elevations. The output is of the form [x1, y1, z1, x2, y2, z2, ...].

Arguments
  • vertices: (np.array) vertices output from Martini
  • terrain: (np.array) array of elevations
  • tile_size: (int) Original array size. Used to select the right values from the terrain array.
  • bounds: (List[float], default None) linearly rescale position values to this extent, expected to be [minx, miny, maxx, maxy]. If not provided, rescales to [0, 0, tile_size, tile_size].
  • flip_y: (bool, default False) Flip y coordinates. Can be useful when original data source is a PNG, since the origin of a PNG is the top left.
Returns
  • (np.array): Array with positions rescaled and including elevations
Example
from imageio import imread
from pymartini import decode_ele, Martini, rescale_positions

path = './test/data/terrarium.png'
png = imread(path)
terrain = decode_ele(png, 'mapbox')
martini = Martini(png.shape[0] + 1)
tile = martini.create_tile(terrain)
vertices, triangles = tile.get_mesh(10)

# Use mercantile to find the bounds in WGS84 of this tile
import mercantile
bounds = mercantile.bounds(mercantile.Tile(385, 803, 11))

# Rescale positions to WGS84
rescaled = rescale_positions(
    vertices,
    terrain,
    tile_size=png.shape[0],
    bounds=bounds,
    flip_y=True
)

Correctness

pymartini passes the (only) test case included in the original Martini JS library. I also wrote a few extra conformance tests to compare output by pymartini and Martini. I've found some small differences in float values at the end of the second step.

This second step, martini.create_tile(terrain), computes the maximum error of every possible triangle and accumulates them. Thus, small float errors appear to be magnified by the summation of errors into larger triangles. These errors appear to be within 1e-5 of the JS output. I'm guessing that this variance is greater than normal float rounding errors, due to this summation behavior.

These differences are larger when using 512px tiles compared to 256px tiles, which reinforces my hypothesis that the differences have something to do with small low-level float or bitwise operations differences between Python and JavaScript.

If you'd like to explore this in more detail, look at the Tile.update() in martini.pyx and the corresponding Martini code.

Benchmark

Preparation steps are about 3x faster in Python than in Node; generating the mesh is about 2x faster in Python than in Node.

JS (Node)

git clone https://github.com/mapbox/martini
cd martini
npm install
node -r esm bench.js
init tileset: 54.293ms
create tile: 17.307ms
mesh: 6.230ms
vertices: 9704, triangles: 19086
mesh 0: 43.181ms
mesh 1: 33.102ms
mesh 2: 30.735ms
mesh 3: 25.935ms
mesh 4: 20.643ms
mesh 5: 17.511ms
mesh 6: 15.066ms
mesh 7: 13.334ms
mesh 8: 11.180ms
mesh 9: 9.651ms
mesh 10: 9.240ms
mesh 11: 10.996ms
mesh 12: 7.520ms
mesh 13: 6.617ms
mesh 14: 5.860ms
mesh 15: 5.693ms
mesh 16: 4.907ms
mesh 17: 4.469ms
mesh 18: 4.267ms
mesh 19: 4.267ms
mesh 20: 3.619ms
20 meshes total: 290.256ms

Python

git clone https://github.com/kylebarron/pymartini
cd pymartini
pip install .
python bench.py
init tileset: 14.860ms
create tile: 5.862ms
mesh (max_error=30): 1.010ms
vertices: 9700.0, triangles: 19078.0
mesh 0: 18.350ms
mesh 1: 17.581ms
mesh 2: 15.245ms
mesh 3: 13.853ms
mesh 4: 11.284ms
mesh 5: 12.360ms
mesh 6: 8.293ms
mesh 7: 8.342ms
mesh 8: 7.166ms
mesh 9: 5.678ms
mesh 10: 5.886ms
mesh 11: 5.092ms
mesh 12: 3.732ms
mesh 13: 3.420ms
mesh 14: 3.524ms
mesh 15: 3.101ms
mesh 16: 2.892ms
mesh 17: 2.358ms
mesh 18: 2.250ms
mesh 19: 2.293ms
mesh 20: 2.281ms
20 meshes total: 155.559ms

License

This library is ported from Mapbox's Martini, which is licensed under the ISC License. My additions are licensed under the MIT license.

ISC License

Copyright (c) 2019, Mapbox

Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies.

THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.

Project details


Download files

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

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distributions

pymartini-0.2.1-pp36-pypy36_pp73-win32.whl (379.0 kB view details)

Uploaded PyPy Windows x86

pymartini-0.2.1-pp36-pypy36_pp73-manylinux2010_x86_64.whl (433.6 kB view details)

Uploaded PyPy manylinux: glibc 2.12+ x86-64

pymartini-0.2.1-pp36-pypy36_pp73-macosx_10_9_x86_64.whl (393.8 kB view details)

Uploaded PyPy macOS 10.9+ x86-64

pymartini-0.2.1-cp38-cp38-win_amd64.whl (429.3 kB view details)

Uploaded CPython 3.8 Windows x86-64

pymartini-0.2.1-cp38-cp38-win32.whl (400.3 kB view details)

Uploaded CPython 3.8 Windows x86

pymartini-0.2.1-cp38-cp38-manylinux2010_x86_64.whl (1.1 MB view details)

Uploaded CPython 3.8 manylinux: glibc 2.12+ x86-64

pymartini-0.2.1-cp38-cp38-manylinux2010_i686.whl (1.1 MB view details)

Uploaded CPython 3.8 manylinux: glibc 2.12+ i686

pymartini-0.2.1-cp38-cp38-manylinux1_x86_64.whl (1.1 MB view details)

Uploaded CPython 3.8

pymartini-0.2.1-cp38-cp38-manylinux1_i686.whl (1.1 MB view details)

Uploaded CPython 3.8

pymartini-0.2.1-cp38-cp38-macosx_10_9_x86_64.whl (431.6 kB view details)

Uploaded CPython 3.8 macOS 10.9+ x86-64

pymartini-0.2.1-cp37-cp37m-win_amd64.whl (426.9 kB view details)

Uploaded CPython 3.7m Windows x86-64

pymartini-0.2.1-cp37-cp37m-win32.whl (397.7 kB view details)

Uploaded CPython 3.7m Windows x86

pymartini-0.2.1-cp37-cp37m-manylinux2010_x86_64.whl (1.0 MB view details)

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

pymartini-0.2.1-cp37-cp37m-manylinux2010_i686.whl (989.8 kB view details)

Uploaded CPython 3.7m manylinux: glibc 2.12+ i686

pymartini-0.2.1-cp37-cp37m-manylinux1_x86_64.whl (1.0 MB view details)

Uploaded CPython 3.7m

pymartini-0.2.1-cp37-cp37m-manylinux1_i686.whl (989.8 kB view details)

Uploaded CPython 3.7m

pymartini-0.2.1-cp37-cp37m-macosx_10_9_x86_64.whl (432.1 kB view details)

Uploaded CPython 3.7m macOS 10.9+ x86-64

pymartini-0.2.1-cp36-cp36m-win_amd64.whl (426.8 kB view details)

Uploaded CPython 3.6m Windows x86-64

pymartini-0.2.1-cp36-cp36m-win32.whl (397.7 kB view details)

Uploaded CPython 3.6m Windows x86

pymartini-0.2.1-cp36-cp36m-manylinux2010_x86_64.whl (1.0 MB view details)

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

pymartini-0.2.1-cp36-cp36m-manylinux2010_i686.whl (991.2 kB view details)

Uploaded CPython 3.6m manylinux: glibc 2.12+ i686

pymartini-0.2.1-cp36-cp36m-manylinux1_x86_64.whl (1.0 MB view details)

Uploaded CPython 3.6m

pymartini-0.2.1-cp36-cp36m-manylinux1_i686.whl (991.2 kB view details)

Uploaded CPython 3.6m

pymartini-0.2.1-cp36-cp36m-macosx_10_9_x86_64.whl (434.0 kB view details)

Uploaded CPython 3.6m macOS 10.9+ x86-64

pymartini-0.2.1-cp35-cp35m-win_amd64.whl (424.2 kB view details)

Uploaded CPython 3.5m Windows x86-64

pymartini-0.2.1-cp35-cp35m-win32.whl (395.7 kB view details)

Uploaded CPython 3.5m Windows x86

pymartini-0.2.1-cp35-cp35m-manylinux2010_x86_64.whl (1.0 MB view details)

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

pymartini-0.2.1-cp35-cp35m-manylinux2010_i686.whl (981.8 kB view details)

Uploaded CPython 3.5m manylinux: glibc 2.12+ i686

pymartini-0.2.1-cp35-cp35m-manylinux1_x86_64.whl (1.0 MB view details)

Uploaded CPython 3.5m

pymartini-0.2.1-cp35-cp35m-manylinux1_i686.whl (981.8 kB view details)

Uploaded CPython 3.5m

pymartini-0.2.1-cp35-cp35m-macosx_10_9_x86_64.whl (427.9 kB view details)

Uploaded CPython 3.5m macOS 10.9+ x86-64

File details

Details for the file pymartini-0.2.1-pp36-pypy36_pp73-win32.whl.

File metadata

  • Download URL: pymartini-0.2.1-pp36-pypy36_pp73-win32.whl
  • Upload date:
  • Size: 379.0 kB
  • Tags: PyPy, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.46.0 CPython/3.7.7

File hashes

Hashes for pymartini-0.2.1-pp36-pypy36_pp73-win32.whl
Algorithm Hash digest
SHA256 c1a7efe8f4cb7e444af46867538e8af20c65bc10abd2036665d4e74f275c9dc6
MD5 a316cec4b5bbaa090cc76fe0af497b44
BLAKE2b-256 5e7dd51541040d9ce76a4ab821e914c3987a32d13794387bfc4464674ec7ef53

See more details on using hashes here.

File details

Details for the file pymartini-0.2.1-pp36-pypy36_pp73-manylinux2010_x86_64.whl.

File metadata

  • Download URL: pymartini-0.2.1-pp36-pypy36_pp73-manylinux2010_x86_64.whl
  • Upload date:
  • Size: 433.6 kB
  • Tags: PyPy, manylinux: glibc 2.12+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.46.0 CPython/3.7.7

File hashes

Hashes for pymartini-0.2.1-pp36-pypy36_pp73-manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 cb50c0c36afa27ffc637f5ee937e0ea13f28de3ff4cdda5e890c1979c5e7685c
MD5 ef89e2d61970fe6a28b5380eec889740
BLAKE2b-256 e0559754ee71bbecf7a24474cabcb887d5139b22d7c2d41d118bef24ffdefbcf

See more details on using hashes here.

File details

Details for the file pymartini-0.2.1-pp36-pypy36_pp73-manylinux1_x86_64.whl.

File metadata

  • Download URL: pymartini-0.2.1-pp36-pypy36_pp73-manylinux1_x86_64.whl
  • Upload date:
  • Size: 433.6 kB
  • Tags: PyPy
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.46.0 CPython/3.7.7

File hashes

Hashes for pymartini-0.2.1-pp36-pypy36_pp73-manylinux1_x86_64.whl
Algorithm Hash digest
SHA256 f4c0567530386475ea0b6751060349e3c0ab649a103640fb01218497d3073f87
MD5 3f3efc22745e7ba043df6c4872af8bdb
BLAKE2b-256 b613352abd88d6eae1267c9581246e0cabfcb0ba4ffba19fac4ba35ee95d02f6

See more details on using hashes here.

File details

Details for the file pymartini-0.2.1-pp36-pypy36_pp73-macosx_10_9_x86_64.whl.

File metadata

  • Download URL: pymartini-0.2.1-pp36-pypy36_pp73-macosx_10_9_x86_64.whl
  • Upload date:
  • Size: 393.8 kB
  • Tags: PyPy, macOS 10.9+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.46.0 CPython/3.7.7

File hashes

Hashes for pymartini-0.2.1-pp36-pypy36_pp73-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 73fe267372a9de39fefc2a9074d17fa58b648b967f349609de2dba557aff8245
MD5 006592997d0711cf0c23133d7073190b
BLAKE2b-256 0acfce0d307399a9f96b0da87e48a5ff6b6e6295e1b76431ed1e028a0abf5e90

See more details on using hashes here.

File details

Details for the file pymartini-0.2.1-cp38-cp38-win_amd64.whl.

File metadata

  • Download URL: pymartini-0.2.1-cp38-cp38-win_amd64.whl
  • Upload date:
  • Size: 429.3 kB
  • Tags: CPython 3.8, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.46.0 CPython/3.7.7

File hashes

Hashes for pymartini-0.2.1-cp38-cp38-win_amd64.whl
Algorithm Hash digest
SHA256 cc73ea788af31822a3bb72d9f2d06b99df4d41cfaf316bb7cda7e3fe738158a2
MD5 0c3346511b9d81eee986a089c3d4d1f4
BLAKE2b-256 83bbcb4c888a49f9476bacc9a33932085ace158fcbdf0c0f16ea2cf47c1ef6c6

See more details on using hashes here.

File details

Details for the file pymartini-0.2.1-cp38-cp38-win32.whl.

File metadata

  • Download URL: pymartini-0.2.1-cp38-cp38-win32.whl
  • Upload date:
  • Size: 400.3 kB
  • Tags: CPython 3.8, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.46.0 CPython/3.7.7

File hashes

Hashes for pymartini-0.2.1-cp38-cp38-win32.whl
Algorithm Hash digest
SHA256 1004b589a6e1650eb077ba7a8cb73635b22b833772864e6ddb9ef1d89e7cde37
MD5 999a27eba1764b6dcf2cc99d5f798a57
BLAKE2b-256 e93ace4b94ee6985932258e41cab640961131ef50529de956bfc77fcc873d1e6

See more details on using hashes here.

File details

Details for the file pymartini-0.2.1-cp38-cp38-manylinux2010_x86_64.whl.

File metadata

  • Download URL: pymartini-0.2.1-cp38-cp38-manylinux2010_x86_64.whl
  • Upload date:
  • Size: 1.1 MB
  • Tags: CPython 3.8, manylinux: glibc 2.12+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.46.0 CPython/3.7.7

File hashes

Hashes for pymartini-0.2.1-cp38-cp38-manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 0455cfd61ba95468051f61e3a5b02fbd82f4e5d45afc7b7fbb434fe3e4d61f78
MD5 45d404ba3371542a63a8a33415d40d72
BLAKE2b-256 5afe95d1a87169a273fdd2886b45e27de787044e124d5d724c00959f2bcda7e6

See more details on using hashes here.

File details

Details for the file pymartini-0.2.1-cp38-cp38-manylinux2010_i686.whl.

File metadata

  • Download URL: pymartini-0.2.1-cp38-cp38-manylinux2010_i686.whl
  • Upload date:
  • Size: 1.1 MB
  • Tags: CPython 3.8, manylinux: glibc 2.12+ i686
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.46.0 CPython/3.7.7

File hashes

Hashes for pymartini-0.2.1-cp38-cp38-manylinux2010_i686.whl
Algorithm Hash digest
SHA256 72fbadcd2d21fcd8c10a2b42581784d7d097d6cd1e3d03757d0f062fd0da61f4
MD5 c2755439346da927353a9cc625a72c98
BLAKE2b-256 f9c48212214f0d474fa1613bd4a31e5f1756a4811a8058b9b711b6033a66739b

See more details on using hashes here.

File details

Details for the file pymartini-0.2.1-cp38-cp38-manylinux1_x86_64.whl.

File metadata

  • Download URL: pymartini-0.2.1-cp38-cp38-manylinux1_x86_64.whl
  • Upload date:
  • Size: 1.1 MB
  • Tags: CPython 3.8
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.46.0 CPython/3.7.7

File hashes

Hashes for pymartini-0.2.1-cp38-cp38-manylinux1_x86_64.whl
Algorithm Hash digest
SHA256 c09abfff1e0c5a69d146159c2f8beba066f54684309f24f44789139d8510fdc0
MD5 8aadf8cf0db91bc5280a64c998e4e74d
BLAKE2b-256 4a02b086e81e737b3752377a0f48d6f86a980ed180a54c0c93a5a87983b7816b

See more details on using hashes here.

File details

Details for the file pymartini-0.2.1-cp38-cp38-manylinux1_i686.whl.

File metadata

  • Download URL: pymartini-0.2.1-cp38-cp38-manylinux1_i686.whl
  • Upload date:
  • Size: 1.1 MB
  • Tags: CPython 3.8
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.46.0 CPython/3.7.7

File hashes

Hashes for pymartini-0.2.1-cp38-cp38-manylinux1_i686.whl
Algorithm Hash digest
SHA256 3b2053aa6d90a66fca2a3c321cbbac17727ee4ad47a7524eabb29359d3333782
MD5 ba1e5f886f903410bb7b667049190667
BLAKE2b-256 7d6f32ae3c2eead6ae119cd46d0fef4891cdd2fdb244b41fbb28a29d637b3b2f

See more details on using hashes here.

File details

Details for the file pymartini-0.2.1-cp38-cp38-macosx_10_9_x86_64.whl.

File metadata

  • Download URL: pymartini-0.2.1-cp38-cp38-macosx_10_9_x86_64.whl
  • Upload date:
  • Size: 431.6 kB
  • Tags: CPython 3.8, macOS 10.9+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.46.0 CPython/3.7.7

File hashes

Hashes for pymartini-0.2.1-cp38-cp38-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 336521466baab10be82b35facf030c80ff142d709b9ff28f93a61224b3e8e16c
MD5 7e73840eb843147f74750044d3153969
BLAKE2b-256 021575b60bd498a6d9401da4ebdd75b5228121ead4b009335a9e997e419e2cbf

See more details on using hashes here.

File details

Details for the file pymartini-0.2.1-cp37-cp37m-win_amd64.whl.

File metadata

  • Download URL: pymartini-0.2.1-cp37-cp37m-win_amd64.whl
  • Upload date:
  • Size: 426.9 kB
  • Tags: CPython 3.7m, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.46.0 CPython/3.7.7

File hashes

Hashes for pymartini-0.2.1-cp37-cp37m-win_amd64.whl
Algorithm Hash digest
SHA256 358dddb09fbcaa63ba08a46b147f9a79e5a53603dd7bf82747c4d489496e5acb
MD5 8af83ee050e692631d06cac1a26da961
BLAKE2b-256 de7d85c31f06ec58dcef089e8dd4b9a004322622e09675976876c87905495cb8

See more details on using hashes here.

File details

Details for the file pymartini-0.2.1-cp37-cp37m-win32.whl.

File metadata

  • Download URL: pymartini-0.2.1-cp37-cp37m-win32.whl
  • Upload date:
  • Size: 397.7 kB
  • Tags: CPython 3.7m, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.46.0 CPython/3.7.7

File hashes

Hashes for pymartini-0.2.1-cp37-cp37m-win32.whl
Algorithm Hash digest
SHA256 5d2b35e8386d1dbb54ff08ac7c87a91892cd50087e05c55f1677be71dea83e1d
MD5 4854c9881a8dcb68c6d16511a2c9aac5
BLAKE2b-256 7dd2fafc8da80e239962f8b0d712b8484af14a4119b46ce161f4b7523f10f9e3

See more details on using hashes here.

File details

Details for the file pymartini-0.2.1-cp37-cp37m-manylinux2010_x86_64.whl.

File metadata

  • Download URL: pymartini-0.2.1-cp37-cp37m-manylinux2010_x86_64.whl
  • Upload date:
  • Size: 1.0 MB
  • Tags: CPython 3.7m, manylinux: glibc 2.12+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.46.0 CPython/3.7.7

File hashes

Hashes for pymartini-0.2.1-cp37-cp37m-manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 0b2ff121ed54e1cdd24291181af252329da231031f89346ab5772754d0b7c32b
MD5 2fbe454727afb242b9880f709cb94b57
BLAKE2b-256 25d7b63868c9025717fa6d90d11b3e45a2cc9f101d7bf15601f7f3f42a78a795

See more details on using hashes here.

File details

Details for the file pymartini-0.2.1-cp37-cp37m-manylinux2010_i686.whl.

File metadata

  • Download URL: pymartini-0.2.1-cp37-cp37m-manylinux2010_i686.whl
  • Upload date:
  • Size: 989.8 kB
  • Tags: CPython 3.7m, manylinux: glibc 2.12+ i686
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.46.0 CPython/3.7.7

File hashes

Hashes for pymartini-0.2.1-cp37-cp37m-manylinux2010_i686.whl
Algorithm Hash digest
SHA256 cac9184e309030c59d4760beb8baa794b8a2d5a59aa7173419791a19cd92146a
MD5 c4ca5a592349b4c048f7bcc894e5d3b9
BLAKE2b-256 a72eca8f1c2f21ef46c3fe478d63534493c111e0e48ba76213c366b00d5a410c

See more details on using hashes here.

File details

Details for the file pymartini-0.2.1-cp37-cp37m-manylinux1_x86_64.whl.

File metadata

  • Download URL: pymartini-0.2.1-cp37-cp37m-manylinux1_x86_64.whl
  • Upload date:
  • Size: 1.0 MB
  • Tags: CPython 3.7m
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.46.0 CPython/3.7.7

File hashes

Hashes for pymartini-0.2.1-cp37-cp37m-manylinux1_x86_64.whl
Algorithm Hash digest
SHA256 a590c6a1602bad284112bc218d993fc8db39cd5d81686974f3bc88ccd9c62d4e
MD5 8a348a20894320d36aaa5962e1de5a59
BLAKE2b-256 14b7bd59670ecd15aab98c0953a426b74113acb092ad23029f1f9239452edee2

See more details on using hashes here.

File details

Details for the file pymartini-0.2.1-cp37-cp37m-manylinux1_i686.whl.

File metadata

  • Download URL: pymartini-0.2.1-cp37-cp37m-manylinux1_i686.whl
  • Upload date:
  • Size: 989.8 kB
  • Tags: CPython 3.7m
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.46.0 CPython/3.7.7

File hashes

Hashes for pymartini-0.2.1-cp37-cp37m-manylinux1_i686.whl
Algorithm Hash digest
SHA256 a48c7e5a302ea9a79aae9c3232fef0f2b264df4e2cd5156401fd934fd5707595
MD5 f42d3db1332c0ad7f0cda5c81ef1d0f5
BLAKE2b-256 76aef9fac84ff20918f297643dd596399334c75137b3cb11cd1f82b28d5271c9

See more details on using hashes here.

File details

Details for the file pymartini-0.2.1-cp37-cp37m-macosx_10_9_x86_64.whl.

File metadata

  • Download URL: pymartini-0.2.1-cp37-cp37m-macosx_10_9_x86_64.whl
  • Upload date:
  • Size: 432.1 kB
  • Tags: CPython 3.7m, macOS 10.9+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.46.0 CPython/3.7.7

File hashes

Hashes for pymartini-0.2.1-cp37-cp37m-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 da99e15f1b876764aa509e1066e2ad4204292da18c9e4ad05d7b54cb35bc30ea
MD5 ffc3ccc72848d429ebb9822efd820dab
BLAKE2b-256 bf0fcb0b977de4ff4212735931d104af7feb2353c506ae00825042cd9d4c6483

See more details on using hashes here.

File details

Details for the file pymartini-0.2.1-cp36-cp36m-win_amd64.whl.

File metadata

  • Download URL: pymartini-0.2.1-cp36-cp36m-win_amd64.whl
  • Upload date:
  • Size: 426.8 kB
  • Tags: CPython 3.6m, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.46.0 CPython/3.7.7

File hashes

Hashes for pymartini-0.2.1-cp36-cp36m-win_amd64.whl
Algorithm Hash digest
SHA256 27a428330256a85c77fb06c7259c05450c3f058af0920dc1dc1fc0d6a22bbfff
MD5 c784a0b36f8b9fa3721c56eb3793e2db
BLAKE2b-256 b14719a95fadc65779a31e99a297ac3ba487f6214e4fdd5014d9bc2190142518

See more details on using hashes here.

File details

Details for the file pymartini-0.2.1-cp36-cp36m-win32.whl.

File metadata

  • Download URL: pymartini-0.2.1-cp36-cp36m-win32.whl
  • Upload date:
  • Size: 397.7 kB
  • Tags: CPython 3.6m, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.46.0 CPython/3.7.7

File hashes

Hashes for pymartini-0.2.1-cp36-cp36m-win32.whl
Algorithm Hash digest
SHA256 c46b6cc5bacf6032d8ed16c128822a35109c13cc3aafe5db416534c7110ade6c
MD5 11ec89c68bc810489745d50e82254df2
BLAKE2b-256 024155392c9b6738026edb6b4f7f1817c8a1d55c90b69775b52d2161b4aa15b5

See more details on using hashes here.

File details

Details for the file pymartini-0.2.1-cp36-cp36m-manylinux2010_x86_64.whl.

File metadata

  • Download URL: pymartini-0.2.1-cp36-cp36m-manylinux2010_x86_64.whl
  • Upload date:
  • Size: 1.0 MB
  • Tags: CPython 3.6m, manylinux: glibc 2.12+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.46.0 CPython/3.7.7

File hashes

Hashes for pymartini-0.2.1-cp36-cp36m-manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 21ad3b5c55e5c512b99cd0be278c81d77e2b79ad4f2f1c5a55911e33b3be561b
MD5 4545679cb1686dbc78a3fd8fc14c35bf
BLAKE2b-256 f6bce22d282a0a66a4a513281a801b3a354225703f48aa3abef2425331f1e9fb

See more details on using hashes here.

File details

Details for the file pymartini-0.2.1-cp36-cp36m-manylinux2010_i686.whl.

File metadata

  • Download URL: pymartini-0.2.1-cp36-cp36m-manylinux2010_i686.whl
  • Upload date:
  • Size: 991.2 kB
  • Tags: CPython 3.6m, manylinux: glibc 2.12+ i686
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.46.0 CPython/3.7.7

File hashes

Hashes for pymartini-0.2.1-cp36-cp36m-manylinux2010_i686.whl
Algorithm Hash digest
SHA256 53427ab6b9d21866e18ebaf737e556a8f33a37d43638b3119e91a57ae254b3b8
MD5 32af302f316fb1873041eaf885768633
BLAKE2b-256 aac0d5b02da636d580c7b143e0043ea341c25b2dfb0f83671c6b3ddb85c9d84a

See more details on using hashes here.

File details

Details for the file pymartini-0.2.1-cp36-cp36m-manylinux1_x86_64.whl.

File metadata

  • Download URL: pymartini-0.2.1-cp36-cp36m-manylinux1_x86_64.whl
  • Upload date:
  • Size: 1.0 MB
  • Tags: CPython 3.6m
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.46.0 CPython/3.7.7

File hashes

Hashes for pymartini-0.2.1-cp36-cp36m-manylinux1_x86_64.whl
Algorithm Hash digest
SHA256 07826965511b474c79def1e9a2ed39b03dbf7e84f0143c18bb4afb73693d7d61
MD5 e98f45b90644d468dcc378ee9eadca0b
BLAKE2b-256 eae1450074d17845adc7417c3f61e46e436ff9fc4947becabcb1c3793cebecfa

See more details on using hashes here.

File details

Details for the file pymartini-0.2.1-cp36-cp36m-manylinux1_i686.whl.

File metadata

  • Download URL: pymartini-0.2.1-cp36-cp36m-manylinux1_i686.whl
  • Upload date:
  • Size: 991.2 kB
  • Tags: CPython 3.6m
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.46.0 CPython/3.7.7

File hashes

Hashes for pymartini-0.2.1-cp36-cp36m-manylinux1_i686.whl
Algorithm Hash digest
SHA256 10d0acbeda4f5b94eaf39d2fd3bd7e5affb0ac63136553f750faac81cf7cc47f
MD5 2d203d915bc33196b2c7749758da2786
BLAKE2b-256 d079ac6fde8f0251d5c01490bd20f912493254a87bff5833f6d8eafde4340581

See more details on using hashes here.

File details

Details for the file pymartini-0.2.1-cp36-cp36m-macosx_10_9_x86_64.whl.

File metadata

  • Download URL: pymartini-0.2.1-cp36-cp36m-macosx_10_9_x86_64.whl
  • Upload date:
  • Size: 434.0 kB
  • Tags: CPython 3.6m, macOS 10.9+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.46.0 CPython/3.7.7

File hashes

Hashes for pymartini-0.2.1-cp36-cp36m-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 3841f59fc40cf12a999454d1c77b5e06422b74c3f2b848babce1cf3ce778efc5
MD5 ab484460bb1e4f832baf634df2a58357
BLAKE2b-256 16edd3f2719402e066973b461e08d4b66341ecd18b6154c6cacb3d107adbf7ea

See more details on using hashes here.

File details

Details for the file pymartini-0.2.1-cp35-cp35m-win_amd64.whl.

File metadata

  • Download URL: pymartini-0.2.1-cp35-cp35m-win_amd64.whl
  • Upload date:
  • Size: 424.2 kB
  • Tags: CPython 3.5m, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.46.0 CPython/3.7.7

File hashes

Hashes for pymartini-0.2.1-cp35-cp35m-win_amd64.whl
Algorithm Hash digest
SHA256 41f9836c2062ab2247489c7b4448af33f1da166314fb063c5187de3f32eaf1bd
MD5 cec47ccc5488b36adcbb5ae47ded1723
BLAKE2b-256 3bd5d802d5ecc0171f7a33edfc8eaf8cc2293f231349f17aae1a80775eb28803

See more details on using hashes here.

File details

Details for the file pymartini-0.2.1-cp35-cp35m-win32.whl.

File metadata

  • Download URL: pymartini-0.2.1-cp35-cp35m-win32.whl
  • Upload date:
  • Size: 395.7 kB
  • Tags: CPython 3.5m, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.46.0 CPython/3.7.7

File hashes

Hashes for pymartini-0.2.1-cp35-cp35m-win32.whl
Algorithm Hash digest
SHA256 fab4d2365fed471f883658d7df38ab6d3b49187f189b5a00a1b87f8323e4f142
MD5 22df22cc7ef4b1c7bc39164178f21ed3
BLAKE2b-256 43aaf2b453d239ad243baafd665410eb105b7006dced67bb32f06dbc4c340245

See more details on using hashes here.

File details

Details for the file pymartini-0.2.1-cp35-cp35m-manylinux2010_x86_64.whl.

File metadata

  • Download URL: pymartini-0.2.1-cp35-cp35m-manylinux2010_x86_64.whl
  • Upload date:
  • Size: 1.0 MB
  • Tags: CPython 3.5m, manylinux: glibc 2.12+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.46.0 CPython/3.7.7

File hashes

Hashes for pymartini-0.2.1-cp35-cp35m-manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 b364b2bdf6bc4e1aa3f047f576e83119e3ddc29d990668512f585a7aab23402d
MD5 3c4be395c70aa4741ac4779bb8fb8ff4
BLAKE2b-256 d062682aecd8fb82dbb73daa2db19b80ed138407cbfb5a3355b736d8540a366f

See more details on using hashes here.

File details

Details for the file pymartini-0.2.1-cp35-cp35m-manylinux2010_i686.whl.

File metadata

  • Download URL: pymartini-0.2.1-cp35-cp35m-manylinux2010_i686.whl
  • Upload date:
  • Size: 981.8 kB
  • Tags: CPython 3.5m, manylinux: glibc 2.12+ i686
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.46.0 CPython/3.7.7

File hashes

Hashes for pymartini-0.2.1-cp35-cp35m-manylinux2010_i686.whl
Algorithm Hash digest
SHA256 724fdbcc9e3938ceb7ccb65f470b82daff248c8427818cfdbd6395314a15700a
MD5 f2b19bd49e866622a86effd5b24df405
BLAKE2b-256 73a406f4ef86ad2924ede3fd2a6102ff15a832378bb2d38274e37af48e95e380

See more details on using hashes here.

File details

Details for the file pymartini-0.2.1-cp35-cp35m-manylinux1_x86_64.whl.

File metadata

  • Download URL: pymartini-0.2.1-cp35-cp35m-manylinux1_x86_64.whl
  • Upload date:
  • Size: 1.0 MB
  • Tags: CPython 3.5m
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.46.0 CPython/3.7.7

File hashes

Hashes for pymartini-0.2.1-cp35-cp35m-manylinux1_x86_64.whl
Algorithm Hash digest
SHA256 e09e73132e2be3ac34a95ea897c82460c8e87c35f9d9fcf31443af5988b5cdc6
MD5 b7f7ff433729ed311d78f08d650829d1
BLAKE2b-256 6f4e044c5e216576aa9acc28276676186e9a501e009232a9db707613a3860203

See more details on using hashes here.

File details

Details for the file pymartini-0.2.1-cp35-cp35m-manylinux1_i686.whl.

File metadata

  • Download URL: pymartini-0.2.1-cp35-cp35m-manylinux1_i686.whl
  • Upload date:
  • Size: 981.8 kB
  • Tags: CPython 3.5m
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.46.0 CPython/3.7.7

File hashes

Hashes for pymartini-0.2.1-cp35-cp35m-manylinux1_i686.whl
Algorithm Hash digest
SHA256 9a30ccfc7e753df9466f53c3b2dd05fbe2cf44a12b17594de93de5a8b2595f99
MD5 8883cd74b671655589bae2a636f7863c
BLAKE2b-256 72ba9b1b8bef4206ab71f290b7fe36ef4a911482c9d001fc91d319b849db75fd

See more details on using hashes here.

File details

Details for the file pymartini-0.2.1-cp35-cp35m-macosx_10_9_x86_64.whl.

File metadata

  • Download URL: pymartini-0.2.1-cp35-cp35m-macosx_10_9_x86_64.whl
  • Upload date:
  • Size: 427.9 kB
  • Tags: CPython 3.5m, macOS 10.9+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.46.0 CPython/3.7.7

File hashes

Hashes for pymartini-0.2.1-cp35-cp35m-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 9eae40e212bc0004d901560bda277a2db11faac0e42844dafa8d5d2e9137b410
MD5 50fda07defb0016699eae1ab793f82f5
BLAKE2b-256 6ce62dfc3713490fc8ef702e6f78ee7aee2c6edeb86ca357c639ca1ec8849770

See more details on using hashes here.

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