Skip to main content

Marshmallow fork optimized for dumping speed.

Project description

Althaia

PyPI Version License PyPI Python Downloads

Althaia: from Latin althaea, from Greek althaia - marsh mallow (literally: healing plant), from Greek althein to heal

What is it?

Althaia is a very simple fork of marshmallow, with patches to improve the performance when dumping large sets of data. It is then also compiled via cython for some extra performance boost. Ideally, these patches will one day find their way into the upstream marshmallow in some cleaner form, and this package will become obsolete.

How does it work?

During the serialization process, marshmallow repeats a lot of lookup operations for each object it's attempting to serialize, even though these values never change during the single execution. The main patch in this repo is basically reading those values once and creating a serializer function, which is much more performant on large data sets.

The entire thing is then compiled into C extension modules and released only as binary wheels.

Check out the original upstream PR for some discussion, or my original announcement.

How fast is it?

It really depends on your data and usage, but using the benchmark.py test from the upstream marshmallow repo, Althaia seems to shave off some ~30% of execution time on average. These values are an example test run results from the upstream benchmark:

Upstream(usec/dump) Althaia(usec/dump) Improvement(%)
374.64 258.61 -30.97
19189.83 13275.84 -30.81
396368.67 275365.67 -30.52
198163.58 133714.07 -32.52

The table is the result of the following commands:

python performance/benchmark.py
python performance/benchmark.py --object-count 1000
python performance/benchmark.py --iterations=5 --repeat=5 --object-count 20000
python performance/benchmark.py --iterations=10 --repeat=10 --object-count 10000

They are also available in this repo as poetry run task upstream-performance. Note that you may get different results while running the benchmarks (the numbers above were obtained with Althaia v3.20.1, generally speaking you should be getting better results with newer versions, but sometimes not).

Contribution into the serialization benchmark is in the works (update: stalled), but local run seems to be almost comparable to Toasted Marshmallow, which is stuck on an old marshmallow 2.x branch. This means that Althaia gives you (almost) the speed of Toasted Marshmallow, with all the goodies of the latest marshmallow.

Library Many Objects (seconds) One Object (seconds) Relative
serpyco 0.00767612 0.00389147 1
Custom 0.00965786 0.00467634 1.23917
lima 0.0116959 0.00583649 1.51564
Pickle 0.0137603 0.0136833 2.37246
serpy 0.0352728 0.0181508 4.61839
Strainer 0.0516005 0.0260506 6.71281
Toasted Marshmallow 0.076792 0.0412786 10.207
Althaia 0.101892 0.0484211 12.9943
Colander 0.208514 0.105719 27.1649
Avro 0.303786 0.151184 39.3314
Lollipop 0.352331 0.173141 45.4262
Marshmallow 0.531636 0.276243 69.8398
Django REST Framework 0.531175 0.387527 79.4203
kim 0.669759 0.336132 86.9576

Installation

pip install althaia

NOTE: This is still a work in progress and a wheel may not be available for your platform yet. PRs welcome!

Usage

There are two ways to use Althaia: as a standalone package, or as a drop-in replacement for marshmallow. Latter method is the recommended one. Add the following code as early as possible in your app bootstrap:

import althaia
althaia.patch()

This will install a Python meta path importer which will mimic marshmallow for the rest of your project, without any changes to the codebase, i.e. import marshmallow will work as expected. If and when this package becomes obsolete, there will be no need to change the rest of your source to revert to upstream marshmallow.

Alternatively, you can use Althaia directly:

from althaia import marshmallow
# or, e.g.
from althaia.marshmallow import Schema

Though I'm not sure why one would do that.

Obviously, for all actual usage of marshmallow, you should always refer to the excellent marshmallow docs.

Bugs & Contributing

If there are bugs, please make sure they are not upstream marshmallow bugs before reporting them. Since the patches applied are picking apart some of the marshmallow internals, any breakage should be immediately visible, and the chances are that most bugs will be upstream bugs.

Contributing manylinux builds for the CI pipeline is most welcome.

When opening pull requests, please target the develop branch by default.

If you have any other ideas on how to tweak the performance, feel free to contribute in any way you can!

Versioning & Releases

Althaia will always follow the upstream version of marshmallow to reduce confusion. In other words, Althaia version X.Y.Z will use marshmallow version X.Y.Z.

Additionally, if it comes to some changes on Althaia side (repo structure, build process, bugfixes), PEP440 will be followed and will be released either as alpha, beta, rc (X.Y.ZaN, X.Y.ZbN, X.Y.ZrcN) if there is still no change in the upstream dependency, or post-releases (X.Y.ZpostN). Since bugfixing is discouraged for post-releases, there may also be a hotfix release as X.Y.Z.N, where N is the hotfix version.

dev releases may appear on test PyPI (X.Y.Z.devN), but these are not relevant to the general public.

There will obviously be some delay between marshmallow and Althaia releases, and it is inevitable that I will get sloppy over time, so feel free to create a GitHub issue if you need an urgent update to latest marshmallow.

Developing

Althaia is using Poetry with a custom build script, and some taskipy scripts to facilitate things. You can see them defined in pyproject.toml, or just type poetry run task --list.

Preparing a new version TL;DR:

  • Edit pyproject.toml and change the version of the packages for upstream marshmallow and Althaia itself.
  • Run poetry run task version-check.
  • Run poetry run task build.
  • Run poetry run task upstream-test.
  • [Optional] Run poetry run task upstream-performance.
  • [Optional] Inspect the wheel content with poetry run task inspect.
  • Run poetry run task publish-test to deploy to test PyPI.

Known Issues

  • If you have any marshmallow warnings ignored in your pytest.ini, i.e. you have filterwarnings set up to ignore an error starting with marshmallow.warnings, you will get an import error even if you're doing althaia.patch() in your conftest.py. As a workaround, you can change it to start with althaia.marshmallow.warnings. This happens because pytest is trying to import marshmallow before Althaia gets a chance to patch the importer.
  • Since althaia 3.20.1, the support for python3.7 and 3.8 has been dropped, unlike marshmallow which has dropped support only for python3.7. The reason for this are massive changes in typing annotation starting from python3.9, which are no longer supported by the recently released Cython 3.0.0. Maintaining patches for 3.8 and 3.9+ would be difficult without being a significant time sink. Since python3.8 is already in security-updates-only state, it's much easier to just drop it.

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

althaia-3.21.1.tar.gz (53.3 kB view details)

Uploaded Source

Built Distributions

althaia-3.21.1-cp312-cp312-win_amd64.whl (767.4 kB view details)

Uploaded CPython 3.12 Windows x86-64

althaia-3.21.1-cp312-cp312-musllinux_1_1_x86_64.whl (1.1 MB view details)

Uploaded CPython 3.12 musllinux: musl 1.1+ x86-64

althaia-3.21.1-cp312-cp312-musllinux_1_1_aarch64.whl (989.8 kB view details)

Uploaded CPython 3.12 musllinux: musl 1.1+ ARM64

althaia-3.21.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.1 MB view details)

Uploaded CPython 3.12 manylinux: glibc 2.17+ x86-64

althaia-3.21.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (987.1 kB view details)

Uploaded CPython 3.12 manylinux: glibc 2.17+ ARM64

althaia-3.21.1-cp312-cp312-macosx_11_0_x86_64.whl (943.2 kB view details)

Uploaded CPython 3.12 macOS 11.0+ x86-64

althaia-3.21.1-cp311-cp311-win_amd64.whl (789.3 kB view details)

Uploaded CPython 3.11 Windows x86-64

althaia-3.21.1-cp311-cp311-musllinux_1_1_x86_64.whl (1.1 MB view details)

Uploaded CPython 3.11 musllinux: musl 1.1+ x86-64

althaia-3.21.1-cp311-cp311-musllinux_1_1_aarch64.whl (1.0 MB view details)

Uploaded CPython 3.11 musllinux: musl 1.1+ ARM64

althaia-3.21.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.1 MB view details)

Uploaded CPython 3.11 manylinux: glibc 2.17+ x86-64

althaia-3.21.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (1.0 MB view details)

Uploaded CPython 3.11 manylinux: glibc 2.17+ ARM64

althaia-3.21.1-cp311-cp311-macosx_11_0_x86_64.whl (977.6 kB view details)

Uploaded CPython 3.11 macOS 11.0+ x86-64

althaia-3.21.1-cp310-cp310-win_amd64.whl (781.8 kB view details)

Uploaded CPython 3.10 Windows x86-64

althaia-3.21.1-cp310-cp310-musllinux_1_1_x86_64.whl (1.1 MB view details)

Uploaded CPython 3.10 musllinux: musl 1.1+ x86-64

althaia-3.21.1-cp310-cp310-musllinux_1_1_aarch64.whl (1.0 MB view details)

Uploaded CPython 3.10 musllinux: musl 1.1+ ARM64

althaia-3.21.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.1 MB view details)

Uploaded CPython 3.10 manylinux: glibc 2.17+ x86-64

althaia-3.21.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (1.0 MB view details)

Uploaded CPython 3.10 manylinux: glibc 2.17+ ARM64

althaia-3.21.1-cp310-cp310-macosx_11_0_x86_64.whl (970.2 kB view details)

Uploaded CPython 3.10 macOS 11.0+ x86-64

althaia-3.21.1-cp39-cp39-win_amd64.whl (781.9 kB view details)

Uploaded CPython 3.9 Windows x86-64

althaia-3.21.1-cp39-cp39-musllinux_1_1_x86_64.whl (1.1 MB view details)

Uploaded CPython 3.9 musllinux: musl 1.1+ x86-64

althaia-3.21.1-cp39-cp39-musllinux_1_1_aarch64.whl (1.0 MB view details)

Uploaded CPython 3.9 musllinux: musl 1.1+ ARM64

althaia-3.21.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.1 MB view details)

Uploaded CPython 3.9 manylinux: glibc 2.17+ x86-64

althaia-3.21.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (1.0 MB view details)

Uploaded CPython 3.9 manylinux: glibc 2.17+ ARM64

althaia-3.21.1-cp39-cp39-macosx_11_0_x86_64.whl (972.0 kB view details)

Uploaded CPython 3.9 macOS 11.0+ x86-64

File details

Details for the file althaia-3.21.1.tar.gz.

File metadata

  • Download URL: althaia-3.21.1.tar.gz
  • Upload date:
  • Size: 53.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.9

File hashes

Hashes for althaia-3.21.1.tar.gz
Algorithm Hash digest
SHA256 fc7a7d8d9539e1e09e0bc054bd4ca8c1f5460c1947fd2b3035cd4816cf2fdb45
MD5 8d3e57fc467c67663a93000f3dff3382
BLAKE2b-256 afb6283dad89ea981fb740b32c614cd2d1a8e284825e6528f784b22ba6cabd1d

See more details on using hashes here.

File details

Details for the file althaia-3.21.1-cp312-cp312-win_amd64.whl.

File metadata

  • Download URL: althaia-3.21.1-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 767.4 kB
  • Tags: CPython 3.12, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.9

File hashes

Hashes for althaia-3.21.1-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 59f622890c600d9eabcdeb1ba1c7f6ec9f398760d9b047481c8d78ee9017048c
MD5 c6cd4e518477969ae2460341641a3c8f
BLAKE2b-256 faec36da923d50004824a203703522d1e249fbf99af53c162c70c9dd863d5c0f

See more details on using hashes here.

File details

Details for the file althaia-3.21.1-cp312-cp312-musllinux_1_1_x86_64.whl.

File metadata

File hashes

Hashes for althaia-3.21.1-cp312-cp312-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 7d74589f299194adc79659a8a85af3601259c5cf6b16cf9c1296f0a515e2b27c
MD5 f0741e01a2bb325a07b56aecddb4d563
BLAKE2b-256 38cf849b280bba2b525637bfa48ee5b876e6fe4012a3cb2355c94230c38ce651

See more details on using hashes here.

File details

Details for the file althaia-3.21.1-cp312-cp312-musllinux_1_1_aarch64.whl.

File metadata

File hashes

Hashes for althaia-3.21.1-cp312-cp312-musllinux_1_1_aarch64.whl
Algorithm Hash digest
SHA256 6e0fa6153bafaddfed928823483de47b7b12e08f2e0737ecebf3be775d452d96
MD5 a5d6711802c60d315501197df6b90016
BLAKE2b-256 a42807a615c34e16a07b7e1a0861caead129496dc76772aac1b9639f22b6e243

See more details on using hashes here.

File details

Details for the file althaia-3.21.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for althaia-3.21.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 eb5d35ca0ebb33ddf093bd9485aaae4c07b31114fa8e4ed2a21d6fa11446785a
MD5 33358746f5b6de7bc4a6272d1bb5f21d
BLAKE2b-256 c84a9182e92f494b73210f0e4ad634d16890c9b9e27d4867f4087d1a0a0097ff

See more details on using hashes here.

File details

Details for the file althaia-3.21.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for althaia-3.21.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 c9d454f006b9649791341ccb34b5d1e4e0b4bfa3308bd704eea306621314e0fd
MD5 8f602f01ebee20b16bfaa4631920eb59
BLAKE2b-256 27c729c439a1a41950de44d2bb1e55eada1e4466a2f05826862a816635bf669f

See more details on using hashes here.

File details

Details for the file althaia-3.21.1-cp312-cp312-macosx_11_0_x86_64.whl.

File metadata

File hashes

Hashes for althaia-3.21.1-cp312-cp312-macosx_11_0_x86_64.whl
Algorithm Hash digest
SHA256 af580f0c72263f2e29793cab7121bd35411dafd8ba0133b6bf81430fe26492a0
MD5 10db75a064269c5bf8672c52e1aba450
BLAKE2b-256 540d3f629d508a6d5c483ac95e0ce1e25b6ffb89fe0dad8396d415d6d8932669

See more details on using hashes here.

File details

Details for the file althaia-3.21.1-cp311-cp311-win_amd64.whl.

File metadata

  • Download URL: althaia-3.21.1-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 789.3 kB
  • Tags: CPython 3.11, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.9

File hashes

Hashes for althaia-3.21.1-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 7ac3a88befc3581f860e26c163bc1730b61aa097304c3d2721b21890d9ab3fbf
MD5 b921f9f97a6f1f7d7ce0da7d13c30e5b
BLAKE2b-256 a400e07f2a58d6bab3b348cab730228b683340c4d1de7ebfbaf2da2bfb531363

See more details on using hashes here.

File details

Details for the file althaia-3.21.1-cp311-cp311-musllinux_1_1_x86_64.whl.

File metadata

File hashes

Hashes for althaia-3.21.1-cp311-cp311-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 222e413c7831d7e2e897e31d332f30b97de2ceb1e66f2cc50b9d2066ebcb45f6
MD5 33b3673b60a3170e7556689b1fb339af
BLAKE2b-256 c913959a5c2168e6813fb19ff9ed34f13826b40a1034d2269c351b9773ad29e7

See more details on using hashes here.

File details

Details for the file althaia-3.21.1-cp311-cp311-musllinux_1_1_aarch64.whl.

File metadata

File hashes

Hashes for althaia-3.21.1-cp311-cp311-musllinux_1_1_aarch64.whl
Algorithm Hash digest
SHA256 8380534c40b0ab4c1fa8c6af61405ed902f4030626708ca41e2fe00b3a468ae7
MD5 958e7a276b5457454698910f6ccc6c96
BLAKE2b-256 f606c1a805c24aa2c9ff645aa71784a6b8e7c10785dfcb42dc07df18082c8329

See more details on using hashes here.

File details

Details for the file althaia-3.21.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for althaia-3.21.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 1b4e18d201c9258ab2d3fa3f7252c2612a0626b1e51bf033a460220bf1345f84
MD5 0ef95ba3c5501d3ab17555383ae3e2ad
BLAKE2b-256 75c2864bdb4efc0a387c06e2fa6a17efb4e551c241059997cfb9d8606c20596e

See more details on using hashes here.

File details

Details for the file althaia-3.21.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for althaia-3.21.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 cce5f77e0066a009cbc79af61b4da4af78f6004e3acba87f6251eed8baab5bfc
MD5 21333c17c762b8deab028dcf8228f071
BLAKE2b-256 e4ccece21a325ff09bbde59448d9c4e60c3fc5ef2f03a3f142a8d61a619aa52e

See more details on using hashes here.

File details

Details for the file althaia-3.21.1-cp311-cp311-macosx_11_0_x86_64.whl.

File metadata

File hashes

Hashes for althaia-3.21.1-cp311-cp311-macosx_11_0_x86_64.whl
Algorithm Hash digest
SHA256 1fa1f87c67e0291fed199f0c709f1468ac69999ac817fbbf21620dddf5f9feee
MD5 202db1d07c8e2b817795b592acbb40a7
BLAKE2b-256 a42f271af74f6bd6d7e1f347051dfab3e50982a83f87929af6175914c87f0f46

See more details on using hashes here.

File details

Details for the file althaia-3.21.1-cp310-cp310-win_amd64.whl.

File metadata

  • Download URL: althaia-3.21.1-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 781.8 kB
  • Tags: CPython 3.10, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.9

File hashes

Hashes for althaia-3.21.1-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 977133010dfb5cf81ae53a4f82591fd757bef4918ea4850ee2c242c2de4243b3
MD5 a5f6827228a7bfd6e0ccbee499d49419
BLAKE2b-256 721bc3341f729c3b2ef5665b26fe5f9eda4e662e9ee0b2599d717ec59be9751d

See more details on using hashes here.

File details

Details for the file althaia-3.21.1-cp310-cp310-musllinux_1_1_x86_64.whl.

File metadata

File hashes

Hashes for althaia-3.21.1-cp310-cp310-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 5aac87b198c4f23dae43e7400c8e86489998a48fa41dce89d61d91fc48399613
MD5 39a49cfd58f930838e24a56df4e01103
BLAKE2b-256 77abd543939e86ae1086f785fcee1f02fdf75019583e2aa09f3146ab3ec603b5

See more details on using hashes here.

File details

Details for the file althaia-3.21.1-cp310-cp310-musllinux_1_1_aarch64.whl.

File metadata

File hashes

Hashes for althaia-3.21.1-cp310-cp310-musllinux_1_1_aarch64.whl
Algorithm Hash digest
SHA256 555c8bfce6b8c241ec64418ce7ac7f6f3001c02f0563039ed036842d2042d311
MD5 3def15c11bb76a942338c487a08748f7
BLAKE2b-256 e7b089ab383bf19b9648e8307141770c618f0b127b0a53269a0de150245a964a

See more details on using hashes here.

File details

Details for the file althaia-3.21.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for althaia-3.21.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 fafbf8ed2e07b24071082d2a4c25bc006cef5f829e66a511b3a60752b77fa30b
MD5 8f6fb5b4b0a9b7b742182271fbe41e23
BLAKE2b-256 9f012760d8297edfd0b75322d18c167e1473650e9ec5f264016f0cd1a8137dbf

See more details on using hashes here.

File details

Details for the file althaia-3.21.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for althaia-3.21.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 07459660d4a4bc60ddc615f8e741f17fdf4135641e7b0316d2b6b6dfa452198f
MD5 50313d729838b7d2b6932f8974514588
BLAKE2b-256 9fc2bfa5918c18c914fa559540e345d5405d0945c7b2727768dbf5021e45136c

See more details on using hashes here.

File details

Details for the file althaia-3.21.1-cp310-cp310-macosx_11_0_x86_64.whl.

File metadata

File hashes

Hashes for althaia-3.21.1-cp310-cp310-macosx_11_0_x86_64.whl
Algorithm Hash digest
SHA256 d47f9e799330291692d0a3db2d3b3d7fbbcd0186497e3b1953075d7651f467ef
MD5 a50cbc5e4100e4e8d5466e71d2dee550
BLAKE2b-256 2835e4c13a030d460ee8dd588d461a3d0dbddde38e53b00c45528b54553f52bc

See more details on using hashes here.

File details

Details for the file althaia-3.21.1-cp39-cp39-win_amd64.whl.

File metadata

  • Download URL: althaia-3.21.1-cp39-cp39-win_amd64.whl
  • Upload date:
  • Size: 781.9 kB
  • Tags: CPython 3.9, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.9

File hashes

Hashes for althaia-3.21.1-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 b36d92ef8acd4541e51bda5da04993d512b1ba29e532f43106b9b42c49dc652f
MD5 f77fa0870109e7e7b0ab359c3ab5c53b
BLAKE2b-256 2907e4120dedb1a3c11cb3cc33808263741128e6ba0f87622cb65465b5ccd2cd

See more details on using hashes here.

File details

Details for the file althaia-3.21.1-cp39-cp39-musllinux_1_1_x86_64.whl.

File metadata

File hashes

Hashes for althaia-3.21.1-cp39-cp39-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 2e8236f4cea185b7f62730fce461633a4a5db3a35b345c034e431e8e460ec5a1
MD5 bbbd396f7926598295c66a39990f03c9
BLAKE2b-256 a87d0f9d38deeac916ef006b6f3e12aad659e8f84832cf49e9c543537bf2b398

See more details on using hashes here.

File details

Details for the file althaia-3.21.1-cp39-cp39-musllinux_1_1_aarch64.whl.

File metadata

File hashes

Hashes for althaia-3.21.1-cp39-cp39-musllinux_1_1_aarch64.whl
Algorithm Hash digest
SHA256 6dec24cfd10cc265cc33d26338853b68fdca68e52c0d994ea41194d81ea4a780
MD5 7b48034b76159785cbd9e0d0b3622152
BLAKE2b-256 86f82af69f8901e6c8aa7a63638b01aa350f002cd16c2f8b809cb33e75ce14f3

See more details on using hashes here.

File details

Details for the file althaia-3.21.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for althaia-3.21.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 fe24b41a6ae869ac3df34d0850626e1f3c080c093a82568c7c573b9d4557c453
MD5 ef6a692e9a49482003d6532f5678e794
BLAKE2b-256 5244a01e830781f97eedd75ec62998a55eb21248c74481e97fe3e7395a03c15b

See more details on using hashes here.

File details

Details for the file althaia-3.21.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for althaia-3.21.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 b80ba0c964375b0666d6a69f61e86d27e2446a88e1dfa12fc0dc57e7e89c988a
MD5 b7a71d68fb01ed356129a231074bdb29
BLAKE2b-256 b3f21bd8f0a4964fc3f5a53b881c44ea90b99f1485c98aa008a324902e2348a0

See more details on using hashes here.

File details

Details for the file althaia-3.21.1-cp39-cp39-macosx_11_0_x86_64.whl.

File metadata

File hashes

Hashes for althaia-3.21.1-cp39-cp39-macosx_11_0_x86_64.whl
Algorithm Hash digest
SHA256 0e936fb04876c3faed3dcf478c1b3c3ead603471c2cce13af75ce6ddf00ad903
MD5 970bf4f2ce31597c4ad2938a0958e211
BLAKE2b-256 57ab66dee7343ccfd5297bdcfe97e89c6ff831b20f3c3e1034159afd4e756340

See more details on using hashes here.

Supported by

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