Identify locations and tag them with UN-LOCODEs and ISO-3166-2 subdivisions.
Project description
berlin-rs
A Python/Rust microservice to identify locations and tag them with UN-LOCODEs and ISO-3166-2 subdivisions.
Getting started
To test the Rust API locally:
make run
This will make an API available on port 3001. It serves simple requests of the form:
curl 'http://localhost:3001/berlin/search?q=house+prices+in+londo&state=gb' | jq
replacing localhost
with the local endpoint (jq
used for formatting).
This will return results of the form:
{
"time": "32.46ms",
"query": {
"raw": "house prices in londo",
"normalized": "house prices in londo",
"stop_words": [
"in"
],
"codes": [],
"exact_matches": [
"house"
],
"not_exact_matches": [
"house prices",
"prices in",
"prices",
"in londo",
"londo"
],
"state_filter": "gb",
"limit": 1,
"levenshtein_distance": 2
},
"results": [
{
"loc": {
"encoding": "UN-LOCODE",
"id": "gb:lon",
"key": "UN-LOCODE-gb:lon",
"names": [
"london"
],
"codes": [
"lon"
],
"state": [
"gb",
"united kingdom of great britain and northern ireland"
],
"subdiv": [
"lnd",
"london, city of"
]
},
"score": 1346,
"offset": {
"start": 16,
"end": 21
}
}
]
}
A Python wheel can also be built, using
make wheels
pip install build/wheels/berlin-0.1.0-xyz.whl
where xyz
is your architecture.
Afterwards berlin should be functional inside a python shell/script. Example:
import berlin
db = berlin.load('../data')
loc = db.query('manchester population', 'gb', 1)[0];
print("location:", loc.words)
Description
Berlin is a location search engine which works on an in-memory collection of all UN Locodes, subdivisions and states (countries). Here are the main architectural highlights: On startup Berlin does a basic linguistic analysis of the locations: split names into words, remove diacritics, transliterate non-ASCII symbols to ASCII. For example, this allows us to find “Las Vegas” when searching for “vegas”. It employs string interning in order to both optimise memory usage and allow direct lookups for exact matches. If we can resolve (parts of) the search term to an existing interned string, it means that we have a location with this name in the database.
When the user submits the search term, Berlin first does a preliminary analysis of the search term: 1) split into words and pairs of words 2) try to identify the former as existing locations (can be resolved to existing interned strings) and tag them as “exact matches”. This creates many search terms from the original phrase. Pre-filtering step. Here we do three things 1) resolve exact matches by direct lookup in the names and codes tables 2) do a prefix search via a finite-state transducer 3) do a fuzzy search via a Levenshtein distance enabled finite-state transducer. The pre-filtered results are passed through a string-similarity evaluation algorithm and sorted by score. The results below a threshold are truncated. A graph is built from the locations found during the previous step in order to link them together hierarchically if possible. This further boosts some locations. For example, if the user searches for “new york UK” it will boost the location in Lincolnshire and it will show up higher than New York city in the USA. It is also possible to request search only in a specific country (which is enabled by default for the UK)
Berlin is able to find locations with a high degree of semantic accuracy. Speed is roughly equal to 10-15 ms per every non-matching word (or typo) + 1 ms for every exact match. A complex query of 8 words usually takes less than 100 ms and all of the realistic queries in our test suite take less than 50 ms, while the median is under 30 ms. Short queries containing an exact match (case insensitive) are faster than 10 ms.
The architecture would allow to easily implement as-you-type search suggestions in under 10 milliseconds if deemed desirable.
License
Prepared by Flax & Teal Limited for ONS Alpha project. Copyright © 2022, Office for National Statistics (https://www.ons.gov.uk)
Released under MIT license, see LICENSE for details.
License
Prepared by Flax & Teal Limited for ONS Alpha project. Copyright © 2022, Office for National Statistics (https://www.ons.gov.uk)
Released under MIT license, see LICENSE for details.
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 berlin-0.3.10-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6e4444836bf44d8da49f184c93c54eb19be356321873832f05fafc9ced96a39e |
|
MD5 | 6de6b83e803608475ca648c4bd220188 |
|
BLAKE2b-256 | c8f8a6c6a7d1a6a57e4ab4bd6afec0411e89548b62bbbeef75edd01112a97b0a |
Hashes for berlin-0.3.10-pp310-pypy310_pp73-manylinux_2_12_i686.manylinux2010_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | cf837e85cca95a44c60642ab6faa6f4ef9ee1e5b6122084e16bc709cb55ecd1c |
|
MD5 | dfd6c6d51972a9efade029d3b055c7d1 |
|
BLAKE2b-256 | 07564971c0379d5fc573710196af3519044a2b4881ae7ed4e8622b5be112ac09 |
Hashes for berlin-0.3.10-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | d235c930355ec1e319c6f01b5340e2df681553f256fab28378a770e2d08af6fa |
|
MD5 | 903448fe5bb68a63ed47981494d4e688 |
|
BLAKE2b-256 | f4e630a36504dde68c74f91d8a6ab2235ac91b0d5fbc917774d6aa04e4307901 |
Hashes for berlin-0.3.10-pp39-pypy39_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4d023d14786686f78953312cc3675d544a4225ce80ae3bbb290579b2e8e43f4d |
|
MD5 | e885191ca075a805b085101061dbba88 |
|
BLAKE2b-256 | 3246977c896bd56adaf3cc0f4f5a62efbe834df484b74eb3acb986d5a26dfd53 |
Hashes for berlin-0.3.10-pp39-pypy39_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6bafcfe48b9fa598479eec4e07f1cdae53a7617268f93d1f28118bcbc96980d4 |
|
MD5 | ff58ae5acf63fb55cb71d9d0c4d97642 |
|
BLAKE2b-256 | 6840696eaa800f604d0f01252b6d7b90353019ccc31d0c0727c58e775fa89f4f |
Hashes for berlin-0.3.10-pp39-pypy39_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 31e2a725344f615b9a3f4266b12e9e5d7c1c3c560ea8a69328d49e02910785d0 |
|
MD5 | 41241a0655fc4e7649503cf612cf5d31 |
|
BLAKE2b-256 | cd631f813d62f7a61846318080aaa5926964e73e605d0b174ab9424ada81ad0b |
Hashes for berlin-0.3.10-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 272b13ae4c35be1a46b169b2266bedec411fe7b1a450d90199427e402f82af25 |
|
MD5 | 66780e497a274daacc5d4439c78855cd |
|
BLAKE2b-256 | 578f89f1e8888ec448f088a5ef49c34f84d33dbdfa776c703e630878bfe936f4 |
Hashes for berlin-0.3.10-pp39-pypy39_pp73-manylinux_2_12_i686.manylinux2010_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 23e13bfe4fc7985bb1e08e634ceb52b64deaf7b76f363dc5d727f76095111a91 |
|
MD5 | f85d93828dddd77df049c98abdc10f83 |
|
BLAKE2b-256 | d1f1e8e61c7166914b7f881a98fb6c8fc64d7c29159d6bf27d2ec33e0f2eb6ae |
Hashes for berlin-0.3.10-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 166377b61c685fc86a14fb25f5c92a13e93ab79d33b5c2f398392cefffd951c2 |
|
MD5 | 2291c8ab72fd825c8afa92c688511a30 |
|
BLAKE2b-256 | 82c5b7ae1c846724f482015cd776ab813b823353ff957155a42b3036742e3f30 |
Hashes for berlin-0.3.10-pp38-pypy38_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ebd4c71f5e011f0044076fc2724f56d6e2d3040c793b8c38372cd81c288aa950 |
|
MD5 | 9e47697c84f3c65f808e2ee449a42696 |
|
BLAKE2b-256 | 75340305b95ac527b052a67a2858a72d25c8e225c6ea8542c56434ae9ea8fe0e |
Hashes for berlin-0.3.10-pp38-pypy38_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0e70e6f20683ece2c3b4cb575d7b6f17bf2107e93998c82aa0cdda94fe31e361 |
|
MD5 | b47ac7c1297db6ff52bc65566b85a50c |
|
BLAKE2b-256 | 935b080dcafef0f513b88a3ba9214933cbd1f6d4931f1e190b8e8c4dacbf3421 |
Hashes for berlin-0.3.10-pp38-pypy38_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 82c14ee1676baf24ff852441b8757e8352d407bcfc930b49106e714d0d3d16a6 |
|
MD5 | f874351532557b3894c288b95b1a6082 |
|
BLAKE2b-256 | e8a2f4aaebc58863e1aa89d2a1d4ff9a5b86c6a2b9307aca3d520df54fdcd376 |
Hashes for berlin-0.3.10-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | d5d0983c0f9250c2b0d170c13726439ef8f0c3e5f7dc79366dc45cf37f7473e3 |
|
MD5 | a68c284121eecf51d5b1efd5db9f4f85 |
|
BLAKE2b-256 | ad8faae54debfaf8b615d5c17258bc48c2daa6882ad1deff7daa3474a9422d11 |
Hashes for berlin-0.3.10-pp38-pypy38_pp73-manylinux_2_12_i686.manylinux2010_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 222413813303a6c0953d09ce4be845c1f8e83e8d55e87cc152d5d31cf797620f |
|
MD5 | f9a991c93c084a1f49b7b4f6c894feb8 |
|
BLAKE2b-256 | df9f2a54e302827dad1048b48c1972e15494fd336e0596d840bbcc80939718ce |
Hashes for berlin-0.3.10-cp312-none-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 18bca13391e45aa1772bca3683fd10fa2f553b6ba80b0193189c68cb96dbda36 |
|
MD5 | e4bc851fc657ba51cb5c5242dcd87f53 |
|
BLAKE2b-256 | b0efc38a84ba059f217b7d7c8f4b7906307e00a32e9354fe6beab9376afd92f0 |
Hashes for berlin-0.3.10-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | c33bac7d4b9b746fe241534e336755a70956bc3ee49a63ad501a07082ff95510 |
|
MD5 | 4e9cb55e537e42b7fe9404629831c56e |
|
BLAKE2b-256 | e4c0c3aa9dae8312330aa1bb929fb513ca78d590b71113d9fa44a12568611f9f |
Hashes for berlin-0.3.10-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ff42734e888d50845ac28d85094516dd804176605aba8dc3187d493eca795c28 |
|
MD5 | 6277a526570c86075840ebf9391c3fb2 |
|
BLAKE2b-256 | b5d9a5a59618d3159fd807cb6f9e0b395eda5c1a43dac9ed7b6d2699f41135c7 |
Hashes for berlin-0.3.10-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | fedec123b2f6ef4824250153c43f9088c21891ee2f24063f5b3224c37830a878 |
|
MD5 | 3486571e6ecf044cf4d2ccb13bca3166 |
|
BLAKE2b-256 | 36a8111f6d9ef9d9c40a84f47d03db828efc3d36ac62fa75f5cf5dc929b5c973 |
Hashes for berlin-0.3.10-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8339280dffd93682fc143fa52d0c5f72ceb9b20e01f264af25d5495609edd0cb |
|
MD5 | 694838bdf9c86a9b79bdc50cf7d61261 |
|
BLAKE2b-256 | 8f7e373354d043ea78bfef9ca05ca6504ab38570af0850dfe18b874668563000 |
Hashes for berlin-0.3.10-cp312-cp312-manylinux_2_12_i686.manylinux2010_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 747aa2bb4660210b16f7efd7d636b1545e2f6cdc5237de221d8977876b654518 |
|
MD5 | 2da9e99aea227e29fb285b41d3031041 |
|
BLAKE2b-256 | 0336591ebcd6c5bf5a9bfdc334558fe2dd0edca059ed20c35adc48939a5f601e |
Hashes for berlin-0.3.10-cp312-cp312-macosx_10_7_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | e056a4b710aff7f135964a01ecaee7547c9b68737fa4ed7a48d600b8dcbf6f70 |
|
MD5 | 20905c342bc03e08794b4dee4748275e |
|
BLAKE2b-256 | 1526d1b57141bcdc4ed738b3c69e18643f3b221bbe5606e97c3630ba33bad62d |
Hashes for berlin-0.3.10-cp311-none-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3025089262adbb7b8379534711ae65f3d2536d7d1eea074444b2f3a7c3a44d3b |
|
MD5 | f1a1daaec0383f68a3b0cc97f7ebef7e |
|
BLAKE2b-256 | 25c7fee5de659bdcbaf05c7d93cd204ae391e595f7f1f9e39e5dc453596a5b83 |
Hashes for berlin-0.3.10-cp311-none-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | d5dd183f19f85bc0912ecc343057201b7d75fe81fb8c37510edcf24ed815cc78 |
|
MD5 | c3c64226ce12cdb1c5cd1b9ab5cd566d |
|
BLAKE2b-256 | 4bde5edfc91f2076521330b2b9e0c7281101f5e3fecab79707b44bd606012feb |
Hashes for berlin-0.3.10-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | cab2d58f491aa0a40099a21ea37e77181780af7e9d29d990ef500b786d198363 |
|
MD5 | bac0b118a8d0f23bb0ecd75c812947dc |
|
BLAKE2b-256 | 04ae0c116856357d831560f425235dca7fdb4e686422a82af2e9d020b4aa1940 |
Hashes for berlin-0.3.10-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 73faeab9c3185f604c5c9786e5eb77472693919b1905285b19fece5c0182f822 |
|
MD5 | 06dee2b52e1019ecd0155bb1fd344c7b |
|
BLAKE2b-256 | 4fb5a7967de4028d533ab1b401ae31072a3b4535aa6a6aea4ac5088d74ab6da0 |
Hashes for berlin-0.3.10-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | e0ba9ffb34a535bd1ab66e077fec97868b0eda7a2a64ecb21c5e822e8c2849d8 |
|
MD5 | eda408442d15f652803049bd56fc15b3 |
|
BLAKE2b-256 | 38208b3b9438c526aad12c539a6367acec41b6914b7503c3689ba3a3adb5bbc9 |
Hashes for berlin-0.3.10-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 950169857a9c23c25dab59546ad9620489ef3700c4acf120f858e7f7324deae3 |
|
MD5 | 55c50bac552a7f5d7045de568be04a7a |
|
BLAKE2b-256 | 31a347de97003f8df897db0f5e6b93d713322bdc038a0704f10045569df5f648 |
Hashes for berlin-0.3.10-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 171e11bb975621927cce21e7456586e12aa4febfe4e98495cc87ca39721e0523 |
|
MD5 | 04367de8c0f9e1f1598cf02b2a436349 |
|
BLAKE2b-256 | f3ee8860cc0d4354d47655d7357462da0b02135bc5e25c4a49eca4162d83a4b7 |
Hashes for berlin-0.3.10-cp311-cp311-manylinux_2_12_i686.manylinux2010_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ebaf93df50bbd2b6720cdfe469b875d1efb058c3c8c72e71d49955bcb74958bb |
|
MD5 | f63be0ed06fe15998ac9fd489ab814a3 |
|
BLAKE2b-256 | 68876d64ed41b3061b2e798feefa95fbe73be60478bcc0b963b79612ae4f9094 |
Hashes for berlin-0.3.10-cp311-cp311-macosx_11_0_arm64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ceeb841b269dbb102cf7f10e645a4cdf97bf92aac587d53d2402c70fc74418f0 |
|
MD5 | a40b44c0c3be16887c4c30f657ea0118 |
|
BLAKE2b-256 | b3eeb1e29abbce2d28c22a55fbef5c962a5564a42aae128d19477496213fe0e2 |
Hashes for berlin-0.3.10-cp311-cp311-macosx_10_7_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0f4b3773ad063ec26173dfbe76b622d6d14b203fc80c1427315b30ace5fa91fd |
|
MD5 | eef70eacef1ceced84b383384601429e |
|
BLAKE2b-256 | cd5ac1a21099d4b6e9e83144640bac81840c16fb00d41f7dc0c603a7e5c67e1e |
Hashes for berlin-0.3.10-cp310-none-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8da573cb6a3551f2b77dde85832cc2802db5758c1c23d7a91c6a1e5b7748c982 |
|
MD5 | 0aca820c0d897c1154bb8826c79b4154 |
|
BLAKE2b-256 | 8221842032a8cc8f055b0d0f7ba84e05973c9dd8663fef0fe239b54466346a36 |
Hashes for berlin-0.3.10-cp310-none-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 27d291e521659127d6c69f29d89985b30e4c8b1d580657cd0d76babf405192b9 |
|
MD5 | 320e824ee06f1ce42033c7622b1a4cd8 |
|
BLAKE2b-256 | c87c635faa21d39ac6d92533a2af27fd957c669d0fac9be452005c95e9069dc9 |
Hashes for berlin-0.3.10-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ab823ba412cfad9e09c66de7140a251d4e44829ce9a9b79c6d4fda3e52b087b5 |
|
MD5 | a2d856078c3a04df5880f2bccb5c284e |
|
BLAKE2b-256 | 5f1b26fbf851eea05b75241246d0e8276f44b1a40a94cebf3ad4faa49fdb2bd6 |
Hashes for berlin-0.3.10-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8561e7923132940fbff02daa753bde961d6a559fdc5108fcbf5b30ee4854b986 |
|
MD5 | ce0db1d4f9f1451c3102060436f72a66 |
|
BLAKE2b-256 | 87f5ce9c8836a53adc71e1da15a4e56406ede9f49abd3925f8f0a18381a7c02a |
Hashes for berlin-0.3.10-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 17fd4084100a78e5865a48eef1c2e13c7dff22be6f6521eca40b670671bd391b |
|
MD5 | f49f41f1596c9f7dc8ec397dc070ce64 |
|
BLAKE2b-256 | 9016ff94e36da1c9726bedf6d63c9fc5c04c0cf555f166dcfbb5cb13f9540697 |
Hashes for berlin-0.3.10-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | dbac76e8de4644ddd314d2583bdf63cd817389cdcdcf941f21b8c5d0b3807e0a |
|
MD5 | 526123a1472e0ab69bd7fd1940e6a724 |
|
BLAKE2b-256 | ef8c7a3187adde2f4d6ea21fd468416be19d7af3b320ca6c16492deff81afc7e |
Hashes for berlin-0.3.10-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 12fcfa35d548eb099cf4a764ce9ff9244402c2d090ce7453796d7f544ef751db |
|
MD5 | 40026c13af1601473aa032705e83ffbc |
|
BLAKE2b-256 | 21388d168b6e62cca949d3bac4ed1f6dc1eb13bdfe44279b3d9d1fa3e0d99e75 |
Hashes for berlin-0.3.10-cp310-cp310-manylinux_2_12_i686.manylinux2010_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9e8a8948260ce68f407332657106f8a31de79dbbb16437e1e36508a742b09a1b |
|
MD5 | 209cb11ec16a43be55e4a616a0fd68c4 |
|
BLAKE2b-256 | ed7d32e7d71a3d2d2b3ddcdf471243f47fbdb44dc50aff7860dd0c2459ea8d93 |
Hashes for berlin-0.3.10-cp310-cp310-macosx_11_0_arm64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | d2c2750697daf5546e29c7521144cd45a3373085b1f5fc7a93a6de848f96acfb |
|
MD5 | e3b7221d8ca62ee0accb74ea31c7538e |
|
BLAKE2b-256 | 057451d518ad9a934b5ee64fa816dcb17a9f81f7e26c1bcef8826e09bab4e043 |
Hashes for berlin-0.3.10-cp310-cp310-macosx_10_7_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | cb1bc3183718c3cfbe6e3bd4e0cac6c4877e59e9bf8b0e27b502cdf21e19cb02 |
|
MD5 | c5a841a40fd257055a764ccf217ecc32 |
|
BLAKE2b-256 | 6a1331c81288fbcc0e30a11aeb26c0938d41ed91ac5264e1b42dd778d5eec350 |
Hashes for berlin-0.3.10-cp39-none-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 361559e9a12195261d3969d4881feafe2070f7c1c810a3cf4d6e0da7acd3c48f |
|
MD5 | 9f7cd4d6a5524d92b2b6adfe7d18bf7c |
|
BLAKE2b-256 | 9ba021dbd239b1238cf9c3bca7835b8b57821c8dc796ceb71a5335eec0032d6d |
Hashes for berlin-0.3.10-cp39-none-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 98344b50ebab014ec8c08cfe4115c724c16c8d53329a56406eb1ad45f2f17f20 |
|
MD5 | 08e6d998eeb48300359212be1287c7bc |
|
BLAKE2b-256 | d4a5dd9b801709b438b0d4a91adbc5eabe823788b9d31470da506a863524974a |
Hashes for berlin-0.3.10-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 134404fa68119473a1783d9e902d478cce530859cb0a2931fbc2bc5280a661ad |
|
MD5 | b9bcecae9cc8653f029da3c50fccec74 |
|
BLAKE2b-256 | dec88f4238b845526e31511692e0e595ac1c79f56b9b87048693b44bc8ccebfb |
Hashes for berlin-0.3.10-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 826ba0c7bdc7ed4e469f06d448ea3832bfb06ddee19001c1251e1d9288d3940c |
|
MD5 | 01e3cdef729695c0ec6ee0e33ccad2bc |
|
BLAKE2b-256 | e45a2d59bf0cff1eb3129836a115b335807e5be466e72f659001e0343c1e3355 |
Hashes for berlin-0.3.10-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 45bc99bc41293b81094615b60124f1cce2bac8ad474891ac895868aa433306cc |
|
MD5 | 6ee34d79b0b7d11879499de868ee8844 |
|
BLAKE2b-256 | d1774d80f06ae0310460abeb4aa89b57cf2191f092e3a4cf50ddda0aea30885e |
Hashes for berlin-0.3.10-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | f98d343812d8a4c88f3f908f2469e6fe21b7b74ea4cb04e6b725c2ef91400c0d |
|
MD5 | 23794863d06bd956bb3343f5af88d45a |
|
BLAKE2b-256 | aa104deb0cdb88932f58207c024e87a610c30aff0ac221cf144028d9bbc48f0b |
Hashes for berlin-0.3.10-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4669e0f64e056a7d1d0c828359c2af146e6a7974a290b4ec4666fd1c561d1942 |
|
MD5 | c87ce9b173156e6f2df35c2b640e7d52 |
|
BLAKE2b-256 | 37b6b5b3328b61ba7ba4ba04957c15b99527324e4f6d4867671c9dedbf118466 |
Hashes for berlin-0.3.10-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 45aca0cf2405c726b47d023b2cb3c3a6707a2a2d240ae90d1a2a91595c83c680 |
|
MD5 | fa6f6fd963ef70a4730ec903f6b1c922 |
|
BLAKE2b-256 | e419f5ffef903ceb28ab73d91656c2b3cef484b5761d244b6475c76e3079a154 |
Hashes for berlin-0.3.10-cp38-none-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3034d2b2926fdeb468e8ae419fd4074fa21e6d3a95fe9177dac3c592d6b54b90 |
|
MD5 | 86d10b740c171310776f1ffee055db58 |
|
BLAKE2b-256 | 9cfd400757b78a3db80aab3cdd0ce77212cd86b316c641ce5d1052857c21b169 |
Hashes for berlin-0.3.10-cp38-none-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 03f7187acffcbb9ff86fbe940a2ca640cff68a1233937a5b80a70a91a89c844d |
|
MD5 | ffb1436b56de067aadb92090df1059c2 |
|
BLAKE2b-256 | 2fa4540bc43f4f8609dde984e07b3946d26e0f349fcbbbbab196b677a44f30bc |
Hashes for berlin-0.3.10-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | bdbb7952ec26b29f76db1c2e49358be7783e7a763762e8be6d951f85a4fa72fc |
|
MD5 | 44f97da90ebd0b9ee895b3a86508f48f |
|
BLAKE2b-256 | 244ef270f3fbc322b760af9d26ddf320ce303a488683045112d3762fc6008207 |
Hashes for berlin-0.3.10-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 54f7c558ff9bf6bff160ca9da5a507713aa1b03c86250f93fce98311f5d13af5 |
|
MD5 | 20323659f5644697ebde4c8e00f3f952 |
|
BLAKE2b-256 | 936be52623d7d65733a3c24a185757bd65e669d0430c23b688b66a94668b8a84 |
Hashes for berlin-0.3.10-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1062db9333834c95224f6e369e761c6fc84fcce1470fe61490ac1a945d067f7f |
|
MD5 | 18a2298432ab33d111c15606e1b67c19 |
|
BLAKE2b-256 | 2cc62bfeca3fc9ed46a9360c1bce367df0b8ce800ebd33001c9c43e5a4c37f18 |
Hashes for berlin-0.3.10-cp38-cp38-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2afb2f410181a9da1f6797a6450fcf7432582b1479b2b3c7257b5ccb80bf9fe7 |
|
MD5 | 640895b4e80bc1a922793010ff15c0b5 |
|
BLAKE2b-256 | 39d84c04e70935440325cdf00e2d186c351ef220e9778697d0494f5b9bdde9ce |
Hashes for berlin-0.3.10-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 60b53a8387b3c5b4347b1a9fe09429034c9fbc6e7cd6b92311d80dd785731075 |
|
MD5 | b896f23f5de1eb6fd9144160bc1f8d69 |
|
BLAKE2b-256 | 2988cbbf627d2c13e6ef63b4914b0f610ba8bd91d7cea22eb4fbc8428f05ae9a |
Hashes for berlin-0.3.10-cp38-cp38-manylinux_2_12_i686.manylinux2010_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 57950b2d9a397e78dd70b98f302d501d418a797439e873fc65771c878ec0c7db |
|
MD5 | a989c3dbb35b62cd7649007971375c9a |
|
BLAKE2b-256 | 744cd27b9112997c17510b0ebbe3b495c9d2d0a26e9342892960035fa8556621 |