Skip to main content

A wrapper for hmm

Project description

pydelatin

A Python wrapper of hmm (of which Delatin is a port) for fast terrain mesh generation.

A screenshot of Glacier National Park taken from the demo. The mesh is created using pydelatin, encoded using quantized-mesh-encoder, served on-demand using dem-tiler, and rendered with deck.gl.

Install

With pip:

pip install pydelatin

or with Conda:

conda install -c conda-forge pydelatin

On Windows, installing via Conda is strongly recommended.

If installing with pip on Windows, glm is a prerequisite for building from source. Open an issue if you'd like to help package binary wheels for Windows.

Using

Example

from pydelatin import Delatin

tin = Delatin(terrain, width, height)
# Mesh vertices
tin.vertices
# Mesh triangles
tin.triangles

API

The API is similar to that of hmm.

Additionally I include a helper function: decode_ele, to decode a Mapbox Terrain RGB or Terrarium PNG array to elevations.

Delatin

Arguments
  • arr (numpy ndarray): data array. If a 2D array, dimensions are expected to be (height, width). If a 1D array, height and width parameters must be passed, and the array is assumed to be in C order.
  • height (int, default: None): height of array; required when arr is not 2D
  • width (int, default: None): width of array; required when arr is not 2D
  • z_scale (float, default: 1): z scale relative to x & y
  • z_exag (float, default: 1): z exaggeration
  • max_error (float, default: 0.001): maximum triangulation error
  • max_triangles (int, default: None): maximum number of triangles
  • max_points (int, default: None): maximum number of vertices
  • base_height (float, default: 0): solid base height
  • level (bool, default: False): auto level input to full grayscale range
  • invert (bool, default: False): invert heightmap
  • blur (int, default: 0): gaussian blur sigma
  • gamma (float, default: 0): gamma curve exponent
  • border_size (int, default: 0): border size in pixels
  • border_height (float, default: 1): border z height
Attributes
  • vertices (ndarray of shape (-1, 3)): the interleaved 3D coordinates of each vertex, e.g. [[x0, y0, z0], [x1, y1, z1], ...].
  • triangles (ndarray of shape (-1, 3)): represents indices within the vertices array. So [0, 1, 3, ...] would use the first, second, and fourth vertices within the vertices array as a single triangle.
  • error (float): the maximum error of the mesh.

util.rescale_positions

A helper function to rescale the vertices output to a new bounding box. Returns an ndarray of shape (-1, 3) with positions rescaled. Each row represents a single 3D point.

Arguments
  • vertices: (np.ndarray) vertices output from Delatin
  • bounds: (Tuple[float]) linearly rescale position values to this extent. Expected to be [minx, miny, maxx, maxy].
  • flip_y: (bool, default False) Flip y coordinates. Can be useful since images' coordinate origin is in the top left.

Saving to mesh formats

Quantized Mesh

A common mesh format for the web is the Quantized Mesh format, which is supported in Cesium and deck.gl (via loaders.gl). You can use quantized-mesh-encoder to save in this format:

import quantized_mesh_encoder
from pydelatin import Delatin
from pydelatin.util import rescale_positions

tin = Delatin(terrain, max_error=30)
vertices, triangles = tin.vertices, tin.triangles

# Rescale vertices linearly from pixel units to world coordinates
rescaled_vertices = rescale_positions(vertices, bounds)

with open('output.terrain', 'wb') as f:
    quantized_mesh_encoder.encode(f, rescaled_vertices, triangles)

Meshio

Alternatively, you can save to a variety of mesh formats using meshio:

from pydelatin import Delatin
import meshio

tin = Delatin(terrain, max_error=30)
vertices, triangles = tin.vertices, tin.triangles

cells = [("triangle", triangles)]
mesh = meshio.Mesh(vertices, cells)
# Example output format
# Refer to meshio documentation
mesh.write('foo.vtk')

Martini or Delatin?

Two popular algorithms for terrain mesh generation are the "Martini" algorithm, found in the JavaScript martini library and the Python pymartini library, and the "Delatin" algorithm, found in the C++ hmm library, this Python pydelatin library, and the JavaScript delatin library.

Which to use?

For most purposes, use pydelatin over pymartini. A good breakdown from a Martini issue:

Martini:

  • Only works on square 2^n+1 x 2^n+1 grids.
  • Generates a hierarchy of meshes (pick arbitrary detail after a single run)
  • Optimized for meshing speed rather than quality.

Delatin:

  • Works on arbitrary raster grids.
  • Generates a single mesh for a particular detail.
  • Optimized for quality (as few triangles as possible for a given error).

Benchmark

The following uses the same dataset as the pymartini benchmarks, a 512x512 pixel heightmap of Mt. Fuji.

For the 30-meter mesh, pydelatin is 25% slower than pymartini, but the mesh is much more efficient: it has 40% fewer vertices and triangles.

pydelatin is 4-5x faster than the JavaScript delatin package.

Python

git clone https://github.com/kylebarron/pydelatin
cd pydelatin
pip install '.[test]'
python bench.py
mesh (max_error=30m): 27.322ms
vertices: 5668, triangles: 11140

mesh (max_error=1m): 282.946ms
mesh (max_error=2m): 215.839ms
mesh (max_error=3m): 163.424ms
mesh (max_error=4m): 127.203ms
mesh (max_error=5m): 106.596ms
mesh (max_error=6m): 91.868ms
mesh (max_error=7m): 82.572ms
mesh (max_error=8m): 74.335ms
mesh (max_error=9m): 65.893ms
mesh (max_error=10m): 60.999ms
mesh (max_error=11m): 55.213ms
mesh (max_error=12m): 54.475ms
mesh (max_error=13m): 48.662ms
mesh (max_error=14m): 47.029ms
mesh (max_error=15m): 44.517ms
mesh (max_error=16m): 42.059ms
mesh (max_error=17m): 39.699ms
mesh (max_error=18m): 37.657ms
mesh (max_error=19m): 36.333ms
mesh (max_error=20m): 34.131ms

JS (Node)

This benchmarks against the delatin JavaScript module.

git clone https://github.com/kylebarron/pydelatin
cd test/bench_js/
yarn
wget https://raw.githubusercontent.com/mapbox/delatin/master/index.js
node -r esm bench.js
mesh (max_error=30m): 143.038ms
vertices: 5668
triangles: 11140

mesh (max_error=0m): 1169.226ms
mesh (max_error=1m): 917.290ms
mesh (max_error=2m): 629.776ms
mesh (max_error=3m): 476.958ms
mesh (max_error=4m): 352.907ms
mesh (max_error=5m): 290.946ms
mesh (max_error=6m): 240.556ms
mesh (max_error=7m): 234.181ms
mesh (max_error=8m): 188.273ms
mesh (max_error=9m): 162.743ms
mesh (max_error=10m): 145.734ms
mesh (max_error=11m): 130.119ms
mesh (max_error=12m): 119.865ms
mesh (max_error=13m): 114.645ms
mesh (max_error=14m): 101.390ms
mesh (max_error=15m): 100.065ms
mesh (max_error=16m): 96.247ms
mesh (max_error=17m): 89.508ms
mesh (max_error=18m): 85.754ms
mesh (max_error=19m): 79.838ms
mesh (max_error=20m): 75.607ms

License

This package wraps @fogleman's hmm, a C++ library that is also MIT-licensed.

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

pydelatin-0.2.8.tar.gz (99.5 kB view details)

Uploaded Source

Built Distributions

pydelatin-0.2.8-cp313-cp313-musllinux_1_2_x86_64.whl (1.2 MB view details)

Uploaded CPython 3.13 musllinux: musl 1.2+ x86-64

pydelatin-0.2.8-cp313-cp313-musllinux_1_2_i686.whl (1.3 MB view details)

Uploaded CPython 3.13 musllinux: musl 1.2+ i686

pydelatin-0.2.8-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (225.2 kB view details)

Uploaded CPython 3.13 manylinux: glibc 2.17+ x86-64

pydelatin-0.2.8-cp313-cp313-macosx_11_0_arm64.whl (171.0 kB view details)

Uploaded CPython 3.13 macOS 11.0+ ARM64

pydelatin-0.2.8-cp313-cp313-macosx_10_13_x86_64.whl (185.5 kB view details)

Uploaded CPython 3.13 macOS 10.13+ x86-64

pydelatin-0.2.8-cp312-cp312-musllinux_1_2_x86_64.whl (1.2 MB view details)

Uploaded CPython 3.12 musllinux: musl 1.2+ x86-64

pydelatin-0.2.8-cp312-cp312-musllinux_1_2_i686.whl (1.3 MB view details)

Uploaded CPython 3.12 musllinux: musl 1.2+ i686

pydelatin-0.2.8-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (225.3 kB view details)

Uploaded CPython 3.12 manylinux: glibc 2.17+ x86-64

pydelatin-0.2.8-cp312-cp312-macosx_11_0_arm64.whl (171.0 kB view details)

Uploaded CPython 3.12 macOS 11.0+ ARM64

pydelatin-0.2.8-cp312-cp312-macosx_10_9_x86_64.whl (183.8 kB view details)

Uploaded CPython 3.12 macOS 10.9+ x86-64

pydelatin-0.2.8-cp311-cp311-musllinux_1_2_x86_64.whl (1.2 MB view details)

Uploaded CPython 3.11 musllinux: musl 1.2+ x86-64

pydelatin-0.2.8-cp311-cp311-musllinux_1_2_i686.whl (1.3 MB view details)

Uploaded CPython 3.11 musllinux: musl 1.2+ i686

pydelatin-0.2.8-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (224.9 kB view details)

Uploaded CPython 3.11 manylinux: glibc 2.17+ x86-64

pydelatin-0.2.8-cp311-cp311-macosx_11_0_arm64.whl (172.2 kB view details)

Uploaded CPython 3.11 macOS 11.0+ ARM64

pydelatin-0.2.8-cp311-cp311-macosx_10_9_x86_64.whl (184.8 kB view details)

Uploaded CPython 3.11 macOS 10.9+ x86-64

pydelatin-0.2.8-cp310-cp310-musllinux_1_2_x86_64.whl (1.2 MB view details)

Uploaded CPython 3.10 musllinux: musl 1.2+ x86-64

pydelatin-0.2.8-cp310-cp310-musllinux_1_2_i686.whl (1.3 MB view details)

Uploaded CPython 3.10 musllinux: musl 1.2+ i686

pydelatin-0.2.8-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (223.9 kB view details)

Uploaded CPython 3.10 manylinux: glibc 2.17+ x86-64

pydelatin-0.2.8-cp310-cp310-macosx_11_0_arm64.whl (171.2 kB view details)

Uploaded CPython 3.10 macOS 11.0+ ARM64

pydelatin-0.2.8-cp310-cp310-macosx_10_9_x86_64.whl (183.4 kB view details)

Uploaded CPython 3.10 macOS 10.9+ x86-64

pydelatin-0.2.8-cp39-cp39-musllinux_1_2_x86_64.whl (1.2 MB view details)

Uploaded CPython 3.9 musllinux: musl 1.2+ x86-64

pydelatin-0.2.8-cp39-cp39-musllinux_1_2_i686.whl (1.3 MB view details)

Uploaded CPython 3.9 musllinux: musl 1.2+ i686

pydelatin-0.2.8-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (224.0 kB view details)

Uploaded CPython 3.9 manylinux: glibc 2.17+ x86-64

pydelatin-0.2.8-cp39-cp39-macosx_11_0_arm64.whl (171.3 kB view details)

Uploaded CPython 3.9 macOS 11.0+ ARM64

pydelatin-0.2.8-cp39-cp39-macosx_10_9_x86_64.whl (183.5 kB view details)

Uploaded CPython 3.9 macOS 10.9+ x86-64

pydelatin-0.2.8-cp38-cp38-musllinux_1_2_x86_64.whl (1.2 MB view details)

Uploaded CPython 3.8 musllinux: musl 1.2+ x86-64

pydelatin-0.2.8-cp38-cp38-musllinux_1_2_i686.whl (1.3 MB view details)

Uploaded CPython 3.8 musllinux: musl 1.2+ i686

pydelatin-0.2.8-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (223.7 kB view details)

Uploaded CPython 3.8 manylinux: glibc 2.17+ x86-64

pydelatin-0.2.8-cp38-cp38-macosx_11_0_arm64.whl (171.0 kB view details)

Uploaded CPython 3.8 macOS 11.0+ ARM64

pydelatin-0.2.8-cp38-cp38-macosx_10_9_x86_64.whl (183.3 kB view details)

Uploaded CPython 3.8 macOS 10.9+ x86-64

pydelatin-0.2.8-cp37-cp37m-musllinux_1_2_x86_64.whl (1.2 MB view details)

Uploaded CPython 3.7m musllinux: musl 1.2+ x86-64

pydelatin-0.2.8-cp37-cp37m-musllinux_1_2_i686.whl (1.3 MB view details)

Uploaded CPython 3.7m musllinux: musl 1.2+ i686

pydelatin-0.2.8-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (226.1 kB view details)

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

pydelatin-0.2.8-cp37-cp37m-macosx_10_9_x86_64.whl (182.6 kB view details)

Uploaded CPython 3.7m macOS 10.9+ x86-64

pydelatin-0.2.8-cp36-cp36m-musllinux_1_2_x86_64.whl (1.2 MB view details)

Uploaded CPython 3.6m musllinux: musl 1.2+ x86-64

pydelatin-0.2.8-cp36-cp36m-musllinux_1_2_i686.whl (1.3 MB view details)

Uploaded CPython 3.6m musllinux: musl 1.2+ i686

pydelatin-0.2.8-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (225.7 kB view details)

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

pydelatin-0.2.8-cp36-cp36m-macosx_10_9_x86_64.whl (182.0 kB view details)

Uploaded CPython 3.6m macOS 10.9+ x86-64

File details

Details for the file pydelatin-0.2.8.tar.gz.

File metadata

  • Download URL: pydelatin-0.2.8.tar.gz
  • Upload date:
  • Size: 99.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.0 CPython/3.12.5

File hashes

Hashes for pydelatin-0.2.8.tar.gz
Algorithm Hash digest
SHA256 3703dd37fc3fb5a2fc1ec681c530ccc95639885a93a5506fe057aed77d81fe6a
MD5 179f53559e2af7b488ff388f61882f6e
BLAKE2b-256 bb81166417a6ddc3cbe63bbe0aacea0fdb2dd369b9638d70d9d793dfca365155

See more details on using hashes here.

File details

Details for the file pydelatin-0.2.8-cp313-cp313-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for pydelatin-0.2.8-cp313-cp313-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 65ac6e5fb1b6367193a39a839e937acf536243ebcb79dbfe6b75c024698bb118
MD5 f41093331f2e4998fc540d95e363a80f
BLAKE2b-256 ab4fffee7ae67dae96bdbcfc08c01070ad813fa80a5ca626ab89472606333b12

See more details on using hashes here.

File details

Details for the file pydelatin-0.2.8-cp313-cp313-musllinux_1_2_i686.whl.

File metadata

File hashes

Hashes for pydelatin-0.2.8-cp313-cp313-musllinux_1_2_i686.whl
Algorithm Hash digest
SHA256 99b927b88cd882eb6904dcb215ca8e6c58f53356a67dba7673893e4552cbaaac
MD5 60e6e08ad2a738d636e2c9010ad55cfc
BLAKE2b-256 7894700e6196ac5c776035204861481ebaf5d6a5190872e00a8de26b5bb24d19

See more details on using hashes here.

File details

Details for the file pydelatin-0.2.8-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for pydelatin-0.2.8-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 2d7d8135acd71f3e54f4a9a35537b40a3fcc7f0b070ff4303e85d672a694a787
MD5 913ab339818eea9526c35a10483fafbc
BLAKE2b-256 1fe8a7d82891260175fd3dd8e75205ed65321b13feaaefcd51a5489987a57134

See more details on using hashes here.

File details

Details for the file pydelatin-0.2.8-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pydelatin-0.2.8-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 5ff79e1182f465cb579c6e78c04dccbe5338ce58b647fa33b71ca2684091d595
MD5 c5e814550efe210f9b2d3094ee1ddd32
BLAKE2b-256 d20bb3bbc89aad57b68a13e6ea64c5625d742d4a2aedd84a3b6c1094652fa1f5

See more details on using hashes here.

File details

Details for the file pydelatin-0.2.8-cp313-cp313-macosx_10_13_x86_64.whl.

File metadata

File hashes

Hashes for pydelatin-0.2.8-cp313-cp313-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 ebdf460fda9b0ca6391929d3137e3d37e8cb356bf18d051608e02353a2463a7a
MD5 606a52c808452d0ef0c578f632673d0e
BLAKE2b-256 bf345c0110cbdae4f6942fc5f46202c29d5486ddf0d7bdfa601e8f68184710b6

See more details on using hashes here.

File details

Details for the file pydelatin-0.2.8-cp312-cp312-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for pydelatin-0.2.8-cp312-cp312-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 ff16fe21870833dacc39e4dd04dfba6a1667c6b2fc8581288a00cc44145d15e2
MD5 0eeba4aa8926e9a386a2e08d22f34739
BLAKE2b-256 12009da2c7ea815c6453a923763d6e1df79227e1edc61922192b060d2486094b

See more details on using hashes here.

File details

Details for the file pydelatin-0.2.8-cp312-cp312-musllinux_1_2_i686.whl.

File metadata

File hashes

Hashes for pydelatin-0.2.8-cp312-cp312-musllinux_1_2_i686.whl
Algorithm Hash digest
SHA256 6fd16c27551259789cb016134c9e858996f7d30aac5ec61914459375e75f0973
MD5 106809201c2405666b37d28ab2f40762
BLAKE2b-256 e29dba005417b53d56deaab51148be176fe76f59a5b0dbd52c4c6b5b29f2121a

See more details on using hashes here.

File details

Details for the file pydelatin-0.2.8-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for pydelatin-0.2.8-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 787068472a6c461c4da78f35ac65e88facb70650b359604cf30519c81cb31cd2
MD5 2e7138c3e826742658b5bf4593d20144
BLAKE2b-256 d02b9cd09d8b2d31ab969e3ce17f788441bb2d7ef1ab460ebb643310186bb8db

See more details on using hashes here.

File details

Details for the file pydelatin-0.2.8-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pydelatin-0.2.8-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 f981c42cf763ac4ef54c36314a6adae4f3ab8dca09ef242e22f1cb1fa7d90feb
MD5 06c5d71616350aa4a2017e266ce3e6c5
BLAKE2b-256 5535a7174be376110e2998ae82d63299de37c17fc8bf36df662abf6388c5f1a0

See more details on using hashes here.

File details

Details for the file pydelatin-0.2.8-cp312-cp312-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for pydelatin-0.2.8-cp312-cp312-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 165aef70518c832770361f2a405f75bbbc3762063ca860ad6db9fc74afdf7560
MD5 2af51c54b982e3314a44de3d71111d2f
BLAKE2b-256 483ccd56f3d5445cb97553a6ea1ad7a2720fa84c4d397ac880238c628610d593

See more details on using hashes here.

File details

Details for the file pydelatin-0.2.8-cp311-cp311-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for pydelatin-0.2.8-cp311-cp311-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 d8f582a3cf6b662fae662008be92e7f86bf3079fb98ffdcfb6ced304ea48a81f
MD5 d559140570a7eab288af62c95a2d9081
BLAKE2b-256 1a38ab411ae137edba41bb6d54d85f2ea7a942659af36e97fde792ab1d0d45d9

See more details on using hashes here.

File details

Details for the file pydelatin-0.2.8-cp311-cp311-musllinux_1_2_i686.whl.

File metadata

File hashes

Hashes for pydelatin-0.2.8-cp311-cp311-musllinux_1_2_i686.whl
Algorithm Hash digest
SHA256 af39d07b74e1f5ae6392e4d2f144581090f6e3d6bd369793ac09d64a38b21b94
MD5 51dfedfe7b86ce56eae205ebf55e2d4b
BLAKE2b-256 5a8c2c2e7b6d88e3546edf8ef59e27cad2e89e22c54a64838c97814b93e97b6a

See more details on using hashes here.

File details

Details for the file pydelatin-0.2.8-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for pydelatin-0.2.8-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 b4f2c48e7c95e8b12e0e8f1448db8149824207f05e58474c4a944845b621b938
MD5 a0f0082970ba00f782a5dc682e177952
BLAKE2b-256 9563fa95b3ea37fabc3174e1477a98df7013f6328bfea1fbe76c0902ad2308d9

See more details on using hashes here.

File details

Details for the file pydelatin-0.2.8-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pydelatin-0.2.8-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 12fd4102782c27b40659c18af1287988b05783d2b7cecd77bf512f65378e5d95
MD5 2b366e85d9a3a1a98193ecd3ad790ad6
BLAKE2b-256 f7163822a2bc33420475799f45fa0bd1cd8fd909207f0b06bbb35b386af4fe23

See more details on using hashes here.

File details

Details for the file pydelatin-0.2.8-cp311-cp311-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for pydelatin-0.2.8-cp311-cp311-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 962f5c67d1738f0e41b159d80548e30b2d9427e59fc1446a1dda59d1466939bc
MD5 335f14ee2cc2d379358ae97f5aca9c8b
BLAKE2b-256 aa9dcbda2c36b16b82479d7c87acf4612712a3e66bbc242b85170be53145aa24

See more details on using hashes here.

File details

Details for the file pydelatin-0.2.8-cp310-cp310-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for pydelatin-0.2.8-cp310-cp310-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 7d4ab050a3460c388881e1c40598475baa4d647a995f790aafdf84e8907c7703
MD5 65edecd645f7db3bd485d56100477148
BLAKE2b-256 3734b3c362f5d0cab827617edfbd9538b00a259fb529b0c6afbffcb9f145c5d0

See more details on using hashes here.

File details

Details for the file pydelatin-0.2.8-cp310-cp310-musllinux_1_2_i686.whl.

File metadata

File hashes

Hashes for pydelatin-0.2.8-cp310-cp310-musllinux_1_2_i686.whl
Algorithm Hash digest
SHA256 a89c21e62130f8571c5565ab7f048aeea101fdcc4f2b719a84c292e78f9cceac
MD5 1b912f075732805ccf15ba4180bcdab4
BLAKE2b-256 1ae06bc34b6a822b30005e612bc6aaf4f15ac7a87914829cdaf23e9213afb9fd

See more details on using hashes here.

File details

Details for the file pydelatin-0.2.8-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for pydelatin-0.2.8-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 a1cf6adc47dddb9da6e25964a3ac9ca6f08406aa3d3a0a97298b6fb18e474538
MD5 a3c4dce6867ea56f165cad53ff06e146
BLAKE2b-256 d5eb144e2f5095c2253e5f38543980468d7d3ee4e581c8d1d2afebba2ab0fbfc

See more details on using hashes here.

File details

Details for the file pydelatin-0.2.8-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pydelatin-0.2.8-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 3d32901431d01e0e89a03958edda060c83fb7c6b4c90dd367c39fd5863f73ef0
MD5 c681001a6d5871e782cfa59875a05d0a
BLAKE2b-256 f8faacbce16f508962173ccd02ef07cd1b5db53e6bd3c348b533b941f1a39e87

See more details on using hashes here.

File details

Details for the file pydelatin-0.2.8-cp310-cp310-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for pydelatin-0.2.8-cp310-cp310-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 dc531514acb57a849580cb82cdd3d14643d467781e72712e3f57b2887aecd781
MD5 166a43bc7494af7c852e5aae6ee1b074
BLAKE2b-256 bcefa6917e743c77bd4e3f1e86ae8023c374692377517206bb1fd5911b216568

See more details on using hashes here.

File details

Details for the file pydelatin-0.2.8-cp39-cp39-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for pydelatin-0.2.8-cp39-cp39-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 3f3e2dac384e2eb3cc37d658223154a46913219f684cfa6d8ce780244503592e
MD5 741d39d0df0213c0de2c61aa07c6c4d0
BLAKE2b-256 05f2870488dba26a74bead3e9b7e852e6ee778338473d857c54553ec223652cb

See more details on using hashes here.

File details

Details for the file pydelatin-0.2.8-cp39-cp39-musllinux_1_2_i686.whl.

File metadata

File hashes

Hashes for pydelatin-0.2.8-cp39-cp39-musllinux_1_2_i686.whl
Algorithm Hash digest
SHA256 14806900f1cb194a992d485d44b87c101d3e09a8f97e2878a34b13593a278f1b
MD5 ea7b37677b8986e38265cfe2d4956d34
BLAKE2b-256 66d4a5bc13f2a786eddd431d323e107f940107453ede084e3779f68dbdfc455d

See more details on using hashes here.

File details

Details for the file pydelatin-0.2.8-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for pydelatin-0.2.8-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 60207c01fdb3e62767d157a1468ba56c5b9cc5343b81aa1bfa7f77cd91f14a73
MD5 0468449e41194f0bc6aac6a680a7d5b2
BLAKE2b-256 c5e70b720fe64ad39c0b34ff8ad16e0127c81e4deb92cc2493a54db03f07b8f5

See more details on using hashes here.

File details

Details for the file pydelatin-0.2.8-cp39-cp39-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pydelatin-0.2.8-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 65456b6c579b653a85690f533d65321eaeb4cacd463b1830ebd621ec28b9543a
MD5 775f52c641e9f0a778e8aa9a5f76e1e8
BLAKE2b-256 9ca90fd2805c680fea91d21672c3f1bb6887d491b3a9090f8e648874a2150f2c

See more details on using hashes here.

File details

Details for the file pydelatin-0.2.8-cp39-cp39-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for pydelatin-0.2.8-cp39-cp39-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 9db31337ad319375fce84e52b2abe7747cb123f117f67c748fc6ab1b55f79410
MD5 64e5aab603e035ec40e65366983fdd08
BLAKE2b-256 430049408372c385d6ffe87a7ed0fc915dfb6027ab0b95c3fee0644a700f2454

See more details on using hashes here.

File details

Details for the file pydelatin-0.2.8-cp38-cp38-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for pydelatin-0.2.8-cp38-cp38-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 308e8b6e0dd737dcf7b5f48a64006037b016ca66e2e380eac2c844550759aa0c
MD5 c0066750ad8db5f0a5641935c9c29866
BLAKE2b-256 80e0f460cc0fb81547df76397510247813b0ae00aef4ec8c7be9b825e1947d59

See more details on using hashes here.

File details

Details for the file pydelatin-0.2.8-cp38-cp38-musllinux_1_2_i686.whl.

File metadata

File hashes

Hashes for pydelatin-0.2.8-cp38-cp38-musllinux_1_2_i686.whl
Algorithm Hash digest
SHA256 0a979413249ba79f36b8cb298988545033b1b1e48af003539af11fc6f216b2e5
MD5 f76bb6ce3339af67aa28a74580ed0ff5
BLAKE2b-256 b1951f0e300c95932037ca3712d05e5cdd7015d46071e87701d08fbd9c3b3bff

See more details on using hashes here.

File details

Details for the file pydelatin-0.2.8-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for pydelatin-0.2.8-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 d797041be66ae2da9b03e5e90c6930a66e843111e08446b0c24c11bc3453c4a2
MD5 f6ed3c22f685d1bb51978826ac6e1798
BLAKE2b-256 d8fbad6c1391a36d86c5b92b329911f08e9bda5ec2f7ca7da93556886d9cfc38

See more details on using hashes here.

File details

Details for the file pydelatin-0.2.8-cp38-cp38-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pydelatin-0.2.8-cp38-cp38-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 2fd063eb7da7c39261f0de7852ddf75e5e690f875a9abe049316db8933aa1430
MD5 7387478b8d396e994f0b751daaece75a
BLAKE2b-256 8f451995f45ef7ec3c5eb51f5eafed9c713c491a30a5a782911c5077d97bac07

See more details on using hashes here.

File details

Details for the file pydelatin-0.2.8-cp38-cp38-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for pydelatin-0.2.8-cp38-cp38-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 20ba685d9ab7a822edd5bd062c211d7fceb0f998dd43f7785a842258cee46800
MD5 75bfb13d88665880a2d3508f07d971a9
BLAKE2b-256 ad92d29525ba69d7ff3d120f68cd8f6f81a0a772e33f16d9505c9ead1541317f

See more details on using hashes here.

File details

Details for the file pydelatin-0.2.8-cp37-cp37m-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for pydelatin-0.2.8-cp37-cp37m-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 e952185151ccbed8c8b986e4b022541ea7e1693e509213e427c3c3bae902eb07
MD5 a3bbee6be68e5c5f18a1765688d7aae7
BLAKE2b-256 c364fc02959e53d28580acc63446da8f295c7b5edfa58d2840c8a4b364aa90c9

See more details on using hashes here.

File details

Details for the file pydelatin-0.2.8-cp37-cp37m-musllinux_1_2_i686.whl.

File metadata

File hashes

Hashes for pydelatin-0.2.8-cp37-cp37m-musllinux_1_2_i686.whl
Algorithm Hash digest
SHA256 f3a488d19bb9f7b4ddd3502748a6927aee9205ebd80df3d81f69b6114c4a351e
MD5 0b3defe70eaa4a2f8a34ae1fca4c8b45
BLAKE2b-256 c208c4bddb5bf8a8ca27d7821a9d1b4f5bbe57e4bba579963c4e266ed16dfbbd

See more details on using hashes here.

File details

Details for the file pydelatin-0.2.8-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for pydelatin-0.2.8-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 ff82c6a7342137efde348684272857cf72262c414c048db0230df87ed7a63c17
MD5 f883aaec7ea7628f37de163fed061a1d
BLAKE2b-256 34f3a41b9c219498be7478786299effb1bc1bb464ffe3fd0e8e5430fc5d551d1

See more details on using hashes here.

File details

Details for the file pydelatin-0.2.8-cp37-cp37m-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for pydelatin-0.2.8-cp37-cp37m-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 a9e1da8020f720ba1b04b159513db28fed11d0c14ccfa933c08b6821b15ad051
MD5 ed3bfdb24f323385e862ba6227830dbe
BLAKE2b-256 6e4c911d9d5dc76f5691ab8a0d7e15f37314c5d912f500fb724795c1a9667571

See more details on using hashes here.

File details

Details for the file pydelatin-0.2.8-cp36-cp36m-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for pydelatin-0.2.8-cp36-cp36m-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 4cc006ff1d0b8170819e12673a989d196263657939f8e3d15527cb8e372fd3bf
MD5 2fe9c186360902e775609658bc223506
BLAKE2b-256 4ff6612f404bf4d782746e61d4f08dfc567f6f4937837ad4e81f4e7a937e53d6

See more details on using hashes here.

File details

Details for the file pydelatin-0.2.8-cp36-cp36m-musllinux_1_2_i686.whl.

File metadata

File hashes

Hashes for pydelatin-0.2.8-cp36-cp36m-musllinux_1_2_i686.whl
Algorithm Hash digest
SHA256 aed2a0a3a10aba4e8a27b02d6742d799828144bc65430a97af796c4b9bc635d0
MD5 1b05f2ce6d02249f2ae46895cce06a27
BLAKE2b-256 a88d69c0c36374e3f6d1d32106899f6c1f265b61aab3e19aef81c33b5946d7f7

See more details on using hashes here.

File details

Details for the file pydelatin-0.2.8-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for pydelatin-0.2.8-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 2f234d8c1bb3845092bb57f7fa2a6d0c0a2fe1c84f8b18bcf96363edcff7c261
MD5 08a6d92e95a605c8b8a29e84d74ba1b2
BLAKE2b-256 bf55d28b483a96d2b2c7677f458ecf42028d2ed447bf96b6b0d733037806ed6f

See more details on using hashes here.

File details

Details for the file pydelatin-0.2.8-cp36-cp36m-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for pydelatin-0.2.8-cp36-cp36m-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 4b12c6b21c688f7c8dc23fff5e64eb453c7e7d8bad580417fb48c6b13a58aa63
MD5 e3ddcb59cdbde11817d710b8ea5229f1
BLAKE2b-256 b584b3889006c191ef938a5cb60a5099a7f6c82fc8977344989ae59c25b9ab18

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