utiles = (utils + tiles) * rust
Project description
utiles (python)
utiles = utils + tiles
Fast spherical mercator geo/tile util(e)ities.
A mostly drop-in replacement for mercantile written w/ rust, plus several other util(e)ities.
Installation
pip install utiles
Usage
>>> import utiles as ut
>>> ut.bounds(1, 1, 1)
LngLatBbox(west=0, south=-85.0511287798066, east=180, north=0)
>>> t = ut.Tile(1, 2, 3)
>>> t
Tile(x=1, y=2, z=3)
>>> t.x, t.y, t.z
(1, 2, 3)
>>> x, y, z = t
>>> (x, y, z)
(1, 2, 3)
>>> list(ut.tiles(*ut.bounds(1, 1, 1), 3))
[Tile(x=4, y=4, z=3), Tile(x=4, y=5, z=3), Tile(x=4, y=6, z=3), Tile(x=4, y=7, z=3), Tile(x=5, y=4, z=3), Tile(x=5, y=5, z=3), Tile(x=5, y=6, z=3), Tile(x=5, y=7, z=3), Tile(x=6, y=4, z=3), Tile(x=6, y=5, z=3), Tile(x=6, y=6, z=3), Tile(x=6, y=7, z=3), Tile(x=7, y=4, z=3), Tile(x=7, y=5, z=3), Tile(x=7, y=6, z=3), Tile(x=7, y=7, z=3)]
>>> t
Tile(x=1, y=2, z=3)
>>> t.parent()
Tile(x=0, y=1, z=2)
>>> t.children()
[Tile(x=2, y=4, z=4), Tile(x=3, y=4, z=4), Tile(x=3, y=5, z=4), Tile(x=2, y=5, z=4)]
>>> t.bounds()
LngLatBbox(west=-135, south=40.97989806962013, east=-90, north=66.51326044311186)
>>> t.ul()
LngLat(lng=-135, lat=66.51326044311186)
>>> t.asdict()
{'x': 1, 'y': 2, 'z': 3}
>>> t.center()
LngLat(lng=-112.5, lat=53.74657925636599)
>>> ~t
Tile(x=1, y=5, z=3)
>>> t.valid() # check if tile is valid
True
>>> ut.Tile(1000, 1231234124, 2).valid() # invalid tile
False
>>> t.pmtileid() # return the pmtileid of the tile
34
>>> ut.Tile.from_pmtileid(34) # create a tile from pmtileid
Tile(x=1, y=2, z=3)
>>> t.json_arr() # json-array string
'[1, 2, 3]'
>>> t.json_obj() # json-object string
'{"x":1,"y":2,"z":3}'
>>> t.fmt_zxy() # format tile as z/x/y
'3/1/2'
>>> t.fmt_zxy_ext('png') # format tile as z/x/y.ext
'3/1/2.png'
>>> t == (1, 2, 3) # compare with tuple
True
>>> t == (1, 2, 2234234) # compare with tuple
False
About
Why?
I use mercantile regularly and wished it were a bit more ergonomic, had type annotations, and was faster, but overall it's a great library.
This was an excuse to learn some more rust as well as pyo3.
Do I/you REALLY need a rust-port of mercantile?
I don't know, decide for yourself. utiles
is certainly faster than mercantile
for some things (see benchmarks below)
Is it really a drop in replacement for mercantile?
Not quite, but it's close. utiles doesn't throw the same exceptions as mercantile, instead it throws ValueError
's and
TypeError
's.
There might be other differences, but I have been using it instead of mercantile for a bit now and it works pretty decent, tho I am open to suggestions!
Benchmarks (WIP)
---------------------------------------------------------------------------------------------------- benchmark 'quadkey': 12 tests -----------------------------------------------------------------------------------------------------
Name (time in ns) Min Max Mean StdDev Median IQR Outliers OPS (Kops/s) Rounds Iterations
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
test_quadkey_bench[utiles-(0, 0, 0)] 199.9942 (1.0) 47,100.0021 (8.78) 284.7909 (1.0) 315.1058 (6.70) 299.9950 (1.06) 100.0008 (>1000.0) 966;1164 3,511.3476 (1.0) 38911 1
test_quadkey_bench[utiles-(1, 1, 1)] 252.6316 (1.26) 5,363.1581 (1.0) 293.9171 (1.03) 47.0478 (1.0) 284.2108 (1.0) 10.5264 (>1000.0)2884;35689 3,402.3204 (0.97) 196079 19
test_quadkey_bench[utiles-(1, 0, 1)] 299.9950 (1.50) 86,300.0023 (16.09) 397.2831 (1.39) 383.5726 (8.15) 399.9958 (1.41) 0.0073 (1.0) 1451;22409 2,517.0967 (0.72) 99010 1
test_quadkey_bench[mercantile-(0, 0, 0)] 599.9973 (3.00) 28,200.0037 (5.26) 821.2744 (2.88) 301.0209 (6.40) 799.9988 (2.81) 0.0073 (1.0) 658;21559 1,217.6198 (0.35) 69445 1
test_quadkey_bench[utiles-(1, 40, 7)] 599.9973 (3.00) 136,899.9947 (25.53) 758.0325 (2.66) 676.4311 (14.38) 699.9981 (2.46) 0.0073 (1.0) 565;29079 1,319.2047 (0.38) 108696 1
test_quadkey_bench[utiles-(486, 332, 10)] 749.9999 (3.75) 8,055.0002 (1.50) 838.5705 (2.94) 137.5439 (2.92) 824.9997 (2.90) 23.7496 (>1000.0) 1445;4742 1,192.5056 (0.34) 63695 20
test_quadkey_bench[mercantile-(1, 0, 1)] 799.9988 (4.00) 104,300.0011 (19.45) 1,015.6996 (3.57) 539.0831 (11.46) 1,000.0003 (3.52) 0.0073 (1.0) 1217;51791 984.5431 (0.28) 119048 1
test_quadkey_bench[mercantile-(1, 1, 1)] 799.9988 (4.00) 75,999.9966 (14.17) 1,047.5805 (3.68) 419.8019 (8.92) 1,000.0003 (3.52) 100.0008 (>1000.0) 3366;4074 954.5806 (0.27) 166667 1
test_quadkey_bench[utiles-(486, 332, 20)] 1,299.9953 (6.50) 83,399.9948 (15.55) 1,545.1801 (5.43) 461.2615 (9.80) 1,499.9969 (5.28) 100.0008 (>1000.0)8793;17328 647.1738 (0.18) 163935 1
test_quadkey_bench[mercantile-(1, 40, 7)] 1,599.9976 (8.00) 110,599.9982 (20.62) 1,789.4247 (6.28) 711.1950 (15.12) 1,799.9992 (6.33) 100.0008 (>1000.0) 1599;2703 558.8388 (0.16) 116280 1
test_quadkey_bench[mercantile-(486, 332, 10)] 1,999.9934 (10.00) 117,000.0032 (21.82) 2,353.1110 (8.26) 768.5591 (16.34) 2,300.0030 (8.09) 200.0015 (>1000.0) 1917;2168 424.9693 (0.12) 117648 1
test_quadkey_bench[mercantile-(486, 332, 20)] 3,199.9953 (16.00) 66,100.0013 (12.32) 3,601.3369 (12.65) 567.1348 (12.05) 3,599.9983 (12.67) 100.0080 (>1000.0) 1479;4347 277.6747 (0.08) 97088 1
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------------- benchmark 'tiles': 2 tests ---------------------------------------------------------------------------------------------
Name (time in us) Min Max Mean StdDev Median IQR Outliers OPS Rounds Iterations
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
test_tiles_gen_bench[utiles] 239.3000 (1.0) 1,597.3000 (1.0) 308.5684 (1.0) 130.3316 (1.0) 267.2000 (1.0) 16.5000 (1.0) 312;559 3,240.7721 (1.0) 3232 1
test_tiles_gen_bench[mercantile] 1,349.9000 (5.64) 7,159.2000 (4.48) 1,798.2186 (5.83) 779.7610 (5.98) 1,526.7000 (5.71) 149.6250 (9.07) 66;111 556.1059 (0.17) 601 1
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
------------------------------------------------------------------------------------------------------- benchmark 'ul': 12 tests ------------------------------------------------------------------------------------------------------
Name (time in ns) Min Max Mean StdDev Median IQR Outliers OPS (Kops/s) Rounds Iterations
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
test_ul_bench[utiles-(1, 1, 1)] 204.3478 (1.0) 7,160.8697 (1.0) 263.7100 (1.0) 125.3400 (1.00) 221.7392 (1.0) 26.0868 (1.30) 17101;28014 3,792.0436 (1.0) 169492 23
test_ul_bench[utiles-(1, 0, 1)] 229.9999 (1.13) 10,579.9998 (1.48) 273.2589 (1.04) 124.7846 (1.0) 250.0001 (1.13) 20.0002 (1.0) 9266;14360 3,659.5327 (0.97) 188680 20
test_ul_bench[utiles-(1, 40, 7)] 229.9999 (1.13) 42,870.0001 (5.99) 311.4689 (1.18) 188.2129 (1.51) 255.0001 (1.15) 35.0003 (1.75) 16764;39465 3,210.5932 (0.85) 200000 20
test_ul_bench[utiles-(486, 332, 20)] 229.9999 (1.13) 65,699.9997 (9.17) 318.4368 (1.21) 243.5307 (1.95) 259.9998 (1.17) 35.0003 (1.75) 11008;36596 3,140.3404 (0.83) 178572 20
test_ul_bench[utiles-(0, 0, 0)] 299.9950 (1.47) 33,899.9962 (4.73) 349.3773 (1.32) 205.0577 (1.64) 300.0023 (1.35) 100.0008 (5.00) 618;618 2,862.2349 (0.75) 70423 1
test_ul_bench[utiles-(486, 332, 10)] 299.9950 (1.47) 57,999.9978 (8.10) 403.1283 (1.53) 400.2343 (3.21) 399.9958 (1.80) 100.0008 (5.00) 2013;20449 2,480.5998 (0.65) 192308 1
test_ul_bench[mercantile-(0, 0, 0)] 999.9931 (4.89) 206,099.9977 (28.78) 1,296.5665 (4.92) 1,201.7776 (9.63) 1,200.0019 (5.41) 100.0008 (5.00) 387;2129 771.2678 (0.20) 45872 1
test_ul_bench[mercantile-(1, 0, 1)] 999.9931 (4.89) 166,500.0018 (23.25) 1,288.3700 (4.89) 712.6090 (5.71) 1,299.9953 (5.86) 100.0008 (5.00) 2119;3450 776.1746 (0.20) 147059 1
test_ul_bench[mercantile-(1, 1, 1)] 1,000.0003 (4.89) 102,799.9970 (14.36) 1,253.0401 (4.75) 570.2565 (4.57) 1,200.0019 (5.41) 100.0008 (5.00) 2957;3697 798.0590 (0.21) 144928 1
test_ul_bench[mercantile-(1, 40, 7)] 1,000.0003 (4.89) 89,599.9983 (12.51) 1,263.1955 (4.79) 586.9464 (4.70) 1,200.0019 (5.41) 100.0008 (5.00) 1775;2965 791.6431 (0.21) 166667 1
test_ul_bench[mercantile-(486, 332, 10)] 1,099.9938 (5.38) 90,200.0029 (12.60) 1,327.0801 (5.03) 536.7494 (4.30) 1,299.9953 (5.86) 100.0008 (5.00) 6813;7956 753.5340 (0.20) 135136 1
test_ul_bench[mercantile-(486, 332, 20)] 1,099.9938 (5.38) 107,300.0021 (14.98) 1,264.2361 (4.79) 594.6154 (4.77) 1,200.0019 (5.41) 100.0008 (5.00) 1522;2265 790.9915 (0.21) 123457 1
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
TODO:
- benchmark against mercantile
- Re-write cli in rust with clap
- Maybe:
- [] Mbtiles support??
- [] Reading/writing mvt files?
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distributions
Hashes for utiles-0.6.1-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | f85c12ca2b82a1379c784b750617e69462330d837edb826f4370b2646543bbe2 |
|
MD5 | ff1fb3ac572d166e71182be3bb0a5477 |
|
BLAKE2b-256 | 313ac7a8b884ecfefc5fab93352f070ea9326f5f1d6884caa3465cbba541d4b8 |
Hashes for utiles-0.6.1-pp310-pypy310_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | e17e09712fc0c20ab8a7f9700c54c6e78ccccc226a22789867e447c8559d2912 |
|
MD5 | 3562f59f834998a14f15b10609dc3da4 |
|
BLAKE2b-256 | 9256dbb8eeef916eb133b4e99ba24dc40d2dc623959f890f48808f876e7dc84f |
Hashes for utiles-0.6.1-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 89ba3325d43be6baf73f25fb9f6ddd119ccec2cc6bd8baaf593b968879b3455c |
|
MD5 | f7605abe78400735cf08d623644c5972 |
|
BLAKE2b-256 | b7a2cc622184bcc83d93a67cfd70a79be063b9706849c8a4bd28883b2615bd10 |
Hashes for utiles-0.6.1-pp310-pypy310_pp73-manylinux_2_12_i686.manylinux2010_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 05c818dfccafccbc080aa89d6746e8eb04a1464ede8d69a6ae91613ed4516422 |
|
MD5 | 862e51f908d977bc1522f3d9a6c818ad |
|
BLAKE2b-256 | 6ac1d370aa811fb2660eaaf7638d5829d83edd8d66686b294cda5061e18ddb06 |
Hashes for utiles-0.6.1-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | cb1ba142cfeba60a5d565a608ce3527e98a8bcef7426b653518446fbfb1e7b92 |
|
MD5 | 1b060e845c1dadad4b1189dd394250a9 |
|
BLAKE2b-256 | f7f8e1471e034880a3ba32c8242dfcf45cb212c7c3cf4e0284f545b893176f83 |
Hashes for utiles-0.6.1-pp39-pypy39_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | d735865b22d4ff59d9235f3a6d3971c2f8a0ac893142e16617fc2b81886a6c38 |
|
MD5 | b509ac33d2d9ae5054207a866e95d3c9 |
|
BLAKE2b-256 | 0ff44b5a7ec3e3ccb78148834feffd118fa08aa6d0cd57a0491e9d1b31d984b7 |
Hashes for utiles-0.6.1-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1e00f4f6aed7010cb655a046e12ffe2cdb7e65fc68a1fe0659ea28cb1a64f629 |
|
MD5 | bd7e5d2d2512d9b7f70bdd0f11d6291b |
|
BLAKE2b-256 | e2b8572d7992ccb3e4f0472092cfc932c520688ed139add2dbde624611934757 |
Hashes for utiles-0.6.1-pp39-pypy39_pp73-manylinux_2_12_i686.manylinux2010_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | fc9a78d1f09911db0d6a249db002a56c2688b23cd720c3e2cdba620b49d8aca9 |
|
MD5 | 2afa1179131d3035d2d490f8c4ebcd7b |
|
BLAKE2b-256 | 0059b8ca3c695015d0ab8bdb11dde68c4f4e4285aff0ed42390162033562284d |
Hashes for utiles-0.6.1-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 67973befad560d15b3b9c0794ad9c3299d2bdd01170fc82a9eb716ed89954e3d |
|
MD5 | b42b5650f329830c2ac3008908724331 |
|
BLAKE2b-256 | d0a417558a6e9af423b3c98a33730e27a04fc088ccd0864adc86b4a7178adf14 |
Hashes for utiles-0.6.1-pp38-pypy38_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0282d5c7ba47dac8f04bf9a85251c6aed1b90bc5a2816131c5801e602101543e |
|
MD5 | 9365a557cbdd65ec5e8e67db926911a4 |
|
BLAKE2b-256 | 6f4e56e193397391f10198c0165da66e0df10309ffd1d504573439c848659a0f |
Hashes for utiles-0.6.1-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | cf589a4059f0f7aa3426992de4e43d49d1a672332ebbda5a0019001ebf518768 |
|
MD5 | 42e656456cf179111015524eb2f2b4aa |
|
BLAKE2b-256 | 4f010d1621728465f51dcfb225b4d3610f84273874907aa1a0e153c2877960af |
Hashes for utiles-0.6.1-pp38-pypy38_pp73-manylinux_2_12_i686.manylinux2010_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 29f3806dda2e4bdf813741298126e5e8b91c4643257d9775ce2062b955f00b3b |
|
MD5 | 43f07288a8da4540c3e71aff7498e024 |
|
BLAKE2b-256 | 0cb6f2f9af7528672fb1070ea6bc823f2ca795df9201dc4d04621973d5f515ff |
Hashes for utiles-0.6.1-cp312-none-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | aea27a9b9d3c4e33f4f5dbf54756c8e806ab21b21aacfb9943ab9861ca94c8e1 |
|
MD5 | d5c0eb99dc1b42d9c2fd5e44885bf5ad |
|
BLAKE2b-256 | 6876fe453072fdf63b67976537067693232719a956084a32edd51fd111257abb |
Hashes for utiles-0.6.1-cp312-none-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | fcae28c27d7cf80113f1796242b77618a87f3a24b116debffd5831fd2ec6a134 |
|
MD5 | 1ef6244afae58cfc20237994ef812e3b |
|
BLAKE2b-256 | 5bbf44410509fb9185f6ea3b35d695ee2674ffae22232853c421cad8d7101607 |
Hashes for utiles-0.6.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 69a1a3206264f37fa9c6be0f3879aa8daf963417c5b1bd4145cc5cf5782fa54c |
|
MD5 | ebdea197d3263860c1e7da51bf605611 |
|
BLAKE2b-256 | 17bfc2bc9e3163e7d04c69c0e10e95cb9646d3a34266b64168081c697f37b8c5 |
Hashes for utiles-0.6.1-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4899a51e8e4e2f236a163434e77c7dd0c14e38a2c2dcb074e723898c2a769587 |
|
MD5 | 86549f08d11207f13c476b6b0397be0c |
|
BLAKE2b-256 | 98a4444740043a33764b479d68f71aa62e3d457e00175374546578e72bbcbad9 |
Hashes for utiles-0.6.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3673fe3030a872469c21f94ec8bf166d6af470dbd24378f6e5c0f8aedbaf77cd |
|
MD5 | 05ff77d91c837e0627b10bf735192356 |
|
BLAKE2b-256 | da45ad4b4e077e8a035c2f057c994d47b2034ea48bdb23720898275172039661 |
Hashes for utiles-0.6.1-cp312-cp312-manylinux_2_12_i686.manylinux2010_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8106b09855339c6b38fdf7b85b5e1a075029198ef0e207f60ac0e70ade8bc7bc |
|
MD5 | 9bbbf698b951e17881dd57895742f0e5 |
|
BLAKE2b-256 | be5e4ac870d586996fdec1364b6079088055a5ba9998773912e0b9689b17746e |
Hashes for utiles-0.6.1-cp312-cp312-macosx_11_0_arm64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | b81cb238fc47a2f918d904a4136fcf5e5c13b4d7a03d38ef4bde19a614f31ed0 |
|
MD5 | cadc001d2058645e8ea0d7bebfeac1dd |
|
BLAKE2b-256 | 758fd4798c2d3b62eebf0da89387097b7fa2361b79b3ab795b58d5821c40bbf4 |
Hashes for utiles-0.6.1-cp312-cp312-macosx_10_12_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ddb3e838b0c005ee98f4fc8adab9519152e63a6bd48edfce55de3d2f6a7fefb4 |
|
MD5 | 906821bbd0d2966b604ace0680f64bf6 |
|
BLAKE2b-256 | fa731b787a5c3f6c3e7b21cecc45beca6d78d3d07a108ab15381a3d5fddd0f36 |
Hashes for utiles-0.6.1-cp311-none-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0dbdc2fed6c8985b6c7d8b15612f993f07a37d121369112dc3efaadcabc7a225 |
|
MD5 | ab0263b60951843a64f7e69b9ceb0706 |
|
BLAKE2b-256 | 1b965316320a04163a19cb0caf68a06c87accd9eb1015627453c5de87d80294c |
Hashes for utiles-0.6.1-cp311-none-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | a83f9c2bd43a7de8f278a07b279d122c12cedc2f92e0b20b68ec47ea60f07455 |
|
MD5 | 7f47282c084f86fef1bc17eff491ed46 |
|
BLAKE2b-256 | dca7a726313d0f73427bbe922328f6a7b5f481a9877b3c398c07b83b6de8b6b4 |
Hashes for utiles-0.6.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4b58877a03726eff744dbcf2ec1a4a7f4d8ccdcd22a869fb3d922f7d609f8f85 |
|
MD5 | 44a3da80676d512d99bd03036e31547f |
|
BLAKE2b-256 | 7f2f68955c24a15a113bf8479e0c304e1347870ecae008302e339d3420fb6219 |
Hashes for utiles-0.6.1-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ffe86887345b3cac8f2cd4546ffab5b3ae38571d4b6649b1391cc7192ef613fe |
|
MD5 | 8a7fd530524701e7ffba688a815ef871 |
|
BLAKE2b-256 | 08df347ac8990f5375557c89bf88cd9197a4171772c3eb0a4475d5689581f996 |
Hashes for utiles-0.6.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 83b6e8275c5374f7ab025cd68f06f2f37ca4df56ebcf574ffe1c872318f3b7f5 |
|
MD5 | fa36b2513a8dd6ba4a53970d5c24140c |
|
BLAKE2b-256 | cbb48699e3330abd62743fa81789d637061dd7976c71a4589105a4e740d52ef2 |
Hashes for utiles-0.6.1-cp311-cp311-manylinux_2_12_i686.manylinux2010_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 035bf862aa540baad287a5a61960f89e5a8e06757173eefc1cd37a8cd45ae527 |
|
MD5 | a3155f7e4d460da9ba63a114d6309290 |
|
BLAKE2b-256 | e5cdcfbc621c6e60dc9ef89ad407118c97de581d9ac601f45d685fc2482768bd |
Hashes for utiles-0.6.1-cp311-cp311-macosx_11_0_arm64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9265ea5ec4072381e6ffaaa3222fcd39d7d6d77e5828c5d986cdc6b80925fe9a |
|
MD5 | 5f731a47a2800542b002076a7324e355 |
|
BLAKE2b-256 | 27dad25715976bad591ce5775bd46ee883c750abf44d045bb57c6770b244dfcb |
Hashes for utiles-0.6.1-cp311-cp311-macosx_10_12_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 95ca92099aa28c0fd286be967528fba840ad4d88f235728c6bfca6b725d13992 |
|
MD5 | 2a936acc0d853a26db53b6e69943044a |
|
BLAKE2b-256 | e1426e8f707e84e5130f63975e667f6134232348ef4d008c595d55d9787443b7 |
Hashes for utiles-0.6.1-cp310-none-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | c9a37535cd3782d67a85b1b71f57b5f2105b03b5eea7bdcc83b8aa9e4cc2e91f |
|
MD5 | 8ca590f3ffa6488cb4e9f750507848c3 |
|
BLAKE2b-256 | 4e00dbdb825088873d31eb1585d412cf755eae62b79a6ba9d3bfa93672655fbb |
Hashes for utiles-0.6.1-cp310-none-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | f8837c2c30d4d9881b00ae5cf03ef3fa4715c3d64c07918a73ad2131675ff266 |
|
MD5 | 9ba423fee9800bdd7240f6cb66e308d2 |
|
BLAKE2b-256 | 0c9716d1a7b2d926a4e3d4fd12beee373e3476f290b00e9aa63b4210f1d3f53f |
Hashes for utiles-0.6.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2649e45e33492c49d353dae5f472251b7a0cf54bb482adf6a3f132060c5a3527 |
|
MD5 | 3438a02c678dd0ef739ae72cab869fce |
|
BLAKE2b-256 | f67da59ae953bbf0a8a5d8330bb48af721ce4bd1c0e3d58523955eca93b3eddc |
Hashes for utiles-0.6.1-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 41c302d7efbc90f90a179ba9b10178859dabcd4427bb57525ad183327ab172a5 |
|
MD5 | 64c101c27a644df924a9cb552d2ed761 |
|
BLAKE2b-256 | 1d1b4bbf115aac1d5393b9772de39e3a300c6387e769fdacd07f84687942be8e |
Hashes for utiles-0.6.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 19a82c20aa43acf8a2606b981c98d720c6e50879724fc01535d3fa35347456ea |
|
MD5 | 72daf9d090c51b9f73b60b5ecc534c54 |
|
BLAKE2b-256 | ffe8932ef9fa8a455bb1abdad508090cbd5425953f8b6eedf99b8cc72c63adca |
Hashes for utiles-0.6.1-cp310-cp310-manylinux_2_12_i686.manylinux2010_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | b935d481fe1a361cee5434897ce064716cff05392640e6fca334b8fccacf6338 |
|
MD5 | 6d042be8bc9d6dfbc6f61298b6893cf7 |
|
BLAKE2b-256 | a513afe29e53cabd6fe121b70c946a42454ce899bd142078b417801cb8286471 |
Hashes for utiles-0.6.1-cp310-cp310-macosx_11_0_arm64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 74409ce2e9392d115e035b0abb5918900fd07c9debee8f5d80eb254160a4c9c9 |
|
MD5 | fd8c70c61d5114c4597698a2740c4269 |
|
BLAKE2b-256 | dc64ba9f54fdaec224be02e55dc36cdaa9f1d8774dbb2435a8dae13555a7c604 |
Hashes for utiles-0.6.1-cp310-cp310-macosx_10_12_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ea6878d00160159c962a9544666ad55536e24732c794fdcb5a86d413fc9feeeb |
|
MD5 | f30ed1ec6cbdfc29bf9625248ea85422 |
|
BLAKE2b-256 | 1b570e14478f79a3d746065f1e6d160531daceba04a62f57cfde6004cce4511b |
Hashes for utiles-0.6.1-cp39-none-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1e22364e335115e94a10aebf3b9324d697eaaeeb0c0a123dc58cd65a16571188 |
|
MD5 | 665ef5ff3608c0904460bd8392c55cfd |
|
BLAKE2b-256 | f32a65ce91db83ea543ea95cbeae46c22b474f82d1ced3d51abf0a64e8dcdad5 |
Hashes for utiles-0.6.1-cp39-none-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7b13a17020de66b66583866a831966b9b233578a3c5837449efcff2a022d31f0 |
|
MD5 | f232db037cc0aee0e14c2a6c67b938fd |
|
BLAKE2b-256 | 3b31a58affdf1994b739111935ee8f93444c073d004aed274cc1deeb97e3427b |
Hashes for utiles-0.6.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 394f37cd7253708d57dceb23b362ef167dcdc8361e920bdc51e41790e0124525 |
|
MD5 | 1e12a1e89e9b8837e3a4283c75cfc03c |
|
BLAKE2b-256 | 9195d6e81e157496ff2e00a9e754cb383d526fa14109060d64b5e4f4fb970b51 |
Hashes for utiles-0.6.1-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4b69ccf39c6f824fcceafb7f0a3f531a9044860aaa32532cc1b5819acd0adbc5 |
|
MD5 | eb15ad38a747c9e63073b4bd50428f30 |
|
BLAKE2b-256 | 58a8df7162f47a20e0d8d405b0ba2d0a8eba4bddb0eebec41f1b4e27fef71a89 |
Hashes for utiles-0.6.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 94f40f4910a7e15b8cdb9614a378b9778d4225f4e3af1fd835932dbc64d98f85 |
|
MD5 | 06bfbfc94cad6d2d6e403c85c6b1580c |
|
BLAKE2b-256 | b5cf5dae2f2aa6eae975f1748a36896179e2eb07d25ecb4eccd6e3e971f7a9cc |
Hashes for utiles-0.6.1-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 70b7e95df3986bdf225c13da0de8603624d0591362ab064536ccb91575e6075e |
|
MD5 | f29197ad4873a84dbbfc7974396e7f4b |
|
BLAKE2b-256 | b2f96ec9e39b0746665f11148628a0047e3a87d4c893f7379873b29e8f803cb3 |
Hashes for utiles-0.6.1-cp39-cp39-macosx_11_0_arm64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 094695c76e4b22da15fde8685005ff46ff17af38c59e0009d1d76e41c5dec2e6 |
|
MD5 | 5cebbd880c865cb92c6fc5c60e3363c3 |
|
BLAKE2b-256 | e7713984a6a387666f1e4639f43b1f6630d5fdff80408cad28eb190031690e60 |
Hashes for utiles-0.6.1-cp39-cp39-macosx_10_12_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 5a58d4fd071ccb763de79a513e394bd8d50e6788916f6e84cf53f4869627b901 |
|
MD5 | 063e518fbf6ac1b67c862017faaccee5 |
|
BLAKE2b-256 | 6c50e84e9723bb7cd1a01e8d160c10d5b85def8ff0f63339a7d270016405b26c |
Hashes for utiles-0.6.1-cp38-none-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 657c0d1a12a18cc007387cccfb15e855b4388c71f6f8c8b182d3288f17b598af |
|
MD5 | 6eefb879549eef67fa510bd29649a588 |
|
BLAKE2b-256 | de4e247d6337a618517a857a1af93ae9144c99e1fe6e954be3188dc59e23944d |
Hashes for utiles-0.6.1-cp38-none-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 5b428a3d98a98f61ff42f7c6439f967b3d41ecd13c516075ca344150cac90920 |
|
MD5 | 08e5d5956039e98428bfd3b38be00a7a |
|
BLAKE2b-256 | 75fecb196d967abcd4026b89719106c06665910628612e388d3ff2fdaf871bf9 |
Hashes for utiles-0.6.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 829519c66741252fb43cf03838440b77631eb6e681b009ace3ab90b44969450c |
|
MD5 | 105e79ce450c3b1b41dd15bc31dca988 |
|
BLAKE2b-256 | 29620b8c9ae7ef6d1553182b70f43dd86c233d1d2b062c28d800b506b47a23a9 |
Hashes for utiles-0.6.1-cp38-cp38-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3b440c0f0c5582293b2fc10aa3bd5d08fb76b9d4a3be4ec02b6739ee48bdea3e |
|
MD5 | b1fc18155b993274fdc335a4406fc383 |
|
BLAKE2b-256 | bd7a0ab83e49dcb7528155c89735c978874d11b52b59c384eefc084d735e3d9d |
Hashes for utiles-0.6.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0a49ea14a33fad298546a7f83d3386fd3ef83215ccd4196228ad6a84d635c447 |
|
MD5 | 5ba35e0a9d9b3e050b785a13de000731 |
|
BLAKE2b-256 | 2bdf6ad759dd85a897aded4531efe80af4f129ce6329c2b7f1356083794de95a |
Hashes for utiles-0.6.1-cp38-cp38-manylinux_2_12_i686.manylinux2010_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3e00caab3f8e83a76565d99c1fbbe28fcd718c819ffb47103dee5157eea610ff |
|
MD5 | 6ef8054caeb3bb1df88bb45b991417de |
|
BLAKE2b-256 | c5654b5784d54d90b987d4b14da3ccc18abbe7461db7e4a6988ca5912db18f58 |