From 73cd086635543632f792e5427883b9453d5b4cc4 Mon Sep 17 00:00:00 2001 From: Paul Schreiber Date: Thu, 2 May 2024 15:08:17 -0400 Subject: [PATCH 01/25] fix: add soil_id dependency --- requirements/base.in | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/requirements/base.in b/requirements/base.in index 6115c9057..f232ddc27 100644 --- a/requirements/base.in +++ b/requirements/base.in @@ -12,7 +12,7 @@ django-storages django-structlog fiona --no-binary fiona geopandas -graphene-django +graphene-django==3.1.5 httpx openpyxl pandas @@ -25,3 +25,4 @@ requests rules sentry-sdk[django] shapely +soil_id @ https://github.com/techmatters/soil-id-algorithm/archive/ddf718a.zip From 8f6e90ccf9b21b3e007f0ff0c97cea6242a007dc Mon Sep 17 00:00:00 2001 From: Paul Schreiber Date: Mon, 13 May 2024 14:16:08 -0400 Subject: [PATCH 02/25] chore: update requirements.txt --- requirements.txt | 433 +++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 420 insertions(+), 13 deletions(-) diff --git a/requirements.txt b/requirements.txt index db028a014..e0b85e841 100644 --- a/requirements.txt +++ b/requirements.txt @@ -24,10 +24,20 @@ asgiref==3.8.1 \ attrs==23.2.0 \ --hash=sha256:935dc3b529c262f6cf76e50877d35a4bd3c1de194fd41f47a2b7ae8f19971f30 \ --hash=sha256:99b87a485a5820b23b879f04c2305b44b951b502fd64be915879d77a7e8fc6f1 - # via fiona -boto3==1.34.98 \ - --hash=sha256:030e43b8efe22b4cf10b9f3ef9e30cd4cf9ef9784b26efe9a4583339f2b2bcec \ - --hash=sha256:28c10956033fa79e64529f48c3b62db86d5e4b77024a7343764b6bde6b553543 + # via + # cattrs + # fiona + # requests-cache + # soil-id +blinker==1.8.1 \ + --hash=sha256:5f1cdeff423b77c31b89de0565cd03e5275a03028f44b2b15f912632a58cced6 \ + --hash=sha256:da44ec748222dcd0105ef975eed946da197d5bdf8bafb6aa92f5bc89da63fa25 + # via + # flask + # soil-id +boto3==1.34.101 \ + --hash=sha256:1d854b5880e185db546b4c759fcb664bf3326275064d2b44229cc217e8be9d7e \ + --hash=sha256:79b93f3370ea96ce838042bc2eac0c996aee204b01e7e6452eb77abcbe697d6a # via # -r requirements/base.in # django-ses @@ -37,6 +47,12 @@ botocore==1.34.103 \ # via # boto3 # s3transfer +cattrs==23.2.3 \ + --hash=sha256:0341994d94971052e9ee70662542699a3162ea1e0c62f7ce1b4a57f563685108 \ + --hash=sha256:a934090d95abaa9e911dac357e3a8699e0b4b14f8529bcc7d2b1ad9d51672b9f + # via + # requests-cache + # soil-id certifi==2024.2.2 \ --hash=sha256:0569859f95fc761b18b45ef421b1290a0f65f147e92a1e5eb3e635f9a5e4e66f \ --hash=sha256:dc383c07b76109f368f6106eee2b593b04a011ea4d55f652c6ca24a754d1cdd1 @@ -44,9 +60,11 @@ certifi==2024.2.2 \ # fiona # httpcore # httpx + # pyogrio # pyproj # requests # sentry-sdk + # soil-id cffi==1.16.0 \ --hash=sha256:0c9ef6ff37e974b73c25eecc13952c55bceed9112be2d9d938ded8e856138bcc \ --hash=sha256:131fd094d1065b19540c3d72594260f118b231090295d8c34e19a7bbcf2e860a \ @@ -192,7 +210,9 @@ charset-normalizer==3.3.2 \ --hash=sha256:fb69256e180cb6c8a894fee62b3afebae785babc1ee98b81cdf68bbca1987f33 \ --hash=sha256:fd1abc0d89e30cc4e02e4064dc67fcc51bd941eb395c502aac3ec19fab46b519 \ --hash=sha256:ff8fa367d09b717b2a17a052544193ad76cd49979c805768879cb63d9ca50561 - # via requests + # via + # requests + # soil-id click==8.1.7 \ --hash=sha256:ae74fb96c20a0277a1d615f1e4d73c8414f5a98db8b799a7931d1582f3390c28 \ --hash=sha256:ca9853ad459e787e2192211578cc907e7594e294c7ccc834310722b41b9ca6de @@ -200,14 +220,23 @@ click==8.1.7 \ # click-plugins # cligj # fiona + # flask + # soil-id click-plugins==1.1.1 \ --hash=sha256:46ab999744a9d831159c3411bb0c79346d94a444df9a3a3742e9ed63645f264b \ --hash=sha256:5d262006d3222f5057fd81e1623d4443e41dcda5dc815c06b442aa3c02889fc8 - # via fiona + # via + # fiona + # soil-id cligj==0.7.2 \ --hash=sha256:a4bc13d623356b373c2c27c53dbd9c68cae5d526270bfa71f6c6fa69669c6b27 \ --hash=sha256:c1ca117dbce1fe20a5809dc96f01e1c2840f6dcc939b3ddbb1111bf330ba82df - # via fiona + # via + # fiona + # soil-id +composition-stats==2.0.0 \ + --hash=sha256:d0f741ca968ef45a0c70d7a4ed68f4d140e82fddb4664a33f34ce213ddc66f6c + # via soil-id cryptography==42.0.7 \ --hash=sha256:02c0eee2d7133bdbbc5e24441258d5d2244beb31da5ed19fbb80315f4bbbff55 \ --hash=sha256:0d563795db98b4cd57742a78a288cdbdc9daedac29f2239793071fe114f13785 \ @@ -248,9 +277,9 @@ dj-database-url==2.1.0 \ --hash=sha256:04bc34b248d4c21aaa13e4ab419ae6575ef5f10f3df735ce7da97722caa356e0 \ --hash=sha256:f2042cefe1086e539c9da39fad5ad7f61173bf79665e69bf7e4de55fa88b135f # via -r requirements/base.in -django==5.0.4 \ - --hash=sha256:4bd01a8c830bb77a8a3b0e7d8b25b887e536ad17a81ba2dce5476135c73312bd \ - --hash=sha256:916423499d75d62da7aa038d19aef23d23498d8df229775eb0a6309ee1013775 +django==5.0.6 \ + --hash=sha256:8363ac062bb4ef7c3f12d078f6fa5d154031d129a15170a1066412af49d30905 \ + --hash=sha256:ff1b61005004e476e0aeea47c7f79b85864c70124030e95146315396f1e7951f # via # -r requirements/base.in # dj-database-url @@ -314,10 +343,17 @@ fiona==1.9.6 \ # via # -r requirements/base.in # geopandas + # soil-id +flask==3.0.3 \ + --hash=sha256:34e815dfaa43340d1d15a5c3a02b8476004037eb4840b34910c6e21679d288f3 \ + --hash=sha256:ceb27b0af3823ea2737928a4d99d125a06175b8512c445cbd9a9ce200ef76842 + # via soil-id geopandas==0.14.4 \ --hash=sha256:3bb6473cb59d51e1a7fe2dbc24a1a063fb0ebdeddf3ce08ddbf8c7ddc99689aa \ --hash=sha256:56765be9d58e2c743078085db3bd07dc6be7719f0dbe1dfdc1d705cb80be7c25 - # via -r requirements/base.in + # via + # -r requirements/base.in + # soil-id graphene==3.3 \ --hash=sha256:529bf40c2a698954217d3713c6041d69d3f719ad0080857d7ee31327112446b0 \ --hash=sha256:bb3810be33b54cb3e6969506671eb72319e8d7ba0d5ca9c8066472f75bf35a38 @@ -362,16 +398,129 @@ idna==3.7 \ # anyio # httpx # requests + # soil-id +imageio==2.34.1 \ + --hash=sha256:408c1d4d62f72c9e8347e7d1ca9bc11d8673328af3913868db3b828e28b40a4c \ + --hash=sha256:f13eb76e4922f936ac4a7fec77ce8a783e63b93543d4ea3e40793a6cabd9ac7d + # via + # scikit-image + # soil-id +itsdangerous==2.2.0 \ + --hash=sha256:c6242fc49e35958c8b15141343aa660db5fc54d4f13a1db01a3f5891b98700ef \ + --hash=sha256:e0050c0b7da1eea53ffaf149c0cfbb5c6e2e2b69c4bef22c81fa6eb73e5f6173 + # via + # flask + # soil-id +jinja2==3.1.3 \ + --hash=sha256:7d6d50dd97d52cbc355597bd845fabfbac3f551e1f99619e39a35ce8c370b5fa \ + --hash=sha256:ac8bd6544d4bb2c9792bf3a159e80bba8fda7f07e81bc3aed565432d5925ba90 + # via + # flask + # soil-id jmespath==1.0.1 \ --hash=sha256:02e2e4cc71b5bcab88332eebf907519190dd9e6e82107fa7f83b1003a6252980 \ --hash=sha256:90261b206d6defd58fdd5e85f478bf633a2901798906be2ad389150c5c60edbe # via # boto3 # botocore +joblib==1.4.2 \ + --hash=sha256:06d478d5674cbc267e7496a410ee875abd68e4340feff4490bcb7afb88060ae6 \ + --hash=sha256:2382c5816b2636fbd20a09e0f4e9dad4736765fdfb7dca582943b9c1366b3f0e + # via + # scikit-learn + # soil-id jwcrypto==1.5.6 \ --hash=sha256:150d2b0ebbdb8f40b77f543fb44ffd2baeff48788be71f67f03566692fd55789 \ --hash=sha256:771a87762a0c081ae6166958a954f80848820b2ab066937dc8b8379d65b1b039 # via django-oauth-toolkit +lazy-loader==0.4 \ + --hash=sha256:342aa8e14d543a154047afb4ba8ef17f5563baad3fc610d7b15b213b0f119efc \ + --hash=sha256:47c75182589b91a4e1a85a136c074285a5ad4d9f39c63e0d7fb76391c4574cd1 + # via + # scikit-image + # soil-id +markupsafe==2.1.5 \ + --hash=sha256:00e046b6dd71aa03a41079792f8473dc494d564611a8f89bbbd7cb93295ebdcf \ + --hash=sha256:075202fa5b72c86ad32dc7d0b56024ebdbcf2048c0ba09f1cde31bfdd57bcfff \ + --hash=sha256:0e397ac966fdf721b2c528cf028494e86172b4feba51d65f81ffd65c63798f3f \ + --hash=sha256:17b950fccb810b3293638215058e432159d2b71005c74371d784862b7e4683f3 \ + --hash=sha256:1f3fbcb7ef1f16e48246f704ab79d79da8a46891e2da03f8783a5b6fa41a9532 \ + --hash=sha256:2174c595a0d73a3080ca3257b40096db99799265e1c27cc5a610743acd86d62f \ + --hash=sha256:2b7c57a4dfc4f16f7142221afe5ba4e093e09e728ca65c51f5620c9aaeb9a617 \ + --hash=sha256:2d2d793e36e230fd32babe143b04cec8a8b3eb8a3122d2aceb4a371e6b09b8df \ + --hash=sha256:30b600cf0a7ac9234b2638fbc0fb6158ba5bdcdf46aeb631ead21248b9affbc4 \ + --hash=sha256:397081c1a0bfb5124355710fe79478cdbeb39626492b15d399526ae53422b906 \ + --hash=sha256:3a57fdd7ce31c7ff06cdfbf31dafa96cc533c21e443d57f5b1ecc6cdc668ec7f \ + --hash=sha256:3c6b973f22eb18a789b1460b4b91bf04ae3f0c4234a0a6aa6b0a92f6f7b951d4 \ + --hash=sha256:3e53af139f8579a6d5f7b76549125f0d94d7e630761a2111bc431fd820e163b8 \ + --hash=sha256:4096e9de5c6fdf43fb4f04c26fb114f61ef0bf2e5604b6ee3019d51b69e8c371 \ + --hash=sha256:4275d846e41ecefa46e2015117a9f491e57a71ddd59bbead77e904dc02b1bed2 \ + --hash=sha256:4c31f53cdae6ecfa91a77820e8b151dba54ab528ba65dfd235c80b086d68a465 \ + --hash=sha256:4f11aa001c540f62c6166c7726f71f7573b52c68c31f014c25cc7901deea0b52 \ + --hash=sha256:5049256f536511ee3f7e1b3f87d1d1209d327e818e6ae1365e8653d7e3abb6a6 \ + --hash=sha256:58c98fee265677f63a4385256a6d7683ab1832f3ddd1e66fe948d5880c21a169 \ + --hash=sha256:598e3276b64aff0e7b3451b72e94fa3c238d452e7ddcd893c3ab324717456bad \ + --hash=sha256:5b7b716f97b52c5a14bffdf688f971b2d5ef4029127f1ad7a513973cfd818df2 \ + --hash=sha256:5dedb4db619ba5a2787a94d877bc8ffc0566f92a01c0ef214865e54ecc9ee5e0 \ + --hash=sha256:619bc166c4f2de5caa5a633b8b7326fbe98e0ccbfacabd87268a2b15ff73a029 \ + --hash=sha256:629ddd2ca402ae6dbedfceeba9c46d5f7b2a61d9749597d4307f943ef198fc1f \ + --hash=sha256:656f7526c69fac7f600bd1f400991cc282b417d17539a1b228617081106feb4a \ + --hash=sha256:6ec585f69cec0aa07d945b20805be741395e28ac1627333b1c5b0105962ffced \ + --hash=sha256:72b6be590cc35924b02c78ef34b467da4ba07e4e0f0454a2c5907f473fc50ce5 \ + --hash=sha256:7502934a33b54030eaf1194c21c692a534196063db72176b0c4028e140f8f32c \ + --hash=sha256:7a68b554d356a91cce1236aa7682dc01df0edba8d043fd1ce607c49dd3c1edcf \ + --hash=sha256:7b2e5a267c855eea6b4283940daa6e88a285f5f2a67f2220203786dfa59b37e9 \ + --hash=sha256:823b65d8706e32ad2df51ed89496147a42a2a6e01c13cfb6ffb8b1e92bc910bb \ + --hash=sha256:8590b4ae07a35970728874632fed7bd57b26b0102df2d2b233b6d9d82f6c62ad \ + --hash=sha256:8dd717634f5a044f860435c1d8c16a270ddf0ef8588d4887037c5028b859b0c3 \ + --hash=sha256:8dec4936e9c3100156f8a2dc89c4b88d5c435175ff03413b443469c7c8c5f4d1 \ + --hash=sha256:97cafb1f3cbcd3fd2b6fbfb99ae11cdb14deea0736fc2b0952ee177f2b813a46 \ + --hash=sha256:a17a92de5231666cfbe003f0e4b9b3a7ae3afb1ec2845aadc2bacc93ff85febc \ + --hash=sha256:a549b9c31bec33820e885335b451286e2969a2d9e24879f83fe904a5ce59d70a \ + --hash=sha256:ac07bad82163452a6884fe8fa0963fb98c2346ba78d779ec06bd7a6262132aee \ + --hash=sha256:ae2ad8ae6ebee9d2d94b17fb62763125f3f374c25618198f40cbb8b525411900 \ + --hash=sha256:b91c037585eba9095565a3556f611e3cbfaa42ca1e865f7b8015fe5c7336d5a5 \ + --hash=sha256:bc1667f8b83f48511b94671e0e441401371dfd0f0a795c7daa4a3cd1dde55bea \ + --hash=sha256:bec0a414d016ac1a18862a519e54b2fd0fc8bbfd6890376898a6c0891dd82e9f \ + --hash=sha256:bf50cd79a75d181c9181df03572cdce0fbb75cc353bc350712073108cba98de5 \ + --hash=sha256:bff1b4290a66b490a2f4719358c0cdcd9bafb6b8f061e45c7a2460866bf50c2e \ + --hash=sha256:c061bb86a71b42465156a3ee7bd58c8c2ceacdbeb95d05a99893e08b8467359a \ + --hash=sha256:c8b29db45f8fe46ad280a7294f5c3ec36dbac9491f2d1c17345be8e69cc5928f \ + --hash=sha256:ce409136744f6521e39fd8e2a24c53fa18ad67aa5bc7c2cf83645cce5b5c4e50 \ + --hash=sha256:d050b3361367a06d752db6ead6e7edeb0009be66bc3bae0ee9d97fb326badc2a \ + --hash=sha256:d283d37a890ba4c1ae73ffadf8046435c76e7bc2247bbb63c00bd1a709c6544b \ + --hash=sha256:d9fad5155d72433c921b782e58892377c44bd6252b5af2f67f16b194987338a4 \ + --hash=sha256:daa4ee5a243f0f20d528d939d06670a298dd39b1ad5f8a72a4275124a7819eff \ + --hash=sha256:db0b55e0f3cc0be60c1f19efdde9a637c32740486004f20d1cff53c3c0ece4d2 \ + --hash=sha256:e61659ba32cf2cf1481e575d0462554625196a1f2fc06a1c777d3f48e8865d46 \ + --hash=sha256:ea3d8a3d18833cf4304cd2fc9cbb1efe188ca9b5efef2bdac7adc20594a0e46b \ + --hash=sha256:ec6a563cff360b50eed26f13adc43e61bc0c04d94b8be985e6fb24b81f6dcfdf \ + --hash=sha256:f5dfb42c4604dddc8e4305050aa6deb084540643ed5804d7455b5df8fe16f5e5 \ + --hash=sha256:fa173ec60341d6bb97a89f5ea19c85c5643c1e7dedebc22f5181eb73573142c5 \ + --hash=sha256:fa9db3f79de01457b03d4f01b34cf91bc0048eb2c3846ff26f66687c2f6d16ab \ + --hash=sha256:fce659a462a1be54d2ffcacea5e3ba2d74daa74f30f5f143fe0c58636e355fdd \ + --hash=sha256:ffee1f21e5ef0d712f9033568f8344d5da8cc2869dbd08d87c84656e6a2d2f68 + # via + # jinja2 + # soil-id + # werkzeug +mysqlclient==2.2.4 \ + --hash=sha256:329e4eec086a2336fe3541f1ce095d87a6f169d1cc8ba7b04ac68bcb234c9711 \ + --hash=sha256:33bc9fb3464e7d7c10b1eaf7336c5ff8f2a3d3b88bab432116ad2490beb3bf41 \ + --hash=sha256:3c318755e06df599338dad7625f884b8a71fcf322a9939ef78c9b3db93e1de7a \ + --hash=sha256:4e80dcad884dd6e14949ac6daf769123223a52a6805345608bf49cdaf7bc8b3a \ + --hash=sha256:9d3310295cb682232cadc28abd172f406c718b9ada41d2371259098ae37779d3 \ + --hash=sha256:9d4c015480c4a6b2b1602eccd9846103fc70606244788d04aa14b31c4bd1f0e2 \ + --hash=sha256:ac44777eab0a66c14cb0d38965572f762e193ec2e5c0723bcd11319cc5b693c5 \ + --hash=sha256:d43987bb9626096a302ca6ddcdd81feaeca65ced1d5fe892a6a66b808326aa54 \ + --hash=sha256:e1ebe3f41d152d7cb7c265349fdb7f1eca86ccb0ca24a90036cde48e00ceb2ab + # via soil-id +networkx==3.3 \ + --hash=sha256:0c127d8b2f4865f59ae9cb8aafcd60b5c70f3241ebd66f7defad7c4ab90126c9 \ + --hash=sha256:28575580c6ebdaf4505b22c6256a2b9de86b316dc63ba9e93abde3d78dfdbcf2 + # via + # scikit-image + # soil-id numpy==1.26.4 \ --hash=sha256:03a8c78d01d9781b28a6989f6fa1bb2c4f2d51201cf99d3dd875df6fbd96b23b \ --hash=sha256:08beddf13648eb95f8d867350f6a018a4be2e5ad54c8d8caed89ebca558b2818 \ @@ -410,9 +559,18 @@ numpy==1.26.4 \ --hash=sha256:f870204a840a60da0b12273ef34f7051e98c3b5961b61b0c2c1be6dfd64fbcd3 \ --hash=sha256:ffa75af20b44f8dba823498024771d5ac50620e6915abac414251bd971b4529f # via + # composition-stats # geopandas + # imageio # pandas + # pyogrio + # rosetta-soil + # scikit-image + # scikit-learn + # scipy # shapely + # soil-id + # tifffile oauthlib==3.2.2 \ --hash=sha256:8139f29aac13e25d502680e9e19963e83f16838d48a0d71c287fe40e7067fbca \ --hash=sha256:9859c40929662bec5d64f34d01c99e093149682a3f38915dc0655d5a633dd918 @@ -427,6 +585,10 @@ packaging==24.0 \ # via # geopandas # gunicorn + # lazy-loader + # pyogrio + # scikit-image + # soil-id pandas==2.2.2 \ --hash=sha256:001910ad31abc7bf06f49dcc903755d2f7f3a9186c0c040b827e522e9cef0863 \ --hash=sha256:0ca6377b8fca51815f382bd0b697a0814c8bda55115678cbc94c30aacbb6eff2 \ @@ -460,9 +622,94 @@ pandas==2.2.2 \ # via # -r requirements/base.in # geopandas + # soil-id +pillow==10.3.0 \ + --hash=sha256:048ad577748b9fa4a99a0548c64f2cb8d672d5bf2e643a739ac8faff1164238c \ + --hash=sha256:048eeade4c33fdf7e08da40ef402e748df113fd0b4584e32c4af74fe78baaeb2 \ + --hash=sha256:0ba26351b137ca4e0db0342d5d00d2e355eb29372c05afd544ebf47c0956ffeb \ + --hash=sha256:0ea2a783a2bdf2a561808fe4a7a12e9aa3799b701ba305de596bc48b8bdfce9d \ + --hash=sha256:1530e8f3a4b965eb6a7785cf17a426c779333eb62c9a7d1bbcf3ffd5bf77a4aa \ + --hash=sha256:16563993329b79513f59142a6b02055e10514c1a8e86dca8b48a893e33cf91e3 \ + --hash=sha256:19aeb96d43902f0a783946a0a87dbdad5c84c936025b8419da0a0cd7724356b1 \ + --hash=sha256:1a1d1915db1a4fdb2754b9de292642a39a7fb28f1736699527bb649484fb966a \ + --hash=sha256:1b87bd9d81d179bd8ab871603bd80d8645729939f90b71e62914e816a76fc6bd \ + --hash=sha256:1dfc94946bc60ea375cc39cff0b8da6c7e5f8fcdc1d946beb8da5c216156ddd8 \ + --hash=sha256:2034f6759a722da3a3dbd91a81148cf884e91d1b747992ca288ab88c1de15999 \ + --hash=sha256:261ddb7ca91fcf71757979534fb4c128448b5b4c55cb6152d280312062f69599 \ + --hash=sha256:2ed854e716a89b1afcedea551cd85f2eb2a807613752ab997b9974aaa0d56936 \ + --hash=sha256:3102045a10945173d38336f6e71a8dc71bcaeed55c3123ad4af82c52807b9375 \ + --hash=sha256:339894035d0ede518b16073bdc2feef4c991ee991a29774b33e515f1d308e08d \ + --hash=sha256:412444afb8c4c7a6cc11a47dade32982439925537e483be7c0ae0cf96c4f6a0b \ + --hash=sha256:4203efca580f0dd6f882ca211f923168548f7ba334c189e9eab1178ab840bf60 \ + --hash=sha256:45ebc7b45406febf07fef35d856f0293a92e7417ae7933207e90bf9090b70572 \ + --hash=sha256:4b5ec25d8b17217d635f8935dbc1b9aa5907962fae29dff220f2659487891cd3 \ + --hash=sha256:4c8e73e99da7db1b4cad7f8d682cf6abad7844da39834c288fbfa394a47bbced \ + --hash=sha256:4e6f7d1c414191c1199f8996d3f2282b9ebea0945693fb67392c75a3a320941f \ + --hash=sha256:4eaa22f0d22b1a7e93ff0a596d57fdede2e550aecffb5a1ef1106aaece48e96b \ + --hash=sha256:50b8eae8f7334ec826d6eeffaeeb00e36b5e24aa0b9df322c247539714c6df19 \ + --hash=sha256:50fd3f6b26e3441ae07b7c979309638b72abc1a25da31a81a7fbd9495713ef4f \ + --hash=sha256:51243f1ed5161b9945011a7360e997729776f6e5d7005ba0c6879267d4c5139d \ + --hash=sha256:5d512aafa1d32efa014fa041d38868fda85028e3f930a96f85d49c7d8ddc0383 \ + --hash=sha256:5f77cf66e96ae734717d341c145c5949c63180842a545c47a0ce7ae52ca83795 \ + --hash=sha256:6b02471b72526ab8a18c39cb7967b72d194ec53c1fd0a70b050565a0f366d355 \ + --hash=sha256:6fb1b30043271ec92dc65f6d9f0b7a830c210b8a96423074b15c7bc999975f57 \ + --hash=sha256:7161ec49ef0800947dc5570f86568a7bb36fa97dd09e9827dc02b718c5643f09 \ + --hash=sha256:72d622d262e463dfb7595202d229f5f3ab4b852289a1cd09650362db23b9eb0b \ + --hash=sha256:74d28c17412d9caa1066f7a31df8403ec23d5268ba46cd0ad2c50fb82ae40462 \ + --hash=sha256:78618cdbccaa74d3f88d0ad6cb8ac3007f1a6fa5c6f19af64b55ca170bfa1edf \ + --hash=sha256:793b4e24db2e8742ca6423d3fde8396db336698c55cd34b660663ee9e45ed37f \ + --hash=sha256:798232c92e7665fe82ac085f9d8e8ca98826f8e27859d9a96b41d519ecd2e49a \ + --hash=sha256:81d09caa7b27ef4e61cb7d8fbf1714f5aec1c6b6c5270ee53504981e6e9121ad \ + --hash=sha256:8ab74c06ffdab957d7670c2a5a6e1a70181cd10b727cd788c4dd9005b6a8acd9 \ + --hash=sha256:8eb0908e954d093b02a543dc963984d6e99ad2b5e36503d8a0aaf040505f747d \ + --hash=sha256:90b9e29824800e90c84e4022dd5cc16eb2d9605ee13f05d47641eb183cd73d45 \ + --hash=sha256:9797a6c8fe16f25749b371c02e2ade0efb51155e767a971c61734b1bf6293994 \ + --hash=sha256:9d2455fbf44c914840c793e89aa82d0e1763a14253a000743719ae5946814b2d \ + --hash=sha256:9d3bea1c75f8c53ee4d505c3e67d8c158ad4df0d83170605b50b64025917f338 \ + --hash=sha256:9e2ec1e921fd07c7cda7962bad283acc2f2a9ccc1b971ee4b216b75fad6f0463 \ + --hash=sha256:9e91179a242bbc99be65e139e30690e081fe6cb91a8e77faf4c409653de39451 \ + --hash=sha256:a0eaa93d054751ee9964afa21c06247779b90440ca41d184aeb5d410f20ff591 \ + --hash=sha256:a2c405445c79c3f5a124573a051062300936b0281fee57637e706453e452746c \ + --hash=sha256:aa7e402ce11f0885305bfb6afb3434b3cd8f53b563ac065452d9d5654c7b86fd \ + --hash=sha256:aff76a55a8aa8364d25400a210a65ff59d0168e0b4285ba6bf2bd83cf675ba32 \ + --hash=sha256:b09b86b27a064c9624d0a6c54da01c1beaf5b6cadfa609cf63789b1d08a797b9 \ + --hash=sha256:b14f16f94cbc61215115b9b1236f9c18403c15dd3c52cf629072afa9d54c1cbf \ + --hash=sha256:b50811d664d392f02f7761621303eba9d1b056fb1868c8cdf4231279645c25f5 \ + --hash=sha256:b7bc2176354defba3edc2b9a777744462da2f8e921fbaf61e52acb95bafa9828 \ + --hash=sha256:c78e1b00a87ce43bb37642c0812315b411e856a905d58d597750eb79802aaaa3 \ + --hash=sha256:c83341b89884e2b2e55886e8fbbf37c3fa5efd6c8907124aeb72f285ae5696e5 \ + --hash=sha256:ca2870d5d10d8726a27396d3ca4cf7976cec0f3cb706debe88e3a5bd4610f7d2 \ + --hash=sha256:ccce24b7ad89adb5a1e34a6ba96ac2530046763912806ad4c247356a8f33a67b \ + --hash=sha256:cd5e14fbf22a87321b24c88669aad3a51ec052eb145315b3da3b7e3cc105b9a2 \ + --hash=sha256:ce49c67f4ea0609933d01c0731b34b8695a7a748d6c8d186f95e7d085d2fe475 \ + --hash=sha256:d33891be6df59d93df4d846640f0e46f1a807339f09e79a8040bc887bdcd7ed3 \ + --hash=sha256:d3b2348a78bc939b4fed6552abfd2e7988e0f81443ef3911a4b8498ca084f6eb \ + --hash=sha256:d886f5d353333b4771d21267c7ecc75b710f1a73d72d03ca06df49b09015a9ef \ + --hash=sha256:d93480005693d247f8346bc8ee28c72a2191bdf1f6b5db469c096c0c867ac015 \ + --hash=sha256:dc1a390a82755a8c26c9964d457d4c9cbec5405896cba94cf51f36ea0d855002 \ + --hash=sha256:dd78700f5788ae180b5ee8902c6aea5a5726bac7c364b202b4b3e3ba2d293170 \ + --hash=sha256:e46f38133e5a060d46bd630faa4d9fa0202377495df1f068a8299fd78c84de84 \ + --hash=sha256:e4b878386c4bf293578b48fc570b84ecfe477d3b77ba39a6e87150af77f40c57 \ + --hash=sha256:f0d0591a0aeaefdaf9a5e545e7485f89910c977087e7de2b6c388aec32011e9f \ + --hash=sha256:fdcbb4068117dfd9ce0138d068ac512843c52295ed996ae6dd1faf537b6dbc27 \ + --hash=sha256:ff61bfd9253c3915e6d41c651d5f962da23eda633cf02262990094a18a55371a + # via + # imageio + # scikit-image + # soil-id +platformdirs==4.2.1 \ + --hash=sha256:031cd18d4ec63ec53e82dceaac0417d218a6863f7745dfcc9efe7793b7039bdf \ + --hash=sha256:17d5a1161b3fd67b390023cb2d3b026bbd40abde6fdb052dfbd3a29c3ba22ee1 + # via + # requests-cache + # soil-id prettyconf==2.2.1 \ --hash=sha256:2478d16bc2596c9863e93dd182ca70b71f636f0e169ab23288906c53147cfdbc # via -r requirements/base.in +profilehooks==1.12.0 \ + --hash=sha256:05b87589df8a8c630fd701bae6008cc1cfff4457bd0064887ad25248327a5ba3 \ + --hash=sha256:dc87f319c9596b8c50fd374e3c08c51fa29a61553f1d9281482e4ca31829b021 + # via soil-id promise==2.3 \ --hash=sha256:dfd18337c523ba4b6a58801c164c1904a9d4d1b1747c7d5dbf45b693a49d93d0 # via graphene-django @@ -489,6 +736,33 @@ pyjwt==2.8.0 \ --hash=sha256:57e28d156e3d5c10088e0c68abb90bfac3df82b40a71bd0daa20c65ccd5c23de \ --hash=sha256:59127c392cc44c2da5bb3192169a91f429924e17aff6534d70fdc02ab3e04320 # via -r requirements/base.in +pyogrio==0.7.2 \ + --hash=sha256:1b7197c72f034ac7187da2a8d50a063a5f1256aab732b154f11f887a7652dc3d \ + --hash=sha256:234b0d1d22e9680229b0618c25077a0cb2428cbbc2939b4bb9bdd8ee77e0f3e0 \ + --hash=sha256:3001efd5dfee36459d0cfdafbe91ed88fc5ae734353d771cdb75546ef1427735 \ + --hash=sha256:31112bb0b6a4a3f80ec3252d7eeb7be81045860d49fd76e297c073759450652b \ + --hash=sha256:33ae5aafcf3a557e107a33f5b3e878750d2e467b8cc911dc4bf261c1a602b534 \ + --hash=sha256:33afb7d211c6434613f24174722347a5cb11d22a212f28c817f67c89d30d0c0d \ + --hash=sha256:429dcff4c36f0e0a15ba4a20f2d4478b9c6d095e70c4bcc007a536ea420a1a93 \ + --hash=sha256:436de39f57e8f8cc41682981518b9490d64d3a1c48bf78d415e5747c296790dc \ + --hash=sha256:5654e7c33442cbd98e7a56f705e160415d7503b2420d724d4f81b8cc88360b3e \ + --hash=sha256:5feeb7a0da7ee82580f6aa6508a80602413675b99c60c822929e0e8b925e0517 \ + --hash=sha256:73577fecebeecf0d06e78c1a4bddd460a4d57c6d918affab7594c0bc72f5fa14 \ + --hash=sha256:7e2c856961efdc6cb3809b97b49016cbbcee17c8a1e85fc4000b5fcb3cfcb9b1 \ + --hash=sha256:7e39bb6bfdd74e63ae96acced7297bbe8a157f85c0107f1cbb395d2a937f3a38 \ + --hash=sha256:860b04ddf23b8c253ceb3621e4b0e0dc0f293eab66cb14f799a5c9f9fe0a882c \ + --hash=sha256:892fdab0e1c44c0125254d92928081c14f93ac553f371addc2c9a1d4bde41cad \ + --hash=sha256:9cc6db2e5dc50dfe23554d10502920eafa0648c365725e552aaa523432a9bf35 \ + --hash=sha256:a23136d1bffa9d811263807b850c6e9854201710276f09de650131e89f2486aa \ + --hash=sha256:b9a8a4854c7af2c76683ce5666ee765b207901b362576465219d75deb6159821 \ + --hash=sha256:ba386a02c9b5934c568b40acc95c9863f92075f6990167635e51368976569c66 \ + --hash=sha256:be46be43c4148a3ad09da38670411485ec544a51cbd6b7d004a0eca5035023fc \ + --hash=sha256:bee556ca305b7e8c68aada259d925c612131205074fb2373badafacbef610b77 \ + --hash=sha256:caaf61d473ac207f170082e602ea57c096e8dd4c4be51de58fba96f1a5944096 \ + --hash=sha256:d5fc2304aeb927564f77caaa4da9a47e2d77a8ceb1c624ea84c505140886b221 \ + --hash=sha256:f219c1edb010d0248891a3d27d15faf17c91cfe69daef84d7471e22e4ed4fcff \ + --hash=sha256:f2ff58184020da39540a2f5d4a5412005a01b0c4cd03c7b8294bc670d1f3fe50 + # via soil-id pyproj==3.6.1 \ --hash=sha256:18faa54a3ca475bfe6255156f2f2874e9a1c8917b0004eee9f664b86ccc513d3 \ --hash=sha256:1e9fbaf920f0f9b4ee62aab832be3ae3968f33f24e2e3f7fbb8c6728ef1d9746 \ @@ -520,12 +794,18 @@ pyproj==3.6.1 \ # via # -r requirements/base.in # geopandas + # soil-id python-dateutil==2.9.0.post0 \ --hash=sha256:37dd54208da7e1cd875388217d5e00ebd4179249f90fb72437e91a35459a0ad3 \ --hash=sha256:a8b2bc7bffae282281c8140a97d3aa9c14da0b136dfe83f850eea9a5f7470427 # via # botocore # pandas + # soil-id +python-dotenv==1.0.1 \ + --hash=sha256:e324ee90a023d808f1959c46bcbc04446a10ced277783dc6ee09987c37ec10ca \ + --hash=sha256:f7b63ef50f1b690dddf550d03497b66d609393b40b564ed0d674909a68ebf16a + # via soil-id python-ipware==3.0.0 \ --hash=sha256:9117b1c4dddcb5d5ca49e6a9617de2fc66aec2ef35394563ac4eecabdf58c062 \ --hash=sha256:fc936e6e7ec9fcc107f9315df40658f468ac72f739482a707181742882e36b60 @@ -540,12 +820,33 @@ pytz==2024.1 \ # via # django-ses # pandas + # soil-id requests==2.31.0 \ --hash=sha256:58cd2187c01e70e6e26505bca751777aa9f2ee0b7f4300988b709f44e013003f \ --hash=sha256:942c5a758f98d790eaed1a29cb6eefc7ffb0d1cf7af05c3d2791656dbd6ad1e1 # via - # -r requirements/base.in # django-oauth-toolkit + # requests-cache + # soil-id +requests-cache==1.2.0 \ + --hash=sha256:490324301bf0cb924ff4e6324bd2613453e7e1f847353928b08adb0fdfb7f722 \ + --hash=sha256:db1c709ca343cc1cd5b6c8b1a5387298eceed02306a6040760db538c885e3838 + # via soil-id +rosetta-soil @ https://github.com/paulschreiber/rosetta-soil/archive/bc53029.zip \ + --hash=sha256:6aa7934ffd07b6d52fa6167eb888dbc9f2d2ae1c1ccd5d00ad537c0114f041ba + # via soil-id +rtree==1.2.0 \ + --hash=sha256:008d86fd8990f3ca15c06834ae597e16209b3e0a3d6512f0a3489c201011390f \ + --hash=sha256:0b4ba127dfdbdc9e415d2bb578f6e6dff92082117722d8703b740231f7a0b1c3 \ + --hash=sha256:3038f6d96bb66adb40d1cbb366a8a0676342102bc67ca5492f5734e70f38d9cd \ + --hash=sha256:460c40d246adea80291a406a30e3e0815a1d3a6d514c0438a4235090ba8cd832 \ + --hash=sha256:5faf8752763258014a10feab67fe68f79eff62f7cfaadb5c338129b3e6d6a657 \ + --hash=sha256:613f2158aeba6fcb5e4aa4c076bb6de85e20c4f9fb0a8b426a71d6ff5846795b \ + --hash=sha256:6d6d1c63d97920e4cd1fa25ee0c911be3f79a34850d19166cc27bbb8ac119001 \ + --hash=sha256:80813bb1a66e65033e6601e54fded428a5b710b41948c83a298943587b3c3e4f \ + --hash=sha256:cd8653f0e961dcd3f3ab09e10a831885ea9feceb45be6bc761a773c314518b49 \ + --hash=sha256:f5145f7852bf7f95c126fb16bf1a4c2ca9300ae151b07f8a0f7083ea47912675 + # via soil-id rules==3.3 \ --hash=sha256:12c8bbab5f54560e68528fcca7abc0e162c35ac882e3cc0daed40ac49c963070 \ --hash=sha256:bf7bea8b724b73c36a622714c1b3557620c187a2ee05321a2ac8ab7472dc4464 @@ -554,6 +855,78 @@ s3transfer==0.10.1 \ --hash=sha256:5683916b4c724f799e600f41dd9e10a9ff19871bf87623cc8f491cb4f5fa0a19 \ --hash=sha256:ceb252b11bcf87080fb7850a224fb6e05c8a776bab8f2b64b7f25b969464839d # via boto3 +scikit-image==0.23.2 \ + --hash=sha256:08b10781efbd6b084f3c847ff4049b657241ea866b9e331b14bf791dcb3e6661 \ + --hash=sha256:15bfb4e8d7bd90a967e6a3c3ab6be678063fc45e950b730684a8db46a02ff892 \ + --hash=sha256:1978be2abe3c3c3189a99a411d48bbb1306f7c2debb3aefbf426e23947f26623 \ + --hash=sha256:3597ac5d8f51dafbcb7433ef1fdefdefb535f50745b2002ae0a5d651df4f063b \ + --hash=sha256:524b51a7440e46ed2ebbde7bc288bf2dde1dee2caafdd9513b2aca38a48223b7 \ + --hash=sha256:55de3326be124334b89314e9e04c8971ad98d6681e11a243f71bfb85ef9554b0 \ + --hash=sha256:5736e66d01b11cd90988ec24ab929c80a03af28f690189c951886891ebf63154 \ + --hash=sha256:8b335c229170d787b3fb8c60d220f72049ccf862d5191a3cfda6ac84b995ac4e \ + --hash=sha256:a158f50d3df4867bbd1c698520ede8bc493e430ad83f54ac1f0d8f57b328779b \ + --hash=sha256:a207352e9a1956dda1424bbe872c7795345187138118e8be6a421aef3b988c2a \ + --hash=sha256:ae32bf0cb02b672ed74d28880ca6f88928ae8dd794d67e04fa3ff4836feb9bd6 \ + --hash=sha256:c9da4b2c3117e3e30364a3d14496ee5c72b09eb1a4ab1292b302416faa360590 \ + --hash=sha256:ee65669aa586e110346f567ed5c92d1bd63799a19e951cb83da3f54b0caf7c52 \ + --hash=sha256:ee83fdb1843ee938eabdfeb9498623282935ea30aa20dffc5d5d16698efb4b2a \ + --hash=sha256:f9a8db6c52f8d0e1474ea8320d7b8db442b4d6baa29dd0acbd02f8a49572f18a \ + --hash=sha256:fce619a6d84fe40c1208fa579b646e93ce13ef0afc3652a23e9782b2c183291a + # via soil-id +scikit-learn==1.4.2 \ + --hash=sha256:1d0b25d9c651fd050555aadd57431b53d4cf664e749069da77f3d52c5ad14b3b \ + --hash=sha256:36f0ea5d0f693cb247a073d21a4123bdf4172e470e6d163c12b74cbb1536cf38 \ + --hash=sha256:426d258fddac674fdf33f3cb2d54d26f49406e2599dbf9a32b4d1696091d4256 \ + --hash=sha256:44c62f2b124848a28fd695db5bc4da019287abf390bfce602ddc8aa1ec186aae \ + --hash=sha256:45dee87ac5309bb82e3ea633955030df9bbcb8d2cdb30383c6cd483691c546cc \ + --hash=sha256:49d64ef6cb8c093d883e5a36c4766548d974898d378e395ba41a806d0e824db8 \ + --hash=sha256:5460a1a5b043ae5ae4596b3126a4ec33ccba1b51e7ca2c5d36dac2169f62ab1d \ + --hash=sha256:5cd7b524115499b18b63f0c96f4224eb885564937a0b3477531b2b63ce331904 \ + --hash=sha256:671e2f0c3f2c15409dae4f282a3a619601fa824d2c820e5b608d9d775f91780c \ + --hash=sha256:68b8404841f944a4a1459b07198fa2edd41a82f189b44f3e1d55c104dbc2e40c \ + --hash=sha256:81bf5d8bbe87643103334032dd82f7419bc8c8d02a763643a6b9a5c7288c5054 \ + --hash=sha256:8539a41b3d6d1af82eb629f9c57f37428ff1481c1e34dddb3b9d7af8ede67ac5 \ + --hash=sha256:87440e2e188c87db80ea4023440923dccbd56fbc2d557b18ced00fef79da0727 \ + --hash=sha256:90378e1747949f90c8f385898fff35d73193dfcaec3dd75d6b542f90c4e89755 \ + --hash=sha256:b0203c368058ab92efc6168a1507d388d41469c873e96ec220ca8e74079bf62e \ + --hash=sha256:c97a50b05c194be9146d61fe87dbf8eac62b203d9e87a3ccc6ae9aed2dfaf361 \ + --hash=sha256:d36d0bc983336bbc1be22f9b686b50c964f593c8a9a913a792442af9bf4f5e68 \ + --hash=sha256:d762070980c17ba3e9a4a1e043ba0518ce4c55152032f1af0ca6f39b376b5928 \ + --hash=sha256:d9993d5e78a8148b1d0fdf5b15ed92452af5581734129998c26f481c46586d68 \ + --hash=sha256:daa1c471d95bad080c6e44b4946c9390a4842adc3082572c20e4f8884e39e959 \ + --hash=sha256:ff4effe5a1d4e8fed260a83a163f7dbf4f6087b54528d8880bab1d1377bd78be + # via soil-id +scipy==1.13.0 \ + --hash=sha256:05f1432ba070e90d42d7fd836462c50bf98bd08bed0aa616c359eed8a04e3922 \ + --hash=sha256:09c74543c4fbeb67af6ce457f6a6a28e5d3739a87f62412e4a16e46f164f0ae5 \ + --hash=sha256:0fbcf8abaf5aa2dc8d6400566c1a727aed338b5fe880cde64907596a89d576fa \ + --hash=sha256:109d391d720fcebf2fbe008621952b08e52907cf4c8c7efc7376822151820820 \ + --hash=sha256:1d2f7bb14c178f8b13ebae93f67e42b0a6b0fc50eba1cd8021c9b6e08e8fb1cd \ + --hash=sha256:1e7626dfd91cdea5714f343ce1176b6c4745155d234f1033584154f60ef1ff42 \ + --hash=sha256:22789b56a999265431c417d462e5b7f2b487e831ca7bef5edeb56efe4c93f86e \ + --hash=sha256:28e286bf9ac422d6beb559bc61312c348ca9b0f0dae0d7c5afde7f722d6ea13d \ + --hash=sha256:33fde20efc380bd23a78a4d26d59fc8704e9b5fd9b08841693eb46716ba13d86 \ + --hash=sha256:45c08bec71d3546d606989ba6e7daa6f0992918171e2a6f7fbedfa7361c2de1e \ + --hash=sha256:4dca18c3ffee287ddd3bc8f1dabaf45f5305c5afc9f8ab9cbfab855e70b2df5c \ + --hash=sha256:5407708195cb38d70fd2d6bb04b1b9dd5c92297d86e9f9daae1576bd9e06f602 \ + --hash=sha256:58569af537ea29d3f78e5abd18398459f195546bb3be23d16677fb26616cc11e \ + --hash=sha256:5e4a756355522eb60fcd61f8372ac2549073c8788f6114449b37e9e8104f15a5 \ + --hash=sha256:6bf9fe63e7a4bf01d3645b13ff2aa6dea023d38993f42aaac81a18b1bda7a82a \ + --hash=sha256:8930ae3ea371d6b91c203b1032b9600d69c568e537b7988a3073dfe4d4774f21 \ + --hash=sha256:9ff7dad5d24a8045d836671e082a490848e8639cabb3dbdacb29f943a678683d \ + --hash=sha256:a2f471de4d01200718b2b8927f7d76b5d9bde18047ea0fa8bd15c5ba3f26a1d6 \ + --hash=sha256:ac38c4c92951ac0f729c4c48c9e13eb3675d9986cc0c83943784d7390d540c78 \ + --hash=sha256:b2a3ff461ec4756b7e8e42e1c681077349a038f0686132d623fa404c0bee2551 \ + --hash=sha256:b5acd8e1dbd8dbe38d0004b1497019b2dbbc3d70691e65d69615f8a7292865d7 \ + --hash=sha256:b8434f6f3fa49f631fae84afee424e2483289dfc30a47755b4b4e6b07b2633a4 \ + --hash=sha256:ba419578ab343a4e0a77c0ef82f088238a93eef141b2b8017e46149776dfad4d \ + --hash=sha256:d0de696f589681c2802f9090fff730c218f7c51ff49bf252b6a97ec4a5d19e8b \ + --hash=sha256:dcbb9ea49b0167de4167c40eeee6e167caeef11effb0670b554d10b1e693a8b9 + # via + # composition-stats + # scikit-image + # scikit-learn + # soil-id sentry-sdk==2.1.1 \ --hash=sha256:95d8c0bb41c8b0bc37ab202c2c4a295bb84398ee05f4cdce55051cd75b926ec1 \ --hash=sha256:99aeb78fb76771513bd3b2829d12613130152620768d00cd3e45ac00cb17950f @@ -603,6 +976,7 @@ shapely==2.0.4 \ # via # -r requirements/base.in # geopandas + # soil-id six==1.16.0 \ --hash=sha256:1e61c37477a1626458e36f7b1d82aa5c9b094fa4802892072e49de9c60c4c926 \ --hash=sha256:8abb2f1d86890a2dfb989f9a77cfcfd3e47c2a354b01111771326f8aa26e0254 @@ -610,12 +984,17 @@ six==1.16.0 \ # fiona # promise # python-dateutil + # soil-id + # url-normalize sniffio==1.3.1 \ --hash=sha256:2f6da418d1f1e0fddd844478f41680e794e6051915791a034ff65e5f100525a2 \ --hash=sha256:f4324edc670a0f49750a81b895f35c3adb843cca46f0530f79fc1babb23789dc # via # anyio # httpx +soil-id @ https://github.com/techmatters/soil-id-algorithm/archive/ddf718a.zip \ + --hash=sha256:15d29948023384962b2d45e6503ac1a0030b7f3b86881ee6db8338939e1acd06 + # via -r requirements/base.in sqlparse==0.5.0 \ --hash=sha256:714d0a4932c059d16189f58ef5411ec2287a4360f17cdd0edd2d09d4c5087c93 \ --hash=sha256:c204494cd97479d0e39f28c93d46c0b2d5959c7b9ab904762ea6c7af211c8663 @@ -628,6 +1007,18 @@ text-unidecode==1.3 \ --hash=sha256:1311f10e8b895935241623731c2ba64f4c455287888b18189350b67134a822e8 \ --hash=sha256:bad6603bb14d279193107714b288be206cac565dfa49aa5b105294dd5c4aab93 # via graphene-django +threadpoolctl==3.5.0 \ + --hash=sha256:082433502dd922bf738de0d8bcc4fdcbf0979ff44c42bd40f5af8a282f6fa107 \ + --hash=sha256:56c1e26c150397e58c4926da8eeee87533b1e32bef131bd4bf6a2f45f3185467 + # via + # scikit-learn + # soil-id +tifffile==2024.4.24 \ + --hash=sha256:8d0b982f4b01ace358835ae6c2beb5a70cb7287f5d3a2e96c318bd5befa97b1f \ + --hash=sha256:e329f36ac8ff3bbe7dd04609340be26b03c4b9e9a69235fc3ab33434157c38ea + # via + # scikit-image + # soil-id typing-extensions==4.11.0 \ --hash=sha256:83f085bd5ca59c80295fc2a82ab5dac679cbe02b9f33f7d83af68e241bea51b0 \ --hash=sha256:c1f94d72897edaf4ce775bb7558d5b79d8126906a14ea5ed1635921406c0387a @@ -637,11 +1028,27 @@ typing-extensions==4.11.0 \ tzdata==2024.1 \ --hash=sha256:2674120f8d891909751c38abcdfd386ac0a5a1127954fbc332af6b5ceae07efd \ --hash=sha256:9068bc196136463f5245e51efda838afa15aaeca9903f49050dfa2679db4d252 - # via pandas + # via + # pandas + # soil-id +url-normalize==1.4.3 \ + --hash=sha256:d23d3a070ac52a67b83a1c59a0e68f8608d1cd538783b401bc9de2c0fac999b2 \ + --hash=sha256:ec3c301f04e5bb676d333a7fa162fa977ad2ca04b7e652bfc9fac4e405728eed + # via + # requests-cache + # soil-id urllib3==2.2.1 \ --hash=sha256:450b20ec296a467077128bff42b73080516e71b56ff59a60a02bef2232c4fa9d \ --hash=sha256:d0570876c61ab9e520d776c38acbbb5b05a776d3f9ff98a5c8fd5162a444cf19 # via # botocore # requests + # requests-cache # sentry-sdk + # soil-id +werkzeug==3.0.2 \ + --hash=sha256:3aac3f5da756f93030740bc235d3e09449efcf65f2f55e3602e1d851b8f48795 \ + --hash=sha256:e39b645a6ac92822588e7b39a692e7828724ceae0b0d702ef96701f90e70128d + # via + # flask + # soil-id From 1f45245752ad1b4f61fec878a5d3a33cabab2b7f Mon Sep 17 00:00:00 2001 From: Paul Schreiber Date: Thu, 2 May 2024 15:24:59 -0400 Subject: [PATCH 03/25] fix: use soil-id instead of soil_id --- requirements/base.in | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/requirements/base.in b/requirements/base.in index f232ddc27..1a6188e05 100644 --- a/requirements/base.in +++ b/requirements/base.in @@ -25,4 +25,4 @@ requests rules sentry-sdk[django] shapely -soil_id @ https://github.com/techmatters/soil-id-algorithm/archive/ddf718a.zip +soil-id @ https://github.com/techmatters/soil-id-algorithm/archive/ddf718a.zip From b0a7f9b6348b82263bb75412d218afc3afd17e2e Mon Sep 17 00:00:00 2001 From: Paul Schreiber Date: Thu, 2 May 2024 20:23:47 -0400 Subject: [PATCH 04/25] chore: update requirements --- requirements.txt | 22 ++++++++-------------- requirements/base.in | 2 +- 2 files changed, 9 insertions(+), 15 deletions(-) diff --git a/requirements.txt b/requirements.txt index e0b85e841..67b5d9655 100644 --- a/requirements.txt +++ b/requirements.txt @@ -348,6 +348,9 @@ flask==3.0.3 \ --hash=sha256:34e815dfaa43340d1d15a5c3a02b8476004037eb4840b34910c6e21679d288f3 \ --hash=sha256:ceb27b0af3823ea2737928a4d99d125a06175b8512c445cbd9a9ce200ef76842 # via soil-id +gdal==3.8.5 \ + --hash=sha256:ad8addd58ba9c62aefc7f65d345c168736798f137e5c8f247af76fcf4862d371 + # via soil-id geopandas==0.14.4 \ --hash=sha256:3bb6473cb59d51e1a7fe2dbc24a1a063fb0ebdeddf3ce08ddbf8c7ddc99689aa \ --hash=sha256:56765be9d58e2c743078085db3bd07dc6be7719f0dbe1dfdc1d705cb80be7c25 @@ -504,17 +507,6 @@ markupsafe==2.1.5 \ # jinja2 # soil-id # werkzeug -mysqlclient==2.2.4 \ - --hash=sha256:329e4eec086a2336fe3541f1ce095d87a6f169d1cc8ba7b04ac68bcb234c9711 \ - --hash=sha256:33bc9fb3464e7d7c10b1eaf7336c5ff8f2a3d3b88bab432116ad2490beb3bf41 \ - --hash=sha256:3c318755e06df599338dad7625f884b8a71fcf322a9939ef78c9b3db93e1de7a \ - --hash=sha256:4e80dcad884dd6e14949ac6daf769123223a52a6805345608bf49cdaf7bc8b3a \ - --hash=sha256:9d3310295cb682232cadc28abd172f406c718b9ada41d2371259098ae37779d3 \ - --hash=sha256:9d4c015480c4a6b2b1602eccd9846103fc70606244788d04aa14b31c4bd1f0e2 \ - --hash=sha256:ac44777eab0a66c14cb0d38965572f762e193ec2e5c0723bcd11319cc5b693c5 \ - --hash=sha256:d43987bb9626096a302ca6ddcdd81feaeca65ced1d5fe892a6a66b808326aa54 \ - --hash=sha256:e1ebe3f41d152d7cb7c265349fdb7f1eca86ccb0ca24a90036cde48e00ceb2ab - # via soil-id networkx==3.3 \ --hash=sha256:0c127d8b2f4865f59ae9cb8aafcd60b5c70f3241ebd66f7defad7c4ab90126c9 \ --hash=sha256:28575580c6ebdaf4505b22c6256a2b9de86b316dc63ba9e93abde3d78dfdbcf2 @@ -727,7 +719,9 @@ psycopg2==2.9.9 \ --hash=sha256:d735786acc7dd25815e89cc4ad529a43af779db2e25aa7c626de864127e5a024 \ --hash=sha256:de80739447af31525feddeb8effd640782cf5998e1a4e9192ebdf829717e3913 \ --hash=sha256:ff432630e510709564c01dafdbe996cb552e0b9f3f065eb89bdce5bd31fabf4c - # via -r requirements/base.in + # via + # -r requirements/base.in + # soil-id pycparser==2.22 \ --hash=sha256:491c8be9c040f5390f5bf44a5b07752bd07f56edf992381b05c701439eec10f6 \ --hash=sha256:c3702b6d3dd8c7abc1afa565d7e63d53a1d0bd86cdc24edd75470f4de499cfcc @@ -992,8 +986,8 @@ sniffio==1.3.1 \ # via # anyio # httpx -soil-id @ https://github.com/techmatters/soil-id-algorithm/archive/ddf718a.zip \ - --hash=sha256:15d29948023384962b2d45e6503ac1a0030b7f3b86881ee6db8338939e1acd06 +soil-id @ https://github.com/techmatters/soil-id-algorithm/archive/f6cc011.zip \ + --hash=sha256:43b69bd85e06a9b20c23ff9295f4dde4cb9e1af5a3eaf95e621dd49112515ca4 # via -r requirements/base.in sqlparse==0.5.0 \ --hash=sha256:714d0a4932c059d16189f58ef5411ec2287a4360f17cdd0edd2d09d4c5087c93 \ diff --git a/requirements/base.in b/requirements/base.in index 1a6188e05..ecd4fa833 100644 --- a/requirements/base.in +++ b/requirements/base.in @@ -25,4 +25,4 @@ requests rules sentry-sdk[django] shapely -soil-id @ https://github.com/techmatters/soil-id-algorithm/archive/ddf718a.zip +soil-id @ https://github.com/techmatters/soil-id-algorithm/archive/f6cc011.zip From 84d570d609ad6d672e337b24cce76570134c7451 Mon Sep 17 00:00:00 2001 From: Paul Schreiber Date: Fri, 3 May 2024 15:20:42 -0400 Subject: [PATCH 05/25] fix: use Ubuntu with newer GDAL --- Dockerfile | 24 +++++++++++++++++++----- 1 file changed, 19 insertions(+), 5 deletions(-) diff --git a/Dockerfile b/Dockerfile index 269ff0b3a..ed9e4435f 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,21 +1,31 @@ -FROM python:3.12.3-slim-bullseye - -RUN adduser --disabled-password terraso +FROM ghcr.io/osgeo/gdal:ubuntu-full-latest ENV PATH /home/terraso/.local/bin:$PATH # see https://github.com/aws/aws-cli/tags for list of versions ENV AWS_CLI_VERSION 2.8.12 +RUN apt-get update && \ + apt-get install -q -y --no-install-recommends software-properties-common + +# prevent tzdata from prompting +RUN ln -fs /usr/share/zoneinfo/America/New_York /etc/localtime + RUN apt-get update && \ apt-get install -q -y --no-install-recommends \ + python3.12 python3.12-dev \ build-essential libpq-dev dnsutils libmagic-dev mailcap \ - gettext software-properties-common \ - libkml-dev libgdal-dev gdal-bin unzip curl && \ + gettext \ + libkml-dev unzip curl && \ curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip" && \ unzip awscliv2.zip && \ ./aws/install && \ apt-get clean && rm -rf /var/lib/apt/lists/* +RUN mkdir -p /root/.config/pip && echo "[global]" > /root/.config/pip/pip.conf && echo "break-system-packages = true" >> /root/.config/pip/pip.conf +RUN curl -s https://bootstrap.pypa.io/get-pip.py | python3.12 + +RUN adduser --disabled-password terraso + WORKDIR /app COPY --chown=terraso:terraso requirements.txt /app @@ -23,6 +33,10 @@ COPY --chown=terraso:terraso Makefile /app USER terraso +RUN pip config set global.break-system-packages true + +# there is no python3.12-pytest, so install manually +RUN pip install pytest RUN pip install --upgrade pip && make install COPY --chown=terraso:terraso . /app From e23fe435e25b8554170916f199cb0ef2ac074d7f Mon Sep 17 00:00:00 2001 From: Paul Schreiber Date: Fri, 3 May 2024 15:21:05 -0400 Subject: [PATCH 06/25] fix: basic soil id test --- terraso_backend/tests/soil_id/__init_.py | 0 terraso_backend/tests/soil_id/test_soil_id.py | 21 +++++++++++++++++++ 2 files changed, 21 insertions(+) create mode 100644 terraso_backend/tests/soil_id/__init_.py create mode 100644 terraso_backend/tests/soil_id/test_soil_id.py diff --git a/terraso_backend/tests/soil_id/__init_.py b/terraso_backend/tests/soil_id/__init_.py new file mode 100644 index 000000000..e69de29bb diff --git a/terraso_backend/tests/soil_id/test_soil_id.py b/terraso_backend/tests/soil_id/test_soil_id.py new file mode 100644 index 000000000..f2eb283b8 --- /dev/null +++ b/terraso_backend/tests/soil_id/test_soil_id.py @@ -0,0 +1,21 @@ +# Copyright © 2024 Technology Matters +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as published +# by the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see https://www.gnu.org/licenses/. + +from soil_id.us_soil import list_soils + + +def test_soil_list(): + list_soils(-101.9733687, 33.81246789, None, False) + assert True From 3c1401aac684b6a49c0a59e9b74165bdc7fbdac9 Mon Sep 17 00:00:00 2001 From: Paul Schreiber Date: Fri, 3 May 2024 15:40:33 -0400 Subject: [PATCH 07/25] chore: get test data --- .github/workflows/build.yml | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 6f4215b13..a32232acb 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -50,6 +50,26 @@ jobs: echo "SENTRY_DSN=${{ secrets.SENTRY_DSN }}" >> .env make build DC_ENV=ci + - name: Restore data cache + uses: actions/cache@v4 + with: + path: Data/ + key: ${{ runner.os }}-data-${{ hashFiles('Data/*') }} + restore-keys: ${{ runner.os }}-data- + + - name: Download data + if: ${{ hashFiles('Data/*') == '' }} + run: | + mkdir Data + cd Data + gdown 1tN23iVe6X1fcomcfveVp4w3Pwd0HJuTe # Munsell CSV + gdown 1WUa9e3vTWPi6G8h4OI3CBUZP5y7tf1Li # SHX + gdown 1l9MxC0xENGmI_NmGlBY74EtlD6SZid_a # SHP + gdown 1asGnnqe0zI2v8xuOszlsNmZkOSl7cJ2n # SBX + gdown 185Qjb9pJJn4AzOissiTz283tINrDqgI0 # SBN + gdown 1P3xl1YRlfcMjfO_4PM39tkrrlL3hoLzv # PRJ + gdown 1K0GkqxhZiVUND6yfFmaI7tYanLktekyp # DBF + - name: Run tests using built Docker image run: | make test-ci DC_ENV=ci From e58822f508719771e91f6d9c337bb77d7f74c126 Mon Sep 17 00:00:00 2001 From: Paul Schreiber Date: Fri, 3 May 2024 15:52:14 -0400 Subject: [PATCH 08/25] fix: get gdown from pip --- .github/workflows/build.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index a32232acb..369ea0ad8 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -60,6 +60,7 @@ jobs: - name: Download data if: ${{ hashFiles('Data/*') == '' }} run: | + pip install gdown mkdir Data cd Data gdown 1tN23iVe6X1fcomcfveVp4w3Pwd0HJuTe # Munsell CSV From 82f5be2ca745a4c545fc56b8d6fb2ebadf85cdf3 Mon Sep 17 00:00:00 2001 From: Paul Schreiber Date: Fri, 3 May 2024 18:06:14 -0400 Subject: [PATCH 09/25] fix: mount soil id test data on docker container --- docker-compose.ci.yml | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/docker-compose.ci.yml b/docker-compose.ci.yml index 58968a4e6..d690671e6 100644 --- a/docker-compose.ci.yml +++ b/docker-compose.ci.yml @@ -5,7 +5,10 @@ services: extends: file: docker-compose.base.yml service: web - + volumes: + - type: bind + source: /home/runner/work/terraso-backend/terraso-backend/Data + target: /app/Data depends_on: db: condition: service_healthy From 202a79b3a579782e7475ea12dd920b20b5782a3f Mon Sep 17 00:00:00 2001 From: Paul Schreiber Date: Thu, 9 May 2024 14:41:36 -0400 Subject: [PATCH 10/25] chore: add gdown to requirements --- requirements/dev.in | 1 + 1 file changed, 1 insertion(+) diff --git a/requirements/dev.in b/requirements/dev.in index 11876e488..902913f6e 100644 --- a/requirements/dev.in +++ b/requirements/dev.in @@ -1,6 +1,7 @@ black flake8 freezegun +gdown ipdb isort mixer From 723773c0d431873f6d11a4dc4a524aedc1e060e0 Mon Sep 17 00:00:00 2001 From: Paul Schreiber Date: Thu, 9 May 2024 14:41:54 -0400 Subject: [PATCH 11/25] chore: update requirements --- requirements-dev.txt | 34 ++++++++++++++++++++++++++++++---- 1 file changed, 30 insertions(+), 4 deletions(-) diff --git a/requirements-dev.txt b/requirements-dev.txt index 59615d397..12d30ae46 100644 --- a/requirements-dev.txt +++ b/requirements-dev.txt @@ -12,6 +12,10 @@ asttokens==2.4.1 \ --hash=sha256:051ed49c3dcae8913ea7cd08e46a606dba30b79993209636c4875bc1d637bc24 \ --hash=sha256:b03869718ba9a6eb027e134bfdf69f38a236d681c83c160d510768af11254ba0 # via stack-data +beautifulsoup4==4.12.3 \ + --hash=sha256:74e3d1928edc070d21748185c46e3fb33490f22f52a3addee9aee0f4f7781051 \ + --hash=sha256:b80878c9f40111313e55da8ba20bdba06d8fa3969fc68304167741bbf9e082ed + # via gdown black==24.4.2 \ --hash=sha256:257d724c2c9b1660f353b36c802ccece186a30accc7742c176d29c146df6e474 \ --hash=sha256:37aae07b029fa0174d39daf02748b379399b909652a806e5708199bd93899da1 \ @@ -36,9 +40,9 @@ black==24.4.2 \ --hash=sha256:eaea3008c281f1038edb473c1aa8ed8143a5535ff18f978a318f10302b254063 \ --hash=sha256:ef703f83fc32e131e9bcc0a5094cfe85599e7109f896fe8bc96cc402f3eb4b6e # via -r requirements/dev.in -boto3==1.34.96 \ - --hash=sha256:42ea7d46688e7cb27259780b9da2cddcfaf2763ff5d327f4d54eac12edba8e72 \ - --hash=sha256:fe3d039631074a96374a354764641b6623036b6ea15381b8a04ac0a193b8c1e0 +boto3==1.34.101 \ + --hash=sha256:1d854b5880e185db546b4c759fcb664bf3326275064d2b44229cc217e8be9d7e \ + --hash=sha256:79b93f3370ea96ce838042bc2eac0c996aee204b01e7e6452eb77abcbe697d6a # via moto botocore==1.34.103 \ --hash=sha256:0330d139f18f78d38127e65361859e24ebd6a8bcba184f903c01bb999a3fa431 \ @@ -204,7 +208,7 @@ click==8.1.7 \ --hash=sha256:ae74fb96c20a0277a1d615f1e4d73c8414f5a98db8b799a7931d1582f3390c28 \ --hash=sha256:ca9853ad459e787e2192211578cc907e7594e294c7ccc834310722b41b9ca6de # via black -coverage[toml]==7.5.1 \ +coverage==7.5.1 \ --hash=sha256:0646599e9b139988b63704d704af8e8df7fa4cbc4a1f33df69d97f36cb0a38de \ --hash=sha256:0cdcbc320b14c3e5877ee79e649677cb7d89ef588852e9583e6b24c2e5072661 \ --hash=sha256:0d0a0f5e06881ecedfe6f3dd2f56dcb057b6dbeb3327fd32d4b12854df36bf26 \ @@ -306,6 +310,10 @@ faker==12.0.1 \ --hash=sha256:1dc2811f20e163892fefe7006f2ce00778f8099a40aee265bfa60a13400de63d \ --hash=sha256:aa7103805ae793277abbb85da9f6f05e76a1a295a9384a8e17c2fba2b3a690cb # via mixer +filelock==3.14.0 \ + --hash=sha256:43339835842f110ca7ae60f1e1c160714c5a6afd15a2873419ab185334975c0f \ + --hash=sha256:6ea72da3be9b8c82afd3edcf99f2fffbb5076335a5ae4d03248bb5b6c3eae78a + # via gdown flake8==7.0.0 \ --hash=sha256:33f96621059e65eec474169085dc92bf26e7b2d47366b70be2f67ab80dc25132 \ --hash=sha256:a6dfbb75e03252917f2473ea9653f7cd799c3064e54d4c8140044c5c065f53c3 @@ -314,6 +322,10 @@ freezegun==1.5.1 \ --hash=sha256:b29dedfcda6d5e8e083ce71b2b542753ad48cfec44037b3fc79702e2980a89e9 \ --hash=sha256:bf111d7138a8abe55ab48a71755673dbaa4ab87f4cff5634a4442dfec34c15f1 # via -r requirements/dev.in +gdown==5.1.0 \ + --hash=sha256:421530fd238fa15d41ba43219a79fdc28efe8ac11022173abad333701b77de2c \ + --hash=sha256:550a72dc5ca2819fe4bcc15d80d05d7c98c0b90e57256254b77d0256b9df4683 + # via -r requirements/dev.in h11==0.14.0 \ --hash=sha256:8f19fbbe99e72420ff35c00b27a34cb9937e902a8b810e2c88300c6f0a3b699d \ --hash=sha256:e3fe4ac4b851c468cc8363d500db52c2ead036020723024a109d37346efaa761 @@ -509,6 +521,11 @@ pygments==2.18.0 \ --hash=sha256:786ff802f32e91311bff3889f6e9a86e81505fe99f2735bb6d60ae0c5004f199 \ --hash=sha256:b8e6aca0523f3ab76fee51799c488e38782ac06eafcf95e7ba832985c8e7b13a # via ipython +pysocks==1.7.1 \ + --hash=sha256:08e69f092cc6dbe92a0fdd16eeb9b9ffbc13cadfe5ca4c7bd92ffb078b293299 \ + --hash=sha256:2725bd0a9925919b9b51739eea5f9e2bae91e83288108a9ad338b2e3a4435ee5 \ + --hash=sha256:3f8804571ebe159c380ac6de37643bb4685970655d3bba243530d6558b799aa0 + # via requests pytest==8.2.0 \ --hash=sha256:1733f0620f6cda4095bbf0d9ff8022486e91892245bb9e7d5542c018f612f233 \ --hash=sha256:d507d4482197eac0ba2bae2e9babf0672eb333017bcedaa5fb1a3d42c1174b3f @@ -589,6 +606,7 @@ requests==2.31.0 \ --hash=sha256:58cd2187c01e70e6e26505bca751777aa9f2ee0b7f4300988b709f44e013003f \ --hash=sha256:942c5a758f98d790eaed1a29cb6eefc7ffb0d1cf7af05c3d2791656dbd6ad1e1 # via + # gdown # moto # responses responses==0.25.0 \ @@ -615,10 +633,18 @@ sniffio==1.3.1 \ # via # anyio # httpx +soupsieve==2.5 \ + --hash=sha256:5663d5a7b3bfaeee0bc4372e7fc48f9cff4940b3eec54a6451cc5299f1097690 \ + --hash=sha256:eaa337ff55a1579b6549dc679565eac1e3d000563bcb1c8ab0d0fefbc0c2cdc7 + # via beautifulsoup4 stack-data==0.6.3 \ --hash=sha256:836a778de4fec4dcd1dcd89ed8abff8a221f58308462e1c4aa2a3cf30148f0b9 \ --hash=sha256:d5558e0c25a4cb0853cddad3d77da9891a08cb85dd9f9f91b9f8cd66e511e695 # via ipython +tqdm==4.66.4 \ + --hash=sha256:b75ca56b413b030bc3f00af51fd2c1a1a5eac6a0c1cca83cbb37a5c52abce644 \ + --hash=sha256:e4d936c9de8727928f3be6079590e97d9abfe8d39a590be678eb5919ffc186bb + # via gdown traitlets==5.14.3 \ --hash=sha256:9ed0579d3502c94b4b3732ac120375cda96f923114522847de4b3bb98b96b6b7 \ --hash=sha256:b74e89e397b1ed28cc831db7aea759ba6640cb3de13090ca145426688ff1ac4f From 3f2568797f4f0e1d0e919024b46affe02b564bc2 Mon Sep 17 00:00:00 2001 From: Paul Schreiber Date: Thu, 9 May 2024 14:42:12 -0400 Subject: [PATCH 12/25] build: add download-soil-data task to Makefile --- Makefile | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/Makefile b/Makefile index 5c5cb023f..b68cbcc40 100644 --- a/Makefile +++ b/Makefile @@ -112,6 +112,18 @@ test-ci: clean bash: $(DC_RUN_CMD) bash +# Donwload Munsell CSV, SHX, SHP, SBX, SBN, PRJ, DBF +download-soil-data: + mkdir -p Data + cd Data; \ + gdown 1tN23iVe6X1fcomcfveVp4w3Pwd0HJuTe; \ + gdown 1WUa9e3vTWPi6G8h4OI3CBUZP5y7tf1Li; \ + gdown 1l9MxC0xENGmI_NmGlBY74EtlD6SZid_a; \ + gdown 1asGnnqe0zI2v8xuOszlsNmZkOSl7cJ2n; \ + gdown 185Qjb9pJJn4AzOissiTz283tINrDqgI0; \ + gdown 1P3xl1YRlfcMjfO_4PM39tkrrlL3hoLzv; \ + gdown 1K0GkqxhZiVUND6yfFmaI7tYanLktekyp \ + ${VIRTUAL_ENV}/scripts/black: pip install black From 489eec45db4140784690dbdadb82e682294a867a Mon Sep 17 00:00:00 2001 From: Paul Schreiber Date: Thu, 9 May 2024 14:45:14 -0400 Subject: [PATCH 13/25] docs: add soil id data to readme --- README.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/README.md b/README.md index 161474ca8..27e9efa83 100644 --- a/README.md +++ b/README.md @@ -92,6 +92,12 @@ Import landscape boundaries geodata: $ python terraso_backend/manage.py load_landscapes_geojson --airtable_api_key xxxxx ``` +Download Soil ID data: + +```sh +$ make download-soil-data +``` + ## Reset the database You can reset the database back to its default state: From 2b06b780cb2ebec843877b97cf6dc41a584cc418 Mon Sep 17 00:00:00 2001 From: Paul Schreiber Date: Thu, 9 May 2024 14:45:28 -0400 Subject: [PATCH 14/25] docs: clean up Docker instructions --- README.md | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 27e9efa83..6c949e6dc 100644 --- a/README.md +++ b/README.md @@ -65,14 +65,20 @@ need to attach to the application running container. So, assuming that the application is running with `make run`: +List the running containers + ```sh -# List the running containers $ docker ps -# Get the id of the web container before next step +``` + +Get the id of the web container before next step + +```sh $ docker attach -# This will give you access to the web running container ``` +This will give you access to the web running container + Make the application request call that will pass on breakpoint, like calling an API or clicking in some button. As soon as the process get to the break point, the attached shell should open the Python debugger. To From 16c54d638ba6751a8c4852c5dc044d33782b3823 Mon Sep 17 00:00:00 2001 From: Paul Schreiber Date: Thu, 9 May 2024 14:46:26 -0400 Subject: [PATCH 15/25] build: remove extra newlines in build.yml --- .github/workflows/build.yml | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 369ea0ad8..c5b0c86ac 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -33,8 +33,7 @@ jobs: make build DC_ENV=ci - name: Run lint checks - run: | - make lint + run: make lint build-and-test: runs-on: ubuntu-latest @@ -72,5 +71,4 @@ jobs: gdown 1K0GkqxhZiVUND6yfFmaI7tYanLktekyp # DBF - name: Run tests using built Docker image - run: | - make test-ci DC_ENV=ci + run: make test-ci DC_ENV=ci From 6490e1183966d7467c5c89a7f6c9c4c0efe9bf25 Mon Sep 17 00:00:00 2001 From: Paul Schreiber Date: Thu, 9 May 2024 14:46:47 -0400 Subject: [PATCH 16/25] fix: use make command to install dev dependencies --- .github/workflows/build.yml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index c5b0c86ac..dd466875d 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -23,8 +23,7 @@ jobs: python-version: "3.12.3" - name: Install Python dependencies for CI - run: | - pip install -r requirements-dev.txt + run: make install-dev - name: Build base Docker image run: | From 6ff4c681ea2b6263bf70eac92aaa935fd8ae699e Mon Sep 17 00:00:00 2001 From: Paul Schreiber Date: Thu, 9 May 2024 14:47:01 -0400 Subject: [PATCH 17/25] fix: use make command to install download soill data --- .github/workflows/build.yml | 12 +----------- 1 file changed, 1 insertion(+), 11 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index dd466875d..61ca69812 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -57,17 +57,7 @@ jobs: - name: Download data if: ${{ hashFiles('Data/*') == '' }} - run: | - pip install gdown - mkdir Data - cd Data - gdown 1tN23iVe6X1fcomcfveVp4w3Pwd0HJuTe # Munsell CSV - gdown 1WUa9e3vTWPi6G8h4OI3CBUZP5y7tf1Li # SHX - gdown 1l9MxC0xENGmI_NmGlBY74EtlD6SZid_a # SHP - gdown 1asGnnqe0zI2v8xuOszlsNmZkOSl7cJ2n # SBX - gdown 185Qjb9pJJn4AzOissiTz283tINrDqgI0 # SBN - gdown 1P3xl1YRlfcMjfO_4PM39tkrrlL3hoLzv # PRJ - gdown 1K0GkqxhZiVUND6yfFmaI7tYanLktekyp # DBF + run: make download-soil-data - name: Run tests using built Docker image run: make test-ci DC_ENV=ci From 34acc7ca250e6196042ff5545161728fc10c9f0d Mon Sep 17 00:00:00 2001 From: Paul Schreiber Date: Thu, 9 May 2024 14:48:58 -0400 Subject: [PATCH 18/25] fix: download dependencies before downloading soil data --- .github/workflows/build.yml | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 61ca69812..29cee15c1 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -55,9 +55,17 @@ jobs: key: ${{ runner.os }}-data-${{ hashFiles('Data/*') }} restore-keys: ${{ runner.os }}-data- - - name: Download data + - name: Setup Python if: ${{ hashFiles('Data/*') == '' }} - run: make download-soil-data + uses: actions/setup-python@v5 + with: + python-version: "3.12.3" + + - name: Install Python dependencies and download data + if: ${{ hashFiles('Data/*') == '' }} + run: | + make install-dev + make download-soil-data - name: Run tests using built Docker image run: make test-ci DC_ENV=ci From 2611fdedcb835d62443a1b28e65cb921bf145c52 Mon Sep 17 00:00:00 2001 From: Paul Schreiber Date: Fri, 10 May 2024 14:06:05 -0400 Subject: [PATCH 19/25] fix: rework Dockerfile for Debian 12 --- Dockerfile | 26 +++++++++----------------- 1 file changed, 9 insertions(+), 17 deletions(-) diff --git a/Dockerfile b/Dockerfile index ed9e4435f..402d13724 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,31 +1,27 @@ -FROM ghcr.io/osgeo/gdal:ubuntu-full-latest +FROM python:3.12.3-slim-bookworm + +RUN adduser --disabled-password terraso ENV PATH /home/terraso/.local/bin:$PATH # see https://github.com/aws/aws-cli/tags for list of versions ENV AWS_CLI_VERSION 2.8.12 -RUN apt-get update && \ - apt-get install -q -y --no-install-recommends software-properties-common +# Add testing sources and pin the GDAL packages to testing +# Allows us to get 3.8.x versions of GDAL +RUN sed 's/bookworm/testing/g' /etc/apt/sources.list.d/debian.sources > /etc/apt/sources.list.d/testing.sources -# prevent tzdata from prompting -RUN ln -fs /usr/share/zoneinfo/America/New_York /etc/localtime +RUN echo 'Package: libgdal-dev gdal-bin\nPin: release a=testing\nPin-Priority: 900' > /etc/apt/preferences.d/gdal-testing RUN apt-get update && \ apt-get install -q -y --no-install-recommends \ - python3.12 python3.12-dev \ build-essential libpq-dev dnsutils libmagic-dev mailcap \ - gettext \ - libkml-dev unzip curl && \ + gettext software-properties-common \ + libkml-dev libgdal-dev gdal-bin unzip curl && \ curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip" && \ unzip awscliv2.zip && \ ./aws/install && \ apt-get clean && rm -rf /var/lib/apt/lists/* -RUN mkdir -p /root/.config/pip && echo "[global]" > /root/.config/pip/pip.conf && echo "break-system-packages = true" >> /root/.config/pip/pip.conf -RUN curl -s https://bootstrap.pypa.io/get-pip.py | python3.12 - -RUN adduser --disabled-password terraso - WORKDIR /app COPY --chown=terraso:terraso requirements.txt /app @@ -33,10 +29,6 @@ COPY --chown=terraso:terraso Makefile /app USER terraso -RUN pip config set global.break-system-packages true - -# there is no python3.12-pytest, so install manually -RUN pip install pytest RUN pip install --upgrade pip && make install COPY --chown=terraso:terraso . /app From 71c84e853dae0822aa96b9013c612e6ccbe0b068 Mon Sep 17 00:00:00 2001 From: Paul Schreiber Date: Fri, 10 May 2024 14:09:57 -0400 Subject: [PATCH 20/25] fix: update soil ID commit hash --- requirements/base.in | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/requirements/base.in b/requirements/base.in index ecd4fa833..2a491fe7b 100644 --- a/requirements/base.in +++ b/requirements/base.in @@ -25,4 +25,4 @@ requests rules sentry-sdk[django] shapely -soil-id @ https://github.com/techmatters/soil-id-algorithm/archive/f6cc011.zip +soil-id @ https://github.com/techmatters/soil-id-algorithm/archive/4868713.zip From 995202b209ef94fed85073ec5e1f948d50aef2d6 Mon Sep 17 00:00:00 2001 From: Paul Schreiber Date: Fri, 10 May 2024 14:10:12 -0400 Subject: [PATCH 21/25] chore: update requirements files --- requirements-dev.txt | 6 +- requirements.txt | 227 ++++++++++--------------------------------- 2 files changed, 52 insertions(+), 181 deletions(-) diff --git a/requirements-dev.txt b/requirements-dev.txt index 12d30ae46..cc2af6192 100644 --- a/requirements-dev.txt +++ b/requirements-dev.txt @@ -40,9 +40,9 @@ black==24.4.2 \ --hash=sha256:eaea3008c281f1038edb473c1aa8ed8143a5535ff18f978a318f10302b254063 \ --hash=sha256:ef703f83fc32e131e9bcc0a5094cfe85599e7109f896fe8bc96cc402f3eb4b6e # via -r requirements/dev.in -boto3==1.34.101 \ - --hash=sha256:1d854b5880e185db546b4c759fcb664bf3326275064d2b44229cc217e8be9d7e \ - --hash=sha256:79b93f3370ea96ce838042bc2eac0c996aee204b01e7e6452eb77abcbe697d6a +boto3==1.34.102 \ + --hash=sha256:1c1fb2884f85c0ec6b62e6e7ed5a2a6635e1188f3ab5d2b700f7db1cf8464484 \ + --hash=sha256:65e4b9fb9ceefe19976e8822ac0cd68d28946d4697e538741d2bbdb5b45ae42f # via moto botocore==1.34.103 \ --hash=sha256:0330d139f18f78d38127e65361859e24ebd6a8bcba184f903c01bb999a3fa431 \ diff --git a/requirements.txt b/requirements.txt index 67b5d9655..b7d61383f 100644 --- a/requirements.txt +++ b/requirements.txt @@ -28,16 +28,9 @@ attrs==23.2.0 \ # cattrs # fiona # requests-cache - # soil-id -blinker==1.8.1 \ - --hash=sha256:5f1cdeff423b77c31b89de0565cd03e5275a03028f44b2b15f912632a58cced6 \ - --hash=sha256:da44ec748222dcd0105ef975eed946da197d5bdf8bafb6aa92f5bc89da63fa25 - # via - # flask - # soil-id -boto3==1.34.101 \ - --hash=sha256:1d854b5880e185db546b4c759fcb664bf3326275064d2b44229cc217e8be9d7e \ - --hash=sha256:79b93f3370ea96ce838042bc2eac0c996aee204b01e7e6452eb77abcbe697d6a +boto3==1.34.102 \ + --hash=sha256:1c1fb2884f85c0ec6b62e6e7ed5a2a6635e1188f3ab5d2b700f7db1cf8464484 \ + --hash=sha256:65e4b9fb9ceefe19976e8822ac0cd68d28946d4697e538741d2bbdb5b45ae42f # via # -r requirements/base.in # django-ses @@ -50,9 +43,7 @@ botocore==1.34.103 \ cattrs==23.2.3 \ --hash=sha256:0341994d94971052e9ee70662542699a3162ea1e0c62f7ce1b4a57f563685108 \ --hash=sha256:a934090d95abaa9e911dac357e3a8699e0b4b14f8529bcc7d2b1ad9d51672b9f - # via - # requests-cache - # soil-id + # via requests-cache certifi==2024.2.2 \ --hash=sha256:0569859f95fc761b18b45ef421b1290a0f65f147e92a1e5eb3e635f9a5e4e66f \ --hash=sha256:dc383c07b76109f368f6106eee2b593b04a011ea4d55f652c6ca24a754d1cdd1 @@ -64,7 +55,6 @@ certifi==2024.2.2 \ # pyproj # requests # sentry-sdk - # soil-id cffi==1.16.0 \ --hash=sha256:0c9ef6ff37e974b73c25eecc13952c55bceed9112be2d9d938ded8e856138bcc \ --hash=sha256:131fd094d1065b19540c3d72594260f118b231090295d8c34e19a7bbcf2e860a \ @@ -210,9 +200,7 @@ charset-normalizer==3.3.2 \ --hash=sha256:fb69256e180cb6c8a894fee62b3afebae785babc1ee98b81cdf68bbca1987f33 \ --hash=sha256:fd1abc0d89e30cc4e02e4064dc67fcc51bd941eb395c502aac3ec19fab46b519 \ --hash=sha256:ff8fa367d09b717b2a17a052544193ad76cd49979c805768879cb63d9ca50561 - # via - # requests - # soil-id + # via requests click==8.1.7 \ --hash=sha256:ae74fb96c20a0277a1d615f1e4d73c8414f5a98db8b799a7931d1582f3390c28 \ --hash=sha256:ca9853ad459e787e2192211578cc907e7594e294c7ccc834310722b41b9ca6de @@ -220,20 +208,14 @@ click==8.1.7 \ # click-plugins # cligj # fiona - # flask - # soil-id click-plugins==1.1.1 \ --hash=sha256:46ab999744a9d831159c3411bb0c79346d94a444df9a3a3742e9ed63645f264b \ --hash=sha256:5d262006d3222f5057fd81e1623d4443e41dcda5dc815c06b442aa3c02889fc8 - # via - # fiona - # soil-id + # via fiona cligj==0.7.2 \ --hash=sha256:a4bc13d623356b373c2c27c53dbd9c68cae5d526270bfa71f6c6fa69669c6b27 \ --hash=sha256:c1ca117dbce1fe20a5809dc96f01e1c2840f6dcc939b3ddbb1111bf330ba82df - # via - # fiona - # soil-id + # via fiona composition-stats==2.0.0 \ --hash=sha256:d0f741ca968ef45a0c70d7a4ed68f4d140e82fddb4664a33f34ce213ddc66f6c # via soil-id @@ -343,13 +325,8 @@ fiona==1.9.6 \ # via # -r requirements/base.in # geopandas - # soil-id -flask==3.0.3 \ - --hash=sha256:34e815dfaa43340d1d15a5c3a02b8476004037eb4840b34910c6e21679d288f3 \ - --hash=sha256:ceb27b0af3823ea2737928a4d99d125a06175b8512c445cbd9a9ce200ef76842 - # via soil-id -gdal==3.8.5 \ - --hash=sha256:ad8addd58ba9c62aefc7f65d345c168736798f137e5c8f247af76fcf4862d371 +gdal==3.8.4 \ + --hash=sha256:7c51e0ae7a7ccf43ad9e4bf435176baa9276653dfa16fd167c3632f6e7275207 # via soil-id geopandas==0.14.4 \ --hash=sha256:3bb6473cb59d51e1a7fe2dbc24a1a063fb0ebdeddf3ce08ddbf8c7ddc99689aa \ @@ -401,25 +378,10 @@ idna==3.7 \ # anyio # httpx # requests - # soil-id imageio==2.34.1 \ --hash=sha256:408c1d4d62f72c9e8347e7d1ca9bc11d8673328af3913868db3b828e28b40a4c \ --hash=sha256:f13eb76e4922f936ac4a7fec77ce8a783e63b93543d4ea3e40793a6cabd9ac7d - # via - # scikit-image - # soil-id -itsdangerous==2.2.0 \ - --hash=sha256:c6242fc49e35958c8b15141343aa660db5fc54d4f13a1db01a3f5891b98700ef \ - --hash=sha256:e0050c0b7da1eea53ffaf149c0cfbb5c6e2e2b69c4bef22c81fa6eb73e5f6173 - # via - # flask - # soil-id -jinja2==3.1.3 \ - --hash=sha256:7d6d50dd97d52cbc355597bd845fabfbac3f551e1f99619e39a35ce8c370b5fa \ - --hash=sha256:ac8bd6544d4bb2c9792bf3a159e80bba8fda7f07e81bc3aed565432d5925ba90 - # via - # flask - # soil-id + # via scikit-image jmespath==1.0.1 \ --hash=sha256:02e2e4cc71b5bcab88332eebf907519190dd9e6e82107fa7f83b1003a6252980 \ --hash=sha256:90261b206d6defd58fdd5e85f478bf633a2901798906be2ad389150c5c60edbe @@ -429,9 +391,7 @@ jmespath==1.0.1 \ joblib==1.4.2 \ --hash=sha256:06d478d5674cbc267e7496a410ee875abd68e4340feff4490bcb7afb88060ae6 \ --hash=sha256:2382c5816b2636fbd20a09e0f4e9dad4736765fdfb7dca582943b9c1366b3f0e - # via - # scikit-learn - # soil-id + # via scikit-learn jwcrypto==1.5.6 \ --hash=sha256:150d2b0ebbdb8f40b77f543fb44ffd2baeff48788be71f67f03566692fd55789 \ --hash=sha256:771a87762a0c081ae6166958a954f80848820b2ab066937dc8b8379d65b1b039 @@ -439,80 +399,11 @@ jwcrypto==1.5.6 \ lazy-loader==0.4 \ --hash=sha256:342aa8e14d543a154047afb4ba8ef17f5563baad3fc610d7b15b213b0f119efc \ --hash=sha256:47c75182589b91a4e1a85a136c074285a5ad4d9f39c63e0d7fb76391c4574cd1 - # via - # scikit-image - # soil-id -markupsafe==2.1.5 \ - --hash=sha256:00e046b6dd71aa03a41079792f8473dc494d564611a8f89bbbd7cb93295ebdcf \ - --hash=sha256:075202fa5b72c86ad32dc7d0b56024ebdbcf2048c0ba09f1cde31bfdd57bcfff \ - --hash=sha256:0e397ac966fdf721b2c528cf028494e86172b4feba51d65f81ffd65c63798f3f \ - --hash=sha256:17b950fccb810b3293638215058e432159d2b71005c74371d784862b7e4683f3 \ - --hash=sha256:1f3fbcb7ef1f16e48246f704ab79d79da8a46891e2da03f8783a5b6fa41a9532 \ - --hash=sha256:2174c595a0d73a3080ca3257b40096db99799265e1c27cc5a610743acd86d62f \ - --hash=sha256:2b7c57a4dfc4f16f7142221afe5ba4e093e09e728ca65c51f5620c9aaeb9a617 \ - --hash=sha256:2d2d793e36e230fd32babe143b04cec8a8b3eb8a3122d2aceb4a371e6b09b8df \ - --hash=sha256:30b600cf0a7ac9234b2638fbc0fb6158ba5bdcdf46aeb631ead21248b9affbc4 \ - --hash=sha256:397081c1a0bfb5124355710fe79478cdbeb39626492b15d399526ae53422b906 \ - --hash=sha256:3a57fdd7ce31c7ff06cdfbf31dafa96cc533c21e443d57f5b1ecc6cdc668ec7f \ - --hash=sha256:3c6b973f22eb18a789b1460b4b91bf04ae3f0c4234a0a6aa6b0a92f6f7b951d4 \ - --hash=sha256:3e53af139f8579a6d5f7b76549125f0d94d7e630761a2111bc431fd820e163b8 \ - --hash=sha256:4096e9de5c6fdf43fb4f04c26fb114f61ef0bf2e5604b6ee3019d51b69e8c371 \ - --hash=sha256:4275d846e41ecefa46e2015117a9f491e57a71ddd59bbead77e904dc02b1bed2 \ - --hash=sha256:4c31f53cdae6ecfa91a77820e8b151dba54ab528ba65dfd235c80b086d68a465 \ - --hash=sha256:4f11aa001c540f62c6166c7726f71f7573b52c68c31f014c25cc7901deea0b52 \ - --hash=sha256:5049256f536511ee3f7e1b3f87d1d1209d327e818e6ae1365e8653d7e3abb6a6 \ - --hash=sha256:58c98fee265677f63a4385256a6d7683ab1832f3ddd1e66fe948d5880c21a169 \ - --hash=sha256:598e3276b64aff0e7b3451b72e94fa3c238d452e7ddcd893c3ab324717456bad \ - --hash=sha256:5b7b716f97b52c5a14bffdf688f971b2d5ef4029127f1ad7a513973cfd818df2 \ - --hash=sha256:5dedb4db619ba5a2787a94d877bc8ffc0566f92a01c0ef214865e54ecc9ee5e0 \ - --hash=sha256:619bc166c4f2de5caa5a633b8b7326fbe98e0ccbfacabd87268a2b15ff73a029 \ - --hash=sha256:629ddd2ca402ae6dbedfceeba9c46d5f7b2a61d9749597d4307f943ef198fc1f \ - --hash=sha256:656f7526c69fac7f600bd1f400991cc282b417d17539a1b228617081106feb4a \ - --hash=sha256:6ec585f69cec0aa07d945b20805be741395e28ac1627333b1c5b0105962ffced \ - --hash=sha256:72b6be590cc35924b02c78ef34b467da4ba07e4e0f0454a2c5907f473fc50ce5 \ - --hash=sha256:7502934a33b54030eaf1194c21c692a534196063db72176b0c4028e140f8f32c \ - --hash=sha256:7a68b554d356a91cce1236aa7682dc01df0edba8d043fd1ce607c49dd3c1edcf \ - --hash=sha256:7b2e5a267c855eea6b4283940daa6e88a285f5f2a67f2220203786dfa59b37e9 \ - --hash=sha256:823b65d8706e32ad2df51ed89496147a42a2a6e01c13cfb6ffb8b1e92bc910bb \ - --hash=sha256:8590b4ae07a35970728874632fed7bd57b26b0102df2d2b233b6d9d82f6c62ad \ - --hash=sha256:8dd717634f5a044f860435c1d8c16a270ddf0ef8588d4887037c5028b859b0c3 \ - --hash=sha256:8dec4936e9c3100156f8a2dc89c4b88d5c435175ff03413b443469c7c8c5f4d1 \ - --hash=sha256:97cafb1f3cbcd3fd2b6fbfb99ae11cdb14deea0736fc2b0952ee177f2b813a46 \ - --hash=sha256:a17a92de5231666cfbe003f0e4b9b3a7ae3afb1ec2845aadc2bacc93ff85febc \ - --hash=sha256:a549b9c31bec33820e885335b451286e2969a2d9e24879f83fe904a5ce59d70a \ - --hash=sha256:ac07bad82163452a6884fe8fa0963fb98c2346ba78d779ec06bd7a6262132aee \ - --hash=sha256:ae2ad8ae6ebee9d2d94b17fb62763125f3f374c25618198f40cbb8b525411900 \ - --hash=sha256:b91c037585eba9095565a3556f611e3cbfaa42ca1e865f7b8015fe5c7336d5a5 \ - --hash=sha256:bc1667f8b83f48511b94671e0e441401371dfd0f0a795c7daa4a3cd1dde55bea \ - --hash=sha256:bec0a414d016ac1a18862a519e54b2fd0fc8bbfd6890376898a6c0891dd82e9f \ - --hash=sha256:bf50cd79a75d181c9181df03572cdce0fbb75cc353bc350712073108cba98de5 \ - --hash=sha256:bff1b4290a66b490a2f4719358c0cdcd9bafb6b8f061e45c7a2460866bf50c2e \ - --hash=sha256:c061bb86a71b42465156a3ee7bd58c8c2ceacdbeb95d05a99893e08b8467359a \ - --hash=sha256:c8b29db45f8fe46ad280a7294f5c3ec36dbac9491f2d1c17345be8e69cc5928f \ - --hash=sha256:ce409136744f6521e39fd8e2a24c53fa18ad67aa5bc7c2cf83645cce5b5c4e50 \ - --hash=sha256:d050b3361367a06d752db6ead6e7edeb0009be66bc3bae0ee9d97fb326badc2a \ - --hash=sha256:d283d37a890ba4c1ae73ffadf8046435c76e7bc2247bbb63c00bd1a709c6544b \ - --hash=sha256:d9fad5155d72433c921b782e58892377c44bd6252b5af2f67f16b194987338a4 \ - --hash=sha256:daa4ee5a243f0f20d528d939d06670a298dd39b1ad5f8a72a4275124a7819eff \ - --hash=sha256:db0b55e0f3cc0be60c1f19efdde9a637c32740486004f20d1cff53c3c0ece4d2 \ - --hash=sha256:e61659ba32cf2cf1481e575d0462554625196a1f2fc06a1c777d3f48e8865d46 \ - --hash=sha256:ea3d8a3d18833cf4304cd2fc9cbb1efe188ca9b5efef2bdac7adc20594a0e46b \ - --hash=sha256:ec6a563cff360b50eed26f13adc43e61bc0c04d94b8be985e6fb24b81f6dcfdf \ - --hash=sha256:f5dfb42c4604dddc8e4305050aa6deb084540643ed5804d7455b5df8fe16f5e5 \ - --hash=sha256:fa173ec60341d6bb97a89f5ea19c85c5643c1e7dedebc22f5181eb73573142c5 \ - --hash=sha256:fa9db3f79de01457b03d4f01b34cf91bc0048eb2c3846ff26f66687c2f6d16ab \ - --hash=sha256:fce659a462a1be54d2ffcacea5e3ba2d74daa74f30f5f143fe0c58636e355fdd \ - --hash=sha256:ffee1f21e5ef0d712f9033568f8344d5da8cc2869dbd08d87c84656e6a2d2f68 - # via - # jinja2 - # soil-id - # werkzeug + # via scikit-image networkx==3.3 \ --hash=sha256:0c127d8b2f4865f59ae9cb8aafcd60b5c70f3241ebd66f7defad7c4ab90126c9 \ --hash=sha256:28575580c6ebdaf4505b22c6256a2b9de86b316dc63ba9e93abde3d78dfdbcf2 - # via - # scikit-image - # soil-id + # via scikit-image numpy==1.26.4 \ --hash=sha256:03a8c78d01d9781b28a6989f6fa1bb2c4f2d51201cf99d3dd875df6fbd96b23b \ --hash=sha256:08beddf13648eb95f8d867350f6a018a4be2e5ad54c8d8caed89ebca558b2818 \ @@ -580,7 +471,6 @@ packaging==24.0 \ # lazy-loader # pyogrio # scikit-image - # soil-id pandas==2.2.2 \ --hash=sha256:001910ad31abc7bf06f49dcc903755d2f7f3a9186c0c040b827e522e9cef0863 \ --hash=sha256:0ca6377b8fca51815f382bd0b697a0814c8bda55115678cbc94c30aacbb6eff2 \ @@ -688,7 +578,6 @@ pillow==10.3.0 \ # via # imageio # scikit-image - # soil-id platformdirs==4.2.1 \ --hash=sha256:031cd18d4ec63ec53e82dceaac0417d218a6863f7745dfcc9efe7793b7039bdf \ --hash=sha256:17d5a1161b3fd67b390023cb2d3b026bbd40abde6fdb052dfbd3a29c3ba22ee1 @@ -730,32 +619,33 @@ pyjwt==2.8.0 \ --hash=sha256:57e28d156e3d5c10088e0c68abb90bfac3df82b40a71bd0daa20c65ccd5c23de \ --hash=sha256:59127c392cc44c2da5bb3192169a91f429924e17aff6534d70fdc02ab3e04320 # via -r requirements/base.in -pyogrio==0.7.2 \ - --hash=sha256:1b7197c72f034ac7187da2a8d50a063a5f1256aab732b154f11f887a7652dc3d \ - --hash=sha256:234b0d1d22e9680229b0618c25077a0cb2428cbbc2939b4bb9bdd8ee77e0f3e0 \ - --hash=sha256:3001efd5dfee36459d0cfdafbe91ed88fc5ae734353d771cdb75546ef1427735 \ - --hash=sha256:31112bb0b6a4a3f80ec3252d7eeb7be81045860d49fd76e297c073759450652b \ - --hash=sha256:33ae5aafcf3a557e107a33f5b3e878750d2e467b8cc911dc4bf261c1a602b534 \ - --hash=sha256:33afb7d211c6434613f24174722347a5cb11d22a212f28c817f67c89d30d0c0d \ - --hash=sha256:429dcff4c36f0e0a15ba4a20f2d4478b9c6d095e70c4bcc007a536ea420a1a93 \ - --hash=sha256:436de39f57e8f8cc41682981518b9490d64d3a1c48bf78d415e5747c296790dc \ - --hash=sha256:5654e7c33442cbd98e7a56f705e160415d7503b2420d724d4f81b8cc88360b3e \ - --hash=sha256:5feeb7a0da7ee82580f6aa6508a80602413675b99c60c822929e0e8b925e0517 \ - --hash=sha256:73577fecebeecf0d06e78c1a4bddd460a4d57c6d918affab7594c0bc72f5fa14 \ - --hash=sha256:7e2c856961efdc6cb3809b97b49016cbbcee17c8a1e85fc4000b5fcb3cfcb9b1 \ - --hash=sha256:7e39bb6bfdd74e63ae96acced7297bbe8a157f85c0107f1cbb395d2a937f3a38 \ - --hash=sha256:860b04ddf23b8c253ceb3621e4b0e0dc0f293eab66cb14f799a5c9f9fe0a882c \ - --hash=sha256:892fdab0e1c44c0125254d92928081c14f93ac553f371addc2c9a1d4bde41cad \ - --hash=sha256:9cc6db2e5dc50dfe23554d10502920eafa0648c365725e552aaa523432a9bf35 \ - --hash=sha256:a23136d1bffa9d811263807b850c6e9854201710276f09de650131e89f2486aa \ - --hash=sha256:b9a8a4854c7af2c76683ce5666ee765b207901b362576465219d75deb6159821 \ - --hash=sha256:ba386a02c9b5934c568b40acc95c9863f92075f6990167635e51368976569c66 \ - --hash=sha256:be46be43c4148a3ad09da38670411485ec544a51cbd6b7d004a0eca5035023fc \ - --hash=sha256:bee556ca305b7e8c68aada259d925c612131205074fb2373badafacbef610b77 \ - --hash=sha256:caaf61d473ac207f170082e602ea57c096e8dd4c4be51de58fba96f1a5944096 \ - --hash=sha256:d5fc2304aeb927564f77caaa4da9a47e2d77a8ceb1c624ea84c505140886b221 \ - --hash=sha256:f219c1edb010d0248891a3d27d15faf17c91cfe69daef84d7471e22e4ed4fcff \ - --hash=sha256:f2ff58184020da39540a2f5d4a5412005a01b0c4cd03c7b8294bc670d1f3fe50 +pyogrio==0.8.0 \ + --hash=sha256:00347b7187eb289819295333cf363161eb4cf8d8abb469af7f5bc84a00916ff5 \ + --hash=sha256:04e673fe5d712711eed4877aed069683f9734948a66e58785f045166343c5f3f \ + --hash=sha256:12eaa1dd13d4632f12e334f7dccbbf7cea6ae3ed967d8db2b0ade44787f44cfa \ + --hash=sha256:1bcca7902eb7c3c5d2d7528f6fa86cd9f0409a993e63c661dfec2415ad5a3a55 \ + --hash=sha256:2779f0c04573321b879570e07de3525cadb4e47efa4bc245ff655a419d84a3e2 \ + --hash=sha256:3a574acccec2a2d8af097a01975688bc059d8d03b49c56b4ee029eb3d9b384e2 \ + --hash=sha256:3b05184adb265d8b1d17b8da4a0d08c311ba09d38d843286184d399997028344 \ + --hash=sha256:3c2550195df759486337aea76353c467bb7f4b5287df6bc789756d4b7f84aab8 \ + --hash=sha256:459ec590c3c1cda451f3f73c88a678c32b127de783bf54c41ea6ad708969f020 \ + --hash=sha256:4fc58e9e9201605bd5f9056734e67314a296a696f28a71c9a0fb0152108965b0 \ + --hash=sha256:56997a41ef9cf1e36996526e9f9c1f620d18cfc67cebe94afcd82d44315b490f \ + --hash=sha256:63dc3ef1272c4b01b8dd6a5fd3c696ab81cc6f7030d2dcb266d01fb8909e27cf \ + --hash=sha256:7434b5222e6c373c9fc01937fdea7e1cfa88030770efe650f296cdd7656f7c35 \ + --hash=sha256:7a830a0a89f5846c4b7fbb9faf34d3ca5cdb56f427f0eb12dfa46bc2664affda \ + --hash=sha256:83bdf508a1903328731d3843955a951b717092317e6192ff6d882ceece559da7 \ + --hash=sha256:a06cfd08d9abcc28a1ae07f3c3def02c6698767a8200c0248f3cd06e50e27433 \ + --hash=sha256:b8fef111416d149d098e999cf2df2dd3cbe3d8dac2b7c63017b8b931dcbde51b \ + --hash=sha256:bd4c7b294c62d48f4263db78d8998d27db29298cfbbbe244ba7687a6280853c7 \ + --hash=sha256:d78585d100cb86b98582702416e56cd6bc10540a6cbedfd2b5d3d75b9a44e3d3 \ + --hash=sha256:dca63e63a50ca69e0334d6d4f8904e622974007ed072f179f5c26f81277a6dbe \ + --hash=sha256:e09b72756700537456007ee7c2734cc76cb2239e20617735b019a2c402b93a91 \ + --hash=sha256:e83ddf7e821ec3c1376ab9cf57ba3def18f687a117e43f508c4be1174045ffc7 \ + --hash=sha256:e8cc26bb7685371da471e8b6107bed9fe4a56a4fe649c38dea8aaee99b26bf2e \ + --hash=sha256:ed10c44e7b2fe899ecd25e9bdd82a1b4ba5d2792850924858f7aea04cad3d801 \ + --hash=sha256:f67c0e68896fd49218e6451a95d2dee75816a715fb80048250c21e3b39babc48 \ + --hash=sha256:fc77e8b07cd971601868e1c8ff1fa231773df1c889ca6e2c99a0ad22380aefb2 # via soil-id pyproj==3.6.1 \ --hash=sha256:18faa54a3ca475bfe6255156f2f2874e9a1c8917b0004eee9f664b86ccc513d3 \ @@ -788,14 +678,12 @@ pyproj==3.6.1 \ # via # -r requirements/base.in # geopandas - # soil-id python-dateutil==2.9.0.post0 \ --hash=sha256:37dd54208da7e1cd875388217d5e00ebd4179249f90fb72437e91a35459a0ad3 \ --hash=sha256:a8b2bc7bffae282281c8140a97d3aa9c14da0b136dfe83f850eea9a5f7470427 # via # botocore # pandas - # soil-id python-dotenv==1.0.1 \ --hash=sha256:e324ee90a023d808f1959c46bcbc04446a10ced277783dc6ee09987c37ec10ca \ --hash=sha256:f7b63ef50f1b690dddf550d03497b66d609393b40b564ed0d674909a68ebf16a @@ -814,7 +702,6 @@ pytz==2024.1 \ # via # django-ses # pandas - # soil-id requests==2.31.0 \ --hash=sha256:58cd2187c01e70e6e26505bca751777aa9f2ee0b7f4300988b709f44e013003f \ --hash=sha256:942c5a758f98d790eaed1a29cb6eefc7ffb0d1cf7af05c3d2791656dbd6ad1e1 @@ -978,7 +865,6 @@ six==1.16.0 \ # fiona # promise # python-dateutil - # soil-id # url-normalize sniffio==1.3.1 \ --hash=sha256:2f6da418d1f1e0fddd844478f41680e794e6051915791a034ff65e5f100525a2 \ @@ -986,8 +872,8 @@ sniffio==1.3.1 \ # via # anyio # httpx -soil-id @ https://github.com/techmatters/soil-id-algorithm/archive/f6cc011.zip \ - --hash=sha256:43b69bd85e06a9b20c23ff9295f4dde4cb9e1af5a3eaf95e621dd49112515ca4 +soil-id @ https://github.com/techmatters/soil-id-algorithm/archive/4868713.zip \ + --hash=sha256:757fa16c885fd80df2ece89ad347c3ceeea95b0d97279b362e1f2f33a98b9785 # via -r requirements/base.in sqlparse==0.5.0 \ --hash=sha256:714d0a4932c059d16189f58ef5411ec2287a4360f17cdd0edd2d09d4c5087c93 \ @@ -1004,15 +890,11 @@ text-unidecode==1.3 \ threadpoolctl==3.5.0 \ --hash=sha256:082433502dd922bf738de0d8bcc4fdcbf0979ff44c42bd40f5af8a282f6fa107 \ --hash=sha256:56c1e26c150397e58c4926da8eeee87533b1e32bef131bd4bf6a2f45f3185467 - # via - # scikit-learn - # soil-id -tifffile==2024.4.24 \ - --hash=sha256:8d0b982f4b01ace358835ae6c2beb5a70cb7287f5d3a2e96c318bd5befa97b1f \ - --hash=sha256:e329f36ac8ff3bbe7dd04609340be26b03c4b9e9a69235fc3ab33434157c38ea - # via - # scikit-image - # soil-id + # via scikit-learn +tifffile==2024.5.10 \ + --hash=sha256:4154f091aa24d4e75bfad9ab2d5424a68c70e67b8220188066dc61946d4551bd \ + --hash=sha256:aa1e1b12be952ab20717d6848bd6d4a5ee88d2aa319f1152bff4354ad728ec86 + # via scikit-image typing-extensions==4.11.0 \ --hash=sha256:83f085bd5ca59c80295fc2a82ab5dac679cbe02b9f33f7d83af68e241bea51b0 \ --hash=sha256:c1f94d72897edaf4ce775bb7558d5b79d8126906a14ea5ed1635921406c0387a @@ -1022,15 +904,11 @@ typing-extensions==4.11.0 \ tzdata==2024.1 \ --hash=sha256:2674120f8d891909751c38abcdfd386ac0a5a1127954fbc332af6b5ceae07efd \ --hash=sha256:9068bc196136463f5245e51efda838afa15aaeca9903f49050dfa2679db4d252 - # via - # pandas - # soil-id + # via pandas url-normalize==1.4.3 \ --hash=sha256:d23d3a070ac52a67b83a1c59a0e68f8608d1cd538783b401bc9de2c0fac999b2 \ --hash=sha256:ec3c301f04e5bb676d333a7fa162fa977ad2ca04b7e652bfc9fac4e405728eed - # via - # requests-cache - # soil-id + # via requests-cache urllib3==2.2.1 \ --hash=sha256:450b20ec296a467077128bff42b73080516e71b56ff59a60a02bef2232c4fa9d \ --hash=sha256:d0570876c61ab9e520d776c38acbbb5b05a776d3f9ff98a5c8fd5162a444cf19 @@ -1039,10 +917,3 @@ urllib3==2.2.1 \ # requests # requests-cache # sentry-sdk - # soil-id -werkzeug==3.0.2 \ - --hash=sha256:3aac3f5da756f93030740bc235d3e09449efcf65f2f55e3602e1d851b8f48795 \ - --hash=sha256:e39b645a6ac92822588e7b39a692e7828724ceae0b0d702ef96701f90e70128d - # via - # flask - # soil-id From f9566804c9d3c40a37d0dfc3f11fe664b5ee60cd Mon Sep 17 00:00:00 2001 From: Paul Schreiber Date: Fri, 10 May 2024 14:39:33 -0400 Subject: [PATCH 22/25] fix: update soil-id URL --- requirements/base.in | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/requirements/base.in b/requirements/base.in index 2a491fe7b..70d5553ca 100644 --- a/requirements/base.in +++ b/requirements/base.in @@ -25,4 +25,4 @@ requests rules sentry-sdk[django] shapely -soil-id @ https://github.com/techmatters/soil-id-algorithm/archive/4868713.zip +soil-id @ https://github.com/techmatters/soil-id-algorithm/archive/main.zip From f02fdc0c1f37207c358034adf26b145ec2ff33bc Mon Sep 17 00:00:00 2001 From: Paul Schreiber Date: Fri, 10 May 2024 14:41:08 -0400 Subject: [PATCH 23/25] chore: update requirements.txt --- requirements.txt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/requirements.txt b/requirements.txt index b7d61383f..0c999dfdf 100644 --- a/requirements.txt +++ b/requirements.txt @@ -872,8 +872,8 @@ sniffio==1.3.1 \ # via # anyio # httpx -soil-id @ https://github.com/techmatters/soil-id-algorithm/archive/4868713.zip \ - --hash=sha256:757fa16c885fd80df2ece89ad347c3ceeea95b0d97279b362e1f2f33a98b9785 +soil-id @ https://github.com/techmatters/soil-id-algorithm/archive/main.zip \ + --hash=sha256:e7bf7ef88c9f46bc7166fc610a3c94c04ab686ca895df878f23e745029125a29 # via -r requirements/base.in sqlparse==0.5.0 \ --hash=sha256:714d0a4932c059d16189f58ef5411ec2287a4360f17cdd0edd2d09d4c5087c93 \ From a9adadb9ea0ff735dfed2199e23d8a4b9d0b98f0 Mon Sep 17 00:00:00 2001 From: Paul Schreiber Date: Fri, 10 May 2024 14:58:41 -0400 Subject: [PATCH 24/25] chore: update requirements.txt --- requirements.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/requirements.txt b/requirements.txt index 0c999dfdf..c92dfe1b9 100644 --- a/requirements.txt +++ b/requirements.txt @@ -706,6 +706,7 @@ requests==2.31.0 \ --hash=sha256:58cd2187c01e70e6e26505bca751777aa9f2ee0b7f4300988b709f44e013003f \ --hash=sha256:942c5a758f98d790eaed1a29cb6eefc7ffb0d1cf7af05c3d2791656dbd6ad1e1 # via + # -r requirements/base.in # django-oauth-toolkit # requests-cache # soil-id From 88a52b2d90a45e7a069757980a9f9fc5c3b98d37 Mon Sep 17 00:00:00 2001 From: Paul Schreiber Date: Mon, 13 May 2024 15:09:00 -0400 Subject: [PATCH 25/25] chore: update requirements files --- requirements-dev.txt | 12 ++++++------ requirements.txt | 15 ++++++++------- 2 files changed, 14 insertions(+), 13 deletions(-) diff --git a/requirements-dev.txt b/requirements-dev.txt index cc2af6192..05fe666ed 100644 --- a/requirements-dev.txt +++ b/requirements-dev.txt @@ -40,9 +40,9 @@ black==24.4.2 \ --hash=sha256:eaea3008c281f1038edb473c1aa8ed8143a5535ff18f978a318f10302b254063 \ --hash=sha256:ef703f83fc32e131e9bcc0a5094cfe85599e7109f896fe8bc96cc402f3eb4b6e # via -r requirements/dev.in -boto3==1.34.102 \ - --hash=sha256:1c1fb2884f85c0ec6b62e6e7ed5a2a6635e1188f3ab5d2b700f7db1cf8464484 \ - --hash=sha256:65e4b9fb9ceefe19976e8822ac0cd68d28946d4697e538741d2bbdb5b45ae42f +boto3==1.34.103 \ + --hash=sha256:58d097241f3895c4a4c80c9e606689c6e06d77f55f9f53a4cc02dee7e03938b9 \ + --hash=sha256:59b6499f1bb423dd99de6566a20d0a7cf1a5476824be3a792290fd86600e8365 # via moto botocore==1.34.103 \ --hash=sha256:0330d139f18f78d38127e65361859e24ebd6a8bcba184f903c01bb999a3fa431 \ @@ -322,9 +322,9 @@ freezegun==1.5.1 \ --hash=sha256:b29dedfcda6d5e8e083ce71b2b542753ad48cfec44037b3fc79702e2980a89e9 \ --hash=sha256:bf111d7138a8abe55ab48a71755673dbaa4ab87f4cff5634a4442dfec34c15f1 # via -r requirements/dev.in -gdown==5.1.0 \ - --hash=sha256:421530fd238fa15d41ba43219a79fdc28efe8ac11022173abad333701b77de2c \ - --hash=sha256:550a72dc5ca2819fe4bcc15d80d05d7c98c0b90e57256254b77d0256b9df4683 +gdown==5.2.0 \ + --hash=sha256:2145165062d85520a3cd98b356c9ed522c5e7984d408535409fd46f94defc787 \ + --hash=sha256:33083832d82b1101bdd0e9df3edd0fbc0e1c5f14c9d8c38d2a35bf1683b526d6 # via -r requirements/dev.in h11==0.14.0 \ --hash=sha256:8f19fbbe99e72420ff35c00b27a34cb9937e902a8b810e2c88300c6f0a3b699d \ diff --git a/requirements.txt b/requirements.txt index c92dfe1b9..c6ac1150f 100644 --- a/requirements.txt +++ b/requirements.txt @@ -28,9 +28,9 @@ attrs==23.2.0 \ # cattrs # fiona # requests-cache -boto3==1.34.102 \ - --hash=sha256:1c1fb2884f85c0ec6b62e6e7ed5a2a6635e1188f3ab5d2b700f7db1cf8464484 \ - --hash=sha256:65e4b9fb9ceefe19976e8822ac0cd68d28946d4697e538741d2bbdb5b45ae42f +boto3==1.34.103 \ + --hash=sha256:58d097241f3895c4a4c80c9e606689c6e06d77f55f9f53a4cc02dee7e03938b9 \ + --hash=sha256:59b6499f1bb423dd99de6566a20d0a7cf1a5476824be3a792290fd86600e8365 # via # -r requirements/base.in # django-ses @@ -300,9 +300,9 @@ django-oauth-toolkit==2.3.0 \ --hash=sha256:47dfeab97ec21496f307c2cf3468e64ca08897fa499bf3104366d32005c9111d \ --hash=sha256:cf1cb1a5744672e6bd7d66b4a110a463bcef9cf5ed4f27e29682cc6a4d0df1ed # via -r requirements/base.in -django-safedelete==1.3.3 \ - --hash=sha256:a26bc360436159ccfaa367927e19de8e0b44fea3908702006bc87c649323e52b \ - --hash=sha256:dcd320f868bc3c71974aac340ab4508bc1ffeb1687b5e7cf5ba97cde676b96f2 +django-safedelete==1.4.0 \ + --hash=sha256:ce63f2dd101fec303837ef624592628e022691c3ade2a0893c9fc4c7796e8288 \ + --hash=sha256:f722845088c00398711fad8961f044cf18badfecaf541bcc616102f46339adda # via -r requirements/base.in django-ses==4.0.0 \ --hash=sha256:43e869a3fd3aa22dbe9e4c2031163dd93448ddb801e12033c8d3f12c2df5ce80 \ @@ -466,6 +466,7 @@ packaging==24.0 \ --hash=sha256:2ddfb553fdf02fb784c234c7ba6ccc288296ceabec964ad2eae3777778130bc5 \ --hash=sha256:eb82c5e3e56209074766e6885bb04b8c38a0c015d0a30036ebe7ece34c9989e9 # via + # django-safedelete # geopandas # gunicorn # lazy-loader @@ -874,7 +875,7 @@ sniffio==1.3.1 \ # anyio # httpx soil-id @ https://github.com/techmatters/soil-id-algorithm/archive/main.zip \ - --hash=sha256:e7bf7ef88c9f46bc7166fc610a3c94c04ab686ca895df878f23e745029125a29 + --hash=sha256:f84589da44845a75ecfd904db8d0e63c8af1455bda4d3e2ff5f25c3bbe0ce7ad # via -r requirements/base.in sqlparse==0.5.0 \ --hash=sha256:714d0a4932c059d16189f58ef5411ec2287a4360f17cdd0edd2d09d4c5087c93 \