diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml new file mode 100644 index 00000000..c42307ef --- /dev/null +++ b/.github/workflows/test.yml @@ -0,0 +1,57 @@ +name: CI + +on: + pull_request: + push: + branches: + - main + +# Default to bash in login mode; key to activating conda environment +# https://github.com/mamba-org/provision-with-micromamba#IMPORTANT +defaults: + run: + shell: "bash -l {0}" + +jobs: + test: + name: "Run tests" + runs-on: "ubuntu-latest" + steps: + - name: "Check out repository" + uses: "actions/checkout@v3" + + - name: "Install Conda environment" + uses: "mamba-org/setup-micromamba@v1" + with: + environment-file: "conda-lock.yml" + # When using a lock-file, we have to set an environment name. + environment-name: "seaice_ecdr-ci" + cache-environment: true + # Increase this key to trigger cache invalidation + cache-environment-key: 1 + + - name: "Check out pm_icecon repository" + uses: "actions/checkout@v3" + with: + repository: "nsidc/pm_icecon" + ref: "update_for_nise_cdr_cetb" + path: "pm_icecon" + + - name: "Check out pm_tb_data repository" + uses: "actions/checkout@v3" + with: + repository: "nsidc/pm_tb_data" + ref: "main" + path: "pm_tb_data" + + # Linter + - name: "Run pre-commit tests" + run: "pre-commit run --all-files" + + # Unit tests + - name: "Run mypy" + run: "PYTHONPATH=/home/runner/work/seaice_ecdr/seaice_ecdr/pm_icecon/:/home/runner/work/seaice_ecdr/seaice_ecdr/pm_tb_data/ mypy" + + # Unit tests + # - name: "Run unit tests" + # run: "PYTHONPATH=/home/runner/work/seaice_ecdr/seaice_ecdr/pm_icecon/:/home/runner/work/seaice_ecdr/seaice_ecdr/pm_tb_data/ python -m pytest seaice_ecdr/tests/unit/" diff --git a/.mypy.ini b/.mypy.ini deleted file mode 100644 index 6934ce41..00000000 --- a/.mypy.ini +++ /dev/null @@ -1,40 +0,0 @@ -[mypy] -python_version = 3.10 -incremental = True -show_error_codes = True -check_untyped_defs = True -warn_unreachable = True -plugins = numpy.typing.mypy_plugin - -[mypy-invoke.*] -ignore_missing_imports = True - -[mypy-matplotlib.*] -ignore_missing_imports = True - -[mypy-cartopy.*] -ignore_missing_imports = True - -[mypy-scipy.*] -ignore_missing_imports = True - -[mypy-sklearn.*] -ignore_missing_imports = True - -[mypy-h5py.*] -ignore_missing_imports = True - -[mypy-pandas.*] -ignore_missing_imports = True - -[mypy-pyresample.*] -ignore_missing_imports = True - -[mypy-setuptools.*] -ignore_missing_imports = True - -[mypy-netCDF4.*] -ignore_missing_imports = True - -[mypy-rasterio.*] -ignore_missing_imports = True diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml new file mode 100644 index 00000000..0ebf10f9 --- /dev/null +++ b/.pre-commit-config.yaml @@ -0,0 +1,30 @@ +default_language_version: + python: "python3.10" + + +repos: + + - repo: "https://github.com/pre-commit/pre-commit-hooks" + rev: "v4.4.0" + hooks: + - id: "check-added-large-files" + - id: "check-vcs-permalinks" + - id: "end-of-file-fixer" + + - repo: "https://github.com/charliermarsh/ruff-pre-commit" + rev: "v0.0.291" + hooks: + - id: "ruff" + # NOTE: "--exit-non-zero-on-fix" is important for CI to function + # correctly! + args: ["--fix", "--exit-non-zero-on-fix"] + + - repo: "https://github.com/psf/black" + rev: "23.9.1" + hooks: + - id: "black" + + - repo: "https://github.com/jendrikseipp/vulture" + rev: "v2.9.1" + hooks: + - id: "vulture" diff --git a/LICENSE_GENERAL b/LICENSE similarity index 100% rename from LICENSE_GENERAL rename to LICENSE diff --git a/LICENSE_NASA b/LICENSE_NASA deleted file mode 100644 index 169c1dfb..00000000 --- a/LICENSE_NASA +++ /dev/null @@ -1,21 +0,0 @@ -This software was developed by the National Snow and Ice Data Center (NSIDC) at -CIRES at the University of Colorado with funding from NASA under Contract -Number 80GSFC18C0102. - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies -of the Software, and to permit persons to whom the Software is furnished to do -so, subject to the following conditions: - -This permission notice shall be included in all copies or substantial portions -of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/README.md b/README.md index 6d413737..1a4a4500 100644 --- a/README.md +++ b/README.md @@ -1,11 +1,16 @@ -

- NSIDC logo +

+ NSIDC logo + NOAA@NSIDC logo + NASA logo

+# Enhanced Sea Ice CDR -# Enhanced SeaIce CDR +Enhanced SeaIce CDR (ECDR) enables the creation of the 12.5km SeaIce CDR. -Enhanced SeaIce CDR enables the creation of the 12.5km SeaIce CDR +Please note that this repository is a work in progress and breaking changes are +to be expected. Initial work on this repository is specific to NSIDC's internal +systems and may not work as expected for external collaborators. ## Level of Support @@ -17,34 +22,111 @@ See the [LICENSE](GENERAL) for details on permissions and warranties. Please con nsidc@nsidc.org for more information. -## Requirements +## Requirements and installation -The ]seaice_ecdr_vm repository](https://bitbucket.org/nsidc/seaice_ecdr_vm/src/main/) provides the NSIDC VM configuration for this project. +This code relies on the python packages defined in the included +`environment.yml` file. +Use [conda](https://docs.conda.io/en/latest/) or +[mamba](https://mamba.readthedocs.io/en/latest/index.html) to install the +requirements: -## Installation +``` +$ conda env create +``` -Clone the seaice_ecdr_vm repository and check out appropriate branches of pm_icecon and seaice_ecdr to install this package +To activate the environment: +``` +$ conda activate pm_tb_data +``` ## Usage +TODO + +## Development/contributing + +### For developers at NSIDC + +For developers at the NSIDC, the [seaice_ecdr_vm +repository](https://bitbucket.org/nsidc/seaice_ecdr_vm/src/main/) provides the +NSIDC VM configuration for this project. + An initial copy of the pm_icecon "cdr" generation can be executed from the VM directory: -~/seaice_ecdr/ +`~/seaice_ecdr/` using the cli.sh command: +``` ./scripts/cli.sh bootstrap amsr2 --date 2022-08-01 --hemisphere north --output-dir /tmp/ --resolution 12 +``` + +### Adding dependencies + +To add new dependencies to this project, update the `environment.yml` file with +the new dependency. Then update your conda environment: + +``` +$ mamba env update +``` + +Once the conda environment has been updated, lock the environment using `conda-lock`: + +``` +$ conda-lock +``` + +Commit the changes for the `environment.yml` and the `conda-lock.yml` files. + + +### Running tests/CI + +#### Linting / formatting +This project uses [pre-commit](https://pre-commit.com/) to run pre-commit hooks +that check and format this project's code for stylistic consistency (using +`ruff` and `black`) . + +The pre-commit configuration for this project can be found in +`.pre-commit-config.yaml`. Configuration for specific tools (e.g., `mypy`) is +given in the included `pyproject.toml`. + +For more information about using `pre-commit`, please sese the [Scientific +Python Library Development Guide's section on +pre-commit](https://learn.scientific-python.org/development/guides/gha-basic/#pre-commit). + +To install pre-commit to run checks for each commit you make: + +``` +$ pre-commit install +``` + +To manually run the pre-commit hooks without a commit: + +``` +$ pre-commit run --all-files +``` + +#### Running unit tests + +Use `pytest` to run unit tests: + +``` +$ python -m pytest +``` +#### Type-checking -## Troubleshooting +Use `mypy` to run static typechecking -No specific troubleshooting suggestions are currently available. +``` +$ mypy +``` ## License -See [LICENSE](GENERAL). +See [LICENSE](LICENSE). ## Code of Conduct @@ -54,5 +136,5 @@ See [Code of Conduct](CODE_OF_CONDUCT.md). ## Credit -This content was developed by the National Snow and Ice Data Center with funding from -multiple sources. +This software was developed by the National Snow and Ice Data Center with +funding from NASA and NOAA. diff --git a/README_dev.txt b/README_dev.txt index ec4a2c60..731ec2d0 100644 --- a/README_dev.txt +++ b/README_dev.txt @@ -20,4 +20,3 @@ in ~/seaice_ecdr/: Can generate a sample netCDF file with: python seaice_ecdr/tests/integration/gen_ide_sample.py - diff --git a/conda-lock.yml b/conda-lock.yml new file mode 100644 index 00000000..6814d517 --- /dev/null +++ b/conda-lock.yml @@ -0,0 +1,8250 @@ +# This lock file was generated by conda-lock (https://github.com/conda/conda-lock). DO NOT EDIT! +# +# A "lock file" contains a concrete list of package versions (with checksums) to be installed. Unlike +# e.g. `conda env create`, the resulting environment will not change as new package versions become +# available, unless you explicitly update the lock file. +# +# Install this environment as "YOURENV" with: +# conda-lock install -n YOURENV --file conda-lock.yml +# To update a single package to the latest version compatible with the version constraints in the source: +# conda-lock lock --lockfile conda-lock.yml --update PACKAGE +# To re-solve the entire environment, e.g. after changing a version constraint in the source file: +# conda-lock -f environment.yml --lockfile conda-lock.yml +version: 1 +metadata: + content_hash: + linux-64: fcadd0ed0d84aaa6b8d63b1442f0a3209d12fcad1bba022a54cb76477d40421a + osx-arm64: 32686f782da7119ea5458b6c72971fd1ea8d31dadee6cf61e8c150c587e67eec + osx-64: b64759c8879cf8191ffdab1ef6cb7b958dffbcf45abb7487b91e82fff647aca8 + win-64: 5b6f12a3519d1aa314be676cefcb587ff135b922288911b938e2da2bc5b973dd + channels: + - url: conda-forge + used_env_vars: [] + platforms: + - linux-64 + - osx-64 + - osx-arm64 + - win-64 + sources: + - environment.yml +package: +- name: _libgcc_mutex + version: '0.1' + manager: conda + platform: linux-64 + dependencies: {} + url: https://conda.anaconda.org/conda-forge/linux-64/_libgcc_mutex-0.1-conda_forge.tar.bz2 + hash: + md5: d7c89558ba9fa0495403155b64376d81 + sha256: fe51de6107f9edc7aa4f786a70f4a883943bc9d39b3bb7307c04c41410990726 + category: main + optional: false +- name: ca-certificates + version: 2023.7.22 + manager: conda + platform: linux-64 + dependencies: {} + url: https://conda.anaconda.org/conda-forge/linux-64/ca-certificates-2023.7.22-hbcca054_0.conda + hash: + md5: a73ecd2988327ad4c8f2c331482917f2 + sha256: 525b7b6b5135b952ec1808de84e5eca57c7c7ff144e29ef3e96ae4040ff432c1 + category: main + optional: false +- name: ld_impl_linux-64 + version: '2.40' + manager: conda + platform: linux-64 + dependencies: {} + url: https://conda.anaconda.org/conda-forge/linux-64/ld_impl_linux-64-2.40-h41732ed_0.conda + hash: + md5: 7aca3059a1729aa76c597603f10b0dd3 + sha256: f6cc89d887555912d6c61b295d398cff9ec982a3417d38025c45d5dd9b9e79cd + category: main + optional: false +- name: libstdcxx-ng + version: 13.2.0 + manager: conda + platform: linux-64 + dependencies: {} + url: https://conda.anaconda.org/conda-forge/linux-64/libstdcxx-ng-13.2.0-h7e041cc_2.conda + hash: + md5: 9172c297304f2a20134fc56c97fbe229 + sha256: ab22ecdc974cdbe148874ea876d9c564294d5eafa760f403ed4fd495307b4243 + category: main + optional: false +- name: python_abi + version: '3.10' + manager: conda + platform: linux-64 + dependencies: {} + url: https://conda.anaconda.org/conda-forge/linux-64/python_abi-3.10-4_cp310.conda + hash: + md5: 26322ec5d7712c3ded99dd656142b8ce + sha256: 456bec815bfc2b364763084d08b412fdc4c17eb9ccc66a36cb775fa7ac3cbaec + category: main + optional: false +- name: tzdata + version: 2023c + manager: conda + platform: linux-64 + dependencies: {} + url: https://conda.anaconda.org/conda-forge/noarch/tzdata-2023c-h71feb2d_0.conda + hash: + md5: 939e3e74d8be4dac89ce83b20de2492a + sha256: 0449138224adfa125b220154408419ec37c06b0b49f63c5954724325903ecf55 + category: main + optional: false +- name: libgomp + version: 13.2.0 + manager: conda + platform: linux-64 + dependencies: + _libgcc_mutex: '0.1' + url: https://conda.anaconda.org/conda-forge/linux-64/libgomp-13.2.0-h807b86a_2.conda + hash: + md5: e2042154faafe61969556f28bade94b9 + sha256: e1e82348f8296abfe344162b3b5f0ddc2f504759ebeb8b337ba99beaae583b15 + category: main + optional: false +- name: _openmp_mutex + version: '4.5' + manager: conda + platform: linux-64 + dependencies: + _libgcc_mutex: '0.1' + libgomp: '>=7.5.0' + url: https://conda.anaconda.org/conda-forge/linux-64/_openmp_mutex-4.5-2_gnu.tar.bz2 + hash: + md5: 73aaf86a425cc6e73fcf236a5a46396d + sha256: fbe2c5e56a653bebb982eda4876a9178aedfc2b545f25d0ce9c4c0b508253d22 + category: main + optional: false +- name: libgcc-ng + version: 13.2.0 + manager: conda + platform: linux-64 + dependencies: + _libgcc_mutex: '0.1' + _openmp_mutex: '>=4.5' + url: https://conda.anaconda.org/conda-forge/linux-64/libgcc-ng-13.2.0-h807b86a_2.conda + hash: + md5: c28003b0be0494f9a7664389146716ff + sha256: d361d3c87c376642b99c1fc25cddec4b9905d3d9b9203c1c545b8c8c1b04539a + category: main + optional: false +- name: bzip2 + version: 1.0.8 + manager: conda + platform: linux-64 + dependencies: + libgcc-ng: '>=9.3.0' + url: https://conda.anaconda.org/conda-forge/linux-64/bzip2-1.0.8-h7f98852_4.tar.bz2 + hash: + md5: a1fd65c7ccbf10880423d82bca54eb54 + sha256: cb521319804640ff2ad6a9f118d972ed76d86bea44e5626c09a13d38f562e1fa + category: main + optional: false +- name: c-ares + version: 1.19.1 + manager: conda + platform: linux-64 + dependencies: + libgcc-ng: '>=12' + url: https://conda.anaconda.org/conda-forge/linux-64/c-ares-1.19.1-hd590300_0.conda + hash: + md5: e8c18d865be43e2fb3f7a145b6adf1f5 + sha256: c4276b1a0e8f18ab08018b1881666656742b325e0fcf2354f714e924d28683b6 + category: main + optional: false +- name: gettext + version: 0.21.1 + manager: conda + platform: linux-64 + dependencies: + libgcc-ng: '>=12' + url: https://conda.anaconda.org/conda-forge/linux-64/gettext-0.21.1-h27087fc_0.tar.bz2 + hash: + md5: 14947d8770185e5153fdd04d4673ed37 + sha256: 4fcfedc44e4c9a053f0416f9fc6ab6ed50644fca3a761126dbd00d09db1f546a + category: main + optional: false +- name: icu + version: '73.2' + manager: conda + platform: linux-64 + dependencies: + libgcc-ng: '>=12' + libstdcxx-ng: '>=12' + url: https://conda.anaconda.org/conda-forge/linux-64/icu-73.2-h59595ed_0.conda + hash: + md5: cc47e1facc155f91abd89b11e48e72ff + sha256: e12fd90ef6601da2875ebc432452590bc82a893041473bc1c13ef29001a73ea8 + category: main + optional: false +- name: keyutils + version: 1.6.1 + manager: conda + platform: linux-64 + dependencies: + libgcc-ng: '>=10.3.0' + url: https://conda.anaconda.org/conda-forge/linux-64/keyutils-1.6.1-h166bdaf_0.tar.bz2 + hash: + md5: 30186d27e2c9fa62b45fb1476b7200e3 + sha256: 150c05a6e538610ca7c43beb3a40d65c90537497a4f6a5f4d15ec0451b6f5ebb + category: main + optional: false +- name: libaec + version: 1.1.1 + manager: conda + platform: linux-64 + dependencies: + libgcc-ng: '>=12' + libstdcxx-ng: '>=12' + url: https://conda.anaconda.org/conda-forge/linux-64/libaec-1.1.1-h59595ed_0.conda + hash: + md5: ee2558593a8b60c8231446de9e9a308f + sha256: 05fe9175c57ba2da7286d90d54e4069e46075ac2ffbdd49c5779d1bc189f3173 + category: main + optional: false +- name: libev + version: '4.33' + 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 + hash: + md5: 6f8720dff19e17ce5d48cfe7f3d2f0a3 + sha256: 8c9635aa0ea28922877dc96358f9547f6a55fc7e2eb75a556b05f1725496baf9 + category: main + optional: false +- name: libexpat + version: 2.5.0 + manager: conda + platform: linux-64 + dependencies: + libgcc-ng: '>=12' + url: https://conda.anaconda.org/conda-forge/linux-64/libexpat-2.5.0-hcb278e6_1.conda + hash: + md5: 6305a3dd2752c76335295da4e581f2fd + sha256: 74c98a563777ae2ad71f1f74d458a8ab043cee4a513467c159ccf159d0e461f3 + category: main + optional: false +- name: libffi + version: 3.4.2 + manager: conda + platform: linux-64 + dependencies: + libgcc-ng: '>=9.4.0' + url: https://conda.anaconda.org/conda-forge/linux-64/libffi-3.4.2-h7f98852_5.tar.bz2 + hash: + md5: d645c6d2ac96843a2bfaccd2d62b3ac3 + sha256: ab6e9856c21709b7b517e940ae7028ae0737546122f83c2aa5d692860c3b149e + category: main + optional: false +- name: libgfortran5 + version: 13.2.0 + manager: conda + platform: linux-64 + dependencies: + libgcc-ng: '>=13.2.0' + url: https://conda.anaconda.org/conda-forge/linux-64/libgfortran5-13.2.0-ha4646dd_2.conda + hash: + md5: 78fdab09d9138851dde2b5fe2a11019e + sha256: 55ecf5c46c05a98b4822a041d6e1cb196a7b0606126eb96b24131b7d2c8ca561 + 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 + hash: + md5: b62b52da46c39ee2bc3c162ac7f1804d + sha256: 6a81ebac9f1aacdf2b4f945c87ad62b972f0f69c8e0981d68e111739e6720fd7 + category: main + optional: false +- name: libjpeg-turbo + version: 3.0.0 + manager: conda + platform: linux-64 + dependencies: + libgcc-ng: '>=12' + url: https://conda.anaconda.org/conda-forge/linux-64/libjpeg-turbo-3.0.0-hd590300_1.conda + hash: + md5: ea25936bb4080d843790b586850f82b8 + sha256: b954e09b7e49c2f2433d6f3bb73868eda5e378278b0f8c1dd10a7ef090e14f2f + category: main + optional: false +- name: libnsl + version: 2.0.0 + manager: conda + platform: linux-64 + dependencies: + libgcc-ng: '>=12' + url: https://conda.anaconda.org/conda-forge/linux-64/libnsl-2.0.0-hd590300_1.conda + hash: + md5: 854e3e1623b39777140f199c5f9ab952 + sha256: c0a0c0abc1c17983168c3239d79a62d53c424bc5dd1764dbcd0fa953d6fce5e0 + category: main + optional: false +- name: libuuid + version: 2.38.1 + manager: conda + platform: linux-64 + dependencies: + libgcc-ng: '>=12' + url: https://conda.anaconda.org/conda-forge/linux-64/libuuid-2.38.1-h0b41bf4_0.conda + hash: + md5: 40b61aab5c7ba9ff276c41cfffe6b80b + sha256: 787eb542f055a2b3de553614b25f09eefb0a0931b0c87dbcce6efdfd92f04f18 + category: main + optional: false +- name: libzlib + version: 1.2.13 + manager: conda + platform: linux-64 + dependencies: + libgcc-ng: '>=12' + url: https://conda.anaconda.org/conda-forge/linux-64/libzlib-1.2.13-hd590300_5.conda + hash: + md5: f36c115f1ee199da648e0597ec2047ad + sha256: 370c7c5893b737596fd6ca0d9190c9715d89d888b8c88537ae1ef168c25e82e4 + category: main + optional: false +- name: lz4-c + version: 1.9.4 + manager: conda + platform: linux-64 + dependencies: + libgcc-ng: '>=12' + libstdcxx-ng: '>=12' + url: https://conda.anaconda.org/conda-forge/linux-64/lz4-c-1.9.4-hcb278e6_0.conda + hash: + md5: 318b08df404f9c9be5712aaa5a6f0bb0 + sha256: 1b4c105a887f9b2041219d57036f72c4739ab9e9fe5a1486f094e58c76b31f5f + category: main + optional: false +- name: ncurses + version: '6.4' + manager: conda + platform: linux-64 + dependencies: + libgcc-ng: '>=12' + url: https://conda.anaconda.org/conda-forge/linux-64/ncurses-6.4-hcb278e6_0.conda + hash: + md5: 681105bccc2a3f7f1a837d47d39c9179 + sha256: ccf61e61d58a8a7b2d66822d5568e2dc9387883dd9b2da61e1d787ece4c4979a + category: main + optional: false +- name: openssl + version: 3.1.3 + manager: conda + platform: linux-64 + dependencies: + ca-certificates: '' + libgcc-ng: '>=12' + url: https://conda.anaconda.org/conda-forge/linux-64/openssl-3.1.3-hd590300_0.conda + hash: + md5: 7bb88ce04c8deb9f7d763ae04a1da72f + sha256: f4e35f506c7e8ab7dfdc47255b0d5aa8ce0c99028ae0affafd274333042c4f70 + category: main + optional: false +- name: snappy + version: 1.1.10 + manager: conda + platform: linux-64 + dependencies: + libgcc-ng: '>=12' + libstdcxx-ng: '>=12' + url: https://conda.anaconda.org/conda-forge/linux-64/snappy-1.1.10-h9fff704_0.conda + hash: + md5: e6d228cd0bb74a51dd18f5bfce0b4115 + sha256: 02219f2382b4fe39250627dade087a4412d811936a5a445636b7260477164eac + category: main + optional: false +- name: xz + version: 5.2.6 + manager: conda + platform: linux-64 + dependencies: + libgcc-ng: '>=12' + url: https://conda.anaconda.org/conda-forge/linux-64/xz-5.2.6-h166bdaf_0.tar.bz2 + hash: + md5: 2161070d867d1b1204ea749c8eec4ef0 + sha256: 03a6d28ded42af8a347345f82f3eebdd6807a08526d47899a42d62d319609162 + category: main + optional: false +- name: yaml + version: 0.2.5 + manager: conda + platform: linux-64 + dependencies: + libgcc-ng: '>=9.4.0' + url: https://conda.anaconda.org/conda-forge/linux-64/yaml-0.2.5-h7f98852_2.tar.bz2 + hash: + md5: 4cb3ad778ec2d5a7acbdf254eb1c42ae + sha256: a4e34c710eeb26945bdbdaba82d3d74f60a78f54a874ec10d373811a5d217535 + category: main + optional: false +- name: expat + version: 2.5.0 + manager: conda + platform: linux-64 + dependencies: + libexpat: 2.5.0 + libgcc-ng: '>=12' + url: https://conda.anaconda.org/conda-forge/linux-64/expat-2.5.0-hcb278e6_1.conda + hash: + md5: 8b9b5aca60558d02ddaa09d599e55920 + sha256: 36dfeb4375059b3bba75ce9b38c29c69fd257342a79e6cf20e9f25c1523f785f + category: main + optional: false +- name: hdf4 + version: 4.2.15 + manager: conda + platform: linux-64 + dependencies: + libgcc-ng: '>=12' + libjpeg-turbo: '>=3.0.0,<4.0a0' + libstdcxx-ng: '>=12' + libzlib: '>=1.2.13,<1.3.0a0' + url: https://conda.anaconda.org/conda-forge/linux-64/hdf4-4.2.15-h2a13503_7.conda + hash: + md5: bd77f8da987968ec3927990495dc22e4 + sha256: 0d09b6dc1ce5c4005ae1c6a19dc10767932ef9a5e9c755cfdbb5189ac8fb0684 + category: main + optional: false +- name: libedit + version: 3.1.20191231 + manager: conda + platform: linux-64 + dependencies: + libgcc-ng: '>=7.5.0' + ncurses: '>=6.2,<7.0.0a0' + url: https://conda.anaconda.org/conda-forge/linux-64/libedit-3.1.20191231-he28a2e2_2.tar.bz2 + hash: + md5: 4d331e44109e3f0e19b4cb8f9b82f3e1 + sha256: a57d37c236d8f7c886e01656f4949d9dcca131d2a0728609c6f7fa338b65f1cf + category: main + optional: false +- name: libgfortran-ng + version: 13.2.0 + manager: conda + platform: linux-64 + dependencies: + libgfortran5: 13.2.0 + url: https://conda.anaconda.org/conda-forge/linux-64/libgfortran-ng-13.2.0-h69a702a_2.conda + hash: + md5: e75a75a6eaf6f318dae2631158c46575 + sha256: 767d71999e5386210fe2acaf1b67073e7943c2af538efa85c101e3401e94ff62 + category: main + optional: false +- name: libnghttp2 + version: 1.52.0 + manager: conda + platform: linux-64 + dependencies: + c-ares: '>=1.18.1,<2.0a0' + libev: '>=4.33,<4.34.0a0' + libgcc-ng: '>=12' + libstdcxx-ng: '>=12' + libzlib: '>=1.2.13,<1.3.0a0' + openssl: '>=3.0.8,<4.0a0' + url: https://conda.anaconda.org/conda-forge/linux-64/libnghttp2-1.52.0-h61bc06f_0.conda + hash: + md5: 613955a50485812985c059e7b269f42e + sha256: ecd6b08c2b5abe7d1586428c4dd257dcfa00ee53700d79cdc8bca098fdfbd79a + category: main + optional: false +- name: libsqlite + version: 3.43.0 + manager: conda + platform: linux-64 + dependencies: + libgcc-ng: '>=12' + libzlib: '>=1.2.13,<1.3.0a0' + url: https://conda.anaconda.org/conda-forge/linux-64/libsqlite-3.43.0-h2797004_0.conda + hash: + md5: 903fa782a9067d5934210df6d79220f6 + sha256: e715fab7ec6b3f3df2a5962ef372ff0f871d215fe819482dcd80357999513652 + category: main + optional: false +- name: libssh2 + version: 1.11.0 + manager: conda + platform: linux-64 + dependencies: + libgcc-ng: '>=12' + libzlib: '>=1.2.13,<1.3.0a0' + openssl: '>=3.1.1,<4.0a0' + url: https://conda.anaconda.org/conda-forge/linux-64/libssh2-1.11.0-h0841786_0.conda + hash: + md5: 1f5a58e686b13bcfde88b93f547d23fe + sha256: 50e47fd9c4f7bf841a11647ae7486f65220cfc988ec422a4475fe8d5a823824d + category: main + optional: false +- name: libxml2 + version: 2.11.5 + manager: conda + platform: linux-64 + dependencies: + icu: '>=73.2,<74.0a0' + libgcc-ng: '>=12' + 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.5-h232c23b_1.conda + hash: + md5: f3858448893839820d4bcfb14ad3ecdf + sha256: 1b3cb6864de1a558ea5fb144c780121d52507837d15df0600491d8ed92cff90c + category: main + optional: false +- name: libzip + version: 1.10.1 + manager: conda + platform: linux-64 + dependencies: + bzip2: '>=1.0.8,<2.0a0' + libgcc-ng: '>=12' + libzlib: '>=1.2.13,<1.3.0a0' + openssl: '>=3.1.2,<4.0a0' + url: https://conda.anaconda.org/conda-forge/linux-64/libzip-1.10.1-h2629f0a_3.conda + hash: + md5: ac79812548e7e8cf61f7b0abdef01d3b + sha256: 84e93f189072dcfcbe77744f19c7e4171523fbecfaba7352e5a23bbe014574c7 + category: main + optional: false +- name: pcre2 + version: '10.40' + manager: conda + platform: linux-64 + dependencies: + bzip2: '>=1.0.8,<2.0a0' + libgcc-ng: '>=12' + libzlib: '>=1.2.12,<1.3.0a0' + url: https://conda.anaconda.org/conda-forge/linux-64/pcre2-10.40-hc3806b6_0.tar.bz2 + hash: + md5: 69e2c796349cd9b273890bee0febfe1b + sha256: 7a29ec847556eed4faa1646010baae371ced69059a4ade43851367a076d6108a + category: main + optional: false +- name: readline + version: '8.2' + manager: conda + platform: linux-64 + dependencies: + libgcc-ng: '>=12' + ncurses: '>=6.3,<7.0a0' + url: https://conda.anaconda.org/conda-forge/linux-64/readline-8.2-h8228510_1.conda + hash: + md5: 47d31b792659ce70f470b5c82fdfb7a4 + sha256: 5435cf39d039387fbdc977b0a762357ea909a7694d9528ab40f005e9208744d7 + category: main + optional: false +- name: tk + version: 8.6.13 + manager: conda + platform: linux-64 + dependencies: + libgcc-ng: '>=12' + libzlib: '>=1.2.13,<1.3.0a0' + url: https://conda.anaconda.org/conda-forge/linux-64/tk-8.6.13-h2797004_0.conda + hash: + md5: 513336054f884f95d9fd925748f41ef3 + sha256: 679e944eb93fde45d0963a22598fafacbb429bb9e7ee26009ba81c4e0c435055 + category: main + optional: false +- name: zlib + version: 1.2.13 + manager: conda + platform: linux-64 + dependencies: + libgcc-ng: '>=12' + libzlib: 1.2.13 + url: https://conda.anaconda.org/conda-forge/linux-64/zlib-1.2.13-hd590300_5.conda + hash: + md5: 68c34ec6149623be41a1933ab996a209 + sha256: 9887a04d7e7cb14bd2b52fa01858f05a6d7f002c890f618d9fcd864adbfecb1b + category: main + optional: false +- name: zstd + version: 1.5.5 + manager: conda + platform: linux-64 + dependencies: + libgcc-ng: '>=12' + libstdcxx-ng: '>=12' + libzlib: '>=1.2.13,<1.3.0a0' + url: https://conda.anaconda.org/conda-forge/linux-64/zstd-1.5.5-hfc55251_0.conda + hash: + md5: 04b88013080254850d6c01ed54810589 + sha256: 607cbeb1a533be98ba96cf5cdf0ddbb101c78019f1fda063261871dad6248609 + category: main + optional: false +- name: blosc + version: 1.21.5 + manager: conda + platform: linux-64 + dependencies: + libgcc-ng: '>=12' + libstdcxx-ng: '>=12' + libzlib: '>=1.2.13,<1.3.0a0' + lz4-c: '>=1.9.3,<1.10.0a0' + snappy: '>=1.1.10,<2.0a0' + zstd: '>=1.5.5,<1.6.0a0' + url: https://conda.anaconda.org/conda-forge/linux-64/blosc-1.21.5-h0f2a231_0.conda + hash: + md5: 009521b7ed97cca25f8f997f9e745976 + sha256: e2b15b017775d1bda8edbb1bc48e545e45364edefa4d926732fc5488cc600731 + category: main + optional: false +- name: krb5 + version: 1.21.2 + manager: conda + platform: linux-64 + dependencies: + keyutils: '>=1.6.1,<2.0a0' + libedit: '>=3.1.20191231,<4.0a0' + libgcc-ng: '>=12' + libstdcxx-ng: '>=12' + openssl: '>=3.1.2,<4.0a0' + url: https://conda.anaconda.org/conda-forge/linux-64/krb5-1.21.2-h659d440_0.conda + hash: + md5: cd95826dbd331ed1be26bdf401432844 + sha256: 259bfaae731989b252b7d2228c1330ef91b641c9d68ff87dae02cbae682cb3e4 + category: main + optional: false +- name: libglib + version: 2.78.0 + manager: conda + platform: linux-64 + dependencies: + gettext: '>=0.21.1,<1.0a0' + libffi: '>=3.4,<4.0a0' + libgcc-ng: '>=12' + libiconv: '>=1.17,<2.0a0' + libstdcxx-ng: '>=12' + libzlib: '>=1.2.13,<1.3.0a0' + pcre2: '>=10.40,<10.41.0a0' + url: https://conda.anaconda.org/conda-forge/linux-64/libglib-2.78.0-hebfc3b9_0.conda + hash: + md5: e618003da3547216310088478e475945 + sha256: 96ec4dc5e38f434aa5862cb46d74923cce1445de3cd0b9d61e3e63102b163af6 + category: main + optional: false +- name: libopenblas + version: 0.3.24 + manager: conda + platform: linux-64 + dependencies: + libgcc-ng: '>=12' + libgfortran-ng: '' + libgfortran5: '>=12.3.0' + url: https://conda.anaconda.org/conda-forge/linux-64/libopenblas-0.3.24-pthreads_h413a1c8_0.conda + hash: + md5: 6e4ef6ca28655124dcde9bd500e44c32 + sha256: c8e080ae4d57506238023e98869928ae93564e6407ef5b0c4d3a337e8c2b7662 + category: main + optional: false +- name: python + version: 3.10.12 + manager: conda + platform: linux-64 + dependencies: + bzip2: '>=1.0.8,<2.0a0' + ld_impl_linux-64: '>=2.36.1' + libffi: '>=3.4,<4.0a0' + libgcc-ng: '>=12' + libnsl: '>=2.0.0,<2.1.0a0' + libsqlite: '>=3.42.0,<4.0a0' + libuuid: '>=2.38.1,<3.0a0' + libzlib: '>=1.2.13,<1.3.0a0' + ncurses: '>=6.4,<7.0a0' + openssl: '>=3.1.1,<4.0a0' + readline: '>=8.2,<9.0a0' + tk: '>=8.6.12,<8.7.0a0' + tzdata: '' + xz: '>=5.2.6,<6.0a0' + url: https://conda.anaconda.org/conda-forge/linux-64/python-3.10.12-hd12c33a_0_cpython.conda + hash: + md5: eb6f1df105f37daedd6dca78523baa75 + sha256: 05e2a7ce916d259f11979634f770f31027d0a5d18463b094e64a30500f900699 + category: main + optional: false +- name: appdirs + version: 1.4.4 + manager: conda + platform: linux-64 + dependencies: + python: '' + url: https://conda.anaconda.org/conda-forge/noarch/appdirs-1.4.4-pyh9f0ad1d_0.tar.bz2 + hash: + md5: 5f095bc6454094e96f146491fd03633b + sha256: ae9fb8f68281f84482f2c234379aa12405a9e365151d43af20b3ae1f17312111 + category: main + optional: false +- name: backcall + version: 0.2.0 + manager: conda + platform: linux-64 + dependencies: + python: '' + url: https://conda.anaconda.org/conda-forge/noarch/backcall-0.2.0-pyh9f0ad1d_0.tar.bz2 + hash: + md5: 6006a6d08a3fa99268a2681c7fb55213 + sha256: ee62d6434090c1327a48551734e06bd10e65a64ef7f3b6e68719500dab0e42b9 + category: main + optional: false +- name: backports + version: '1.0' + manager: conda + platform: linux-64 + dependencies: + python: '>=2.7' + url: https://conda.anaconda.org/conda-forge/noarch/backports-1.0-pyhd8ed1ab_3.conda + hash: + md5: 54ca2e08b3220c148a1d8329c2678e02 + sha256: 711602276ae39276cb0faaca6fd0ac851fff0ca17151917569174841ef830bbd + category: main + optional: false +- name: brotli-python + version: 1.1.0 + manager: conda + platform: linux-64 + dependencies: + libgcc-ng: '>=12' + libstdcxx-ng: '>=12' + python: '>=3.10,<3.11.0a0' + python_abi: 3.10.* + url: https://conda.anaconda.org/conda-forge/linux-64/brotli-python-1.1.0-py310hc6cd4ac_1.conda + hash: + md5: 1f95722c94f00b69af69a066c7433714 + sha256: e22268d81905338570786921b3def88e55f9ed6d0ccdd17d9fbae31a02fbef69 + category: main + optional: false +- name: cachy + version: 0.3.0 + manager: conda + platform: linux-64 + dependencies: + python: '>=3.6' + url: https://conda.anaconda.org/conda-forge/noarch/cachy-0.3.0-pyhd8ed1ab_1.tar.bz2 + hash: + md5: 5dfee17f24e2dfd18d7392b48c9351e2 + sha256: 9b193a4e483c4d0004bc5b88fac7a02516b6311137ab61b8db85aa9741422e35 + category: main + optional: false +- name: certifi + version: 2023.7.22 + manager: conda + platform: linux-64 + dependencies: + python: '>=3.7' + url: https://conda.anaconda.org/conda-forge/noarch/certifi-2023.7.22-pyhd8ed1ab_0.conda + hash: + md5: 7f3dbc9179b4dde7da98dfb151d0ad22 + sha256: db66e31866ff4250c190788769e3a8a1709237c3e9c38d7143aae95ab75fcb31 + category: main + optional: false +- name: cfgv + version: 3.3.1 + manager: conda + platform: linux-64 + dependencies: + python: '>=3.6.1' + url: https://conda.anaconda.org/conda-forge/noarch/cfgv-3.3.1-pyhd8ed1ab_0.tar.bz2 + hash: + md5: ebb5f5f7dc4f1a3780ef7ea7738db08c + sha256: fbc03537a27ef756162c49b1d0608bf7ab12fa5e38ceb8563d6f4859e835ac5c + category: main + optional: false +- name: charset-normalizer + version: 3.3.0 + manager: conda + platform: linux-64 + dependencies: + python: '>=3.7' + url: https://conda.anaconda.org/conda-forge/noarch/charset-normalizer-3.3.0-pyhd8ed1ab_0.conda + hash: + md5: fef8ef5f0a54546b9efee39468229917 + sha256: 3407cd21af7e85aeb9499c377e7db25d2bbb9cbaf2f47d92626b3471dca65b4c + category: main + optional: false +- name: click + version: 8.1.7 + manager: conda + platform: linux-64 + dependencies: + __unix: '' + python: '>=3.8' + url: https://conda.anaconda.org/conda-forge/noarch/click-8.1.7-unix_pyh707e725_0.conda + hash: + md5: f3ad426304898027fc619827ff428eca + sha256: f0016cbab6ac4138a429e28dbcb904a90305b34b3fe41a9b89d697c90401caec + category: main + optional: false +- name: colorama + version: 0.4.6 + manager: conda + platform: linux-64 + dependencies: + python: '>=3.7' + url: https://conda.anaconda.org/conda-forge/noarch/colorama-0.4.6-pyhd8ed1ab_0.tar.bz2 + hash: + md5: 3faab06a954c2a04039983f2c4a50d99 + sha256: 2c1b2e9755ce3102bca8d69e8f26e4f087ece73f50418186aee7c74bef8e1698 + category: main + optional: false +- name: crashtest + version: 0.4.1 + manager: conda + platform: linux-64 + dependencies: + python: '>=3.6,<4.0' + url: https://conda.anaconda.org/conda-forge/noarch/crashtest-0.4.1-pyhd8ed1ab_0.tar.bz2 + hash: + md5: 709a2295dd907bb34afb57d54320642f + sha256: 2f05954a3faf0700c14c1deddc085385160ee32abe111699c78d9cb277e915cc + category: main + optional: false +- name: dbus + version: 1.13.6 + manager: conda + platform: linux-64 + dependencies: + expat: '>=2.4.2,<3.0a0' + libgcc-ng: '>=9.4.0' + libglib: '>=2.70.2,<3.0a0' + url: https://conda.anaconda.org/conda-forge/linux-64/dbus-1.13.6-h5008d03_3.tar.bz2 + hash: + md5: ecfff944ba3960ecb334b9a2663d708d + sha256: 8f5f995699a2d9dbdd62c61385bfeeb57c82a681a7c8c5313c395aa0ccab68a5 + category: main + optional: false +- name: decorator + version: 5.1.1 + manager: conda + platform: linux-64 + dependencies: + python: '>=3.5' + url: https://conda.anaconda.org/conda-forge/noarch/decorator-5.1.1-pyhd8ed1ab_0.tar.bz2 + hash: + md5: 43afe5ab04e35e17ba28649471dd7364 + sha256: 328a6a379f9bdfd0230e51de291ce858e6479411ea4b0545fb377c71662ef3e2 + category: main + optional: false +- name: distlib + version: 0.3.7 + 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 + hash: + md5: 12d8aae6994f342618443a8f05c652a0 + sha256: 13c887cb4a29e1e853a118cfc0e42b72a7e1d1c50c66c0974885d37f0db30619 + category: main + optional: false +- name: exceptiongroup + version: 1.1.3 + manager: conda + platform: linux-64 + dependencies: + python: '>=3.7' + url: https://conda.anaconda.org/conda-forge/noarch/exceptiongroup-1.1.3-pyhd8ed1ab_0.conda + hash: + md5: e6518222753f519e911e83136d2158d9 + sha256: c28f715e049fe0f09785660bcbffa175ffb438720e5bc5a60d56d4b08364b315 + category: main + optional: false +- name: executing + version: 1.2.0 + manager: conda + platform: linux-64 + dependencies: + python: '>=2.7' + url: https://conda.anaconda.org/conda-forge/noarch/executing-1.2.0-pyhd8ed1ab_0.tar.bz2 + hash: + md5: 4c1bc140e2be5c8ba6e3acab99e25c50 + sha256: 9c03425cd58c474af20e179c9ba121a82984d6c4bfc896bbc992f5ed75dd7539 + category: main + optional: false +- name: filelock + version: 3.12.4 + manager: conda + platform: linux-64 + dependencies: + python: '>=3.7' + url: https://conda.anaconda.org/conda-forge/noarch/filelock-3.12.4-pyhd8ed1ab_0.conda + hash: + md5: 5173d4b8267a0699a43d73231e0b6596 + sha256: 7463c64364c14b34a7a69a7550a880ccd1ec6d3014001e55913e6e4e8b0c7395 + category: main + optional: false +- name: idna + version: '3.4' + manager: conda + platform: linux-64 + dependencies: + python: '>=3.6' + url: https://conda.anaconda.org/conda-forge/noarch/idna-3.4-pyhd8ed1ab_0.tar.bz2 + hash: + md5: 34272b248891bddccc64479f9a7fffed + sha256: 9887c35c374ec1847f167292d3fde023cb4c994a4ceeec283072b95440131f09 + category: main + optional: false +- name: iniconfig + version: 2.0.0 + manager: conda + platform: linux-64 + dependencies: + python: '>=3.7' + url: https://conda.anaconda.org/conda-forge/noarch/iniconfig-2.0.0-pyhd8ed1ab_0.conda + hash: + md5: f800d2da156d08e289b14e87e43c1ae5 + sha256: 38740c939b668b36a50ef455b077e8015b8c9cf89860d421b3fff86048f49666 + category: main + optional: false +- name: jeepney + version: 0.8.0 + manager: conda + platform: linux-64 + dependencies: + python: '>=3.7' + url: https://conda.anaconda.org/conda-forge/noarch/jeepney-0.8.0-pyhd8ed1ab_0.tar.bz2 + hash: + md5: 9800ad1699b42612478755a2d26c722d + sha256: 16639759b811866d63315fe1391f6fb45f5478b823972f4d3d9f0392b7dd80b8 + category: main + optional: false +- name: libblas + version: 3.9.0 + manager: conda + platform: linux-64 + dependencies: + libopenblas: '>=0.3.24,<1.0a0' + url: https://conda.anaconda.org/conda-forge/linux-64/libblas-3.9.0-18_linux64_openblas.conda + hash: + md5: bcddbb497582ece559465b9cd11042e7 + sha256: 92142c12eb42172365c96c865be8f164a2653649b28b23bded0e658f8d5d0815 + category: main + optional: false +- name: libcurl + version: 8.3.0 + manager: conda + platform: linux-64 + dependencies: + krb5: '>=1.21.2,<1.22.0a0' + libgcc-ng: '>=12' + libnghttp2: '>=1.52.0,<2.0a0' + libssh2: '>=1.11.0,<2.0a0' + libzlib: '>=1.2.13,<1.3.0a0' + openssl: '>=3.1.2,<4.0a0' + zstd: '>=1.5.5,<1.6.0a0' + url: https://conda.anaconda.org/conda-forge/linux-64/libcurl-8.3.0-hca28451_0.conda + hash: + md5: 4ab41bee09a2d2e08de5f09d6f1eef62 + sha256: 177b2d2cd552dcb88c0ce74b14512e1a8cd44146645120529e19755eb493232e + category: main + optional: false +- name: loguru + version: 0.7.2 + manager: conda + platform: linux-64 + dependencies: + python: '>=3.10,<3.11.0a0' + python_abi: 3.10.* + url: https://conda.anaconda.org/conda-forge/linux-64/loguru-0.7.2-py310hff52083_1.conda + hash: + md5: 157e6221a079a60c7f6f6fcb87c722aa + sha256: 35319fe904289949e78af080ac05907bb545ecad64bd2eaea95efb8526069ee5 + category: main + optional: false +- name: markupsafe + version: 2.1.3 + manager: conda + platform: linux-64 + dependencies: + libgcc-ng: '>=12' + python: '>=3.10,<3.11.0a0' + python_abi: 3.10.* + url: https://conda.anaconda.org/conda-forge/linux-64/markupsafe-2.1.3-py310h2372a71_1.conda + hash: + md5: b74e07a054c479e45a83a83fc5be713c + sha256: ac46cc2f6d4bbeedcd2f508e43f43143a9286ced55730d8d97a3c91ceceb0d56 + category: main + optional: false +- name: mdurl + version: 0.1.0 + manager: conda + platform: linux-64 + dependencies: + python: '>=3.6' + url: https://conda.anaconda.org/conda-forge/noarch/mdurl-0.1.0-pyhd8ed1ab_0.tar.bz2 + hash: + md5: f8dab71fdc13b1bf29a01248b156d268 + sha256: c678b9194e025b1fb665bec30ee20aab93399203583875b1dcc0a3b52a8f5523 + category: main + optional: false +- name: more-itertools + version: 10.1.0 + manager: conda + platform: linux-64 + dependencies: + python: '>=3.8' + url: https://conda.anaconda.org/conda-forge/noarch/more-itertools-10.1.0-pyhd8ed1ab_0.conda + hash: + md5: 8549fafed0351bbfaa1ddaa15fdf9b4e + sha256: 07ce65497dec537e490992758934ddbc4fb5ed9285b41387a7cca966f1a98a0f + category: main + optional: false +- name: msgpack-python + version: 1.0.6 + manager: conda + platform: linux-64 + dependencies: + libgcc-ng: '>=12' + libstdcxx-ng: '>=12' + python: '>=3.10,<3.11.0a0' + python_abi: 3.10.* + url: https://conda.anaconda.org/conda-forge/linux-64/msgpack-python-1.0.6-py310hd41b1e2_0.conda + hash: + md5: 03255e1437f31f25ad95bb45c8b398bb + sha256: cf37ee99132533005db95b611377d99f3cf4cb6feed494806d53aa7101768cd4 + category: main + optional: false +- name: mypy_extensions + version: 1.0.0 + manager: conda + platform: linux-64 + dependencies: + python: '>=3.5' + url: https://conda.anaconda.org/conda-forge/noarch/mypy_extensions-1.0.0-pyha770c72_0.conda + hash: + md5: 4eccaeba205f0aed9ac3a9ea58568ca3 + sha256: f240217476e148e825420c6bc3a0c0efb08c0718b7042fae960400c02af858a3 + category: main + optional: false +- name: packaging + version: '23.2' + manager: conda + platform: linux-64 + dependencies: + python: '>=3.7' + url: https://conda.anaconda.org/conda-forge/noarch/packaging-23.2-pyhd8ed1ab_0.conda + hash: + md5: 79002079284aa895f883c6b7f3f88fd6 + sha256: 69b3ace6cca2dab9047b2c24926077d81d236bef45329d264b394001e3c3e52f + category: main + optional: false +- name: parso + version: 0.8.3 + manager: conda + platform: linux-64 + dependencies: + python: '>=3.6' + url: https://conda.anaconda.org/conda-forge/noarch/parso-0.8.3-pyhd8ed1ab_0.tar.bz2 + hash: + md5: 17a565a0c3899244e938cdf417e7b094 + sha256: 4e26d5daf5de0e31aa5e74ac56386a361b202433b83f024fdadbf07d4a244da4 + category: main + optional: false +- name: pastel + version: 0.2.1 + manager: conda + platform: linux-64 + dependencies: + python: '>=2.7' + url: https://conda.anaconda.org/conda-forge/noarch/pastel-0.2.1-pyhd8ed1ab_0.tar.bz2 + hash: + md5: a4eea5bff523f26442405bc5d1f52adb + sha256: 9153f0f38c76a09da7688a61fdbf8f3d7504e2326bef53e4ec20d994311b15bd + category: main + optional: false +- name: pickleshare + version: 0.7.5 + manager: conda + platform: linux-64 + dependencies: + python: '>=3' + url: https://conda.anaconda.org/conda-forge/noarch/pickleshare-0.7.5-py_1003.tar.bz2 + hash: + md5: 415f0ebb6198cc2801c73438a9fb5761 + sha256: a1ed1a094dd0d1b94a09ed85c283a0eb28943f2e6f22161fb45e128d35229738 + category: main + optional: false +- name: pkginfo + version: 1.9.6 + manager: conda + platform: linux-64 + dependencies: + python: '>=3.6' + url: https://conda.anaconda.org/conda-forge/noarch/pkginfo-1.9.6-pyhd8ed1ab_0.conda + hash: + md5: be1e9f1c65a1ed0f2ae9352fec99db64 + sha256: 7ea5a5af62a15376d9f4f9f3c134874d0b0710f39be719e849b7fa9ca8870502 + category: main + optional: false +- name: pluggy + version: 1.3.0 + manager: conda + platform: linux-64 + dependencies: + python: '>=3.8' + url: https://conda.anaconda.org/conda-forge/noarch/pluggy-1.3.0-pyhd8ed1ab_0.conda + hash: + md5: 2390bd10bed1f3fdc7a537fb5a447d8d + sha256: 7bf2ad9d747e71f1e93d0863c2c8061dd0f2fe1e582f28d292abfb40264a2eb5 + category: main + optional: false +- name: psutil + version: 5.9.5 + manager: conda + platform: linux-64 + dependencies: + libgcc-ng: '>=12' + python: '>=3.10,<3.11.0a0' + python_abi: 3.10.* + url: https://conda.anaconda.org/conda-forge/linux-64/psutil-5.9.5-py310h2372a71_1.conda + hash: + md5: cb25177acf28cc35cfa6c1ac1c679e22 + sha256: db8a99bc41c1b0405c8e9daa92b9d4e7711f9717aff7fd3feeba407ca2a91aa2 + category: main + optional: false +- name: ptyprocess + version: 0.7.0 + manager: conda + platform: linux-64 + dependencies: + python: '' + url: https://conda.anaconda.org/conda-forge/noarch/ptyprocess-0.7.0-pyhd3deb0d_0.tar.bz2 + hash: + md5: 359eeb6536da0e687af562ed265ec263 + sha256: fb31e006a25eb2e18f3440eb8d17be44c8ccfae559499199f73584566d0a444a + category: main + optional: false +- name: pure_eval + version: 0.2.2 + manager: conda + platform: linux-64 + dependencies: + python: '>=3.5' + url: https://conda.anaconda.org/conda-forge/noarch/pure_eval-0.2.2-pyhd8ed1ab_0.tar.bz2 + hash: + md5: 6784285c7e55cb7212efabc79e4c2883 + sha256: 72792f9fc2b1820e37cc57f84a27bc819c71088c3002ca6db05a2e56404f9d44 + category: main + optional: false +- name: pycparser + version: '2.21' + manager: conda + platform: linux-64 + dependencies: + python: 2.7.*|>=3.4 + url: https://conda.anaconda.org/conda-forge/noarch/pycparser-2.21-pyhd8ed1ab_0.tar.bz2 + hash: + md5: 076becd9e05608f8dc72757d5f3a91ff + sha256: 74c63fd03f1f1ea2b54e8bc529fd1a600aaafb24027b738d0db87909ee3a33dc + category: main + optional: false +- name: pygments + version: 2.16.1 + manager: conda + platform: linux-64 + dependencies: + python: '>=3.7' + url: https://conda.anaconda.org/conda-forge/noarch/pygments-2.16.1-pyhd8ed1ab_0.conda + hash: + md5: 40e5cb18165466773619e5c963f00a7b + sha256: 3f0f0fadc6084960ec8cc00a32a03529c562ffea3b527eb73b1653183daad389 + category: main + optional: false +- name: pylev + version: 1.4.0 + manager: conda + platform: linux-64 + dependencies: + python: '>=3.3' + url: https://conda.anaconda.org/conda-forge/noarch/pylev-1.4.0-pyhd8ed1ab_0.tar.bz2 + hash: + md5: edf8651c4379d9d1495ad6229622d150 + sha256: 50bd91767686bfe769e50a5a1b883e238d944a6163fea43e7c0beaac54ca674f + category: main + optional: false +- name: pysocks + version: 1.7.1 + manager: conda + platform: linux-64 + dependencies: + __unix: '' + python: '>=3.8' + url: https://conda.anaconda.org/conda-forge/noarch/pysocks-1.7.1-pyha2e5f31_6.tar.bz2 + hash: + md5: 2a7de29fb590ca14b5243c4c812c8025 + sha256: a42f826e958a8d22e65b3394f437af7332610e43ee313393d1cf143f0a2d274b + category: main + optional: false +- name: python-tzdata + version: '2023.3' + manager: conda + platform: linux-64 + dependencies: + python: '>=3.6' + url: https://conda.anaconda.org/conda-forge/noarch/python-tzdata-2023.3-pyhd8ed1ab_0.conda + hash: + md5: 2590495f608a63625e165915fb4e2e34 + sha256: 0108888507014fb24573c31e4deceb61c99e63d37776dddcadd7c89b2ecae0b6 + category: main + optional: false +- name: pytz + version: 2023.3.post1 + manager: conda + platform: linux-64 + dependencies: + python: '>=3.6' + url: https://conda.anaconda.org/conda-forge/noarch/pytz-2023.3.post1-pyhd8ed1ab_0.conda + hash: + md5: c93346b446cd08c169d843ae5fc0da97 + sha256: 6b680e63d69aaf087cd43ca765a23838723ef59b0a328799e6363eb13f52c49e + category: main + optional: false +- name: pyyaml + version: 6.0.1 + manager: conda + platform: linux-64 + dependencies: + libgcc-ng: '>=12' + python: '>=3.10,<3.11.0a0' + python_abi: 3.10.* + yaml: '>=0.2.5,<0.3.0a0' + url: https://conda.anaconda.org/conda-forge/linux-64/pyyaml-6.0.1-py310h2372a71_1.conda + hash: + md5: bb010e368de4940771368bc3dc4c63e7 + sha256: aa78ccddb0a75fa722f0f0eb3537c73ee1219c9dd46cea99d6b9eebfdd780f3d + category: main + optional: false +- name: ruamel.yaml.clib + version: 0.2.7 + manager: conda + platform: linux-64 + dependencies: + libgcc-ng: '>=12' + python: '>=3.10,<3.11.0a0' + python_abi: 3.10.* + url: https://conda.anaconda.org/conda-forge/linux-64/ruamel.yaml.clib-0.2.7-py310h2372a71_2.conda + hash: + md5: 7c9da9721ee545d57ad759f020172853 + sha256: 00c76baad0a896f6f259093ec5328ac06cf422e6528745b28ee7e5057f54668f + category: main + optional: false +- name: setuptools + version: 68.2.2 + manager: conda + platform: linux-64 + dependencies: + python: '>=3.7' + url: https://conda.anaconda.org/conda-forge/noarch/setuptools-68.2.2-pyhd8ed1ab_0.conda + hash: + md5: fc2166155db840c634a1291a5c35a709 + sha256: 851901b1f8f2049edb36a675f0c3f9a98e1495ef4eb214761b048c6f696a06f7 + category: main + optional: false +- name: six + version: 1.16.0 + manager: conda + platform: linux-64 + dependencies: + python: '' + url: https://conda.anaconda.org/conda-forge/noarch/six-1.16.0-pyh6c4a22f_0.tar.bz2 + hash: + md5: e5f25f8dbc060e9a8d912e432202afc2 + sha256: a85c38227b446f42c5b90d9b642f2c0567880c15d72492d8da074a59c8f91dd6 + category: main + optional: false +- name: smmap + version: 3.0.5 + manager: conda + platform: linux-64 + dependencies: + python: '' + url: https://conda.anaconda.org/conda-forge/noarch/smmap-3.0.5-pyh44b312d_0.tar.bz2 + hash: + md5: 3a8dc70789709aa315325d5df06fb7e4 + sha256: 091de70ee6bfe063e0c0f77336975d124fd1e3f49b9c58d97c0c7b3d287c0002 + category: main + optional: false +- name: toml + version: 0.10.2 + manager: conda + platform: linux-64 + dependencies: + python: '>=2.7' + url: https://conda.anaconda.org/conda-forge/noarch/toml-0.10.2-pyhd8ed1ab_0.tar.bz2 + hash: + md5: f832c45a477c78bebd107098db465095 + sha256: f0f3d697349d6580e4c2f35ba9ce05c65dc34f9f049e85e45da03800b46139c1 + category: main + optional: false +- name: tomli + version: 2.0.1 + manager: conda + platform: linux-64 + dependencies: + python: '>=3.7' + url: https://conda.anaconda.org/conda-forge/noarch/tomli-2.0.1-pyhd8ed1ab_0.tar.bz2 + hash: + md5: 5844808ffab9ebdb694585b50ba02a96 + sha256: 4cd48aba7cd026d17e86886af48d0d2ebc67ed36f87f6534f4b67138f5a5a58f + category: main + optional: false +- name: tomlkit + version: 0.12.1 + manager: conda + platform: linux-64 + dependencies: + python: '>=3.7' + url: https://conda.anaconda.org/conda-forge/noarch/tomlkit-0.12.1-pyha770c72_0.conda + hash: + md5: 62f5b331c53d73e2f6c4c130b53518a0 + sha256: dc4abf58ca42f29e12b8c0f8aadedfca49cc1e97dab025d15cf000b1787df773 + category: main + optional: false +- name: toolz + version: 0.12.0 + manager: conda + platform: linux-64 + dependencies: + python: '>=3.5' + url: https://conda.anaconda.org/conda-forge/noarch/toolz-0.12.0-pyhd8ed1ab_0.tar.bz2 + hash: + md5: 92facfec94bc02d6ccf42e7173831a36 + sha256: 90229da7665175b0185183ab7b53f50af487c7f9b0f47cf09c184cbc139fd24b + category: main + optional: false +- name: traitlets + version: 5.11.2 + manager: conda + platform: linux-64 + dependencies: + python: '>=3.8' + url: https://conda.anaconda.org/conda-forge/noarch/traitlets-5.11.2-pyhd8ed1ab_0.conda + hash: + md5: bd3f90f7551e1cffb1f402880eb2cef1 + sha256: 81f2675ebc2bd6016c304770c81812aab8947953b0f0cca766077b127cc7e8f1 + category: main + optional: false +- name: typing_extensions + version: 4.8.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 + hash: + md5: 5b1be40a26d10a06f6d4f1f9e19fa0c7 + sha256: 38d16b5c53ec1af845d37d22e7bb0e6c934c7f19499123507c5a470f6f8b7dde + category: main + optional: false +- name: webencodings + version: 0.5.1 + manager: conda + platform: linux-64 + dependencies: + python: '>=2.6' + url: https://conda.anaconda.org/conda-forge/noarch/webencodings-0.5.1-pyhd8ed1ab_2.conda + hash: + md5: daf5160ff9cde3a468556965329085b9 + sha256: 2adf9bd5482802837bc8814cbe28d7b2a4cbd2e2c52e381329eaa283b3ed1944 + category: main + optional: false +- name: zipp + version: 3.17.0 + manager: conda + platform: linux-64 + dependencies: + python: '>=3.8' + url: https://conda.anaconda.org/conda-forge/noarch/zipp-3.17.0-pyhd8ed1ab_0.conda + hash: + md5: 2e4d6bc0b14e10f895fc6791a7d9b26a + sha256: bced1423fdbf77bca0a735187d05d9b9812d2163f60ab426fc10f11f92ecbe26 + category: main + optional: false +- name: asttokens + version: 2.4.0 + manager: conda + platform: linux-64 + dependencies: + python: '>=3.5' + six: '>=1.12.0' + url: https://conda.anaconda.org/conda-forge/noarch/asttokens-2.4.0-pyhd8ed1ab_0.conda + hash: + md5: 056f04e51dd63337e8d7c425c18c86f1 + sha256: e7e91e3fa26abe502be690371893f205d87a82c225668ea6e9a1ba26870388ee + category: main + optional: false +- name: backports.functools_lru_cache + version: 1.6.5 + manager: conda + platform: linux-64 + dependencies: + backports: '' + python: '>=3.6' + setuptools: '' + url: https://conda.anaconda.org/conda-forge/noarch/backports.functools_lru_cache-1.6.5-pyhd8ed1ab_0.conda + hash: + md5: 6b1b907661838a75d067a22f87996b2e + sha256: 7027bb689dd4ca4a08e3b25805de9d04239be6b31125993558f21f102a9d2700 + category: main + optional: false +- name: cffi + version: 1.16.0 + manager: conda + platform: linux-64 + dependencies: + libffi: '>=3.4,<4.0a0' + libgcc-ng: '>=12' + pycparser: '' + python: '>=3.10,<3.11.0a0' + python_abi: 3.10.* + url: https://conda.anaconda.org/conda-forge/linux-64/cffi-1.16.0-py310h2fee648_0.conda + hash: + md5: 45846a970e71ac98fd327da5d40a0a2c + sha256: 007e7f69ab45553b7bf11f2c1b8d3f3a13fd42997266a0d57795f41c7d38df36 + category: main + optional: false +- name: click-default-group + version: 1.2.4 + manager: conda + platform: linux-64 + dependencies: + click: '' + python: '>=2.7' + url: https://conda.anaconda.org/conda-forge/noarch/click-default-group-1.2.4-pyhd8ed1ab_0.conda + hash: + md5: 7c2b6931f9b3548ed78478332095c3e9 + sha256: b36e35d735ddd29d7c592eb3de4b3979e13a9f76f1b4bc939f2cb4402758d6d0 + category: main + optional: false +- name: clikit + version: 0.6.2 + manager: conda + platform: linux-64 + dependencies: + pastel: '>=0.2.0,<0.3.0' + pylev: '>=1.3,<2.0' + python: '>=3.7' + url: https://conda.anaconda.org/conda-forge/noarch/clikit-0.6.2-pyhd8ed1ab_2.conda + hash: + md5: 02abb7b66b02e8b9f5a9b05454400087 + sha256: 2d582bc15d9116ec5467b565fb87d9034c8b56f60943e8eb69407f55f1ab5a78 + category: main + optional: false +- name: gitdb + version: 4.0.10 + manager: conda + platform: linux-64 + dependencies: + python: '>=3.4' + smmap: '>=3.0.1,<4' + url: https://conda.anaconda.org/conda-forge/noarch/gitdb-4.0.10-pyhd8ed1ab_0.conda + hash: + md5: 3706d2f3d7cb5dae600c833345a76132 + sha256: 0003ab2b971913380633c711bf49a54dcf06e179986c725b0925854b58878377 + category: main + optional: false +- name: hdf5 + version: 1.14.2 + manager: conda + platform: linux-64 + dependencies: + libaec: '>=1.0.6,<2.0a0' + libcurl: '>=8.2.1,<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 + hash: + md5: 2de6a9bc8083b49f09b2f6eb28d3ba3c + sha256: f70f18291f912ba019cbb736bb87b6487021154733cd109147a6d9672790b6b8 + category: main + optional: false +- name: html5lib + version: '1.1' + manager: conda + platform: linux-64 + dependencies: + python: '' + six: '>=1.9' + webencodings: '' + url: https://conda.anaconda.org/conda-forge/noarch/html5lib-1.1-pyh9f0ad1d_0.tar.bz2 + hash: + md5: b2355343d6315c892543200231d7154a + sha256: 9ad06446fe9847e86cb20d220bf11614afcd2cbe9f58096f08d5d4018877bee4 + category: main + optional: false +- name: importlib-metadata + version: 6.8.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 + hash: + md5: 4e9f59a060c3be52bc4ddc46ee9b6946 + sha256: 2797ed927d65324309b6c630190d917b9f2111e0c217b721f80429aeb57f9fcf + category: main + optional: false +- name: jaraco.classes + version: 3.3.0 + manager: conda + platform: linux-64 + dependencies: + more-itertools: '' + python: '>=3.7' + url: https://conda.anaconda.org/conda-forge/noarch/jaraco.classes-3.3.0-pyhd8ed1ab_0.conda + hash: + md5: e9f79248d30e942f7c358ff21a1790f5 + sha256: 14f5240c3834e1b784dd41a5a14392d9150dff62a74ae851f73e65d2e2bbd891 + category: main + optional: false +- name: jedi + version: 0.19.1 + manager: conda + platform: linux-64 + dependencies: + parso: '>=0.8.3,<0.9.0' + python: '>=3.6' + url: https://conda.anaconda.org/conda-forge/noarch/jedi-0.19.1-pyhd8ed1ab_0.conda + hash: + md5: 81a3be0b2023e1ea8555781f0ad904a2 + sha256: 362f0936ef37dfd1eaa860190e42a6ebf8faa094eaa3be6aa4d9ace95f40047a + category: main + optional: false +- name: jinja2 + version: 3.1.2 + manager: conda + platform: linux-64 + dependencies: + markupsafe: '>=2.0' + python: '>=3.7' + url: https://conda.anaconda.org/conda-forge/noarch/jinja2-3.1.2-pyhd8ed1ab_1.tar.bz2 + hash: + md5: c8490ed5c70966d232fdd389d0dbed37 + sha256: b045faba7130ab263db6a8fdc96b1a3de5fcf85c4a607c5f11a49e76851500b5 + category: main + optional: false +- name: libcblas + version: 3.9.0 + manager: conda + platform: linux-64 + dependencies: + libblas: 3.9.0 + url: https://conda.anaconda.org/conda-forge/linux-64/libcblas-3.9.0-18_linux64_openblas.conda + hash: + md5: 93dd9ab275ad888ed8113953769af78c + sha256: b5a3eac5a1e14ad7054a19249afeee6536ab8c9fb6d6ddc26e277f5c3b1acce4 + category: main + optional: false +- name: liblapack + version: 3.9.0 + manager: conda + platform: linux-64 + dependencies: + libblas: 3.9.0 + url: https://conda.anaconda.org/conda-forge/linux-64/liblapack-3.9.0-18_linux64_openblas.conda + hash: + md5: a1244707531e5b143c420c70573c8ec5 + sha256: 7b59c9bf8399b34818d36c7bbd30cd447649fe4ff2136d3102bb67da0af67a3a + category: main + optional: false +- name: markdown-it-py + version: 3.0.0 + manager: conda + platform: linux-64 + dependencies: + mdurl: '>=0.1,<1' + python: '>=3.8' + url: https://conda.anaconda.org/conda-forge/noarch/markdown-it-py-3.0.0-pyhd8ed1ab_0.conda + hash: + md5: 93a8e71256479c62074356ef6ebf501b + sha256: c041b0eaf7a6af3344d5dd452815cdc148d6284fec25a4fa3f4263b3a021e962 + category: main + optional: false +- name: matplotlib-inline + version: 0.1.6 + manager: conda + platform: linux-64 + dependencies: + python: '>=3.6' + traitlets: '' + url: https://conda.anaconda.org/conda-forge/noarch/matplotlib-inline-0.1.6-pyhd8ed1ab_0.tar.bz2 + hash: + md5: b21613793fcc81d944c76c9f2864a7de + sha256: aa091b88aec55bfa2d9207028d8cdc689b9efb090ae27b99557e93c675be2f3c + category: main + optional: false +- name: mypy + version: 1.5.1 + manager: conda + platform: linux-64 + dependencies: + libgcc-ng: '>=12' + mypy_extensions: '>=1.0.0' + psutil: '>=4.0' + python: '>=3.10,<3.11.0a0' + python_abi: 3.10.* + tomli: '>=1.1.0' + typing_extensions: '>=4.1.0' + url: https://conda.anaconda.org/conda-forge/linux-64/mypy-1.5.1-py310h2372a71_1.conda + hash: + md5: 84960056ea7ed3d4135bdbcae1b0b95e + sha256: 5361d19d13d5b9cef112ed3f0fc798885b2f15c652b04e6e8cccf0995e53bf23 + category: main + optional: false +- name: nodeenv + version: 1.8.0 + manager: conda + platform: linux-64 + dependencies: + python: 2.7|>=3.7 + setuptools: '' + url: https://conda.anaconda.org/conda-forge/noarch/nodeenv-1.8.0-pyhd8ed1ab_0.conda + hash: + md5: 2a75b296096adabbabadd5e9782e5fcc + sha256: 1320306234552717149f36f825ddc7e27ea295f24829e9db4cc6ceaff0b032bd + category: main + optional: false +- name: pexpect + version: 4.8.0 + manager: conda + platform: linux-64 + dependencies: + ptyprocess: '>=0.5' + python: '' + url: https://conda.anaconda.org/conda-forge/noarch/pexpect-4.8.0-pyh1a96a4e_2.tar.bz2 + hash: + md5: 330448ce4403cc74990ac07c555942a1 + sha256: 07706c0417ead94f359ca7278f65452d3c396448777aba1da6a11fc351bdca9a + category: main + optional: false +- name: pytest + version: 7.4.2 + manager: conda + platform: linux-64 + dependencies: + colorama: '' + exceptiongroup: '>=1.0.0rc8' + iniconfig: '' + packaging: '' + pluggy: '>=0.12,<2.0' + python: '>=3.7' + tomli: '>=1.0.0' + url: https://conda.anaconda.org/conda-forge/noarch/pytest-7.4.2-pyhd8ed1ab_0.conda + hash: + md5: 6dd662ff5ac9a783e5c940ce9f3fe649 + sha256: 150bfb2a86dffd4ce1e91c2d61dde5779fb3ee338675e210fec4ef508ffff28c + category: main + optional: false +- name: python-dateutil + version: 2.8.2 + manager: conda + platform: linux-64 + dependencies: + python: '>=3.6' + six: '>=1.5' + url: https://conda.anaconda.org/conda-forge/noarch/python-dateutil-2.8.2-pyhd8ed1ab_0.tar.bz2 + hash: + md5: dd999d1cc9f79e67dbb855c8924c7984 + sha256: 54d7785c7678166aa45adeaccfc1d2b8c3c799ca2dc05d4a82bb39b1968bd7da + category: main + optional: false +- name: ruamel.yaml + version: 0.17.35 + manager: conda + platform: linux-64 + dependencies: + libgcc-ng: '>=12' + python: '>=3.10,<3.11.0a0' + python_abi: 3.10.* + ruamel.yaml.clib: '>=0.1.2' + setuptools: '' + url: https://conda.anaconda.org/conda-forge/linux-64/ruamel.yaml-0.17.35-py310h2372a71_0.conda + hash: + md5: b44ae5156bd1561aca4430a8176819bb + sha256: b868f3e649d9219da29a55c05c35cf55ab403aef50d400cdaa447631c65c1054 + category: main + optional: false +- name: typing-extensions + version: 4.8.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 + hash: + md5: 384462e63262a527bda564fa2d9126c0 + sha256: d6e1dddd0c372218ef15912383d351ac8c73465cbf16238017f0269813cafe2d + category: main + optional: false +- name: urllib3 + version: 1.26.17 + manager: conda + platform: linux-64 + dependencies: + brotli-python: '>=1.0.9' + pysocks: '>=1.5.6,<2.0,!=1.5.7' + python: '>=3.7' + url: https://conda.anaconda.org/conda-forge/noarch/urllib3-1.26.17-pyhd8ed1ab_0.conda + hash: + md5: 3b94800e11804555e40971c97fd3e801 + sha256: 6fbd62aa5fc060bfada26a0f4ad1dab6709a1fe62b3b04dbed49fcc94663979d + category: main + optional: false +- name: cryptography + version: 41.0.4 + manager: conda + platform: linux-64 + dependencies: + cffi: '>=1.12' + libgcc-ng: '>=12' + openssl: '>=3.1.3,<4.0a0' + python: '>=3.10,<3.11.0a0' + python_abi: 3.10.* + url: https://conda.anaconda.org/conda-forge/linux-64/cryptography-41.0.4-py310h75e40e8_0.conda + hash: + md5: ad06c4db71ba0b6d153c66de88a41fdc + sha256: 62480313c6944b301c7763a667893f31a18e8c16be8bd9528180ef2d5f07e9ad + category: main + optional: false +- name: gitpython + version: 3.1.37 + manager: conda + platform: linux-64 + dependencies: + gitdb: '>=4.0.1,<5' + python: '>=3.7' + typing_extensions: '>=3.7.4.3' + url: https://conda.anaconda.org/conda-forge/noarch/gitpython-3.1.37-pyhd8ed1ab_0.conda + hash: + md5: 8b94c329190fa6814f412adf2ab0f0a2 + sha256: 1993b954fcaea3a3927ad5e6ff0db49855fc07ba77aa42b5b9d8056e52e787a0 + category: main + optional: false +- name: importlib_metadata + version: 6.8.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 + hash: + md5: b279b07ce18058034e5b3606ba103a8b + sha256: b96e01dc42d547d6d9ceb1c5b52a5232cc04e40153534350f702c3e0418a6b3f + category: main + optional: false +- name: libnetcdf + version: 4.9.2 + manager: conda + platform: linux-64 + dependencies: + blosc: '>=1.21.4,<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' + libgcc-ng: '>=12' + libstdcxx-ng: '>=12' + libxml2: '>=2.11.5,<2.12.0a0' + libzip: '>=1.10.1,<2.0a0' + libzlib: '>=1.2.13,<1.3.0a0' + openssl: '>=3.1.2,<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 + hash: + md5: a19fa6cacf80c8a366572853d5890eb4 + sha256: 305ffc3ecaffce10754e4d057daa9803e8dc86d68b14524a791c7dc5598c1d2f + category: main + optional: false +- name: numpy + version: 1.22.4 + manager: conda + platform: linux-64 + dependencies: + libblas: '>=3.8.0,<4.0a0' + libcblas: '>=3.8.0,<4.0a0' + libgcc-ng: '>=12' + liblapack: '>=3.8.0,<4.0a0' + libstdcxx-ng: '>=12' + python: '>=3.10,<3.11.0a0' + python_abi: 3.10.* + url: https://conda.anaconda.org/conda-forge/linux-64/numpy-1.22.4-py310h4ef5377_0.tar.bz2 + hash: + md5: a97b04c2d88d24d4a25fd9c069189281 + sha256: 89452fcd4270c04dd9e861e0e02cbc97d82f2f7d4b55225f8198ddab4287c480 + category: main + optional: false +- name: platformdirs + version: 3.11.0 + manager: conda + platform: linux-64 + dependencies: + python: '>=3.7' + typing-extensions: '>=4.6.3' + url: https://conda.anaconda.org/conda-forge/noarch/platformdirs-3.11.0-pyhd8ed1ab_0.conda + hash: + md5: 8f567c0a74aa44cf732f15773b4083b0 + sha256: b3d809ff5a18ee8514bba8bc05a23b4cdf1758090a18a2cf742af38aed405144 + category: main + optional: false +- name: pydantic + version: 1.10.13 + manager: conda + platform: linux-64 + dependencies: + libgcc-ng: '>=12' + python: '>=3.10,<3.11.0a0' + python_abi: 3.10.* + typing-extensions: '>=4.2.0' + url: https://conda.anaconda.org/conda-forge/linux-64/pydantic-1.10.13-py310h2372a71_0.conda + hash: + md5: 6edffb54180fff667ae67b6eb4429ef3 + sha256: 002b73cca8a619013d7bc46a814083c6d5754c074f96424fd090be7994a71515 + category: main + optional: false +- name: requests + version: 2.31.0 + manager: conda + platform: linux-64 + dependencies: + certifi: '>=2017.4.17' + charset-normalizer: '>=2,<4' + idna: '>=2.5,<4' + python: '>=3.7' + urllib3: '>=1.21.1,<3' + url: https://conda.anaconda.org/conda-forge/noarch/requests-2.31.0-pyhd8ed1ab_0.conda + hash: + md5: a30144e4156cdbb236f99ebb49828f8b + sha256: 9f629d6fd3c8ac5f2a198639fe7af87c4db2ac9235279164bfe0fcb49d8c4bad + category: main + optional: false +- name: rich + version: 13.6.0 + manager: conda + platform: linux-64 + dependencies: + markdown-it-py: '>=2.2.0' + pygments: '>=2.13.0,<3.0.0' + python: '>=3.7.0' + typing_extensions: '>=4.0.0,<5.0.0' + url: https://conda.anaconda.org/conda-forge/noarch/rich-13.6.0-pyhd8ed1ab_0.conda + hash: + md5: 3ca4829f40710f581ca1d76bc907e99f + sha256: a2f8838a75ab8c2c1da0a813c7569d4f6efba0d2b5dc3a7659e2cb6d96bd8e19 + category: main + optional: false +- name: stack_data + version: 0.6.2 + manager: conda + platform: linux-64 + dependencies: + asttokens: '' + executing: '' + pure_eval: '' + python: '>=3.5' + url: https://conda.anaconda.org/conda-forge/noarch/stack_data-0.6.2-pyhd8ed1ab_0.conda + hash: + md5: e7df0fdd404616638df5ece6e69ba7af + sha256: a58433e75229bec39f3be50c02efbe9b7083e53a1f31d8ee247564f370191eec + category: main + optional: false +- name: ukkonen + version: 1.0.1 + manager: conda + platform: linux-64 + dependencies: + cffi: '' + libgcc-ng: '>=12' + libstdcxx-ng: '>=12' + python: '>=3.10,<3.11.0a0' + python_abi: 3.10.* + url: https://conda.anaconda.org/conda-forge/linux-64/ukkonen-1.0.1-py310hd41b1e2_4.conda + hash: + md5: 35e87277fba9944b8a975113538bb5df + sha256: 7bcb662f8d8181d77d77605c6e176a5bc6a421025a8969c6d793fe47134285bd + category: main + optional: false +- name: wcwidth + version: 0.2.8 + manager: conda + platform: linux-64 + dependencies: + backports.functools_lru_cache: '' + python: '>=3.6' + url: https://conda.anaconda.org/conda-forge/noarch/wcwidth-0.2.8-pyhd8ed1ab_0.conda + hash: + md5: 367386d2575a0e62412448eda1012efd + sha256: e3b6d2041b4d175a1437dccc71b4ef2e53111dfcc64b219fef4bed379e6ef236 + category: main + optional: false +- name: cachecontrol + version: 0.13.1 + manager: conda + platform: linux-64 + dependencies: + msgpack-python: '>=0.5.2' + python: '>=3.7' + requests: '>=2.16.0' + url: https://conda.anaconda.org/conda-forge/noarch/cachecontrol-0.13.1-pyhd8ed1ab_0.conda + hash: + md5: 174bd699bb5aa9e2622eb4b288276ff8 + sha256: aae7ab3a54989f9bf9273e4a17c911ba339a8b9354250bc11fb8eff2e3f4be60 + category: main + optional: false +- name: cftime + version: 1.6.2 + manager: conda + platform: linux-64 + dependencies: + libgcc-ng: '>=12' + numpy: '>=1.22.4,<2.0a0' + python: '>=3.10,<3.11.0a0' + python_abi: 3.10.* + url: https://conda.anaconda.org/conda-forge/linux-64/cftime-1.6.2-py310h1f7b6fc_2.conda + hash: + md5: 7925aaa4330045bc32d334b20f446902 + sha256: 182a5e5584167a51625617775a2c641784985a5e769e74e3dd445bd6f1c0e7e1 + category: main + optional: false +- name: ensureconda + version: 1.4.3 + manager: conda + platform: linux-64 + dependencies: + appdirs: '' + click: '>=5.1' + filelock: '' + python: '>=3.7' + requests: '>=2' + url: https://conda.anaconda.org/conda-forge/noarch/ensureconda-1.4.3-pyhd8ed1ab_0.tar.bz2 + hash: + md5: c99ae3abf501990769047b4b40a98f17 + sha256: b71784b6c24d2320b2f796d074e75e7dd1be7b7fc0f719c5cf3a582270b368d6 + category: main + optional: false +- name: identify + version: 2.5.30 + manager: conda + platform: linux-64 + dependencies: + python: '>=3.6' + ukkonen: '' + url: https://conda.anaconda.org/conda-forge/noarch/identify-2.5.30-pyhd8ed1ab_0.conda + hash: + md5: b7a2e3bb89bda8c69839485c20aabadf + sha256: dc9901654af0556209bb5b4194ef2deb643bc641ac859a31f13c41b945b60150 + category: main + optional: false +- name: pandas + version: 2.1.1 + manager: conda + platform: linux-64 + dependencies: + libgcc-ng: '>=12' + libstdcxx-ng: '>=12' + numpy: '>=1.22.4,<2.0a0' + python: '>=3.10,<3.11.0a0' + python-dateutil: '>=2.8.1' + python-tzdata: '>=2022a' + python_abi: 3.10.* + pytz: '>=2020.1' + url: https://conda.anaconda.org/conda-forge/linux-64/pandas-2.1.1-py310hcc13569_1.conda + hash: + md5: a64a2b4907b96d4bf3c9dab59563ab50 + sha256: 2bb10c52a21d2b2a64e1139b521a6233d45b8312e573510da3e878de2658ee81 + category: main + optional: false +- name: prompt-toolkit + version: 3.0.39 + manager: conda + platform: linux-64 + dependencies: + python: '>=3.7' + wcwidth: '' + url: https://conda.anaconda.org/conda-forge/noarch/prompt-toolkit-3.0.39-pyha770c72_0.conda + hash: + md5: a4986c6bb5b0d05a38855b0880a5f425 + sha256: 10e7fdc75d4b85633be6b12a70b857053987127a808caa0f88b2cba4b3ce6359 + category: main + optional: false +- name: rich-click + version: 1.6.1 + manager: conda + platform: linux-64 + dependencies: + click: '>=7,<9' + python: '>=3.7' + rich: '>=10' + url: https://conda.anaconda.org/conda-forge/noarch/rich-click-1.6.1-pyhd8ed1ab_0.conda + hash: + md5: 59a168d82c582248859d8dc8075da6f6 + sha256: ed8ade65e48279dc9caff53230391d8f72bea6d55f6951fbf7fcc39d762e1e5e + category: main + optional: false +- name: scipy + version: 1.11.3 + manager: conda + platform: linux-64 + dependencies: + libblas: '>=3.9.0,<4.0a0' + libcblas: '>=3.9.0,<4.0a0' + libgcc-ng: '>=12' + libgfortran-ng: '' + libgfortran5: '>=12.3.0' + liblapack: '>=3.9.0,<4.0a0' + libstdcxx-ng: '>=12' + numpy: '>=1.22.4,<2.0a0' + python: '>=3.10,<3.11.0a0' + python_abi: 3.10.* + url: https://conda.anaconda.org/conda-forge/linux-64/scipy-1.11.3-py310hb13e2d6_0.conda + hash: + md5: 04976ea8528a0f33cd6c39e2ec73e0c3 + sha256: b0cae2dc94a9e0e97e54a9782136775bbd9afac662143ed660418ae449ad8078 + category: main + optional: false +- name: secretstorage + version: 3.3.3 + manager: conda + platform: linux-64 + dependencies: + cryptography: '' + dbus: '' + jeepney: '>=0.6' + python: '>=3.10,<3.11.0a0' + python_abi: 3.10.* + url: https://conda.anaconda.org/conda-forge/linux-64/secretstorage-3.3.3-py310hff52083_2.conda + hash: + md5: 4ccc40bc490af727cfbf3e7f0289d9bd + sha256: a2b7f56b07b6e95bd05fd47ebe5b2cfc8af70ccd04994623f6508e90d3b5f857 + category: main + optional: false +- name: virtualenv + version: 20.24.4 + manager: conda + platform: linux-64 + dependencies: + distlib: <1,>=0.3.7 + filelock: <4,>=3.12.2 + platformdirs: <4,>=3.9.1 + python: '>=3.8' + url: https://conda.anaconda.org/conda-forge/noarch/virtualenv-20.24.4-pyhd8ed1ab_0.conda + hash: + md5: c3feaf947264a59a125e8c26e98c3c5a + sha256: 85c96449202ca87ec12783d8675b3655b4cd7b7afe49f2dc37d743adb0ed177f + category: main + optional: false +- name: bump-my-version + version: 0.10.0 + manager: conda + platform: linux-64 + dependencies: + click: '' + pydantic: <2.0.0 + python: '>=3.8' + rich: '' + rich-click: '' + tomlkit: '' + url: https://conda.anaconda.org/conda-forge/noarch/bump-my-version-0.10.0-pyhd8ed1ab_0.conda + hash: + md5: d0cfdd7365c03381f3d8c4402a88c50c + sha256: 433cc87b7e1700aaf1ed9fe6f402bfda945409379cafb0d78ed757ca74e364e5 + category: main + optional: false +- name: cachecontrol-with-filecache + version: 0.13.1 + manager: conda + platform: linux-64 + dependencies: + cachecontrol: 0.13.1 + filelock: '>=3.8.0' + python: '>=3.7' + url: https://conda.anaconda.org/conda-forge/noarch/cachecontrol-with-filecache-0.13.1-pyhd8ed1ab_0.conda + hash: + md5: 8c4781ca0893cff3a64423954ce234a1 + sha256: 7fd3cd4a667da284ae3aad9b8cb4d592099bc02ed6566cbae00bd8c0b0604e85 + category: main + optional: false +- name: keyring + version: 24.2.0 + manager: conda + platform: linux-64 + dependencies: + importlib_metadata: '>=4.11.4' + jaraco.classes: '' + jeepney: '>=0.4.2' + python: '>=3.10,<3.11.0a0' + python_abi: 3.10.* + secretstorage: '>=3.2' + url: https://conda.anaconda.org/conda-forge/linux-64/keyring-24.2.0-py310hff52083_1.conda + hash: + md5: 8992b7970e6996fef7fbd3e890d8c552 + sha256: 53b008f165b677b492dfb67bd1459329260ba21338858f20dd3ed6c9a70b3ea7 + category: main + optional: false +- name: netcdf4 + version: 1.6.4 + manager: conda + platform: linux-64 + dependencies: + certifi: '' + cftime: '' + hdf5: '>=1.14.2,<1.14.3.0a0' + libgcc-ng: '>=12' + libnetcdf: '>=4.9.2,<4.9.3.0a0' + libzlib: '>=1.2.13,<1.3.0a0' + numpy: '>=1.22.4,<2.0a0' + python: '>=3.10,<3.11.0a0' + python_abi: 3.10.* + setuptools: '' + url: https://conda.anaconda.org/conda-forge/linux-64/netcdf4-1.6.4-nompi_py310hba70d50_103.conda + hash: + md5: 0850d2a119d51601b20c406a4909af4d + sha256: 43dd515bc3ba60d9c7ecf21639803c56af967901086f38c919ff7c67271474f6 + category: main + optional: false +- name: pre-commit + version: 3.4.0 + manager: conda + platform: linux-64 + dependencies: + cfgv: '>=2.0.0' + identify: '>=1.0.0' + nodeenv: '>=0.11.1' + python: '>=3.8' + pyyaml: '>=5.1' + virtualenv: '>=20.10.0' + url: https://conda.anaconda.org/conda-forge/noarch/pre-commit-3.4.0-pyha770c72_2.conda + hash: + md5: 09cd3006f61e7a7054405f81362e0a5f + sha256: b4ffac42cec8a6c38c528d7c0c5023557ea97b581dbe61bb290d8e630a246e1b + category: main + optional: false +- name: prompt_toolkit + version: 3.0.39 + manager: conda + platform: linux-64 + dependencies: + prompt-toolkit: '>=3.0.39,<3.0.40.0a0' + url: https://conda.anaconda.org/conda-forge/noarch/prompt_toolkit-3.0.39-hd8ed1ab_0.conda + hash: + md5: 4bbbe67d5df19db30f04b8e344dc9976 + sha256: 89f7fecc7355181dbc2ab851e668a2fce6aa4830b336a34c93b59bda93206270 + category: main + optional: false +- name: xarray + version: 2023.9.0 + manager: conda + platform: linux-64 + dependencies: + numpy: '>=1.21' + packaging: '>=21.3' + pandas: '>=1.4' + python: '>=3.9' + url: https://conda.anaconda.org/conda-forge/noarch/xarray-2023.9.0-pyhd8ed1ab_0.conda + hash: + md5: 158c89bbc0f2597f33e8ce1aea59e0ee + sha256: fd86c6b5da4469df74aec93d8dbc8c8903377a81d7c245a14745b38b70799803 + category: main + optional: false +- name: conda-lock + version: 2.3.0 + manager: conda + platform: linux-64 + dependencies: + cachecontrol-with-filecache: '>=0.12.9' + cachy: '>=0.3.0' + click: '>=8.0' + click-default-group: '' + clikit: '>=0.6.2' + crashtest: '>=0.3.0' + ensureconda: '>=1.3' + gitpython: '>=3.1.30' + html5lib: '>=1.0' + jinja2: '' + keyring: '>=21.2.0' + packaging: '>=20.4' + pkginfo: '>=1.4' + pydantic: '>=1.10' + python: '>=3.8' + pyyaml: '>=5.1' + requests: '>=2.18' + ruamel.yaml: '' + tomli: '' + tomlkit: '>=0.7.0' + toolz: '>=0.12.0,<1.0.0' + typing_extensions: '' + urllib3: '>=1.26.5,<2.0' + virtualenv: '>=20.0.26' + url: https://conda.anaconda.org/conda-forge/noarch/conda-lock-2.3.0-pyhd8ed1ab_0.conda + hash: + md5: 559bd2e1ad6f260cd4f2fd7d7b21bcca + sha256: b48875bb18c507895d5bd732746e44bbed8f56be66fc933bfe7e1af1bc845fe6 + category: main + optional: false +- name: ipython + version: 8.16.1 + manager: conda + platform: linux-64 + dependencies: + __linux: '' + backcall: '' + decorator: '' + exceptiongroup: '' + jedi: '>=0.16' + matplotlib-inline: '' + pexpect: '>4.3' + pickleshare: '' + prompt_toolkit: '>=3.0.30,<3.1.0,!=3.0.37' + pygments: '>=2.4.0' + python: '>=3.9' + stack_data: '' + traitlets: '>=5' + typing_extensions: '' + url: https://conda.anaconda.org/conda-forge/noarch/ipython-8.16.1-pyh0d859eb_0.conda + hash: + md5: 7e52cb0dbf01b90365bfe433ec8bd3c0 + sha256: 2dc119746ddac02cb01644ae7c7ac54a296366e2edf0d178f50f833113aaf94a + category: main + optional: false +- name: ipdb + version: 0.13.13 + manager: conda + platform: linux-64 + dependencies: + decorator: '' + ipython: '' + python: '>=2.7' + toml: '>=0.10.2' + url: https://conda.anaconda.org/conda-forge/noarch/ipdb-0.13.13-pyhd8ed1ab_0.conda + hash: + md5: 86baea403007ad4898d85c897c80b758 + sha256: 16ea279fae5b3b77a694bf7bc8bcda9c310be39d6fbf78664d3111bcd5f5758a + category: main + optional: false +- name: bzip2 + version: 1.0.8 + manager: conda + platform: osx-64 + dependencies: {} + url: https://conda.anaconda.org/conda-forge/osx-64/bzip2-1.0.8-h0d85af4_4.tar.bz2 + hash: + md5: 37edc4e6304ca87316e160f5ca0bd1b5 + sha256: 60ba4c64f5d0afca0d283c7addba577d3e2efc0db86002808dadb0498661b2f2 + category: main + optional: false +- name: c-ares + version: 1.19.1 + manager: conda + platform: osx-64 + dependencies: {} + url: https://conda.anaconda.org/conda-forge/osx-64/c-ares-1.19.1-h0dc2134_0.conda + hash: + md5: b3e62631b4e1b9801477523ce1d6f355 + sha256: 1de09d540facc3833e3f0a280ae987859f310f535726eff66d6f4a66045bd32c + category: main + optional: false +- name: ca-certificates + version: 2023.7.22 + manager: conda + platform: osx-64 + dependencies: {} + url: https://conda.anaconda.org/conda-forge/osx-64/ca-certificates-2023.7.22-h8857fd0_0.conda + hash: + md5: bf2c54c18997bf3542af074c10191771 + sha256: 27de15e18a12117e83ac1eb8a8e52eb65731cc7f0b607a7922206a15e2460c7b + category: main + optional: false +- name: icu + version: '73.2' + manager: conda + platform: osx-64 + dependencies: {} + url: https://conda.anaconda.org/conda-forge/osx-64/icu-73.2-hf5e326d_0.conda + hash: + md5: 5cc301d759ec03f28328428e28f65591 + sha256: f66362dc36178ac9b7c7a9b012948a9d2d050b3debec24bbd94aadbc44854185 + category: main + optional: false +- name: libcxx + version: 16.0.6 + manager: conda + platform: osx-64 + dependencies: {} + url: https://conda.anaconda.org/conda-forge/osx-64/libcxx-16.0.6-hd57cbcb_0.conda + hash: + md5: 7d6972792161077908b62971802f289a + sha256: 9063271847cf05f3a6cc6cae3e7f0ced032ab5f3a3c9d3f943f876f39c5c2549 + category: main + optional: false +- name: libev + version: '4.33' + manager: conda + platform: osx-64 + dependencies: {} + url: https://conda.anaconda.org/conda-forge/osx-64/libev-4.33-haf1e3a3_1.tar.bz2 + hash: + md5: 79dc2be110b2a3d1e97ec21f691c50ad + sha256: c4154d424431898d84d6afb8b32e3ba749fe5d270d322bb0af74571a3cb09c6b + category: main + optional: false +- name: libffi + version: 3.4.2 + manager: conda + platform: osx-64 + dependencies: {} + url: https://conda.anaconda.org/conda-forge/osx-64/libffi-3.4.2-h0d85af4_5.tar.bz2 + hash: + md5: ccb34fb14960ad8b125962d3d79b31a9 + sha256: 7a2d27a936ceee6942ea4d397f9c7d136f12549d86f7617e8b6bad51e01a941f + category: main + optional: false +- name: libiconv + version: '1.17' + manager: conda + platform: osx-64 + dependencies: {} + url: https://conda.anaconda.org/conda-forge/osx-64/libiconv-1.17-hac89ed1_0.tar.bz2 + hash: + md5: 691d103d11180486154af49c037b7ed9 + sha256: 4a3294037d595754f7da7c11a41f3922f995aaa333f3cb66f02d8afa032a7bc2 + category: main + optional: false +- name: libjpeg-turbo + version: 3.0.0 + manager: conda + platform: osx-64 + dependencies: {} + url: https://conda.anaconda.org/conda-forge/osx-64/libjpeg-turbo-3.0.0-h0dc2134_1.conda + hash: + md5: 72507f8e3961bc968af17435060b6dd6 + sha256: d9572fd1024adc374aae7c247d0f29fdf4b122f1e3586fe62acc18067f40d02f + category: main + optional: false +- name: libzlib + version: 1.2.13 + manager: conda + platform: osx-64 + dependencies: {} + url: https://conda.anaconda.org/conda-forge/osx-64/libzlib-1.2.13-h8a1eda9_5.conda + hash: + md5: 4a3ad23f6e16f99c04e166767193d700 + sha256: fc58ad7f47ffea10df1f2165369978fba0a1cc32594aad778f5eec725f334867 + category: main + optional: false +- name: llvm-openmp + version: 16.0.6 + manager: conda + platform: osx-64 + dependencies: {} + url: https://conda.anaconda.org/conda-forge/osx-64/llvm-openmp-16.0.6-hff08bdf_0.conda + hash: + md5: 39a5227d906f75102bf8586741690128 + sha256: 0fbcf1c9e15dbb22d337063550ebcadbeb96b2a012e633f80255c8c720e4f832 + category: main + optional: false +- name: ncurses + version: '6.4' + manager: conda + platform: osx-64 + dependencies: {} + url: https://conda.anaconda.org/conda-forge/osx-64/ncurses-6.4-hf0c8a7f_0.conda + hash: + md5: c3dbae2411164d9b02c69090a9a91857 + sha256: 7841b1fce1ffb0bfb038f9687b92f04d64acab1f7cb96431972386ea98c7b2fd + category: main + optional: false +- name: python_abi + version: '3.10' + manager: conda + platform: osx-64 + dependencies: {} + url: https://conda.anaconda.org/conda-forge/osx-64/python_abi-3.10-4_cp310.conda + hash: + md5: b15c816c5a86abcc4d1458dd63aa4c65 + sha256: abc26b3b5a62f9c8112a2303d24b0c590d5f7fc9470521f5a520472d59c2223e + category: main + optional: false +- name: tzdata + version: 2023c + manager: conda + platform: osx-64 + dependencies: {} + url: https://conda.anaconda.org/conda-forge/noarch/tzdata-2023c-h71feb2d_0.conda + hash: + md5: 939e3e74d8be4dac89ce83b20de2492a + sha256: 0449138224adfa125b220154408419ec37c06b0b49f63c5954724325903ecf55 + category: main + optional: false +- name: xz + version: 5.2.6 + manager: conda + platform: osx-64 + dependencies: {} + url: https://conda.anaconda.org/conda-forge/osx-64/xz-5.2.6-h775f41a_0.tar.bz2 + hash: + md5: a72f9d4ea13d55d745ff1ed594747f10 + sha256: eb09823f34cc2dd663c0ec4ab13f246f45dcd52e5b8c47b9864361de5204a1c8 + category: main + optional: false +- name: yaml + version: 0.2.5 + manager: conda + platform: osx-64 + dependencies: {} + url: https://conda.anaconda.org/conda-forge/osx-64/yaml-0.2.5-h0d85af4_2.tar.bz2 + hash: + md5: d7e08fcf8259d742156188e8762b4d20 + sha256: 5301417e2c8dea45b401ffee8df3957d2447d4ce80c83c5ff151fc6bfe1c4148 + category: main + optional: false +- name: hdf4 + version: 4.2.15 + manager: conda + platform: osx-64 + dependencies: + libcxx: '>=15.0.7' + libjpeg-turbo: '>=3.0.0,<4.0a0' + libzlib: '>=1.2.13,<1.3.0a0' + url: https://conda.anaconda.org/conda-forge/osx-64/hdf4-4.2.15-h8138101_7.conda + hash: + md5: 7ce543bf38dbfae0de9af112ee178af2 + sha256: 8c767cc71226e9eb62649c903c68ba73c5f5e7e3696ec0319d1f90586cebec7d + category: main + optional: false +- name: libaec + version: 1.1.1 + manager: conda + platform: osx-64 + dependencies: + libcxx: '>=15.0.7' + url: https://conda.anaconda.org/conda-forge/osx-64/libaec-1.1.1-he965462_0.conda + hash: + md5: 9ad370b604494a7b817603cb747314df + sha256: 623901a881d03b3410baec1a49f016db1bd586230204ace31b9f11b083a7347d + category: main + optional: false +- name: libedit + version: 3.1.20191231 + manager: conda + platform: osx-64 + dependencies: + ncurses: '>=6.2,<7.0.0a0' + url: https://conda.anaconda.org/conda-forge/osx-64/libedit-3.1.20191231-h0678c8f_2.tar.bz2 + hash: + md5: 6016a8a1d0e63cac3de2c352cd40208b + sha256: dbd3c3f2eca1d21c52e4c03b21930bbce414c4592f8ce805801575b9e9256095 + category: main + optional: false +- name: libgfortran5 + version: 13.2.0 + manager: conda + platform: osx-64 + dependencies: + llvm-openmp: '>=8.0.0' + url: https://conda.anaconda.org/conda-forge/osx-64/libgfortran5-13.2.0-h2873a65_1.conda + hash: + md5: 3af564516b5163cd8cc08820413854bc + sha256: 44de8930eef3b14d4d9fdfe419e6c909c13b7c859617d3616d5a5e964f3fcf63 + category: main + optional: false +- name: libsqlite + version: 3.43.0 + manager: conda + platform: osx-64 + dependencies: + libzlib: '>=1.2.13,<1.3.0a0' + url: https://conda.anaconda.org/conda-forge/osx-64/libsqlite-3.43.0-h58db7d2_0.conda + hash: + md5: e2195038e85e49e26fbeb7efc0ad38c4 + sha256: 3c3e06284c3426126901891675d09e181c651b2db01df9884da2613015e3fbac + category: main + optional: false +- name: libxml2 + version: 2.11.5 + manager: conda + platform: osx-64 + dependencies: + icu: '>=73.2,<74.0a0' + 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/osx-64/libxml2-2.11.5-h3346baf_1.conda + hash: + md5: 7584dee6af7de378aed0ae49aebedb8a + sha256: d901fab32e57a43c44e630fb1c4d0a163d23b109eecd6c68b9ee371800760bca + category: main + optional: false +- name: lz4-c + version: 1.9.4 + manager: conda + platform: osx-64 + dependencies: + libcxx: '>=14.0.6' + url: https://conda.anaconda.org/conda-forge/osx-64/lz4-c-1.9.4-hf0c8a7f_0.conda + hash: + md5: aa04f7143228308662696ac24023f991 + sha256: 39aa0c01696e4e202bf5e337413de09dfeec061d89acd5f28e9968b4e93c3f48 + category: main + optional: false +- name: openssl + version: 3.1.3 + manager: conda + platform: osx-64 + dependencies: + ca-certificates: '' + url: https://conda.anaconda.org/conda-forge/osx-64/openssl-3.1.3-h8a1eda9_0.conda + hash: + md5: 26f9b58f905547e658e9587f8e8cfe43 + sha256: 69731ce62d4b68e538af559747da53f837ae0bbca519b38f2eea28680eb9e8d1 + category: main + optional: false +- name: readline + version: '8.2' + manager: conda + platform: osx-64 + dependencies: + ncurses: '>=6.3,<7.0a0' + url: https://conda.anaconda.org/conda-forge/osx-64/readline-8.2-h9e318b2_1.conda + hash: + md5: f17f77f2acf4d344734bda76829ce14e + sha256: 41e7d30a097d9b060037f0c6a2b1d4c4ae7e942c06c943d23f9d481548478568 + category: main + optional: false +- name: snappy + version: 1.1.10 + manager: conda + platform: osx-64 + dependencies: + libcxx: '>=14.0.6' + url: https://conda.anaconda.org/conda-forge/osx-64/snappy-1.1.10-h225ccf5_0.conda + hash: + md5: 4320a8781f14cd959689b86e349f3b73 + sha256: 575915dc13152e446a84e2f88de70a14f8b6af1a870e708f9370bd4be105583b + category: main + optional: false +- name: tk + version: 8.6.13 + manager: conda + platform: osx-64 + dependencies: + libzlib: '>=1.2.13,<1.3.0a0' + url: https://conda.anaconda.org/conda-forge/osx-64/tk-8.6.13-hef22860_0.conda + hash: + md5: 0c25eedcc888b6d765948ab62a18c03e + sha256: 573e5d7dde0a63b06ceef2c574295cbc2ec8668ec08e35d2f2c6220f4aa7fb98 + category: main + optional: false +- name: zlib + version: 1.2.13 + manager: conda + platform: osx-64 + dependencies: + libzlib: 1.2.13 + url: https://conda.anaconda.org/conda-forge/osx-64/zlib-1.2.13-h8a1eda9_5.conda + hash: + md5: 75a8a98b1c4671c5d2897975731da42d + sha256: d1f4c82fd7bd240a78ce8905e931e68dca5f523c7da237b6b63c87d5625c5b35 + category: main + optional: false +- name: zstd + version: 1.5.5 + manager: conda + platform: osx-64 + dependencies: + libzlib: '>=1.2.13,<1.3.0a0' + url: https://conda.anaconda.org/conda-forge/osx-64/zstd-1.5.5-h829000d_0.conda + hash: + md5: 80abc41d0c48b82fe0f04e7f42f5cb7e + sha256: d54e31d3d8de5e254c0804abd984807b8ae5cd3708d758a8bf1adff1f5df166c + category: main + optional: false +- name: blosc + version: 1.21.5 + manager: conda + platform: osx-64 + dependencies: + libcxx: '>=15.0.7' + libzlib: '>=1.2.13,<1.3.0a0' + lz4-c: '>=1.9.3,<1.10.0a0' + snappy: '>=1.1.10,<2.0a0' + zstd: '>=1.5.5,<1.6.0a0' + url: https://conda.anaconda.org/conda-forge/osx-64/blosc-1.21.5-heccf04b_0.conda + hash: + md5: 3003fa6dd18769db1a616982dcee5b40 + sha256: db629047f1721d5a6e3bd41b07c1a3bacd0dee70f4063b61db2aa46f19a0b8b4 + category: main + optional: false +- name: krb5 + version: 1.21.2 + manager: conda + platform: osx-64 + dependencies: + libcxx: '>=15.0.7' + libedit: '>=3.1.20191231,<4.0a0' + openssl: '>=3.1.2,<4.0a0' + url: https://conda.anaconda.org/conda-forge/osx-64/krb5-1.21.2-hb884880_0.conda + hash: + md5: 80505a68783f01dc8d7308c075261b2f + sha256: 081ae2008a21edf57c048f331a17c65d1ccb52d6ca2f87ee031a73eff4dc0fc6 + category: main + optional: false +- name: libgfortran + version: 5.0.0 + manager: conda + platform: osx-64 + dependencies: + libgfortran5: 13.2.0 + url: https://conda.anaconda.org/conda-forge/osx-64/libgfortran-5.0.0-13_2_0_h97931a8_1.conda + hash: + md5: b55fd11ab6318a6e67ac191309701d5a + sha256: 5be1a59316e5063f4e6492ea86d692600a7b8e32caa25269f8a3b386a028e5f3 + category: main + optional: false +- name: libnghttp2 + version: 1.52.0 + manager: conda + platform: osx-64 + dependencies: + c-ares: '>=1.18.1,<2.0a0' + libcxx: '>=14.0.6' + libev: '>=4.33,<4.34.0a0' + libzlib: '>=1.2.13,<1.3.0a0' + openssl: '>=3.0.8,<4.0a0' + url: https://conda.anaconda.org/conda-forge/osx-64/libnghttp2-1.52.0-he2ab024_0.conda + hash: + md5: 12ac7d100bf260263e30a019517f42a2 + sha256: 093e4f3f62b3b07befa403e84a1f550cffe3b3961e435d42a75284f44be5f68a + category: main + optional: false +- name: libssh2 + version: 1.11.0 + manager: conda + platform: osx-64 + dependencies: + libzlib: '>=1.2.13,<1.3.0a0' + openssl: '>=3.1.1,<4.0a0' + url: https://conda.anaconda.org/conda-forge/osx-64/libssh2-1.11.0-hd019ec5_0.conda + hash: + md5: ca3a72efba692c59a90d4b9fc0dfe774 + sha256: f3886763b88f4b24265db6036535ef77b7b77ce91b1cbe588c0fbdd861eec515 + category: main + optional: false +- name: libzip + version: 1.10.1 + manager: conda + platform: osx-64 + dependencies: + bzip2: '>=1.0.8,<2.0a0' + libzlib: '>=1.2.13,<1.3.0a0' + openssl: '>=3.1.2,<4.0a0' + url: https://conda.anaconda.org/conda-forge/osx-64/libzip-1.10.1-hc158999_3.conda + hash: + md5: 6112b3173f3aa2f12a8f40d07a77cc35 + sha256: 0689e4a6e67e80027e43eefb8a365273405a01f5ab2ece97319155b8be5d64f6 + category: main + optional: false +- name: python + version: 3.10.12 + manager: conda + platform: osx-64 + dependencies: + bzip2: '>=1.0.8,<2.0a0' + libffi: '>=3.4,<4.0a0' + libsqlite: '>=3.42.0,<4.0a0' + libzlib: '>=1.2.13,<1.3.0a0' + ncurses: '>=6.4,<7.0a0' + openssl: '>=3.1.1,<4.0a0' + readline: '>=8.2,<9.0a0' + tk: '>=8.6.12,<8.7.0a0' + tzdata: '' + xz: '>=5.2.6,<6.0a0' + url: https://conda.anaconda.org/conda-forge/osx-64/python-3.10.12-had23ca6_0_cpython.conda + hash: + md5: 351b8aa0687f3510620cf06ad11229f4 + sha256: cbf1b9cf9bdba639675a1431a053f3f2babb73ca6b4329cf72dcf9cd45a29cc8 + category: main + optional: false +- name: appdirs + version: 1.4.4 + manager: conda + platform: osx-64 + dependencies: + python: '' + url: https://conda.anaconda.org/conda-forge/noarch/appdirs-1.4.4-pyh9f0ad1d_0.tar.bz2 + hash: + md5: 5f095bc6454094e96f146491fd03633b + sha256: ae9fb8f68281f84482f2c234379aa12405a9e365151d43af20b3ae1f17312111 + category: main + optional: false +- name: appnope + version: 0.1.3 + manager: conda + platform: osx-64 + dependencies: + python: '>=2.7' + url: https://conda.anaconda.org/conda-forge/noarch/appnope-0.1.3-pyhd8ed1ab_0.tar.bz2 + hash: + md5: 54ac328d703bff191256ffa1183126d1 + sha256: b209a68ac55eb9ecad7042f0d4eedef5da924699f6cdf54ac1826869cfdae742 + category: main + optional: false +- name: backcall + version: 0.2.0 + manager: conda + platform: osx-64 + dependencies: + python: '' + url: https://conda.anaconda.org/conda-forge/noarch/backcall-0.2.0-pyh9f0ad1d_0.tar.bz2 + hash: + md5: 6006a6d08a3fa99268a2681c7fb55213 + sha256: ee62d6434090c1327a48551734e06bd10e65a64ef7f3b6e68719500dab0e42b9 + category: main + optional: false +- name: backports + version: '1.0' + manager: conda + platform: osx-64 + dependencies: + python: '>=2.7' + url: https://conda.anaconda.org/conda-forge/noarch/backports-1.0-pyhd8ed1ab_3.conda + hash: + md5: 54ca2e08b3220c148a1d8329c2678e02 + sha256: 711602276ae39276cb0faaca6fd0ac851fff0ca17151917569174841ef830bbd + category: main + optional: false +- name: brotli-python + version: 1.1.0 + manager: conda + platform: osx-64 + dependencies: + libcxx: '>=15.0.7' + python: '>=3.10,<3.11.0a0' + python_abi: 3.10.* + url: https://conda.anaconda.org/conda-forge/osx-64/brotli-python-1.1.0-py310h9e9d8ca_1.conda + hash: + md5: 2362e323293e7699cf1e621d502f86d6 + sha256: 57d66ca3e072b889c94cfaf56eb7e1794d3b1b3179bd475a4edef50a03359354 + category: main + optional: false +- name: cachy + version: 0.3.0 + manager: conda + platform: osx-64 + dependencies: + python: '>=3.6' + url: https://conda.anaconda.org/conda-forge/noarch/cachy-0.3.0-pyhd8ed1ab_1.tar.bz2 + hash: + md5: 5dfee17f24e2dfd18d7392b48c9351e2 + sha256: 9b193a4e483c4d0004bc5b88fac7a02516b6311137ab61b8db85aa9741422e35 + category: main + optional: false +- name: certifi + version: 2023.7.22 + manager: conda + platform: osx-64 + dependencies: + python: '>=3.7' + url: https://conda.anaconda.org/conda-forge/noarch/certifi-2023.7.22-pyhd8ed1ab_0.conda + hash: + md5: 7f3dbc9179b4dde7da98dfb151d0ad22 + sha256: db66e31866ff4250c190788769e3a8a1709237c3e9c38d7143aae95ab75fcb31 + category: main + optional: false +- name: cfgv + version: 3.3.1 + manager: conda + platform: osx-64 + dependencies: + python: '>=3.6.1' + url: https://conda.anaconda.org/conda-forge/noarch/cfgv-3.3.1-pyhd8ed1ab_0.tar.bz2 + hash: + md5: ebb5f5f7dc4f1a3780ef7ea7738db08c + sha256: fbc03537a27ef756162c49b1d0608bf7ab12fa5e38ceb8563d6f4859e835ac5c + category: main + optional: false +- name: charset-normalizer + version: 3.3.0 + manager: conda + platform: osx-64 + dependencies: + python: '>=3.7' + url: https://conda.anaconda.org/conda-forge/noarch/charset-normalizer-3.3.0-pyhd8ed1ab_0.conda + hash: + md5: fef8ef5f0a54546b9efee39468229917 + sha256: 3407cd21af7e85aeb9499c377e7db25d2bbb9cbaf2f47d92626b3471dca65b4c + category: main + optional: false +- name: click + version: 8.1.7 + manager: conda + platform: osx-64 + dependencies: + __unix: '' + python: '>=3.8' + url: https://conda.anaconda.org/conda-forge/noarch/click-8.1.7-unix_pyh707e725_0.conda + hash: + md5: f3ad426304898027fc619827ff428eca + sha256: f0016cbab6ac4138a429e28dbcb904a90305b34b3fe41a9b89d697c90401caec + category: main + optional: false +- name: colorama + version: 0.4.6 + manager: conda + platform: osx-64 + dependencies: + python: '>=3.7' + url: https://conda.anaconda.org/conda-forge/noarch/colorama-0.4.6-pyhd8ed1ab_0.tar.bz2 + hash: + md5: 3faab06a954c2a04039983f2c4a50d99 + sha256: 2c1b2e9755ce3102bca8d69e8f26e4f087ece73f50418186aee7c74bef8e1698 + category: main + optional: false +- name: crashtest + version: 0.4.1 + manager: conda + platform: osx-64 + dependencies: + python: '>=3.6,<4.0' + url: https://conda.anaconda.org/conda-forge/noarch/crashtest-0.4.1-pyhd8ed1ab_0.tar.bz2 + hash: + md5: 709a2295dd907bb34afb57d54320642f + sha256: 2f05954a3faf0700c14c1deddc085385160ee32abe111699c78d9cb277e915cc + category: main + optional: false +- name: decorator + version: 5.1.1 + manager: conda + platform: osx-64 + dependencies: + python: '>=3.5' + url: https://conda.anaconda.org/conda-forge/noarch/decorator-5.1.1-pyhd8ed1ab_0.tar.bz2 + hash: + md5: 43afe5ab04e35e17ba28649471dd7364 + sha256: 328a6a379f9bdfd0230e51de291ce858e6479411ea4b0545fb377c71662ef3e2 + category: main + optional: false +- name: distlib + version: 0.3.7 + manager: conda + platform: osx-64 + dependencies: + python: 2.7|>=3.6 + url: https://conda.anaconda.org/conda-forge/noarch/distlib-0.3.7-pyhd8ed1ab_0.conda + hash: + md5: 12d8aae6994f342618443a8f05c652a0 + sha256: 13c887cb4a29e1e853a118cfc0e42b72a7e1d1c50c66c0974885d37f0db30619 + category: main + optional: false +- name: exceptiongroup + version: 1.1.3 + manager: conda + platform: osx-64 + dependencies: + python: '>=3.7' + url: https://conda.anaconda.org/conda-forge/noarch/exceptiongroup-1.1.3-pyhd8ed1ab_0.conda + hash: + md5: e6518222753f519e911e83136d2158d9 + sha256: c28f715e049fe0f09785660bcbffa175ffb438720e5bc5a60d56d4b08364b315 + category: main + optional: false +- name: executing + version: 1.2.0 + manager: conda + platform: osx-64 + dependencies: + python: '>=2.7' + url: https://conda.anaconda.org/conda-forge/noarch/executing-1.2.0-pyhd8ed1ab_0.tar.bz2 + hash: + md5: 4c1bc140e2be5c8ba6e3acab99e25c50 + sha256: 9c03425cd58c474af20e179c9ba121a82984d6c4bfc896bbc992f5ed75dd7539 + category: main + optional: false +- name: filelock + version: 3.12.4 + manager: conda + platform: osx-64 + dependencies: + python: '>=3.7' + url: https://conda.anaconda.org/conda-forge/noarch/filelock-3.12.4-pyhd8ed1ab_0.conda + hash: + md5: 5173d4b8267a0699a43d73231e0b6596 + sha256: 7463c64364c14b34a7a69a7550a880ccd1ec6d3014001e55913e6e4e8b0c7395 + category: main + optional: false +- name: idna + version: '3.4' + manager: conda + platform: osx-64 + dependencies: + python: '>=3.6' + url: https://conda.anaconda.org/conda-forge/noarch/idna-3.4-pyhd8ed1ab_0.tar.bz2 + hash: + md5: 34272b248891bddccc64479f9a7fffed + sha256: 9887c35c374ec1847f167292d3fde023cb4c994a4ceeec283072b95440131f09 + category: main + optional: false +- name: iniconfig + version: 2.0.0 + manager: conda + platform: osx-64 + dependencies: + python: '>=3.7' + url: https://conda.anaconda.org/conda-forge/noarch/iniconfig-2.0.0-pyhd8ed1ab_0.conda + hash: + md5: f800d2da156d08e289b14e87e43c1ae5 + sha256: 38740c939b668b36a50ef455b077e8015b8c9cf89860d421b3fff86048f49666 + category: main + optional: false +- name: libcurl + version: 8.3.0 + manager: conda + platform: osx-64 + dependencies: + krb5: '>=1.21.2,<1.22.0a0' + libnghttp2: '>=1.52.0,<2.0a0' + libssh2: '>=1.11.0,<2.0a0' + libzlib: '>=1.2.13,<1.3.0a0' + openssl: '>=3.1.2,<4.0a0' + zstd: '>=1.5.5,<1.6.0a0' + url: https://conda.anaconda.org/conda-forge/osx-64/libcurl-8.3.0-h5f667d7_0.conda + hash: + md5: ec1ea8499d8ef2599ffb230b7a97a9bd + sha256: ffff8ac8d1a3671a22ba22fc75f7a5668ae47e80ceef97e1d29050d7d43c41ad + category: main + optional: false +- name: libopenblas + version: 0.3.24 + manager: conda + platform: osx-64 + dependencies: + libgfortran: 5.* + libgfortran5: '>=12.3.0' + llvm-openmp: '>=15.0.7' + url: https://conda.anaconda.org/conda-forge/osx-64/libopenblas-0.3.24-openmp_h48a4ad5_0.conda + hash: + md5: 077718837dd06cf0c3089070108869f6 + sha256: ff2c14f7ed121f1df3ad06bea353288eade77c12fb891212a27af88a61483490 + category: main + optional: false +- name: loguru + version: 0.7.2 + manager: conda + platform: osx-64 + dependencies: + python: '>=3.10,<3.11.0a0' + python_abi: 3.10.* + url: https://conda.anaconda.org/conda-forge/osx-64/loguru-0.7.2-py310h2ec42d9_1.conda + hash: + md5: 1576065733663baad4e8f89054991db4 + sha256: 4d37c891d266c01f36ea59e3d3fa29cb869c0486cfc9a6b611024b00040f92ea + category: main + optional: false +- name: markupsafe + version: 2.1.3 + manager: conda + platform: osx-64 + dependencies: + python: '>=3.10,<3.11.0a0' + python_abi: 3.10.* + url: https://conda.anaconda.org/conda-forge/osx-64/markupsafe-2.1.3-py310h6729b98_1.conda + hash: + md5: 000b20b3974452969efe63f980b69e33 + sha256: 62076b034a92959d25a1321a4340745ff87b5d191b3fcfef607b746daeb845c5 + category: main + optional: false +- name: mdurl + version: 0.1.0 + manager: conda + platform: osx-64 + dependencies: + python: '>=3.6' + url: https://conda.anaconda.org/conda-forge/noarch/mdurl-0.1.0-pyhd8ed1ab_0.tar.bz2 + hash: + md5: f8dab71fdc13b1bf29a01248b156d268 + sha256: c678b9194e025b1fb665bec30ee20aab93399203583875b1dcc0a3b52a8f5523 + category: main + optional: false +- name: more-itertools + version: 10.1.0 + manager: conda + platform: osx-64 + dependencies: + python: '>=3.8' + url: https://conda.anaconda.org/conda-forge/noarch/more-itertools-10.1.0-pyhd8ed1ab_0.conda + hash: + md5: 8549fafed0351bbfaa1ddaa15fdf9b4e + sha256: 07ce65497dec537e490992758934ddbc4fb5ed9285b41387a7cca966f1a98a0f + category: main + optional: false +- name: msgpack-python + version: 1.0.6 + manager: conda + platform: osx-64 + dependencies: + libcxx: '>=15.0.7' + python: '>=3.10,<3.11.0a0' + python_abi: 3.10.* + url: https://conda.anaconda.org/conda-forge/osx-64/msgpack-python-1.0.6-py310h88cfcbd_0.conda + hash: + md5: 9c6130d5cf10a5da29633a8e625bbc71 + sha256: 159bbd6836834f33376b9f1ae0f001a48e93adcb01c14dc3ddd736a28eb87003 + category: main + optional: false +- name: mypy_extensions + version: 1.0.0 + manager: conda + platform: osx-64 + dependencies: + python: '>=3.5' + url: https://conda.anaconda.org/conda-forge/noarch/mypy_extensions-1.0.0-pyha770c72_0.conda + hash: + md5: 4eccaeba205f0aed9ac3a9ea58568ca3 + sha256: f240217476e148e825420c6bc3a0c0efb08c0718b7042fae960400c02af858a3 + category: main + optional: false +- name: packaging + version: '23.2' + manager: conda + platform: osx-64 + dependencies: + python: '>=3.7' + url: https://conda.anaconda.org/conda-forge/noarch/packaging-23.2-pyhd8ed1ab_0.conda + hash: + md5: 79002079284aa895f883c6b7f3f88fd6 + sha256: 69b3ace6cca2dab9047b2c24926077d81d236bef45329d264b394001e3c3e52f + category: main + optional: false +- name: parso + version: 0.8.3 + manager: conda + platform: osx-64 + dependencies: + python: '>=3.6' + url: https://conda.anaconda.org/conda-forge/noarch/parso-0.8.3-pyhd8ed1ab_0.tar.bz2 + hash: + md5: 17a565a0c3899244e938cdf417e7b094 + sha256: 4e26d5daf5de0e31aa5e74ac56386a361b202433b83f024fdadbf07d4a244da4 + category: main + optional: false +- name: pastel + version: 0.2.1 + manager: conda + platform: osx-64 + dependencies: + python: '>=2.7' + url: https://conda.anaconda.org/conda-forge/noarch/pastel-0.2.1-pyhd8ed1ab_0.tar.bz2 + hash: + md5: a4eea5bff523f26442405bc5d1f52adb + sha256: 9153f0f38c76a09da7688a61fdbf8f3d7504e2326bef53e4ec20d994311b15bd + category: main + optional: false +- name: pickleshare + version: 0.7.5 + manager: conda + platform: osx-64 + dependencies: + python: '>=3' + url: https://conda.anaconda.org/conda-forge/noarch/pickleshare-0.7.5-py_1003.tar.bz2 + hash: + md5: 415f0ebb6198cc2801c73438a9fb5761 + sha256: a1ed1a094dd0d1b94a09ed85c283a0eb28943f2e6f22161fb45e128d35229738 + category: main + optional: false +- name: pkginfo + version: 1.9.6 + manager: conda + platform: osx-64 + dependencies: + python: '>=3.6' + url: https://conda.anaconda.org/conda-forge/noarch/pkginfo-1.9.6-pyhd8ed1ab_0.conda + hash: + md5: be1e9f1c65a1ed0f2ae9352fec99db64 + sha256: 7ea5a5af62a15376d9f4f9f3c134874d0b0710f39be719e849b7fa9ca8870502 + category: main + optional: false +- name: pluggy + version: 1.3.0 + manager: conda + platform: osx-64 + dependencies: + python: '>=3.8' + url: https://conda.anaconda.org/conda-forge/noarch/pluggy-1.3.0-pyhd8ed1ab_0.conda + hash: + md5: 2390bd10bed1f3fdc7a537fb5a447d8d + sha256: 7bf2ad9d747e71f1e93d0863c2c8061dd0f2fe1e582f28d292abfb40264a2eb5 + category: main + optional: false +- name: psutil + version: 5.9.5 + manager: conda + platform: osx-64 + dependencies: + python: '>=3.10,<3.11.0a0' + python_abi: 3.10.* + url: https://conda.anaconda.org/conda-forge/osx-64/psutil-5.9.5-py310h6729b98_1.conda + hash: + md5: 941f32dc5bd1a725fbd4fd54aec75ed1 + sha256: dc0079bc5833de86578da4d27ca7e44921a01e2da3cbb624922d2bcbc6b95876 + category: main + optional: false +- name: ptyprocess + version: 0.7.0 + manager: conda + platform: osx-64 + dependencies: + python: '' + url: https://conda.anaconda.org/conda-forge/noarch/ptyprocess-0.7.0-pyhd3deb0d_0.tar.bz2 + hash: + md5: 359eeb6536da0e687af562ed265ec263 + sha256: fb31e006a25eb2e18f3440eb8d17be44c8ccfae559499199f73584566d0a444a + category: main + optional: false +- name: pure_eval + version: 0.2.2 + manager: conda + platform: osx-64 + dependencies: + python: '>=3.5' + url: https://conda.anaconda.org/conda-forge/noarch/pure_eval-0.2.2-pyhd8ed1ab_0.tar.bz2 + hash: + md5: 6784285c7e55cb7212efabc79e4c2883 + sha256: 72792f9fc2b1820e37cc57f84a27bc819c71088c3002ca6db05a2e56404f9d44 + category: main + optional: false +- name: pycparser + version: '2.21' + manager: conda + platform: osx-64 + dependencies: + python: 2.7.*|>=3.4 + url: https://conda.anaconda.org/conda-forge/noarch/pycparser-2.21-pyhd8ed1ab_0.tar.bz2 + hash: + md5: 076becd9e05608f8dc72757d5f3a91ff + sha256: 74c63fd03f1f1ea2b54e8bc529fd1a600aaafb24027b738d0db87909ee3a33dc + category: main + optional: false +- name: pygments + version: 2.16.1 + manager: conda + platform: osx-64 + dependencies: + python: '>=3.7' + url: https://conda.anaconda.org/conda-forge/noarch/pygments-2.16.1-pyhd8ed1ab_0.conda + hash: + md5: 40e5cb18165466773619e5c963f00a7b + sha256: 3f0f0fadc6084960ec8cc00a32a03529c562ffea3b527eb73b1653183daad389 + category: main + optional: false +- name: pylev + version: 1.4.0 + manager: conda + platform: osx-64 + dependencies: + python: '>=3.3' + url: https://conda.anaconda.org/conda-forge/noarch/pylev-1.4.0-pyhd8ed1ab_0.tar.bz2 + hash: + md5: edf8651c4379d9d1495ad6229622d150 + sha256: 50bd91767686bfe769e50a5a1b883e238d944a6163fea43e7c0beaac54ca674f + category: main + optional: false +- name: pysocks + version: 1.7.1 + manager: conda + platform: osx-64 + dependencies: + __unix: '' + python: '>=3.8' + url: https://conda.anaconda.org/conda-forge/noarch/pysocks-1.7.1-pyha2e5f31_6.tar.bz2 + hash: + md5: 2a7de29fb590ca14b5243c4c812c8025 + sha256: a42f826e958a8d22e65b3394f437af7332610e43ee313393d1cf143f0a2d274b + category: main + optional: false +- name: python-tzdata + version: '2023.3' + manager: conda + platform: osx-64 + dependencies: + python: '>=3.6' + url: https://conda.anaconda.org/conda-forge/noarch/python-tzdata-2023.3-pyhd8ed1ab_0.conda + hash: + md5: 2590495f608a63625e165915fb4e2e34 + sha256: 0108888507014fb24573c31e4deceb61c99e63d37776dddcadd7c89b2ecae0b6 + category: main + optional: false +- name: pytz + version: 2023.3.post1 + manager: conda + platform: osx-64 + dependencies: + python: '>=3.6' + url: https://conda.anaconda.org/conda-forge/noarch/pytz-2023.3.post1-pyhd8ed1ab_0.conda + hash: + md5: c93346b446cd08c169d843ae5fc0da97 + sha256: 6b680e63d69aaf087cd43ca765a23838723ef59b0a328799e6363eb13f52c49e + category: main + optional: false +- name: pyyaml + version: 6.0.1 + manager: conda + platform: osx-64 + dependencies: + python: '>=3.10,<3.11.0a0' + python_abi: 3.10.* + yaml: '>=0.2.5,<0.3.0a0' + url: https://conda.anaconda.org/conda-forge/osx-64/pyyaml-6.0.1-py310h6729b98_1.conda + hash: + md5: d964cec3e7972e44bc4a328134b9eaf1 + sha256: 00567f2cb2d1c8fede8fe7727f7bbd1c38cbca886814d612e162d5c936d8db1b + category: main + optional: false +- name: ruamel.yaml.clib + version: 0.2.7 + manager: conda + platform: osx-64 + dependencies: + python: '>=3.10,<3.11.0a0' + python_abi: 3.10.* + url: https://conda.anaconda.org/conda-forge/osx-64/ruamel.yaml.clib-0.2.7-py310h6729b98_2.conda + hash: + md5: 5493ca636a0054f099e8be2a9938ecf5 + sha256: a16f67a575c85eaa431af3956c54bc7558c0bc33157a43f94aed038344471da8 + category: main + optional: false +- name: setuptools + version: 68.2.2 + manager: conda + platform: osx-64 + dependencies: + python: '>=3.7' + url: https://conda.anaconda.org/conda-forge/noarch/setuptools-68.2.2-pyhd8ed1ab_0.conda + hash: + md5: fc2166155db840c634a1291a5c35a709 + sha256: 851901b1f8f2049edb36a675f0c3f9a98e1495ef4eb214761b048c6f696a06f7 + category: main + optional: false +- name: six + version: 1.16.0 + manager: conda + platform: osx-64 + dependencies: + python: '' + url: https://conda.anaconda.org/conda-forge/noarch/six-1.16.0-pyh6c4a22f_0.tar.bz2 + hash: + md5: e5f25f8dbc060e9a8d912e432202afc2 + sha256: a85c38227b446f42c5b90d9b642f2c0567880c15d72492d8da074a59c8f91dd6 + category: main + optional: false +- name: smmap + version: 3.0.5 + manager: conda + platform: osx-64 + dependencies: + python: '' + url: https://conda.anaconda.org/conda-forge/noarch/smmap-3.0.5-pyh44b312d_0.tar.bz2 + hash: + md5: 3a8dc70789709aa315325d5df06fb7e4 + sha256: 091de70ee6bfe063e0c0f77336975d124fd1e3f49b9c58d97c0c7b3d287c0002 + category: main + optional: false +- name: toml + version: 0.10.2 + manager: conda + platform: osx-64 + dependencies: + python: '>=2.7' + url: https://conda.anaconda.org/conda-forge/noarch/toml-0.10.2-pyhd8ed1ab_0.tar.bz2 + hash: + md5: f832c45a477c78bebd107098db465095 + sha256: f0f3d697349d6580e4c2f35ba9ce05c65dc34f9f049e85e45da03800b46139c1 + category: main + optional: false +- name: tomli + version: 2.0.1 + manager: conda + platform: osx-64 + dependencies: + python: '>=3.7' + url: https://conda.anaconda.org/conda-forge/noarch/tomli-2.0.1-pyhd8ed1ab_0.tar.bz2 + hash: + md5: 5844808ffab9ebdb694585b50ba02a96 + sha256: 4cd48aba7cd026d17e86886af48d0d2ebc67ed36f87f6534f4b67138f5a5a58f + category: main + optional: false +- name: tomlkit + version: 0.12.1 + manager: conda + platform: osx-64 + dependencies: + python: '>=3.7' + url: https://conda.anaconda.org/conda-forge/noarch/tomlkit-0.12.1-pyha770c72_0.conda + hash: + md5: 62f5b331c53d73e2f6c4c130b53518a0 + sha256: dc4abf58ca42f29e12b8c0f8aadedfca49cc1e97dab025d15cf000b1787df773 + category: main + optional: false +- name: toolz + version: 0.12.0 + manager: conda + platform: osx-64 + dependencies: + python: '>=3.5' + url: https://conda.anaconda.org/conda-forge/noarch/toolz-0.12.0-pyhd8ed1ab_0.tar.bz2 + hash: + md5: 92facfec94bc02d6ccf42e7173831a36 + sha256: 90229da7665175b0185183ab7b53f50af487c7f9b0f47cf09c184cbc139fd24b + category: main + optional: false +- name: traitlets + version: 5.11.2 + manager: conda + platform: osx-64 + dependencies: + python: '>=3.8' + url: https://conda.anaconda.org/conda-forge/noarch/traitlets-5.11.2-pyhd8ed1ab_0.conda + hash: + md5: bd3f90f7551e1cffb1f402880eb2cef1 + sha256: 81f2675ebc2bd6016c304770c81812aab8947953b0f0cca766077b127cc7e8f1 + category: main + optional: false +- name: typing_extensions + version: 4.8.0 + manager: conda + platform: osx-64 + dependencies: + python: '>=3.8' + url: https://conda.anaconda.org/conda-forge/noarch/typing_extensions-4.8.0-pyha770c72_0.conda + hash: + md5: 5b1be40a26d10a06f6d4f1f9e19fa0c7 + sha256: 38d16b5c53ec1af845d37d22e7bb0e6c934c7f19499123507c5a470f6f8b7dde + category: main + optional: false +- name: webencodings + version: 0.5.1 + manager: conda + platform: osx-64 + dependencies: + python: '>=2.6' + url: https://conda.anaconda.org/conda-forge/noarch/webencodings-0.5.1-pyhd8ed1ab_2.conda + hash: + md5: daf5160ff9cde3a468556965329085b9 + sha256: 2adf9bd5482802837bc8814cbe28d7b2a4cbd2e2c52e381329eaa283b3ed1944 + category: main + optional: false +- name: zipp + version: 3.17.0 + manager: conda + platform: osx-64 + dependencies: + python: '>=3.8' + url: https://conda.anaconda.org/conda-forge/noarch/zipp-3.17.0-pyhd8ed1ab_0.conda + hash: + md5: 2e4d6bc0b14e10f895fc6791a7d9b26a + sha256: bced1423fdbf77bca0a735187d05d9b9812d2163f60ab426fc10f11f92ecbe26 + category: main + optional: false +- name: asttokens + version: 2.4.0 + manager: conda + platform: osx-64 + dependencies: + python: '>=3.5' + six: '>=1.12.0' + url: https://conda.anaconda.org/conda-forge/noarch/asttokens-2.4.0-pyhd8ed1ab_0.conda + hash: + md5: 056f04e51dd63337e8d7c425c18c86f1 + sha256: e7e91e3fa26abe502be690371893f205d87a82c225668ea6e9a1ba26870388ee + category: main + optional: false +- name: backports.functools_lru_cache + version: 1.6.5 + manager: conda + platform: osx-64 + dependencies: + setuptools: '' + backports: '' + python: '>=3.6' + url: https://conda.anaconda.org/conda-forge/noarch/backports.functools_lru_cache-1.6.5-pyhd8ed1ab_0.conda + hash: + md5: 6b1b907661838a75d067a22f87996b2e + sha256: 7027bb689dd4ca4a08e3b25805de9d04239be6b31125993558f21f102a9d2700 + category: main + optional: false +- name: cffi + version: 1.16.0 + manager: conda + platform: osx-64 + dependencies: + libffi: '>=3.4,<4.0a0' + pycparser: '' + python: '>=3.10,<3.11.0a0' + python_abi: 3.10.* + url: https://conda.anaconda.org/conda-forge/osx-64/cffi-1.16.0-py310hdca579f_0.conda + hash: + md5: b9e6213f0eb91f40c009ce69139c1869 + sha256: 37802485964f1a3137ed6ab21ebc08fe9d35e7dc4da39f2b72a814644dd1ac15 + category: main + optional: false +- name: click-default-group + version: 1.2.4 + manager: conda + platform: osx-64 + dependencies: + click: '' + python: '>=2.7' + url: https://conda.anaconda.org/conda-forge/noarch/click-default-group-1.2.4-pyhd8ed1ab_0.conda + hash: + md5: 7c2b6931f9b3548ed78478332095c3e9 + sha256: b36e35d735ddd29d7c592eb3de4b3979e13a9f76f1b4bc939f2cb4402758d6d0 + category: main + optional: false +- name: clikit + version: 0.6.2 + manager: conda + platform: osx-64 + dependencies: + python: '>=3.7' + pylev: '>=1.3,<2.0' + pastel: '>=0.2.0,<0.3.0' + url: https://conda.anaconda.org/conda-forge/noarch/clikit-0.6.2-pyhd8ed1ab_2.conda + hash: + md5: 02abb7b66b02e8b9f5a9b05454400087 + sha256: 2d582bc15d9116ec5467b565fb87d9034c8b56f60943e8eb69407f55f1ab5a78 + category: main + optional: false +- name: gitdb + version: 4.0.10 + manager: conda + platform: osx-64 + dependencies: + python: '>=3.4' + smmap: '>=3.0.1,<4' + url: https://conda.anaconda.org/conda-forge/noarch/gitdb-4.0.10-pyhd8ed1ab_0.conda + hash: + md5: 3706d2f3d7cb5dae600c833345a76132 + sha256: 0003ab2b971913380633c711bf49a54dcf06e179986c725b0925854b58878377 + category: main + optional: false +- name: hdf5 + version: 1.14.2 + manager: conda + platform: osx-64 + dependencies: + libaec: '>=1.0.6,<2.0a0' + libcurl: '>=8.2.1,<9.0a0' + libcxx: '>=15.0.7' + libgfortran: 5.* + libgfortran5: '>=12.3.0' + libzlib: '>=1.2.13,<1.3.0a0' + openssl: '>=3.1.2,<4.0a0' + url: https://conda.anaconda.org/conda-forge/osx-64/hdf5-1.14.2-nompi_hedada53_100.conda + hash: + md5: 2b1d4f355b60eb10c5cb435b9f0e664f + sha256: 08ab97d63ab4be60c92d3f5931effc565ae6ee0cd686eba81b9d20daf5f181ff + category: main + optional: false +- name: html5lib + version: '1.1' + manager: conda + platform: osx-64 + dependencies: + python: '' + webencodings: '' + six: '>=1.9' + url: https://conda.anaconda.org/conda-forge/noarch/html5lib-1.1-pyh9f0ad1d_0.tar.bz2 + hash: + md5: b2355343d6315c892543200231d7154a + sha256: 9ad06446fe9847e86cb20d220bf11614afcd2cbe9f58096f08d5d4018877bee4 + category: main + optional: false +- name: importlib-metadata + version: 6.8.0 + manager: conda + platform: osx-64 + dependencies: + python: '>=3.8' + zipp: '>=0.5' + url: https://conda.anaconda.org/conda-forge/noarch/importlib-metadata-6.8.0-pyha770c72_0.conda + hash: + md5: 4e9f59a060c3be52bc4ddc46ee9b6946 + sha256: 2797ed927d65324309b6c630190d917b9f2111e0c217b721f80429aeb57f9fcf + category: main + optional: false +- name: jaraco.classes + version: 3.3.0 + manager: conda + platform: osx-64 + dependencies: + more-itertools: '' + python: '>=3.7' + url: https://conda.anaconda.org/conda-forge/noarch/jaraco.classes-3.3.0-pyhd8ed1ab_0.conda + hash: + md5: e9f79248d30e942f7c358ff21a1790f5 + sha256: 14f5240c3834e1b784dd41a5a14392d9150dff62a74ae851f73e65d2e2bbd891 + category: main + optional: false +- name: jedi + version: 0.19.1 + manager: conda + platform: osx-64 + dependencies: + python: '>=3.6' + parso: '>=0.8.3,<0.9.0' + url: https://conda.anaconda.org/conda-forge/noarch/jedi-0.19.1-pyhd8ed1ab_0.conda + hash: + md5: 81a3be0b2023e1ea8555781f0ad904a2 + sha256: 362f0936ef37dfd1eaa860190e42a6ebf8faa094eaa3be6aa4d9ace95f40047a + category: main + optional: false +- name: jinja2 + version: 3.1.2 + manager: conda + platform: osx-64 + dependencies: + python: '>=3.7' + markupsafe: '>=2.0' + url: https://conda.anaconda.org/conda-forge/noarch/jinja2-3.1.2-pyhd8ed1ab_1.tar.bz2 + hash: + md5: c8490ed5c70966d232fdd389d0dbed37 + sha256: b045faba7130ab263db6a8fdc96b1a3de5fcf85c4a607c5f11a49e76851500b5 + category: main + optional: false +- name: libblas + version: 3.9.0 + manager: conda + platform: osx-64 + dependencies: + libopenblas: '>=0.3.24,<1.0a0' + url: https://conda.anaconda.org/conda-forge/osx-64/libblas-3.9.0-18_osx64_openblas.conda + hash: + md5: 6461cded280f7a46ebef0f1b687d4883 + sha256: 6df6e9c008a1a68493c8c394e6dcdd51cfeb7e51f91c0699a596f62f4d9d8995 + category: main + optional: false +- name: markdown-it-py + version: 3.0.0 + manager: conda + platform: osx-64 + dependencies: + python: '>=3.8' + mdurl: '>=0.1,<1' + url: https://conda.anaconda.org/conda-forge/noarch/markdown-it-py-3.0.0-pyhd8ed1ab_0.conda + hash: + md5: 93a8e71256479c62074356ef6ebf501b + sha256: c041b0eaf7a6af3344d5dd452815cdc148d6284fec25a4fa3f4263b3a021e962 + category: main + optional: false +- name: matplotlib-inline + version: 0.1.6 + manager: conda + platform: osx-64 + dependencies: + traitlets: '' + python: '>=3.6' + url: https://conda.anaconda.org/conda-forge/noarch/matplotlib-inline-0.1.6-pyhd8ed1ab_0.tar.bz2 + hash: + md5: b21613793fcc81d944c76c9f2864a7de + sha256: aa091b88aec55bfa2d9207028d8cdc689b9efb090ae27b99557e93c675be2f3c + category: main + optional: false +- name: mypy + version: 1.5.1 + manager: conda + platform: osx-64 + dependencies: + mypy_extensions: '>=1.0.0' + psutil: '>=4.0' + python: '>=3.10,<3.11.0a0' + python_abi: 3.10.* + tomli: '>=1.1.0' + typing_extensions: '>=4.1.0' + url: https://conda.anaconda.org/conda-forge/osx-64/mypy-1.5.1-py310h6729b98_1.conda + hash: + md5: 8417379bd7648c4a53bc1a25f8d17e00 + sha256: fb6717336e42129da8c30fb7fed6229966a6eafd01b241a56096701acff5888e + category: main + optional: false +- name: nodeenv + version: 1.8.0 + manager: conda + platform: osx-64 + dependencies: + setuptools: '' + python: 2.7|>=3.7 + url: https://conda.anaconda.org/conda-forge/noarch/nodeenv-1.8.0-pyhd8ed1ab_0.conda + hash: + md5: 2a75b296096adabbabadd5e9782e5fcc + sha256: 1320306234552717149f36f825ddc7e27ea295f24829e9db4cc6ceaff0b032bd + category: main + optional: false +- name: pexpect + version: 4.8.0 + manager: conda + platform: osx-64 + dependencies: + python: '' + ptyprocess: '>=0.5' + url: https://conda.anaconda.org/conda-forge/noarch/pexpect-4.8.0-pyh1a96a4e_2.tar.bz2 + hash: + md5: 330448ce4403cc74990ac07c555942a1 + sha256: 07706c0417ead94f359ca7278f65452d3c396448777aba1da6a11fc351bdca9a + category: main + optional: false +- name: pytest + version: 7.4.2 + manager: conda + platform: osx-64 + dependencies: + packaging: '' + colorama: '' + iniconfig: '' + python: '>=3.7' + exceptiongroup: '>=1.0.0rc8' + tomli: '>=1.0.0' + pluggy: '>=0.12,<2.0' + url: https://conda.anaconda.org/conda-forge/noarch/pytest-7.4.2-pyhd8ed1ab_0.conda + hash: + md5: 6dd662ff5ac9a783e5c940ce9f3fe649 + sha256: 150bfb2a86dffd4ce1e91c2d61dde5779fb3ee338675e210fec4ef508ffff28c + category: main + optional: false +- name: python-dateutil + version: 2.8.2 + manager: conda + platform: osx-64 + dependencies: + python: '>=3.6' + six: '>=1.5' + url: https://conda.anaconda.org/conda-forge/noarch/python-dateutil-2.8.2-pyhd8ed1ab_0.tar.bz2 + hash: + md5: dd999d1cc9f79e67dbb855c8924c7984 + sha256: 54d7785c7678166aa45adeaccfc1d2b8c3c799ca2dc05d4a82bb39b1968bd7da + category: main + optional: false +- name: ruamel.yaml + version: 0.17.35 + manager: conda + platform: osx-64 + dependencies: + python: '>=3.10,<3.11.0a0' + python_abi: 3.10.* + ruamel.yaml.clib: '>=0.1.2' + setuptools: '' + url: https://conda.anaconda.org/conda-forge/osx-64/ruamel.yaml-0.17.35-py310h6729b98_0.conda + hash: + md5: 3e51e97977402582098dd19dfc5627fb + sha256: 5d48c75dad9ae51b42df39234418dc6cb27d927508727188aea0ea859a40db74 + category: main + optional: false +- name: typing-extensions + version: 4.8.0 + manager: conda + platform: osx-64 + dependencies: + typing_extensions: 4.8.0 + url: https://conda.anaconda.org/conda-forge/noarch/typing-extensions-4.8.0-hd8ed1ab_0.conda + hash: + md5: 384462e63262a527bda564fa2d9126c0 + sha256: d6e1dddd0c372218ef15912383d351ac8c73465cbf16238017f0269813cafe2d + category: main + optional: false +- name: urllib3 + version: 1.26.17 + manager: conda + platform: osx-64 + dependencies: + python: '>=3.7' + brotli-python: '>=1.0.9' + pysocks: '>=1.5.6,<2.0,!=1.5.7' + url: https://conda.anaconda.org/conda-forge/noarch/urllib3-1.26.17-pyhd8ed1ab_0.conda + hash: + md5: 3b94800e11804555e40971c97fd3e801 + sha256: 6fbd62aa5fc060bfada26a0f4ad1dab6709a1fe62b3b04dbed49fcc94663979d + category: main + optional: false +- name: gitpython + version: 3.1.37 + manager: conda + platform: osx-64 + dependencies: + python: '>=3.7' + typing_extensions: '>=3.7.4.3' + gitdb: '>=4.0.1,<5' + url: https://conda.anaconda.org/conda-forge/noarch/gitpython-3.1.37-pyhd8ed1ab_0.conda + hash: + md5: 8b94c329190fa6814f412adf2ab0f0a2 + sha256: 1993b954fcaea3a3927ad5e6ff0db49855fc07ba77aa42b5b9d8056e52e787a0 + category: main + optional: false +- name: importlib_metadata + version: 6.8.0 + manager: conda + platform: osx-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 + hash: + md5: b279b07ce18058034e5b3606ba103a8b + sha256: b96e01dc42d547d6d9ceb1c5b52a5232cc04e40153534350f702c3e0418a6b3f + category: main + optional: false +- name: libcblas + version: 3.9.0 + manager: conda + platform: osx-64 + dependencies: + libblas: 3.9.0 + url: https://conda.anaconda.org/conda-forge/osx-64/libcblas-3.9.0-18_osx64_openblas.conda + hash: + md5: b359d4c7d91ff6bf5442604d06538985 + sha256: 7e8d8bc42c2c21d75b2121cfee0842bd0cf5500e6306c964bea4a9fafd3abba5 + category: main + optional: false +- name: liblapack + version: 3.9.0 + manager: conda + platform: osx-64 + dependencies: + libblas: 3.9.0 + url: https://conda.anaconda.org/conda-forge/osx-64/liblapack-3.9.0-18_osx64_openblas.conda + hash: + md5: e3e4572494c68a638faea31e7b72ec56 + sha256: 2a297c50fdd566f8a1685ca3da2d3fc3e8b33806240b20ce9e1dc3a739cd48ff + category: main + optional: false +- name: libnetcdf + version: 4.9.2 + manager: conda + platform: osx-64 + dependencies: + blosc: '>=1.21.4,<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' + libcxx: '>=15.0.7' + libxml2: '>=2.11.5,<2.12.0a0' + libzip: '>=1.10.1,<2.0a0' + libzlib: '>=1.2.13,<1.3.0a0' + openssl: '>=3.1.2,<4.0a0' + zlib: '' + zstd: '>=1.5.5,<1.6.0a0' + url: https://conda.anaconda.org/conda-forge/osx-64/libnetcdf-4.9.2-nompi_h6a32802_112.conda + hash: + md5: 413f9a35e9f888163b922ea6cfafb9da + sha256: 8b1bfc9322bd4f9fe770461fac5b75b1888ccdbdf72b2d2a2bec1e1c13e05f48 + category: main + optional: false +- name: platformdirs + version: 3.11.0 + manager: conda + platform: osx-64 + dependencies: + python: '>=3.7' + typing-extensions: '>=4.6.3' + url: https://conda.anaconda.org/conda-forge/noarch/platformdirs-3.11.0-pyhd8ed1ab_0.conda + hash: + md5: 8f567c0a74aa44cf732f15773b4083b0 + sha256: b3d809ff5a18ee8514bba8bc05a23b4cdf1758090a18a2cf742af38aed405144 + category: main + optional: false +- name: pydantic + version: 1.10.13 + manager: conda + platform: osx-64 + dependencies: + python: '>=3.10,<3.11.0a0' + python_abi: 3.10.* + typing-extensions: '>=4.2.0' + url: https://conda.anaconda.org/conda-forge/osx-64/pydantic-1.10.13-py310h6729b98_0.conda + hash: + md5: 9be69fcea0c724d1d6f779b2ebb49321 + sha256: 4720a03987b8d603344b9d98ec4c0f4ca060edbfa5c8fd6859b6dc0f7e1f1906 + category: main + optional: false +- name: requests + version: 2.31.0 + manager: conda + platform: osx-64 + dependencies: + python: '>=3.7' + idna: '>=2.5,<4' + certifi: '>=2017.4.17' + charset-normalizer: '>=2,<4' + urllib3: '>=1.21.1,<3' + url: https://conda.anaconda.org/conda-forge/noarch/requests-2.31.0-pyhd8ed1ab_0.conda + hash: + md5: a30144e4156cdbb236f99ebb49828f8b + sha256: 9f629d6fd3c8ac5f2a198639fe7af87c4db2ac9235279164bfe0fcb49d8c4bad + category: main + optional: false +- name: rich + version: 13.6.0 + manager: conda + platform: osx-64 + dependencies: + python: '>=3.7.0' + typing_extensions: '>=4.0.0,<5.0.0' + pygments: '>=2.13.0,<3.0.0' + markdown-it-py: '>=2.2.0' + url: https://conda.anaconda.org/conda-forge/noarch/rich-13.6.0-pyhd8ed1ab_0.conda + hash: + md5: 3ca4829f40710f581ca1d76bc907e99f + sha256: a2f8838a75ab8c2c1da0a813c7569d4f6efba0d2b5dc3a7659e2cb6d96bd8e19 + category: main + optional: false +- name: stack_data + version: 0.6.2 + manager: conda + platform: osx-64 + dependencies: + asttokens: '' + executing: '' + pure_eval: '' + python: '>=3.5' + url: https://conda.anaconda.org/conda-forge/noarch/stack_data-0.6.2-pyhd8ed1ab_0.conda + hash: + md5: e7df0fdd404616638df5ece6e69ba7af + sha256: a58433e75229bec39f3be50c02efbe9b7083e53a1f31d8ee247564f370191eec + category: main + optional: false +- name: ukkonen + version: 1.0.1 + manager: conda + platform: osx-64 + dependencies: + cffi: '' + libcxx: '>=15.0.7' + python: '>=3.10,<3.11.0a0' + python_abi: 3.10.* + url: https://conda.anaconda.org/conda-forge/osx-64/ukkonen-1.0.1-py310h88cfcbd_4.conda + hash: + md5: 9b1aa3d9f02b72f2544ee531bb7ccea9 + sha256: 662d357d36210e7cad2072e5e071b98fc18985ec36293f43139812efc29c6b4b + category: main + optional: false +- name: wcwidth + version: 0.2.8 + manager: conda + platform: osx-64 + dependencies: + backports.functools_lru_cache: '' + python: '>=3.6' + url: https://conda.anaconda.org/conda-forge/noarch/wcwidth-0.2.8-pyhd8ed1ab_0.conda + hash: + md5: 367386d2575a0e62412448eda1012efd + sha256: e3b6d2041b4d175a1437dccc71b4ef2e53111dfcc64b219fef4bed379e6ef236 + category: main + optional: false +- name: cachecontrol + version: 0.13.1 + manager: conda + platform: osx-64 + dependencies: + python: '>=3.7' + msgpack-python: '>=0.5.2' + requests: '>=2.16.0' + url: https://conda.anaconda.org/conda-forge/noarch/cachecontrol-0.13.1-pyhd8ed1ab_0.conda + hash: + md5: 174bd699bb5aa9e2622eb4b288276ff8 + sha256: aae7ab3a54989f9bf9273e4a17c911ba339a8b9354250bc11fb8eff2e3f4be60 + category: main + optional: false +- name: ensureconda + version: 1.4.3 + manager: conda + platform: osx-64 + dependencies: + appdirs: '' + filelock: '' + python: '>=3.7' + requests: '>=2' + click: '>=5.1' + url: https://conda.anaconda.org/conda-forge/noarch/ensureconda-1.4.3-pyhd8ed1ab_0.tar.bz2 + hash: + md5: c99ae3abf501990769047b4b40a98f17 + sha256: b71784b6c24d2320b2f796d074e75e7dd1be7b7fc0f719c5cf3a582270b368d6 + category: main + optional: false +- name: identify + version: 2.5.30 + manager: conda + platform: osx-64 + dependencies: + ukkonen: '' + python: '>=3.6' + url: https://conda.anaconda.org/conda-forge/noarch/identify-2.5.30-pyhd8ed1ab_0.conda + hash: + md5: b7a2e3bb89bda8c69839485c20aabadf + sha256: dc9901654af0556209bb5b4194ef2deb643bc641ac859a31f13c41b945b60150 + category: main + optional: false +- name: keyring + version: 24.2.0 + manager: conda + platform: osx-64 + dependencies: + importlib_metadata: '>=4.11.4' + jaraco.classes: '' + python: '>=3.10,<3.11.0a0' + python_abi: 3.10.* + url: https://conda.anaconda.org/conda-forge/osx-64/keyring-24.2.0-py310h2ec42d9_1.conda + hash: + md5: 1017d12d9a96bdb15fd465a8e3fe2fbd + sha256: d92a5d2ba2cdf4232747cb2585001f8d7527e6b03380f63961fde9f40b5c9b6d + category: main + optional: false +- name: numpy + version: 1.22.4 + manager: conda + platform: osx-64 + dependencies: + libblas: '>=3.8.0,<4.0a0' + libcblas: '>=3.8.0,<4.0a0' + libcxx: '>=13.0.1' + liblapack: '>=3.8.0,<4.0a0' + python: '>=3.10,<3.11.0a0' + python_abi: 3.10.* + url: https://conda.anaconda.org/conda-forge/osx-64/numpy-1.22.4-py310hed37afb_0.tar.bz2 + hash: + md5: cd4ad16cf8641c1b02c3966945ff00c3 + sha256: ea4c7eca45a966f849e109733c65bc3d63206ff0079dfeba140d4da4caf908ce + category: main + optional: false +- name: prompt-toolkit + version: 3.0.39 + manager: conda + platform: osx-64 + dependencies: + wcwidth: '' + python: '>=3.7' + url: https://conda.anaconda.org/conda-forge/noarch/prompt-toolkit-3.0.39-pyha770c72_0.conda + hash: + md5: a4986c6bb5b0d05a38855b0880a5f425 + sha256: 10e7fdc75d4b85633be6b12a70b857053987127a808caa0f88b2cba4b3ce6359 + category: main + optional: false +- name: rich-click + version: 1.6.1 + manager: conda + platform: osx-64 + dependencies: + python: '>=3.7' + click: '>=7,<9' + rich: '>=10' + url: https://conda.anaconda.org/conda-forge/noarch/rich-click-1.6.1-pyhd8ed1ab_0.conda + hash: + md5: 59a168d82c582248859d8dc8075da6f6 + sha256: ed8ade65e48279dc9caff53230391d8f72bea6d55f6951fbf7fcc39d762e1e5e + category: main + optional: false +- name: virtualenv + version: 20.24.4 + manager: conda + platform: osx-64 + dependencies: + python: '>=3.8' + distlib: <1,>=0.3.7 + filelock: <4,>=3.12.2 + platformdirs: <4,>=3.9.1 + url: https://conda.anaconda.org/conda-forge/noarch/virtualenv-20.24.4-pyhd8ed1ab_0.conda + hash: + md5: c3feaf947264a59a125e8c26e98c3c5a + sha256: 85c96449202ca87ec12783d8675b3655b4cd7b7afe49f2dc37d743adb0ed177f + category: main + optional: false +- name: bump-my-version + version: 0.10.0 + manager: conda + platform: osx-64 + dependencies: + click: '' + rich: '' + tomlkit: '' + rich-click: '' + python: '>=3.8' + pydantic: <2.0.0 + url: https://conda.anaconda.org/conda-forge/noarch/bump-my-version-0.10.0-pyhd8ed1ab_0.conda + hash: + md5: d0cfdd7365c03381f3d8c4402a88c50c + sha256: 433cc87b7e1700aaf1ed9fe6f402bfda945409379cafb0d78ed757ca74e364e5 + category: main + optional: false +- name: cachecontrol-with-filecache + version: 0.13.1 + manager: conda + platform: osx-64 + dependencies: + python: '>=3.7' + filelock: '>=3.8.0' + cachecontrol: 0.13.1 + url: https://conda.anaconda.org/conda-forge/noarch/cachecontrol-with-filecache-0.13.1-pyhd8ed1ab_0.conda + hash: + md5: 8c4781ca0893cff3a64423954ce234a1 + sha256: 7fd3cd4a667da284ae3aad9b8cb4d592099bc02ed6566cbae00bd8c0b0604e85 + category: main + optional: false +- name: cftime + version: 1.6.2 + manager: conda + platform: osx-64 + dependencies: + numpy: '>=1.22.4,<2.0a0' + python: '>=3.10,<3.11.0a0' + python_abi: 3.10.* + url: https://conda.anaconda.org/conda-forge/osx-64/cftime-1.6.2-py310hf0b6da5_2.conda + hash: + md5: 0ddeca4260081ce950a4da407f504dc6 + sha256: 7ba7ea254ec40fd5209beb7b88e7e28b07b1beaf1fdad849f7b6263e7fee2d49 + category: main + optional: false +- name: pandas + version: 2.1.1 + manager: conda + platform: osx-64 + dependencies: + libcxx: '>=15.0.7' + numpy: '>=1.22.4,<2.0a0' + python: '>=3.10,<3.11.0a0' + python-dateutil: '>=2.8.1' + python-tzdata: '>=2022a' + python_abi: 3.10.* + pytz: '>=2020.1' + url: https://conda.anaconda.org/conda-forge/osx-64/pandas-2.1.1-py310h5262a37_1.conda + hash: + md5: 0085174819473562f170a88d33875834 + sha256: 564162719a125973391b689a7dd866a29e898612ece96520bc9031953e88aaa2 + category: main + optional: false +- name: pre-commit + version: 3.4.0 + manager: conda + platform: osx-64 + dependencies: + python: '>=3.8' + pyyaml: '>=5.1' + identify: '>=1.0.0' + nodeenv: '>=0.11.1' + cfgv: '>=2.0.0' + virtualenv: '>=20.10.0' + url: https://conda.anaconda.org/conda-forge/noarch/pre-commit-3.4.0-pyha770c72_2.conda + hash: + md5: 09cd3006f61e7a7054405f81362e0a5f + sha256: b4ffac42cec8a6c38c528d7c0c5023557ea97b581dbe61bb290d8e630a246e1b + category: main + optional: false +- name: prompt_toolkit + version: 3.0.39 + manager: conda + platform: osx-64 + dependencies: + prompt-toolkit: '>=3.0.39,<3.0.40.0a0' + url: https://conda.anaconda.org/conda-forge/noarch/prompt_toolkit-3.0.39-hd8ed1ab_0.conda + hash: + md5: 4bbbe67d5df19db30f04b8e344dc9976 + sha256: 89f7fecc7355181dbc2ab851e668a2fce6aa4830b336a34c93b59bda93206270 + category: main + optional: false +- name: scipy + version: 1.11.3 + manager: conda + platform: osx-64 + dependencies: + libblas: '>=3.9.0,<4.0a0' + libcblas: '>=3.9.0,<4.0a0' + libcxx: '>=15.0.7' + libgfortran: 5.* + libgfortran5: '>=13.2.0' + liblapack: '>=3.9.0,<4.0a0' + numpy: '>=1.22.4,<2.0a0' + python: '>=3.10,<3.11.0a0' + python_abi: 3.10.* + url: https://conda.anaconda.org/conda-forge/osx-64/scipy-1.11.3-py310h2db466d_0.conda + hash: + md5: 8dfb8a8f6e5992c748f004c601adcb82 + sha256: d237d0268d29f78efdbbe5eda28831031fb16e35ed4bfdf081ca1828f952a399 + category: main + optional: false +- name: conda-lock + version: 2.3.0 + manager: conda + platform: osx-64 + dependencies: + typing_extensions: '' + jinja2: '' + ruamel.yaml: '' + tomli: '' + click-default-group: '' + python: '>=3.8' + pyyaml: '>=5.1' + click: '>=8.0' + packaging: '>=20.4' + requests: '>=2.18' + ensureconda: '>=1.3' + keyring: '>=21.2.0' + gitpython: '>=3.1.30' + html5lib: '>=1.0' + cachy: '>=0.3.0' + clikit: '>=0.6.2' + crashtest: '>=0.3.0' + pkginfo: '>=1.4' + tomlkit: '>=0.7.0' + virtualenv: '>=20.0.26' + pydantic: '>=1.10' + toolz: '>=0.12.0,<1.0.0' + cachecontrol-with-filecache: '>=0.12.9' + urllib3: '>=1.26.5,<2.0' + url: https://conda.anaconda.org/conda-forge/noarch/conda-lock-2.3.0-pyhd8ed1ab_0.conda + hash: + md5: 559bd2e1ad6f260cd4f2fd7d7b21bcca + sha256: b48875bb18c507895d5bd732746e44bbed8f56be66fc933bfe7e1af1bc845fe6 + category: main + optional: false +- name: ipython + version: 8.16.1 + manager: conda + platform: osx-64 + dependencies: + typing_extensions: '' + decorator: '' + exceptiongroup: '' + __osx: '' + stack_data: '' + matplotlib-inline: '' + backcall: '' + appnope: '' + pickleshare: '' + python: '>=3.9' + pygments: '>=2.4.0' + traitlets: '>=5' + jedi: '>=0.16' + pexpect: '>4.3' + prompt_toolkit: '>=3.0.30,<3.1.0,!=3.0.37' + url: https://conda.anaconda.org/conda-forge/noarch/ipython-8.16.1-pyh31c8845_0.conda + hash: + md5: 531bac092414642fdead7a511357485a + sha256: 77cfbc15ee2ad8976009a6880bb1f7c716db44e23594fba7c9c382135e02eb03 + category: main + optional: false +- name: netcdf4 + version: 1.6.4 + manager: conda + platform: osx-64 + dependencies: + certifi: '' + cftime: '' + hdf5: '>=1.14.2,<1.14.3.0a0' + libnetcdf: '>=4.9.2,<4.9.3.0a0' + libzlib: '>=1.2.13,<1.3.0a0' + numpy: '>=1.22.4,<2.0a0' + python: '>=3.10,<3.11.0a0' + python_abi: 3.10.* + setuptools: '' + url: https://conda.anaconda.org/conda-forge/osx-64/netcdf4-1.6.4-nompi_py310h5076b6f_103.conda + hash: + md5: 83e1575d74550cd6ea21cb8bf2e81379 + sha256: 4544257c95ca2ac2c8538572bade8d265f2d023bb4fd0fbf855778ebc3c5caca + category: main + optional: false +- name: xarray + version: 2023.9.0 + manager: conda + platform: osx-64 + dependencies: + python: '>=3.9' + packaging: '>=21.3' + numpy: '>=1.21' + pandas: '>=1.4' + url: https://conda.anaconda.org/conda-forge/noarch/xarray-2023.9.0-pyhd8ed1ab_0.conda + hash: + md5: 158c89bbc0f2597f33e8ce1aea59e0ee + sha256: fd86c6b5da4469df74aec93d8dbc8c8903377a81d7c245a14745b38b70799803 + category: main + optional: false +- name: ipdb + version: 0.13.13 + manager: conda + platform: osx-64 + dependencies: + ipython: '' + decorator: '' + python: '>=2.7' + toml: '>=0.10.2' + url: https://conda.anaconda.org/conda-forge/noarch/ipdb-0.13.13-pyhd8ed1ab_0.conda + hash: + md5: 86baea403007ad4898d85c897c80b758 + sha256: 16ea279fae5b3b77a694bf7bc8bcda9c310be39d6fbf78664d3111bcd5f5758a + category: main + optional: false +- name: bzip2 + version: 1.0.8 + manager: conda + platform: osx-arm64 + dependencies: {} + url: https://conda.anaconda.org/conda-forge/osx-arm64/bzip2-1.0.8-h3422bc3_4.tar.bz2 + hash: + md5: fc76ace7b94fb1f694988ab1b14dd248 + sha256: a3efbd06ad1432edb0163c48225421f34c2660f5cc002283a8d27e791320b549 + category: main + optional: false +- name: c-ares + version: 1.19.1 + manager: conda + platform: osx-arm64 + dependencies: {} + url: https://conda.anaconda.org/conda-forge/osx-arm64/c-ares-1.19.1-hb547adb_0.conda + hash: + md5: e7fc7430440d255e3a9c7e5a52f7b294 + sha256: fc9d0fcfb30c20c0032b294120b6ba9c01078ddb372c34dd491214c598aecc06 + category: main + optional: false +- name: ca-certificates + version: 2023.7.22 + manager: conda + platform: osx-arm64 + dependencies: {} + url: https://conda.anaconda.org/conda-forge/osx-arm64/ca-certificates-2023.7.22-hf0a4a13_0.conda + hash: + md5: e1b99ac4dbcee71a71682996f67f7965 + sha256: b220c001b0c1448a47cc49b42a622e06a540ec60b3f7a1e057fca1f37ce515e4 + category: main + optional: false +- name: icu + version: '73.2' + manager: conda + platform: osx-arm64 + dependencies: {} + url: https://conda.anaconda.org/conda-forge/osx-arm64/icu-73.2-hc8870d7_0.conda + hash: + md5: 8521bd47c0e11c5902535bb1a17c565f + sha256: ff9cd0c6cd1349954c801fb443c94192b637e1b414514539f3c49c56a39f51b1 + category: main + optional: false +- name: libcxx + version: 16.0.6 + manager: conda + platform: osx-arm64 + dependencies: {} + url: https://conda.anaconda.org/conda-forge/osx-arm64/libcxx-16.0.6-h4653b0c_0.conda + hash: + md5: 9d7d724faf0413bf1dbc5a85935700c8 + sha256: 11d3fb51c14832d9e4f6d84080a375dec21ea8a3a381a1910e67ff9cedc20355 + category: main + optional: false +- name: libev + version: '4.33' + manager: conda + platform: osx-arm64 + dependencies: {} + url: https://conda.anaconda.org/conda-forge/osx-arm64/libev-4.33-h642e427_1.tar.bz2 + hash: + md5: 566dbf70fe79eacdb3c3d3d195a27f55 + sha256: eb7325eb2e6bd4c291cb9682781b35b8c0f68cb72651c35a5b9dd22707ebd25c + category: main + optional: false +- name: libffi + version: 3.4.2 + manager: conda + platform: osx-arm64 + dependencies: {} + url: https://conda.anaconda.org/conda-forge/osx-arm64/libffi-3.4.2-h3422bc3_5.tar.bz2 + hash: + md5: 086914b672be056eb70fd4285b6783b6 + sha256: 41b3d13efb775e340e4dba549ab5c029611ea6918703096b2eaa9c015c0750ca + category: main + optional: false +- name: libiconv + version: '1.17' + manager: conda + platform: osx-arm64 + dependencies: {} + url: https://conda.anaconda.org/conda-forge/osx-arm64/libiconv-1.17-he4db4b2_0.tar.bz2 + hash: + md5: 686f9c755574aa221f29fbcf36a67265 + sha256: 2eb33065783b802f71d52bef6f15ce0fafea0adc8506f10ebd0d490244087bec + category: main + optional: false +- name: libjpeg-turbo + version: 3.0.0 + manager: conda + platform: osx-arm64 + dependencies: {} + url: https://conda.anaconda.org/conda-forge/osx-arm64/libjpeg-turbo-3.0.0-hb547adb_1.conda + hash: + md5: 3ff1e053dc3a2b8e36b9bfa4256a58d1 + sha256: a42054eaa38e84fc1e5ab443facac4bbc9d1b6b6f23f54b7bf4f1eb687e1d993 + category: main + optional: false +- name: libzlib + version: 1.2.13 + manager: conda + platform: osx-arm64 + dependencies: {} + url: https://conda.anaconda.org/conda-forge/osx-arm64/libzlib-1.2.13-h53f4e23_5.conda + hash: + md5: 1a47f5236db2e06a320ffa0392f81bd8 + sha256: ab1c8aefa2d54322a63aaeeefe9cf877411851738616c4068e0dccc66b9c758a + category: main + optional: false +- name: llvm-openmp + version: 16.0.6 + manager: conda + platform: osx-arm64 + dependencies: {} + url: https://conda.anaconda.org/conda-forge/osx-arm64/llvm-openmp-16.0.6-h1c12783_0.conda + hash: + md5: 52e5730888439f7f55fd4f83905581b4 + sha256: f5cbb852853a7a931716d55e39515876f61fefd0cb4e055f286adc2dc3bc9d2a + category: main + optional: false +- name: ncurses + version: '6.4' + manager: conda + platform: osx-arm64 + dependencies: {} + url: https://conda.anaconda.org/conda-forge/osx-arm64/ncurses-6.4-h7ea286d_0.conda + hash: + md5: 318337fb9d0c53ba635efb7888242373 + sha256: 017e230a1f912e15005d4c4f3d387119190b53240f9ae0ba8a319dd958901780 + category: main + optional: false +- name: python_abi + version: '3.10' + manager: conda + platform: osx-arm64 + dependencies: {} + url: https://conda.anaconda.org/conda-forge/osx-arm64/python_abi-3.10-4_cp310.conda + hash: + md5: 1a3d9c6bb5f0b1b22d9e9296c127e8c7 + sha256: f69bac2f28082a275ef67313968b2c366d8236c3a6869b9cdf5cdb97a5821812 + category: main + optional: false +- name: tzdata + version: 2023c + manager: conda + platform: osx-arm64 + dependencies: {} + url: https://conda.anaconda.org/conda-forge/noarch/tzdata-2023c-h71feb2d_0.conda + hash: + md5: 939e3e74d8be4dac89ce83b20de2492a + sha256: 0449138224adfa125b220154408419ec37c06b0b49f63c5954724325903ecf55 + category: main + optional: false +- name: xz + version: 5.2.6 + manager: conda + platform: osx-arm64 + dependencies: {} + url: https://conda.anaconda.org/conda-forge/osx-arm64/xz-5.2.6-h57fd34a_0.tar.bz2 + hash: + md5: 39c6b54e94014701dd157f4f576ed211 + sha256: 59d78af0c3e071021cfe82dc40134c19dab8cdf804324b62940f5c8cd71803ec + category: main + optional: false +- name: yaml + version: 0.2.5 + manager: conda + platform: osx-arm64 + dependencies: {} + url: https://conda.anaconda.org/conda-forge/osx-arm64/yaml-0.2.5-h3422bc3_2.tar.bz2 + hash: + md5: 4bb3f014845110883a3c5ee811fd84b4 + sha256: 93181a04ba8cfecfdfb162fc958436d868cc37db504c58078eab4c1a3e57fbb7 + category: main + optional: false +- name: hdf4 + version: 4.2.15 + manager: conda + platform: osx-arm64 + dependencies: + libcxx: '>=15.0.7' + libjpeg-turbo: '>=3.0.0,<4.0a0' + libzlib: '>=1.2.13,<1.3.0a0' + url: https://conda.anaconda.org/conda-forge/osx-arm64/hdf4-4.2.15-h2ee6834_7.conda + hash: + md5: ff5d749fd711dc7759e127db38005924 + sha256: c3b01e3c3fe4ca1c4d28c287eaa5168a4f2fd3ffd76690082ac919244c22fa90 + category: main + optional: false +- name: libaec + version: 1.1.1 + manager: conda + platform: osx-arm64 + dependencies: + libcxx: '>=15.0.7' + url: https://conda.anaconda.org/conda-forge/osx-arm64/libaec-1.1.1-h13dd4ca_0.conda + hash: + md5: 76c685e27d9ff8b82171249dfcfb6098 + sha256: 188b8bc3a5d3f2d9a28df8a24222d03c0a3f372de897005d815204a76d967884 + category: main + optional: false +- name: libedit + version: 3.1.20191231 + manager: conda + platform: osx-arm64 + dependencies: + ncurses: '>=6.2,<7.0.0a0' + url: https://conda.anaconda.org/conda-forge/osx-arm64/libedit-3.1.20191231-hc8eb9b7_2.tar.bz2 + hash: + md5: 30e4362988a2623e9eb34337b83e01f9 + sha256: 3912636197933ecfe4692634119e8644904b41a58f30cad9d1fc02f6ba4d9fca + category: main + optional: false +- name: libgfortran5 + version: 13.2.0 + manager: conda + platform: osx-arm64 + dependencies: + llvm-openmp: '>=8.0.0' + url: https://conda.anaconda.org/conda-forge/osx-arm64/libgfortran5-13.2.0-hf226fd6_1.conda + hash: + md5: 4480d71b98c87faafab132d33e23135e + sha256: cb9cb11e49a6a8466ea7556a723080d3aeefd556df9b444b941afc5b54368b22 + category: main + optional: false +- name: libsqlite + version: 3.43.0 + manager: conda + platform: osx-arm64 + dependencies: + libzlib: '>=1.2.13,<1.3.0a0' + url: https://conda.anaconda.org/conda-forge/osx-arm64/libsqlite-3.43.0-hb31c410_0.conda + hash: + md5: 060a9948665e56a38060a1ed3ebc553a + sha256: ddc90cc7a33563cd1f2b179a4964d144c221f9148634c006fd83ec9e1c667907 + category: main + optional: false +- name: libxml2 + version: 2.11.5 + manager: conda + platform: osx-arm64 + dependencies: + icu: '>=73.2,<74.0a0' + 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/osx-arm64/libxml2-2.11.5-h25269f3_1.conda + hash: + md5: 627b5d1377536b5b632ba53cd1455555 + sha256: 8291549b87aca48e9cd4aec124af01b5037acd16f8ad14083d7af23c8bb6bebe + category: main + optional: false +- name: lz4-c + version: 1.9.4 + manager: conda + platform: osx-arm64 + dependencies: + libcxx: '>=14.0.6' + url: https://conda.anaconda.org/conda-forge/osx-arm64/lz4-c-1.9.4-hb7217d7_0.conda + hash: + md5: 45505bec548634f7d05e02fb25262cb9 + sha256: fc343b8c82efe40819b986e29ba748366514e5ab94a1e1138df195af5f45fa24 + category: main + optional: false +- name: openssl + version: 3.1.3 + manager: conda + platform: osx-arm64 + dependencies: + ca-certificates: '' + url: https://conda.anaconda.org/conda-forge/osx-arm64/openssl-3.1.3-h53f4e23_0.conda + hash: + md5: 40d01d3f39589f54b618ddd28a5a48cb + sha256: d9af6208610d4985322b8eade79215f1ded6e2a2b41b0a885714b971a36a5bae + category: main + optional: false +- name: readline + version: '8.2' + manager: conda + platform: osx-arm64 + dependencies: + ncurses: '>=6.3,<7.0a0' + url: https://conda.anaconda.org/conda-forge/osx-arm64/readline-8.2-h92ec313_1.conda + hash: + md5: 8cbb776a2f641b943d413b3e19df71f4 + sha256: a1dfa679ac3f6007362386576a704ad2d0d7a02e98f5d0b115f207a2da63e884 + category: main + optional: false +- name: snappy + version: 1.1.10 + manager: conda + platform: osx-arm64 + dependencies: + libcxx: '>=14.0.6' + url: https://conda.anaconda.org/conda-forge/osx-arm64/snappy-1.1.10-h17c5cce_0.conda + hash: + md5: ac82a611d1a67a598096ebaa857198e3 + sha256: dfae03cd2339587871e53b42833657faa4c9e42e3e2c56ee9e32bc60797c7f62 + category: main + optional: false +- name: tk + version: 8.6.13 + manager: conda + platform: osx-arm64 + dependencies: + libzlib: '>=1.2.13,<1.3.0a0' + url: https://conda.anaconda.org/conda-forge/osx-arm64/tk-8.6.13-hb31c410_0.conda + hash: + md5: aa913a828b65f30ee3aba9c59bb0b514 + sha256: 6df6ff49dba487eb891ddc0099642a36af2fe3929ed8023f76b745f0485c54a6 + category: main + optional: false +- name: zlib + version: 1.2.13 + manager: conda + platform: osx-arm64 + dependencies: + libzlib: 1.2.13 + url: https://conda.anaconda.org/conda-forge/osx-arm64/zlib-1.2.13-h53f4e23_5.conda + hash: + md5: a08383f223b10b71492d27566fafbf6c + sha256: de0ee1e24aa6867058d3b852a15c8d7f49f262f5828772700c647186d4a96bbe + category: main + optional: false +- name: zstd + version: 1.5.5 + manager: conda + platform: osx-arm64 + dependencies: + libzlib: '>=1.2.13,<1.3.0a0' + url: https://conda.anaconda.org/conda-forge/osx-arm64/zstd-1.5.5-h4f39d0f_0.conda + hash: + md5: 5b212cfb7f9d71d603ad891879dc7933 + sha256: 7e1fe6057628bbb56849a6741455bbb88705bae6d6646257e57904ac5ee5a481 + category: main + optional: false +- name: blosc + version: 1.21.5 + manager: conda + platform: osx-arm64 + dependencies: + libcxx: '>=15.0.7' + libzlib: '>=1.2.13,<1.3.0a0' + lz4-c: '>=1.9.3,<1.10.0a0' + snappy: '>=1.1.10,<2.0a0' + zstd: '>=1.5.5,<1.6.0a0' + url: https://conda.anaconda.org/conda-forge/osx-arm64/blosc-1.21.5-hc338f07_0.conda + hash: + md5: 93fccb1150aa377576107ecd0ad375b3 + sha256: 81f206dd843fe0da894d0480ea9d689fe948fa4b3cad060f97b016af4ac7b3a1 + category: main + optional: false +- name: krb5 + version: 1.21.2 + manager: conda + platform: osx-arm64 + dependencies: + libcxx: '>=15.0.7' + libedit: '>=3.1.20191231,<4.0a0' + openssl: '>=3.1.2,<4.0a0' + url: https://conda.anaconda.org/conda-forge/osx-arm64/krb5-1.21.2-h92f50d5_0.conda + hash: + md5: 92f1cff174a538e0722bf2efb16fc0b2 + sha256: 70bdb9b4589ec7c7d440e485ae22b5a352335ffeb91a771d4c162996c3070875 + category: main + optional: false +- name: libgfortran + version: 5.0.0 + manager: conda + platform: osx-arm64 + dependencies: + libgfortran5: 13.2.0 + url: https://conda.anaconda.org/conda-forge/osx-arm64/libgfortran-5.0.0-13_2_0_hd922786_1.conda + hash: + md5: 1ad37a5c60c250bb2b4a9f75563e181c + sha256: bc8750e7893e693fa380bf2f342d4a5ce44995467cbdf72e56a00e5106b4892d + category: main + optional: false +- name: libnghttp2 + version: 1.52.0 + manager: conda + platform: osx-arm64 + dependencies: + c-ares: '>=1.18.1,<2.0a0' + libcxx: '>=14.0.6' + libev: '>=4.33,<4.34.0a0' + libzlib: '>=1.2.13,<1.3.0a0' + openssl: '>=3.0.8,<4.0a0' + url: https://conda.anaconda.org/conda-forge/osx-arm64/libnghttp2-1.52.0-hae82a92_0.conda + hash: + md5: 1d319e95a0216f801293626a00337712 + sha256: 1a3944d6295dcbecdf6489ce8a05fe416ad401727c901ec390e9200a351bdb10 + category: main + optional: false +- name: libssh2 + version: 1.11.0 + manager: conda + platform: osx-arm64 + dependencies: + libzlib: '>=1.2.13,<1.3.0a0' + openssl: '>=3.1.1,<4.0a0' + url: https://conda.anaconda.org/conda-forge/osx-arm64/libssh2-1.11.0-h7a5bd25_0.conda + hash: + md5: 029f7dc931a3b626b94823bc77830b01 + sha256: bb57d0c53289721fff1eeb3103a1c6a988178e88d8a8f4345b0b91a35f0e0015 + category: main + optional: false +- name: libzip + version: 1.10.1 + manager: conda + platform: osx-arm64 + dependencies: + bzip2: '>=1.0.8,<2.0a0' + libzlib: '>=1.2.13,<1.3.0a0' + openssl: '>=3.1.2,<4.0a0' + url: https://conda.anaconda.org/conda-forge/osx-arm64/libzip-1.10.1-ha0bc3c6_3.conda + hash: + md5: e37c0da207079e488709043634d6a711 + sha256: fb42f34c2275523a06bc8464454fa57f2417203524cabb7aacca4e5de6cfeb69 + category: main + optional: false +- name: python + version: 3.10.12 + manager: conda + platform: osx-arm64 + dependencies: + bzip2: '>=1.0.8,<2.0a0' + libffi: '>=3.4,<4.0a0' + libsqlite: '>=3.42.0,<4.0a0' + libzlib: '>=1.2.13,<1.3.0a0' + ncurses: '>=6.4,<7.0a0' + openssl: '>=3.1.1,<4.0a0' + readline: '>=8.2,<9.0a0' + tk: '>=8.6.12,<8.7.0a0' + tzdata: '' + xz: '>=5.2.6,<6.0a0' + url: https://conda.anaconda.org/conda-forge/osx-arm64/python-3.10.12-h01493a6_0_cpython.conda + hash: + md5: a36e753b6c8875be1242229b3eabe907 + sha256: 318355582595373ee7962383b67b0386541ad13e3734c3ee11331db025613b57 + category: main + optional: false +- name: appdirs + version: 1.4.4 + manager: conda + platform: osx-arm64 + dependencies: + python: '' + url: https://conda.anaconda.org/conda-forge/noarch/appdirs-1.4.4-pyh9f0ad1d_0.tar.bz2 + hash: + md5: 5f095bc6454094e96f146491fd03633b + sha256: ae9fb8f68281f84482f2c234379aa12405a9e365151d43af20b3ae1f17312111 + category: main + optional: false +- name: appnope + version: 0.1.3 + manager: conda + platform: osx-arm64 + dependencies: + python: '>=2.7' + url: https://conda.anaconda.org/conda-forge/noarch/appnope-0.1.3-pyhd8ed1ab_0.tar.bz2 + hash: + md5: 54ac328d703bff191256ffa1183126d1 + sha256: b209a68ac55eb9ecad7042f0d4eedef5da924699f6cdf54ac1826869cfdae742 + category: main + optional: false +- name: backcall + version: 0.2.0 + manager: conda + platform: osx-arm64 + dependencies: + python: '' + url: https://conda.anaconda.org/conda-forge/noarch/backcall-0.2.0-pyh9f0ad1d_0.tar.bz2 + hash: + md5: 6006a6d08a3fa99268a2681c7fb55213 + sha256: ee62d6434090c1327a48551734e06bd10e65a64ef7f3b6e68719500dab0e42b9 + category: main + optional: false +- name: backports + version: '1.0' + manager: conda + platform: osx-arm64 + dependencies: + python: '>=2.7' + url: https://conda.anaconda.org/conda-forge/noarch/backports-1.0-pyhd8ed1ab_3.conda + hash: + md5: 54ca2e08b3220c148a1d8329c2678e02 + sha256: 711602276ae39276cb0faaca6fd0ac851fff0ca17151917569174841ef830bbd + category: main + optional: false +- name: brotli-python + version: 1.1.0 + manager: conda + platform: osx-arm64 + dependencies: + libcxx: '>=15.0.7' + python: '>=3.10,<3.11.0a0' + python_abi: 3.10.* + url: https://conda.anaconda.org/conda-forge/osx-arm64/brotli-python-1.1.0-py310h1253130_1.conda + hash: + md5: 26fab7f65a80fff9f402ec3b7860b88a + sha256: dab21e18c0275bfd93a09b751096998485677ed17c2e2d08298bc5b43c10bee1 + category: main + optional: false +- name: cachy + version: 0.3.0 + manager: conda + platform: osx-arm64 + dependencies: + python: '>=3.6' + url: https://conda.anaconda.org/conda-forge/noarch/cachy-0.3.0-pyhd8ed1ab_1.tar.bz2 + hash: + md5: 5dfee17f24e2dfd18d7392b48c9351e2 + sha256: 9b193a4e483c4d0004bc5b88fac7a02516b6311137ab61b8db85aa9741422e35 + category: main + optional: false +- name: certifi + version: 2023.7.22 + manager: conda + platform: osx-arm64 + dependencies: + python: '>=3.7' + url: https://conda.anaconda.org/conda-forge/noarch/certifi-2023.7.22-pyhd8ed1ab_0.conda + hash: + md5: 7f3dbc9179b4dde7da98dfb151d0ad22 + sha256: db66e31866ff4250c190788769e3a8a1709237c3e9c38d7143aae95ab75fcb31 + category: main + optional: false +- name: cfgv + version: 3.3.1 + manager: conda + platform: osx-arm64 + dependencies: + python: '>=3.6.1' + url: https://conda.anaconda.org/conda-forge/noarch/cfgv-3.3.1-pyhd8ed1ab_0.tar.bz2 + hash: + md5: ebb5f5f7dc4f1a3780ef7ea7738db08c + sha256: fbc03537a27ef756162c49b1d0608bf7ab12fa5e38ceb8563d6f4859e835ac5c + category: main + optional: false +- name: charset-normalizer + version: 3.3.0 + manager: conda + platform: osx-arm64 + dependencies: + python: '>=3.7' + url: https://conda.anaconda.org/conda-forge/noarch/charset-normalizer-3.3.0-pyhd8ed1ab_0.conda + hash: + md5: fef8ef5f0a54546b9efee39468229917 + sha256: 3407cd21af7e85aeb9499c377e7db25d2bbb9cbaf2f47d92626b3471dca65b4c + category: main + optional: false +- name: click + version: 8.1.7 + manager: conda + platform: osx-arm64 + dependencies: + __unix: '' + python: '>=3.8' + url: https://conda.anaconda.org/conda-forge/noarch/click-8.1.7-unix_pyh707e725_0.conda + hash: + md5: f3ad426304898027fc619827ff428eca + sha256: f0016cbab6ac4138a429e28dbcb904a90305b34b3fe41a9b89d697c90401caec + category: main + optional: false +- name: colorama + version: 0.4.6 + manager: conda + platform: osx-arm64 + dependencies: + python: '>=3.7' + url: https://conda.anaconda.org/conda-forge/noarch/colorama-0.4.6-pyhd8ed1ab_0.tar.bz2 + hash: + md5: 3faab06a954c2a04039983f2c4a50d99 + sha256: 2c1b2e9755ce3102bca8d69e8f26e4f087ece73f50418186aee7c74bef8e1698 + category: main + optional: false +- name: crashtest + version: 0.4.1 + manager: conda + platform: osx-arm64 + dependencies: + python: '>=3.6,<4.0' + url: https://conda.anaconda.org/conda-forge/noarch/crashtest-0.4.1-pyhd8ed1ab_0.tar.bz2 + hash: + md5: 709a2295dd907bb34afb57d54320642f + sha256: 2f05954a3faf0700c14c1deddc085385160ee32abe111699c78d9cb277e915cc + category: main + optional: false +- name: decorator + version: 5.1.1 + manager: conda + platform: osx-arm64 + dependencies: + python: '>=3.5' + url: https://conda.anaconda.org/conda-forge/noarch/decorator-5.1.1-pyhd8ed1ab_0.tar.bz2 + hash: + md5: 43afe5ab04e35e17ba28649471dd7364 + sha256: 328a6a379f9bdfd0230e51de291ce858e6479411ea4b0545fb377c71662ef3e2 + category: main + optional: false +- name: distlib + version: 0.3.7 + manager: conda + platform: osx-arm64 + dependencies: + python: 2.7|>=3.6 + url: https://conda.anaconda.org/conda-forge/noarch/distlib-0.3.7-pyhd8ed1ab_0.conda + hash: + md5: 12d8aae6994f342618443a8f05c652a0 + sha256: 13c887cb4a29e1e853a118cfc0e42b72a7e1d1c50c66c0974885d37f0db30619 + category: main + optional: false +- name: exceptiongroup + version: 1.1.3 + manager: conda + platform: osx-arm64 + dependencies: + python: '>=3.7' + url: https://conda.anaconda.org/conda-forge/noarch/exceptiongroup-1.1.3-pyhd8ed1ab_0.conda + hash: + md5: e6518222753f519e911e83136d2158d9 + sha256: c28f715e049fe0f09785660bcbffa175ffb438720e5bc5a60d56d4b08364b315 + category: main + optional: false +- name: executing + version: 1.2.0 + manager: conda + platform: osx-arm64 + dependencies: + python: '>=2.7' + url: https://conda.anaconda.org/conda-forge/noarch/executing-1.2.0-pyhd8ed1ab_0.tar.bz2 + hash: + md5: 4c1bc140e2be5c8ba6e3acab99e25c50 + sha256: 9c03425cd58c474af20e179c9ba121a82984d6c4bfc896bbc992f5ed75dd7539 + category: main + optional: false +- name: filelock + version: 3.12.4 + manager: conda + platform: osx-arm64 + dependencies: + python: '>=3.7' + url: https://conda.anaconda.org/conda-forge/noarch/filelock-3.12.4-pyhd8ed1ab_0.conda + hash: + md5: 5173d4b8267a0699a43d73231e0b6596 + sha256: 7463c64364c14b34a7a69a7550a880ccd1ec6d3014001e55913e6e4e8b0c7395 + category: main + optional: false +- name: idna + version: '3.4' + manager: conda + platform: osx-arm64 + dependencies: + python: '>=3.6' + url: https://conda.anaconda.org/conda-forge/noarch/idna-3.4-pyhd8ed1ab_0.tar.bz2 + hash: + md5: 34272b248891bddccc64479f9a7fffed + sha256: 9887c35c374ec1847f167292d3fde023cb4c994a4ceeec283072b95440131f09 + category: main + optional: false +- name: iniconfig + version: 2.0.0 + manager: conda + platform: osx-arm64 + dependencies: + python: '>=3.7' + url: https://conda.anaconda.org/conda-forge/noarch/iniconfig-2.0.0-pyhd8ed1ab_0.conda + hash: + md5: f800d2da156d08e289b14e87e43c1ae5 + sha256: 38740c939b668b36a50ef455b077e8015b8c9cf89860d421b3fff86048f49666 + category: main + optional: false +- name: libcurl + version: 8.3.0 + manager: conda + platform: osx-arm64 + dependencies: + krb5: '>=1.21.2,<1.22.0a0' + libnghttp2: '>=1.52.0,<2.0a0' + libssh2: '>=1.11.0,<2.0a0' + libzlib: '>=1.2.13,<1.3.0a0' + openssl: '>=3.1.2,<4.0a0' + zstd: '>=1.5.5,<1.6.0a0' + url: https://conda.anaconda.org/conda-forge/osx-arm64/libcurl-8.3.0-hc52a3a8_0.conda + hash: + md5: f7cd06ec16f40bf40c565977c363d1fd + sha256: e4fb2f81a81449d6185129ade6c8c90cbde3259555a4080b742a566b29dbb535 + category: main + optional: false +- name: libopenblas + version: 0.3.24 + manager: conda + platform: osx-arm64 + dependencies: + libgfortran: 5.* + libgfortran5: '>=12.3.0' + llvm-openmp: '>=15.0.7' + url: https://conda.anaconda.org/conda-forge/osx-arm64/libopenblas-0.3.24-openmp_hd76b1f2_0.conda + hash: + md5: aacb05989f358affe1bafd4ea7294db4 + sha256: 21edfdf620ac5c93571aab452199b6b4622c445441dad88ab4d2eb326a7b91b3 + category: main + optional: false +- name: loguru + version: 0.7.2 + manager: conda + platform: osx-arm64 + dependencies: + python: '>=3.10,<3.11.0a0' + python_abi: 3.10.* + url: https://conda.anaconda.org/conda-forge/osx-arm64/loguru-0.7.2-py310hbe9552e_1.conda + hash: + md5: 0a7e5f041adb23f7d4d80d8210774a29 + sha256: cc7df7454f5be381d71dcc62aa80409cae58c509866e6bcff223e94fe465d21d + category: main + optional: false +- name: markupsafe + version: 2.1.3 + manager: conda + platform: osx-arm64 + dependencies: + python: '>=3.10,<3.11.0a0' + python_abi: 3.10.* + url: https://conda.anaconda.org/conda-forge/osx-arm64/markupsafe-2.1.3-py310h2aa6e3c_1.conda + hash: + md5: bcec7846de67985acb2152aa1fc0b45f + sha256: 4ea6a82aae3c846e8d2d4bf194124d552fb648b8ba07388be71bc52441fc69f1 + category: main + optional: false +- name: mdurl + version: 0.1.0 + manager: conda + platform: osx-arm64 + dependencies: + python: '>=3.6' + url: https://conda.anaconda.org/conda-forge/noarch/mdurl-0.1.0-pyhd8ed1ab_0.tar.bz2 + hash: + md5: f8dab71fdc13b1bf29a01248b156d268 + sha256: c678b9194e025b1fb665bec30ee20aab93399203583875b1dcc0a3b52a8f5523 + category: main + optional: false +- name: more-itertools + version: 10.1.0 + manager: conda + platform: osx-arm64 + dependencies: + python: '>=3.8' + url: https://conda.anaconda.org/conda-forge/noarch/more-itertools-10.1.0-pyhd8ed1ab_0.conda + hash: + md5: 8549fafed0351bbfaa1ddaa15fdf9b4e + sha256: 07ce65497dec537e490992758934ddbc4fb5ed9285b41387a7cca966f1a98a0f + category: main + optional: false +- name: msgpack-python + version: 1.0.6 + manager: conda + platform: osx-arm64 + dependencies: + libcxx: '>=15.0.7' + python: '>=3.10,<3.11.0a0' + python_abi: 3.10.* + url: https://conda.anaconda.org/conda-forge/osx-arm64/msgpack-python-1.0.6-py310h38f39d4_0.conda + hash: + md5: 54213bc624820c75a217981b1152983c + sha256: 87cc21669998bd04597ca847b242b1ec32b61e05f403aac6581a23286548ae30 + category: main + optional: false +- name: mypy_extensions + version: 1.0.0 + manager: conda + platform: osx-arm64 + dependencies: + python: '>=3.5' + url: https://conda.anaconda.org/conda-forge/noarch/mypy_extensions-1.0.0-pyha770c72_0.conda + hash: + md5: 4eccaeba205f0aed9ac3a9ea58568ca3 + sha256: f240217476e148e825420c6bc3a0c0efb08c0718b7042fae960400c02af858a3 + category: main + optional: false +- name: packaging + version: '23.2' + manager: conda + platform: osx-arm64 + dependencies: + python: '>=3.7' + url: https://conda.anaconda.org/conda-forge/noarch/packaging-23.2-pyhd8ed1ab_0.conda + hash: + md5: 79002079284aa895f883c6b7f3f88fd6 + sha256: 69b3ace6cca2dab9047b2c24926077d81d236bef45329d264b394001e3c3e52f + category: main + optional: false +- name: parso + version: 0.8.3 + manager: conda + platform: osx-arm64 + dependencies: + python: '>=3.6' + url: https://conda.anaconda.org/conda-forge/noarch/parso-0.8.3-pyhd8ed1ab_0.tar.bz2 + hash: + md5: 17a565a0c3899244e938cdf417e7b094 + sha256: 4e26d5daf5de0e31aa5e74ac56386a361b202433b83f024fdadbf07d4a244da4 + category: main + optional: false +- name: pastel + version: 0.2.1 + manager: conda + platform: osx-arm64 + dependencies: + python: '>=2.7' + url: https://conda.anaconda.org/conda-forge/noarch/pastel-0.2.1-pyhd8ed1ab_0.tar.bz2 + hash: + md5: a4eea5bff523f26442405bc5d1f52adb + sha256: 9153f0f38c76a09da7688a61fdbf8f3d7504e2326bef53e4ec20d994311b15bd + category: main + optional: false +- name: pickleshare + version: 0.7.5 + manager: conda + platform: osx-arm64 + dependencies: + python: '>=3' + url: https://conda.anaconda.org/conda-forge/noarch/pickleshare-0.7.5-py_1003.tar.bz2 + hash: + md5: 415f0ebb6198cc2801c73438a9fb5761 + sha256: a1ed1a094dd0d1b94a09ed85c283a0eb28943f2e6f22161fb45e128d35229738 + category: main + optional: false +- name: pkginfo + version: 1.9.6 + manager: conda + platform: osx-arm64 + dependencies: + python: '>=3.6' + url: https://conda.anaconda.org/conda-forge/noarch/pkginfo-1.9.6-pyhd8ed1ab_0.conda + hash: + md5: be1e9f1c65a1ed0f2ae9352fec99db64 + sha256: 7ea5a5af62a15376d9f4f9f3c134874d0b0710f39be719e849b7fa9ca8870502 + category: main + optional: false +- name: pluggy + version: 1.3.0 + manager: conda + platform: osx-arm64 + dependencies: + python: '>=3.8' + url: https://conda.anaconda.org/conda-forge/noarch/pluggy-1.3.0-pyhd8ed1ab_0.conda + hash: + md5: 2390bd10bed1f3fdc7a537fb5a447d8d + sha256: 7bf2ad9d747e71f1e93d0863c2c8061dd0f2fe1e582f28d292abfb40264a2eb5 + category: main + optional: false +- name: psutil + version: 5.9.5 + manager: conda + platform: osx-arm64 + dependencies: + python: '>=3.10,<3.11.0a0' + python_abi: 3.10.* + url: https://conda.anaconda.org/conda-forge/osx-arm64/psutil-5.9.5-py310h2aa6e3c_1.conda + hash: + md5: 23345ff87d77b88a64c86e33129306bc + sha256: dd1c98a7d0b5d56b042d1ed4c9985efe34736e14fa01aaaa845b3fdc73ec7213 + category: main + optional: false +- name: ptyprocess + version: 0.7.0 + manager: conda + platform: osx-arm64 + dependencies: + python: '' + url: https://conda.anaconda.org/conda-forge/noarch/ptyprocess-0.7.0-pyhd3deb0d_0.tar.bz2 + hash: + md5: 359eeb6536da0e687af562ed265ec263 + sha256: fb31e006a25eb2e18f3440eb8d17be44c8ccfae559499199f73584566d0a444a + category: main + optional: false +- name: pure_eval + version: 0.2.2 + manager: conda + platform: osx-arm64 + dependencies: + python: '>=3.5' + url: https://conda.anaconda.org/conda-forge/noarch/pure_eval-0.2.2-pyhd8ed1ab_0.tar.bz2 + hash: + md5: 6784285c7e55cb7212efabc79e4c2883 + sha256: 72792f9fc2b1820e37cc57f84a27bc819c71088c3002ca6db05a2e56404f9d44 + category: main + optional: false +- name: pycparser + version: '2.21' + manager: conda + platform: osx-arm64 + dependencies: + python: 2.7.*|>=3.4 + url: https://conda.anaconda.org/conda-forge/noarch/pycparser-2.21-pyhd8ed1ab_0.tar.bz2 + hash: + md5: 076becd9e05608f8dc72757d5f3a91ff + sha256: 74c63fd03f1f1ea2b54e8bc529fd1a600aaafb24027b738d0db87909ee3a33dc + category: main + optional: false +- name: pygments + version: 2.16.1 + manager: conda + platform: osx-arm64 + dependencies: + python: '>=3.7' + url: https://conda.anaconda.org/conda-forge/noarch/pygments-2.16.1-pyhd8ed1ab_0.conda + hash: + md5: 40e5cb18165466773619e5c963f00a7b + sha256: 3f0f0fadc6084960ec8cc00a32a03529c562ffea3b527eb73b1653183daad389 + category: main + optional: false +- name: pylev + version: 1.4.0 + manager: conda + platform: osx-arm64 + dependencies: + python: '>=3.3' + url: https://conda.anaconda.org/conda-forge/noarch/pylev-1.4.0-pyhd8ed1ab_0.tar.bz2 + hash: + md5: edf8651c4379d9d1495ad6229622d150 + sha256: 50bd91767686bfe769e50a5a1b883e238d944a6163fea43e7c0beaac54ca674f + category: main + optional: false +- name: pysocks + version: 1.7.1 + manager: conda + platform: osx-arm64 + dependencies: + __unix: '' + python: '>=3.8' + url: https://conda.anaconda.org/conda-forge/noarch/pysocks-1.7.1-pyha2e5f31_6.tar.bz2 + hash: + md5: 2a7de29fb590ca14b5243c4c812c8025 + sha256: a42f826e958a8d22e65b3394f437af7332610e43ee313393d1cf143f0a2d274b + category: main + optional: false +- name: python-tzdata + version: '2023.3' + manager: conda + platform: osx-arm64 + dependencies: + python: '>=3.6' + url: https://conda.anaconda.org/conda-forge/noarch/python-tzdata-2023.3-pyhd8ed1ab_0.conda + hash: + md5: 2590495f608a63625e165915fb4e2e34 + sha256: 0108888507014fb24573c31e4deceb61c99e63d37776dddcadd7c89b2ecae0b6 + category: main + optional: false +- name: pytz + version: 2023.3.post1 + manager: conda + platform: osx-arm64 + dependencies: + python: '>=3.6' + url: https://conda.anaconda.org/conda-forge/noarch/pytz-2023.3.post1-pyhd8ed1ab_0.conda + hash: + md5: c93346b446cd08c169d843ae5fc0da97 + sha256: 6b680e63d69aaf087cd43ca765a23838723ef59b0a328799e6363eb13f52c49e + category: main + optional: false +- name: pyyaml + version: 6.0.1 + manager: conda + platform: osx-arm64 + dependencies: + python: '>=3.10,<3.11.0a0' + python_abi: 3.10.* + yaml: '>=0.2.5,<0.3.0a0' + url: https://conda.anaconda.org/conda-forge/osx-arm64/pyyaml-6.0.1-py310h2aa6e3c_1.conda + hash: + md5: 0e7ccdd121ce7b486f1de7917178387c + sha256: 7b8668cd86d2421c62ec241f840d84a600b854afc91383a509bbb60ba907aeec + category: main + optional: false +- name: ruamel.yaml.clib + version: 0.2.7 + manager: conda + platform: osx-arm64 + dependencies: + python: '>=3.10,<3.11.0a0' + python_abi: 3.10.* + url: https://conda.anaconda.org/conda-forge/osx-arm64/ruamel.yaml.clib-0.2.7-py310h2aa6e3c_2.conda + hash: + md5: 856ce2f288064775aa652ad9da9acbdc + sha256: b7ea43b1c15b7a3b1010896feb19236a1da4f4f5bf4c59d71e1016eaa3fee4aa + category: main + optional: false +- name: setuptools + version: 68.2.2 + manager: conda + platform: osx-arm64 + dependencies: + python: '>=3.7' + url: https://conda.anaconda.org/conda-forge/noarch/setuptools-68.2.2-pyhd8ed1ab_0.conda + hash: + md5: fc2166155db840c634a1291a5c35a709 + sha256: 851901b1f8f2049edb36a675f0c3f9a98e1495ef4eb214761b048c6f696a06f7 + category: main + optional: false +- name: six + version: 1.16.0 + manager: conda + platform: osx-arm64 + dependencies: + python: '' + url: https://conda.anaconda.org/conda-forge/noarch/six-1.16.0-pyh6c4a22f_0.tar.bz2 + hash: + md5: e5f25f8dbc060e9a8d912e432202afc2 + sha256: a85c38227b446f42c5b90d9b642f2c0567880c15d72492d8da074a59c8f91dd6 + category: main + optional: false +- name: smmap + version: 3.0.5 + manager: conda + platform: osx-arm64 + dependencies: + python: '' + url: https://conda.anaconda.org/conda-forge/noarch/smmap-3.0.5-pyh44b312d_0.tar.bz2 + hash: + md5: 3a8dc70789709aa315325d5df06fb7e4 + sha256: 091de70ee6bfe063e0c0f77336975d124fd1e3f49b9c58d97c0c7b3d287c0002 + category: main + optional: false +- name: toml + version: 0.10.2 + manager: conda + platform: osx-arm64 + dependencies: + python: '>=2.7' + url: https://conda.anaconda.org/conda-forge/noarch/toml-0.10.2-pyhd8ed1ab_0.tar.bz2 + hash: + md5: f832c45a477c78bebd107098db465095 + sha256: f0f3d697349d6580e4c2f35ba9ce05c65dc34f9f049e85e45da03800b46139c1 + category: main + optional: false +- name: tomli + version: 2.0.1 + manager: conda + platform: osx-arm64 + dependencies: + python: '>=3.7' + url: https://conda.anaconda.org/conda-forge/noarch/tomli-2.0.1-pyhd8ed1ab_0.tar.bz2 + hash: + md5: 5844808ffab9ebdb694585b50ba02a96 + sha256: 4cd48aba7cd026d17e86886af48d0d2ebc67ed36f87f6534f4b67138f5a5a58f + category: main + optional: false +- name: tomlkit + version: 0.12.1 + manager: conda + platform: osx-arm64 + dependencies: + python: '>=3.7' + url: https://conda.anaconda.org/conda-forge/noarch/tomlkit-0.12.1-pyha770c72_0.conda + hash: + md5: 62f5b331c53d73e2f6c4c130b53518a0 + sha256: dc4abf58ca42f29e12b8c0f8aadedfca49cc1e97dab025d15cf000b1787df773 + category: main + optional: false +- name: toolz + version: 0.12.0 + manager: conda + platform: osx-arm64 + dependencies: + python: '>=3.5' + url: https://conda.anaconda.org/conda-forge/noarch/toolz-0.12.0-pyhd8ed1ab_0.tar.bz2 + hash: + md5: 92facfec94bc02d6ccf42e7173831a36 + sha256: 90229da7665175b0185183ab7b53f50af487c7f9b0f47cf09c184cbc139fd24b + category: main + optional: false +- name: traitlets + version: 5.11.2 + manager: conda + platform: osx-arm64 + dependencies: + python: '>=3.8' + url: https://conda.anaconda.org/conda-forge/noarch/traitlets-5.11.2-pyhd8ed1ab_0.conda + hash: + md5: bd3f90f7551e1cffb1f402880eb2cef1 + sha256: 81f2675ebc2bd6016c304770c81812aab8947953b0f0cca766077b127cc7e8f1 + category: main + optional: false +- name: typing_extensions + version: 4.8.0 + manager: conda + platform: osx-arm64 + dependencies: + python: '>=3.8' + url: https://conda.anaconda.org/conda-forge/noarch/typing_extensions-4.8.0-pyha770c72_0.conda + hash: + md5: 5b1be40a26d10a06f6d4f1f9e19fa0c7 + sha256: 38d16b5c53ec1af845d37d22e7bb0e6c934c7f19499123507c5a470f6f8b7dde + category: main + optional: false +- name: webencodings + version: 0.5.1 + manager: conda + platform: osx-arm64 + dependencies: + python: '>=2.6' + url: https://conda.anaconda.org/conda-forge/noarch/webencodings-0.5.1-pyhd8ed1ab_2.conda + hash: + md5: daf5160ff9cde3a468556965329085b9 + sha256: 2adf9bd5482802837bc8814cbe28d7b2a4cbd2e2c52e381329eaa283b3ed1944 + category: main + optional: false +- name: zipp + version: 3.17.0 + manager: conda + platform: osx-arm64 + dependencies: + python: '>=3.8' + url: https://conda.anaconda.org/conda-forge/noarch/zipp-3.17.0-pyhd8ed1ab_0.conda + hash: + md5: 2e4d6bc0b14e10f895fc6791a7d9b26a + sha256: bced1423fdbf77bca0a735187d05d9b9812d2163f60ab426fc10f11f92ecbe26 + category: main + optional: false +- name: asttokens + version: 2.4.0 + manager: conda + platform: osx-arm64 + dependencies: + python: '>=3.5' + six: '>=1.12.0' + url: https://conda.anaconda.org/conda-forge/noarch/asttokens-2.4.0-pyhd8ed1ab_0.conda + hash: + md5: 056f04e51dd63337e8d7c425c18c86f1 + sha256: e7e91e3fa26abe502be690371893f205d87a82c225668ea6e9a1ba26870388ee + category: main + optional: false +- name: backports.functools_lru_cache + version: 1.6.5 + manager: conda + platform: osx-arm64 + dependencies: + setuptools: '' + backports: '' + python: '>=3.6' + url: https://conda.anaconda.org/conda-forge/noarch/backports.functools_lru_cache-1.6.5-pyhd8ed1ab_0.conda + hash: + md5: 6b1b907661838a75d067a22f87996b2e + sha256: 7027bb689dd4ca4a08e3b25805de9d04239be6b31125993558f21f102a9d2700 + category: main + optional: false +- name: cffi + version: 1.16.0 + manager: conda + platform: osx-arm64 + dependencies: + libffi: '>=3.4,<4.0a0' + pycparser: '' + python: '>=3.10,<3.11.0a0' + python_abi: 3.10.* + url: https://conda.anaconda.org/conda-forge/osx-arm64/cffi-1.16.0-py310hdcd7c05_0.conda + hash: + md5: 8855823d908004e4d3b4fd4218795ad2 + sha256: 4edab3f1f855554e10950efe064b75138943812af829a764f9b570d1a7189d15 + category: main + optional: false +- name: click-default-group + version: 1.2.4 + manager: conda + platform: osx-arm64 + dependencies: + click: '' + python: '>=2.7' + url: https://conda.anaconda.org/conda-forge/noarch/click-default-group-1.2.4-pyhd8ed1ab_0.conda + hash: + md5: 7c2b6931f9b3548ed78478332095c3e9 + sha256: b36e35d735ddd29d7c592eb3de4b3979e13a9f76f1b4bc939f2cb4402758d6d0 + category: main + optional: false +- name: clikit + version: 0.6.2 + manager: conda + platform: osx-arm64 + dependencies: + python: '>=3.7' + pylev: '>=1.3,<2.0' + pastel: '>=0.2.0,<0.3.0' + url: https://conda.anaconda.org/conda-forge/noarch/clikit-0.6.2-pyhd8ed1ab_2.conda + hash: + md5: 02abb7b66b02e8b9f5a9b05454400087 + sha256: 2d582bc15d9116ec5467b565fb87d9034c8b56f60943e8eb69407f55f1ab5a78 + category: main + optional: false +- name: gitdb + version: 4.0.10 + manager: conda + platform: osx-arm64 + dependencies: + python: '>=3.4' + smmap: '>=3.0.1,<4' + url: https://conda.anaconda.org/conda-forge/noarch/gitdb-4.0.10-pyhd8ed1ab_0.conda + hash: + md5: 3706d2f3d7cb5dae600c833345a76132 + sha256: 0003ab2b971913380633c711bf49a54dcf06e179986c725b0925854b58878377 + category: main + optional: false +- name: hdf5 + version: 1.14.2 + manager: conda + platform: osx-arm64 + dependencies: + libaec: '>=1.0.6,<2.0a0' + libcurl: '>=8.2.1,<9.0a0' + libcxx: '>=15.0.7' + libgfortran: 5.* + libgfortran5: '>=12.3.0' + libzlib: '>=1.2.13,<1.3.0a0' + openssl: '>=3.1.2,<4.0a0' + url: https://conda.anaconda.org/conda-forge/osx-arm64/hdf5-1.14.2-nompi_h3aba7b3_100.conda + hash: + md5: 842c5b010b219058098ebfe5aa5891b9 + sha256: 2749910e21a7d1f88a81dc4709fc3565a4a3954eadb4409e7a5be1fc13a5b7ca + category: main + optional: false +- name: html5lib + version: '1.1' + manager: conda + platform: osx-arm64 + dependencies: + python: '' + webencodings: '' + six: '>=1.9' + url: https://conda.anaconda.org/conda-forge/noarch/html5lib-1.1-pyh9f0ad1d_0.tar.bz2 + hash: + md5: b2355343d6315c892543200231d7154a + sha256: 9ad06446fe9847e86cb20d220bf11614afcd2cbe9f58096f08d5d4018877bee4 + category: main + optional: false +- name: importlib-metadata + version: 6.8.0 + manager: conda + platform: osx-arm64 + dependencies: + python: '>=3.8' + zipp: '>=0.5' + url: https://conda.anaconda.org/conda-forge/noarch/importlib-metadata-6.8.0-pyha770c72_0.conda + hash: + md5: 4e9f59a060c3be52bc4ddc46ee9b6946 + sha256: 2797ed927d65324309b6c630190d917b9f2111e0c217b721f80429aeb57f9fcf + category: main + optional: false +- name: jaraco.classes + version: 3.3.0 + manager: conda + platform: osx-arm64 + dependencies: + more-itertools: '' + python: '>=3.7' + url: https://conda.anaconda.org/conda-forge/noarch/jaraco.classes-3.3.0-pyhd8ed1ab_0.conda + hash: + md5: e9f79248d30e942f7c358ff21a1790f5 + sha256: 14f5240c3834e1b784dd41a5a14392d9150dff62a74ae851f73e65d2e2bbd891 + category: main + optional: false +- name: jedi + version: 0.19.1 + manager: conda + platform: osx-arm64 + dependencies: + python: '>=3.6' + parso: '>=0.8.3,<0.9.0' + url: https://conda.anaconda.org/conda-forge/noarch/jedi-0.19.1-pyhd8ed1ab_0.conda + hash: + md5: 81a3be0b2023e1ea8555781f0ad904a2 + sha256: 362f0936ef37dfd1eaa860190e42a6ebf8faa094eaa3be6aa4d9ace95f40047a + category: main + optional: false +- name: jinja2 + version: 3.1.2 + manager: conda + platform: osx-arm64 + dependencies: + python: '>=3.7' + markupsafe: '>=2.0' + url: https://conda.anaconda.org/conda-forge/noarch/jinja2-3.1.2-pyhd8ed1ab_1.tar.bz2 + hash: + md5: c8490ed5c70966d232fdd389d0dbed37 + sha256: b045faba7130ab263db6a8fdc96b1a3de5fcf85c4a607c5f11a49e76851500b5 + category: main + optional: false +- name: libblas + version: 3.9.0 + manager: conda + platform: osx-arm64 + dependencies: + libopenblas: '>=0.3.24,<1.0a0' + url: https://conda.anaconda.org/conda-forge/osx-arm64/libblas-3.9.0-18_osxarm64_openblas.conda + hash: + md5: 928d0c0b57e342a8629f5f5e001ee0d0 + sha256: efef2710d5309124e200dccb883cdd66531f3f4dcb4af2eb4b7b1e5cf1bac57d + category: main + optional: false +- name: markdown-it-py + version: 3.0.0 + manager: conda + platform: osx-arm64 + dependencies: + python: '>=3.8' + mdurl: '>=0.1,<1' + url: https://conda.anaconda.org/conda-forge/noarch/markdown-it-py-3.0.0-pyhd8ed1ab_0.conda + hash: + md5: 93a8e71256479c62074356ef6ebf501b + sha256: c041b0eaf7a6af3344d5dd452815cdc148d6284fec25a4fa3f4263b3a021e962 + category: main + optional: false +- name: matplotlib-inline + version: 0.1.6 + manager: conda + platform: osx-arm64 + dependencies: + traitlets: '' + python: '>=3.6' + url: https://conda.anaconda.org/conda-forge/noarch/matplotlib-inline-0.1.6-pyhd8ed1ab_0.tar.bz2 + hash: + md5: b21613793fcc81d944c76c9f2864a7de + sha256: aa091b88aec55bfa2d9207028d8cdc689b9efb090ae27b99557e93c675be2f3c + category: main + optional: false +- name: mypy + version: 1.5.1 + manager: conda + platform: osx-arm64 + dependencies: + mypy_extensions: '>=1.0.0' + psutil: '>=4.0' + python: '>=3.10,<3.11.0a0' + python_abi: 3.10.* + tomli: '>=1.1.0' + typing_extensions: '>=4.1.0' + url: https://conda.anaconda.org/conda-forge/osx-arm64/mypy-1.5.1-py310h2aa6e3c_1.conda + hash: + md5: d46f120a1bd581edb8c45b74cdb8bef1 + sha256: 6c3053ae073ccc033b716664f02ab5ad86d0147735ba1b69019fe435e8adb0e6 + category: main + optional: false +- name: nodeenv + version: 1.8.0 + manager: conda + platform: osx-arm64 + dependencies: + setuptools: '' + python: 2.7|>=3.7 + url: https://conda.anaconda.org/conda-forge/noarch/nodeenv-1.8.0-pyhd8ed1ab_0.conda + hash: + md5: 2a75b296096adabbabadd5e9782e5fcc + sha256: 1320306234552717149f36f825ddc7e27ea295f24829e9db4cc6ceaff0b032bd + category: main + optional: false +- name: pexpect + version: 4.8.0 + manager: conda + platform: osx-arm64 + dependencies: + python: '' + ptyprocess: '>=0.5' + url: https://conda.anaconda.org/conda-forge/noarch/pexpect-4.8.0-pyh1a96a4e_2.tar.bz2 + hash: + md5: 330448ce4403cc74990ac07c555942a1 + sha256: 07706c0417ead94f359ca7278f65452d3c396448777aba1da6a11fc351bdca9a + category: main + optional: false +- name: pytest + version: 7.4.2 + manager: conda + platform: osx-arm64 + dependencies: + packaging: '' + colorama: '' + iniconfig: '' + python: '>=3.7' + exceptiongroup: '>=1.0.0rc8' + tomli: '>=1.0.0' + pluggy: '>=0.12,<2.0' + url: https://conda.anaconda.org/conda-forge/noarch/pytest-7.4.2-pyhd8ed1ab_0.conda + hash: + md5: 6dd662ff5ac9a783e5c940ce9f3fe649 + sha256: 150bfb2a86dffd4ce1e91c2d61dde5779fb3ee338675e210fec4ef508ffff28c + category: main + optional: false +- name: python-dateutil + version: 2.8.2 + manager: conda + platform: osx-arm64 + dependencies: + python: '>=3.6' + six: '>=1.5' + url: https://conda.anaconda.org/conda-forge/noarch/python-dateutil-2.8.2-pyhd8ed1ab_0.tar.bz2 + hash: + md5: dd999d1cc9f79e67dbb855c8924c7984 + sha256: 54d7785c7678166aa45adeaccfc1d2b8c3c799ca2dc05d4a82bb39b1968bd7da + category: main + optional: false +- name: ruamel.yaml + version: 0.17.35 + manager: conda + platform: osx-arm64 + dependencies: + python: '>=3.10,<3.11.0a0' + python_abi: 3.10.* + ruamel.yaml.clib: '>=0.1.2' + setuptools: '' + url: https://conda.anaconda.org/conda-forge/osx-arm64/ruamel.yaml-0.17.35-py310h2aa6e3c_0.conda + hash: + md5: 7a7ddc6b616ed3fe21476a19d2b1eddc + sha256: b512b358c2598aeffdc06e2b61062485e827f6fb82238b7f75bbadc404afbb19 + category: main + optional: false +- name: typing-extensions + version: 4.8.0 + manager: conda + platform: osx-arm64 + dependencies: + typing_extensions: 4.8.0 + url: https://conda.anaconda.org/conda-forge/noarch/typing-extensions-4.8.0-hd8ed1ab_0.conda + hash: + md5: 384462e63262a527bda564fa2d9126c0 + sha256: d6e1dddd0c372218ef15912383d351ac8c73465cbf16238017f0269813cafe2d + category: main + optional: false +- name: urllib3 + version: 1.26.17 + manager: conda + platform: osx-arm64 + dependencies: + python: '>=3.7' + brotli-python: '>=1.0.9' + pysocks: '>=1.5.6,<2.0,!=1.5.7' + url: https://conda.anaconda.org/conda-forge/noarch/urllib3-1.26.17-pyhd8ed1ab_0.conda + hash: + md5: 3b94800e11804555e40971c97fd3e801 + sha256: 6fbd62aa5fc060bfada26a0f4ad1dab6709a1fe62b3b04dbed49fcc94663979d + category: main + optional: false +- name: gitpython + version: 3.1.37 + manager: conda + platform: osx-arm64 + dependencies: + python: '>=3.7' + typing_extensions: '>=3.7.4.3' + gitdb: '>=4.0.1,<5' + url: https://conda.anaconda.org/conda-forge/noarch/gitpython-3.1.37-pyhd8ed1ab_0.conda + hash: + md5: 8b94c329190fa6814f412adf2ab0f0a2 + sha256: 1993b954fcaea3a3927ad5e6ff0db49855fc07ba77aa42b5b9d8056e52e787a0 + category: main + optional: false +- name: importlib_metadata + version: 6.8.0 + manager: conda + platform: osx-arm64 + 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 + hash: + md5: b279b07ce18058034e5b3606ba103a8b + sha256: b96e01dc42d547d6d9ceb1c5b52a5232cc04e40153534350f702c3e0418a6b3f + category: main + optional: false +- name: libcblas + version: 3.9.0 + manager: conda + platform: osx-arm64 + dependencies: + libblas: 3.9.0 + url: https://conda.anaconda.org/conda-forge/osx-arm64/libcblas-3.9.0-18_osxarm64_openblas.conda + hash: + md5: ee0108105d7181f1c6f8c4269883ff3b + sha256: d01e63f9b02b3b45283319341662b2fc5e5598019ba3bceb131b0f79c6962ca8 + category: main + optional: false +- name: liblapack + version: 3.9.0 + manager: conda + platform: osx-arm64 + dependencies: + libblas: 3.9.0 + url: https://conda.anaconda.org/conda-forge/osx-arm64/liblapack-3.9.0-18_osxarm64_openblas.conda + hash: + md5: 92cd5c16ed732ac6c439145aa21ec7c5 + sha256: 8e19b14ba16d286d889e3d1c78aaa3344e4c6dff50a21b54ee00ee88a95bb2e9 + category: main + optional: false +- name: libnetcdf + version: 4.9.2 + manager: conda + platform: osx-arm64 + dependencies: + blosc: '>=1.21.4,<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' + libcxx: '>=15.0.7' + libxml2: '>=2.11.5,<2.12.0a0' + libzip: '>=1.10.1,<2.0a0' + libzlib: '>=1.2.13,<1.3.0a0' + openssl: '>=3.1.2,<4.0a0' + zlib: '' + zstd: '>=1.5.5,<1.6.0a0' + url: https://conda.anaconda.org/conda-forge/osx-arm64/libnetcdf-4.9.2-nompi_hb2fb864_112.conda + hash: + md5: fdd8c3b65f9369c4a5bbf23164ea8e19 + sha256: fef33b99225691fce165cd1aadb85c823e2a3a9e5d67c3069f1d6b9ebbf53fdf + category: main + optional: false +- name: platformdirs + version: 3.11.0 + manager: conda + platform: osx-arm64 + dependencies: + python: '>=3.7' + typing-extensions: '>=4.6.3' + url: https://conda.anaconda.org/conda-forge/noarch/platformdirs-3.11.0-pyhd8ed1ab_0.conda + hash: + md5: 8f567c0a74aa44cf732f15773b4083b0 + sha256: b3d809ff5a18ee8514bba8bc05a23b4cdf1758090a18a2cf742af38aed405144 + category: main + optional: false +- name: pydantic + version: 1.10.13 + manager: conda + platform: osx-arm64 + dependencies: + python: '>=3.10,<3.11.0a0' + python_abi: 3.10.* + typing-extensions: '>=4.2.0' + url: https://conda.anaconda.org/conda-forge/osx-arm64/pydantic-1.10.13-py310h2aa6e3c_0.conda + hash: + md5: 9bb5347e907595d95fd18937782cf6e8 + sha256: c6e2a4a6b0094db419395857f70138303f9206b70e51ad99bc488a819c210210 + category: main + optional: false +- name: requests + version: 2.31.0 + manager: conda + platform: osx-arm64 + dependencies: + python: '>=3.7' + idna: '>=2.5,<4' + certifi: '>=2017.4.17' + charset-normalizer: '>=2,<4' + urllib3: '>=1.21.1,<3' + url: https://conda.anaconda.org/conda-forge/noarch/requests-2.31.0-pyhd8ed1ab_0.conda + hash: + md5: a30144e4156cdbb236f99ebb49828f8b + sha256: 9f629d6fd3c8ac5f2a198639fe7af87c4db2ac9235279164bfe0fcb49d8c4bad + category: main + optional: false +- name: rich + version: 13.6.0 + manager: conda + platform: osx-arm64 + dependencies: + python: '>=3.7.0' + typing_extensions: '>=4.0.0,<5.0.0' + pygments: '>=2.13.0,<3.0.0' + markdown-it-py: '>=2.2.0' + url: https://conda.anaconda.org/conda-forge/noarch/rich-13.6.0-pyhd8ed1ab_0.conda + hash: + md5: 3ca4829f40710f581ca1d76bc907e99f + sha256: a2f8838a75ab8c2c1da0a813c7569d4f6efba0d2b5dc3a7659e2cb6d96bd8e19 + category: main + optional: false +- name: stack_data + version: 0.6.2 + manager: conda + platform: osx-arm64 + dependencies: + asttokens: '' + executing: '' + pure_eval: '' + python: '>=3.5' + url: https://conda.anaconda.org/conda-forge/noarch/stack_data-0.6.2-pyhd8ed1ab_0.conda + hash: + md5: e7df0fdd404616638df5ece6e69ba7af + sha256: a58433e75229bec39f3be50c02efbe9b7083e53a1f31d8ee247564f370191eec + category: main + optional: false +- name: ukkonen + version: 1.0.1 + manager: conda + platform: osx-arm64 + dependencies: + cffi: '' + libcxx: '>=15.0.7' + python: '>=3.10,<3.11.0a0' + python_abi: 3.10.* + url: https://conda.anaconda.org/conda-forge/osx-arm64/ukkonen-1.0.1-py310h38f39d4_4.conda + hash: + md5: d44fc7ee5098e2cf4db125eda63878c6 + sha256: 3d668d21ba00d5e8c90c64cfaffc5bccd8b3349f584f1e96c7423f372289227a + category: main + optional: false +- name: wcwidth + version: 0.2.8 + manager: conda + platform: osx-arm64 + dependencies: + backports.functools_lru_cache: '' + python: '>=3.6' + url: https://conda.anaconda.org/conda-forge/noarch/wcwidth-0.2.8-pyhd8ed1ab_0.conda + hash: + md5: 367386d2575a0e62412448eda1012efd + sha256: e3b6d2041b4d175a1437dccc71b4ef2e53111dfcc64b219fef4bed379e6ef236 + category: main + optional: false +- name: cachecontrol + version: 0.13.1 + manager: conda + platform: osx-arm64 + dependencies: + python: '>=3.7' + msgpack-python: '>=0.5.2' + requests: '>=2.16.0' + url: https://conda.anaconda.org/conda-forge/noarch/cachecontrol-0.13.1-pyhd8ed1ab_0.conda + hash: + md5: 174bd699bb5aa9e2622eb4b288276ff8 + sha256: aae7ab3a54989f9bf9273e4a17c911ba339a8b9354250bc11fb8eff2e3f4be60 + category: main + optional: false +- name: ensureconda + version: 1.4.3 + manager: conda + platform: osx-arm64 + dependencies: + appdirs: '' + filelock: '' + python: '>=3.7' + requests: '>=2' + click: '>=5.1' + url: https://conda.anaconda.org/conda-forge/noarch/ensureconda-1.4.3-pyhd8ed1ab_0.tar.bz2 + hash: + md5: c99ae3abf501990769047b4b40a98f17 + sha256: b71784b6c24d2320b2f796d074e75e7dd1be7b7fc0f719c5cf3a582270b368d6 + category: main + optional: false +- name: identify + version: 2.5.30 + manager: conda + platform: osx-arm64 + dependencies: + ukkonen: '' + python: '>=3.6' + url: https://conda.anaconda.org/conda-forge/noarch/identify-2.5.30-pyhd8ed1ab_0.conda + hash: + md5: b7a2e3bb89bda8c69839485c20aabadf + sha256: dc9901654af0556209bb5b4194ef2deb643bc641ac859a31f13c41b945b60150 + category: main + optional: false +- name: keyring + version: 24.2.0 + manager: conda + platform: osx-arm64 + dependencies: + importlib_metadata: '>=4.11.4' + jaraco.classes: '' + python: '>=3.10,<3.11.0a0' + python_abi: 3.10.* + url: https://conda.anaconda.org/conda-forge/osx-arm64/keyring-24.2.0-py310hbe9552e_1.conda + hash: + md5: 4871e0840ce8b7157224ec284740152e + sha256: 8d2ee088eac6bbb0b70f18598caccf816cf86e81975da4277e4e7f36ecb83b54 + category: main + optional: false +- name: numpy + version: 1.22.4 + manager: conda + platform: osx-arm64 + dependencies: + libblas: '>=3.9.0,<4.0a0' + libcblas: '>=3.9.0,<4.0a0' + libcxx: '>=13.0.1' + liblapack: '>=3.9.0,<4.0a0' + python: '>=3.10,<3.11.0a0' + python_abi: 3.10.* + url: https://conda.anaconda.org/conda-forge/osx-arm64/numpy-1.22.4-py310h0a343b5_0.tar.bz2 + hash: + md5: 7f336a1a159b4ba15e209353029ea8af + sha256: bec72e79a265dd1ce30ca2bfdf23f90d28b0da4b49136c11f1f864cf9d4b4366 + category: main + optional: false +- name: prompt-toolkit + version: 3.0.39 + manager: conda + platform: osx-arm64 + dependencies: + wcwidth: '' + python: '>=3.7' + url: https://conda.anaconda.org/conda-forge/noarch/prompt-toolkit-3.0.39-pyha770c72_0.conda + hash: + md5: a4986c6bb5b0d05a38855b0880a5f425 + sha256: 10e7fdc75d4b85633be6b12a70b857053987127a808caa0f88b2cba4b3ce6359 + category: main + optional: false +- name: rich-click + version: 1.6.1 + manager: conda + platform: osx-arm64 + dependencies: + python: '>=3.7' + click: '>=7,<9' + rich: '>=10' + url: https://conda.anaconda.org/conda-forge/noarch/rich-click-1.6.1-pyhd8ed1ab_0.conda + hash: + md5: 59a168d82c582248859d8dc8075da6f6 + sha256: ed8ade65e48279dc9caff53230391d8f72bea6d55f6951fbf7fcc39d762e1e5e + category: main + optional: false +- name: virtualenv + version: 20.24.4 + manager: conda + platform: osx-arm64 + dependencies: + python: '>=3.8' + distlib: <1,>=0.3.7 + filelock: <4,>=3.12.2 + platformdirs: <4,>=3.9.1 + url: https://conda.anaconda.org/conda-forge/noarch/virtualenv-20.24.4-pyhd8ed1ab_0.conda + hash: + md5: c3feaf947264a59a125e8c26e98c3c5a + sha256: 85c96449202ca87ec12783d8675b3655b4cd7b7afe49f2dc37d743adb0ed177f + category: main + optional: false +- name: bump-my-version + version: 0.10.0 + manager: conda + platform: osx-arm64 + dependencies: + click: '' + rich: '' + tomlkit: '' + rich-click: '' + python: '>=3.8' + pydantic: <2.0.0 + url: https://conda.anaconda.org/conda-forge/noarch/bump-my-version-0.10.0-pyhd8ed1ab_0.conda + hash: + md5: d0cfdd7365c03381f3d8c4402a88c50c + sha256: 433cc87b7e1700aaf1ed9fe6f402bfda945409379cafb0d78ed757ca74e364e5 + category: main + optional: false +- name: cachecontrol-with-filecache + version: 0.13.1 + manager: conda + platform: osx-arm64 + dependencies: + python: '>=3.7' + filelock: '>=3.8.0' + cachecontrol: 0.13.1 + url: https://conda.anaconda.org/conda-forge/noarch/cachecontrol-with-filecache-0.13.1-pyhd8ed1ab_0.conda + hash: + md5: 8c4781ca0893cff3a64423954ce234a1 + sha256: 7fd3cd4a667da284ae3aad9b8cb4d592099bc02ed6566cbae00bd8c0b0604e85 + category: main + optional: false +- name: cftime + version: 1.6.2 + manager: conda + platform: osx-arm64 + dependencies: + numpy: '>=1.22.4,<2.0a0' + python: '>=3.10,<3.11.0a0' + python_abi: 3.10.* + url: https://conda.anaconda.org/conda-forge/osx-arm64/cftime-1.6.2-py310h280b8fa_2.conda + hash: + md5: 34a86810a8f9de90475df64193e02730 + sha256: b7883c7b84ddaea6c9cbd607d664490e884864cf2e80547af64a4dcd85738b8c + category: main + optional: false +- name: pandas + version: 2.1.1 + manager: conda + platform: osx-arm64 + dependencies: + libcxx: '>=15.0.7' + numpy: '>=1.22.4,<2.0a0' + python: '>=3.10,<3.11.0a0' + python-dateutil: '>=2.8.1' + python-tzdata: '>=2022a' + python_abi: 3.10.* + pytz: '>=2020.1' + url: https://conda.anaconda.org/conda-forge/osx-arm64/pandas-2.1.1-py310h5924a0a_1.conda + hash: + md5: 95f2d84cdd91c97d6cd0e29ec9bcce39 + sha256: e9e97fce2e638f0c2d9b7bca0c23a75385996601922e0fa097a9cb7b6cda3566 + category: main + optional: false +- name: pre-commit + version: 3.4.0 + manager: conda + platform: osx-arm64 + dependencies: + python: '>=3.8' + pyyaml: '>=5.1' + identify: '>=1.0.0' + nodeenv: '>=0.11.1' + cfgv: '>=2.0.0' + virtualenv: '>=20.10.0' + url: https://conda.anaconda.org/conda-forge/noarch/pre-commit-3.4.0-pyha770c72_2.conda + hash: + md5: 09cd3006f61e7a7054405f81362e0a5f + sha256: b4ffac42cec8a6c38c528d7c0c5023557ea97b581dbe61bb290d8e630a246e1b + category: main + optional: false +- name: prompt_toolkit + version: 3.0.39 + manager: conda + platform: osx-arm64 + dependencies: + prompt-toolkit: '>=3.0.39,<3.0.40.0a0' + url: https://conda.anaconda.org/conda-forge/noarch/prompt_toolkit-3.0.39-hd8ed1ab_0.conda + hash: + md5: 4bbbe67d5df19db30f04b8e344dc9976 + sha256: 89f7fecc7355181dbc2ab851e668a2fce6aa4830b336a34c93b59bda93206270 + category: main + optional: false +- name: scipy + version: 1.11.3 + manager: conda + platform: osx-arm64 + dependencies: + libblas: '>=3.9.0,<4.0a0' + libcblas: '>=3.9.0,<4.0a0' + libcxx: '>=15.0.7' + libgfortran: 5.* + libgfortran5: '>=13.2.0' + liblapack: '>=3.9.0,<4.0a0' + numpy: '>=1.22.4,<2.0a0' + python: '>=3.10,<3.11.0a0' + python_abi: 3.10.* + url: https://conda.anaconda.org/conda-forge/osx-arm64/scipy-1.11.3-py310hd1cfc7d_0.conda + hash: + md5: 23fe39648c3bc73e3d09b872f32fef1a + sha256: aa43dd29d038cda7f6151128e33c211cd974134be22f044227484832f1a256e6 + category: main + optional: false +- name: conda-lock + version: 2.3.0 + manager: conda + platform: osx-arm64 + dependencies: + typing_extensions: '' + jinja2: '' + ruamel.yaml: '' + tomli: '' + click-default-group: '' + python: '>=3.8' + pyyaml: '>=5.1' + click: '>=8.0' + packaging: '>=20.4' + requests: '>=2.18' + ensureconda: '>=1.3' + keyring: '>=21.2.0' + gitpython: '>=3.1.30' + html5lib: '>=1.0' + cachy: '>=0.3.0' + clikit: '>=0.6.2' + crashtest: '>=0.3.0' + pkginfo: '>=1.4' + tomlkit: '>=0.7.0' + virtualenv: '>=20.0.26' + pydantic: '>=1.10' + toolz: '>=0.12.0,<1.0.0' + cachecontrol-with-filecache: '>=0.12.9' + urllib3: '>=1.26.5,<2.0' + url: https://conda.anaconda.org/conda-forge/noarch/conda-lock-2.3.0-pyhd8ed1ab_0.conda + hash: + md5: 559bd2e1ad6f260cd4f2fd7d7b21bcca + sha256: b48875bb18c507895d5bd732746e44bbed8f56be66fc933bfe7e1af1bc845fe6 + category: main + optional: false +- name: ipython + version: 8.16.1 + manager: conda + platform: osx-arm64 + dependencies: + typing_extensions: '' + decorator: '' + exceptiongroup: '' + __osx: '' + stack_data: '' + matplotlib-inline: '' + backcall: '' + appnope: '' + pickleshare: '' + python: '>=3.9' + pygments: '>=2.4.0' + traitlets: '>=5' + jedi: '>=0.16' + pexpect: '>4.3' + prompt_toolkit: '>=3.0.30,<3.1.0,!=3.0.37' + url: https://conda.anaconda.org/conda-forge/noarch/ipython-8.16.1-pyh31c8845_0.conda + hash: + md5: 531bac092414642fdead7a511357485a + sha256: 77cfbc15ee2ad8976009a6880bb1f7c716db44e23594fba7c9c382135e02eb03 + category: main + optional: false +- name: netcdf4 + version: 1.6.4 + manager: conda + platform: osx-arm64 + dependencies: + certifi: '' + cftime: '' + hdf5: '>=1.14.2,<1.14.3.0a0' + libnetcdf: '>=4.9.2,<4.9.3.0a0' + libzlib: '>=1.2.13,<1.3.0a0' + numpy: '>=1.22.4,<2.0a0' + python: '>=3.10,<3.11.0a0' + python_abi: 3.10.* + setuptools: '' + url: https://conda.anaconda.org/conda-forge/osx-arm64/netcdf4-1.6.4-nompi_py310h05def64_103.conda + hash: + md5: c18d69d92c97f64f0ecf30f952f64160 + sha256: 4c77f3dd52f42664fefe620fafa51860e62e8f51f36db87f462ca73453df6fa3 + category: main + optional: false +- name: xarray + version: 2023.9.0 + manager: conda + platform: osx-arm64 + dependencies: + python: '>=3.9' + packaging: '>=21.3' + numpy: '>=1.21' + pandas: '>=1.4' + url: https://conda.anaconda.org/conda-forge/noarch/xarray-2023.9.0-pyhd8ed1ab_0.conda + hash: + md5: 158c89bbc0f2597f33e8ce1aea59e0ee + sha256: fd86c6b5da4469df74aec93d8dbc8c8903377a81d7c245a14745b38b70799803 + category: main + optional: false +- name: ipdb + version: 0.13.13 + manager: conda + platform: osx-arm64 + dependencies: + ipython: '' + decorator: '' + python: '>=2.7' + toml: '>=0.10.2' + url: https://conda.anaconda.org/conda-forge/noarch/ipdb-0.13.13-pyhd8ed1ab_0.conda + hash: + md5: 86baea403007ad4898d85c897c80b758 + sha256: 16ea279fae5b3b77a694bf7bc8bcda9c310be39d6fbf78664d3111bcd5f5758a + category: main + optional: false +- name: ca-certificates + version: 2023.7.22 + manager: conda + platform: win-64 + dependencies: {} + url: https://conda.anaconda.org/conda-forge/win-64/ca-certificates-2023.7.22-h56e8100_0.conda + hash: + md5: b1c2327b36f1a25d96f2039b0d3e3739 + sha256: b85a6f307f8e1c803cb570bdfb9e4d811a361417873ecd2ecf687587405a72e0 + category: main + optional: false +- name: intel-openmp + version: 2023.2.0 + manager: conda + platform: win-64 + dependencies: {} + url: https://conda.anaconda.org/conda-forge/win-64/intel-openmp-2023.2.0-h57928b3_50496.conda + hash: + md5: 519f9c42672f1e8a334ec9471e93f4fe + sha256: 38367c264bace64d6f939c1170cda3aba2eb0fb2300570c16a8c63aff9ca8031 + category: main + optional: false +- name: msys2-conda-epoch + version: '20160418' + manager: conda + platform: win-64 + dependencies: {} + url: https://conda.anaconda.org/conda-forge/win-64/msys2-conda-epoch-20160418-1.tar.bz2 + hash: + md5: b0309b72560df66f71a9d5e34a5efdfa + sha256: 99358d58d778abee4dca82ad29fb58058571f19b0f86138363c260049d4ac7f1 + category: main + optional: false +- name: python_abi + version: '3.10' + manager: conda + platform: win-64 + dependencies: {} + url: https://conda.anaconda.org/conda-forge/win-64/python_abi-3.10-4_cp310.conda + hash: + md5: b41195997c14fb7473d26637ea4c3946 + sha256: 19066c462fd0e32c64503c688f77cb603beb4019b812caf855d03f2a5447960b + category: main + optional: false +- name: tzdata + version: 2023c + manager: conda + platform: win-64 + dependencies: {} + url: https://conda.anaconda.org/conda-forge/noarch/tzdata-2023c-h71feb2d_0.conda + hash: + md5: 939e3e74d8be4dac89ce83b20de2492a + sha256: 0449138224adfa125b220154408419ec37c06b0b49f63c5954724325903ecf55 + category: main + optional: false +- name: ucrt + version: 10.0.22621.0 + manager: conda + platform: win-64 + dependencies: {} + url: https://conda.anaconda.org/conda-forge/win-64/ucrt-10.0.22621.0-h57928b3_0.tar.bz2 + hash: + md5: 72608f6cd3e5898229c3ea16deb1ac43 + sha256: f29cdaf8712008f6b419b8b1a403923b00ab2504bfe0fb2ba8eb60e72d4f14c6 + category: main + optional: false +- name: m2w64-gmp + version: 6.1.0 + manager: conda + platform: win-64 + dependencies: + msys2-conda-epoch: '20160418' + url: https://conda.anaconda.org/conda-forge/win-64/m2w64-gmp-6.1.0-2.tar.bz2 + hash: + md5: 53a1c73e1e3d185516d7e3af177596d9 + sha256: 7e3cd95f554660de45f8323fca359e904e8d203efaf07a4d311e46d611481ed1 + category: main + optional: false +- name: m2w64-libwinpthread-git + version: 5.0.0.4634.697f757 + manager: conda + platform: win-64 + dependencies: + msys2-conda-epoch: '20160418' + url: https://conda.anaconda.org/conda-forge/win-64/m2w64-libwinpthread-git-5.0.0.4634.697f757-2.tar.bz2 + hash: + md5: 774130a326dee16f1ceb05cc687ee4f0 + sha256: f63a09b2cae7defae0480f1740015d6235f1861afa6fe2e2d3e10bd0d1314ee0 + category: main + optional: false +- name: vc14_runtime + version: 14.36.32532 + manager: conda + platform: win-64 + dependencies: + ucrt: '>=10.0.20348.0' + url: https://conda.anaconda.org/conda-forge/win-64/vc14_runtime-14.36.32532-hdcecf7f_17.conda + hash: + md5: d0de20f2f3fc806a81b44fcdd941aaf7 + sha256: b317d49af32d5c031828e62c08d56f01d9a64cd3f40d4cccb052bc38c7a9e62e + category: main + optional: false +- name: m2w64-gcc-libs-core + version: 5.3.0 + manager: conda + platform: win-64 + dependencies: + m2w64-gmp: '' + m2w64-libwinpthread-git: '' + msys2-conda-epoch: '20160418' + url: https://conda.anaconda.org/conda-forge/win-64/m2w64-gcc-libs-core-5.3.0-7.tar.bz2 + hash: + md5: 4289d80fb4d272f1f3b56cfe87ac90bd + sha256: 58afdfe859ed2e9a9b1cc06bc408720cb2c3a6a132e59d4805b090d7574f4ee0 + category: main + optional: false +- name: vc + version: '14.3' + manager: conda + platform: win-64 + dependencies: + vc14_runtime: '>=14.36.32532' + url: https://conda.anaconda.org/conda-forge/win-64/vc-14.3-h64f974e_17.conda + hash: + md5: 67ff6791f235bb606659bf2a5c169191 + sha256: 86ae94bf680980776aa761c2b0909a0ddbe1f817e7eeb8b16a1730f10f8891b6 + category: main + optional: false +- name: vs2015_runtime + version: 14.36.32532 + manager: conda + platform: win-64 + dependencies: + vc14_runtime: '>=14.36.32532' + url: https://conda.anaconda.org/conda-forge/win-64/vs2015_runtime-14.36.32532-h05e6639_17.conda + hash: + md5: 4618046c39f7c81861e53ded842e738a + sha256: 5ecbd731dc7f13762d67be0eadc47eb7f14713005e430d9b5fc680e965ac0f81 + category: main + optional: false +- name: bzip2 + version: 1.0.8 + manager: conda + platform: win-64 + dependencies: + vc: '>=14.1,<15.0a0' + vs2015_runtime: '>=14.16.27012' + url: https://conda.anaconda.org/conda-forge/win-64/bzip2-1.0.8-h8ffe710_4.tar.bz2 + hash: + md5: 7c03c66026944073040cb19a4f3ec3c9 + sha256: 5389dad4e73e4865bb485f460fc60b120bae74404003d457ecb1a62eb7abf0c1 + category: main + optional: false +- name: libaec + version: 1.1.1 + manager: conda + platform: win-64 + dependencies: + ucrt: '>=10.0.20348.0' + vc: '>=14.2,<15' + vc14_runtime: '>=14.29.30139' + url: https://conda.anaconda.org/conda-forge/win-64/libaec-1.1.1-h63175ca_0.conda + hash: + md5: a0a393bf1f634289bdfe7c2f3fe0faaa + sha256: c42d5e8a14b8cba2ab2c5e0aa73676252cd83018dda0f70c111bc277358627d1 + category: main + optional: false +- name: libffi + version: 3.4.2 + manager: conda + platform: win-64 + dependencies: + vc: '>=14.1,<15.0a0' + vs2015_runtime: '>=14.16.27012' + url: https://conda.anaconda.org/conda-forge/win-64/libffi-3.4.2-h8ffe710_5.tar.bz2 + hash: + md5: 2c96d1b6915b408893f9472569dee135 + sha256: 1951ab740f80660e9bc07d2ed3aefb874d78c107264fd810f24a1a6211d4b1a5 + category: main + optional: false +- name: libiconv + version: '1.17' + manager: conda + platform: win-64 + dependencies: + vc: '>=14.1,<15' + vs2015_runtime: '>=14.16.27033' + url: https://conda.anaconda.org/conda-forge/win-64/libiconv-1.17-h8ffe710_0.tar.bz2 + hash: + md5: 050119977a86e4856f0416e2edcf81bb + sha256: 657c2a992c896475021a25faebd9ccfaa149c5d70c7dc824d4069784b686cea1 + category: main + optional: false +- name: libjpeg-turbo + version: 3.0.0 + manager: conda + platform: win-64 + dependencies: + ucrt: '>=10.0.20348.0' + vc: '>=14.2,<15' + vc14_runtime: '>=14.29.30139' + url: https://conda.anaconda.org/conda-forge/win-64/libjpeg-turbo-3.0.0-hcfcfb64_1.conda + hash: + md5: 3f1b948619c45b1ca714d60c7389092c + sha256: 4e7808e3098b4b4ed7e287f63bb24f9045cc4d95bfd39f0db870fc2837d74dff + category: main + optional: false +- name: libsqlite + version: 3.43.0 + manager: conda + platform: win-64 + dependencies: + ucrt: '>=10.0.20348.0' + vc: '>=14.2,<15' + vc14_runtime: '>=14.29.30139' + url: https://conda.anaconda.org/conda-forge/win-64/libsqlite-3.43.0-hcfcfb64_0.conda + hash: + md5: 16c6f482e70cb3da41d0bee5d49c6bf3 + sha256: d79128a279c8e8b4afeef5cfe9d4302a2fd65b1af3973732d92a7cc396d5332f + category: main + optional: false +- name: libzlib + version: 1.2.13 + manager: conda + platform: win-64 + dependencies: + ucrt: '>=10.0.20348.0' + vc: '>=14.2,<15' + vc14_runtime: '>=14.29.30139' + url: https://conda.anaconda.org/conda-forge/win-64/libzlib-1.2.13-hcfcfb64_5.conda + hash: + md5: 5fdb9c6a113b6b6cb5e517fd972d5f41 + sha256: c161822ee8130b71e08b6d282b9919c1de2c5274b29921a867bca0f7d30cad26 + category: main + optional: false +- name: lz4-c + version: 1.9.4 + manager: conda + platform: win-64 + dependencies: + ucrt: '>=10.0.20348.0' + vc: '>=14.2,<15' + vs2015_runtime: '>=14.29.30139' + url: https://conda.anaconda.org/conda-forge/win-64/lz4-c-1.9.4-hcfcfb64_0.conda + hash: + md5: e34720eb20a33fc3bfb8451dd837ab7a + sha256: a0954b4b1590735ea5f3d0f4579c3883f8ac837387afd5b398b241fda85124ab + category: main + optional: false +- name: m2w64-gcc-libgfortran + version: 5.3.0 + manager: conda + platform: win-64 + dependencies: + m2w64-gcc-libs-core: '' + msys2-conda-epoch: '20160418' + url: https://conda.anaconda.org/conda-forge/win-64/m2w64-gcc-libgfortran-5.3.0-6.tar.bz2 + hash: + md5: 066552ac6b907ec6d72c0ddab29050dc + sha256: 9de95a7996d5366ae0808eef2acbc63f9b11b874aa42375f55379e6715845dc6 + category: main + optional: false +- name: openssl + version: 3.1.3 + manager: conda + platform: win-64 + dependencies: + ca-certificates: '' + ucrt: '>=10.0.20348.0' + vc: '>=14.2,<15' + vc14_runtime: '>=14.29.30139' + url: https://conda.anaconda.org/conda-forge/win-64/openssl-3.1.3-hcfcfb64_0.conda + hash: + md5: 16b2c80ad196f18acd31b588ef28cb9a + sha256: 6a6b20aa2b9f32d94f8d2c352b7635b5e8b9fb7ffad823bf2ce88dc8ef61ffc8 + category: main + optional: false +- name: pthreads-win32 + version: 2.9.1 + manager: conda + platform: win-64 + dependencies: + vc: 14.* + url: https://conda.anaconda.org/conda-forge/win-64/pthreads-win32-2.9.1-hfa6e2cd_3.tar.bz2 + hash: + md5: e2da8758d7d51ff6aa78a14dfb9dbed4 + sha256: 576a228630a72f25d255a5e345e5f10878e153221a96560f2498040cd6f54005 + category: main + optional: false +- name: snappy + version: 1.1.10 + manager: conda + platform: win-64 + dependencies: + ucrt: '>=10.0.20348.0' + vc: '>=14.2,<15' + vs2015_runtime: '>=14.29.30139' + url: https://conda.anaconda.org/conda-forge/win-64/snappy-1.1.10-hfb803bf_0.conda + hash: + md5: cff1df79c9cff719460eb2dd172568de + sha256: 2a195b38cb63f03ad9f73a82db52434ebefe216fb70f7ea3defe4ddf263d408a + category: main + optional: false +- name: tk + version: 8.6.13 + manager: conda + platform: win-64 + dependencies: + ucrt: '>=10.0.20348.0' + vc: '>=14.2,<15' + vc14_runtime: '>=14.29.30139' + url: https://conda.anaconda.org/conda-forge/win-64/tk-8.6.13-hcfcfb64_0.conda + hash: + md5: 74405f2ccbb40af409fee1a71ce70dc6 + sha256: 7e42db6b5f1c5ef8d4660e6ce41b52802b6c2fdc270d5e1eccc0048d0a3f03a8 + category: main + optional: false +- name: xz + version: 5.2.6 + manager: conda + platform: win-64 + dependencies: + vc: '>=14.1,<15' + vs2015_runtime: '>=14.16.27033' + url: https://conda.anaconda.org/conda-forge/win-64/xz-5.2.6-h8d14728_0.tar.bz2 + hash: + md5: 515d77642eaa3639413c6b1bc3f94219 + sha256: 54d9778f75a02723784dc63aff4126ff6e6749ba21d11a6d03c1f4775f269fe0 + category: main + optional: false +- name: yaml + version: 0.2.5 + manager: conda + platform: win-64 + dependencies: + vc: '>=14.1,<15.0a0' + vs2015_runtime: '>=14.16.27012' + url: https://conda.anaconda.org/conda-forge/win-64/yaml-0.2.5-h8ffe710_2.tar.bz2 + hash: + md5: adbfb9f45d1004a26763652246a33764 + sha256: 4e2246383003acbad9682c7c63178e2e715ad0eb84f03a8df1fbfba455dfedc5 + category: main + optional: false +- name: hdf4 + version: 4.2.15 + manager: conda + platform: win-64 + dependencies: + libjpeg-turbo: '>=3.0.0,<4.0a0' + libzlib: '>=1.2.13,<1.3.0a0' + ucrt: '>=10.0.20348.0' + vc: '>=14.2,<15' + vc14_runtime: '>=14.29.30139' + url: https://conda.anaconda.org/conda-forge/win-64/hdf4-4.2.15-h5557f11_7.conda + hash: + md5: 84344a916a73727c1326841007b52ca8 + sha256: 52fa5dde69758c19c69ab68a3d7ebfb2c9042e3a55d405c29a59d3b0584fd790 + category: main + optional: false +- name: krb5 + version: 1.21.2 + manager: conda + platform: win-64 + dependencies: + openssl: '>=3.1.2,<4.0a0' + ucrt: '>=10.0.20348.0' + vc: '>=14.2,<15' + vc14_runtime: '>=14.29.30139' + url: https://conda.anaconda.org/conda-forge/win-64/krb5-1.21.2-heb0366b_0.conda + hash: + md5: 6e8b0f22b4eef3b3cb3849bb4c3d47f9 + sha256: 6002adff9e3dcfc9732b861730cb9e33d45fd76b2035b2cdb4e6daacb8262c0b + category: main + optional: false +- name: libssh2 + version: 1.11.0 + manager: conda + platform: win-64 + dependencies: + libzlib: '>=1.2.13,<1.3.0a0' + openssl: '>=3.1.1,<4.0a0' + ucrt: '>=10.0.20348.0' + vc: '>=14.2,<15' + vc14_runtime: '>=14.29.30139' + url: https://conda.anaconda.org/conda-forge/win-64/libssh2-1.11.0-h7dfc565_0.conda + hash: + md5: dc262d03aae04fe26825062879141a41 + sha256: 813fd04eed2a2d5d9c36e53c554f9c1f08e9324e2922bd60c9c52dbbed2dbcec + category: main + optional: false +- name: libxml2 + version: 2.11.5 + manager: conda + platform: win-64 + dependencies: + libiconv: '>=1.17,<2.0a0' + libzlib: '>=1.2.13,<1.3.0a0' + ucrt: '>=10.0.20348.0' + vc: '>=14.2,<15' + vc14_runtime: '>=14.29.30139' + url: https://conda.anaconda.org/conda-forge/win-64/libxml2-2.11.5-hc3477c8_1.conda + hash: + md5: 27974f880a010b1441093d9f737a949f + sha256: ad3b5a510be2c5f9fe90b2c20e10adb135717304bcb3a197f256feb48d713d99 + category: main + optional: false +- name: libzip + version: 1.10.1 + manager: conda + platform: win-64 + dependencies: + bzip2: '>=1.0.8,<2.0a0' + libzlib: '>=1.2.13,<1.3.0a0' + openssl: '>=3.1.2,<4.0a0' + ucrt: '>=10.0.20348.0' + vc: '>=14.2,<15' + vc14_runtime: '>=14.29.30139' + url: https://conda.anaconda.org/conda-forge/win-64/libzip-1.10.1-h1d365fa_3.conda + hash: + md5: 5c629cd12d89e2856c17b1dc5fcf44a4 + sha256: 221698b52dd7a3dcfc67ff9460e9c8649fc6c86506a2a2ab6f57b97e7489bb9f + category: main + optional: false +- name: m2w64-gcc-libs + version: 5.3.0 + manager: conda + platform: win-64 + dependencies: + m2w64-gcc-libgfortran: '' + m2w64-gcc-libs-core: '' + m2w64-gmp: '' + m2w64-libwinpthread-git: '' + msys2-conda-epoch: '20160418' + url: https://conda.anaconda.org/conda-forge/win-64/m2w64-gcc-libs-5.3.0-7.tar.bz2 + hash: + md5: fe759119b8b3bfa720b8762c6fdc35de + sha256: 3bd1ab02b7c89a5b153a17be03b36d833f1517ff2a6a77ead7c4a808b88196aa + category: main + optional: false +- name: python + version: 3.10.12 + manager: conda + platform: win-64 + dependencies: + bzip2: '>=1.0.8,<2.0a0' + libffi: '>=3.4,<4.0a0' + libsqlite: '>=3.42.0,<4.0a0' + libzlib: '>=1.2.13,<1.3.0a0' + openssl: '>=3.1.1,<4.0a0' + tk: '>=8.6.12,<8.7.0a0' + tzdata: '' + vc: '>=14.1,<15' + vc14_runtime: '>=14.16.27033' + xz: '>=5.2.6,<6.0a0' + url: https://conda.anaconda.org/conda-forge/win-64/python-3.10.12-h4de0772_0_cpython.conda + hash: + md5: 14273454ca348a123ce09ab9d39c1a6e + sha256: 02ee08f3f27488b76155535e43fc99ef491ccc21f28001c3cde9b134e8aa0b94 + category: main + optional: false +- name: zlib + version: 1.2.13 + manager: conda + platform: win-64 + dependencies: + libzlib: 1.2.13 + ucrt: '>=10.0.20348.0' + vc: '>=14.2,<15' + vc14_runtime: '>=14.29.30139' + url: https://conda.anaconda.org/conda-forge/win-64/zlib-1.2.13-hcfcfb64_5.conda + hash: + md5: a318e8622e11663f645cc7fa3260f462 + sha256: 0f91b719c7558046bcd37fdc7ae4b9eb2b7a8e335beb8b59ae7ccb285a46aa46 + category: main + optional: false +- name: zstd + version: 1.5.5 + manager: conda + platform: win-64 + dependencies: + libzlib: '>=1.2.13,<1.3.0a0' + ucrt: '>=10.0.20348.0' + vc: '>=14.2,<15' + vc14_runtime: '>=14.29.30139' + url: https://conda.anaconda.org/conda-forge/win-64/zstd-1.5.5-h12be248_0.conda + hash: + md5: 792bb5da68bf0a6cac6a6072ecb8dbeb + sha256: d540dd56c5ec772b60e4ce7d45f67f01c6614942225885911964ea1e70bb99e3 + category: main + optional: false +- name: appdirs + version: 1.4.4 + manager: conda + platform: win-64 + dependencies: + python: '' + url: https://conda.anaconda.org/conda-forge/noarch/appdirs-1.4.4-pyh9f0ad1d_0.tar.bz2 + hash: + md5: 5f095bc6454094e96f146491fd03633b + sha256: ae9fb8f68281f84482f2c234379aa12405a9e365151d43af20b3ae1f17312111 + category: main + optional: false +- name: backcall + version: 0.2.0 + manager: conda + platform: win-64 + dependencies: + python: '' + url: https://conda.anaconda.org/conda-forge/noarch/backcall-0.2.0-pyh9f0ad1d_0.tar.bz2 + hash: + md5: 6006a6d08a3fa99268a2681c7fb55213 + sha256: ee62d6434090c1327a48551734e06bd10e65a64ef7f3b6e68719500dab0e42b9 + category: main + optional: false +- name: backports + version: '1.0' + manager: conda + platform: win-64 + dependencies: + python: '>=2.7' + url: https://conda.anaconda.org/conda-forge/noarch/backports-1.0-pyhd8ed1ab_3.conda + hash: + md5: 54ca2e08b3220c148a1d8329c2678e02 + sha256: 711602276ae39276cb0faaca6fd0ac851fff0ca17151917569174841ef830bbd + category: main + optional: false +- name: blosc + version: 1.21.5 + manager: conda + platform: win-64 + dependencies: + libzlib: '>=1.2.13,<1.3.0a0' + lz4-c: '>=1.9.3,<1.10.0a0' + snappy: '>=1.1.10,<2.0a0' + ucrt: '>=10.0.20348.0' + vc: '>=14.2,<15' + vc14_runtime: '>=14.29.30139' + zstd: '>=1.5.5,<1.6.0a0' + url: https://conda.anaconda.org/conda-forge/win-64/blosc-1.21.5-hdccc3a2_0.conda + hash: + md5: 77a5cea2ce92907b7d1e7954457a526a + sha256: 73cee35e5366ce998ef36ccccb4c11ef9ead297886cc08269379f91539131288 + category: main + optional: false +- name: brotli-python + version: 1.1.0 + manager: conda + platform: win-64 + dependencies: + python: '>=3.10,<3.11.0a0' + python_abi: 3.10.* + ucrt: '>=10.0.20348.0' + vc: '>=14.2,<15' + vc14_runtime: '>=14.29.30139' + url: https://conda.anaconda.org/conda-forge/win-64/brotli-python-1.1.0-py310h00ffb61_1.conda + hash: + md5: 42bfbc1d41cbe2696a3c9d8b0342324f + sha256: 8de77cf62a653dd6ffe19927b92c421f5fa73c078d7799181f5211a1bac2883b + category: main + optional: false +- name: cachy + version: 0.3.0 + manager: conda + platform: win-64 + dependencies: + python: '>=3.6' + url: https://conda.anaconda.org/conda-forge/noarch/cachy-0.3.0-pyhd8ed1ab_1.tar.bz2 + hash: + md5: 5dfee17f24e2dfd18d7392b48c9351e2 + sha256: 9b193a4e483c4d0004bc5b88fac7a02516b6311137ab61b8db85aa9741422e35 + category: main + optional: false +- name: certifi + version: 2023.7.22 + manager: conda + platform: win-64 + dependencies: + python: '>=3.7' + url: https://conda.anaconda.org/conda-forge/noarch/certifi-2023.7.22-pyhd8ed1ab_0.conda + hash: + md5: 7f3dbc9179b4dde7da98dfb151d0ad22 + sha256: db66e31866ff4250c190788769e3a8a1709237c3e9c38d7143aae95ab75fcb31 + category: main + optional: false +- name: cfgv + version: 3.3.1 + manager: conda + platform: win-64 + dependencies: + python: '>=3.6.1' + url: https://conda.anaconda.org/conda-forge/noarch/cfgv-3.3.1-pyhd8ed1ab_0.tar.bz2 + hash: + md5: ebb5f5f7dc4f1a3780ef7ea7738db08c + sha256: fbc03537a27ef756162c49b1d0608bf7ab12fa5e38ceb8563d6f4859e835ac5c + category: main + optional: false +- name: charset-normalizer + version: 3.3.0 + manager: conda + platform: win-64 + dependencies: + python: '>=3.7' + url: https://conda.anaconda.org/conda-forge/noarch/charset-normalizer-3.3.0-pyhd8ed1ab_0.conda + hash: + md5: fef8ef5f0a54546b9efee39468229917 + sha256: 3407cd21af7e85aeb9499c377e7db25d2bbb9cbaf2f47d92626b3471dca65b4c + category: main + optional: false +- name: colorama + version: 0.4.6 + manager: conda + platform: win-64 + dependencies: + python: '>=3.7' + url: https://conda.anaconda.org/conda-forge/noarch/colorama-0.4.6-pyhd8ed1ab_0.tar.bz2 + hash: + md5: 3faab06a954c2a04039983f2c4a50d99 + sha256: 2c1b2e9755ce3102bca8d69e8f26e4f087ece73f50418186aee7c74bef8e1698 + category: main + optional: false +- name: crashtest + version: 0.4.1 + manager: conda + platform: win-64 + dependencies: + python: '>=3.6,<4.0' + url: https://conda.anaconda.org/conda-forge/noarch/crashtest-0.4.1-pyhd8ed1ab_0.tar.bz2 + hash: + md5: 709a2295dd907bb34afb57d54320642f + sha256: 2f05954a3faf0700c14c1deddc085385160ee32abe111699c78d9cb277e915cc + category: main + optional: false +- name: decorator + version: 5.1.1 + manager: conda + platform: win-64 + dependencies: + python: '>=3.5' + url: https://conda.anaconda.org/conda-forge/noarch/decorator-5.1.1-pyhd8ed1ab_0.tar.bz2 + hash: + md5: 43afe5ab04e35e17ba28649471dd7364 + sha256: 328a6a379f9bdfd0230e51de291ce858e6479411ea4b0545fb377c71662ef3e2 + category: main + optional: false +- name: distlib + version: 0.3.7 + manager: conda + platform: win-64 + dependencies: + python: 2.7|>=3.6 + url: https://conda.anaconda.org/conda-forge/noarch/distlib-0.3.7-pyhd8ed1ab_0.conda + hash: + md5: 12d8aae6994f342618443a8f05c652a0 + sha256: 13c887cb4a29e1e853a118cfc0e42b72a7e1d1c50c66c0974885d37f0db30619 + category: main + optional: false +- name: exceptiongroup + version: 1.1.3 + manager: conda + platform: win-64 + dependencies: + python: '>=3.7' + url: https://conda.anaconda.org/conda-forge/noarch/exceptiongroup-1.1.3-pyhd8ed1ab_0.conda + hash: + md5: e6518222753f519e911e83136d2158d9 + sha256: c28f715e049fe0f09785660bcbffa175ffb438720e5bc5a60d56d4b08364b315 + category: main + optional: false +- name: executing + version: 1.2.0 + manager: conda + platform: win-64 + dependencies: + python: '>=2.7' + url: https://conda.anaconda.org/conda-forge/noarch/executing-1.2.0-pyhd8ed1ab_0.tar.bz2 + hash: + md5: 4c1bc140e2be5c8ba6e3acab99e25c50 + sha256: 9c03425cd58c474af20e179c9ba121a82984d6c4bfc896bbc992f5ed75dd7539 + category: main + optional: false +- name: filelock + version: 3.12.4 + manager: conda + platform: win-64 + dependencies: + python: '>=3.7' + url: https://conda.anaconda.org/conda-forge/noarch/filelock-3.12.4-pyhd8ed1ab_0.conda + hash: + md5: 5173d4b8267a0699a43d73231e0b6596 + sha256: 7463c64364c14b34a7a69a7550a880ccd1ec6d3014001e55913e6e4e8b0c7395 + category: main + optional: false +- name: idna + version: '3.4' + manager: conda + platform: win-64 + dependencies: + python: '>=3.6' + url: https://conda.anaconda.org/conda-forge/noarch/idna-3.4-pyhd8ed1ab_0.tar.bz2 + hash: + md5: 34272b248891bddccc64479f9a7fffed + sha256: 9887c35c374ec1847f167292d3fde023cb4c994a4ceeec283072b95440131f09 + category: main + optional: false +- name: iniconfig + version: 2.0.0 + manager: conda + platform: win-64 + dependencies: + python: '>=3.7' + url: https://conda.anaconda.org/conda-forge/noarch/iniconfig-2.0.0-pyhd8ed1ab_0.conda + hash: + md5: f800d2da156d08e289b14e87e43c1ae5 + sha256: 38740c939b668b36a50ef455b077e8015b8c9cf89860d421b3fff86048f49666 + category: main + optional: false +- name: libcurl + version: 8.3.0 + manager: conda + platform: win-64 + dependencies: + krb5: '>=1.21.2,<1.22.0a0' + libssh2: '>=1.11.0,<2.0a0' + libzlib: '>=1.2.13,<1.3.0a0' + ucrt: '>=10.0.20348.0' + vc: '>=14.2,<15' + vc14_runtime: '>=14.29.30139' + url: https://conda.anaconda.org/conda-forge/win-64/libcurl-8.3.0-hd5e4a3a_0.conda + hash: + md5: 4a493128ac1b1b6b2b283213a9e9abe6 + sha256: 66133dc58a4d797c4302835b8d67b0bfac1a0b1a67228ac9043a97e2eb5cbe96 + category: main + optional: false +- name: libhwloc + version: 2.9.3 + manager: conda + platform: win-64 + dependencies: + libxml2: '>=2.11.5,<2.12.0a0' + pthreads-win32: '' + ucrt: '>=10.0.20348.0' + vc: '>=14.2,<15' + vc14_runtime: '>=14.29.30139' + url: https://conda.anaconda.org/conda-forge/win-64/libhwloc-2.9.3-default_haede6df_1009.conda + hash: + md5: 87da045f6d26ce9fe20ad76a18f6a18a + sha256: 2e8c4bb7173f281a8e13f333a23c9fb7a1c86d342d7dccdd74f2eb583ddde450 + category: main + optional: false +- name: markupsafe + version: 2.1.3 + manager: conda + platform: win-64 + dependencies: + python: '>=3.10,<3.11.0a0' + python_abi: 3.10.* + ucrt: '>=10.0.20348.0' + vc: '>=14.2,<15' + vc14_runtime: '>=14.29.30139' + url: https://conda.anaconda.org/conda-forge/win-64/markupsafe-2.1.3-py310h8d17308_1.conda + hash: + md5: 8bb26993f6787d08908136ce07894bf0 + sha256: cab9683af159f18b782a876afb4aa3f84512dc3c39e4315a963ba267751581da + category: main + optional: false +- name: mdurl + version: 0.1.0 + manager: conda + platform: win-64 + dependencies: + python: '>=3.6' + url: https://conda.anaconda.org/conda-forge/noarch/mdurl-0.1.0-pyhd8ed1ab_0.tar.bz2 + hash: + md5: f8dab71fdc13b1bf29a01248b156d268 + sha256: c678b9194e025b1fb665bec30ee20aab93399203583875b1dcc0a3b52a8f5523 + category: main + optional: false +- name: more-itertools + version: 10.1.0 + manager: conda + platform: win-64 + dependencies: + python: '>=3.8' + url: https://conda.anaconda.org/conda-forge/noarch/more-itertools-10.1.0-pyhd8ed1ab_0.conda + hash: + md5: 8549fafed0351bbfaa1ddaa15fdf9b4e + sha256: 07ce65497dec537e490992758934ddbc4fb5ed9285b41387a7cca966f1a98a0f + category: main + optional: false +- name: msgpack-python + version: 1.0.6 + manager: conda + platform: win-64 + dependencies: + python: '>=3.10,<3.11.0a0' + python_abi: 3.10.* + ucrt: '>=10.0.20348.0' + vc: '>=14.2,<15' + vc14_runtime: '>=14.29.30139' + url: https://conda.anaconda.org/conda-forge/win-64/msgpack-python-1.0.6-py310h232114e_0.conda + hash: + md5: 55ffac33eaacd437cf24eb031184744f + sha256: 7f293ea6478dbdc7872516a26db2f3fe5482e637c6ed2e516165ac1ceb6572ac + category: main + optional: false +- name: mypy_extensions + version: 1.0.0 + manager: conda + platform: win-64 + dependencies: + python: '>=3.5' + url: https://conda.anaconda.org/conda-forge/noarch/mypy_extensions-1.0.0-pyha770c72_0.conda + hash: + md5: 4eccaeba205f0aed9ac3a9ea58568ca3 + sha256: f240217476e148e825420c6bc3a0c0efb08c0718b7042fae960400c02af858a3 + category: main + optional: false +- name: packaging + version: '23.2' + manager: conda + platform: win-64 + dependencies: + python: '>=3.7' + url: https://conda.anaconda.org/conda-forge/noarch/packaging-23.2-pyhd8ed1ab_0.conda + hash: + md5: 79002079284aa895f883c6b7f3f88fd6 + sha256: 69b3ace6cca2dab9047b2c24926077d81d236bef45329d264b394001e3c3e52f + category: main + optional: false +- name: parso + version: 0.8.3 + manager: conda + platform: win-64 + dependencies: + python: '>=3.6' + url: https://conda.anaconda.org/conda-forge/noarch/parso-0.8.3-pyhd8ed1ab_0.tar.bz2 + hash: + md5: 17a565a0c3899244e938cdf417e7b094 + sha256: 4e26d5daf5de0e31aa5e74ac56386a361b202433b83f024fdadbf07d4a244da4 + category: main + optional: false +- name: pastel + version: 0.2.1 + manager: conda + platform: win-64 + dependencies: + python: '>=2.7' + url: https://conda.anaconda.org/conda-forge/noarch/pastel-0.2.1-pyhd8ed1ab_0.tar.bz2 + hash: + md5: a4eea5bff523f26442405bc5d1f52adb + sha256: 9153f0f38c76a09da7688a61fdbf8f3d7504e2326bef53e4ec20d994311b15bd + category: main + optional: false +- name: pickleshare + version: 0.7.5 + manager: conda + platform: win-64 + dependencies: + python: '>=3' + url: https://conda.anaconda.org/conda-forge/noarch/pickleshare-0.7.5-py_1003.tar.bz2 + hash: + md5: 415f0ebb6198cc2801c73438a9fb5761 + sha256: a1ed1a094dd0d1b94a09ed85c283a0eb28943f2e6f22161fb45e128d35229738 + category: main + optional: false +- name: pkginfo + version: 1.9.6 + manager: conda + platform: win-64 + dependencies: + python: '>=3.6' + url: https://conda.anaconda.org/conda-forge/noarch/pkginfo-1.9.6-pyhd8ed1ab_0.conda + hash: + md5: be1e9f1c65a1ed0f2ae9352fec99db64 + sha256: 7ea5a5af62a15376d9f4f9f3c134874d0b0710f39be719e849b7fa9ca8870502 + category: main + optional: false +- name: pluggy + version: 1.3.0 + manager: conda + platform: win-64 + dependencies: + python: '>=3.8' + url: https://conda.anaconda.org/conda-forge/noarch/pluggy-1.3.0-pyhd8ed1ab_0.conda + hash: + md5: 2390bd10bed1f3fdc7a537fb5a447d8d + sha256: 7bf2ad9d747e71f1e93d0863c2c8061dd0f2fe1e582f28d292abfb40264a2eb5 + category: main + optional: false +- name: psutil + version: 5.9.5 + manager: conda + platform: win-64 + dependencies: + python: '>=3.10,<3.11.0a0' + python_abi: 3.10.* + ucrt: '>=10.0.20348.0' + vc: '>=14.2,<15' + vc14_runtime: '>=14.29.30139' + url: https://conda.anaconda.org/conda-forge/win-64/psutil-5.9.5-py310h8d17308_1.conda + hash: + md5: bd83570cfe0ce9ccc46c9c55b0aab666 + sha256: 6c03b652b5d1488fe88ce1a20ee4a072b44277b05002d2af7d2db19643d50b3d + category: main + optional: false +- name: pure_eval + version: 0.2.2 + manager: conda + platform: win-64 + dependencies: + python: '>=3.5' + url: https://conda.anaconda.org/conda-forge/noarch/pure_eval-0.2.2-pyhd8ed1ab_0.tar.bz2 + hash: + md5: 6784285c7e55cb7212efabc79e4c2883 + sha256: 72792f9fc2b1820e37cc57f84a27bc819c71088c3002ca6db05a2e56404f9d44 + category: main + optional: false +- name: pycparser + version: '2.21' + manager: conda + platform: win-64 + dependencies: + python: 2.7.*|>=3.4 + url: https://conda.anaconda.org/conda-forge/noarch/pycparser-2.21-pyhd8ed1ab_0.tar.bz2 + hash: + md5: 076becd9e05608f8dc72757d5f3a91ff + sha256: 74c63fd03f1f1ea2b54e8bc529fd1a600aaafb24027b738d0db87909ee3a33dc + category: main + optional: false +- name: pygments + version: 2.16.1 + manager: conda + platform: win-64 + dependencies: + python: '>=3.7' + url: https://conda.anaconda.org/conda-forge/noarch/pygments-2.16.1-pyhd8ed1ab_0.conda + hash: + md5: 40e5cb18165466773619e5c963f00a7b + sha256: 3f0f0fadc6084960ec8cc00a32a03529c562ffea3b527eb73b1653183daad389 + category: main + optional: false +- name: pylev + version: 1.4.0 + manager: conda + platform: win-64 + dependencies: + python: '>=3.3' + url: https://conda.anaconda.org/conda-forge/noarch/pylev-1.4.0-pyhd8ed1ab_0.tar.bz2 + hash: + md5: edf8651c4379d9d1495ad6229622d150 + sha256: 50bd91767686bfe769e50a5a1b883e238d944a6163fea43e7c0beaac54ca674f + category: main + optional: false +- name: python-tzdata + version: '2023.3' + manager: conda + platform: win-64 + dependencies: + python: '>=3.6' + url: https://conda.anaconda.org/conda-forge/noarch/python-tzdata-2023.3-pyhd8ed1ab_0.conda + hash: + md5: 2590495f608a63625e165915fb4e2e34 + sha256: 0108888507014fb24573c31e4deceb61c99e63d37776dddcadd7c89b2ecae0b6 + category: main + optional: false +- name: pytz + version: 2023.3.post1 + manager: conda + platform: win-64 + dependencies: + python: '>=3.6' + url: https://conda.anaconda.org/conda-forge/noarch/pytz-2023.3.post1-pyhd8ed1ab_0.conda + hash: + md5: c93346b446cd08c169d843ae5fc0da97 + sha256: 6b680e63d69aaf087cd43ca765a23838723ef59b0a328799e6363eb13f52c49e + category: main + optional: false +- name: pywin32-ctypes + version: 0.2.2 + manager: conda + platform: win-64 + dependencies: + python: '>=3.10,<3.11.0a0' + python_abi: 3.10.* + url: https://conda.anaconda.org/conda-forge/win-64/pywin32-ctypes-0.2.2-py310h5588dad_1.conda + hash: + md5: b9b7535acf5ec3e4b8f1c43e5465bebf + sha256: a284228ba87d0c02a6359c1ee6ad1fcdb5ef3cf135a4ccd6ea3c19efc152fd7e + category: main + optional: false +- name: pyyaml + version: 6.0.1 + manager: conda + platform: win-64 + dependencies: + python: '>=3.10,<3.11.0a0' + python_abi: 3.10.* + ucrt: '>=10.0.20348.0' + vc: '>=14.2,<15' + vc14_runtime: '>=14.29.30139' + yaml: '>=0.2.5,<0.3.0a0' + url: https://conda.anaconda.org/conda-forge/win-64/pyyaml-6.0.1-py310h8d17308_1.conda + hash: + md5: ce279186f68d0f12812dc9955ea909a4 + sha256: ea51291e477b44c5bb9d91cc095db0dfe07b9576831e9682100d68c820c43ae3 + category: main + optional: false +- name: ruamel.yaml.clib + version: 0.2.7 + manager: conda + platform: win-64 + dependencies: + python: '>=3.10,<3.11.0a0' + python_abi: 3.10.* + ucrt: '>=10.0.20348.0' + vc: '>=14.2,<15' + vc14_runtime: '>=14.29.30139' + url: https://conda.anaconda.org/conda-forge/win-64/ruamel.yaml.clib-0.2.7-py310h8d17308_2.conda + hash: + md5: 0f47d198301a03f56dc90aa47c26776d + sha256: 8c9a490661bedf32873968fdcd645fa8d74a6def7381897a6340f7395ac6f71a + category: main + optional: false +- name: setuptools + version: 68.2.2 + manager: conda + platform: win-64 + dependencies: + python: '>=3.7' + url: https://conda.anaconda.org/conda-forge/noarch/setuptools-68.2.2-pyhd8ed1ab_0.conda + hash: + md5: fc2166155db840c634a1291a5c35a709 + sha256: 851901b1f8f2049edb36a675f0c3f9a98e1495ef4eb214761b048c6f696a06f7 + category: main + optional: false +- name: six + version: 1.16.0 + manager: conda + platform: win-64 + dependencies: + python: '' + url: https://conda.anaconda.org/conda-forge/noarch/six-1.16.0-pyh6c4a22f_0.tar.bz2 + hash: + md5: e5f25f8dbc060e9a8d912e432202afc2 + sha256: a85c38227b446f42c5b90d9b642f2c0567880c15d72492d8da074a59c8f91dd6 + category: main + optional: false +- name: smmap + version: 3.0.5 + manager: conda + platform: win-64 + dependencies: + python: '' + url: https://conda.anaconda.org/conda-forge/noarch/smmap-3.0.5-pyh44b312d_0.tar.bz2 + hash: + md5: 3a8dc70789709aa315325d5df06fb7e4 + sha256: 091de70ee6bfe063e0c0f77336975d124fd1e3f49b9c58d97c0c7b3d287c0002 + category: main + optional: false +- name: toml + version: 0.10.2 + manager: conda + platform: win-64 + dependencies: + python: '>=2.7' + url: https://conda.anaconda.org/conda-forge/noarch/toml-0.10.2-pyhd8ed1ab_0.tar.bz2 + hash: + md5: f832c45a477c78bebd107098db465095 + sha256: f0f3d697349d6580e4c2f35ba9ce05c65dc34f9f049e85e45da03800b46139c1 + category: main + optional: false +- name: tomli + version: 2.0.1 + manager: conda + platform: win-64 + dependencies: + python: '>=3.7' + url: https://conda.anaconda.org/conda-forge/noarch/tomli-2.0.1-pyhd8ed1ab_0.tar.bz2 + hash: + md5: 5844808ffab9ebdb694585b50ba02a96 + sha256: 4cd48aba7cd026d17e86886af48d0d2ebc67ed36f87f6534f4b67138f5a5a58f + category: main + optional: false +- name: tomlkit + version: 0.12.1 + manager: conda + platform: win-64 + dependencies: + python: '>=3.7' + url: https://conda.anaconda.org/conda-forge/noarch/tomlkit-0.12.1-pyha770c72_0.conda + hash: + md5: 62f5b331c53d73e2f6c4c130b53518a0 + sha256: dc4abf58ca42f29e12b8c0f8aadedfca49cc1e97dab025d15cf000b1787df773 + category: main + optional: false +- name: toolz + version: 0.12.0 + manager: conda + platform: win-64 + dependencies: + python: '>=3.5' + url: https://conda.anaconda.org/conda-forge/noarch/toolz-0.12.0-pyhd8ed1ab_0.tar.bz2 + hash: + md5: 92facfec94bc02d6ccf42e7173831a36 + sha256: 90229da7665175b0185183ab7b53f50af487c7f9b0f47cf09c184cbc139fd24b + category: main + optional: false +- name: traitlets + version: 5.11.2 + manager: conda + platform: win-64 + dependencies: + python: '>=3.8' + url: https://conda.anaconda.org/conda-forge/noarch/traitlets-5.11.2-pyhd8ed1ab_0.conda + hash: + md5: bd3f90f7551e1cffb1f402880eb2cef1 + sha256: 81f2675ebc2bd6016c304770c81812aab8947953b0f0cca766077b127cc7e8f1 + category: main + optional: false +- name: typing_extensions + version: 4.8.0 + manager: conda + platform: win-64 + dependencies: + python: '>=3.8' + url: https://conda.anaconda.org/conda-forge/noarch/typing_extensions-4.8.0-pyha770c72_0.conda + hash: + md5: 5b1be40a26d10a06f6d4f1f9e19fa0c7 + sha256: 38d16b5c53ec1af845d37d22e7bb0e6c934c7f19499123507c5a470f6f8b7dde + category: main + optional: false +- name: webencodings + version: 0.5.1 + manager: conda + platform: win-64 + dependencies: + python: '>=2.6' + url: https://conda.anaconda.org/conda-forge/noarch/webencodings-0.5.1-pyhd8ed1ab_2.conda + hash: + md5: daf5160ff9cde3a468556965329085b9 + sha256: 2adf9bd5482802837bc8814cbe28d7b2a4cbd2e2c52e381329eaa283b3ed1944 + category: main + optional: false +- name: win32_setctime + version: 1.1.0 + manager: conda + platform: win-64 + dependencies: + python: '>=3.5' + url: https://conda.anaconda.org/conda-forge/noarch/win32_setctime-1.1.0-pyhd8ed1ab_0.tar.bz2 + hash: + md5: dc80c0c2b01f7d6d6d5df4b63ef54f17 + sha256: b2c4dfa3dcf888b9449a4a2fd480b2db4e9167838d91df15fe745f9ba7adff95 + category: main + optional: false +- name: win_inet_pton + version: 1.1.0 + manager: conda + platform: win-64 + dependencies: + __win: '' + python: '>=3.6' + url: https://conda.anaconda.org/conda-forge/noarch/win_inet_pton-1.1.0-pyhd8ed1ab_6.tar.bz2 + hash: + md5: 30878ecc4bd36e8deeea1e3c151b2e0b + sha256: a11ae693a0645bf6c7b8a47bac030be9c0967d0b1924537b9ff7458e832c0511 + category: main + optional: false +- name: zipp + version: 3.17.0 + manager: conda + platform: win-64 + dependencies: + python: '>=3.8' + url: https://conda.anaconda.org/conda-forge/noarch/zipp-3.17.0-pyhd8ed1ab_0.conda + hash: + md5: 2e4d6bc0b14e10f895fc6791a7d9b26a + sha256: bced1423fdbf77bca0a735187d05d9b9812d2163f60ab426fc10f11f92ecbe26 + category: main + optional: false +- name: asttokens + version: 2.4.0 + manager: conda + platform: win-64 + dependencies: + python: '>=3.5' + six: '>=1.12.0' + url: https://conda.anaconda.org/conda-forge/noarch/asttokens-2.4.0-pyhd8ed1ab_0.conda + hash: + md5: 056f04e51dd63337e8d7c425c18c86f1 + sha256: e7e91e3fa26abe502be690371893f205d87a82c225668ea6e9a1ba26870388ee + category: main + optional: false +- name: backports.functools_lru_cache + version: 1.6.5 + manager: conda + platform: win-64 + dependencies: + setuptools: '' + backports: '' + python: '>=3.6' + url: https://conda.anaconda.org/conda-forge/noarch/backports.functools_lru_cache-1.6.5-pyhd8ed1ab_0.conda + hash: + md5: 6b1b907661838a75d067a22f87996b2e + sha256: 7027bb689dd4ca4a08e3b25805de9d04239be6b31125993558f21f102a9d2700 + category: main + optional: false +- name: cffi + version: 1.16.0 + manager: conda + platform: win-64 + dependencies: + pycparser: '' + python: '>=3.10,<3.11.0a0' + python_abi: 3.10.* + ucrt: '>=10.0.20348.0' + vc: '>=14.2,<15' + vc14_runtime: '>=14.29.30139' + url: https://conda.anaconda.org/conda-forge/win-64/cffi-1.16.0-py310h8d17308_0.conda + hash: + md5: b4bcce1a7ea1164e6dcea6c4f00d962b + sha256: 1aeebb88518ab48c927d7360648a2799def172d8fcb0d7e20cb7208a3570ef9e + category: main + optional: false +- name: click + version: 8.1.7 + manager: conda + platform: win-64 + dependencies: + colorama: '' + __win: '' + python: '>=3.8' + url: https://conda.anaconda.org/conda-forge/noarch/click-8.1.7-win_pyh7428d3b_0.conda + hash: + md5: 3549ecbceb6cd77b91a105511b7d0786 + sha256: 90236b113b9a20041736e80b80ee965167f9aac0468315c55e2bad902d673fb0 + category: main + optional: false +- name: clikit + version: 0.6.2 + manager: conda + platform: win-64 + dependencies: + python: '>=3.7' + pylev: '>=1.3,<2.0' + pastel: '>=0.2.0,<0.3.0' + url: https://conda.anaconda.org/conda-forge/noarch/clikit-0.6.2-pyhd8ed1ab_2.conda + hash: + md5: 02abb7b66b02e8b9f5a9b05454400087 + sha256: 2d582bc15d9116ec5467b565fb87d9034c8b56f60943e8eb69407f55f1ab5a78 + category: main + optional: false +- name: gitdb + version: 4.0.10 + manager: conda + platform: win-64 + dependencies: + python: '>=3.4' + smmap: '>=3.0.1,<4' + url: https://conda.anaconda.org/conda-forge/noarch/gitdb-4.0.10-pyhd8ed1ab_0.conda + hash: + md5: 3706d2f3d7cb5dae600c833345a76132 + sha256: 0003ab2b971913380633c711bf49a54dcf06e179986c725b0925854b58878377 + category: main + optional: false +- name: hdf5 + version: 1.14.2 + manager: conda + platform: win-64 + dependencies: + libaec: '>=1.0.6,<2.0a0' + libcurl: '>=8.2.1,<9.0a0' + libzlib: '>=1.2.13,<1.3.0a0' + openssl: '>=3.1.2,<4.0a0' + ucrt: '>=10.0.20348.0' + vc: '>=14.2,<15' + vc14_runtime: '>=14.29.30139' + url: https://conda.anaconda.org/conda-forge/win-64/hdf5-1.14.2-nompi_h73e8ff5_100.conda + hash: + md5: 7fc095c23e4519a8df15c09f3671d09a + sha256: 86bab02f1dbc658a15719b27ca5dcd2b50c22905cc2296a31a0ed220dac746f9 + category: main + optional: false +- name: html5lib + version: '1.1' + manager: conda + platform: win-64 + dependencies: + python: '' + webencodings: '' + six: '>=1.9' + url: https://conda.anaconda.org/conda-forge/noarch/html5lib-1.1-pyh9f0ad1d_0.tar.bz2 + hash: + md5: b2355343d6315c892543200231d7154a + sha256: 9ad06446fe9847e86cb20d220bf11614afcd2cbe9f58096f08d5d4018877bee4 + category: main + optional: false +- name: importlib-metadata + version: 6.8.0 + manager: conda + platform: win-64 + dependencies: + python: '>=3.8' + zipp: '>=0.5' + url: https://conda.anaconda.org/conda-forge/noarch/importlib-metadata-6.8.0-pyha770c72_0.conda + hash: + md5: 4e9f59a060c3be52bc4ddc46ee9b6946 + sha256: 2797ed927d65324309b6c630190d917b9f2111e0c217b721f80429aeb57f9fcf + category: main + optional: false +- name: jaraco.classes + version: 3.3.0 + manager: conda + platform: win-64 + dependencies: + more-itertools: '' + python: '>=3.7' + url: https://conda.anaconda.org/conda-forge/noarch/jaraco.classes-3.3.0-pyhd8ed1ab_0.conda + hash: + md5: e9f79248d30e942f7c358ff21a1790f5 + sha256: 14f5240c3834e1b784dd41a5a14392d9150dff62a74ae851f73e65d2e2bbd891 + category: main + optional: false +- name: jedi + version: 0.19.1 + manager: conda + platform: win-64 + dependencies: + python: '>=3.6' + parso: '>=0.8.3,<0.9.0' + url: https://conda.anaconda.org/conda-forge/noarch/jedi-0.19.1-pyhd8ed1ab_0.conda + hash: + md5: 81a3be0b2023e1ea8555781f0ad904a2 + sha256: 362f0936ef37dfd1eaa860190e42a6ebf8faa094eaa3be6aa4d9ace95f40047a + category: main + optional: false +- name: jinja2 + version: 3.1.2 + manager: conda + platform: win-64 + dependencies: + python: '>=3.7' + markupsafe: '>=2.0' + url: https://conda.anaconda.org/conda-forge/noarch/jinja2-3.1.2-pyhd8ed1ab_1.tar.bz2 + hash: + md5: c8490ed5c70966d232fdd389d0dbed37 + sha256: b045faba7130ab263db6a8fdc96b1a3de5fcf85c4a607c5f11a49e76851500b5 + category: main + optional: false +- name: loguru + version: 0.7.2 + manager: conda + platform: win-64 + dependencies: + colorama: '>=0.3.4' + python: '>=3.10,<3.11.0a0' + python_abi: 3.10.* + win32_setctime: '>=1.0.0' + url: https://conda.anaconda.org/conda-forge/win-64/loguru-0.7.2-py310h5588dad_1.conda + hash: + md5: 2b73ddd2ad9984b09aafccabd8d0fac2 + sha256: f3db7a198439b1d6f3943a4dba416e06406e6090fa6afe4b0d06441c3d5a2923 + category: main + optional: false +- name: markdown-it-py + version: 3.0.0 + manager: conda + platform: win-64 + dependencies: + python: '>=3.8' + mdurl: '>=0.1,<1' + url: https://conda.anaconda.org/conda-forge/noarch/markdown-it-py-3.0.0-pyhd8ed1ab_0.conda + hash: + md5: 93a8e71256479c62074356ef6ebf501b + sha256: c041b0eaf7a6af3344d5dd452815cdc148d6284fec25a4fa3f4263b3a021e962 + category: main + optional: false +- name: matplotlib-inline + version: 0.1.6 + manager: conda + platform: win-64 + dependencies: + traitlets: '' + python: '>=3.6' + url: https://conda.anaconda.org/conda-forge/noarch/matplotlib-inline-0.1.6-pyhd8ed1ab_0.tar.bz2 + hash: + md5: b21613793fcc81d944c76c9f2864a7de + sha256: aa091b88aec55bfa2d9207028d8cdc689b9efb090ae27b99557e93c675be2f3c + category: main + optional: false +- name: mypy + version: 1.5.1 + manager: conda + platform: win-64 + dependencies: + mypy_extensions: '>=1.0.0' + psutil: '>=4.0' + python: '>=3.10,<3.11.0a0' + python_abi: 3.10.* + tomli: '>=1.1.0' + typing_extensions: '>=4.1.0' + ucrt: '>=10.0.20348.0' + vc: '>=14.2,<15' + vc14_runtime: '>=14.29.30139' + url: https://conda.anaconda.org/conda-forge/win-64/mypy-1.5.1-py310h8d17308_1.conda + hash: + md5: 4a6cce71b112befb10fa4da09d20ec4d + sha256: 5a07593989e850a2ac589ed0293ef16e485bc6a2cfa3d5128f7b9c7b6d3ab684 + category: main + optional: false +- name: nodeenv + version: 1.8.0 + manager: conda + platform: win-64 + dependencies: + setuptools: '' + python: 2.7|>=3.7 + url: https://conda.anaconda.org/conda-forge/noarch/nodeenv-1.8.0-pyhd8ed1ab_0.conda + hash: + md5: 2a75b296096adabbabadd5e9782e5fcc + sha256: 1320306234552717149f36f825ddc7e27ea295f24829e9db4cc6ceaff0b032bd + category: main + optional: false +- name: pysocks + version: 1.7.1 + manager: conda + platform: win-64 + dependencies: + __win: '' + win_inet_pton: '' + python: '>=3.8' + url: https://conda.anaconda.org/conda-forge/noarch/pysocks-1.7.1-pyh0701188_6.tar.bz2 + hash: + md5: 56cd9fe388baac0e90c7149cfac95b60 + sha256: b3a612bc887f3dd0fb7c4199ad8e342bd148cf69a9b74fd9468a18cf2bef07b7 + category: main + optional: false +- name: pytest + version: 7.4.2 + manager: conda + platform: win-64 + dependencies: + packaging: '' + colorama: '' + iniconfig: '' + python: '>=3.7' + exceptiongroup: '>=1.0.0rc8' + tomli: '>=1.0.0' + pluggy: '>=0.12,<2.0' + url: https://conda.anaconda.org/conda-forge/noarch/pytest-7.4.2-pyhd8ed1ab_0.conda + hash: + md5: 6dd662ff5ac9a783e5c940ce9f3fe649 + sha256: 150bfb2a86dffd4ce1e91c2d61dde5779fb3ee338675e210fec4ef508ffff28c + category: main + optional: false +- name: python-dateutil + version: 2.8.2 + manager: conda + platform: win-64 + dependencies: + python: '>=3.6' + six: '>=1.5' + url: https://conda.anaconda.org/conda-forge/noarch/python-dateutil-2.8.2-pyhd8ed1ab_0.tar.bz2 + hash: + md5: dd999d1cc9f79e67dbb855c8924c7984 + sha256: 54d7785c7678166aa45adeaccfc1d2b8c3c799ca2dc05d4a82bb39b1968bd7da + category: main + optional: false +- name: ruamel.yaml + version: 0.17.35 + manager: conda + platform: win-64 + dependencies: + python: '>=3.10,<3.11.0a0' + python_abi: 3.10.* + ruamel.yaml.clib: '>=0.1.2' + setuptools: '' + ucrt: '>=10.0.20348.0' + vc: '>=14.2,<15' + vc14_runtime: '>=14.29.30139' + url: https://conda.anaconda.org/conda-forge/win-64/ruamel.yaml-0.17.35-py310h8d17308_0.conda + hash: + md5: 0a18e49a4847dd077c31a39832def917 + sha256: 08c771f7c23dacb8c9a19fceafb13f75fbc3ee42191c7cc052908a0a566a65fd + category: main + optional: false +- name: tbb + version: 2021.10.0 + manager: conda + platform: win-64 + dependencies: + libhwloc: '>=2.9.3,<2.9.4.0a0' + ucrt: '>=10.0.20348.0' + vc: '>=14.2,<15' + vc14_runtime: '>=14.29.30139' + url: https://conda.anaconda.org/conda-forge/win-64/tbb-2021.10.0-h91493d7_1.conda + hash: + md5: 57ea1be8408c5a9a737648b5f919e725 + sha256: 492c57a480ad283e467c0bdfc8ea55eaf20c4c7e73340a0c1b200a077c9ba2d9 + category: main + optional: false +- name: typing-extensions + version: 4.8.0 + manager: conda + platform: win-64 + dependencies: + typing_extensions: 4.8.0 + url: https://conda.anaconda.org/conda-forge/noarch/typing-extensions-4.8.0-hd8ed1ab_0.conda + hash: + md5: 384462e63262a527bda564fa2d9126c0 + sha256: d6e1dddd0c372218ef15912383d351ac8c73465cbf16238017f0269813cafe2d + category: main + optional: false +- name: click-default-group + version: 1.2.4 + manager: conda + platform: win-64 + dependencies: + click: '' + python: '>=2.7' + url: https://conda.anaconda.org/conda-forge/noarch/click-default-group-1.2.4-pyhd8ed1ab_0.conda + hash: + md5: 7c2b6931f9b3548ed78478332095c3e9 + sha256: b36e35d735ddd29d7c592eb3de4b3979e13a9f76f1b4bc939f2cb4402758d6d0 + category: main + optional: false +- name: gitpython + version: 3.1.37 + manager: conda + platform: win-64 + dependencies: + python: '>=3.7' + typing_extensions: '>=3.7.4.3' + gitdb: '>=4.0.1,<5' + url: https://conda.anaconda.org/conda-forge/noarch/gitpython-3.1.37-pyhd8ed1ab_0.conda + hash: + md5: 8b94c329190fa6814f412adf2ab0f0a2 + sha256: 1993b954fcaea3a3927ad5e6ff0db49855fc07ba77aa42b5b9d8056e52e787a0 + category: main + optional: false +- name: importlib_metadata + version: 6.8.0 + manager: conda + platform: win-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 + hash: + md5: b279b07ce18058034e5b3606ba103a8b + sha256: b96e01dc42d547d6d9ceb1c5b52a5232cc04e40153534350f702c3e0418a6b3f + category: main + optional: false +- name: libnetcdf + version: 4.9.2 + manager: conda + platform: win-64 + dependencies: + blosc: '>=1.21.4,<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' + libxml2: '>=2.11.5,<2.12.0a0' + libzip: '>=1.10.1,<2.0a0' + libzlib: '>=1.2.13,<1.3.0a0' + ucrt: '>=10.0.20348.0' + vc: '>=14.2,<15' + vc14_runtime: '>=14.29.30139' + zlib: '' + zstd: '>=1.5.5,<1.6.0a0' + url: https://conda.anaconda.org/conda-forge/win-64/libnetcdf-4.9.2-nompi_h8284064_112.conda + hash: + md5: d13288269ee4de9079261a31028f9954 + sha256: 6694fb1a949893178c3e0c7df648f5b9875da5ba9b1d76ec5d9a5bac6647dfc6 + category: main + optional: false +- name: mkl + version: 2022.1.0 + manager: conda + platform: win-64 + dependencies: + intel-openmp: '' + tbb: 2021.* + url: https://conda.anaconda.org/conda-forge/win-64/mkl-2022.1.0-h6a75c08_874.tar.bz2 + hash: + md5: 2ff89a7337a9636029b4db9466e9f8e3 + sha256: b130d13dba6a798cbcce8f19c52e9765b75b8668d2f8f95ba8210c63b6fa84eb + category: main + optional: false +- name: platformdirs + version: 3.11.0 + manager: conda + platform: win-64 + dependencies: + python: '>=3.7' + typing-extensions: '>=4.6.3' + url: https://conda.anaconda.org/conda-forge/noarch/platformdirs-3.11.0-pyhd8ed1ab_0.conda + hash: + md5: 8f567c0a74aa44cf732f15773b4083b0 + sha256: b3d809ff5a18ee8514bba8bc05a23b4cdf1758090a18a2cf742af38aed405144 + category: main + optional: false +- name: pydantic + version: 1.10.13 + manager: conda + platform: win-64 + dependencies: + python: '>=3.10,<3.11.0a0' + python_abi: 3.10.* + typing-extensions: '>=4.2.0' + ucrt: '>=10.0.20348.0' + vc: '>=14.2,<15' + vc14_runtime: '>=14.29.30139' + url: https://conda.anaconda.org/conda-forge/win-64/pydantic-1.10.13-py310h8d17308_0.conda + hash: + md5: d81a46afbacf569117bcc7fcfb30ae7d + sha256: a9c8687e44df37f38ed42b5783a6a67280550a94b12fa64d08d15f9afbbee849 + category: main + optional: false +- name: rich + version: 13.6.0 + manager: conda + platform: win-64 + dependencies: + python: '>=3.7.0' + typing_extensions: '>=4.0.0,<5.0.0' + pygments: '>=2.13.0,<3.0.0' + markdown-it-py: '>=2.2.0' + url: https://conda.anaconda.org/conda-forge/noarch/rich-13.6.0-pyhd8ed1ab_0.conda + hash: + md5: 3ca4829f40710f581ca1d76bc907e99f + sha256: a2f8838a75ab8c2c1da0a813c7569d4f6efba0d2b5dc3a7659e2cb6d96bd8e19 + category: main + optional: false +- name: stack_data + version: 0.6.2 + manager: conda + platform: win-64 + dependencies: + asttokens: '' + executing: '' + pure_eval: '' + python: '>=3.5' + url: https://conda.anaconda.org/conda-forge/noarch/stack_data-0.6.2-pyhd8ed1ab_0.conda + hash: + md5: e7df0fdd404616638df5ece6e69ba7af + sha256: a58433e75229bec39f3be50c02efbe9b7083e53a1f31d8ee247564f370191eec + category: main + optional: false +- name: ukkonen + version: 1.0.1 + manager: conda + platform: win-64 + dependencies: + cffi: '' + python: '>=3.10,<3.11.0a0' + python_abi: 3.10.* + ucrt: '>=10.0.20348.0' + vc: '>=14.2,<15' + vc14_runtime: '>=14.29.30139' + url: https://conda.anaconda.org/conda-forge/win-64/ukkonen-1.0.1-py310h232114e_4.conda + hash: + md5: e20a6c916b53274a2af59810b23d1f4c + sha256: e2a988a21eee908c731f9767fa77fb95063cb43f124b4a92bb36c93f0f461ae4 + category: main + optional: false +- name: urllib3 + version: 1.26.17 + manager: conda + platform: win-64 + dependencies: + python: '>=3.7' + brotli-python: '>=1.0.9' + pysocks: '>=1.5.6,<2.0,!=1.5.7' + url: https://conda.anaconda.org/conda-forge/noarch/urllib3-1.26.17-pyhd8ed1ab_0.conda + hash: + md5: 3b94800e11804555e40971c97fd3e801 + sha256: 6fbd62aa5fc060bfada26a0f4ad1dab6709a1fe62b3b04dbed49fcc94663979d + category: main + optional: false +- name: wcwidth + version: 0.2.8 + manager: conda + platform: win-64 + dependencies: + backports.functools_lru_cache: '' + python: '>=3.6' + url: https://conda.anaconda.org/conda-forge/noarch/wcwidth-0.2.8-pyhd8ed1ab_0.conda + hash: + md5: 367386d2575a0e62412448eda1012efd + sha256: e3b6d2041b4d175a1437dccc71b4ef2e53111dfcc64b219fef4bed379e6ef236 + category: main + optional: false +- name: identify + version: 2.5.30 + manager: conda + platform: win-64 + dependencies: + ukkonen: '' + python: '>=3.6' + url: https://conda.anaconda.org/conda-forge/noarch/identify-2.5.30-pyhd8ed1ab_0.conda + hash: + md5: b7a2e3bb89bda8c69839485c20aabadf + sha256: dc9901654af0556209bb5b4194ef2deb643bc641ac859a31f13c41b945b60150 + category: main + optional: false +- name: keyring + version: 24.2.0 + manager: conda + platform: win-64 + dependencies: + importlib_metadata: '>=4.11.4' + jaraco.classes: '' + python: '>=3.10,<3.11.0a0' + python_abi: 3.10.* + pywin32-ctypes: '>=0.2.0' + url: https://conda.anaconda.org/conda-forge/win-64/keyring-24.2.0-py310h5588dad_1.conda + hash: + md5: 93592fb1ecc1bfe137b74cf942af4a53 + sha256: 663d5e8c90b90f267a5c3c1be95fb10215e4340466550d18221cdd57cb01c974 + category: main + optional: false +- name: libblas + version: 3.9.0 + manager: conda + platform: win-64 + dependencies: + mkl: 2022.1.0 + url: https://conda.anaconda.org/conda-forge/win-64/libblas-3.9.0-18_win64_mkl.conda + hash: + md5: b241da5b7a888f72bb3c3e82747334f4 + sha256: 5aef8d69197108f3c320a5d4ad4d19ab9c809cdbbf731c7ab988c227de42d6b5 + category: main + optional: false +- name: prompt-toolkit + version: 3.0.39 + manager: conda + platform: win-64 + dependencies: + wcwidth: '' + python: '>=3.7' + url: https://conda.anaconda.org/conda-forge/noarch/prompt-toolkit-3.0.39-pyha770c72_0.conda + hash: + md5: a4986c6bb5b0d05a38855b0880a5f425 + sha256: 10e7fdc75d4b85633be6b12a70b857053987127a808caa0f88b2cba4b3ce6359 + category: main + optional: false +- name: requests + version: 2.31.0 + manager: conda + platform: win-64 + dependencies: + python: '>=3.7' + idna: '>=2.5,<4' + certifi: '>=2017.4.17' + charset-normalizer: '>=2,<4' + urllib3: '>=1.21.1,<3' + url: https://conda.anaconda.org/conda-forge/noarch/requests-2.31.0-pyhd8ed1ab_0.conda + hash: + md5: a30144e4156cdbb236f99ebb49828f8b + sha256: 9f629d6fd3c8ac5f2a198639fe7af87c4db2ac9235279164bfe0fcb49d8c4bad + category: main + optional: false +- name: rich-click + version: 1.6.1 + manager: conda + platform: win-64 + dependencies: + python: '>=3.7' + click: '>=7,<9' + rich: '>=10' + url: https://conda.anaconda.org/conda-forge/noarch/rich-click-1.6.1-pyhd8ed1ab_0.conda + hash: + md5: 59a168d82c582248859d8dc8075da6f6 + sha256: ed8ade65e48279dc9caff53230391d8f72bea6d55f6951fbf7fcc39d762e1e5e + category: main + optional: false +- name: virtualenv + version: 20.24.4 + manager: conda + platform: win-64 + dependencies: + python: '>=3.8' + distlib: <1,>=0.3.7 + filelock: <4,>=3.12.2 + platformdirs: <4,>=3.9.1 + url: https://conda.anaconda.org/conda-forge/noarch/virtualenv-20.24.4-pyhd8ed1ab_0.conda + hash: + md5: c3feaf947264a59a125e8c26e98c3c5a + sha256: 85c96449202ca87ec12783d8675b3655b4cd7b7afe49f2dc37d743adb0ed177f + category: main + optional: false +- name: bump-my-version + version: 0.10.0 + manager: conda + platform: win-64 + dependencies: + click: '' + rich: '' + tomlkit: '' + rich-click: '' + python: '>=3.8' + pydantic: <2.0.0 + url: https://conda.anaconda.org/conda-forge/noarch/bump-my-version-0.10.0-pyhd8ed1ab_0.conda + hash: + md5: d0cfdd7365c03381f3d8c4402a88c50c + sha256: 433cc87b7e1700aaf1ed9fe6f402bfda945409379cafb0d78ed757ca74e364e5 + category: main + optional: false +- name: cachecontrol + version: 0.13.1 + manager: conda + platform: win-64 + dependencies: + python: '>=3.7' + msgpack-python: '>=0.5.2' + requests: '>=2.16.0' + url: https://conda.anaconda.org/conda-forge/noarch/cachecontrol-0.13.1-pyhd8ed1ab_0.conda + hash: + md5: 174bd699bb5aa9e2622eb4b288276ff8 + sha256: aae7ab3a54989f9bf9273e4a17c911ba339a8b9354250bc11fb8eff2e3f4be60 + category: main + optional: false +- name: ensureconda + version: 1.4.3 + manager: conda + platform: win-64 + dependencies: + appdirs: '' + filelock: '' + python: '>=3.7' + requests: '>=2' + click: '>=5.1' + url: https://conda.anaconda.org/conda-forge/noarch/ensureconda-1.4.3-pyhd8ed1ab_0.tar.bz2 + hash: + md5: c99ae3abf501990769047b4b40a98f17 + sha256: b71784b6c24d2320b2f796d074e75e7dd1be7b7fc0f719c5cf3a582270b368d6 + category: main + optional: false +- name: libcblas + version: 3.9.0 + manager: conda + platform: win-64 + dependencies: + libblas: 3.9.0 + url: https://conda.anaconda.org/conda-forge/win-64/libcblas-3.9.0-18_win64_mkl.conda + hash: + md5: fb0b514194c14342a97dfe31a41d60fc + sha256: d5f60ed6508b3889a77caf5ff2b66203714e45ec4eea6e5cdb12fe6e8ef2bbdb + category: main + optional: false +- name: liblapack + version: 3.9.0 + manager: conda + platform: win-64 + dependencies: + libblas: 3.9.0 + url: https://conda.anaconda.org/conda-forge/win-64/liblapack-3.9.0-18_win64_mkl.conda + hash: + md5: 82117ef735a916ace2df6f2de4df4824 + sha256: f90d96695938659fad4dd47d92dbeebff4a3824979bfb1aac33c8287a83e9d23 + category: main + optional: false +- name: pre-commit + version: 3.4.0 + manager: conda + platform: win-64 + dependencies: + python: '>=3.8' + pyyaml: '>=5.1' + identify: '>=1.0.0' + nodeenv: '>=0.11.1' + cfgv: '>=2.0.0' + virtualenv: '>=20.10.0' + url: https://conda.anaconda.org/conda-forge/noarch/pre-commit-3.4.0-pyha770c72_2.conda + hash: + md5: 09cd3006f61e7a7054405f81362e0a5f + sha256: b4ffac42cec8a6c38c528d7c0c5023557ea97b581dbe61bb290d8e630a246e1b + category: main + optional: false +- name: prompt_toolkit + version: 3.0.39 + manager: conda + platform: win-64 + dependencies: + prompt-toolkit: '>=3.0.39,<3.0.40.0a0' + url: https://conda.anaconda.org/conda-forge/noarch/prompt_toolkit-3.0.39-hd8ed1ab_0.conda + hash: + md5: 4bbbe67d5df19db30f04b8e344dc9976 + sha256: 89f7fecc7355181dbc2ab851e668a2fce6aa4830b336a34c93b59bda93206270 + category: main + optional: false +- name: cachecontrol-with-filecache + version: 0.13.1 + manager: conda + platform: win-64 + dependencies: + python: '>=3.7' + filelock: '>=3.8.0' + cachecontrol: 0.13.1 + url: https://conda.anaconda.org/conda-forge/noarch/cachecontrol-with-filecache-0.13.1-pyhd8ed1ab_0.conda + hash: + md5: 8c4781ca0893cff3a64423954ce234a1 + sha256: 7fd3cd4a667da284ae3aad9b8cb4d592099bc02ed6566cbae00bd8c0b0604e85 + category: main + optional: false +- name: ipython + version: 8.16.1 + manager: conda + platform: win-64 + dependencies: + typing_extensions: '' + colorama: '' + decorator: '' + __win: '' + exceptiongroup: '' + stack_data: '' + matplotlib-inline: '' + backcall: '' + pickleshare: '' + python: '>=3.9' + pygments: '>=2.4.0' + traitlets: '>=5' + jedi: '>=0.16' + prompt_toolkit: '>=3.0.30,<3.1.0,!=3.0.37' + url: https://conda.anaconda.org/conda-forge/noarch/ipython-8.16.1-pyh5737063_0.conda + hash: + md5: 1f0a208b45d0bf8d1cf09d2f2b549ab5 + sha256: 9a09600613147838d6bd027d22078abc13e83300a53192b465e8deb1ef0eeb22 + category: main + optional: false +- name: numpy + version: 1.22.4 + manager: conda + platform: win-64 + dependencies: + libblas: '>=3.8.0,<4.0a0' + libcblas: '>=3.8.0,<4.0a0' + liblapack: '>=3.8.0,<4.0a0' + python: '>=3.10,<3.11.0a0' + python_abi: 3.10.* + vc: '>=14.1,<15' + vs2015_runtime: '>=14.16.27033' + url: https://conda.anaconda.org/conda-forge/win-64/numpy-1.22.4-py310hed7ac4c_0.tar.bz2 + hash: + md5: 268caa71594c0d641b86d89f22e47dc3 + sha256: 0e981a01324cc0343c2ca899146cbf3d4e1062f3ac2d5dcaef762e609e16d047 + category: main + optional: false +- name: cftime + version: 1.6.2 + manager: conda + platform: win-64 + dependencies: + numpy: '>=1.22.4,<2.0a0' + python: '>=3.10,<3.11.0a0' + python_abi: 3.10.* + ucrt: '>=10.0.20348.0' + vc: '>=14.2,<15' + vc14_runtime: '>=14.29.30139' + url: https://conda.anaconda.org/conda-forge/win-64/cftime-1.6.2-py310h3e78b6c_2.conda + hash: + md5: 3cd1dbbcf0b4411e5e9bdb6fc7d36962 + sha256: 4e0ab008b0532538456f10a86d9f87e1627eb4f18ec40eb41123cd96293859de + category: main + optional: false +- name: conda-lock + version: 2.3.0 + manager: conda + platform: win-64 + dependencies: + typing_extensions: '' + jinja2: '' + ruamel.yaml: '' + tomli: '' + click-default-group: '' + python: '>=3.8' + pyyaml: '>=5.1' + click: '>=8.0' + packaging: '>=20.4' + requests: '>=2.18' + ensureconda: '>=1.3' + keyring: '>=21.2.0' + gitpython: '>=3.1.30' + html5lib: '>=1.0' + cachy: '>=0.3.0' + clikit: '>=0.6.2' + crashtest: '>=0.3.0' + pkginfo: '>=1.4' + tomlkit: '>=0.7.0' + virtualenv: '>=20.0.26' + pydantic: '>=1.10' + toolz: '>=0.12.0,<1.0.0' + cachecontrol-with-filecache: '>=0.12.9' + urllib3: '>=1.26.5,<2.0' + url: https://conda.anaconda.org/conda-forge/noarch/conda-lock-2.3.0-pyhd8ed1ab_0.conda + hash: + md5: 559bd2e1ad6f260cd4f2fd7d7b21bcca + sha256: b48875bb18c507895d5bd732746e44bbed8f56be66fc933bfe7e1af1bc845fe6 + category: main + optional: false +- name: ipdb + version: 0.13.13 + manager: conda + platform: win-64 + dependencies: + ipython: '' + decorator: '' + python: '>=2.7' + toml: '>=0.10.2' + url: https://conda.anaconda.org/conda-forge/noarch/ipdb-0.13.13-pyhd8ed1ab_0.conda + hash: + md5: 86baea403007ad4898d85c897c80b758 + sha256: 16ea279fae5b3b77a694bf7bc8bcda9c310be39d6fbf78664d3111bcd5f5758a + category: main + optional: false +- name: pandas + version: 2.1.1 + manager: conda + platform: win-64 + dependencies: + numpy: '>=1.22.4,<2.0a0' + python: '>=3.10,<3.11.0a0' + python-dateutil: '>=2.8.1' + python-tzdata: '>=2022a' + python_abi: 3.10.* + pytz: '>=2020.1' + ucrt: '>=10.0.20348.0' + vc: '>=14.2,<15' + vc14_runtime: '>=14.29.30139' + url: https://conda.anaconda.org/conda-forge/win-64/pandas-2.1.1-py310hecd3228_1.conda + hash: + md5: 5ccb41168a031b091c11cce05d2b37c4 + sha256: da289e4bb18065bea2022cdb51c55d0f5c95cebaf94f44dad47b9977f071b7b6 + category: main + optional: false +- name: scipy + version: 1.11.3 + manager: conda + platform: win-64 + dependencies: + libblas: '>=3.9.0,<4.0a0' + libcblas: '>=3.9.0,<4.0a0' + liblapack: '>=3.9.0,<4.0a0' + m2w64-gcc-libs: '' + m2w64-gcc-libs-core: '' + numpy: '>=1.22.4,<2.0a0' + python: '>=3.10,<3.11.0a0' + python_abi: 3.10.* + ucrt: '>=10.0.20348.0' + vc: '>=14.2,<15' + vc14_runtime: '>=14.29.30139' + url: https://conda.anaconda.org/conda-forge/win-64/scipy-1.11.3-py310h70e3499_0.conda + hash: + md5: 0b503b20eb2f2466c070b7360650615d + sha256: 5818c883d19fd708ad27c317727bf57167478c822531cc993354223d355a56c1 + category: main + optional: false +- name: netcdf4 + version: 1.6.4 + manager: conda + platform: win-64 + dependencies: + certifi: '' + cftime: '' + hdf5: '>=1.14.2,<1.14.3.0a0' + libnetcdf: '>=4.9.2,<4.9.3.0a0' + libzlib: '>=1.2.13,<1.3.0a0' + numpy: '>=1.22.4,<2.0a0' + python: '>=3.10,<3.11.0a0' + python_abi: 3.10.* + setuptools: '' + ucrt: '>=10.0.20348.0' + vc: '>=14.2,<15' + vc14_runtime: '>=14.29.30139' + url: https://conda.anaconda.org/conda-forge/win-64/netcdf4-1.6.4-nompi_py310h6477780_103.conda + hash: + md5: f070b75c4231a40ab5d1df00e32a4388 + sha256: e508feb6b0da98adfdd6c52ef2d93b579d59fa5051e8dc43085e1110b05eda3c + category: main + optional: false +- name: xarray + version: 2023.9.0 + manager: conda + platform: win-64 + dependencies: + python: '>=3.9' + packaging: '>=21.3' + numpy: '>=1.21' + pandas: '>=1.4' + url: https://conda.anaconda.org/conda-forge/noarch/xarray-2023.9.0-pyhd8ed1ab_0.conda + hash: + md5: 158c89bbc0f2597f33e8ce1aea59e0ee + sha256: fd86c6b5da4469df74aec93d8dbc8c8903377a81d7c245a14745b38b70799803 + category: main + optional: false diff --git a/environment.yml b/environment.yml new file mode 100644 index 00000000..3c4c1517 --- /dev/null +++ b/environment.yml @@ -0,0 +1,30 @@ +name: seaice_ecdr +channels: + - conda-forge + - nodefaults +dependencies: + - python ~=3.10.0 + + ######################################## + # Imported dependencies and extensions # + ######################################## + - numpy ~=1.22.4 + - xarray ~=2023.6 + - netCDF4 ~=1.6.3 + - loguru ~=0.7 + - scipy ~=1.11.3 + + ############################# + # Non-imported dependencies # + ############################# + + # testing/linting/typechecking + - pre-commit + - pytest ~=7.1 + - mypy ~=1.5.1 + + # other utilities + - bump-my-version ~=0.10.0 + - ipython + - ipdb + - conda-lock diff --git a/pyproject.toml b/pyproject.toml new file mode 100644 index 00000000..484dceba --- /dev/null +++ b/pyproject.toml @@ -0,0 +1,70 @@ +[project] +name = "seaice_ecdr" +version = "0.1.0" + +[tool.black] +target-version = ["py310"] + + +[tool.vulture] +paths = ["seaice_ecdr"] +min_confidence = 80 + + +[tool.ruff] +target-version = "py310" + +ignore = [ + # D1: Ignore errors requiring docstrings on everything. + # D203: "1 blank line required before class docstring" + # D213: "Multi-line docstring summary should start at the second line" + # E731: Lambda assignments are OK, use your best judgement. + # RUF010: !a, !r, !s are too magical for me. + "D1", "D203", "D213", "E731", "RUF010", +] + +[tool.ruff.isort] +known-first-party = ["seaice_ecdr"] + +[tool.ruff.mccabe] +max-complexity = 8 + +[tool.ruff.flake8-quotes] +inline-quotes = "double" + +[tool.pytest.ini_options] +testpaths = [ + "seaice_ecdr/tests/", +] + +filterwarnings = [ + "ignore:numpy.ndarray size changed:RuntimeWarning", +] + +[tool.mypy] +python_version = "3.10" +packages = ["seaice_ecdr"] +incremental = true +strict = false +show_error_codes = true +enable_error_code = ["ignore-without-code", "redundant-expr", "truthy-bool"] +warn_unreachable = true +check_untyped_defs = true +warn_unused_ignores = true +plugins = ["numpy.typing.mypy_plugin", ] + +[[tool.mypy.overrides]] +module = [ + "invoke.*", + "matplotlib.*", + "cartopy.*", + "scipy.*", + "sklearn.*", + "h5py.*", + "pandas.*", + "pyresample.*", + "setuptools.*", + "netCDF4.*", + "rasterio.*", +] +ignore_missing_imports = true diff --git a/pytest.ini b/pytest.ini deleted file mode 100644 index c199de8a..00000000 --- a/pytest.ini +++ /dev/null @@ -1,3 +0,0 @@ -[pytest] -filterwarnings = - ignore:numpy.ndarray size changed:RuntimeWarning diff --git a/seaice_ecdr/cli/entrypoint.py b/seaice_ecdr/cli/entrypoint.py index c8e40022..a1e6ea3d 100644 --- a/seaice_ecdr/cli/entrypoint.py +++ b/seaice_ecdr/cli/entrypoint.py @@ -4,8 +4,6 @@ from pm_icecon.cdr import cli as cdr_cli from pm_icecon.nt.cli import cli as nt_cli -# from seaice_ecdr.pm_cdr import cli as pm_cdr_cli -# from seaice_ecdr.pm_cdr import cli as ecdr_cli from seaice_ecdr.initial_daily_ecdr import cli as ecdr_cli @@ -21,7 +19,7 @@ def cli(): cli.add_command(ecdr_cli) -if __name__ == '__main__': +if __name__ == "__main__": from pm_icecon.cli.entrypoint import cli # from seaice_ecdr.cli.entrypoint import cli_ecdr diff --git a/seaice_ecdr/gridid_to_xr_dataarray.py b/seaice_ecdr/gridid_to_xr_dataarray.py index fcb2e425..8e935aa7 100644 --- a/seaice_ecdr/gridid_to_xr_dataarray.py +++ b/seaice_ecdr/gridid_to_xr_dataarray.py @@ -37,18 +37,18 @@ def get_dataset_for_gridid(gridid, grid_date, return_dataset=True): """ if return_dataset: logger.info( - f'Creating georeferenced dataset on {gridid} grid for {grid_date}' + f"Creating georeferenced dataset on {gridid} grid for {grid_date}" ) # noqa crs_attrs: Dict[str, Union[str, float]] = {} # CRS for polar stereo grids - if gridid[:2] == 'ps': - crs_attrs['grid_mapping_name'] = 'polar_stereographic' - crs_attrs['false_easting'] = 0.0 - crs_attrs['false_northing'] = 0.0 - crs_attrs['semi_major_axis'] = 6378273.0 - crs_attrs['inverse_flattening'] = 298.279411123064 - if 'psn' in gridid: + if gridid[:2] == "ps": + crs_attrs["grid_mapping_name"] = "polar_stereographic" + crs_attrs["false_easting"] = 0.0 + crs_attrs["false_northing"] = 0.0 + crs_attrs["semi_major_axis"] = 6378273.0 + crs_attrs["inverse_flattening"] = 298.279411123064 + if "psn" in gridid: # Note: two attrs will need resolution-based updates: # long_name # GeoTransform @@ -56,19 +56,19 @@ def get_dataset_for_gridid(gridid, grid_date, return_dataset=True): xright = 3750000.0 ytop = 5850000.0 ybottom = -5350000.0 - crs_attrs['long_name'] = 'NSIDC_NH_PolarStereo_{res_km}km' - crs_attrs['straight_vertical_longitude_from_pol'] = -45.0 - crs_attrs['latitude_of_projection_origin'] = 90.0 - crs_attrs['standard_parallel'] = 70.0 + crs_attrs["long_name"] = "NSIDC_NH_PolarStereo_{res_km}km" + crs_attrs["straight_vertical_longitude_from_pol"] = -45.0 + crs_attrs["latitude_of_projection_origin"] = 90.0 + crs_attrs["standard_parallel"] = 70.0 crs_attrs[ - 'proj4text' - ] = '+proj=stere +lat_0=90 +lat_ts=70 +lon_0=-45 +k=1 +x_0=0 +y_0=0 +a=6378273 +b=6356889.449 +units=m +no_defs' # noqa - crs_attrs['srid'] = 'urn:ogc:def:crs:EPSG::3411' + "proj4text" + ] = "+proj=stere +lat_0=90 +lat_ts=70 +lon_0=-45 +k=1 +x_0=0 +y_0=0 +a=6378273 +b=6356889.449 +units=m +no_defs" # noqa + crs_attrs["srid"] = "urn:ogc:def:crs:EPSG::3411" crs_attrs[ - 'crs_wkt' + "crs_wkt" ] = 'PROJCS["NSIDC Sea Ice Polar Stereographic North",GEOGCS["Unspecified datum based upon the Hughes 1980 ellipsoid",DATUM["Not_specified_based_on_Hughes_1980_ellipsoid"’,SPHEROID["Hughes 1980",6378273,298.279411123061,AUTHORITY["EPSG","7058"]],AUTHORITY["EPSG","6054"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4054"]],PROJECTION["Polar_Stereographic"],PARAMETER["latitude_of_origin",70],PARAMETER["central_meridian",-45],PARAMETER["scale_factor",1],PARAMETER["false_easting",0],PARAMETER["false_northing",0],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AXIS["X",EAST],AXIS["Y",NORTH],AUTHORITY["EPSG","3411"]]' # noqa - crs_attrs['GeoTransform'] = '{xleft} {res_m} 0 {ytop} 0 -{res_m}' - if 'pss' in gridid: + crs_attrs["GeoTransform"] = "{xleft} {res_m} 0 {ytop} 0 -{res_m}" + if "pss" in gridid: # Note: two attrs will need resolution-based updates: # long_name # GeoTransform @@ -76,95 +76,93 @@ def get_dataset_for_gridid(gridid, grid_date, return_dataset=True): xright = 3950000.0 ytop = 4350000.0 ybottom = -3950000.0 - crs_attrs['long_name'] = 'NSIDC_SH_PolarStereo_{res_km}km' - crs_attrs['straight_vertical_longitude_from_pol'] = 0.0 - crs_attrs['latitude_of_projection_origin'] = -90.0 - crs_attrs['standard_parallel'] = -70.0 + crs_attrs["long_name"] = "NSIDC_SH_PolarStereo_{res_km}km" + crs_attrs["straight_vertical_longitude_from_pol"] = 0.0 + crs_attrs["latitude_of_projection_origin"] = -90.0 + crs_attrs["standard_parallel"] = -70.0 crs_attrs[ - 'proj4text' - ] = '+proj=stere +lat_0=-90 +lat_ts=-70 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=6378273 +b=6356889.449 +units=m +no_defs' # noqa - crs_attrs['srid'] = 'urn:ogc:def:crs:EPSG::3412' + "proj4text" + ] = "+proj=stere +lat_0=-90 +lat_ts=-70 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=6378273 +b=6356889.449 +units=m +no_defs" # noqa + crs_attrs["srid"] = "urn:ogc:def:crs:EPSG::3412" crs_attrs[ - 'crs_wkt' + "crs_wkt" ] = 'PROJCS["NSIDC Sea Ice Polar Stereographic South",GEOGCS["Unspecified datum based upon the Hughes 1980 ellipsoid",DATUM["Not_specified_based_on_Hughes_1980_ellipsoid",SPHEROID["Hughes 1980",6378273,298.279411123061,AUTHORITY["EPSG","7058"]],AUTHORITY["EPSG","6054"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4054"]],PROJECTION["Polar_Stereographic"],PARAMETER["latitude_of_origin",-70],PARAMETER["central_meridian",0],PARAMETER["scale_factor",1],PARAMETER["false_easting",0],PARAMETER["false_northing",0],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AXIS["X",EAST],AXIS["Y",NORTH],AUTHORITY["EPSG","3412"]]' # noqa - crs_attrs['GeoTransform'] = '{xleft} {res_m} 0 {ytop} 0 -{res_m}' + crs_attrs["GeoTransform"] = "{xleft} {res_m} 0 {ytop} 0 -{res_m}" - elif gridid[:3] == 'e2t': + elif gridid[:3] == "e2t": xleft = -17367530.44 xright = 17367530.44 ytop = 6756820.2 ybottom = -6756820.2 - crs_attrs['long_name'] = 'NSIDC_EASE2_T{res_km}km' - crs_attrs['grid_mapping_name'] = 'lambert_cylindrical_equal_area' - crs_attrs['longitude_of_central_meridian'] = 0.0 - crs_attrs['standard_parallel'] = 30.0 - crs_attrs['false_easting'] = 0.0 - crs_attrs['false_northing'] = 0.0 - crs_attrs['semi_major_axis'] = 6378137.0 - crs_attrs['inverse_flattening'] = 298.257223563 + crs_attrs["long_name"] = "NSIDC_EASE2_T{res_km}km" + crs_attrs["grid_mapping_name"] = "lambert_cylindrical_equal_area" + crs_attrs["longitude_of_central_meridian"] = 0.0 + crs_attrs["standard_parallel"] = 30.0 + crs_attrs["false_easting"] = 0.0 + crs_attrs["false_northing"] = 0.0 + crs_attrs["semi_major_axis"] = 6378137.0 + crs_attrs["inverse_flattening"] = 298.257223563 crs_attrs[ - 'proj4text' - ] = '+proj=cea +lon_0=0 +lat_ts=30 +x_0=0 +y_0=0 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs' # noqa - crs_attrs['srid'] = 'urn:ogc:def:crs:EPSG::6933' + "proj4text" + ] = "+proj=cea +lon_0=0 +lat_ts=30 +x_0=0 +y_0=0 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs" # noqa + crs_attrs["srid"] = "urn:ogc:def:crs:EPSG::6933" crs_attrs[ - 'crs_wkt' + "crs_wkt" ] = 'PROJCS["unnamed",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9108"]],AUTHORITY["EPSG","4326"]],PROJECTION["Cylindrical_Equal_Area"],PARAMETER["standard_parallel_1",30],PARAMETER["central_meridian",0],PARAMETER["false_easting",0],PARAMETER["false_northing",0],UNIT["Meter",1],AUTHORITY["epsg","6933"]]' # noqa crs_attrs[ - 'GeoTransform' - ] = '-17367530.44 {res_tkm} 0 6756820.2 0 -{res_tkm}' # noqa + "GeoTransform" + ] = "-17367530.44 {res_tkm} 0 6756820.2 0 -{res_tkm}" # noqa - elif gridid[:2] == 'e2': + elif gridid[:2] == "e2": xleft = -9000000.0 xright = 9000000.0 ytop = 9000000.0 ybottom = -9000000.0 - crs_attrs['grid_mapping_name'] = 'lambert_azimuthal_equal_area' - crs_attrs['longitude_of_projection'] = 0.0 - crs_attrs['false_easting'] = 0.0 - crs_attrs['false_northing'] = 0.0 - crs_attrs['semi_major_axis'] = 6378137.0 - crs_attrs['inverse_flattening'] = 298.257223563 - crs_attrs['GeoTransform'] = '-9000000 {res_m} 0 9000000 0 -{res_m}' - - if gridid[:3] == 'e2n': - crs_attrs['long_name'] = 'NSIDC_EASE2_N{res_km}km' - crs_attrs['latitude_of_projection_origin'] = 90.0 + crs_attrs["grid_mapping_name"] = "lambert_azimuthal_equal_area" + crs_attrs["longitude_of_projection"] = 0.0 + crs_attrs["false_easting"] = 0.0 + crs_attrs["false_northing"] = 0.0 + crs_attrs["semi_major_axis"] = 6378137.0 + crs_attrs["inverse_flattening"] = 298.257223563 + crs_attrs["GeoTransform"] = "-9000000 {res_m} 0 9000000 0 -{res_m}" + + if gridid[:3] == "e2n": + crs_attrs["long_name"] = "NSIDC_EASE2_N{res_km}km" + crs_attrs["latitude_of_projection_origin"] = 90.0 crs_attrs[ - 'proj4text' - ] = '+proj=laea +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs' # noqa - crs_attrs['srid'] = 'urn:ogc:def:crs:EPSG::6931' + "proj4text" + ] = "+proj=laea +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs" # noqa + crs_attrs["srid"] = "urn:ogc:def:crs:EPSG::6931" crs_attrs[ - 'crs_wkt' + "crs_wkt" ] = 'PROJCS["unnamed",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9108"]],AUTHORITY["EPSG","4326"]],PROJECTION["Lambert_Azimuthal_Equal_Area"],PARAMETER["latitude_of_center",90],PARAMETER["longitude_of_center",0],PARAMETER["false_easting",0],PARAMETER["false_northing",0],UNIT["Meter",1],AUTHORITY["epsg","6931"]]atitude_of_center",90],PARAMETER["longitude_of_center",0],PARAMETER["false_easting",0],PARAMETER["false_northing",0],UNIT["Meter",1],AUTHORITY["epsg","6931"]]' # noqa - elif gridid[:3] == 'e2s': - crs_attrs['long_name'] = 'NSIDC_EASE2_S{res_km}km' - crs_attrs['latitude_of_projection_origin'] = -90.0 + elif gridid[:3] == "e2s": + crs_attrs["long_name"] = "NSIDC_EASE2_S{res_km}km" + crs_attrs["latitude_of_projection_origin"] = -90.0 crs_attrs[ - 'proj4text' - ] = '+proj=laea +lat_0=-90 +lon_0=0 +x_0=0 +y_0=0 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs' # noqa - crs_attrs['srid'] = 'urn:ogc:def:crs:EPSG::6932' + "proj4text" + ] = "+proj=laea +lat_0=-90 +lon_0=0 +x_0=0 +y_0=0 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs" # noqa + crs_attrs["srid"] = "urn:ogc:def:crs:EPSG::6932" crs_attrs[ - 'crs_wkt' + "crs_wkt" ] = 'PROJCS["unnamed",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9108"]],AUTHORITY["EPSG","4326"]],PROJECTION["Lambert_Azimuthal_Equal_Area"],PARAMETER["latitude_of_center",-90],PARAMETER["longitude_of_center",0],PARAMETER["false_easting",0],PARAMETER["false_northing",0],UNIT["Meter",1],AUTHORITY["epsg","6932"]]' # noqa else: - raise ValueError(f'Could not determine EASE2 hemisphere: {gridid}') + raise ValueError(f"Could not determine EASE2 hemisphere: {gridid}") res_km = gridid[3:] res_m = int(float(res_km) * 1000) - crs_attrs['long_name'] = crs_attrs['long_name'].format( # type: ignore - res_km=res_km - ) - if gridid[:3] == 'e2t': - res_m = 1.0010104 * res_m # type: ignore + crs_attrs["long_name"] = crs_attrs["long_name"].format(res_km=res_km) # type: ignore[union-attr] # noqa + if gridid[:3] == "e2t": + res_m = 1.0010104 * res_m # type: ignore[assignment] res_tkm = 1.0010104 * float(res_km) - crs_attrs['GeoTransform'] = crs_attrs['GeoTransform'].format( # type: ignore + crs_attrs["GeoTransform"] = crs_attrs["GeoTransform"].format( # type: ignore[union-attr] # noqa res_km=res_km, res_tkm=res_tkm, xleft=xleft, ytop=ytop, ) else: - crs_attrs['GeoTransform'] = crs_attrs['GeoTransform'].format( # type: ignore + crs_attrs["GeoTransform"] = crs_attrs["GeoTransform"].format( # type: ignore[union-attr] # noqa res_km=res_km, res_m=res_m, xleft=xleft, @@ -183,94 +181,94 @@ def get_dataset_for_gridid(gridid, grid_date, return_dataset=True): ys = np.linspace(ytop_center, ybottom_center, num=ydim) x_da = xr.DataArray( - name='x', + name="x", data=xs, - dims=['x'], + dims=["x"], attrs={ - 'standard_name': 'projection_x_coordinate', - 'long_name': 'x', - 'axis': 'X', - 'units': 'meters', - 'coverage_content_type': 'coordinate', - 'valid_range': [xleft, xright], - 'actual_range': [xleft_center, xright_center], + "standard_name": "projection_x_coordinate", + "long_name": "x", + "axis": "X", + "units": "meters", + "coverage_content_type": "coordinate", + "valid_range": [xleft, xright], + "actual_range": [xleft_center, xright_center], }, ) y_da = xr.DataArray( - name='y', + name="y", data=ys, - dims=['y'], + dims=["y"], attrs={ - 'standard_name': 'projection_y_coordinate', - 'long_name': 'y', - 'axis': 'Y', - 'units': 'meters', - 'coverage_content_type': 'coordinate', - 'valid_range': [ybottom, ytop], - 'actual_range': [ybottom_center, ytop_center], + "standard_name": "projection_y_coordinate", + "long_name": "y", + "axis": "Y", + "units": "meters", + "coverage_content_type": "coordinate", + "valid_range": [ybottom, ytop], + "actual_range": [ybottom_center, ytop_center], }, ) time_as_int = (grid_date - dt.date(1970, 1, 1)).days time_da = xr.DataArray( - name='time', + name="time", data=[int(time_as_int)], - dims=['time'], + dims=["time"], attrs={ - 'standard_name': 'time', - 'long_name': 'ANSI date', - 'calendar': 'standard', - 'axis': 'T', - 'units': 'days since 1970-01-01', - 'coverage_content_type': 'coordinate', - 'valid_range': [int(0), int(30000)], + "standard_name": "time", + "long_name": "ANSI date", + "calendar": "standard", + "axis": "T", + "units": "days since 1970-01-01", + "coverage_content_type": "coordinate", + "valid_range": [int(0), int(30000)], }, ) crs_da = xr.DataArray( - name='crs', - data='a', + name="crs", + data="a", attrs=crs_attrs, ) if return_dataset: ds = xr.Dataset( data_vars={ - 'crs': crs_da, - 'time': time_da, - 'y': y_da, - 'x': x_da, + "crs": crs_da, + "time": time_da, + "y": y_da, + "x": x_da, }, attrs={ - 'description': f'Geolocation for gridid {gridid}', + "description": f"Geolocation for gridid {gridid}", }, ) return ds else: return { - 'crs': crs_da, - 'time': time_da, - 'y': y_da, - 'x': x_da, + "crs": crs_da, + "time": time_da, + "y": y_da, + "x": x_da, } -if __name__ == '__main__': +if __name__ == "__main__": import sys try: gridid = sys.argv[1] except IndexError: - gridid = 'psn25' - print(f'Using default gridid: {gridid}') + gridid = "psn25" + print(f"Using default gridid: {gridid}") try: - grid_date = dt.datetime.strptime(sys.argv[2], '%Y%m%d').date() + grid_date = dt.datetime.strptime(sys.argv[2], "%Y%m%d").date() except IndexError: grid_date = dt.date(1970, 1, 1) - print(f'Using default grid_date: {grid_date}') + print(f"Using default grid_date: {grid_date}") if len(sys.argv) > 2: add_random_field = True @@ -282,15 +280,15 @@ def get_dataset_for_gridid(gridid, grid_date, return_dataset=True): if add_random_field: # Generate an appropriate time value sample_date = dt.date(2022, 12, 25) - time_units = ds.variables['time'].attrs['units'] - assert 'days since' in time_units + time_units = ds.variables["time"].attrs["units"] + assert "days since" in time_units ref_date_str = time_units.split()[2] - ref_date = dt.datetime.strptime(ref_date_str, '%Y-%m-%d').date() + ref_date = dt.datetime.strptime(ref_date_str, "%Y-%m-%d").date() sample_date_value = (sample_date - ref_date).days - old_time = ds.coords['time'] - orig_x = ds.coords['x'] - orig_y = ds.coords['y'] + old_time = ds.coords["time"] + orig_x = ds.coords["x"] + orig_y = ds.coords["y"] new_time = xr.DataArray( name=old_time.name, data=[int(sample_date_value)], @@ -300,45 +298,45 @@ def get_dataset_for_gridid(gridid, grid_date, return_dataset=True): ds = ds.assign_coords( { - 'time': new_time, - 'y': orig_y, - 'x': orig_x, + "time": new_time, + "y": orig_y, + "x": orig_x, } ) - xdim = np.size(ds.variables['x'].data) - ydim = np.size(ds.variables['y'].data) + xdim = np.size(ds.variables["x"].data) + ydim = np.size(ds.variables["y"].data) # Generate random data # field = np.random.randn(1, ydim, xdim) field = np.zeros((1, ydim, xdim)) - yvals, xvals = np.meshgrid(ds.variables['x'].data, ds.variables['y'].data) + yvals, xvals = np.meshgrid(ds.variables["x"].data, ds.variables["y"].data) field[0, :, :] = xvals[:, :] + yvals[:, :] - ds['sample_field'] = ( - ('time', 'y', 'x'), + ds["sample_field"] = ( + ("time", "y", "x"), field, { - '_FillValue': 0.0, - 'grid_mapping': 'crs', - 'sample_field_attr_1': 'attribute 1', - 'sample_field_attr_2': 2.0, - 'sample_field_attr_3': [int(3), int(3333)], - 'sample_field_attr_4': [np.int16(4), np.int16(44)], - 'sample_field_attr_5': [np.int16(5), np.float32(55)], - 'sample_field_attr_6': [np.float64(6), np.float64(66)], + "_FillValue": 0.0, + "grid_mapping": "crs", + "sample_field_attr_1": "attribute 1", + "sample_field_attr_2": 2.0, + "sample_field_attr_3": [int(3), int(3333)], + "sample_field_attr_4": [np.int16(4), np.int16(44)], + "sample_field_attr_5": [np.int16(5), np.float32(55)], + "sample_field_attr_6": [np.float64(6), np.float64(66)], }, { - 'zlib': True, + "zlib": True, }, ) - ds.attrs['comment'] = 'This version has a sample data field' + ds.attrs["comment"] = "This version has a sample data field" try: - ofn = f'geolocation_{gridid}.nc' - ds.to_netcdf(ofn, unlimited_dims=['time']) - print(f'Wrote: {ofn}') + ofn = f"geolocation_{gridid}.nc" + ds.to_netcdf(ofn, unlimited_dims=["time"]) + print(f"Wrote: {ofn}") except AttributeError: - print('No dataset returned') + print("No dataset returned") - print('Finished') + print("Finished") diff --git a/seaice_ecdr/initial_daily_ecdr.py b/seaice_ecdr/initial_daily_ecdr.py index 94d016e6..60c31f2e 100644 --- a/seaice_ecdr/initial_daily_ecdr.py +++ b/seaice_ecdr/initial_daily_ecdr.py @@ -7,7 +7,7 @@ import sys import traceback from pathlib import Path -from typing import get_args +from typing import get_args, TypedDict, cast import click import numpy as np @@ -15,18 +15,15 @@ import pm_icecon.bt.compute_bt_ic as bt import pm_icecon.bt.params.amsr2_cdr as pmi_bt_params -# import pm_icecon.bt.params.amsr2 as bt_amsr2_params import pm_icecon.nt.compute_nt_ic as nt import pm_icecon.nt.params.amsr2 as nt_amsr2_params import xarray as xr from loguru import logger -# from seaice_ecdr.pm_cdr import cdr from pm_icecon._types import Hemisphere from pm_icecon.cli.util import datetime_to_date -# from pm_icecon.config.models.bt import BootstrapParams -from pm_icecon.constants import CDR_DATA_DIR, DEFAULT_FLAG_VALUES +from pm_icecon.constants import DEFAULT_FLAG_VALUES from pm_tb_data.fetch.au_si import AU_SI_RESOLUTIONS, get_au_si_tbs from pm_icecon.fill_polehole import fill_pole_hole from pm_icecon.interpolation import spatial_interp_tbs @@ -37,8 +34,8 @@ read_adj123_file, ) -# from pm_icecon.nt._types import NasateamGradientRatioThresholds from pm_icecon.nt.tiepoints import NasateamTiePoints +from pm_icecon.nt._types import NasateamGradientRatioThresholds from pm_icecon.util import date_range, standard_output_filename from seaice_ecdr.gridid_to_xr_dataarray import get_dataset_for_gridid @@ -54,13 +51,13 @@ def cdr_bootstrap( missing_flag_value: float, ): """Generate the raw bootstrap concentration field.""" - wtp_37v = bt_coefs['bt_wtp_v37'] - wtp_37h = bt_coefs['bt_wtp_h37'] - wtp_19v = bt_coefs['bt_wtp_v19'] + wtp_37v = bt_coefs["bt_wtp_v37"] + wtp_37h = bt_coefs["bt_wtp_h37"] + wtp_19v = bt_coefs["bt_wtp_v19"] - itp_37v = bt_coefs['bt_itp_v37'] - itp_37h = bt_coefs['bt_itp_h37'] - itp_19v = bt_coefs['bt_itp_v19'] + itp_37v = bt_coefs["bt_itp_v37"] + itp_37h = bt_coefs["bt_itp_h37"] + itp_19v = bt_coefs["bt_itp_v19"] bt_conc = bt.calc_bootstrap_conc( tb_v37=tb_v37, @@ -72,10 +69,10 @@ def cdr_bootstrap( itp_37v=itp_37v, itp_37h=itp_37h, itp_19v=itp_19v, - line_37v37h=bt_coefs['vh37_lnline'], - line_37v19v=bt_coefs['v1937_lnline'], - ad_line_offset=bt_coefs['ad_line_offset'], - maxic_frac=bt_coefs['maxic'], + line_37v37h=bt_coefs["vh37_lnline"], + line_37v19v=bt_coefs["v1937_lnline"], + ad_line_offset=bt_coefs["ad_line_offset"], + maxic_frac=bt_coefs["maxic"], missing_flag_value=missing_flag_value, ) @@ -130,11 +127,16 @@ def get_bt_tb_mask( assert tb_v37.shape == tb_v19.shape assert tb_v37.shape == bt_tb_mask.shape except AssertionError as e: - raise ValueError(f'Mismatched shape error in get_bt_tb_mask\n{e}') + raise ValueError(f"Mismatched shape error in get_bt_tb_mask\n{e}") return bt_tb_mask +class NtCoefs(TypedDict): + nt_tiepoints: NasateamTiePoints + nt_gradient_thresholds: NasateamGradientRatioThresholds + + def calculate_bt_nt_cdr_raw_conc( date: dt.date, tb_h19: npt.NDArray, @@ -143,7 +145,7 @@ def calculate_bt_nt_cdr_raw_conc( tb_v19: npt.NDArray, tb_v22: npt.NDArray, bt_coefs: dict, - nt_coefs: dict, + nt_coefs: NtCoefs, missing_flag_value: float | int, ) -> tuple[npt.NDArray, npt.NDArray, npt.NDArray]: """Run the CDR algorithm.""" @@ -165,7 +167,7 @@ def calculate_bt_nt_cdr_raw_conc( tb_h19, tb_v37, tb_v19, - nt_coefs['nt_tiepoints'], + nt_coefs["nt_tiepoints"], ) # Now calculate CDR SIC @@ -188,34 +190,34 @@ def compute_initial_daily_ecdr_dataset( # Note: at first, this is simply a copy of amsr2_cdr # Set the gridid - if hemisphere == 'north' and resolution == '12': - gridid = 'psn12.5' - elif hemisphere == 'south' and resolution == '12': - gridid = 'pss12.5' + if hemisphere == "north" and resolution == "12": + gridid = "psn12.5" + elif hemisphere == "south" and resolution == "12": + gridid = "pss12.5" else: raise RuntimeError( - f'Could not determine gridid from:\n' f'{hemisphere} and {resolution}' + f"Could not determine gridid from:\n" f"{hemisphere} and {resolution}" ) # Initialize geo-referenced xarray Dataset ecdr_ide_ds = get_dataset_for_gridid(gridid, date) # Set initial global attributes - ecdr_ide_ds.attrs['description'] = 'Initial daily cdr conc file' + ecdr_ide_ds.attrs["description"] = "Initial daily cdr conc file" # Note: these attributes should probably go with # a variable named "CDR_parameters" or similar - ecdr_ide_ds.attrs['gridid'] = gridid - ecdr_ide_ds.attrs['date'] = date.strftime('%Y-%m-%d') - ecdr_ide_ds.attrs['missing_value'] = DEFAULT_FLAG_VALUES.missing + ecdr_ide_ds.attrs["gridid"] = gridid + ecdr_ide_ds.attrs["date"] = date.strftime("%Y-%m-%d") + ecdr_ide_ds.attrs["missing_value"] = DEFAULT_FLAG_VALUES.missing file_date = dt.date(1970, 1, 1) + dt.timedelta( - days=int(ecdr_ide_ds.variables['time'].data) + days=int(ecdr_ide_ds.variables["time"].data) ) - ecdr_ide_ds.attrs['time_coverage_start'] = str( + ecdr_ide_ds.attrs["time_coverage_start"] = str( dt.datetime(file_date.year, file_date.month, file_date.day, 0, 0, 0) ) - ecdr_ide_ds.attrs['time_coverage_end'] = str( + ecdr_ide_ds.attrs["time_coverage_end"] = str( dt.datetime(file_date.year, file_date.month, file_date.day, 23, 59, 59) ) @@ -227,147 +229,151 @@ def compute_initial_daily_ecdr_dataset( ) # Move TBs to ecdr_ds - for tbname in ('h18', 'v18', 'v23', 'h36', 'v36'): - tb_varname = f'{tbname}_day' + for tbname in ("h18", "v18", "v23", "h36", "v36"): + tb_varname = f"{tbname}_day" tbdata = xr_tbs.variables[tbname].data freq = tbname[1:] pol = tbname[:1] - tb_longname = f'Daily TB {freq}{pol} from AU_SI{resolution}' - tb_units = 'K' + tb_longname = f"Daily TB {freq}{pol} from AU_SI{resolution}" + tb_units = "K" ecdr_ide_ds[tb_varname] = ( - ('y', 'x'), + ("y", "x"), tbdata, { - '_FillValue': 0, - 'grid_mapping': 'crs', - 'standard_name': 'brightness_temperature', - 'long_name': tb_longname, - 'units': tb_units, - 'valid_range': [np.float64(10.0), np.float64(350.0)], + "_FillValue": 0, + "grid_mapping": "crs", + "standard_name": "brightness_temperature", + "long_name": tb_longname, + "units": tb_units, + "valid_range": [np.float64(10.0), np.float64(350.0)], }, { - 'zlib': True, + "zlib": True, }, ) # Spatially interpolate the brightness temperatures - for tbname in ('h18', 'v18', 'v23', 'h36', 'v36'): - tb_day_name = f'{tbname}_day' - tb_si_varname = f'{tb_day_name}_si' + for tbname in ("h18", "v18", "v23", "h36", "v36"): + tb_day_name = f"{tbname}_day" + tb_si_varname = f"{tb_day_name}_si" tb_si_data = spatial_interp_tbs(ecdr_ide_ds[tb_day_name].data) freq = tbname[1:] pol = tbname[:1] - tb_si_longname = f'Spatially interpolated {ecdr_ide_ds[tb_day_name].long_name}' - tb_units = 'K' + tb_si_longname = f"Spatially interpolated {ecdr_ide_ds[tb_day_name].long_name}" + tb_units = "K" ecdr_ide_ds[tb_si_varname] = ( - ('y', 'x'), + ("y", "x"), tb_si_data, { - '_FillValue': 0, - 'grid_mapping': 'crs', - 'standard_name': 'brightness_temperature', - 'long_name': tb_si_longname, - 'units': tb_units, - 'valid_range': [np.float64(10.0), np.float64(350.0)], + "_FillValue": 0, + "grid_mapping": "crs", + "standard_name": "brightness_temperature", + "long_name": tb_si_longname, + "units": tb_units, + "valid_range": [np.float64(10.0), np.float64(350.0)], }, { - 'zlib': True, + "zlib": True, }, ) # Set up the spatial interpolation bitmask field where the various # TB fields were interpolated - ydim, xdim = ecdr_ide_ds['h18_day_si'].data.shape + ydim, xdim = ecdr_ide_ds["h18_day_si"].data.shape spatint_bitmask_arr = np.zeros((ydim, xdim), dtype=np.uint8) tb_spatint_bitmask_map = { - 'v18': 1, - 'h18': 2, - 'v23': 4, - 'v36': 8, - 'h36': 16, - 'pole_filled': 32, + "v18": 1, + "h18": 2, + "v23": 4, + "v36": 8, + "h36": 16, + "pole_filled": 32, } - for tbname in ('h18', 'v18', 'v23', 'h36', 'v36'): - tb_varname = f'{tbname}_day' - si_varname = f'{tbname}_day_si' + for tbname in ("h18", "v18", "v23", "h36", "v36"): + tb_varname = f"{tbname}_day" + si_varname = f"{tbname}_day_si" is_tb_si_diff = ( ecdr_ide_ds[tb_varname].data != ecdr_ide_ds[si_varname].data ) & (~np.isnan(ecdr_ide_ds[si_varname].data)) spatint_bitmask_arr[is_tb_si_diff] += tb_spatint_bitmask_map[tbname] - ecdr_ide_ds['spatint_bitmask'] = ( - ('y', 'x'), + ecdr_ide_ds["spatint_bitmask"] = ( + ("y", "x"), spatint_bitmask_arr, { - '_FillValue': 0, - 'grid_mapping': 'crs', - 'standard_name': 'status_flag', - 'long_name': 'spatial_interpolation_flag', - 'units': 1, - 'valid_range': [np.uint8(0), np.uint8(63)], - 'flag_masks': np.array([1, 2, 4, 8, 16, 32], dtype=np.uint8), - 'flag_meanings': '19v_tb_value_interpolated' - ' 19h_tb_value_interpolated' - ' 22v_tb_value_interpolated' - ' 37v_tb_value_interpolated' - ' 37h_tb_value_interpolated' - ' Pole_hole_spatially_interpolated_(Arctic_only)', + "_FillValue": 0, + "grid_mapping": "crs", + "standard_name": "status_flag", + "long_name": "spatial_interpolation_flag", + "units": 1, + "valid_range": [np.uint8(0), np.uint8(63)], + "flag_masks": np.array([1, 2, 4, 8, 16, 32], dtype=np.uint8), + "flag_meanings": ( + "19v_tb_value_interpolated" + " 19h_tb_value_interpolated" + " 22v_tb_value_interpolated" + " 37v_tb_value_interpolated" + " 37h_tb_value_interpolated" + " Pole_hole_spatially_interpolated_(Arctic_only)" + ), }, { - 'zlib': True, + "zlib": True, }, ) - logger.info('Initialized spatial_interpolation_flag with TB fill locations') + logger.info("Initialized spatial_interpolation_flag with TB fill locations") bt_coefs_init = pmi_bt_params.get_bootstrap_params( date=date, - satellite='amsr2', + satellite="amsr2", gridid=gridid, ) # Add the function that generates the bt_tb_mask to bt_coefs - bt_coefs_init['bt_tb_data_mask_function'] = bt.tb_data_mask + bt_coefs_init["bt_tb_data_mask_function"] = bt.tb_data_mask # Get the bootstrap fields and assign them to ide_ds DataArrays bt_fields = pmi_bt_params.get_bootstrap_fields( date=date, - satellite='amsr2', + satellite="amsr2", gridid=gridid, ) # Encode invalid_ice_mask - ecdr_ide_ds['invalid_ice_mask'] = ( - ('y', 'x'), - bt_fields['invalid_ice_mask'], + ecdr_ide_ds["invalid_ice_mask"] = ( + ("y", "x"), + bt_fields["invalid_ice_mask"], { - '_FillValue': 0, - 'grid_mapping': 'crs', - 'standard_name': 'seaice_binary_mask', - 'long_name': 'invalid ice mask', - 'comment': 'Mask indicating where seaice will not exist' - ' on this day based on climatology', - 'units': 1, - 'valid_range': [0, 1], + "_FillValue": 0, + "grid_mapping": "crs", + "standard_name": "seaice_binary_mask", + "long_name": "invalid ice mask", + "comment": ( + "Mask indicating where seaice will not exist on this day" + " based on climatology" + ), + "units": 1, + "valid_range": [0, 1], }, { - 'zlib': True, + "zlib": True, }, ) # Encode land_mask - ecdr_ide_ds['land_mask'] = ( - ('y', 'x'), - bt_fields['land_mask'], + ecdr_ide_ds["land_mask"] = ( + ("y", "x"), + bt_fields["land_mask"], { - '_FillValue': 0, - 'grid_mapping': 'crs', - 'standard_name': 'land_binary_mask', - 'long_name': 'land mask', - 'comment': 'Mask indicating where land is', - 'units': 1, + "_FillValue": 0, + "grid_mapping": "crs", + "standard_name": "land_binary_mask", + "long_name": "land mask", + "comment": "Mask indicating where land is", + "units": 1, }, { - 'zlib': True, + "zlib": True, }, ) @@ -375,20 +381,20 @@ def compute_initial_daily_ecdr_dataset( # TODO: I think this is currently unused # ...but it should be coordinated with pole hole filling routines below # ...and the pole filling should occur after temporal interpolation - if bt_fields['pole_mask'] is not None: - ecdr_ide_ds['pole_mask'] = ( - ('y', 'x'), - bt_fields['pole_mask'], + if bt_fields["pole_mask"] is not None: + ecdr_ide_ds["pole_mask"] = ( + ("y", "x"), + bt_fields["pole_mask"], { - '_FillValue': 0, - 'grid_mapping': 'crs', - 'standard_name': 'pole_binary_mask', - 'long_name': 'pole mask', - 'comment': 'Mask indicating where pole hole might be', - 'units': 1, + "_FillValue": 0, + "grid_mapping": "crs", + "standard_name": "pole_binary_mask", + "long_name": "pole mask", + "comment": "Mask indicating where pole hole might be", + "units": 1, }, { - 'zlib': True, + "zlib": True, }, ) @@ -397,215 +403,220 @@ def compute_initial_daily_ecdr_dataset( hemisphere=hemisphere, resolution=resolution, ) - nt_coefs = {} - nt_coefs['nt_tiepoints'] = nt_params.tiepoints - nt_coefs['nt_gradient_thresholds'] = nt_params.gradient_thresholds # type: ignore + nt_coefs = NtCoefs( + nt_tiepoints=nt_params.tiepoints, + nt_gradient_thresholds=nt_params.gradient_thresholds, + ) # Encode NT shoremap field - ecdr_ide_ds['shoremap'] = ( - ('y', 'x'), + ecdr_ide_ds["shoremap"] = ( + ("y", "x"), nt_params.shoremap, { - '_FillValue': 0, - 'grid_mapping': 'crs', - 'standard_name': 'surface mask', - 'long_name': 'NT shoremap', - 'comment': 'Mask indicating land-adjacency of ocean pixels', - 'units': 1, + "_FillValue": 0, + "grid_mapping": "crs", + "standard_name": "surface mask", + "long_name": "NT shoremap", + "comment": "Mask indicating land-adjacency of ocean pixels", + "units": 1, }, { - 'zlib': True, + "zlib": True, }, ) # Encode NT minic field - ecdr_ide_ds['NT_icecon_min'] = ( - ('y', 'x'), + ecdr_ide_ds["NT_icecon_min"] = ( + ("y", "x"), nt_params.minic, { - '_FillValue': 0, - 'grid_mapping': 'crs', - 'standard_name': 'sea_ice_area_fraction', - 'long_name': 'Minimum ice concentration over observation period', - 'comment': 'Map indicating minimum observed ice concentration', - 'units': 1, + "_FillValue": 0, + "grid_mapping": "crs", + "standard_name": "sea_ice_area_fraction", + "long_name": "Minimum ice concentration over observation period", + "comment": "Map indicating minimum observed ice concentration", + "units": 1, }, { - 'zlib': True, + "zlib": True, }, ) # Compute the invalid TB mask invalid_tb_mask = get_bt_tb_mask( - tb_v37=ecdr_ide_ds['v36_day_si'].data, - tb_h37=ecdr_ide_ds['h36_day_si'].data, - tb_v19=ecdr_ide_ds['v18_day_si'].data, - tb_v22=ecdr_ide_ds['v23_day_si'].data, - mintb=bt_coefs_init['mintb'], - maxtb=bt_coefs_init['maxtb'], - tb_data_mask_function=bt_coefs_init['bt_tb_data_mask_function'], + tb_v37=ecdr_ide_ds["v36_day_si"].data, + tb_h37=ecdr_ide_ds["h36_day_si"].data, + tb_v19=ecdr_ide_ds["v18_day_si"].data, + tb_v22=ecdr_ide_ds["v23_day_si"].data, + mintb=bt_coefs_init["mintb"], + maxtb=bt_coefs_init["maxtb"], + tb_data_mask_function=bt_coefs_init["bt_tb_data_mask_function"], ) - ecdr_ide_ds['invalid_tb_mask'] = ( - ('y', 'x'), + ecdr_ide_ds["invalid_tb_mask"] = ( + ("y", "x"), invalid_tb_mask, { - '_FillValue': 0, - 'grid_mapping': 'crs', - 'standard_name': 'invalid_tb_binary_mask', - 'long_name': 'Map of Invalid TBs', - 'comment': 'Mask indicating pixels with invalid TBs', - 'units': 1, + "_FillValue": 0, + "grid_mapping": "crs", + "standard_name": "invalid_tb_binary_mask", + "long_name": "Map of Invalid TBs", + "comment": "Mask indicating pixels with invalid TBs", + "units": 1, }, { - 'zlib': True, + "zlib": True, }, ) # Compute the BT weather mask - bt_weather_mask = bt.get_weather_mask_v2( - v37=ecdr_ide_ds['v36_day_si'].data, - h37=ecdr_ide_ds['h36_day_si'].data, - v22=ecdr_ide_ds['v23_day_si'].data, - v19=ecdr_ide_ds['v18_day_si'].data, - land_mask=ecdr_ide_ds['land_mask'].data, - tb_mask=ecdr_ide_ds['invalid_tb_mask'], - ln1=bt_coefs_init['vh37_lnline'], + bt_weather_mask = bt.get_weather_mask( + v37=ecdr_ide_ds["v36_day_si"].data, + h37=ecdr_ide_ds["h36_day_si"].data, + v22=ecdr_ide_ds["v23_day_si"].data, + v19=ecdr_ide_ds["v18_day_si"].data, + land_mask=ecdr_ide_ds["land_mask"].data, + tb_mask=ecdr_ide_ds["invalid_tb_mask"], + ln1=bt_coefs_init["vh37_lnline"], date=date, - wintrc=bt_coefs_init['wintrc'], - wslope=bt_coefs_init['wslope'], - wxlimt=bt_coefs_init['wxlimt'], + wintrc=bt_coefs_init["wintrc"], + wslope=bt_coefs_init["wslope"], + wxlimt=bt_coefs_init["wxlimt"], ) - ecdr_ide_ds['bt_weather_mask'] = ( - ('y', 'x'), + ecdr_ide_ds["bt_weather_mask"] = ( + ("y", "x"), bt_weather_mask.data, { - '_FillValue': 0, - 'grid_mapping': 'crs', - 'standard_name': 'bt_weather_binary_mask', - 'long_name': 'Map of weather masquerading as sea ice per BT', - 'comment': 'Mask indicating pixels with erroneously detected sea ice' - ' because of weather per BT', - 'units': 1, + "_FillValue": 0, + "grid_mapping": "crs", + "standard_name": "bt_weather_binary_mask", + "long_name": "Map of weather masquerading as sea ice per BT", + "comment": ( + "Mask indicating pixels with erroneously detected sea ice" + " because of weather per BT " + ), + "units": 1, }, { - 'zlib': True, + "zlib": True, }, ) # Update the Bootstrap coefficients... bt_coefs_to_update = ( - 'line_37v37h', - 'bt_wtp_v37', - 'bt_wtp_h37', - 'bt_wtp_v19', - 'ad_line_offset', - 'line_37v19v', + "line_37v37h", + "bt_wtp_v37", + "bt_wtp_h37", + "bt_wtp_v19", + "ad_line_offset", + "line_37v19v", ) bt_coefs = bt_coefs_init.copy() for coef in bt_coefs_to_update: bt_coefs.pop(coef, None) - bt_coefs['vh37_lnline'] = bt.get_linfit( - land_mask=ecdr_ide_ds['land_mask'].data, - tb_mask=ecdr_ide_ds['invalid_tb_mask'], - tbx=ecdr_ide_ds['v36_day_si'].data, - tby=ecdr_ide_ds['h36_day_si'].data, - lnline=bt_coefs_init['vh37_lnline'], - add=bt_coefs['add1'], - weather_mask=ecdr_ide_ds['bt_weather_mask'], + bt_coefs["vh37_lnline"] = bt.get_linfit( + land_mask=ecdr_ide_ds["land_mask"].data, + tb_mask=ecdr_ide_ds["invalid_tb_mask"], + tbx=ecdr_ide_ds["v36_day_si"].data, + tby=ecdr_ide_ds["h36_day_si"].data, + lnline=bt_coefs_init["vh37_lnline"], + add=bt_coefs["add1"], + weather_mask=ecdr_ide_ds["bt_weather_mask"], ) - bt_coefs['bt_wtp_v37'] = bt.calculate_water_tiepoint( - wtp_init=bt_coefs_init['bt_wtp_v37'], - weather_mask=ecdr_ide_ds['bt_weather_mask'], - tb=ecdr_ide_ds['v36_day_si'].data, + bt_coefs["bt_wtp_v37"] = bt.calculate_water_tiepoint( + wtp_init=bt_coefs_init["bt_wtp_v37"], + weather_mask=ecdr_ide_ds["bt_weather_mask"], + tb=ecdr_ide_ds["v36_day_si"].data, ) - bt_coefs['bt_wtp_h37'] = bt.calculate_water_tiepoint( - wtp_init=bt_coefs_init['bt_wtp_h37'], - weather_mask=ecdr_ide_ds['bt_weather_mask'], - tb=ecdr_ide_ds['h36_day_si'].data, + bt_coefs["bt_wtp_h37"] = bt.calculate_water_tiepoint( + wtp_init=bt_coefs_init["bt_wtp_h37"], + weather_mask=ecdr_ide_ds["bt_weather_mask"], + tb=ecdr_ide_ds["h36_day_si"].data, ) - bt_coefs['bt_wtp_v19'] = bt.calculate_water_tiepoint( - wtp_init=bt_coefs_init['bt_wtp_v19'], - weather_mask=ecdr_ide_ds['bt_weather_mask'], - tb=ecdr_ide_ds['v18_day_si'].data, + bt_coefs["bt_wtp_v19"] = bt.calculate_water_tiepoint( + wtp_init=bt_coefs_init["bt_wtp_v19"], + weather_mask=ecdr_ide_ds["bt_weather_mask"], + tb=ecdr_ide_ds["v18_day_si"].data, ) - bt_coefs['ad_line_offset'] = bt.get_adj_ad_line_offset_v2( - wtp_x=bt_coefs['bt_wtp_v37'], - wtp_y=bt_coefs['bt_wtp_h37'], - line_37v37h=bt_coefs['vh37_lnline'], + bt_coefs["ad_line_offset"] = bt.get_adj_ad_line_offset( + wtp_x=bt_coefs["bt_wtp_v37"], + wtp_y=bt_coefs["bt_wtp_h37"], + line_37v37h=bt_coefs["vh37_lnline"], ) - bt_coefs['v1937_lnline'] = bt.get_linfit( - land_mask=ecdr_ide_ds['land_mask'].data, - tb_mask=ecdr_ide_ds['invalid_tb_mask'], - tbx=ecdr_ide_ds['v36_day_si'].data, - tby=ecdr_ide_ds['v18_day_si'].data, - lnline=bt_coefs_init['v1937_lnline'], - add=bt_coefs['add2'], - weather_mask=ecdr_ide_ds['bt_weather_mask'], - tba=ecdr_ide_ds['h36_day_si'].data, - iceline=bt_coefs['vh37_lnline'], - ad_line_offset=bt_coefs['ad_line_offset'], + bt_coefs["v1937_lnline"] = bt.get_linfit( + land_mask=ecdr_ide_ds["land_mask"].data, + tb_mask=ecdr_ide_ds["invalid_tb_mask"], + tbx=ecdr_ide_ds["v36_day_si"].data, + tby=ecdr_ide_ds["v18_day_si"].data, + lnline=bt_coefs_init["v1937_lnline"], + add=bt_coefs["add2"], + weather_mask=ecdr_ide_ds["bt_weather_mask"], + tba=ecdr_ide_ds["h36_day_si"].data, + iceline=bt_coefs["vh37_lnline"], + ad_line_offset=bt_coefs["ad_line_offset"], ) # finally, compute the CDR. bt_conc, nt_conc, cdr_conc_raw = calculate_bt_nt_cdr_raw_conc( date=date, - tb_h19=ecdr_ide_ds['h18_day_si'].data, - tb_v37=ecdr_ide_ds['v36_day_si'].data, - tb_h37=ecdr_ide_ds['h36_day_si'].data, - tb_v19=ecdr_ide_ds['v18_day_si'].data, - tb_v22=ecdr_ide_ds['v23_day_si'].data, + tb_h19=ecdr_ide_ds["h18_day_si"].data, + tb_v37=ecdr_ide_ds["v36_day_si"].data, + tb_h37=ecdr_ide_ds["h36_day_si"].data, + tb_v19=ecdr_ide_ds["v18_day_si"].data, + tb_v22=ecdr_ide_ds["v23_day_si"].data, bt_coefs=bt_coefs, nt_coefs=nt_coefs, - missing_flag_value=ecdr_ide_ds.attrs['missing_value'], + missing_flag_value=ecdr_ide_ds.attrs["missing_value"], ) # Apply masks # Get Nasateam weather filter nt_gr_2219 = nt.compute_ratio( - ecdr_ide_ds['v23_day_si'].data, - ecdr_ide_ds['v18_day_si'].data, + ecdr_ide_ds["v23_day_si"].data, + ecdr_ide_ds["v18_day_si"].data, ) nt_gr_3719 = nt.compute_ratio( - ecdr_ide_ds['v36_day_si'].data, - ecdr_ide_ds['v18_day_si'].data, + ecdr_ide_ds["v36_day_si"].data, + ecdr_ide_ds["v18_day_si"].data, ) nt_weather_mask = nt.get_weather_filter_mask( gr_2219=nt_gr_2219, gr_3719=nt_gr_3719, - gr_2219_threshold=nt_coefs['nt_gradient_thresholds']['2219'], # type: ignore - gr_3719_threshold=nt_coefs['nt_gradient_thresholds']['3719'], # type: ignore + gr_2219_threshold=nt_coefs["nt_gradient_thresholds"]["2219"], + gr_3719_threshold=nt_coefs["nt_gradient_thresholds"]["3719"], ) - ecdr_ide_ds['nt_weather_mask'] = ( - ('y', 'x'), + ecdr_ide_ds["nt_weather_mask"] = ( + ("y", "x"), nt_weather_mask, { - '_FillValue': 0, - 'grid_mapping': 'crs', - 'standard_name': 'weather_binary_mask', - 'long_name': 'Map of weather masquerading as sea ice per NT', - 'comment': 'Mask indicating pixels with erroneously detected sea ice' - ' because of weather per NT', - 'units': 1, + "_FillValue": 0, + "grid_mapping": "crs", + "standard_name": "weather_binary_mask", + "long_name": "Map of weather masquerading as sea ice per NT", + "comment": ( + "Mask indicating pixels with erroneously detected sea ice" + " because of weather per NT " + ), + "units": 1, }, { - 'zlib': True, + "zlib": True, }, ) set_to_zero_sic = ( - ecdr_ide_ds['nt_weather_mask'].data - | ecdr_ide_ds['bt_weather_mask'].data - | ecdr_ide_ds['invalid_ice_mask'].data + ecdr_ide_ds["nt_weather_mask"].data + | ecdr_ide_ds["bt_weather_mask"].data + | ecdr_ide_ds["invalid_ice_mask"].data ) cdr_conc = cdr_conc_raw.copy() @@ -620,7 +631,7 @@ def compute_initial_daily_ecdr_dataset( use_only_nt2_spillover = True - tb_h19 = ecdr_ide_ds['h18_day_si'].data + tb_h19 = ecdr_ide_ds["h18_day_si"].data # Will use spillover_applied with values: # 1: NT2 # 2: BT (not yet added) @@ -628,17 +639,17 @@ def compute_initial_daily_ecdr_dataset( spillover_applied = np.zeros((ydim, xdim), dtype=np.uint8) cdr_conc_pre_spillover = cdr_conc.copy() if use_only_nt2_spillover: - logger.info('Applying NT2 land spillover technique...') + logger.info("Applying NT2 land spillover technique...") if tb_h19.shape == (896, 608): # NH l90c = load_or_create_land90_conc( - gridid='psn12.5', + gridid="psn12.5", xdim=608, ydim=896, overwrite=False, ) adj123 = read_adj123_file( - gridid='psn12.5', + gridid="psn12.5", xdim=608, ydim=896, ) @@ -647,13 +658,13 @@ def compute_initial_daily_ecdr_dataset( elif tb_h19.shape == (664, 632): # SH l90c = load_or_create_land90_conc( - gridid='pss12.5', + gridid="pss12.5", xdim=632, ydim=664, overwrite=False, ) adj123 = read_adj123_file( - gridid='pss12.5', + gridid="pss12.5", xdim=632, ydim=664, ) @@ -662,24 +673,24 @@ def compute_initial_daily_ecdr_dataset( else: raise SystemExit( - 'Could not determine hemisphere from tb shape: {tb_h19.shape}' + "Could not determine hemisphere from tb shape: {tb_h19.shape}" ) else: # TODO: Fix minic means field for NT and float for BT (!) # nasateam first: - logger.info('Applying NASA TEAM land spillover technique...') + logger.info("Applying NASA TEAM land spillover technique...") cdr_conc = nt.apply_nt_spillover( conc=cdr_conc, - shoremap=ecdr_ide_ds['shoremap'], - minic=ecdr_ide_ds['NT_icecon_min'], + shoremap=ecdr_ide_ds["shoremap"], + minic=ecdr_ide_ds["NT_icecon_min"], ) # then bootstrap: - logger.info('Applying Bootstrap land spillover technique...') + logger.info("Applying Bootstrap land spillover technique...") cdr_conc = bt.coastal_fix( conc=cdr_conc, - missing_flag_value=ecdr_ide_ds.attrs['missing_value'], - land_mask=ecdr_ide_ds['land_mask'].data, - minic=bt_coefs['minic'], + missing_flag_value=ecdr_ide_ds.attrs["missing_value"], + land_mask=ecdr_ide_ds["land_mask"].data, + minic=bt_coefs["minic"], ) spillover_applied[cdr_conc_pre_spillover != cdr_conc.data] = 1 @@ -688,81 +699,83 @@ def compute_initial_daily_ecdr_dataset( if cdr_conc.shape == (896, 608): cdr_conc_pre_polefill = cdr_conc.copy() cdr_conc = fill_pole_hole(cdr_conc) - logger.info('Filled pole hole') + logger.info("Filled pole hole") is_pole_filled = (cdr_conc != cdr_conc_pre_polefill) & (~np.isnan(cdr_conc)) - if 'spatint_bitmask' in ecdr_ide_ds.variables.keys(): - ecdr_ide_ds['spatint_bitmask'].data[ + if "spatint_bitmask" in ecdr_ide_ds.variables.keys(): + ecdr_ide_ds["spatint_bitmask"].data[ is_pole_filled - ] += tb_spatint_bitmask_map['pole_filled'] - logger.info('Updated spatial_interpolation with pole hole value') + ] += tb_spatint_bitmask_map["pole_filled"] + logger.info("Updated spatial_interpolation with pole hole value") # Apply land flag value and clamp max conc to 100. # TODO: extract this func from nt and allow override of flag values cdr_conc = nt._clamp_conc_and_set_flags( - shoremap=ecdr_ide_ds['shoremap'], + shoremap=ecdr_ide_ds["shoremap"], conc=cdr_conc, ) # Add the BT raw field to the dataset if bt_conc is not None: - ecdr_ide_ds['bt_conc_raw'] = ( - ('y', 'x'), + ecdr_ide_ds["bt_conc_raw"] = ( + ("y", "x"), bt_conc, { - '_FillValue': 255, - 'grid_mapping': 'crs', - 'standard_name': 'sea_ice_area_fraction', - 'long_name': 'Bootstrap sea ice concentration,' - ' raw field with no masking', + "_FillValue": 255, + "grid_mapping": "crs", + "standard_name": "sea_ice_area_fraction", + "long_name": ( + "Bootstrap sea ice concentration, raw field with no masking" + ), }, { - 'zlib': True, + "zlib": True, }, ) # Add the BT coefficients to the bt_conc_raw DataArray for attr in sorted(bt_coefs.keys()): if type(bt_coefs[attr]) in (float, int): - ecdr_ide_ds.variables['bt_conc_raw'].attrs[attr] = bt_coefs[attr] + ecdr_ide_ds.variables["bt_conc_raw"].attrs[attr] = bt_coefs[attr] else: - ecdr_ide_ds.variables['bt_conc_raw'].attrs[attr] = str(bt_coefs[attr]) + ecdr_ide_ds.variables["bt_conc_raw"].attrs[attr] = str(bt_coefs[attr]) # Add the NT raw field to the dataset if nt_conc is not None: - ecdr_ide_ds['nt_conc_raw'] = ( - ('y', 'x'), + ecdr_ide_ds["nt_conc_raw"] = ( + ("y", "x"), nt_conc, { - '_FillValue': 255, - 'grid_mapping': 'crs', - 'standard_name': 'sea_ice_area_fraction', - 'long_name': 'NASA Team sea ice concentration,' - ' raw field with no masking', + "_FillValue": 255, + "grid_mapping": "crs", + "standard_name": "sea_ice_area_fraction", + "long_name": ( + "NASA Team sea ice concentration, raw field with no masking" + ), }, { - 'zlib': True, + "zlib": True, }, ) # Add the NT coefficients to the nt_conc_raw DataArray for attr in sorted(nt_coefs.keys()): - if type(nt_coefs[attr]) in (float, int): - ecdr_ide_ds.variables['nt_conc_raw'].attrs[attr] = nt_coefs[attr] + if type(nt_coefs[attr]) in (float, int): # type: ignore[literal-required] + ecdr_ide_ds.variables["nt_conc_raw"].attrs[attr] = nt_coefs[attr] # type: ignore[literal-required] # noqa else: - ecdr_ide_ds.variables['nt_conc_raw'].attrs[attr] = str(nt_coefs[attr]) + ecdr_ide_ds.variables["nt_conc_raw"].attrs[attr] = str(nt_coefs[attr]) # type: ignore[literal-required] # noqa # Add the final cdr_conc value to the xarray dataset - ecdr_ide_ds['conc'] = ( - ('time', 'y', 'x'), + ecdr_ide_ds["conc"] = ( + ("time", "y", "x"), np.expand_dims(cdr_conc, axis=0), { - '_FillValue': 255, - 'grid_mapping': 'crs', - 'standard_name': 'sea_ice_area_fraction', - 'long_name': 'Sea ice concentration', + "_FillValue": 255, + "grid_mapping": "crs", + "standard_name": "sea_ice_area_fraction", + "long_name": "Sea ice concentration", }, { - 'zlib': True, + "zlib": True, }, ) @@ -777,25 +790,25 @@ def compute_initial_daily_ecdr_dataset( # 64: Temporal interpolation applied (applied later) # 128: Melt onset detected (applied later) qa_bitmask = np.zeros((ydim, xdim), dtype=np.uint8) - qa_bitmask[ecdr_ide_ds['bt_weather_mask'].data] += 1 - qa_bitmask[ecdr_ide_ds['nt_weather_mask'].data] += 2 + qa_bitmask[ecdr_ide_ds["bt_weather_mask"].data] += 1 + qa_bitmask[ecdr_ide_ds["nt_weather_mask"].data] += 2 qa_bitmask[spillover_applied == 1] += 4 - qa_bitmask[invalid_tb_mask & ~ecdr_ide_ds['invalid_ice_mask'].data] += 8 - qa_bitmask[ecdr_ide_ds['invalid_ice_mask'].data] += 16 - qa_bitmask[ecdr_ide_ds['spatint_bitmask'].data != 0] += 32 - ecdr_ide_ds['qa_of_cdr_seaice_conc'] = ( - ('y', 'x'), + qa_bitmask[invalid_tb_mask & ~ecdr_ide_ds["invalid_ice_mask"].data] += 8 + qa_bitmask[ecdr_ide_ds["invalid_ice_mask"].data] += 16 + qa_bitmask[ecdr_ide_ds["spatint_bitmask"].data != 0] += 32 + ecdr_ide_ds["qa_of_cdr_seaice_conc"] = ( + ("y", "x"), qa_bitmask, { - '_FillValue': 0, - 'grid_mapping': 'crs', - 'standard_name': 'status_flag', - 'long_name': 'Sea Ice Concentration QC flags', - 'units': 1, - 'valid_range': [np.uint8(), np.uint8(255)], + "_FillValue": 0, + "grid_mapping": "crs", + "standard_name": "status_flag", + "long_name": "Sea Ice Concentration QC flags", + "units": 1, + "valid_range": [np.uint8(), np.uint8(255)], }, { - 'zlib': True, + "zlib": True, }, ) @@ -810,7 +823,7 @@ def amsr2_cdr( resolution: AU_SI_RESOLUTIONS, ): """Obsolete reference to code that creates CDR using AMSR2.""" - raise RuntimeError('amsr2_cdr() is nowcompute_initial_daily_ecdr_dataset()') + raise RuntimeError("amsr2_cdr() is nowcompute_initial_daily_ecdr_dataset()") def make_cdr_netcdf( @@ -821,7 +834,7 @@ def make_cdr_netcdf( output_dir: Path, ) -> None: """Create the cdr netCDF file.""" - logger.info(f'Creating CDR for {date=}, {hemisphere=}, {resolution=}') + logger.info(f"Creating CDR for {date=}, {hemisphere=}, {resolution=}") conc_ds = amsr2_cdr( date=date, hemisphere=hemisphere, @@ -831,16 +844,16 @@ def make_cdr_netcdf( output_fn = standard_output_filename( hemisphere=hemisphere, date=date, - sat='u2', - algorithm='cdr', - resolution=f'{resolution}km', + sat="u2", + algorithm="cdr", + resolution=f"{resolution}km", ) output_path = output_dir / output_fn conc_ds.to_netcdf( output_path, - encoding={'conc': {'zlib': True}}, + encoding={"conc": {"zlib": True}}, ) - logger.info(f'Wrote AMSR2 CDR concentration field: {output_path}') + logger.info(f"Wrote AMSR2 CDR concentration field: {output_path}") def create_idecdr_for_date_range( @@ -862,39 +875,39 @@ def create_idecdr_for_date_range( ) except Exception: logger.error( - 'Failed to create NetCDF for ' f'{hemisphere=}, {date=}, {resolution=}.' + "Failed to create NetCDF for " f"{hemisphere=}, {date=}, {resolution=}." ) err_filename = standard_output_filename( hemisphere=hemisphere, date=date, - sat='u2', - algorithm='cdr', - resolution=f'{resolution}km', + sat="u2", + algorithm="cdr", + resolution=f"{resolution}km", ) - err_filename += '.error' - logger.info(f'Writing error info to {err_filename}') - with open(output_dir / err_filename, 'w') as f: + err_filename += ".error" + logger.info(f"Writing error info to {err_filename}") + with open(output_dir / err_filename, "w") as f: traceback.print_exc(file=f) traceback.print_exc(file=sys.stdout) -@click.command(name='idecdr') +@click.command(name="idecdr") @click.option( - '-d', - '--date', + "-d", + "--date", required=True, - type=click.DateTime(formats=('%Y-%m-%d',)), + type=click.DateTime(formats=("%Y-%m-%d",)), callback=datetime_to_date, ) @click.option( - '-h', - '--hemisphere', + "-h", + "--hemisphere", required=True, type=click.Choice(get_args(Hemisphere)), ) @click.option( - '-o', - '--output-dir', + "-o", + "--output-dir", required=True, type=click.Path( exists=True, @@ -906,8 +919,8 @@ def create_idecdr_for_date_range( ), ) @click.option( - '-r', - '--resolution', + "-r", + "--resolution", required=True, type=click.Choice(get_args(AU_SI_RESOLUTIONS)), ) @@ -934,47 +947,32 @@ def parse_cmdline_iedcdr_params(): """Extract info from command line call of initial_daily_ecdr.py.""" import sys - print(f'cmdline args: {sys.argv}') - raise RuntimeError('in parse_cmdline_iedcdr_params') + print(f"cmdline args: {sys.argv}") + raise RuntimeError("in parse_cmdline_iedcdr_params") -if __name__ == '__main__': +if __name__ == "__main__": # vvvv MODIFY THESE PARAMETERS AS NEEDED vvvv start_date, end_date, gridid, tb_source, output_dir = parse_cmdline_iedcdr_params() if tb_source is None: - raise ValueError('tb_source should not be None') - - if gridid == 'e2n12.5': - hemisphere = 'north' - resolution = 12 - elif gridid == 'e2s12.5': - hemisphere = 'south' - resolution = 12 + raise ValueError("tb_source should not be None") + + if gridid == "e2n12.5": + hemisphere = "north" + resolution = "12" + elif gridid == "e2s12.5": + hemisphere = "south" + resolution = "12" else: - raise RuntimeError(f'Could not parse gridid: {gridid}') + raise RuntimeError(f"Could not parse gridid: {gridid}") + hemisphere = cast(Hemisphere, hemisphere) + resolution = cast(AU_SI_RESOLUTIONS, resolution) create_idecdr_for_date_range( - hemisphere=hemisphere, # type: ignore + hemisphere=hemisphere, start_date=start_date, end_date=end_date, - # gridid=gridid, - # tb_source=tb_source, output_dir=output_dir, - resolution=resolution, # type: ignore - ) - start_date = dt.date(2012, 7, 2) - end_date = dt.date(2021, 2, 11) - # resolution: ECDR_ = '12' - # resolution = '12' - resolution = 12 # ignore - output_dir = CDR_DATA_DIR # type: ignore - # ^^^^ MODIFY THESE PARAMETERS AS NEEDED ^^^^ - for hemisphere in get_args(Hemisphere): - create_idecdr_for_date_range( - start_date=start_date, - end_date=end_date, - hemisphere=hemisphere, # type: ignore - resolution=resolution, # type: ignore - output_dir=output_dir, - ) + resolution=resolution, + ) diff --git a/seaice_ecdr/tests/integration/gen_ide_sample.py b/seaice_ecdr/tests/integration/gen_ide_sample.py index ea19a1a7..f0772018 100644 --- a/seaice_ecdr/tests/integration/gen_ide_sample.py +++ b/seaice_ecdr/tests/integration/gen_ide_sample.py @@ -8,22 +8,16 @@ import datetime as dt import sys -# import numpy as np -# import pytest -# import xarray as xr from loguru import logger from seaice_ecdr.initial_daily_ecdr import ( compute_initial_daily_ecdr_dataset as compute_idecdr_ds, ) -# from numpy.testing import assert_equal -# from pm_icecon.cdr import amsr2_cdr as pmi_amsr2_cdr - # Set the default minimum log notification to Warning logger.remove(0) # Removes previous logger info -logger.add(sys.stderr, level='INFO') +logger.add(sys.stderr, level="INFO") def gen_sample_idecdr_dataset( @@ -35,7 +29,7 @@ def gen_sample_idecdr_dataset( """Generate sample initial daily cdr file from seaice_ecdr repo.""" if sample_filename is None: sample_filename = ( - f'sample_idecdr_{hemisphere}_{resolution}_' + f"sample_idecdr_{hemisphere}_{resolution}_" + f'{date.strftime("%Y%m%d")}.nc' ) """Set up sample data set using pm_icecon.""" @@ -67,9 +61,9 @@ def gen_sample_idecdr_dataset( ) -if __name__ == '__main__': +if __name__ == "__main__": date = dt.datetime(2021, 4, 5).date() - hemisphere = 'north' - resolution = '12' + hemisphere = "north" + resolution = "12" gen_sample_idecdr_dataset(date, hemisphere, resolution) diff --git a/seaice_ecdr/tests/integration/test_initial_daily_ecdr_generation.py b/seaice_ecdr/tests/integration/test_initial_daily_ecdr_generation.py index 4acd87b1..17b81e4d 100644 --- a/seaice_ecdr/tests/integration/test_initial_daily_ecdr_generation.py +++ b/seaice_ecdr/tests/integration/test_initial_daily_ecdr_generation.py @@ -24,17 +24,51 @@ # Set the default minimum log notification to Warning logger.remove(0) # Removes previous logger info -logger.add(sys.stderr, level='WARNING') +logger.add(sys.stderr, level="WARNING") -@pytest.fixture(scope='session') +@pytest.fixture(scope="session") +def sample_idecdr_dataset_nh(): + """Set up the sample NH initial daily ecdr data set.""" + logger.info("testing: Creating sample idecdr dataset") + + test_date = dt.datetime(2021, 4, 5).date() + test_hemisphere: Final = "north" + test_resolution: Final = "12" + + ide_conc_ds = compute_idecdr_ds( + date=test_date, + hemisphere=test_hemisphere, + resolution=test_resolution, + ) + return ide_conc_ds + + +@pytest.fixture(scope="session") +def sample_idecdr_dataset_sh(): + """Set up the sample SH initial daily ecdr data set.""" + logger.info("testing: Creating sample idecdr dataset") + + test_date = dt.datetime(2021, 4, 5).date() + test_hemisphere: Final = "north" + test_resolution: Final = "12" + + ide_conc_ds = compute_idecdr_ds( + date=test_date, + hemisphere=test_hemisphere, + resolution=test_resolution, + ) + return ide_conc_ds + + +@pytest.fixture(scope="session") def sample_pmicecon_dataset(): """Set up sample data set using pm_icecon.""" - logger.info('testing: Creating sample pmicecon dataset') + logger.info("testing: Creating sample pmicecon dataset") test_date = dt.datetime(2021, 4, 5).date() - test_hemisphere: Final = 'north' - test_resolution: Final = '12' + test_hemisphere: Final = "north" + test_resolution: Final = "12" pmicecon_conc_ds = pmi_amsr2_cdr( date=test_date, @@ -44,18 +78,18 @@ def sample_pmicecon_dataset(): return pmicecon_conc_ds -@pytest.fixture(scope='session') +@pytest.fixture(scope="session") def sample_idecdr_dataset(): """Set up sample data set using idecdr.""" - logger.info('testing: Creating sample idecdr dataset') + logger.info("testing: Creating sample idecdr dataset") test_date = dt.datetime(2021, 4, 5).date() - test_hemisphere: Final = 'north' - test_resolution: Final = '12' + test_hemisphere: Final = "north" + test_resolution: Final = "12" ide_conc_ds = compute_idecdr_ds( date=test_date, - hemisphere=test_hemisphere, # type: ignore + hemisphere=test_hemisphere, resolution=test_resolution, ) return ide_conc_ds @@ -76,7 +110,7 @@ def test_pmicecon_conc_generation(sample_pmicecon_dataset): """Test that pm_icecon yields a 'conc' field.""" # pmicecon_conc_ds = sample_pmicecon_dataset - pmicecon_conc_varname = 'conc' + pmicecon_conc_varname = "conc" assert ( type(sample_pmicecon_dataset.variables[pmicecon_conc_varname]) == xr.core.variable.Variable @@ -88,10 +122,10 @@ def test_seaice_idecdr_and_pmicecon_conc_identical( ): """Test that pm_icecon yields a 'conc' field.""" pmicecon_conc_ds = sample_pmicecon_dataset - pmi_conc_field = np.array(pmicecon_conc_ds.variables['conc']) + pmi_conc_field = np.array(pmicecon_conc_ds.variables["conc"]) ide_conc_ds = sample_idecdr_dataset - ide_conc_field = np.squeeze(np.array(ide_conc_ds.variables['conc'])) + ide_conc_field = np.squeeze(np.array(ide_conc_ds.variables["conc"])) # We know that the original conc field has zeros where TBs were not # available, so only check where idecdr is not nan @@ -100,3 +134,41 @@ def test_seaice_idecdr_and_pmicecon_conc_identical( pmi_conc_field[indexes_to_check], ide_conc_field[indexes_to_check], ) + + +def test_seaice_idecdr_can_output_to_netcdf( + sample_idecdr_dataset_nh, + sample_idecdr_dataset_sh, +): + """Test that xarray dataset can be saved to a netCDF file.""" + import os + + # NH + sample_output_filename_nh = "./sample_ecdr_nh.nc" + sample_idecdr_dataset_nh.to_netcdf(sample_output_filename_nh) + assert os.path.isfile(sample_output_filename_nh) + + # SH + sample_output_filename_sh = "./sample_ecdr_sh.nc" + sample_idecdr_dataset_sh.to_netcdf(sample_output_filename_sh) + assert os.path.isfile(sample_output_filename_sh) + + +def test_seaice_idecdr_has_crs( + sample_idecdr_dataset_nh, + sample_idecdr_dataset_sh, +): + """Test that pm_icecon yields a 'conc' field.""" + assert "crs" in sample_idecdr_dataset_nh.variables + assert "crs" in sample_idecdr_dataset_sh.variables + + +def test_seaice_idecdr_is_Dataset( + sample_idecdr_dataset_nh, + sample_idecdr_dataset_sh, +): + """Test that pm_icecon yields a 'conc' field.""" + # assert type(sample_idecdr_dataset_nh) == type(xr.Dataset()) + # assert type(sample_idecdr_dataset_sh) == type(xr.Dataset()) + assert isinstance(sample_idecdr_dataset_nh, type(xr.Dataset())) + assert isinstance(sample_idecdr_dataset_sh, type(xr.Dataset())) diff --git a/seaice_ecdr/tests/unit/test_initial_daily_ecdr.py b/seaice_ecdr/tests/unit/test_initial_daily_ecdr.py deleted file mode 100644 index d0314951..00000000 --- a/seaice_ecdr/tests/unit/test_initial_daily_ecdr.py +++ /dev/null @@ -1,87 +0,0 @@ -"""Tests of the initial daily ECDR product. - -test_initial_daily_ecdr.py -""" - -import datetime as dt -from typing import Final - -import pytest -import xarray as xr -from loguru import logger - -from seaice_ecdr.initial_daily_ecdr import ( - compute_initial_daily_ecdr_dataset as compute_idecdr_ds, -) - - -@pytest.fixture(scope='session') -def sample_idecdr_dataset_nh(): - """Set up the sample NH initial daily ecdr data set.""" - logger.info('testing: Creating sample idecdr dataset') - - test_date = dt.datetime(2021, 4, 5).date() - test_hemisphere: Final = 'north' - test_resolution: Final = '12' - - ide_conc_ds = compute_idecdr_ds( - date=test_date, - hemisphere=test_hemisphere, - resolution=test_resolution, - ) - return ide_conc_ds - - -@pytest.fixture(scope='session') -def sample_idecdr_dataset_sh(): - """Set up the sample SH initial daily ecdr data set.""" - logger.info('testing: Creating sample idecdr dataset') - - test_date = dt.datetime(2021, 4, 5).date() - test_hemisphere: Final = 'south' - test_resolution: Final = '12' - - ide_conc_ds = compute_idecdr_ds( - date=test_date, - hemisphere=test_hemisphere, - resolution=test_resolution, - ) - return ide_conc_ds - - -def test_seaice_idecdr_is_Dataset( - sample_idecdr_dataset_nh, - sample_idecdr_dataset_sh, -): - """Test that pm_icecon yields a 'conc' field.""" - # assert type(sample_idecdr_dataset_nh) == type(xr.Dataset()) - # assert type(sample_idecdr_dataset_sh) == type(xr.Dataset()) - assert isinstance(sample_idecdr_dataset_nh, type(xr.Dataset())) - assert isinstance(sample_idecdr_dataset_sh, type(xr.Dataset())) - - -def test_seaice_idecdr_has_crs( - sample_idecdr_dataset_nh, - sample_idecdr_dataset_sh, -): - """Test that pm_icecon yields a 'conc' field.""" - assert 'crs' in sample_idecdr_dataset_nh.variables - assert 'crs' in sample_idecdr_dataset_sh.variables - - -def test_seaice_idecdr_can_output_to_netcdf( - sample_idecdr_dataset_nh, - sample_idecdr_dataset_sh, -): - """Test that xarray dataset can be saved to a netCDF file.""" - import os - - # NH - sample_output_filename_nh = './sample_ecdr_nh.nc' - sample_idecdr_dataset_nh.to_netcdf(sample_output_filename_nh) - assert os.path.isfile(sample_output_filename_nh) - - # SH - sample_output_filename_sh = './sample_ecdr_sh.nc' - sample_idecdr_dataset_sh.to_netcdf(sample_output_filename_sh) - assert os.path.isfile(sample_output_filename_sh) diff --git a/setup.py b/setup.py deleted file mode 100644 index ba3005d0..00000000 --- a/setup.py +++ /dev/null @@ -1,22 +0,0 @@ -"""Setup file for seaice_ecdr.""" - -from setuptools import find_packages, setup - -setup( - name='seaice_ecdr', - version='0.1.0', - description=('Sea ice concentration estimates for NSIDC/NOAA CDR'), - url='https://github.com/nsidc/seaice_ecdr', - author='NSIDC Development Team', - license='MIT', - packages=find_packages( - exclude=( - '*.tasks', - '*.tasks.*', - 'tasks.*', - 'tasks', - ), - ), - include_package_data=True, - zip_safe=False, -) diff --git a/tasks/format.py b/tasks/format.py deleted file mode 100644 index 542c212d..00000000 --- a/tasks/format.py +++ /dev/null @@ -1,20 +0,0 @@ -"""Formatting tasks.""" -from invoke import task - -from .util import PROJECT_DIR, print_and_run - - -@task(default=True) -def format(ctx): - """Apply formatting standards to the codebase.""" - # isort 5.10.1 does not support "magic trailing comma" feature of Black, so it will - # combine multiple imports to one line if they fit. - # - # https://github.com/PyCQA/isort/issues/1683 - print_and_run(f'isort {PROJECT_DIR}') - - # Black 22.1 has problems with string handling. We can work around those with - # `fmt: on` and `fmt: off` comments, but that's not fun. - # - # https://github.com/psf/black/issues/2188 - print_and_run(f'black -S {PROJECT_DIR}') diff --git a/tasks/test.py b/tasks/test.py index 9b45fb16..87b9f3ac 100644 --- a/tasks/test.py +++ b/tasks/test.py @@ -4,102 +4,30 @@ from .util import PROJECT_DIR, print_and_run -@task(aliases=['flake8']) -def lint(ctx): - """Run flake8 linting.""" - print_and_run( - f'flake8 --max-line-length 88 --exclude {PROJECT_DIR}/nt_tiepoint_generation {PROJECT_DIR}' # noqa - ) - - -@task(aliases=['mypy']) +@task(aliases=["mypy"]) def typecheck(ctx): """Run mypy typechecking.""" - mypy_cfg_path = PROJECT_DIR / '.mypy.ini' print_and_run( - (f'mypy --config-file={mypy_cfg_path}' f' {PROJECT_DIR}/'), + ("mypy"), pty=True, ) - print('🎉🦆 Type checking passed.') - - -@task -def formatcheck(ctx): - """Check that the code conforms to formatting standards.""" - print_and_run(f'isort --check-only {PROJECT_DIR}') - print_and_run(f'black -S --check {PROJECT_DIR}') - - print('🎉🙈 Format check passed.') + print("🎉🦆 Type checking passed.") @task() def unit(ctx): """Run unit tests.""" print_and_run( - f'pytest -s {PROJECT_DIR}/seaice_ecdr/tests/unit', - pty=True, - ) - - -@task() -def regression(ctx): - """Run regression tests. - - Requires access to data on NFS and should be run on a VM. - """ - print_and_run( - f'PYTHONPATH={PROJECT_DIR} ' - f'pytest -s {PROJECT_DIR}/seaice_ecdr/tests/regression', - pty=True, - ) - - -@task() -def vulture(ctx): - """Use `vulture` to detect dead code.""" - print_and_run( - ( - 'vulture' - f' --exclude {PROJECT_DIR}/tasks,{PROJECT_DIR}/nt_tiepoint_generation' - # ignore `_types.py` because vulture doesn't understand typed dicts. - f',{PROJECT_DIR}/pm_icecon/**/_types.py' - # ignore some models because vulture flags config options as - # unused variables/class. - f',{PROJECT_DIR}/pm_icecon/config/models/base_model.py' - f',{PROJECT_DIR}/pm_icecon/config/models/__init__.py' - f' {PROJECT_DIR}' - ), + f"PYTHONPATH={PROJECT_DIR} pytest -s {PROJECT_DIR}/seaice_ecdr/tests/unit", pty=True, ) @task( pre=[ - lint, - typecheck, - vulture, - formatcheck, - unit, - ], -) -def ci(ctx): - """Run tests in CircleCI. - - Excludes regression tests that require access to data on NSIDC-specific - infrastructure. - """ - ... - - -@task( - pre=[ - lint, typecheck, - vulture, - formatcheck, unit, - regression, ], default=True, ) diff --git a/tasks/util.py b/tasks/util.py index ef966fa2..1855eca1 100644 --- a/tasks/util.py +++ b/tasks/util.py @@ -10,7 +10,7 @@ def print_and_run(cmd, **run_kwargs): """Print the command string and then execute it.""" print(cmd) kwargs = { - 'pty': True, + "pty": True, **run_kwargs, } return run(cmd, **kwargs)