diff --git a/conda-lock.yml b/conda-lock.yml index 4415f959..246a31b4 100644 --- a/conda-lock.yml +++ b/conda-lock.yml @@ -13,7 +13,7 @@ version: 1 metadata: content_hash: - linux-64: 6cb587378623b3ba8266d069f2ae0be38a13bcc93af340aac311fb4ef322c202 + linux-64: b7b524b1ba497b9648707a5bfb9c9dd4abb412a6b07af7b0472985be7ba39abe channels: - url: conda-forge used_env_vars: [] @@ -106,6 +106,19 @@ package: sha256: 62637ac498bcf47783cbf4f48e9b09e4e2f5a6ad42f43ca8f632c353827b94f4 category: main optional: false +- name: aom + version: 3.7.1 + manager: conda + platform: linux-64 + dependencies: + libgcc-ng: '>=12' + libstdcxx-ng: '>=12' + url: https://conda.anaconda.org/conda-forge/linux-64/aom-3.7.1-h59595ed_0.conda + hash: + md5: 504e70332b8322cda93b7bceb5925fca + sha256: 57ad60805ffc7097a690d6d0e07ba432a3dae187158e13001c392177358478f9 + category: main + optional: false - name: appdirs version: 1.4.4 manager: conda @@ -119,15 +132,15 @@ package: category: main optional: false - name: argcomplete - version: 3.1.6 + version: 3.2.1 manager: conda platform: linux-64 dependencies: python: '>=3.8' - url: https://conda.anaconda.org/conda-forge/noarch/argcomplete-3.1.6-pyhd8ed1ab_0.conda + url: https://conda.anaconda.org/conda-forge/noarch/argcomplete-3.2.1-pyhd8ed1ab_0.conda hash: - md5: c629a13439d80b37c6a946b098c4ac2b - sha256: 62c3486961e43fb9b495b7854f48fea9b486b2176a9629c6faf80c445543b1aa + md5: 0801250abb3d5b86010e20324f0dde94 + sha256: af221f16a23feea4d91db75b35c5720c9c448814af815fe6d45c5627eb75e897 category: main optional: false - name: argon2-cffi @@ -224,20 +237,20 @@ package: category: main optional: false - name: aws-c-auth - version: 0.7.7 + version: 0.7.8 manager: conda platform: linux-64 dependencies: aws-c-cal: '>=0.6.9,<0.6.10.0a0' - aws-c-common: '>=0.9.8,<0.9.9.0a0' + aws-c-common: '>=0.9.10,<0.9.11.0a0' aws-c-http: '>=0.7.14,<0.7.15.0a0' aws-c-io: '>=0.13.36,<0.13.37.0a0' - aws-c-sdkutils: '>=0.1.12,<0.1.13.0a0' + aws-c-sdkutils: '>=0.1.13,<0.1.14.0a0' libgcc-ng: '>=12' - url: https://conda.anaconda.org/conda-forge/linux-64/aws-c-auth-0.7.7-h4faf3ed_1.conda + url: https://conda.anaconda.org/conda-forge/linux-64/aws-c-auth-0.7.8-h538f98c_2.conda hash: - md5: e2a9f779fafe385cd516c079e7c9a36b - sha256: 2647adb3ef4373e545308791020d6fbbeff4b57a3a1bb9f82dfc89ddf56e458e + md5: d42aebb91e28e2fee2a0218cfbff2c90 + sha256: b06ef95458fc70af4230c9c6690011235cd25288752ff7aa25492fc6d1c0e028 category: main optional: false - name: aws-c-cal @@ -245,25 +258,25 @@ package: manager: conda platform: linux-64 dependencies: - aws-c-common: '>=0.9.8,<0.9.9.0a0' + aws-c-common: '>=0.9.10,<0.9.11.0a0' libgcc-ng: '>=12' - openssl: '>=3.1.4,<4.0a0' - url: https://conda.anaconda.org/conda-forge/linux-64/aws-c-cal-0.6.9-h3b91eb8_1.conda + openssl: '>=3.2.0,<4.0a0' + url: https://conda.anaconda.org/conda-forge/linux-64/aws-c-cal-0.6.9-h5d48c4d_2.conda hash: - md5: ab28ae62aa4738f7ca0622554aadc31b - sha256: 8bca41960971a2f6eea0d61a30e6d8b1bf80f520b5959aba92b87d1385d3d0cd + md5: 9e51dfd5da37c1817d2a850188861987 + sha256: ec56734a24eee51e2f89bec3d686dd2c4dbb09d0305248b1d14e4c748065dc23 category: main optional: false - name: aws-c-common - version: 0.9.8 + version: 0.9.10 manager: conda platform: linux-64 dependencies: libgcc-ng: '>=12' - url: https://conda.anaconda.org/conda-forge/linux-64/aws-c-common-0.9.8-hd590300_0.conda + url: https://conda.anaconda.org/conda-forge/linux-64/aws-c-common-0.9.10-hd590300_0.conda hash: - md5: 1fd5f2ae093f2dbf28dc4f18fca57309 - sha256: 09075cb426a0b903b7ca86e4f399eb0be02b6d24e403792a5f378064fcb7a08b + md5: 93729f7a54b25cb135ac2b67ea3a7603 + sha256: dba8a20acedc6bc3574e4068c196969881462ad831aae267d25fbc9409785a6b category: main optional: false - name: aws-c-compression @@ -271,12 +284,12 @@ package: manager: conda platform: linux-64 dependencies: - aws-c-common: '>=0.9.8,<0.9.9.0a0' + aws-c-common: '>=0.9.10,<0.9.11.0a0' libgcc-ng: '>=12' - url: https://conda.anaconda.org/conda-forge/linux-64/aws-c-compression-0.2.17-hfd9eb17_6.conda + url: https://conda.anaconda.org/conda-forge/linux-64/aws-c-compression-0.2.17-h7f92143_7.conda hash: - md5: aee687dcfcc2a75d77b6e6024273978a - sha256: d67e50aff37474eee393346d71c9e4bbb6d190f86722ac932b2837acfea33f76 + md5: c55a1a0c1419fcdfce6d21c41b0f92ab + sha256: ce508018c1109d4e5c6b65695639deaa2beea31edc39145bb810efb13ffed2c3 category: main optional: false - name: aws-c-event-stream @@ -284,15 +297,15 @@ package: manager: conda platform: linux-64 dependencies: - aws-c-common: '>=0.9.8,<0.9.9.0a0' + aws-c-common: '>=0.9.10,<0.9.11.0a0' aws-c-io: '>=0.13.36,<0.13.37.0a0' aws-checksums: '>=0.1.17,<0.1.18.0a0' libgcc-ng: '>=12' libstdcxx-ng: '>=12' - url: https://conda.anaconda.org/conda-forge/linux-64/aws-c-event-stream-0.3.2-h1fff966_7.conda + url: https://conda.anaconda.org/conda-forge/linux-64/aws-c-event-stream-0.3.2-h0bcb0bb_8.conda hash: - md5: 7badad50132f03325f1060dc0a006465 - sha256: abade13c6c6b480bc68ba11d2616f81951207ce44115ac10d237c38251641380 + md5: 21dafb60b5854f82b196f32e5857dec6 + sha256: d2855cd791a95648ac773aa6561c61f9e77450f123c8aa82eea1d66e90d5bfb1 category: main optional: false - name: aws-c-http @@ -301,14 +314,14 @@ package: platform: linux-64 dependencies: aws-c-cal: '>=0.6.9,<0.6.10.0a0' - aws-c-common: '>=0.9.8,<0.9.9.0a0' + aws-c-common: '>=0.9.10,<0.9.11.0a0' aws-c-compression: '>=0.2.17,<0.2.18.0a0' aws-c-io: '>=0.13.36,<0.13.37.0a0' libgcc-ng: '>=12' - url: https://conda.anaconda.org/conda-forge/linux-64/aws-c-http-0.7.14-hc86c171_2.conda + url: https://conda.anaconda.org/conda-forge/linux-64/aws-c-http-0.7.14-hd268abd_3.conda hash: - md5: e092fb5c53b2915be20b19e8e31b016e - sha256: e29a5b81731995634338ced49d241c77f820df37977ab932a637351efc94adba + md5: 0b0f7174a0f94d2c9a02fb24f6fc0d00 + sha256: ff7e6252a299a59b7e6494723ef3043ba31643ec2a750b8593037bc757a2c4fa category: main optional: false - name: aws-c-io @@ -317,13 +330,13 @@ package: platform: linux-64 dependencies: aws-c-cal: '>=0.6.9,<0.6.10.0a0' - aws-c-common: '>=0.9.8,<0.9.9.0a0' + aws-c-common: '>=0.9.10,<0.9.11.0a0' libgcc-ng: '>=12' - s2n: '>=1.3.56,<1.3.57.0a0' - url: https://conda.anaconda.org/conda-forge/linux-64/aws-c-io-0.13.36-hc23c90e_0.conda + s2n: '>=1.4.0,<1.4.1.0a0' + url: https://conda.anaconda.org/conda-forge/linux-64/aws-c-io-0.13.36-he0cd244_2.conda hash: - md5: 57259ec9cdbba3e4897e950dd976c93d - sha256: b3fe3214b11f3cf3c631bef0be09f88610103c0262225a368914ce149533900d + md5: c930336aa72995f1b5459b51df3ba841 + sha256: 7426f7444cd43cd7a649670c7330c163b40f40aa832e82be873d9de91e49b05e category: main optional: false - name: aws-c-mqtt @@ -331,46 +344,46 @@ package: manager: conda platform: linux-64 dependencies: - aws-c-common: '>=0.9.8,<0.9.9.0a0' + aws-c-common: '>=0.9.10,<0.9.11.0a0' aws-c-http: '>=0.7.14,<0.7.15.0a0' aws-c-io: '>=0.13.36,<0.13.37.0a0' libgcc-ng: '>=12' - url: https://conda.anaconda.org/conda-forge/linux-64/aws-c-mqtt-0.9.10-hba57965_1.conda + url: https://conda.anaconda.org/conda-forge/linux-64/aws-c-mqtt-0.9.10-h35285c7_2.conda hash: - md5: c458f86f2d52f04a588c0ce72c8b2bce - sha256: 803ddbb520a706f8b43283f37640e1b37b132b399ceef76abb8f4b309933400e + md5: 0cca0a3d7dc82f219ac46635478952f6 + sha256: 246276b22393302b4e9acb934ec40bb78d3be74e7bd2c110272b46c5370a60ee category: main optional: false - name: aws-c-s3 - version: 0.4.1 + version: 0.4.4 manager: conda platform: linux-64 dependencies: - aws-c-auth: '>=0.7.7,<0.7.8.0a0' + aws-c-auth: '>=0.7.8,<0.7.9.0a0' aws-c-cal: '>=0.6.9,<0.6.10.0a0' - aws-c-common: '>=0.9.8,<0.9.9.0a0' + aws-c-common: '>=0.9.10,<0.9.11.0a0' aws-c-http: '>=0.7.14,<0.7.15.0a0' aws-c-io: '>=0.13.36,<0.13.37.0a0' aws-checksums: '>=0.1.17,<0.1.18.0a0' libgcc-ng: '>=12' - openssl: '>=3.1.4,<4.0a0' - url: https://conda.anaconda.org/conda-forge/linux-64/aws-c-s3-0.4.1-hfadff92_0.conda + openssl: '>=3.2.0,<4.0a0' + url: https://conda.anaconda.org/conda-forge/linux-64/aws-c-s3-0.4.4-h0448019_0.conda hash: - md5: 51a03f7432cc620590f050911bd6878a - sha256: 71832dc68eccdb70b06fc195a4f71304893f844131d8d165b308ad34eb79dfe1 + md5: f27f792aa83c7be3ee96d09a637a6474 + sha256: 04142edf1a574e137a9e30a4f4e9b9448e219b6f4216a782ceaed933f27852a6 category: main optional: false - name: aws-c-sdkutils - version: 0.1.12 + version: 0.1.13 manager: conda platform: linux-64 dependencies: - aws-c-common: '>=0.9.8,<0.9.9.0a0' + aws-c-common: '>=0.9.10,<0.9.11.0a0' libgcc-ng: '>=12' - url: https://conda.anaconda.org/conda-forge/linux-64/aws-c-sdkutils-0.1.12-hfd9eb17_5.conda + url: https://conda.anaconda.org/conda-forge/linux-64/aws-c-sdkutils-0.1.13-h7f92143_0.conda hash: - md5: af2bccdb4cf6e9254969426fd53c7c65 - sha256: d109677012abbf7e062d2a64c0df55523b056e74e5895650841b49f7f94a48a1 + md5: a4a83424ad4eab023c6e5b4adf264006 + sha256: 8696e7023fde7c4588db8aedd08ffc0b4041c8449bd9edd50f237534cbcfac93 category: main optional: false - name: aws-checksums @@ -378,68 +391,68 @@ package: manager: conda platform: linux-64 dependencies: - aws-c-common: '>=0.9.8,<0.9.9.0a0' + aws-c-common: '>=0.9.10,<0.9.11.0a0' libgcc-ng: '>=12' - url: https://conda.anaconda.org/conda-forge/linux-64/aws-checksums-0.1.17-hfd9eb17_5.conda + url: https://conda.anaconda.org/conda-forge/linux-64/aws-checksums-0.1.17-h7f92143_6.conda hash: - md5: 92077b8c5f72e9b81f069b1eb492ab80 - sha256: fa197cea5d34038066ac743ffa3ae688c057152fff55226ec740c5f68a136282 + md5: 46bd4e9c2fd10de83bae22f0bb71139b + sha256: ac2082211e7d5fd3036f9abd7e398ef67d5327efb3808f17a30fcab59acacbfb category: main optional: false - name: aws-crt-cpp - version: 0.24.7 + version: 0.24.11 manager: conda platform: linux-64 dependencies: - aws-c-auth: '>=0.7.7,<0.7.8.0a0' + aws-c-auth: '>=0.7.8,<0.7.9.0a0' aws-c-cal: '>=0.6.9,<0.6.10.0a0' - aws-c-common: '>=0.9.8,<0.9.9.0a0' + aws-c-common: '>=0.9.10,<0.9.11.0a0' aws-c-event-stream: '>=0.3.2,<0.3.3.0a0' aws-c-http: '>=0.7.14,<0.7.15.0a0' aws-c-io: '>=0.13.36,<0.13.37.0a0' aws-c-mqtt: '>=0.9.10,<0.9.11.0a0' - aws-c-s3: '>=0.4.1,<0.4.2.0a0' - aws-c-sdkutils: '>=0.1.12,<0.1.13.0a0' + aws-c-s3: '>=0.4.4,<0.4.5.0a0' + aws-c-sdkutils: '>=0.1.13,<0.1.14.0a0' libgcc-ng: '>=12' libstdcxx-ng: '>=12' - url: https://conda.anaconda.org/conda-forge/linux-64/aws-crt-cpp-0.24.7-h97e63c7_6.conda + url: https://conda.anaconda.org/conda-forge/linux-64/aws-crt-cpp-0.24.11-h5bdc202_2.conda hash: - md5: f31cf00e404ba450c317d3a5ca9820b6 - sha256: 13897adb73768128bf5110a97bc9a1a9aa3dfdd86460edd9d2af644ed89bd774 + md5: 108e5ec3f64e576d8d2179aec9ede937 + sha256: 8fbbc276d379eca4de1d30bff8f3103a25b51acbfd1706a2fb3c9473b52e12b3 category: main optional: false - name: aws-sdk-cpp - version: 1.11.182 + version: 1.11.210 manager: conda platform: linux-64 dependencies: - aws-c-common: '>=0.9.8,<0.9.9.0a0' + aws-c-common: '>=0.9.10,<0.9.11.0a0' aws-c-event-stream: '>=0.3.2,<0.3.3.0a0' aws-checksums: '>=0.1.17,<0.1.18.0a0' - aws-crt-cpp: '>=0.24.7,<0.24.8.0a0' - libcurl: '>=8.4.0,<9.0a0' + aws-crt-cpp: '>=0.24.11,<0.24.12.0a0' + libcurl: '>=8.5.0,<9.0a0' libgcc-ng: '>=12' libstdcxx-ng: '>=12' libzlib: '>=1.2.13,<1.3.0a0' - openssl: '>=3.1.4,<4.0a0' - url: https://conda.anaconda.org/conda-forge/linux-64/aws-sdk-cpp-1.11.182-h8beafcf_7.conda + openssl: '>=3.2.0,<4.0a0' + url: https://conda.anaconda.org/conda-forge/linux-64/aws-sdk-cpp-1.11.210-h967ea9e_4.conda hash: - md5: fe27868256b2d2a57d8136e08cdff2bb - sha256: c71ca50ad5e4c806d76b3584a53b295db317ffa92bd8f28eacc2bf88a3877eee + md5: a70ab7bfe53176ae7b6b3cdd2a0236b3 + sha256: bda4ae2b0207975123a81a24d733dd37894b268d264e5c898b6e716a47538ea1 category: main optional: false - name: babel - version: 2.13.1 + version: 2.14.0 manager: conda platform: linux-64 dependencies: python: '>=3.7' pytz: '' setuptools: '' - url: https://conda.anaconda.org/conda-forge/noarch/babel-2.13.1-pyhd8ed1ab_0.conda + url: https://conda.anaconda.org/conda-forge/noarch/babel-2.14.0-pyhd8ed1ab_0.conda hash: - md5: 3ccff479c246692468f604df9c85ef26 - sha256: 1f955c700db16f65b16c9e9c1613436480d5497970b8030b7a9ebe1620cc2147 + md5: 9669586875baeced8fc30c0826c3270e + sha256: 8584e3da58e92b72641c89ff9b98c51f0d5dbe76e527867804cbdf03ac91d8e6 category: main optional: false - name: backoff @@ -516,22 +529,22 @@ package: category: main optional: false - name: boto3 - version: 1.33.4 + version: 1.33.13 manager: conda platform: linux-64 dependencies: - botocore: '>=1.33.4,<1.34.0' + botocore: '>=1.33.13,<1.34.0' jmespath: '>=0.7.1,<2.0.0' python: '>=3.7' s3transfer: '>=0.8.2,<0.9.0' - url: https://conda.anaconda.org/conda-forge/noarch/boto3-1.33.4-pyhd8ed1ab_0.conda + url: https://conda.anaconda.org/conda-forge/noarch/boto3-1.33.13-pyhd8ed1ab_0.conda hash: - md5: 914d59cf685448451de9ac736cb0fb2a - sha256: cb63cadfb3c593cb7295b14450e4310af88d32dc1bbf185ec82a325a12e86f28 + md5: 4a1b38a0938b9fc23fb4fc202d832097 + sha256: 01f797f967ac92346a5bffdae165c5d4bacda8405b828fcd58534a0f82287f76 category: main optional: false - name: botocore - version: 1.33.5 + version: 1.33.13 manager: conda platform: linux-64 dependencies: @@ -539,10 +552,39 @@ package: python: '>=3.7' python-dateutil: '>=2.1,<3.0.0' urllib3: '>=1.25.4,<1.27' - url: https://conda.anaconda.org/conda-forge/noarch/botocore-1.33.5-pyhd8ed1ab_0.conda + url: https://conda.anaconda.org/conda-forge/noarch/botocore-1.33.13-pyhd8ed1ab_0.conda hash: - md5: 352c39ba5cd9ea01996358f0748e102e - sha256: 56566ea8f3a48c24190c1dcf50681c0a84b26821c335c21b5c3c5d238e4bdb14 + md5: d2566fd9134b6f8b8e69a07e9a1fa17e + sha256: 498d08274880ef279e9a6dd68f66b384d71321d92301fa60330712f9edceab0c + category: main + optional: false +- name: brotli + version: 1.1.0 + manager: conda + platform: linux-64 + dependencies: + brotli-bin: 1.1.0 + libbrotlidec: 1.1.0 + libbrotlienc: 1.1.0 + libgcc-ng: '>=12' + url: https://conda.anaconda.org/conda-forge/linux-64/brotli-1.1.0-hd590300_1.conda + hash: + md5: f27a24d46e3ea7b70a1f98e50c62508f + sha256: f2d918d351edd06c55a6c2d84b488fe392f85ea018ff227daac07db22b408f6b + category: main + optional: false +- name: brotli-bin + version: 1.1.0 + manager: conda + platform: linux-64 + dependencies: + libbrotlidec: 1.1.0 + libbrotlienc: 1.1.0 + libgcc-ng: '>=12' + url: https://conda.anaconda.org/conda-forge/linux-64/brotli-bin-1.1.0-hd590300_1.conda + hash: + md5: 39f910d205726805a958da408ca194ba + sha256: a641abfbaec54f454c8434061fffa7fdaa9c695e8a5a400ed96b4f07c0c00677 category: main optional: false - name: brotli-python @@ -560,6 +602,20 @@ package: sha256: 559093679e9fdb6061b7b80ca0f9a31fe6ffc213f1dae65bc5c82e2cd1a94107 category: main optional: false +- name: brunsli + version: '0.1' + manager: conda + platform: linux-64 + dependencies: + brotli: '>=1.0.9,<2.0a0' + libgcc-ng: '>=9.3.0' + libstdcxx-ng: '>=9.3.0' + url: https://conda.anaconda.org/conda-forge/linux-64/brunsli-0.1-h9c3ff4c_0.tar.bz2 + hash: + md5: c1ac6229d0bfd14f8354ff9ad2a26cad + sha256: 36da32e5a6beab7a9af39be1c8f42e5eca716e64562cb9d5e0d559c14406b11d + category: main + optional: false - name: bzip2 version: 1.0.8 manager: conda @@ -584,6 +640,22 @@ package: sha256: 6b0eee827bade11c2964a05867499a50ad2a9d1b14dfe18fb867a3bc9357f56f category: main optional: false +- name: c-blosc2 + version: 2.11.3 + manager: conda + platform: linux-64 + dependencies: + libgcc-ng: '>=12' + libstdcxx-ng: '>=12' + lz4-c: '>=1.9.3,<1.10.0a0' + zlib-ng: '>=2.0.7,<2.1.0a0' + zstd: '>=1.5.5,<1.6.0a0' + url: https://conda.anaconda.org/conda-forge/linux-64/c-blosc2-2.11.3-hb4ffafa_0.conda + hash: + md5: f394ac64ab0e1fcb0152cc9c16df3d85 + sha256: b6525a38bf2dc9380441c06d5d741a58affd813d05a9b12522d3110547392f4b + category: main + optional: false - name: ca-certificates version: 2023.11.17 manager: conda @@ -716,20 +788,33 @@ package: category: main optional: false - name: cfitsio - version: 4.3.0 + version: 4.3.1 manager: conda platform: linux-64 dependencies: bzip2: '>=1.0.8,<2.0a0' - libcurl: '>=8.2.0,<9.0a0' + libcurl: '>=8.4.0,<9.0a0' libgcc-ng: '>=12' libgfortran-ng: '' libgfortran5: '>=12.3.0' libzlib: '>=1.2.13,<1.3.0a0' - url: https://conda.anaconda.org/conda-forge/linux-64/cfitsio-4.3.0-hbdc6101_0.conda + url: https://conda.anaconda.org/conda-forge/linux-64/cfitsio-4.3.1-hbdc6101_0.conda + hash: + md5: dcea02841b33a9c49f74ca9328de919a + sha256: b91003bff71351a0132c84d69fbb5afcfa90e57d83f76a180c6a5a0289099fb1 + category: main + optional: false +- name: charls + version: 2.4.2 + manager: conda + platform: linux-64 + dependencies: + libgcc-ng: '>=12' + libstdcxx-ng: '>=12' + url: https://conda.anaconda.org/conda-forge/linux-64/charls-2.4.2-h59595ed_0.conda hash: - md5: 797554b8b7603011e8677884381fbcc5 - sha256: c74938f1ade9b8f37b9fa8cc98a5b9262b325506f41d7492ad1d00146e0f1d08 + md5: 4336bd67920dd504cd8c6761d6a99645 + sha256: 18f1c43f91ccf28297f92b094c2c8dbe9c6e8241c0d3cbd6cda014a990660fdd category: main optional: false - name: charset-normalizer @@ -922,7 +1007,7 @@ package: category: main optional: false - name: cryptography - version: 41.0.5 + version: 41.0.7 manager: conda platform: linux-64 dependencies: @@ -931,10 +1016,10 @@ package: openssl: '>=3.1.4,<4.0a0' python: '>=3.11,<3.12.0a0' python_abi: 3.11.* - url: https://conda.anaconda.org/conda-forge/linux-64/cryptography-41.0.5-py311h63ff55d_0.conda + url: https://conda.anaconda.org/conda-forge/linux-64/cryptography-41.0.7-py311hcb13ee4_1.conda hash: - md5: 22584e5c97ed8f1a6b63a0ff43dba827 - sha256: 236ed2218fb857fecaa11fc7fee23574f683b3d03576f8f26f628b7fd2ced5fa + md5: ca6e04ac7262ecaec846e483d6fdc6c8 + sha256: 0959d015727ae5f55f385556a0a19b9f6036752ea05f78a99cb534803e325cab category: main optional: false - name: cuda-cudart @@ -947,10 +1032,10 @@ package: cuda-version: '>=12.0,<12.1.0a0' libgcc-ng: '>=12' libstdcxx-ng: '>=12' - url: https://conda.anaconda.org/conda-forge/linux-64/cuda-cudart-12.0.107-h59595ed_6.conda + url: https://conda.anaconda.org/conda-forge/linux-64/cuda-cudart-12.0.107-hd3aeb46_7.conda hash: - md5: 34783b83df22fc44afd532450395a9dd - sha256: 40618593cf36b1a6469d0bd35e85b9f0e895250e59bd8d8b4c7c97aea0e0d514 + md5: def0e966c7fad7e13f8840b1cdb92dbd + sha256: bc953b78fa1b0b989da5be01a3f8adc4aa80bc7eaa8a2f08850f5558871b6654 category: main optional: false - name: cuda-cudart_linux-64 @@ -959,10 +1044,10 @@ package: platform: linux-64 dependencies: cuda-version: '>=12.0,<12.1.0a0' - url: https://conda.anaconda.org/conda-forge/noarch/cuda-cudart_linux-64-12.0.107-h59595ed_6.conda + url: https://conda.anaconda.org/conda-forge/noarch/cuda-cudart_linux-64-12.0.107-h59595ed_7.conda hash: - md5: 08a23e8de2cceb7b63dbeaea678226f9 - sha256: ae947dd9da8af84dce73a102bf3c2ae9a5e5f1059c8501845b79f188b414d911 + md5: 36de472d13cff5e19543998deb4a9093 + sha256: 01eb5aba8324fbf99fb9eac3ea3423bc3a0a9ecf42e40da27aa3aea557c33cdf category: main optional: false - name: cuda-nvrtc @@ -974,10 +1059,10 @@ package: cuda-version: '>=12.0,<12.1.0a0' libgcc-ng: '>=12' libstdcxx-ng: '>=12' - url: https://conda.anaconda.org/conda-forge/linux-64/cuda-nvrtc-12.0.76-h59595ed_1.conda + url: https://conda.anaconda.org/conda-forge/linux-64/cuda-nvrtc-12.0.76-hd3aeb46_2.conda hash: - md5: d027e8d169c86ac1c6bb3df2a2029167 - sha256: 15b518100970baa1273a4262ff927c5bce81936685edcefd9a1a0fd960e5c2a8 + md5: 89026aaa92c506b151bfb58a641cf997 + sha256: e02be8b52ed9f55b35d356e6e7f67d67b685ed1e7adf49cfe164f1f5fc3646b7 category: main optional: false - name: cuda-nvtx @@ -988,10 +1073,10 @@ package: cuda-version: '>=12.0,<12.1.0a0' libgcc-ng: '>=12' libstdcxx-ng: '>=12' - url: https://conda.anaconda.org/conda-forge/linux-64/cuda-nvtx-12.0.76-hcb278e6_0.conda + url: https://conda.anaconda.org/conda-forge/linux-64/cuda-nvtx-12.0.76-h59595ed_1.conda hash: - md5: c856e8e0c8c1b14601cad6a89ab4798e - sha256: 402d7e34f9f2b68abf5507077e758c32f44e28a6b897d52beaf5c8e6ddef2a52 + md5: 63c8633eb33e5ad99286c9063f41693e + sha256: 6b99062aa50c2a76a7c8ba495647e7cea27595052e45ed7ed1beaa1805b4f6a4 category: main optional: false - name: cuda-version @@ -1024,7 +1109,7 @@ package: category: main optional: false - name: dask-core - version: 2023.11.0 + version: 2023.12.0 manager: conda platform: linux-64 dependencies: @@ -1037,10 +1122,10 @@ package: python: '>=3.9' pyyaml: '>=5.3.1' toolz: '>=0.10.0' - url: https://conda.anaconda.org/conda-forge/noarch/dask-core-2023.11.0-pyhd8ed1ab_0.conda + url: https://conda.anaconda.org/conda-forge/noarch/dask-core-2023.12.0-pyhd8ed1ab_0.conda hash: - md5: 3bf8f5c3fbab9e0cfffdf5914f021854 - sha256: f23b4e5d8f118d9d7916d8def04dab9a299d73879216da72dd7168c1c30ecb9e + md5: 95eae0785aed72998493140dc0115382 + sha256: e366163aa7325d14ca38ca72ca4672eeb4b7a7453573c47cfa90d0db60136b48 category: main optional: false - name: dataclasses @@ -1096,6 +1181,18 @@ package: sha256: fb554b32a8f880cafaff4e67c789965d97c41eb1a6cc9ab5a83c6b28b581d809 category: main optional: false +- name: dav1d + version: 1.2.1 + manager: conda + platform: linux-64 + dependencies: + libgcc-ng: '>=12' + url: https://conda.anaconda.org/conda-forge/linux-64/dav1d-1.2.1-hd590300_0.conda + hash: + md5: 418c6ca5929a611cbd69204907a83995 + sha256: 22053a5842ca8ee1cf8e1a817138cdb5e647eb2c46979f84153f6ad7bde73020 + category: main + optional: false - name: dbus version: 1.13.6 manager: conda @@ -1176,15 +1273,28 @@ package: category: main optional: false - name: distlib - version: 0.3.7 + version: 0.3.8 manager: conda platform: linux-64 dependencies: python: 2.7|>=3.6 - url: https://conda.anaconda.org/conda-forge/noarch/distlib-0.3.7-pyhd8ed1ab_0.conda + url: https://conda.anaconda.org/conda-forge/noarch/distlib-0.3.8-pyhd8ed1ab_0.conda + hash: + md5: db16c66b759a64dc5183d69cc3745a52 + sha256: 3ff11acdd5cc2f80227682966916e878e45ced94f59c402efb94911a5774e84e + category: main + optional: false +- name: docker-pycreds + version: 0.4.0 + manager: conda + platform: linux-64 + dependencies: + python: '' + six: '>=1.4.0' + url: https://conda.anaconda.org/conda-forge/noarch/docker-pycreds-0.4.0-py_0.tar.bz2 hash: - md5: 12d8aae6994f342618443a8f05c652a0 - sha256: 13c887cb4a29e1e853a118cfc0e42b72a7e1d1c50c66c0974885d37f0db30619 + md5: c69f19038efee4eb534623610d0c2053 + sha256: 2ba7e3e4f75e07b42246b4ba8569c983ecbdcda47b1b900632858a23d91826f2 category: main optional: false - name: docstring_parser @@ -1200,7 +1310,7 @@ package: category: main optional: false - name: dulwich - version: 0.21.6 + version: 0.21.7 manager: conda platform: linux-64 dependencies: @@ -1208,10 +1318,10 @@ package: python: '>=3.11,<3.12.0a0' python_abi: 3.11.* urllib3: '>=1.25' - url: https://conda.anaconda.org/conda-forge/linux-64/dulwich-0.21.6-py311h459d7ec_2.conda + url: https://conda.anaconda.org/conda-forge/linux-64/dulwich-0.21.7-py311h459d7ec_0.conda hash: - md5: 1caf746dab2853ce1cb8e8a98a25b050 - sha256: 49c02ea3c76c8f3c737cd97c4d0bd5382d4e2094db95fbfda23e358582217779 + md5: a50b0c00b7498cfde328e63a3e18d9d3 + sha256: 190dbafc9e699f74cf8d287e91246acac1e14afda8ce6aedafac87e392e1bc96 category: main optional: false - name: ensureconda @@ -1280,7 +1390,7 @@ package: category: main optional: false - name: fastapi - version: 0.104.1 + version: 0.105.0 manager: conda platform: linux-64 dependencies: @@ -1289,10 +1399,10 @@ package: python: '>=3.8' starlette: '>=0.27.0,<0.28.0' typing-extensions: '>=4.8.0' - url: https://conda.anaconda.org/conda-forge/noarch/fastapi-0.104.1-pyhd8ed1ab_0.conda + url: https://conda.anaconda.org/conda-forge/noarch/fastapi-0.105.0-pyhd8ed1ab_0.conda hash: - md5: 60f34cd9f2b7eeb22ccf1f93ed973138 - sha256: e067f3da3466f310ff47fe8dc5310dc7c57fcc17094efde0374fd3e91138dc7f + md5: addf0ea876c495048847bd318cd042ff + sha256: 7b4c318cc155fd575a1ed6d852ad5a89a3aac0c661cb34b7db6e5bd55739c934 category: main optional: false - name: fasteners @@ -1324,26 +1434,24 @@ package: manager: conda platform: linux-64 dependencies: - attrs: '>=17' - click: '>=4.0' + attrs: '>=19.2.0' + click: '>=8.0,<9.dev0' click-plugins: '>=1.0' cligj: '>=0.5' gdal: '' - importlib-metadata: '' libgcc-ng: '>=12' - libgdal: '>=3.7.2,<3.8.0a0' + libgdal: '>=3.8.0,<3.9.0a0' libstdcxx-ng: '>=12' - munch: '' numpy: '>=1.23.5,<2.0a0' python: '>=3.11,<3.12.0a0' python_abi: 3.11.* setuptools: '' shapely: '' - six: '>=1.7' - url: https://conda.anaconda.org/conda-forge/linux-64/fiona-1.9.5-py311hbac4ec9_0.conda + six: '' + url: https://conda.anaconda.org/conda-forge/linux-64/fiona-1.9.5-py311hf8e0aa6_2.conda hash: - md5: 786d3808394b1bdfd3f41f2e2c67279e - sha256: 529600df1964a94c7745b87e31f432ddc03c7b5fd652c193c594c995e1964c6b + md5: 01464abc0630e2285a799a2fa8370a8e + sha256: b01852ee1d8b23276bc69829c3013cbc1fe2004917cf5c5855fe2a22674112d7 category: main optional: false - name: font-ttf-dejavu-sans-mono @@ -1502,23 +1610,23 @@ package: category: main optional: false - name: gdal - version: 3.7.3 + version: 3.8.1 manager: conda platform: linux-64 dependencies: - hdf5: '>=1.14.2,<1.14.3.0a0' + hdf5: '>=1.14.3,<1.14.4.0a0' libgcc-ng: '>=12' - libgdal: 3.7.3 + libgdal: 3.8.1 libstdcxx-ng: '>=12' - libxml2: '>=2.11.6,<2.12.0a0' + libxml2: '>=2.12.2,<2.13.0a0' numpy: '>=1.23.5,<2.0a0' - openssl: '>=3.1.4,<4.0a0' + openssl: '>=3.2.0,<4.0a0' python: '>=3.11,<3.12.0a0' python_abi: 3.11.* - url: https://conda.anaconda.org/conda-forge/linux-64/gdal-3.7.3-py311h815a124_7.conda + url: https://conda.anaconda.org/conda-forge/linux-64/gdal-3.8.1-py311h39b4e0e_4.conda hash: - md5: 7e4c543f4af82d1f81a7b0038dff8774 - sha256: 718c39d81da7d34b74a83afd9766beeccb16d2fc3fc3aee1594cc2e5b9d3e19e + md5: 3251198cb72b392c131676af86c373c8 + sha256: bdf19b65fb2a5ad344c3a535be2bf847f5ee0e534dea182901b7f67a31f4e593 category: main optional: false - name: geopandas-base @@ -1560,12 +1668,12 @@ package: libstdcxx-ng: '>=12' libtiff: '>=4.6.0,<4.7.0a0' libzlib: '>=1.2.13,<1.3.0a0' - proj: '>=9.3.0,<9.3.1.0a0' + proj: '>=9.3.1,<9.3.2.0a0' zlib: '' - url: https://conda.anaconda.org/conda-forge/linux-64/geotiff-1.7.1-hf074850_14.conda + url: https://conda.anaconda.org/conda-forge/linux-64/geotiff-1.7.1-h6b2125f_15.conda hash: - md5: 1d53ee057d8481bd2b4c2c34c8e92aac - sha256: b00958767cb5607bdb3bbcec0b2056b3e48c0f9e34c31ed8ac01c9bd36704dab + md5: 218a726155bd9ae1787b26054eed8566 + sha256: f7dcc865f5522713048397702490ba917abf9d2fbfe89d6b703e0ea333a27b01 category: main optional: false - name: gettext @@ -1709,15 +1817,15 @@ package: platform: linux-64 dependencies: cached-property: '' - hdf5: '>=1.14.2,<1.14.3.0a0' + hdf5: '>=1.14.3,<1.14.4.0a0' libgcc-ng: '>=12' numpy: '>=1.23.5,<2.0a0' python: '>=3.11,<3.12.0a0' python_abi: 3.11.* - url: https://conda.anaconda.org/conda-forge/linux-64/h5py-3.10.0-nompi_py311h3839ddf_100.conda + url: https://conda.anaconda.org/conda-forge/linux-64/h5py-3.10.0-nompi_py311hebc2b07_101.conda hash: - md5: 0ff0b32bd4582a002b4a55c65c08bb00 - sha256: 6277534dd3c0c2c9d951c79da1ceccdaca39af50d395734fb17e74d0ec5715b8 + md5: d296508ba3321610858220a206942274 + sha256: 77b40eae2ee8dcd664c47a62358aceec774494610bca8cba8e63a42a3fd1a2ff category: main optional: false - name: hdf4 @@ -1736,22 +1844,22 @@ package: category: main optional: false - name: hdf5 - version: 1.14.2 + version: 1.14.3 manager: conda platform: linux-64 dependencies: - libaec: '>=1.0.6,<2.0a0' - libcurl: '>=8.2.1,<9.0a0' + libaec: '>=1.1.2,<2.0a0' + libcurl: '>=8.4.0,<9.0a0' libgcc-ng: '>=12' libgfortran-ng: '' libgfortran5: '>=12.3.0' libstdcxx-ng: '>=12' libzlib: '>=1.2.13,<1.3.0a0' - openssl: '>=3.1.2,<4.0a0' - url: https://conda.anaconda.org/conda-forge/linux-64/hdf5-1.14.2-nompi_h4f84152_100.conda + openssl: '>=3.2.0,<4.0a0' + url: https://conda.anaconda.org/conda-forge/linux-64/hdf5-1.14.3-nompi_h4f84152_100.conda hash: - md5: 2de6a9bc8083b49f09b2f6eb28d3ba3c - sha256: f70f18291f912ba019cbb736bb87b6487021154733cd109147a6d9672790b6b8 + md5: d471a5c3abc984b662d9bae3bb7fd8a5 + sha256: b814f8f9598cc6e50127533ec256725183ba69db5fd8cf5443223627f19e3e59 category: main optional: false - name: html5lib @@ -1812,17 +1920,74 @@ package: sha256: 6ee4c986d69ce61e60a20b2459b6f2027baeba153f0a64995fd3cb47c2cc7e07 category: main optional: false +- name: imagecodecs + version: 2023.9.18 + manager: conda + platform: linux-64 + dependencies: + blosc: '>=1.21.5,<2.0a0' + brunsli: '>=0.1,<1.0a0' + bzip2: '>=1.0.8,<2.0a0' + c-blosc2: '>=2.10.2,<3.0a0' + charls: '>=2.4.2,<2.5.0a0' + giflib: '>=5.2.1,<5.3.0a0' + jxrlib: '>=1.1,<1.2.0a0' + lcms2: '>=2.15,<3.0a0' + lerc: '>=4.0.0,<5.0a0' + libaec: '>=1.1.1,<2.0a0' + libavif16: '>=1.0.1,<2.0a0' + libbrotlicommon: '>=1.1.0,<1.2.0a0' + libbrotlidec: '>=1.1.0,<1.2.0a0' + libbrotlienc: '>=1.1.0,<1.2.0a0' + libdeflate: '>=1.19,<1.20.0a0' + libgcc-ng: '>=12' + libjpeg-turbo: '>=3.0.0,<4.0a0' + libpng: '>=1.6.39,<1.7.0a0' + libstdcxx-ng: '>=12' + libtiff: '>=4.6.0,<4.7.0a0' + libwebp-base: '>=1.3.2,<2.0a0' + libzlib: '>=1.2.13,<1.3.0a0' + libzopfli: '>=1.0.3,<1.1.0a0' + lz4-c: '>=1.9.3,<1.10.0a0' + numpy: '>=1.23.5,<2.0a0' + openjpeg: '>=2.5.0,<3.0a0' + python: '>=3.11,<3.12.0a0' + python_abi: 3.11.* + snappy: '>=1.1.10,<2.0a0' + xz: '>=5.2.6,<6.0a0' + zfp: '>=1.0.0,<2.0a0' + zstd: '>=1.5.5,<1.6.0a0' + url: https://conda.anaconda.org/conda-forge/linux-64/imagecodecs-2023.9.18-py311h089f87a_2.conda + hash: + md5: 84ec4db4e83aecb88f3847186ac2cb33 + sha256: 29307d3c883181935f40275b1f884a111f568c6eb6f81cd7c53a88d7e1f37f02 + category: main + optional: false +- name: imageio + version: 2.31.5 + manager: conda + platform: linux-64 + dependencies: + numpy: '' + pillow: '>=8.3.2' + python: '>=3' + url: https://conda.anaconda.org/conda-forge/noarch/imageio-2.31.5-pyh8c1a49c_0.conda + hash: + md5: 6820ccf6a3a27df348f18c85dd89014a + sha256: 0554fbf2136a1ab380551963c5884941f7852034cbe40f002ae040e10e457365 + category: main + optional: false - name: importlib-metadata - version: 6.8.0 + version: 7.0.0 manager: conda platform: linux-64 dependencies: python: '>=3.8' zipp: '>=0.5' - url: https://conda.anaconda.org/conda-forge/noarch/importlib-metadata-6.8.0-pyha770c72_0.conda + url: https://conda.anaconda.org/conda-forge/noarch/importlib-metadata-7.0.0-pyha770c72_0.conda hash: - md5: 4e9f59a060c3be52bc4ddc46ee9b6946 - sha256: 2797ed927d65324309b6c630190d917b9f2111e0c217b721f80429aeb57f9fcf + md5: a941237cd06538837b25cd245fcd25d8 + sha256: 9731e82a00d36b182dc515e31723e711ac82890bb1ca86c6a17a4b471135564f category: main optional: false - name: importlib-resources @@ -1839,15 +2004,15 @@ package: category: main optional: false - name: importlib_metadata - version: 6.8.0 + version: 7.0.0 manager: conda platform: linux-64 dependencies: - importlib-metadata: '>=6.8.0,<6.8.1.0a0' - url: https://conda.anaconda.org/conda-forge/noarch/importlib_metadata-6.8.0-hd8ed1ab_0.conda + importlib-metadata: '>=7.0.0,<7.0.1.0a0' + url: https://conda.anaconda.org/conda-forge/noarch/importlib_metadata-7.0.0-hd8ed1ab_0.conda hash: - md5: b279b07ce18058034e5b3606ba103a8b - sha256: b96e01dc42d547d6d9ceb1c5b52a5232cc04e40153534350f702c3e0418a6b3f + md5: 12aff14f84c337be5e5636bf612f4140 + sha256: b9e8ed41df6c55222e3777f422e77a22a6a19ff779b2e65aa8dfdea792c1f7de category: main optional: false - name: importlib_resources @@ -1916,16 +2081,16 @@ package: matplotlib-inline: '' pexpect: '>4.3' pickleshare: '' - prompt-toolkit: '>=3.0.30,<3.1.0,!=3.0.37' + prompt-toolkit: '>=3.0.41,<3.1.0' pygments: '>=2.4.0' python: '>=3.9' stack_data: '' traitlets: '>=5' typing_extensions: '' - url: https://conda.anaconda.org/conda-forge/noarch/ipython-8.18.1-pyh31011fe_1.conda + url: https://conda.anaconda.org/conda-forge/noarch/ipython-8.18.1-pyh707e725_3.conda hash: - md5: ac2f9c2e10c2e90e8d135cef51f9753a - sha256: 67490e640faa372d663a5c5cd2d61f417cce22a019a4de82a9e5ddb1cf2ee181 + md5: 15c6f45a45f7ac27f6d60b0b084f6761 + sha256: d98d615ac8ad71de698afbc50e8269570d4b89706821c4ff3058a4ceec69bd9b category: main optional: false - name: isoduration @@ -2222,7 +2387,7 @@ package: category: main optional: false - name: jupyter_server - version: 2.11.1 + version: 2.12.1 manager: conda platform: linux-64 dependencies: @@ -2245,23 +2410,23 @@ package: tornado: '>=6.2.0' traitlets: '>=5.6.0' websocket-client: '' - url: https://conda.anaconda.org/conda-forge/noarch/jupyter_server-2.11.1-pyhd8ed1ab_0.conda + url: https://conda.anaconda.org/conda-forge/noarch/jupyter_server-2.12.1-pyhd8ed1ab_0.conda hash: - md5: 0699b715659c026f7f81c27d0e744205 - sha256: 605825c0e2d5af7935b37319b9a46ff39e081e7a0f4dc973f0dd583f41c69ce5 + md5: e9781be1e6c93b5df2c180a9f9242420 + sha256: c4aabe2041afb8fde1f049549c2e292265612d07dd4d1156f3e183ba6a6f007b category: main optional: false - name: jupyter_server_terminals - version: 0.4.4 + version: 0.5.0 manager: conda platform: linux-64 dependencies: python: '>=3.8' terminado: '>=0.8.3' - url: https://conda.anaconda.org/conda-forge/noarch/jupyter_server_terminals-0.4.4-pyhd8ed1ab_1.conda + url: https://conda.anaconda.org/conda-forge/noarch/jupyter_server_terminals-0.5.0-pyhd8ed1ab_0.conda hash: - md5: 7c0965e1d4a0ee1529e8eaa03a78a5b3 - sha256: 9f4c5fef9beef9fceed628db7a10b888f3308b37ae257ad3d50046088317ebf1 + md5: 37a8b4098d428ecd40e58f8ec8a8e77d + sha256: b2c769977c258e5a81d541fd526d01083fc6b8c8dfdd4822795a898626bc81e6 category: main optional: false - name: jupyterlab @@ -2323,12 +2488,24 @@ package: sha256: 51c13a87072a64df1a0ae14fbb470bc4e36becf4d50693ffab53174199ca4f4b category: main optional: false +- name: jxrlib + version: '1.1' + manager: conda + platform: linux-64 + dependencies: + libgcc-ng: '>=9.3.0' + url: https://conda.anaconda.org/conda-forge/linux-64/jxrlib-1.1-h7f98852_2.tar.bz2 + hash: + md5: 8e787b08fe19986d99d034b839df2961 + sha256: 3ffc19c2ca272e6d5b8edc7cfc5bb71763dfdfa1810dd4b8820cc6b212ecbd95 + category: main + optional: false - name: kealib version: 1.5.2 manager: conda platform: linux-64 dependencies: - hdf5: '>=1.14.2,<1.14.3.0a0' + hdf5: '>=1.14.2,<1.14.4.0a0' libgcc-ng: '>=12' libstdcxx-ng: '>=12' url: https://conda.anaconda.org/conda-forge/linux-64/kealib-1.5.2-hcd42e92_1.conda @@ -2382,18 +2559,30 @@ package: sha256: 259bfaae731989b252b7d2228c1330ef91b641c9d68ff87dae02cbae682cb3e4 category: main optional: false +- name: lazy_loader + version: '0.3' + manager: conda + platform: linux-64 + dependencies: + python: '>=3.7' + url: https://conda.anaconda.org/conda-forge/noarch/lazy_loader-0.3-pyhd8ed1ab_0.conda + hash: + md5: 69ea1d0fa7ab33b48c88394ad1dead65 + sha256: fa32bafbf7f9238a9cb8f0aa1fb17d2fdcefa607c217b86c38c3b670c58d1ac6 + category: main + optional: false - name: lcms2 - version: '2.15' + version: '2.16' manager: conda platform: linux-64 dependencies: libgcc-ng: '>=12' libjpeg-turbo: '>=3.0.0,<4.0a0' libtiff: '>=4.6.0,<4.7.0a0' - url: https://conda.anaconda.org/conda-forge/linux-64/lcms2-2.15-hb7c19ff_3.conda + url: https://conda.anaconda.org/conda-forge/linux-64/lcms2-2.16-hb7c19ff_0.conda hash: - md5: e96637dd92c5f340215c753a5c9a22d7 - sha256: cc0b2ddab52b20698b26fe8622ebe37e0d462d8691a1f324e7b00f7d904765e3 + md5: 51bb7010fc86f70eee639b4bb7a894f5 + sha256: 5c878d104b461b7ef922abe6320711c0d01772f4cd55de18b674f88547870041 category: main optional: false - name: ld_impl_linux-64 @@ -2453,17 +2642,17 @@ package: dependencies: bzip2: '>=1.0.8,<2.0a0' libgcc-ng: '>=12' - libxml2: '>=2.11.5,<2.12.0a0' + libxml2: '>=2.12.2,<2.13.0a0' libzlib: '>=1.2.13,<1.3.0a0' lz4-c: '>=1.9.3,<1.10.0a0' lzo: '>=2.10,<3.0a0' - openssl: '>=3.1.2,<4.0a0' + openssl: '>=3.2.0,<4.0a0' xz: '>=5.2.6,<6.0a0' zstd: '>=1.5.5,<1.6.0a0' - url: https://conda.anaconda.org/conda-forge/linux-64/libarchive-3.7.2-h039dbb9_0.conda + url: https://conda.anaconda.org/conda-forge/linux-64/libarchive-3.7.2-h2aa1ff5_1.conda hash: - md5: 611d6c83d1130ea60c916531adfb11db - sha256: b82b9f4a1515877ea65416bf7fd9cc77cae77d7b5977eada2b999ee525a0d5c9 + md5: 3bf887827d1968275978361a6e405e4f + sha256: 340ed0bb02fe26a2b2e29cedf6559e2999b820f434e745c108e788d629ae4b17 category: main optional: false - name: libarrow @@ -2471,8 +2660,8 @@ package: manager: conda platform: linux-64 dependencies: - aws-crt-cpp: '>=0.24.7,<0.24.8.0a0' - aws-sdk-cpp: '>=1.11.182,<1.11.183.0a0' + aws-crt-cpp: '>=0.24.11,<0.24.12.0a0' + aws-sdk-cpp: '>=1.11.210,<1.11.211.0a0' bzip2: '>=1.0.8,<2.0a0' glog: '>=0.6.0,<0.7.0a0' libabseil: '>=20230802.1,<20230803.0a0' @@ -2489,10 +2678,10 @@ package: re2: '' snappy: '>=1.1.10,<2.0a0' zstd: '>=1.5.5,<1.6.0a0' - url: https://conda.anaconda.org/conda-forge/linux-64/libarrow-14.0.1-h2b6da2a_4_cpu.conda + url: https://conda.anaconda.org/conda-forge/linux-64/libarrow-14.0.1-h0f82fcc_9_cpu.conda hash: - md5: 764b78f1b4fba866bba4135f327d1ceb - sha256: 4dd49028b0db6e2867c35057b0bd86b512a91c204db89dcf2cb673d284622c12 + md5: 93ab134816aed65c7e1780175b8cb9f8 + sha256: 444f2010dd4d42a0d2596a75662ee687eee914734236f8c5197dfe617f3e3a76 category: main optional: false - name: libarrow-acero @@ -2503,10 +2692,10 @@ package: libarrow: 14.0.1 libgcc-ng: '>=12' libstdcxx-ng: '>=12' - url: https://conda.anaconda.org/conda-forge/linux-64/libarrow-acero-14.0.1-h59595ed_4_cpu.conda + url: https://conda.anaconda.org/conda-forge/linux-64/libarrow-acero-14.0.1-h59595ed_9_cpu.conda hash: - md5: 497560810ac6fe37df1e2d0a890a2c69 - sha256: 132fbc4e57dc67d1a61f3da54afe10f4f9566d255cf538fb8f7e3ea2d51e299d + md5: a725b257e129ed3d622fec16bab47c2b + sha256: c65a02117fdfcb9617cabe2869a370ab37439a49ed6ba214ab35068a8bb7822a category: main optional: false - name: libarrow-dataset @@ -2519,10 +2708,10 @@ package: libgcc-ng: '>=12' libparquet: 14.0.1 libstdcxx-ng: '>=12' - url: https://conda.anaconda.org/conda-forge/linux-64/libarrow-dataset-14.0.1-h59595ed_4_cpu.conda + url: https://conda.anaconda.org/conda-forge/linux-64/libarrow-dataset-14.0.1-h59595ed_9_cpu.conda hash: - md5: 1a4c89f8a071976813de665b3fba5a04 - sha256: 8d2bb27800eb8ccc6818eee0a6320ba2c0c8899c8cc1757026bca694069a7d45 + md5: b7a449691b276d0e569f969d308bc8a2 + sha256: c6ef51dad7c29533a3483ea8567d60807f2f646d43f6ec30fca779c281af884b category: main optional: false - name: libarrow-flight @@ -2537,10 +2726,10 @@ package: libprotobuf: '>=4.24.4,<4.24.5.0a0' libstdcxx-ng: '>=12' ucx: '>=1.15.0,<1.16.0a0' - url: https://conda.anaconda.org/conda-forge/linux-64/libarrow-flight-14.0.1-h120cb0d_4_cpu.conda + url: https://conda.anaconda.org/conda-forge/linux-64/libarrow-flight-14.0.1-h120cb0d_9_cpu.conda hash: - md5: abdfe485e0d186160782a854891c5ae1 - sha256: bd7c4e517732faf3d7a5b4194b179fc209cd24934a9cc7800e2b6cc479d0d6cc + md5: 3a4fbfe30cd03011864bc8207ea60701 + sha256: 6401ce26a98875fdc7f7cbf39af612301d705fedccb121a1cb3314a79133a98f category: main optional: false - name: libarrow-flight-sql @@ -2553,10 +2742,10 @@ package: libgcc-ng: '>=12' libprotobuf: '>=4.24.4,<4.24.5.0a0' libstdcxx-ng: '>=12' - url: https://conda.anaconda.org/conda-forge/linux-64/libarrow-flight-sql-14.0.1-h61ff412_4_cpu.conda + url: https://conda.anaconda.org/conda-forge/linux-64/libarrow-flight-sql-14.0.1-h61ff412_9_cpu.conda hash: - md5: 69468e4ea6ab681fd218b0abc2084cbb - sha256: a0ad5c7613132e6903fc929c001466785e88d4ae1c0b04e49605f1366eb4dbae + md5: 4122351074e4dd9f287472d6f0e66f72 + sha256: 4e9cdefd1a86de7c761ba7c0af980def21a2dabf77db903afa0941c8d56c7ba1 category: main optional: false - name: libarrow-gandiva @@ -2570,12 +2759,12 @@ package: libre2-11: '>=2023.6.2,<2024.0a0' libstdcxx-ng: '>=12' libutf8proc: '>=2.8.0,<3.0a0' - openssl: '>=3.1.4,<4.0a0' + openssl: '>=3.2.0,<4.0a0' re2: '' - url: https://conda.anaconda.org/conda-forge/linux-64/libarrow-gandiva-14.0.1-hacb8726_4_cpu.conda + url: https://conda.anaconda.org/conda-forge/linux-64/libarrow-gandiva-14.0.1-hacb8726_9_cpu.conda hash: - md5: 0a08043413f6fd8d03ad503413ac66e1 - sha256: d55c724695789a139500fc16a83cac6985458b5e049f92df243f9882170031db + md5: 873471e85479005a88be0c1b74631e14 + sha256: d92c7dff49c44871216ffbaa1e654c8779e8194d2b1323b0fff8b469ec248323 category: main optional: false - name: libarrow-substrait @@ -2589,10 +2778,26 @@ package: libgcc-ng: '>=12' libprotobuf: '>=4.24.4,<4.24.5.0a0' libstdcxx-ng: '>=12' - url: https://conda.anaconda.org/conda-forge/linux-64/libarrow-substrait-14.0.1-h61ff412_4_cpu.conda + url: https://conda.anaconda.org/conda-forge/linux-64/libarrow-substrait-14.0.1-h61ff412_9_cpu.conda hash: - md5: 44127a40001dba3cc6fbdfcd5331bc51 - sha256: d1af57d44adfb51f354bdd65a7a8f93595c57fd3a1e5b8b9285f6315a122acc5 + md5: d7af71a020d5ce3d84245083a2942a34 + sha256: fee2ca364ccafd36002f32c7c31a52733409c152f8ac0ff25448ea1b85dc2f75 + category: main + optional: false +- name: libavif16 + version: 1.0.3 + manager: conda + platform: linux-64 + dependencies: + aom: '>=3.7.1,<3.8.0a0' + dav1d: '>=1.2.1,<1.2.2.0a0' + libgcc-ng: '>=12' + rav1e: '>=0.6.6,<1.0a0' + svt-av1: '>=1.8.0,<1.8.1.0a0' + url: https://conda.anaconda.org/conda-forge/linux-64/libavif16-1.0.3-hef5bec9_1.conda + hash: + md5: 11a4e0cd0874e77396e781154a8d672f + sha256: b9cf76dcc76e44ffdc539685bd14be599f0c614e4a7d97cdf7cdc6c02a8d646b category: main optional: false - name: libblas @@ -2691,10 +2896,10 @@ package: cuda-version: '>=12.0,<12.1.0a0' libgcc-ng: '>=12' libstdcxx-ng: '>=12' - url: https://conda.anaconda.org/conda-forge/linux-64/libcublas-12.0.1.189-hcb278e6_2.conda + url: https://conda.anaconda.org/conda-forge/linux-64/libcublas-12.0.1.189-hd3aeb46_3.conda hash: - md5: 0aee23d4633b28f44558333cb22bc8b1 - sha256: 222541a1d43f2a304e853307f63211498c5eb46f1531c811260299ab33538b55 + md5: 626745031f369cf70670283436cc6742 + sha256: a3c89c1b6018d16c22fc583887f728b3065a1f50a82d8a40a793a973aac606c5 category: main optional: false - name: libcufft @@ -2703,13 +2908,13 @@ package: platform: linux-64 dependencies: __glibc: '>=2.17,<3.0.a0' - cuda-version: '>=12.0.0,<12.1.0a0' + cuda-version: '>=12.0,<12.1.0a0' libgcc-ng: '>=12' libstdcxx-ng: '>=12' - url: https://conda.anaconda.org/conda-forge/linux-64/libcufft-11.0.0.21-hcb278e6_1.conda + url: https://conda.anaconda.org/conda-forge/linux-64/libcufft-11.0.0.21-hd3aeb46_2.conda hash: - md5: f4d649a6bd4779987cebfa116aba18b5 - sha256: 67c409af76c8cc28de8eacaa261af5f1f0b70649c3108ff4d1c273f0739a46d4 + md5: 5dbf17a732e01fed414a22bdf89aaaad + sha256: ed62279e20761c033525a550dc753327103f53aa37bf441c40db2f37950b7b50 category: main optional: false - name: libcurand @@ -2718,31 +2923,31 @@ package: platform: linux-64 dependencies: __glibc: '>=2.17,<3.0.a0' - cuda-version: '>=12.0.0,<12.1.0a0' + cuda-version: '>=12.0,<12.1.0a0' libgcc-ng: '>=12' libstdcxx-ng: '>=12' - url: https://conda.anaconda.org/conda-forge/linux-64/libcurand-10.3.1.50-hcb278e6_0.conda + url: https://conda.anaconda.org/conda-forge/linux-64/libcurand-10.3.1.50-hd3aeb46_1.conda hash: - md5: 52cd5b96f2385d5f6b706fa96553af66 - sha256: 3a5ea3d695c42e12a16bbac3dabf0bf6cbbb38291518a57d26489be6b1b0700c + md5: 3247c559d7655c62c2bda88d6b9353b3 + sha256: 5790527dba182d5c83b0dea1adb3bd710e5279d6f4dedebc78d21160f52df75d category: main optional: false - name: libcurl - version: 8.4.0 + version: 8.5.0 manager: conda platform: linux-64 dependencies: krb5: '>=1.21.2,<1.22.0a0' libgcc-ng: '>=12' - libnghttp2: '>=1.52.0,<2.0a0' + libnghttp2: '>=1.58.0,<2.0a0' libssh2: '>=1.11.0,<2.0a0' libzlib: '>=1.2.13,<1.3.0a0' - openssl: '>=3.1.3,<4.0a0' + openssl: '>=3.2.0,<4.0a0' zstd: '>=1.5.5,<1.6.0a0' - url: https://conda.anaconda.org/conda-forge/linux-64/libcurl-8.4.0-hca28451_0.conda + url: https://conda.anaconda.org/conda-forge/linux-64/libcurl-8.5.0-hca28451_0.conda hash: - md5: 1158ac1d2613b28685644931f11ee807 - sha256: 25f4b6a8827d7b17a66e0bd9b5d194bf9a9e4a46fb14e2ef472fdad4b39426a6 + md5: 7144d5a828e2cae218e0e3c98d8a0aeb + sha256: 00a6bea5ff90ca58eeb15ebc98e08ffb88bddaff27396bb62640064f59d29cf0 category: main optional: false - name: libcusolver @@ -2751,15 +2956,15 @@ package: platform: linux-64 dependencies: __glibc: '>=2.17,<3.0.a0' - cuda-version: '>=12.0.0,<12.1.0a0' + cuda-version: '>=12.0,<12.1.0a0' libcublas: '>=12.0.1.189,<12.1.0a0' libgcc-ng: '>=12' libnvjitlink: '>=12.0.76,<12.1.0a0' libstdcxx-ng: '>=12' - url: https://conda.anaconda.org/conda-forge/linux-64/libcusolver-11.4.2.57-hcb278e6_1.conda + url: https://conda.anaconda.org/conda-forge/linux-64/libcusolver-11.4.2.57-hd3aeb46_2.conda hash: - md5: 2fa930a12ed5749df02f91e4be42204f - sha256: bf81b41d2fc80188dbdd990adc3feb37f853861db6d1541b0895b531035826c1 + md5: a684e4ff8d2a6a100249377aa9d37a5c + sha256: 65e4acdce5c358c57f0d263c87c39346695d0954855868bff60cb066043c7632 category: main optional: false - name: libcusparse @@ -2768,14 +2973,14 @@ package: platform: linux-64 dependencies: __glibc: '>=2.17,<3.0.a0' - cuda-version: '>=12.0.0,<12.1.0a0' + cuda-version: '>=12.0,<12.1.0a0' libgcc-ng: '>=12' libnvjitlink: '>=12.0.76,<12.1.0a0' libstdcxx-ng: '>=12' - url: https://conda.anaconda.org/conda-forge/linux-64/libcusparse-12.0.0.76-hcb278e6_1.conda + url: https://conda.anaconda.org/conda-forge/linux-64/libcusparse-12.0.0.76-hd3aeb46_2.conda hash: - md5: f27d402c25b8b14be3c42bc0d0e05d8b - sha256: 9f2c8b5e01ec76a9f5abd8428bcb599b5eb6fc24d4be85006866ed313ab405da + md5: 91072eaa64ea11a9f804547806dbacf0 + sha256: def44b0e57a59bc060bc69fb1c79c39cf281efe8980cd78840cb092ada5eda19 category: main optional: false - name: libdeflate @@ -2808,11 +3013,11 @@ package: manager: conda platform: linux-64 dependencies: - libgcc-ng: '>=7.5.0' - url: https://conda.anaconda.org/conda-forge/linux-64/libev-4.33-h516909a_1.tar.bz2 + libgcc-ng: '>=12' + url: https://conda.anaconda.org/conda-forge/linux-64/libev-4.33-hd590300_2.conda hash: - md5: 6f8720dff19e17ce5d48cfe7f3d2f0a3 - sha256: 8c9635aa0ea28922877dc96358f9547f6a55fc7e2eb75a556b05f1725496baf9 + md5: 172bf1cd1ff8629f2b1179945ed45055 + sha256: 1cd6048169fa0395af74ed5d8f1716e22c19a81a8a36f934c110ca3ad4dd27b4 category: main optional: false - name: libevent @@ -2866,24 +3071,25 @@ package: category: main optional: false - name: libgdal - version: 3.7.3 + version: 3.8.1 manager: conda platform: linux-64 dependencies: __glibc: '>=2.17,<3.0.a0' blosc: '>=1.21.5,<2.0a0' - cfitsio: '>=4.3.0,<4.3.1.0a0' + cfitsio: '>=4.3.1,<4.3.2.0a0' freexl: '>=2.0.0,<3.0a0' geos: '>=3.12.1,<3.12.2.0a0' geotiff: '>=1.7.1,<1.8.0a0' giflib: '>=5.2.1,<5.3.0a0' hdf4: '>=4.2.15,<4.2.16.0a0' - hdf5: '>=1.14.2,<1.14.3.0a0' + hdf5: '>=1.14.3,<1.14.4.0a0' json-c: '>=0.17,<0.18.0a0' kealib: '>=1.5.2,<1.6.0a0' lerc: '>=4.0.0,<5.0a0' + libaec: '>=1.1.2,<2.0a0' libarchive: '>=3.7.2,<3.8.0a0' - libcurl: '>=8.4.0,<9.0a0' + libcurl: '>=8.5.0,<9.0a0' libdeflate: '>=1.19,<1.20.0a0' libexpat: '>=2.5.0,<3.0a0' libgcc-ng: '>=12' @@ -2894,28 +3100,28 @@ package: libpng: '>=1.6.39,<1.7.0a0' libpq: '>=16.1,<17.0a0' libspatialite: '>=5.1.0,<5.2.0a0' - libsqlite: '>=3.44.1,<4.0a0' + libsqlite: '>=3.44.2,<4.0a0' libstdcxx-ng: '>=12' libtiff: '>=4.6.0,<4.7.0a0' libuuid: '>=2.38.1,<3.0a0' libwebp-base: '>=1.3.2,<2.0a0' - libxml2: '>=2.11.6,<2.12.0a0' + libxml2: '>=2.12.2,<2.13.0a0' libzlib: '>=1.2.13,<1.3.0a0' lz4-c: '>=1.9.3,<1.10.0a0' openjpeg: '>=2.5.0,<3.0a0' - openssl: '>=3.1.4,<4.0a0' + openssl: '>=3.2.0,<4.0a0' pcre2: '>=10.42,<10.43.0a0' - poppler: '>=23.11.0,<23.12.0a0' + poppler: '>=23.12.0,<23.13.0a0' postgresql: '' - proj: '>=9.3.0,<9.3.1.0a0' - tiledb: '>=2.16,<2.17.0a0' + proj: '>=9.3.1,<9.3.2.0a0' + tiledb: '>=2.18.2,<2.19.0a0' xerces-c: '>=3.2.4,<3.3.0a0' xz: '>=5.2.6,<6.0a0' zstd: '>=1.5.5,<1.6.0a0' - url: https://conda.anaconda.org/conda-forge/linux-64/libgdal-3.7.3-h73cd2e6_7.conda + url: https://conda.anaconda.org/conda-forge/linux-64/libgdal-3.8.1-hed8bd54_4.conda hash: - md5: c957ed1c9f5445fe8ea9622ea8b993ca - sha256: f8b47666367bd4988c406ef5756d96d439a94039db24988897b4cbc909d7468b + md5: 32e453fb234a3534069396da161b145b + sha256: 8461bd176f6b526d856c28ad42c0899683211104c0609bbba5b897466597a34c category: main optional: false - name: libgfortran-ng @@ -2943,7 +3149,7 @@ package: category: main optional: false - name: libglib - version: 2.78.1 + version: 2.78.3 manager: conda platform: linux-64 dependencies: @@ -2954,10 +3160,10 @@ package: libstdcxx-ng: '>=12' libzlib: '>=1.2.13,<1.3.0a0' pcre2: '>=10.42,<10.43.0a0' - url: https://conda.anaconda.org/conda-forge/linux-64/libglib-2.78.1-h783c2da_1.conda + url: https://conda.anaconda.org/conda-forge/linux-64/libglib-2.78.3-h783c2da_0.conda hash: - md5: 70052d6c1e84643e30ffefb21ab6950f - sha256: 4e6fa28002f834cfc30a64792e95c1701d835cc3d3a4bb18d6e8d16bb8aba05b + md5: 9bd06b12bbfa6fd1740fd23af4b0f0c7 + sha256: b1b594294a0fe4c9a51596ef027efed9268d60827e8ae61fb7545c521a631e33 category: main optional: false - name: libgoogle-cloud @@ -2999,30 +3205,16 @@ package: sha256: 3f95a2792e565b628cb284de92017a37a1cddc4a3f83453b8f75d9adc9f8cfdd category: main optional: false -- name: libhwloc - version: 2.9.3 - manager: conda - platform: linux-64 - dependencies: - libgcc-ng: '>=12' - libstdcxx-ng: '>=12' - libxml2: '>=2.11.5,<2.12.0a0' - url: https://conda.anaconda.org/conda-forge/linux-64/libhwloc-2.9.3-default_h554bfaf_1009.conda - hash: - md5: f36ddc11ca46958197a45effdd286e45 - sha256: 6950fee24766d03406e0f6f965262a5d98829c71eed8d1004f313892423b559b - category: main - optional: false - name: libiconv version: '1.17' manager: conda platform: linux-64 dependencies: - libgcc-ng: '>=10.3.0' - url: https://conda.anaconda.org/conda-forge/linux-64/libiconv-1.17-h166bdaf_0.tar.bz2 + libgcc-ng: '>=12' + url: https://conda.anaconda.org/conda-forge/linux-64/libiconv-1.17-hd590300_1.conda hash: - md5: b62b52da46c39ee2bc3c162ac7f1804d - sha256: 6a81ebac9f1aacdf2b4f945c87ad62b972f0f69c8e0981d68e111739e6720fd7 + md5: 4b06b43d0eca61db2899e4d7a289c302 + sha256: a9364735ef2542558ed59aa5f404707dab674df465cbdf312edeaf5e827b55ed category: main optional: false - name: libjpeg-turbo @@ -3073,13 +3265,13 @@ package: dependencies: libgcc-ng: '>=12' libstdcxx-ng: '>=12' - libxml2: '>=2.11.4,<2.12.0a0' + libxml2: '>=2.12.1,<2.13.0a0' libzlib: '>=1.2.13,<1.3.0a0' - zstd: '>=1.5.2,<1.6.0a0' - url: https://conda.anaconda.org/conda-forge/linux-64/libllvm15-15.0.7-h5cf9203_3.conda + zstd: '>=1.5.5,<1.6.0a0' + url: https://conda.anaconda.org/conda-forge/linux-64/libllvm15-15.0.7-hb3ce162_4.conda hash: - md5: 9efe82d44b76a7529a1d702e5a37752e - sha256: bb94e7535a309c2a8d58585cb82bac954ed59f473eef2cac6ea677d6f576a3b6 + md5: 8a35df3cbc0c8b12cc8af9473ae75eef + sha256: e71584c0f910140630580fdd0a013029a52fd31e435192aea2aa8d29005262d1 category: main optional: false - name: libmagma @@ -3128,24 +3320,24 @@ package: manager: conda platform: linux-64 dependencies: - blosc: '>=1.21.4,<2.0a0' + blosc: '>=1.21.5,<2.0a0' bzip2: '>=1.0.8,<2.0a0' hdf4: '>=4.2.15,<4.2.16.0a0' - hdf5: '>=1.14.2,<1.14.3.0a0' - libaec: '>=1.0.6,<2.0a0' - libcurl: '>=8.2.1,<9.0a0' + hdf5: '>=1.14.3,<1.14.4.0a0' + libaec: '>=1.1.2,<2.0a0' + libcurl: '>=8.5.0,<9.0a0' libgcc-ng: '>=12' libstdcxx-ng: '>=12' - libxml2: '>=2.11.5,<2.12.0a0' + libxml2: '>=2.12.2,<2.13.0a0' libzip: '>=1.10.1,<2.0a0' libzlib: '>=1.2.13,<1.3.0a0' - openssl: '>=3.1.2,<4.0a0' + openssl: '>=3.2.0,<4.0a0' zlib: '' zstd: '>=1.5.5,<1.6.0a0' - url: https://conda.anaconda.org/conda-forge/linux-64/libnetcdf-4.9.2-nompi_h80fb2b6_112.conda + url: https://conda.anaconda.org/conda-forge/linux-64/libnetcdf-4.9.2-nompi_h9612171_113.conda hash: - md5: a19fa6cacf80c8a366572853d5890eb4 - sha256: 305ffc3ecaffce10754e4d057daa9803e8dc86d68b14524a791c7dc5598c1d2f + md5: b2414908e43c442ddc68e6148774a304 + sha256: 0b4d984c7be21531e9254ce742e04101f7f7e77c0bbb7074855c0806c28323b0 category: main optional: false - name: libnghttp2 @@ -3153,16 +3345,16 @@ package: manager: conda platform: linux-64 dependencies: - c-ares: '>=1.21.0,<2.0a0' - libev: '>=4.33,<4.34.0a0' + c-ares: '>=1.23.0,<2.0a0' + libev: '>=4.33,<5.0a0' libgcc-ng: '>=12' libstdcxx-ng: '>=12' libzlib: '>=1.2.13,<1.3.0a0' - openssl: '>=3.1.4,<4.0a0' - url: https://conda.anaconda.org/conda-forge/linux-64/libnghttp2-1.58.0-h47da74e_0.conda + openssl: '>=3.2.0,<4.0a0' + url: https://conda.anaconda.org/conda-forge/linux-64/libnghttp2-1.58.0-h47da74e_1.conda hash: - md5: 9b13d5ee90fc9f09d54fd403247342b4 - sha256: 151b18e4f92dcca263a6d23e4beb0c4e2287aa1c7d0587ff71ef50035ed34aca + md5: 700ac6ea6d53d5510591c4344d5c989a + sha256: 1910c5306c6aa5bcbd623c3c930c440e9c77a5a019008e1487810e3c1d3716cb category: main optional: false - name: libnsl @@ -3195,13 +3387,13 @@ package: platform: linux-64 dependencies: __glibc: '>=2.17,<3.0.a0' - cuda-version: '>=12.0.0,<12.1.0a0' + cuda-version: '>=12.0,<12.1.0a0' libgcc-ng: '>=12' libstdcxx-ng: '>=12' - url: https://conda.anaconda.org/conda-forge/linux-64/libnvjitlink-12.0.76-hcb278e6_1.conda + url: https://conda.anaconda.org/conda-forge/linux-64/libnvjitlink-12.0.76-hd3aeb46_2.conda hash: - md5: 7e6e56239b60e25789b935cab49f91da - sha256: 856b193a1fe9674147f43d95065dfd3fd65438aa29845fa7307572be60923466 + md5: e4cc21b8b8531f43f47f53d183096dbd + sha256: 670b5d9d6717c8b32b877c073fa04d06f11ac22ab04e9b33423e57211327f559 category: main optional: false - name: libopenblas @@ -3227,11 +3419,11 @@ package: libgcc-ng: '>=12' libstdcxx-ng: '>=12' libthrift: '>=0.19.0,<0.19.1.0a0' - openssl: '>=3.1.4,<4.0a0' - url: https://conda.anaconda.org/conda-forge/linux-64/libparquet-14.0.1-h352af49_4_cpu.conda + openssl: '>=3.2.0,<4.0a0' + url: https://conda.anaconda.org/conda-forge/linux-64/libparquet-14.0.1-h352af49_9_cpu.conda hash: - md5: 0dda61f1eb2dc47d807c1f5ec3ad0cdc - sha256: 812cc59632beb00006e32434e1c2e1fc6cff51647549c54edf8e0243e6086c03 + md5: 34b461640e180350d47f88ab5d23065d + sha256: 91c21fabb263f7670765c3511245c6051f20abfca2917e882e27bb25130a1e30 category: main optional: false - name: libpng @@ -3254,12 +3446,11 @@ package: dependencies: krb5: '>=1.21.2,<1.22.0a0' libgcc-ng: '>=12' - libzlib: '>=1.2.13,<1.3.0a0' - openssl: '>=3.1.4,<3.2.0a0' - url: https://conda.anaconda.org/conda-forge/linux-64/libpq-16.1-hfc447b1_0.conda + openssl: '>=3.2.0,<4.0a0' + url: https://conda.anaconda.org/conda-forge/linux-64/libpq-16.1-h33b98f1_7.conda hash: - md5: 2b7f1893cf40b4ccdc0230bcd94d5ed9 - sha256: 8c92a8cce329a83cc9e94b19d18200c661957c00cfb464f26237d24730864585 + md5: 675317e46167caea24542d85c72f19a3 + sha256: 833fd96338dffc6784fb5f79ab805fa5a4c2cabf5c08c4f1d5caf4e290e39c28 category: main optional: false - name: libprotobuf @@ -3326,17 +3517,17 @@ package: geos: '>=3.12.1,<3.12.2.0a0' libgcc-ng: '>=12' librttopo: '>=1.1.0,<1.2.0a0' - libsqlite: '>=3.44.1,<4.0a0' + libsqlite: '>=3.44.2,<4.0a0' libstdcxx-ng: '>=12' - libxml2: '>=2.11.6,<2.12.0a0' + libxml2: '>=2.12.2,<2.13.0a0' libzlib: '>=1.2.13,<1.3.0a0' - proj: '>=9.3.0,<9.3.1.0a0' + proj: '>=9.3.1,<9.3.2.0a0' sqlite: '' zlib: '' - url: https://conda.anaconda.org/conda-forge/linux-64/libspatialite-5.1.0-h7385560_2.conda + url: https://conda.anaconda.org/conda-forge/linux-64/libspatialite-5.1.0-h7bd4643_4.conda hash: - md5: 4260750b280f6f7c38a4459bf0d919ff - sha256: 5efbd5bc05ebaa6bb66b7e408d2998a4116029c2e3c2b0336e29267488d93a45 + md5: 127d36f9ee392fa81b45e81867ce30ab + sha256: 2d07badb81296f42dd0c59b02dbf7d64ca2c78c086226327c1e11e11f71effbd category: main optional: false - name: libsqlite @@ -3477,7 +3668,7 @@ package: category: main optional: false - name: libxml2 - version: 2.11.6 + version: 2.12.3 manager: conda platform: linux-64 dependencies: @@ -3486,10 +3677,10 @@ package: libiconv: '>=1.17,<2.0a0' libzlib: '>=1.2.13,<1.3.0a0' xz: '>=5.2.6,<6.0a0' - url: https://conda.anaconda.org/conda-forge/linux-64/libxml2-2.11.6-h232c23b_0.conda + url: https://conda.anaconda.org/conda-forge/linux-64/libxml2-2.12.3-h232c23b_0.conda hash: - md5: 427a3e59d66cb5d145020bd9c6493334 - sha256: e6183d5e57ee48cc1fc4340477c31a6bd8be4d3ba5dded82cbca0d5280591086 + md5: bc6ac4c0cea148d924f621985bc3892b + sha256: 31dd757689a1a28e42021208b6c740e84bcfdfee213a39c9bcc0dfbc33acf7a5 category: main optional: false - name: libzip @@ -3519,6 +3710,19 @@ package: sha256: 370c7c5893b737596fd6ca0d9190c9715d89d888b8c88537ae1ef168c25e82e4 category: main optional: false +- name: libzopfli + version: 1.0.3 + manager: conda + platform: linux-64 + dependencies: + libgcc-ng: '>=9.3.0' + libstdcxx-ng: '>=9.3.0' + url: https://conda.anaconda.org/conda-forge/linux-64/libzopfli-1.0.3-h9c3ff4c_0.tar.bz2 + hash: + md5: c66fe2d123249af7651ebde8984c51c2 + sha256: ff94f30b2e86cbad6296cf3e5804d442d9e881f7ba8080d92170981662528c6e + category: main + optional: false - name: lightning version: 2.1.2 manager: conda @@ -3565,7 +3769,7 @@ package: category: main optional: false - name: lightning-cloud - version: 0.5.56 + version: 0.5.57 manager: conda platform: linux-64 dependencies: @@ -3581,10 +3785,10 @@ package: urllib3: '' uvicorn: '' websocket-client: '' - url: https://conda.anaconda.org/conda-forge/noarch/lightning-cloud-0.5.56-pyhd8ed1ab_0.conda + url: https://conda.anaconda.org/conda-forge/noarch/lightning-cloud-0.5.57-pyhd8ed1ab_0.conda hash: - md5: 8316d3ca5e84f7f56db7861282e2a915 - sha256: 7b79e0ed192d6e2334863b0b05c8803e822f2c3f008101dac9e4a1f00652d69d + md5: 6008fb8264c1c7ac1b1619aaa2de7464 + sha256: 31f26767ebbe29ad54e7ce3307d9dd3f1978cbfdff7757e68a7182c6afb1bce2 category: main optional: false - name: lightning-utilities @@ -3857,18 +4061,6 @@ package: sha256: eca27e6fb5fb4ee73f04ae030bce29f5daa46fea3d6abdabb91740646f0d188e category: main optional: false -- name: munch - version: 4.0.0 - manager: conda - platform: linux-64 - dependencies: - python: '>=3.8' - url: https://conda.anaconda.org/conda-forge/noarch/munch-4.0.0-pyhd8ed1ab_0.conda - hash: - md5: 376b32e8f9d3eacbd625f37d39bd507d - sha256: 093020ae2deb6c468120111a54909e1c576d70dfea6bc0eec5093e36d2fb8ff8 - category: main - optional: false - name: nbclient version: 0.8.0 manager: conda @@ -3886,7 +4078,7 @@ package: category: main optional: false - name: nbconvert-core - version: 7.11.0 + version: 7.12.0 manager: conda platform: linux-64 dependencies: @@ -3907,10 +4099,10 @@ package: python: '>=3.8' tinycss2: '' traitlets: '>=5.0' - url: https://conda.anaconda.org/conda-forge/noarch/nbconvert-core-7.11.0-pyhd8ed1ab_0.conda + url: https://conda.anaconda.org/conda-forge/noarch/nbconvert-core-7.12.0-pyhd8ed1ab_0.conda hash: - md5: d59e0cb1ca993f8f910cfdf393232acf - sha256: 81732e083c4c85a52248e20ff0e40a14b0b49db9cc7ce414e8aa7d6f8980dad0 + md5: 4d67c68fd0d130091ada039bc2d81b33 + sha256: 04c3ac88701d98d58139569e4899c3254bf99908179a898cc3dcadd8c0ef44b4 category: main optional: false - name: nbformat @@ -4074,16 +4266,16 @@ package: category: main optional: false - name: openssl - version: 3.1.4 + version: 3.2.0 manager: conda platform: linux-64 dependencies: ca-certificates: '' libgcc-ng: '>=12' - url: https://conda.anaconda.org/conda-forge/linux-64/openssl-3.1.4-hd590300_0.conda + url: https://conda.anaconda.org/conda-forge/linux-64/openssl-3.2.0-hd590300_1.conda hash: - md5: 412ba6938c3e2abaca8b1129ea82e238 - sha256: d15b3e83ce66c6f6fbb4707f2f5c53337124c01fb03bfda1cf25c5b41123efc7 + md5: 603827b39ea2b835268adb8c821b8570 + sha256: 80efc6f429bd8e622d999652e5cba2ca56fcdb9c16a439d2ce9b4313116e4a87 category: main optional: false - name: orc @@ -4156,7 +4348,7 @@ package: category: main optional: false - name: pandas - version: 2.1.3 + version: 2.1.4 manager: conda platform: linux-64 dependencies: @@ -4168,10 +4360,10 @@ package: python-tzdata: '>=2022a' python_abi: 3.11.* pytz: '>=2020.1' - url: https://conda.anaconda.org/conda-forge/linux-64/pandas-2.1.3-py311h320fe9a_0.conda + url: https://conda.anaconda.org/conda-forge/linux-64/pandas-2.1.4-py311h320fe9a_0.conda hash: - md5: 3ea3486e16d559dfcb539070ed330a1e - sha256: d69759f8e5f3dcae2562e177cdfde5a45e4cd38db732301812aa558c1c80db57 + md5: e44ccb61b6621bf3f8053ae66eba7397 + sha256: 4f40035c77c381e0151c0fb0b39d0dfc343947f7d283c2bced2123273c5d4884 category: main optional: false - name: pandocfilters @@ -4224,6 +4416,18 @@ package: sha256: 9153f0f38c76a09da7688a61fdbf8f3d7504e2326bef53e4ec20d994311b15bd category: main optional: false +- name: pathtools + version: 0.1.2 + manager: conda + platform: linux-64 + dependencies: + python: '' + url: https://conda.anaconda.org/conda-forge/noarch/pathtools-0.1.2-py_1.tar.bz2 + hash: + md5: 7c9b5632c61951216374dbaa34659301 + sha256: d11dab35f9a669458d93f71a28158517a7624405c9cbe665aa60cb3ffb01de4b + category: main + optional: false - name: pcre2 version: '10.42' manager: conda @@ -4263,6 +4467,29 @@ package: sha256: a1ed1a094dd0d1b94a09ed85c283a0eb28943f2e6f22161fb45e128d35229738 category: main optional: false +- name: pillow + version: 10.1.0 + manager: conda + platform: linux-64 + dependencies: + freetype: '>=2.12.1,<3.0a0' + lcms2: '>=2.15,<3.0a0' + libgcc-ng: '>=12' + libjpeg-turbo: '>=3.0.0,<4.0a0' + libtiff: '>=4.6.0,<4.7.0a0' + libwebp-base: '>=1.3.2,<2.0a0' + libxcb: '>=1.15,<1.16.0a0' + libzlib: '>=1.2.13,<1.3.0a0' + openjpeg: '>=2.5.0,<3.0a0' + python: '>=3.11,<3.12.0a0' + python_abi: 3.11.* + tk: '>=8.6.13,<8.7.0a0' + url: https://conda.anaconda.org/conda-forge/linux-64/pillow-10.1.0-py311ha6c5da5_0.conda + hash: + md5: 83a988daf5c49e57f7d2086fb6781fe8 + sha256: 5b037243f76644fe2e565aa6a3764039dba47cddf8bbef8ef01643775a459b60 + category: main + optional: false - name: pixman version: 0.42.2 manager: conda @@ -4395,7 +4622,7 @@ package: category: main optional: false - name: poppler - version: 23.11.0 + version: 23.12.0 manager: conda platform: linux-64 dependencies: @@ -4406,7 +4633,7 @@ package: lcms2: '>=2.15,<3.0a0' libcurl: '>=8.4.0,<9.0a0' libgcc-ng: '>=12' - libglib: '>=2.78.0,<3.0a0' + libglib: '>=2.78.1,<3.0a0' libiconv: '>=1.17,<2.0a0' libjpeg-turbo: '>=3.0.0,<4.0a0' libpng: '>=1.6.39,<1.7.0a0' @@ -4414,13 +4641,13 @@ package: libtiff: '>=4.6.0,<4.7.0a0' libzlib: '>=1.2.13,<1.3.0a0' nspr: '>=4.35,<5.0a0' - nss: '>=3.94,<4.0a0' + nss: '>=3.95,<4.0a0' openjpeg: '>=2.5.0,<3.0a0' poppler-data: '' - url: https://conda.anaconda.org/conda-forge/linux-64/poppler-23.11.0-h590f24d_0.conda + url: https://conda.anaconda.org/conda-forge/linux-64/poppler-23.12.0-h590f24d_0.conda hash: - md5: 671439d8eca2084bb5a75561fff23a85 - sha256: 8050002e01be124efcb82e32e740676f5ed7dfe852f335408554e6dc3b060ad9 + md5: 480189ac126a8c6c61e14476c8ba7c9a + sha256: b313920277aca763b590dddf806c56b0aadcdff82f5ace39827cab4792ae4b20 category: main optional: false - name: poppler-data @@ -4442,34 +4669,33 @@ package: krb5: '>=1.21.2,<1.22.0a0' libgcc-ng: '>=12' libpq: '16.1' - libxml2: '>=2.11.5,<2.12.0a0' + libxml2: '>=2.12.2,<2.13.0a0' libzlib: '>=1.2.13,<1.3.0a0' - openssl: '>=3.1.4,<4.0a0' + openssl: '>=3.2.0,<4.0a0' readline: '>=8.2,<9.0a0' tzcode: '' tzdata: '' - zlib: '' - url: https://conda.anaconda.org/conda-forge/linux-64/postgresql-16.1-h8972f4a_0.conda + url: https://conda.anaconda.org/conda-forge/linux-64/postgresql-16.1-h7387d8b_7.conda hash: - md5: 1e9ab0760262044fa00814088667e451 - sha256: 74dfb5793a00a0a9e85296ce0944d8af0f71758574b7c8f9e7d5590250441e24 + md5: 563017467245a8a02671a5257ad9331e + sha256: 213580a3fe1000a6b55d228d97a49f51cfc551f1f53da431c580c4a73e4cec21 category: main optional: false - name: proj - version: 9.3.0 + version: 9.3.1 manager: conda platform: linux-64 dependencies: libcurl: '>=8.4.0,<9.0a0' libgcc-ng: '>=12' - libsqlite: '>=3.43.2,<4.0a0' + libsqlite: '>=3.44.2,<4.0a0' libstdcxx-ng: '>=12' libtiff: '>=4.6.0,<4.7.0a0' sqlite: '' - url: https://conda.anaconda.org/conda-forge/linux-64/proj-9.3.0-h1d62c97_2.conda + url: https://conda.anaconda.org/conda-forge/linux-64/proj-9.3.1-h1d62c97_0.conda hash: - md5: b5e57a0c643da391bef850922963eece - sha256: 252f6c31101719e3d524679e69ae81e6323b93b143e1360169bf50e89386bf24 + md5: 44ec51d0857d9be26158bb85caa74fdb + sha256: 234f8f7b255dc9036812ec30d097c0725047f3fc7e8e0bc7944e4e17d242ab99 category: main optional: false - name: prometheus_client @@ -4485,16 +4711,34 @@ package: category: main optional: false - name: prompt-toolkit - version: 3.0.41 + version: 3.0.42 manager: conda platform: linux-64 dependencies: python: '>=3.7' wcwidth: '' - url: https://conda.anaconda.org/conda-forge/noarch/prompt-toolkit-3.0.41-pyha770c72_0.conda + url: https://conda.anaconda.org/conda-forge/noarch/prompt-toolkit-3.0.42-pyha770c72_0.conda + hash: + md5: 0bf64bf10eee21f46ac83c161917fa86 + sha256: 58525b2a9305fb154b2b0d43a48b9a6495441b80e4fbea44f2a34a597d2cef16 + category: main + optional: false +- name: protobuf + version: 4.24.4 + manager: conda + platform: linux-64 + dependencies: + libabseil: '>=20230802.1,<20230803.0a0' + libgcc-ng: '>=12' + libprotobuf: '>=4.24.4,<4.24.5.0a0' + libstdcxx-ng: '>=12' + python: '>=3.11,<3.12.0a0' + python_abi: 3.11.* + setuptools: '' + url: https://conda.anaconda.org/conda-forge/linux-64/protobuf-4.24.4-py311h46cbc50_0.conda hash: - md5: f511a993aa4336bef9dd874ee3403e67 - sha256: e26a5554883a0eada3641b6d861d8cb4895e2c7fcc17a587de07b8b1ecbfff0f + md5: 83b241e2db8adb55d7ec110a913fea80 + sha256: 1f664f5fc370c28809024387e2f991003fcabf8b025c787c70dbc99a8fcb2088 category: main optional: false - name: psutil @@ -4565,10 +4809,10 @@ package: numpy: '>=1.23.5,<2.0a0' python: '>=3.11,<3.12.0a0' python_abi: 3.11.* - url: https://conda.anaconda.org/conda-forge/linux-64/pyarrow-14.0.1-py311h39c9aba_4_cpu.conda + url: https://conda.anaconda.org/conda-forge/linux-64/pyarrow-14.0.1-py311h39c9aba_9_cpu.conda hash: - md5: 95f7ef34dbc15c5d714fdb0f02ff0d00 - sha256: d3c24ac39ed0b21a2c15a3b6cfa9b24148b0eaf5d6c69dd93a1260ce0d7795fe + md5: fbc8c2f87576aa3e1206093b819e1e00 + sha256: 41f1a0fadd8d34a305f67b819a193bf8f48ade566bf337bacb440f51796bcf5d category: main optional: false - name: pyarrow-hotfix @@ -4666,13 +4910,13 @@ package: dependencies: certifi: '' libgcc-ng: '>=12' - proj: '>=9.3.0,<9.3.1.0a0' + proj: '>=9.3.1,<9.3.2.0a0' python: '>=3.11,<3.12.0a0' python_abi: 3.11.* - url: https://conda.anaconda.org/conda-forge/linux-64/pyproj-3.6.1-py311h1facc83_4.conda + url: https://conda.anaconda.org/conda-forge/linux-64/pyproj-3.6.1-py311hca0b8b9_5.conda hash: - md5: 75d504c6787edc377ebdba087a26a61b - sha256: 4eb94c421b5c635b770e5fbd2774cf1dd4570ad69baf1c248f978943df352896 + md5: cac429fcb9126d5e6f02c8ba61c2a811 + sha256: 268f77203171d4711d1264fa5fa0e7b066362e7f7c72753deb8c4d40fd40e55b category: main optional: false - name: pyproject_hooks @@ -4940,7 +5184,7 @@ package: category: main optional: false - name: pytorch-lightning - version: 2.1.1 + version: 2.1.2 manager: conda platform: linux-64 dependencies: @@ -4956,10 +5200,10 @@ package: tqdm: '>=4.57.0' typing-extensions: '>=4.0.0' typing_extensions: '>=4.0.0' - url: https://conda.anaconda.org/conda-forge/noarch/pytorch-lightning-2.1.1-pyhd8ed1ab_0.conda + url: https://conda.anaconda.org/conda-forge/noarch/pytorch-lightning-2.1.2-pyhd8ed1ab_0.conda hash: - md5: 740dac40f5546d3cc7d678c2178a8033 - sha256: b2fb5c18c30d408fbfaa7176ef37dec2286774706a4aa2cf136ace8009887b41 + md5: b4aa98db68643521f29b30f828171d0e + sha256: 1c21e0df37711a8593ac4632b947a2a9a6ac784d546d285d1c40af4ed049be43 category: main optional: false - name: pytz @@ -4974,6 +5218,21 @@ package: sha256: 6b680e63d69aaf087cd43ca765a23838723ef59b0a328799e6363eb13f52c49e category: main optional: false +- name: pywavelets + version: 1.4.1 + manager: conda + platform: linux-64 + dependencies: + libgcc-ng: '>=12' + numpy: '>=1.23.5,<2.0a0' + python: '>=3.11,<3.12.0a0' + python_abi: 3.11.* + url: https://conda.anaconda.org/conda-forge/linux-64/pywavelets-1.4.1-py311h1f0f07a_1.conda + hash: + md5: 86b71ff85f3e4c8a98b5bace6d9c4565 + sha256: 6f4055f77b16e0e9c2d65d587d7522db4de2f2ed8bc223d067ac4c5223795cc6 + category: main + optional: false - name: pyyaml version: 6.0.1 manager: conda @@ -4990,7 +5249,7 @@ package: category: main optional: false - name: pyzmq - version: 25.1.1 + version: 25.1.2 manager: conda platform: linux-64 dependencies: @@ -5000,10 +5259,10 @@ package: python: '>=3.11,<3.12.0a0' python_abi: 3.11.* zeromq: '>=4.3.5,<4.4.0a0' - url: https://conda.anaconda.org/conda-forge/linux-64/pyzmq-25.1.1-py311h34ded2d_2.conda + url: https://conda.anaconda.org/conda-forge/linux-64/pyzmq-25.1.2-py311h34ded2d_0.conda hash: - md5: ea365280db99687905b4d76cf6a3568c - sha256: a5ed6592f32b0caf3883a2f863e8a6258845310d4eebeab2eaf1c5abed04d6b8 + md5: 819aa640a0493d4b52faf938e94d129e + sha256: 54ccdde1370d8a373e516b84bd7fe4af394f8c6f3778eb050de82f04ffb86160 category: main optional: false - name: rapidfuzz @@ -5034,18 +5293,30 @@ package: click-plugins: '' cligj: '>=0.5' libgcc-ng: '>=12' - libgdal: '>=3.7.2,<3.8.0a0' + libgdal: '>=3.8.1,<3.9.0a0' libstdcxx-ng: '>=12' numpy: '>=1.23.5,<2.0a0' - proj: '>=9.3.0,<9.3.1.0a0' + proj: '>=9.3.1,<9.3.2.0a0' python: '>=3.11,<3.12.0a0' python_abi: 3.11.* setuptools: '>=0.9.8' snuggs: '>=1.4.1' - url: https://conda.anaconda.org/conda-forge/linux-64/rasterio-1.3.9-py311h40fbdff_0.conda + url: https://conda.anaconda.org/conda-forge/linux-64/rasterio-1.3.9-py311ha38370a_2.conda + hash: + md5: af5a87ac084f23d095ed9efff8bdfe16 + sha256: ff98df399442f9e9f2848a5073a4e1a92607947639e31fc43f4eb7897c948977 + category: main + optional: false +- name: rav1e + version: 0.6.6 + manager: conda + platform: linux-64 + dependencies: + libgcc-ng: '>=12' + url: https://conda.anaconda.org/conda-forge/linux-64/rav1e-0.6.6-he8a937b_2.conda hash: - md5: dcee6ba4d1ac6af18827d0941b6a1b42 - sha256: a7e283755aa2fc91ab4fefbf43017cce359a9e549a33b9d4c68a9472ecda98ea + md5: 77d9955b4abddb811cb8ab1aa7d743e4 + sha256: 91b3c1ced90d04ee2eded1f72cf3cbc19ff05a25e41876ef0758266a5bab009f category: main optional: false - name: rdma-core @@ -5100,17 +5371,17 @@ package: category: main optional: false - name: referencing - version: 0.31.1 + version: 0.32.0 manager: conda platform: linux-64 dependencies: attrs: '>=22.2.0' python: '>=3.8' rpds-py: '>=0.7.0' - url: https://conda.anaconda.org/conda-forge/noarch/referencing-0.31.1-pyhd8ed1ab_0.conda + url: https://conda.anaconda.org/conda-forge/noarch/referencing-0.32.0-pyhd8ed1ab_0.conda hash: - md5: ae08039cf63eb82637b867aea3f04758 - sha256: efb91b7d2f6e729c01676e52e99071db819628a9f0a3a519c8969f0d2350a371 + md5: a7b5a535cd614e384594530aee7e6061 + sha256: dfd40282910a45e58882ed94b502b2a09f475efb04eaaa3bd8b3b5a9b21a19c3 category: main optional: false - name: regex @@ -5259,16 +5530,16 @@ package: category: main optional: false - name: s2n - version: 1.3.56 + version: 1.4.0 manager: conda platform: linux-64 dependencies: libgcc-ng: '>=12' - openssl: '>=3.1.4,<4.0a0' - url: https://conda.anaconda.org/conda-forge/linux-64/s2n-1.3.56-h06160fa_0.conda + openssl: '>=3.2.0,<4.0a0' + url: https://conda.anaconda.org/conda-forge/linux-64/s2n-1.4.0-h06160fa_0.conda hash: - md5: 04b4845b9e9b5a0ee6eba013ecdbbddb - sha256: 4c00411d49fefc6a53167c3120e386b3f35510544a44d2e647615b510a622f29 + md5: 3d1b58d2664d96f9fbc0afe5e1d04632 + sha256: f6cc2bdcb5d809bbaae218e03bdefef4a309d1fc7ccc9444fda59bd4553a83f8 category: main optional: false - name: s3transfer @@ -5315,6 +5586,30 @@ package: sha256: 02b16dea74388db9d1a58ad83c758d8dbd1b8c58c148ca247724baa3fad33962 category: main optional: false +- name: scikit-image + version: 0.22.0 + manager: conda + platform: linux-64 + dependencies: + imageio: '>=2.27' + lazy_loader: '>=0.2' + libgcc-ng: '>=12' + libstdcxx-ng: '>=12' + networkx: '>=2.8' + numpy: '>=1.23.5,<2.0a0' + packaging: '>=21' + pillow: '>=9.0.1' + python: '>=3.11,<3.12.0a0' + python_abi: 3.11.* + pywavelets: '>=1.1.1' + scipy: '>=1.8' + tifffile: '>=2022.8.12' + url: https://conda.anaconda.org/conda-forge/linux-64/scikit-image-0.22.0-py311h320fe9a_2.conda + hash: + md5: e94b7f09b52628b89e66cdbd8c3029dd + sha256: a7ef0c71a7defbc87b5ece4592624aeeab6424dc199795fa3de61a0d69c5b8ae + category: main + optional: false - name: scipy version: 1.11.4 manager: conda @@ -5365,6 +5660,34 @@ package: sha256: e74d3faf51a6cc429898da0209d95b209270160f3edbf2f6d8b61a99428301cd category: main optional: false +- name: sentry-sdk + version: 1.39.0 + manager: conda + platform: linux-64 + dependencies: + certifi: '' + python: '>=3.7' + urllib3: '>=1.25.7' + url: https://conda.anaconda.org/conda-forge/noarch/sentry-sdk-1.39.0-pyhd8ed1ab_0.conda + hash: + md5: c9cf03170f08f8c27a792572c19a6925 + sha256: c91ab95dab71f76618d9d90cfdc3fdcf8f7189fece57d111f19ddc67f65f9c0e + category: main + optional: false +- name: setproctitle + version: 1.3.3 + manager: conda + platform: linux-64 + dependencies: + libgcc-ng: '>=12' + python: '>=3.11,<3.12.0a0' + python_abi: 3.11.* + url: https://conda.anaconda.org/conda-forge/linux-64/setproctitle-1.3.3-py311h459d7ec_0.conda + hash: + md5: 82a78657a66e78c04e614ceb772ee8da + sha256: f5c0ffdcaad92565d7041c27084a2263653d8287daf9a41c023a460d776acb72 + category: main + optional: false - name: setuptools version: 68.2.2 manager: conda @@ -5568,6 +5891,19 @@ package: sha256: 4a500ac0a9fe56cee7958d6d0f6530272c43ee4c16c52600001decb39fe3cd59 category: main optional: false +- name: svt-av1 + version: 1.8.0 + manager: conda + platform: linux-64 + dependencies: + libgcc-ng: '>=12' + libstdcxx-ng: '>=12' + url: https://conda.anaconda.org/conda-forge/linux-64/svt-av1-1.8.0-h59595ed_0.conda + hash: + md5: a9fb862e9d3beb0ebc61c10806056a7d + sha256: 6d64facdcdaadc5a3e5e4382ee195b4fde3c84ae3d4156fdd9b78ba7de358ba7 + category: main + optional: false - name: sympy version: '1.12' manager: conda @@ -5584,17 +5920,16 @@ package: category: main optional: false - name: tbb - version: 2021.10.0 + version: 2021.7.0 manager: conda platform: linux-64 dependencies: libgcc-ng: '>=12' - libhwloc: '>=2.9.3,<2.9.4.0a0' libstdcxx-ng: '>=12' - url: https://conda.anaconda.org/conda-forge/linux-64/tbb-2021.10.0-h00ab1b0_2.conda + url: https://conda.anaconda.org/conda-forge/linux-64/tbb-2021.7.0-h924138e_0.tar.bz2 hash: - md5: eb0d5c122f42714f86a7058d1ce7b2e6 - sha256: 79a6c48fa1df661af7ab3e4f5fa444dd305d87921be017413a8b97fd6d642328 + md5: 819421f81b127a5547bf96ad57eccdd9 + sha256: 452a6def24912d2a118d863095c3f9cb05fe5c997357431a0ca4452eb7f65f08 category: main optional: false - name: terminado @@ -5612,25 +5947,40 @@ package: sha256: e90139ef15ea9d75a69cd6b6302c29ed5b01c03ddfa717b71acb32b60af74269 category: main optional: false +- name: tifffile + version: 2023.12.9 + manager: conda + platform: linux-64 + dependencies: + imagecodecs: '>=2023.8.12' + numpy: '>=1.19.2' + python: '>=3.9' + url: https://conda.anaconda.org/conda-forge/noarch/tifffile-2023.12.9-pyhd8ed1ab_0.conda + hash: + md5: 454bc0aff84f35fa53ba9e0369737a9b + sha256: 4786325cea8790d0b19d52ae575afd640fc8a5000fb75470edb7fcf00647dbbd + category: main + optional: false - name: tiledb - version: 2.16.3 + version: 2.18.2 manager: conda platform: linux-64 dependencies: bzip2: '>=1.0.8,<2.0a0' - libabseil: '>=20230802.0,<20230803.0a0' + libabseil: '>=20230802.1,<20230803.0a0' + libcurl: '>=8.5.0,<9.0a0' libgcc-ng: '>=12' libgoogle-cloud: '>=2.12.0,<2.13.0a0' libstdcxx-ng: '>=12' - libxml2: '>=2.11.5,<2.12.0a0' + libxml2: '>=2.12.2,<2.13.0a0' libzlib: '>=1.2.13,<1.3.0a0' lz4-c: '>=1.9.3,<1.10.0a0' - openssl: '>=3.1.2,<4.0a0' + openssl: '>=3.2.0,<4.0a0' zstd: '>=1.5.5,<1.6.0a0' - url: https://conda.anaconda.org/conda-forge/linux-64/tiledb-2.16.3-h8c794c1_3.conda + url: https://conda.anaconda.org/conda-forge/linux-64/tiledb-2.18.2-hc1131af_2.conda hash: - md5: 7de728789b0aba16018f726dc5ddbec2 - sha256: f021df4b9cfd1a54aac87a6c0bac604edc8ffb36d5b2c4aa20bf2d759ae04a11 + md5: d86a5ef28245c435828b3f2ef1ee3f28 + sha256: 58c0d9906ceda465b0d44ef4878e4a2e22512670bf7b12023d7495d3fd988bdc category: main optional: false - name: tinycss2 @@ -5717,7 +6067,7 @@ package: manager: conda platform: linux-64 dependencies: - aws-sdk-cpp: '>=1.11.182,<1.11.183.0a0' + aws-sdk-cpp: '>=1.11.210,<1.11.211.0a0' libgcc-ng: '>=12' libstdcxx-ng: '>=12' python: '>=3.11,<3.12.0a0' @@ -5725,27 +6075,27 @@ package: pytorch: '>=2.1.0,<2.2.0a0' requests: '' urllib3: '>=1.25' - url: https://conda.anaconda.org/conda-forge/linux-64/torchdata-0.7.1-py311ha8bf654_0.conda + url: https://conda.anaconda.org/conda-forge/linux-64/torchdata-0.7.1-py311h85129bf_1.conda hash: - md5: fa7532ed041ab78a5eee52d2e6b80b12 - sha256: 2c64eace1fddfc07d2307d34711b7c1af167a44b73a0b2649e30704035348356 + md5: b99e8a345639aeaa0c98c0db5851159f + sha256: d52efdb064a8aa345c4146f590a0a94ca918b36dae5b26a57ff78dfc60d18bff category: main optional: false - name: torchmetrics - version: 1.2.0 + version: 1.2.1 manager: conda platform: linux-64 dependencies: lightning-utilities: '>=0.8.0' numpy: '>1.20.0' - packaging: '' + packaging: '>17.1' python: '>=3.7' pytorch: '>=1.8.1' setuptools: '' - url: https://conda.anaconda.org/conda-forge/noarch/torchmetrics-1.2.0-pyhd8ed1ab_0.conda + url: https://conda.anaconda.org/conda-forge/noarch/torchmetrics-1.2.1-pyhd8ed1ab_0.conda hash: - md5: e8ab9fbd0174c2f1392c38d848c53956 - sha256: 126e5d02c25e82e537b2448af1220878085fda5f081c13eebb4a91a19895ac98 + md5: f6468e9ea893241ad7b8eae519f7e3a5 + sha256: 26abe526d9514f096f196628ede28fb10d8e65cc19350b3be19f7bc465a22cec category: main optional: false - name: tornado @@ -5851,27 +6201,27 @@ package: category: main optional: false - name: typing-extensions - version: 4.8.0 + version: 4.9.0 manager: conda platform: linux-64 dependencies: - typing_extensions: 4.8.0 - url: https://conda.anaconda.org/conda-forge/noarch/typing-extensions-4.8.0-hd8ed1ab_0.conda + typing_extensions: 4.9.0 + url: https://conda.anaconda.org/conda-forge/noarch/typing-extensions-4.9.0-hd8ed1ab_0.conda hash: - md5: 384462e63262a527bda564fa2d9126c0 - sha256: d6e1dddd0c372218ef15912383d351ac8c73465cbf16238017f0269813cafe2d + md5: c16524c1b7227dc80b36b4fa6f77cc86 + sha256: d795c1eb1db4ea147f01ece74e5a504d7c2e8d5ee8c11ec987884967dd938f9c category: main optional: false - name: typing_extensions - version: 4.8.0 + version: 4.9.0 manager: conda platform: linux-64 dependencies: python: '>=3.8' - url: https://conda.anaconda.org/conda-forge/noarch/typing_extensions-4.8.0-pyha770c72_0.conda + url: https://conda.anaconda.org/conda-forge/noarch/typing_extensions-4.9.0-pyha770c72_0.conda hash: - md5: 5b1be40a26d10a06f6d4f1f9e19fa0c7 - sha256: 38d16b5c53ec1af845d37d22e7bb0e6c934c7f19499123507c5a470f6f8b7dde + md5: a92a6440c3fe7052d63244f3aba2a4a7 + sha256: f3c5be8673bfd905c4665efcb27fa50192f24f84fa8eff2f19cba5d09753d905 category: main optional: false - name: typing_utils @@ -5919,11 +6269,11 @@ package: libgcc-ng: '>=12' libnuma: '>=2.0.16,<3.0a0' libstdcxx-ng: '>=12' - rdma-core: '>=48.0' - url: https://conda.anaconda.org/conda-forge/linux-64/ucx-1.15.0-h115f88d_1.conda + rdma-core: '>=49' + url: https://conda.anaconda.org/conda-forge/linux-64/ucx-1.15.0-h6d2d1ec_2.conda hash: - md5: db13bfa54b060c8c1bc769fa603ed003 - sha256: bd2b628463fc72a863e10b14f67a161e8f05bf424e3915a6ba3dbbd73ec6d76d + md5: 7f74ff71d40e5eba3da56f9e57cf4b25 + sha256: 9c05d20297a8f761380b5abbd683ea22161b9136f61c05934b732e3eab3a3e4e category: main optional: false - name: uri-template @@ -5993,7 +6343,7 @@ package: category: main optional: false - name: virtualenv - version: 20.24.7 + version: 20.25.0 manager: conda platform: linux-64 dependencies: @@ -6001,10 +6351,35 @@ package: filelock: <4,>=3.12.2 platformdirs: <5,>=3.9.1 python: '>=3.8' - url: https://conda.anaconda.org/conda-forge/noarch/virtualenv-20.24.7-pyhd8ed1ab_0.conda + url: https://conda.anaconda.org/conda-forge/noarch/virtualenv-20.25.0-pyhd8ed1ab_0.conda + hash: + md5: c119653cba436d8183c27bf6d190e587 + sha256: 50827c3721a9dbf973b568709d4381add2a6552fa562f26a385c5edc16a534af + category: main + optional: false +- name: wandb + version: 0.15.12 + manager: conda + platform: linux-64 + dependencies: + appdirs: '>=1.4.3' + click: '>=7.1,!=8.0.0' + docker-pycreds: '>=0.4.0' + gitpython: '>=1.0.0,!=3.1.29' + pathtools: '' + protobuf: '>=3.19.0,!=4.21.0,<5' + psutil: '>=5.0.0' + python: '>=3.7' + pyyaml: '' + requests: '>=2.0.0,<3' + sentry-sdk: '>=1.0.0' + setproctitle: '' + setuptools: '' + typing_extensions: '' + url: https://conda.anaconda.org/conda-forge/noarch/wandb-0.15.12-pyhd8ed1ab_0.conda hash: - md5: db990278c2c00b268eed778de44f6057 - sha256: ad661ae59c64bd73c25dfadb00c601659f4d9cafbf428e36a690075e52bac96a + md5: fa93cd3b1f3311ddd07df0a393e18c19 + sha256: c2f10522299816dc4d39f6aa7346651ae4eeac2140745619dd318451bcd2b91b category: main optional: false - name: wcwidth @@ -6044,15 +6419,15 @@ package: category: main optional: false - name: websocket-client - version: 1.6.4 + version: 1.7.0 manager: conda platform: linux-64 dependencies: python: '>=3.8' - url: https://conda.anaconda.org/conda-forge/noarch/websocket-client-1.6.4-pyhd8ed1ab_0.conda + url: https://conda.anaconda.org/conda-forge/noarch/websocket-client-1.7.0-pyhd8ed1ab_0.conda hash: - md5: bdb77b28cf16deac0eef431a068320e8 - sha256: df45b89862edcd7cd5180ec7b8c0c0ca9fb4d3f7d49ddafccdc76afcf50d8da6 + md5: 50ad31e07d706aae88b14a4ac9c73f23 + sha256: d9b537d5b7c5aa7a02a4ce4c6b755e458bd8083b67752a73c92d113ccec6c10f category: main optional: false - name: websockets @@ -6070,7 +6445,7 @@ package: category: main optional: false - name: xarray - version: 2023.11.0 + version: 2023.12.0 manager: conda platform: linux-64 dependencies: @@ -6078,10 +6453,10 @@ package: packaging: '>=21.3' pandas: '>=1.4' python: '>=3.9' - url: https://conda.anaconda.org/conda-forge/noarch/xarray-2023.11.0-pyhd8ed1ab_0.conda + url: https://conda.anaconda.org/conda-forge/noarch/xarray-2023.12.0-pyhd8ed1ab_0.conda hash: - md5: f445b20bac3db8f604a48592087b2d8f - sha256: 71a2000fd5f5065e8c9a184c3f9262b27c4a5eeb5366a6d7e4d267d28e9f07d9 + md5: e9b31d3ab1b0dd5fd8c24419f6560b90 + sha256: ab89b70aa3d31a9cacf0e91a7c7a6f8cc45d866d71cdcee1219561cff0e8a9a5 category: main optional: false - name: xerces-c @@ -6324,6 +6699,20 @@ package: sha256: 53bf2a18224406e9806adb3b270a2c8a028aca0c89bd40114a85d6446f5c98d1 category: main optional: false +- name: zfp + version: 1.0.0 + manager: conda + platform: linux-64 + dependencies: + _openmp_mutex: '>=4.5' + libgcc-ng: '>=12' + libstdcxx-ng: '>=12' + url: https://conda.anaconda.org/conda-forge/linux-64/zfp-1.0.0-h59595ed_4.conda + hash: + md5: 9cfbafab420f42b572f3c032ad59da85 + sha256: 9ab5aa62493ebe544514783a9a05b933eb3c9f2bc51ace9be8aa91e875a8387c + category: main + optional: false - name: zipp version: 3.17.0 manager: conda @@ -6349,6 +6738,18 @@ package: sha256: 9887a04d7e7cb14bd2b52fa01858f05a6d7f002c890f618d9fcd864adbfecb1b category: main optional: false +- name: zlib-ng + version: 2.0.7 + manager: conda + platform: linux-64 + dependencies: + libgcc-ng: '>=12' + url: https://conda.anaconda.org/conda-forge/linux-64/zlib-ng-2.0.7-h0b41bf4_0.conda + hash: + md5: 49e8329110001f04923fe7e864990b0c + sha256: 6b3a22b7cc219e8d83f16c1ceba67aa51e0b7e3bcc4a647b97a0a510559b0477 + category: main + optional: false - name: zstd version: 1.5.5 manager: conda diff --git a/environment.yml b/environment.yml index 9aa87c6f..67032759 100644 --- a/environment.yml +++ b/environment.yml @@ -14,8 +14,10 @@ dependencies: - pytorch~=2.1.0=*cuda120* - python=3.11 - rioxarray~=0.15.0 + - scikit-image~=0.22.0 - stackstac~=0.5.0 - torchdata~=0.7.1 - transformers~=4.35.2 - typeshed-client~=2.4.0 + - wandb~=0.15.12 - zarr~=2.16.1 diff --git a/src/README.md b/src/README.md index cd719680..c041581b 100644 --- a/src/README.md +++ b/src/README.md @@ -1,6 +1,7 @@ # Clay Foundation Model Modules -This folder contains several LightningDataModule and LightningModule classes. +This folder contains several LightningDataModule, LightningModule and callback +classes. ## DataModules (data pipeline) @@ -10,7 +11,12 @@ This folder contains several LightningDataModule and LightningModule classes. - model_vit.py - Vision Transformer neural network model architecture +## Callbacks (custom plugins) + +- callbacks_wandb.py - Log metrics and predictions to Weights and Biases while training. + ## References - https://lightning.ai/docs/pytorch/2.1.0/data/datamodule.html - https://lightning.ai/docs/pytorch/2.1.0/common/lightning_module.html +- https://lightning.ai/docs/pytorch/2.1.0/extensions/callbacks.html diff --git a/src/callbacks_wandb.py b/src/callbacks_wandb.py new file mode 100644 index 00000000..7998e269 --- /dev/null +++ b/src/callbacks_wandb.py @@ -0,0 +1,144 @@ +""" +Lightning callback functions for logging to Weights & Biases. + +Includes a way to visualize RGB images derived from the raw logits of a Masked +Autoencoder's decoder during the validation loop. I.e. to see if the Vision +Transformer model is learning how to do image reconstruction. + +Usage: + +``` +import lightning as L + +from src.callbacks_wandb import LogMAEReconstruction + +trainer = L.Trainer( + ..., + callbacks=[LogMAEReconstruction(num_samples=6)] +) +``` + +References: +- https://lightning.ai/docs/pytorch/2.1.0/common/trainer.html#callbacks +- https://wandb.ai/wandb/wandb-lightning/reports/Image-Classification-using-PyTorch-Lightning--VmlldzoyODk1NzY +- https://github.com/ashleve/lightning-hydra-template/blob/wandb-callbacks/src/callbacks/wandb_callbacks.py#L245 +""" +import lightning as L +import numpy as np +import skimage +import torch + +try: + import wandb +except ImportError: + wandb = None + + +# %% +class LogMAEReconstruction(L.Callback): + """ + Logs reconstructed RGB images from a Masked Autoencoder's decoder to WandB. + """ + + def __init__(self, num_samples: int = 8): + """ + Define how many sample images to log. + + Parameters + ---------- + num_samples : int + The number of RGB image samples to upload to WandB. Default is 8. + """ + super().__init__() + self.num_samples: int = num_samples + self.ready: bool = False + + if wandb is None: + raise ModuleNotFoundError( + "Package `wandb` is required to be installed to use this callback. " + "Please use `pip install wandb` or " + "`conda install -c conda-forge wandb` " + "to install the package" + ) + + def on_sanity_check_start(self, trainer, pl_module): + """ + Don't execute callback before validation sanity checks are completed. + """ + self.ready = False + + def on_sanity_check_end(self, trainer, pl_module): + """ + Start executing callback only after all validation sanity checks end. + """ + self.ready = True + + def on_validation_batch_end( + self, + trainer: L.Trainer, + pl_module: L.LightningModule, + outputs: dict[str, torch.Tensor], + batch: dict[str, torch.Tensor | list[str]], + batch_idx: int, + ) -> list: + """ + Called in the validation loop at the start of every mini-batch. + + Gather a sample of data from the first mini-batch, get the RGB bands, + apply histogram equalization to the image, and log it to WandB. + """ + if self.ready and batch_idx == 0: # only run on first mini-batch + with torch.inference_mode(): + # Get WandB logger + for logger in trainer.loggers: + if isinstance(logger, L.pytorch.loggers.WandbLogger): + break + + # Turn raw logits into reconstructed 512x512 images + patchified_pixel_values: torch.Tensor = outputs["logits"] + # assert patchified_pixel_values.shape == torch.Size([32, 64, 53248]) + y_hat: torch.Tensor = pl_module.vit.unpatchify( + patchified_pixel_values=patchified_pixel_values + ) + # assert y_hat.shape == torch.Size([32, 13, 512, 512]) + + # Reshape tensors from channel-first to channel-last + x: torch.Tensor = torch.einsum( + "bchw->bhwc", batch["image"][: self.num_samples] + ) + y_hat: torch.Tensor = torch.einsum( + "bchw->bhwc", y_hat[: self.num_samples] + ) + # assert y_hat.shape == torch.Size([8, 512, 512, 13]) + assert x.shape == y_hat.shape + + # Plot original and reconstructed RGB images of Sentinel-2 + rgb_original: np.ndarray = ( + x[:, :, :, [2, 1, 0]].cpu().to(dtype=torch.float32).numpy() + ) + rgb_reconstruction: np.ndarray = ( + y_hat[:, :, :, [2, 1, 0]].cpu().to(dtype=torch.float32).numpy() + ) + + figures: list[wandb.Image] = [] + for i in range(min(x.shape[0], self.num_samples)): + img_original = wandb.Image( + data_or_path=skimage.exposure.equalize_hist( + image=rgb_original[i] + ), + caption=f"RGB Image {i}", + ) + figures.append(img_original) + + img_reconstruction = wandb.Image( + data_or_path=skimage.exposure.equalize_hist( + image=rgb_reconstruction[i] + ), + caption=f"Reconstructed {i}", + ) + figures.append(img_reconstruction) + + # Upload figures to WandB + logger.experiment.log(data={"Examples": figures}) + + return figures diff --git a/src/model_vit.py b/src/model_vit.py index c3255542..a9e96775 100644 --- a/src/model_vit.py +++ b/src/model_vit.py @@ -99,7 +99,7 @@ def training_step( - https://github.com/huggingface/transformers/blob/v4.35.2/src/transformers/models/vit_mae/modeling_vit_mae.py#L948-L1010 """ x: torch.Tensor = batch["image"] - # x: torch.Tensor = torch.randn(32, 13, 256, 256) # BCHW + # x: torch.Tensor = torch.randn(32, 13, 512, 512) # BCHW # Forward encoder outputs_encoder: dict = self(x) @@ -125,7 +125,7 @@ def training_step( on_step=True, on_epoch=True, prog_bar=True, - # logger=True, + batch_size=self.B, ) return loss @@ -136,7 +136,37 @@ def validation_step( """ Logic for the neural network's validation loop. """ - pass + x: torch.Tensor = batch["image"] + # x: torch.Tensor = torch.randn(32, 13, 512, 512) # BCHW + + # Forward encoder + outputs_encoder: dict = self(x) + assert outputs_encoder.last_hidden_state.shape == torch.Size([self.B, 17, 768]) + assert outputs_encoder.ids_restore.shape == torch.Size([self.B, 64]) + assert outputs_encoder.mask.shape == torch.Size([self.B, 64]) + + # Forward decoder + outputs_decoder: dict = self.vit.decoder.forward( + hidden_states=outputs_encoder.last_hidden_state, + ids_restore=outputs_encoder.ids_restore, + ) + # output shape (batch_size, num_patches, patch_size*patch_size*num_channels) + assert outputs_decoder.logits.shape == torch.Size([self.B, 64, 53248]) + + # Log training loss and metrics + loss: torch.Tensor = self.vit.forward_loss( + pixel_values=x, pred=outputs_decoder.logits, mask=outputs_encoder.mask + ) + self.log( + name="val/loss", + value=loss, + on_step=True, + on_epoch=True, + prog_bar=True, + batch_size=self.B, + ) + + return {"loss": loss, "logits": outputs_decoder.logits} def predict_step( self, batch: dict[str, torch.Tensor | list[str]], batch_idx: int diff --git a/src/tests/test_callbacks.py b/src/tests/test_callbacks.py new file mode 100644 index 00000000..1af4000a --- /dev/null +++ b/src/tests/test_callbacks.py @@ -0,0 +1,66 @@ +""" +Tests for custom Callback plugins. + +Checks to ensure that the hooks in callbacks can be triggered and produce the +correct output results. +""" +import tempfile + +import lightning as L +import pytest +import torch + +from src.callbacks_wandb import LogMAEReconstruction +from src.model_vit import ViTLitModule + + +# %% +def test_callbacks_wandb_log_mae_reconstruction(): + """ + Ensure that the LogMAEReconstruction callback can log a set of images to + Weights & Biases. + """ + wandb = pytest.importorskip(modname="wandb") + + # Run tests in a temporary folder + with tempfile.TemporaryDirectory() as tmpdirname: + pl_module: L.LightningModule = ViTLitModule() + trainer: L.Trainer = L.Trainer( + accelerator="auto", + callbacks=[LogMAEReconstruction(num_samples=4)], + devices=1, + logger=L.pytorch.loggers.WandbLogger(mode="disabled", save_dir=tmpdirname), + default_root_dir=tmpdirname, + ) + callback: L.Callback = trainer.callbacks[0] + + assert callback.ready is False # callback state is not ready at first + callback.on_sanity_check_end(trainer=trainer, pl_module=pl_module) + assert callback.ready is True # callback state is ready after sanity_check + + wandb_images: list[wandb.Image] = callback.on_validation_batch_end( + trainer=trainer, + pl_module=pl_module, + outputs={"logits": torch.rand(4, 64, 53248)}, + batch={"image": torch.rand(4, 13, 512, 512)}, + batch_idx=0, + ) + + # Check that wandb saved some log files to the temporary directory + # assert os.path.exists(path := f"{tmpdirname}/wandb/latest-run/") + # assert set(os.listdir(path=path)) == set( + # [ + # f"run-{trainer.logger.version}.wandb", + # "tmp", + # "files", + # "logs", + # ] + # ) + + # Check that images logged by WandB have the correct caption and format + assert len(wandb_images) == 8 # noqa: PLR2004 + assert all(isinstance(w, wandb.Image) for w in wandb_images) + assert wandb_images[0]._caption == "RGB Image 0" + assert wandb_images[0].format == "png" + assert wandb_images[1]._caption == "Reconstructed 0" + assert wandb_images[1].format == "png" diff --git a/trainer.py b/trainer.py index db09c476..fa12bba6 100644 --- a/trainer.py +++ b/trainer.py @@ -13,6 +13,7 @@ from lightning.pytorch.cli import ArgsType, LightningCLI from lightning.pytorch.plugins.io import AsyncCheckpointIO +from src.callbacks_wandb import LogMAEReconstruction # noqa: F401 from src.datamodule import GeoTIFFDataPipeModule from src.model_vit import ViTLitModule