Skip to main content

Python distribution of mHM with bindings.

Project description

mHM - Python bindings

[TOC]

Python bindings to control mHM.

The wrapper (mhm/wrapper.f90) is just a small layer on top of the interfaces provided by mHM to be compatible with f2py.

Installation

There is a PyPI package to install the latest release:

pip install mhm

Installing the mHM Python package will provide the mhm command to execute mHM the traditional way.

In order to compile the Python bindings from scratch you need:

  1. Python with version at least v3.8 and pip
  2. a Fortran, a C and a C++ compiler (set the environment variables FC (and F77), CC and CXX accordingly). In case of gcc, this could look like:
    export FC="gfortran"
    export F77="gfortran"
    export CC="gcc"
    export CXX="g++"
    
  3. NetCDF-Fortran installed in your system path

See the Compilation instructions for these dependencies.

You can also use a conda environment (set up with miniforge for example) to get everything:

conda install -y pip netcdf-fortran fortran-compiler c-compiler cxx-compiler

To compile everything after cloning/downloading, you can use pip:

pip install -v .

To install it directly from the git repository you can type:

pip install -v git+https://git.ufz.de/mhm/mhm.git

Environment variables

The following environment variables can be used to control the compilation and installation of the python bindings for mHM:

  • SKBUILD_CMAKE_BUILD_TYPE=[Release|Debug]: build type for the mhm library (default: Release)
  • MHM_BUILD_FORCES_PATH=<path>: custom path to forces source dir (default: None)
  • MHM_BUILD_PARALLEL=[0|1]: whether to use OpenMP with mHM (default: 0)

Test domain download tool

Together with the Python bindings comes a command line script to download the test domains:

mhm-download --verbose --branch develop --domain 1 --path mhm_domain/

You can then run mHM on this test domain with:

mhm mhm_domain/

You can get help on how to use this script with mhm-download -h:

$ mhm-download -h
usage: mhm-download [-h] [-V] [-v] [-b BRANCH] [-d {1,2}] [-p PATH]

Download tool to retrieve the test domains for mHM.

optional arguments:
  -h, --help            show this help message and exit
  -V, --version         display version information
  -v, --verbose         be verbose (default: False)
  -b BRANCH, --branch BRANCH
                        branch, tag, or commit of the mHM repository to take the test domain from,
                        by default tag determined from the mHM version (default: None)
  -d {1,2}, --domain {1,2}
                        test domain '1' or '2' (default: 1)
  -p PATH, --path PATH  destination path for the downloaded folder,
                        by default the original folder name in the current directory (default: None)

Within python scripts, you can use this tool with mhm.download_test. See below for examples.

Documentation

See mhm.tools and wrapper.f90 for further information on the provided routines.

Examples

If you have cloned the repository, you can do the following to simply run mhm without optimization:

import mhm

# download test domain 1
mhm.download_test(path="example_domain")
# run the downloaded example
mhm.model.init(cwd="example_domain")
mhm.model.run()
mhm.model.finalize()

Or you can do the following to control each timestep:

import mhm

# assuming to run from the mhm repo root
mhm.model.init()
mhm.run.prepare()
ndomians = mhm.run.get_ndomains()
for i in range(1, ndomians + 1):
    mhm.run.prepare_domain(domain=i) # 0 by default
    while not mhm.run.finished():
        mhm.run.do_time_step()
        mhm.run.write_output()
    mhm.run.finalize_domain()
mhm.run.finalize()
mhm.model.finalize()

See also the examples folder.

License

LGPLv3 (c) 2005-2023 mHM-Developers

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

mhm-5.13.2.tar.gz (798.0 kB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

mhm-5.13.2-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (5.8 MB view details)

Uploaded CPython 3.14manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

mhm-5.13.2-cp314-cp314-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl (4.8 MB view details)

Uploaded CPython 3.14manylinux: glibc 2.27+ ARM64manylinux: glibc 2.28+ ARM64

mhm-5.13.2-cp314-cp314-macosx_14_0_arm64.whl (4.5 MB view details)

Uploaded CPython 3.14macOS 14.0+ ARM64

mhm-5.13.2-cp314-cp314-macosx_13_0_x86_64.whl (5.6 MB view details)

Uploaded CPython 3.14macOS 13.0+ x86-64

mhm-5.13.2-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (5.8 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

mhm-5.13.2-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl (4.8 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.27+ ARM64manylinux: glibc 2.28+ ARM64

mhm-5.13.2-cp313-cp313-macosx_14_0_arm64.whl (4.5 MB view details)

Uploaded CPython 3.13macOS 14.0+ ARM64

mhm-5.13.2-cp313-cp313-macosx_13_0_x86_64.whl (5.6 MB view details)

Uploaded CPython 3.13macOS 13.0+ x86-64

mhm-5.13.2-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (5.8 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

mhm-5.13.2-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl (4.8 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.27+ ARM64manylinux: glibc 2.28+ ARM64

mhm-5.13.2-cp312-cp312-macosx_14_0_arm64.whl (4.5 MB view details)

Uploaded CPython 3.12macOS 14.0+ ARM64

mhm-5.13.2-cp312-cp312-macosx_13_0_x86_64.whl (5.6 MB view details)

Uploaded CPython 3.12macOS 13.0+ x86-64

mhm-5.13.2-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (5.8 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

mhm-5.13.2-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl (4.8 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.27+ ARM64manylinux: glibc 2.28+ ARM64

mhm-5.13.2-cp311-cp311-macosx_14_0_arm64.whl (4.5 MB view details)

Uploaded CPython 3.11macOS 14.0+ ARM64

mhm-5.13.2-cp311-cp311-macosx_13_0_x86_64.whl (5.6 MB view details)

Uploaded CPython 3.11macOS 13.0+ x86-64

mhm-5.13.2-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (5.8 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

mhm-5.13.2-cp310-cp310-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl (4.8 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.27+ ARM64manylinux: glibc 2.28+ ARM64

mhm-5.13.2-cp310-cp310-macosx_14_0_arm64.whl (4.5 MB view details)

Uploaded CPython 3.10macOS 14.0+ ARM64

mhm-5.13.2-cp310-cp310-macosx_13_0_x86_64.whl (5.6 MB view details)

Uploaded CPython 3.10macOS 13.0+ x86-64

mhm-5.13.2-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (5.8 MB view details)

Uploaded CPython 3.9manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

mhm-5.13.2-cp39-cp39-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl (4.8 MB view details)

Uploaded CPython 3.9manylinux: glibc 2.27+ ARM64manylinux: glibc 2.28+ ARM64

mhm-5.13.2-cp39-cp39-macosx_14_0_arm64.whl (4.5 MB view details)

Uploaded CPython 3.9macOS 14.0+ ARM64

mhm-5.13.2-cp39-cp39-macosx_13_0_x86_64.whl (5.6 MB view details)

Uploaded CPython 3.9macOS 13.0+ x86-64

File details

Details for the file mhm-5.13.2.tar.gz.

File metadata

  • Download URL: mhm-5.13.2.tar.gz
  • Upload date:
  • Size: 798.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for mhm-5.13.2.tar.gz
Algorithm Hash digest
SHA256 1c4244ee58f9c6c20ed9e4d5691132f3f67026992bad48b359f2d44ed7e5d4ef
MD5 cf23b29cdae96a4ee486e529e8648032
BLAKE2b-256 54cbaaa25c896994a9c292d7771664e03ba0a9db2497563a61cb8dfcb9310ea2

See more details on using hashes here.

File details

Details for the file mhm-5.13.2-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for mhm-5.13.2-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 49114ef62c4bae136c178847fc75a969cda37b0e1feff4f2ba62dde77d5570bf
MD5 691d1dd2cc20e2cd6258b77df006ced9
BLAKE2b-256 753d47914c765c52e78daa44b5be25bc6106b99c8182662763b06cd30c863387

See more details on using hashes here.

File details

Details for the file mhm-5.13.2-cp314-cp314-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for mhm-5.13.2-cp314-cp314-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 236f6581faebcfb8e8842a7d5b8b53963fba95924d4f6410fa9bb4e8412be930
MD5 91bb17e6ba864bce02b6f0f8307f8237
BLAKE2b-256 0e49a7e098a6f8bd9afd0ac7d882bb2b39bafda5aeea1061e212ba85d55126af

See more details on using hashes here.

File details

Details for the file mhm-5.13.2-cp314-cp314-macosx_14_0_arm64.whl.

File metadata

File hashes

Hashes for mhm-5.13.2-cp314-cp314-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 411185c2fe5d09336726a0d758ff624cdb0cc8fef53f42017996cf48667708c1
MD5 82eadea5602e807417b1e95b5d8501eb
BLAKE2b-256 b8ed1573f0acf4517fb9a9f61f63cd8c131febf0626b88fbbd56527e6c892cc6

See more details on using hashes here.

File details

Details for the file mhm-5.13.2-cp314-cp314-macosx_13_0_x86_64.whl.

File metadata

File hashes

Hashes for mhm-5.13.2-cp314-cp314-macosx_13_0_x86_64.whl
Algorithm Hash digest
SHA256 69905d5991df7dcf561b1f9d816ed08f4ca857a9fe6444c3f66f09b74a0549c8
MD5 2c34019f247fefc23f0f99f65176bb6b
BLAKE2b-256 e4f65e3274d281d7f4d504d35aa68a3c603379bdb2ab8b43f68e5a23b953b9d0

See more details on using hashes here.

File details

Details for the file mhm-5.13.2-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for mhm-5.13.2-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 4d8465bbb93775a0c8e693bbc09957dd604daa8ecbcde4f48a8ecadffe3b881c
MD5 2f7d7c4fdbb930f8601d2e734a3843f8
BLAKE2b-256 237b8046fb6dab22f750a437014a873814f52ecdc2e9b158c60ecf6972307975

See more details on using hashes here.

File details

Details for the file mhm-5.13.2-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for mhm-5.13.2-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 8a52c7d8d307c082a5011b9c381e604595633e062133e9f07531d75c4b061684
MD5 0c3b1f44d9cebb64a849b46fac298432
BLAKE2b-256 1e872c702e39216d5a3b0282e0aba0058a0de5c617293ac91297ada04291370e

See more details on using hashes here.

File details

Details for the file mhm-5.13.2-cp313-cp313-macosx_14_0_arm64.whl.

File metadata

File hashes

Hashes for mhm-5.13.2-cp313-cp313-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 93393f6cf21d36888945420fb1dde9f379b2a4430b6144b16a34cfebd28b92b1
MD5 ba63ba9fc782947db641e07d25b63fd0
BLAKE2b-256 9f7e4869881575b417465a2cf645436416dd04615421ab9c9c8545eeddd865bb

See more details on using hashes here.

File details

Details for the file mhm-5.13.2-cp313-cp313-macosx_13_0_x86_64.whl.

File metadata

File hashes

Hashes for mhm-5.13.2-cp313-cp313-macosx_13_0_x86_64.whl
Algorithm Hash digest
SHA256 b564064a0f7f6a6315a8fed4345f96429f4612500e9f6759a8cf9de912f5f10b
MD5 6b4005be8f4ade1fe62ed7b2205bd90c
BLAKE2b-256 597c807afb55b01f556bbe56076e4c2ffe2e416415a9ed5ab641c60e945fc6b3

See more details on using hashes here.

File details

Details for the file mhm-5.13.2-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for mhm-5.13.2-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 c68344595cf8d2c990a1467ef02b8eaf6efed77de6d1ab214b83b49ea91a445d
MD5 5b63bcff133a6c09723c904884ab7078
BLAKE2b-256 459fabe93472456c6352840bba3ad7d0698b3ee9b2d5129a4b1d07c6750d5855

See more details on using hashes here.

File details

Details for the file mhm-5.13.2-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for mhm-5.13.2-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 30f0a709315ffcbee90a06bb5db078cffc8e7c83db98fc5bd8fbdc7a6e35ba7f
MD5 905959ffb63eb7c8f926c603030ecc26
BLAKE2b-256 53f30fe4feac2ffcf1eb62cf9166be01e42a5d350a2ce378035936fcfd5b8786

See more details on using hashes here.

File details

Details for the file mhm-5.13.2-cp312-cp312-macosx_14_0_arm64.whl.

File metadata

File hashes

Hashes for mhm-5.13.2-cp312-cp312-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 69a86bf3e3dba0d1139f95884ce9c3560ebff939bb7e2b8ef5890945a1f55384
MD5 86985e980037ccff496efda9e49359b9
BLAKE2b-256 9414a4afffcaf0734018b72c860953910cca4550183481c3bf19ca566454ba16

See more details on using hashes here.

File details

Details for the file mhm-5.13.2-cp312-cp312-macosx_13_0_x86_64.whl.

File metadata

File hashes

Hashes for mhm-5.13.2-cp312-cp312-macosx_13_0_x86_64.whl
Algorithm Hash digest
SHA256 443b8b1f48401887db4dc76b16fc3681dbdf9f6536936b5fe2d60c3c45ee0a28
MD5 8090af442d9b525fe0e774055e265b1f
BLAKE2b-256 e0dff5e7e36bf7b69784d5dd76ae11fc51c33f3a5720c863ac9e854045babe5d

See more details on using hashes here.

File details

Details for the file mhm-5.13.2-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for mhm-5.13.2-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 9e48715964c8322d15a53bdaaa23437430add800005a03851c6b476b8241fdff
MD5 55a30008a1bdc4e34e9e1e6c48081959
BLAKE2b-256 e8723c873a037e036acc0f887422fb12992389565e5198a171ae23196e0e95d1

See more details on using hashes here.

File details

Details for the file mhm-5.13.2-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for mhm-5.13.2-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 c85bdec0c5aaccb0da86439cc8ff7117fa80cf4a9977868bae3957d9a00a343a
MD5 77e30180933bb87b7216b198cc86b966
BLAKE2b-256 9114bfff90747f07759c1b681f9f146879cc76bbbbba14f357770d66c13294d5

See more details on using hashes here.

File details

Details for the file mhm-5.13.2-cp311-cp311-macosx_14_0_arm64.whl.

File metadata

File hashes

Hashes for mhm-5.13.2-cp311-cp311-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 91f1e1fbea72bfc4d9091a9ddef17b8f8aab040544eef4b943fc522c4edb18c9
MD5 e2db40bcc0a9ac503475a61edc29e433
BLAKE2b-256 002e7144c283530912363b93729d8a88a564a8c11a34e8d6f9e3493564a7118d

See more details on using hashes here.

File details

Details for the file mhm-5.13.2-cp311-cp311-macosx_13_0_x86_64.whl.

File metadata

File hashes

Hashes for mhm-5.13.2-cp311-cp311-macosx_13_0_x86_64.whl
Algorithm Hash digest
SHA256 7e488f183ccf43532b2d0f101264c7f3d2bd47aa28ec7d490ebfbc2757ba69c8
MD5 8c5f654ac30058ad358ad2bbc2b747a0
BLAKE2b-256 7a4d9919bc2f7189c2f48d0bd07e6cb7bd35b18ba0f2647d5d37bc14a80a46fd

See more details on using hashes here.

File details

Details for the file mhm-5.13.2-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for mhm-5.13.2-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 a6aac370146b8ab95af03aeda633dea6943d01de0090306f1e48d704b0aa9d30
MD5 2306b0fab2cfa042c4ded6db448ae98b
BLAKE2b-256 91c987d777505be78b470c6bee8ae34179a8b3213c56ef56c9330116697917ee

See more details on using hashes here.

File details

Details for the file mhm-5.13.2-cp310-cp310-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for mhm-5.13.2-cp310-cp310-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 7e11ff452222008c7e69e57d8a2ed8fed0b84126d463ada479b470725fb108aa
MD5 e13ed4a2ba1eda22ca39e0830b51cd99
BLAKE2b-256 f2a273d4664835f30bf1a76f11a185d375efa85f865c98fd49d20d2c5b5cbda7

See more details on using hashes here.

File details

Details for the file mhm-5.13.2-cp310-cp310-macosx_14_0_arm64.whl.

File metadata

File hashes

Hashes for mhm-5.13.2-cp310-cp310-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 9357f5da615d6aaffc6560805032e88600cd0a9fbf6915cdf7b03b6fd04b1612
MD5 ecb8e967c83e55b28df5266a9e129de9
BLAKE2b-256 619b62dd72a9949e986f2b638077f763ed87b91c7df20b3716f195b914209586

See more details on using hashes here.

File details

Details for the file mhm-5.13.2-cp310-cp310-macosx_13_0_x86_64.whl.

File metadata

File hashes

Hashes for mhm-5.13.2-cp310-cp310-macosx_13_0_x86_64.whl
Algorithm Hash digest
SHA256 60dc0fbffd8ded3927efce7db07ee49e715eff446d8ff3eaf12472ddec0cf07a
MD5 a0e41e24f21912b6e48854b5c6084f16
BLAKE2b-256 9bc5620d02afb17c22c2967630569c30e463513d4f2b07526a56281641b1b2dc

See more details on using hashes here.

File details

Details for the file mhm-5.13.2-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for mhm-5.13.2-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 016f5e1ca61b85ea975944f2539ce513add3e1b468ccb3b42a22c192b12a7f93
MD5 5549dc3a200ffe530af0acb1081abbe8
BLAKE2b-256 59df5b804ae47b521401ec1b856b226203525d724989445046102c763bb415e7

See more details on using hashes here.

File details

Details for the file mhm-5.13.2-cp39-cp39-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for mhm-5.13.2-cp39-cp39-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 88ba6b3b7b2fb1fd2f2c0bd7880ed26fe28be2a38bc48b419859b9e23de1ea52
MD5 5582862486dff89e44f49f2e7b370a33
BLAKE2b-256 7ff2b9da0f072591b024a23575d46fb4358147251a3d5f6eb69548aadf49a654

See more details on using hashes here.

File details

Details for the file mhm-5.13.2-cp39-cp39-macosx_14_0_arm64.whl.

File metadata

  • Download URL: mhm-5.13.2-cp39-cp39-macosx_14_0_arm64.whl
  • Upload date:
  • Size: 4.5 MB
  • Tags: CPython 3.9, macOS 14.0+ ARM64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for mhm-5.13.2-cp39-cp39-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 de9da2e9bb3722fd4be3e7989e3f77d528d108304cb68b28ba5c62e989941917
MD5 2bf8993ea910a5324b7ff767a98af531
BLAKE2b-256 cf57eddb07d3355866f4a82d27c26de5ce2c52557290f4caeccfa61857bbfa55

See more details on using hashes here.

File details

Details for the file mhm-5.13.2-cp39-cp39-macosx_13_0_x86_64.whl.

File metadata

  • Download URL: mhm-5.13.2-cp39-cp39-macosx_13_0_x86_64.whl
  • Upload date:
  • Size: 5.6 MB
  • Tags: CPython 3.9, macOS 13.0+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for mhm-5.13.2-cp39-cp39-macosx_13_0_x86_64.whl
Algorithm Hash digest
SHA256 96f33be74572d32d02f6b5db9362dc9f48391dd230854a1c7a94691d4f8cbd68
MD5 c65a15d0f1d4e1aca188fab46d2bf7dc
BLAKE2b-256 4af133e07f8e06fcec3161ef0e452e42dce42d4cc266d718f97b65d789c09c88

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page