Skip to main content

Cython bindings and Python interface to trimAl, a tool for automated alignment trimming.

Project description

🐍✂️ PytrimAl Stars

Cython bindings and Python interface to trimAl, a tool for automated alignment trimming. Now with SIMD!

Actions Coverage License PyPI Bioconda AUR Wheel Python Versions Python Implementations Source Mirror Issues Docs Changelog Downloads

⚠️ This package is based on the release candidate of trimAl 2.0, and results may not be consistent across versions or with the trimAl 1.4 results.

🗺️ Overview

PytrimAl is a Python module that provides bindings to trimAl using Cython. It implements a user-friendly, Pythonic interface to use one of the different trimming methods from trimAl and access results directly. It interacts with the trimAl internals, which has the following advantages:

  • single dependency: PytrimAl is distributed as a Python package, so you can add it as a dependency to your project, and stop worrying about the trimAl binary being present on the end-user machine.
  • no intermediate files: Everything happens in memory, in a Python object you control, so you don't have to invoke the trimAl CLI using a sub-process and temporary files. Alignment objects can be created directly from Python code.
  • friendly interface: The different trimming methods are implement as Python classes that can be configured independently.
  • error management: Errors occuring in trimAl are converted transparently into Python exceptions, including an informative error message.
  • better performance: PytrimAl uses SIMD instructions to compute statistics like pairwise sequence similarity. This makes the whole trimming process much faster for alignment with a large number of sequences, at the expense of slightly higher memory consumption.

📋 Roadmap

The following features are available or considered for implementation:

  • automatic trimming: Support for trimming alignments using one of the automatic heuristics implemented in trimAl.
  • manual trimming: Support for trimming alignments using manually defined conservation and gap thresholds for each residue position.
  • overlap trimming: Trimming sequences using residue and sequence overlaps to exclude regions with minimal conservation.
  • representative trimming: Select only representative sequences from the alignment, either using a fixed number, or a maximum identity threshold.
  • alignment loading from disk: Load an alignment from disk given a filename.
  • alignment loading from a file-like object: Load an alignment from a Python file object instead of a file on the local filesystem.
  • aligment creation from Python: Create an alignment from a collection of sequences stored in Python strings.
  • alignment formatting to disk: Write an alignment to a file given a filename in one of the supported file formats.
  • alignment formatting to a file-like object: Write an alignment to a file-like object in one of the supported file formats.
  • reverse-translation: Back-translate a protein alignment to align the sequences in genomic space.
  • alternative similarity matrix: Specify an alternative similarity matrix for the alignment (instead of BLOSUM62).
  • similarity matrix creation: Create a similarity matrix from scratch from Python code.
  • windows for manual methods: Use a sliding window for computing statistics in manual methods.

🔧 Installing

PytrimAl is available for all modern versions (3.6+), with no external dependencies.

It can be installed directly from PyPI, which hosts some pre-built wheels for the x86-64 architecture (Linux/OSX) and the Aarch64 architecture (Linux only), as well as the code required to compile from source with Cython:

$ pip install pytrimal

Otherwise, pytrimal is also available as a Bioconda package:

$ conda install -c bioconda pytrimal

💡 Example

Let's load an Alignment from a file on the disk, and use the strictplus method to trim it, before printing the TrimmedAlignment as a Clustal block:

from pytrimal import Alignment, AutomaticTrimmer

ali = Alignment.load("pytrimal/tests/data/example.001.AA.clw")
trimmer = AutomaticTrimmer(method="strictplus")

trimmed = trimmer.trim(ali)
for name, seq in zip(trimmed.names, trimmed.sequences):
    print(name.decode().rjust(6), seq)

This should output the following:

Sp8    GIVLVWLFPWNGLQIHMMGII
Sp10   VIMLEWFFAWLGLEINMMVII
Sp26   GLFLAAANAWLGLEINMMAQI
Sp6    GIYLSWYLAWLGLEINMMAII
Sp17   GFLLTWFQLWQGLDLNKMPVF
Sp33   GLHMAWFQAWGGLEINKQAIL

You can then use the dump method to write the trimmed alignment to a file or file-like object. For instance, save the results in PIR format to a file named example.trimmed.pir:

trimmed.dump("example.trimmed.pir", format="pir")

🧶 Thread-safety

Trimmer objects are thread-safe, and the trim method is re-entrant. This means you can batch-process alignments in parallel using a ThreadPool with a single trimmer object:

import glob
import multiprocessing.pool
from pytrimal import Alignment, AutomaticTrimmer

trimmer = AutomaticTrimmer()
alignments = map(Alignment.load, glob.iglob("pytrimal/tests/data/*.fasta"))

with multiprocessing.pool.ThreadPool() as pool:
    trimmed_alignments = pool.map(trimmer.trim, alignments)

⏱️ Benchmarks

Benchmarks were run on a i7-10710U CPU @ 1.10GHz, using a single core to time the computation of several statistics, on a variable number of sequences from example.014.AA.EggNOG.COG0591.fasta, an alignment of 3583 sequences and 7287 columns.

Benchmarks

Each graph measures the computation time of a single trimAl statistic (see the Statistics page of the online documentation for more information.)

The None curve shows the time using the internal trimAl 2.0 code, the Generic curve shows a generic C implementation with some more optimizations, and the SSE curve shows the time spent using a dedicated class with SIMD implementations of the statistic computation.

💭 Feedback

⚠️ Issue Tracker

Found a bug ? Have an enhancement request ? Head over to the GitHub issue tracker if you need to report or ask something. If you are filing in on a bug, please include as much information as you can about the issue, and try to recreate the same bug in a simple, easily reproducible situation.

🏗️ Contributing

Contributions are more than welcome! See CONTRIBUTING.md for more details.

📋 Changelog

This project adheres to Semantic Versioning and provides a changelog in the Keep a Changelog format.

⚖️ License

This library is provided under the GNU General Public License v3.0. trimAl is developed by the trimAl team and is distributed under the terms of the GPLv3 as well. See vendor/trimal/LICENSE for more information.

This project is in no way not affiliated, sponsored, or otherwise endorsed by the trimAl authors. It was developed by Martin Larralde during his PhD project at the European Molecular Biology Laboratory in the Zeller team.

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

pytrimal-0.6.0.tar.gz (8.6 MB view details)

Uploaded Source

Built Distributions

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

pytrimal-0.6.0-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (717.3 kB view details)

Uploaded PyPymanylinux: glibc 2.17+ x86-64

pytrimal-0.6.0-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (697.2 kB view details)

Uploaded PyPymanylinux: glibc 2.17+ ARM64

pytrimal-0.6.0-pp39-pypy39_pp73-macosx_10_9_x86_64.whl (623.5 kB view details)

Uploaded PyPymacOS 10.9+ x86-64

pytrimal-0.6.0-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (721.7 kB view details)

Uploaded PyPymanylinux: glibc 2.17+ x86-64

pytrimal-0.6.0-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (702.2 kB view details)

Uploaded PyPymanylinux: glibc 2.17+ ARM64

pytrimal-0.6.0-pp38-pypy38_pp73-macosx_10_9_x86_64.whl (624.1 kB view details)

Uploaded PyPymacOS 10.9+ x86-64

pytrimal-0.6.0-pp37-pypy37_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (726.5 kB view details)

Uploaded PyPymanylinux: glibc 2.17+ x86-64

pytrimal-0.6.0-pp37-pypy37_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (704.8 kB view details)

Uploaded PyPymanylinux: glibc 2.17+ ARM64

pytrimal-0.6.0-pp37-pypy37_pp73-macosx_10_9_x86_64.whl (624.1 kB view details)

Uploaded PyPymacOS 10.9+ x86-64

pytrimal-0.6.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (3.9 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64

pytrimal-0.6.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (3.7 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ ARM64

pytrimal-0.6.0-cp311-cp311-macosx_11_0_arm64.whl (654.0 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

pytrimal-0.6.0-cp311-cp311-macosx_10_9_x86_64.whl (700.5 kB view details)

Uploaded CPython 3.11macOS 10.9+ x86-64

pytrimal-0.6.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (3.8 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ x86-64

pytrimal-0.6.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (3.7 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ ARM64

pytrimal-0.6.0-cp310-cp310-macosx_11_0_arm64.whl (658.8 kB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

pytrimal-0.6.0-cp310-cp310-macosx_10_9_x86_64.whl (706.5 kB view details)

Uploaded CPython 3.10macOS 10.9+ x86-64

pytrimal-0.6.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (3.8 MB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ x86-64

pytrimal-0.6.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (3.7 MB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ ARM64

pytrimal-0.6.0-cp39-cp39-macosx_11_0_arm64.whl (658.3 kB view details)

Uploaded CPython 3.9macOS 11.0+ ARM64

pytrimal-0.6.0-cp39-cp39-macosx_10_9_x86_64.whl (706.0 kB view details)

Uploaded CPython 3.9macOS 10.9+ x86-64

pytrimal-0.6.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (3.8 MB view details)

Uploaded CPython 3.8manylinux: glibc 2.17+ x86-64

pytrimal-0.6.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (3.7 MB view details)

Uploaded CPython 3.8manylinux: glibc 2.17+ ARM64

pytrimal-0.6.0-cp38-cp38-macosx_11_0_arm64.whl (655.6 kB view details)

Uploaded CPython 3.8macOS 11.0+ ARM64

pytrimal-0.6.0-cp38-cp38-macosx_10_9_x86_64.whl (702.9 kB view details)

Uploaded CPython 3.8macOS 10.9+ x86-64

pytrimal-0.6.0-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (3.7 MB view details)

Uploaded CPython 3.7mmanylinux: glibc 2.17+ x86-64

pytrimal-0.6.0-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (3.6 MB view details)

Uploaded CPython 3.7mmanylinux: glibc 2.17+ ARM64

pytrimal-0.6.0-cp37-cp37m-macosx_10_9_x86_64.whl (700.7 kB view details)

Uploaded CPython 3.7mmacOS 10.9+ x86-64

pytrimal-0.6.0-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (3.8 MB view details)

Uploaded CPython 3.6mmanylinux: glibc 2.17+ x86-64

pytrimal-0.6.0-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (3.6 MB view details)

Uploaded CPython 3.6mmanylinux: glibc 2.17+ ARM64

pytrimal-0.6.0-cp36-cp36m-macosx_10_9_x86_64.whl (700.3 kB view details)

Uploaded CPython 3.6mmacOS 10.9+ x86-64

File details

Details for the file pytrimal-0.6.0.tar.gz.

File metadata

  • Download URL: pytrimal-0.6.0.tar.gz
  • Upload date:
  • Size: 8.6 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.9.17

File hashes

Hashes for pytrimal-0.6.0.tar.gz
Algorithm Hash digest
SHA256 4983077f96d665472937cce53979f4ee8514546b51a773e57f919e0fddb5a04b
MD5 1cb4433703ed6b7e322e102e974d76fe
BLAKE2b-256 855e13b5d17d501ae042f7d47a6a59489dd74b38af6329714a926a1ffbd09d56

See more details on using hashes here.

File details

Details for the file pytrimal-0.6.0-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for pytrimal-0.6.0-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 798bd7e75660ff79abb79eee6bcb5674abb170eea41c12b0123612988744654d
MD5 ca4aa5500894af75eda28d1972231525
BLAKE2b-256 24e242723fef6f7172fdf9b746dc1961fbaf13085e1b216de03532c87f3bee70

See more details on using hashes here.

File details

Details for the file pytrimal-0.6.0-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for pytrimal-0.6.0-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 2e2ebaf9e728fc53e16ee606b96a5999292db7bd10604437dfcd1cad658d9625
MD5 7b91f4329e09e0a0afb51be11f11244d
BLAKE2b-256 cf962c42a72091afd5f5bd6f5b21a607b36d2375305ae9514fc07b5f64b1381e

See more details on using hashes here.

File details

Details for the file pytrimal-0.6.0-pp39-pypy39_pp73-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for pytrimal-0.6.0-pp39-pypy39_pp73-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 c5d5dbb03ca98890f1532d777e2a5f5c2b5e96ff4d36e6df8f15d5da9365fcb2
MD5 e939c5c497766b9d659d29dcbad53baf
BLAKE2b-256 96d69e7c5555672f71a22cbe54a8d78a5d365e6f23fa219595c7d6b977588c4f

See more details on using hashes here.

File details

Details for the file pytrimal-0.6.0-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for pytrimal-0.6.0-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 01919977c0d2c8f2f9b039a2228a3acf8dd2900b345e41d2e5d7b9e41d85e324
MD5 4133af5221f7869738825e8e86f14899
BLAKE2b-256 c7b5447b720e9671e0ca2038b5ded0c76cd1af098f5b1fe7066312087060a6ea

See more details on using hashes here.

File details

Details for the file pytrimal-0.6.0-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for pytrimal-0.6.0-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 eba0cf0c643841011abb575138cbf8bc40fa937bc28899104edfff84a34b4699
MD5 8dc3f35cd53a75ce4a8481b270a963a9
BLAKE2b-256 41f7ccbfa89136bf75879c1efbf4db30a7f54ba41df3f4d244df68a82b669c02

See more details on using hashes here.

File details

Details for the file pytrimal-0.6.0-pp38-pypy38_pp73-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for pytrimal-0.6.0-pp38-pypy38_pp73-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 ac2ed71598cd813d0e4f892964b5c94d701616a039233d138c559b210d10ae4e
MD5 fec90567c0fef7f77b39056c48d593cb
BLAKE2b-256 314ad1c528ab58a3cb56783a37f0346314a1e4b03d4b10240e810a42a13a47af

See more details on using hashes here.

File details

Details for the file pytrimal-0.6.0-pp37-pypy37_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for pytrimal-0.6.0-pp37-pypy37_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 1590908a14f8a560a47a7c9b05e3a6a497d7abe73657f5fde8511ee04a250800
MD5 0d8eca6301577b1fb306036453ce809d
BLAKE2b-256 b080e58004b95c0428df1c744383b2a2f4cee55df15a2829dc3f5c5acba4d49c

See more details on using hashes here.

File details

Details for the file pytrimal-0.6.0-pp37-pypy37_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for pytrimal-0.6.0-pp37-pypy37_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 12f82fec23d64ceb8b1cb93b7a53e3d71fedd193d20b484e78c1713e412005d8
MD5 1c876fae597e475101e5412ac7db6be7
BLAKE2b-256 993bf377d9dfb6f74e0e4eb0a5e21ed0e6bbce72d6eb5b1d9e4eab798f9f7031

See more details on using hashes here.

File details

Details for the file pytrimal-0.6.0-pp37-pypy37_pp73-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for pytrimal-0.6.0-pp37-pypy37_pp73-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 320f62884d6116438170632f7846a8a920d5217eac7d009fd7f4bdba5a7ae0b6
MD5 f213e60ff2c844d39125763607203def
BLAKE2b-256 c28f0c2d28afd1018be78ac45a116f251440dc6a24c5bb7b6d63cf261d303ce1

See more details on using hashes here.

File details

Details for the file pytrimal-0.6.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for pytrimal-0.6.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 117d005208b7bdd9b4e7c7b66a0c1f5fa47dca6e84d215d1dfb1530383d489a5
MD5 06aa170730f38d15803b8ccae513c7fe
BLAKE2b-256 f3a838a920c0cf25bf4768a63c99c8981f9ad750348159e8561309095955fbaa

See more details on using hashes here.

File details

Details for the file pytrimal-0.6.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for pytrimal-0.6.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 1755d4acbd9ddec241b083252ac9f37581c60747b838c7c15debd6cefc1dd3dd
MD5 eae690b7af0c6a9334f6c8aebbb4889f
BLAKE2b-256 940ec1df8fd157542221511eb453a94d991fb49234442d1c981ff02a6a4ca7c8

See more details on using hashes here.

File details

Details for the file pytrimal-0.6.0-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pytrimal-0.6.0-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 695cc1244c5663f6f8ef52dfbb354999603a2cdc3d45e8c9fd3f45fc66bb1619
MD5 ad370a9f3565c6cab3369edd5f99b73a
BLAKE2b-256 f5ce1c61263f9298b7cd12a8220bb9c6af7a2d423160e4aab8d2514c69d5f4a3

See more details on using hashes here.

File details

Details for the file pytrimal-0.6.0-cp311-cp311-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for pytrimal-0.6.0-cp311-cp311-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 a77c58b3a11e2cd0b562ed5ac045dd1a588a2fead1f2023e500062428b938415
MD5 a8fa30701b79b56eff3f6dee411e9740
BLAKE2b-256 b8dd44f46ce9d9612359468633536b9715a69d000e546069617fafba2dfad345

See more details on using hashes here.

File details

Details for the file pytrimal-0.6.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for pytrimal-0.6.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 e2a6ffe00d128b5f3bee0f4e4d44dbe58c8d58ae8ad128ebdd582d450cc95235
MD5 ee4a4eeb23d712657e2e28a07026a453
BLAKE2b-256 40e8d5f66e7fac08e119f2473dfdd23db42b06fe4e6dd2bbcf06701ecab5a666

See more details on using hashes here.

File details

Details for the file pytrimal-0.6.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for pytrimal-0.6.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 db41ffac474170bd71c37fe4061fba726f54daaa509d6c9d832febf9f65f7983
MD5 1f4f3d356f704da59e6ae9ab70454931
BLAKE2b-256 19bcaa9ac35bc18e76c6076165066a39139e02b8b633ef159556f79ac13b44cf

See more details on using hashes here.

File details

Details for the file pytrimal-0.6.0-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pytrimal-0.6.0-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 4e1e544df90653a2f49d3e996fd08b593a47e3431bea42351bf6d85d4b79f725
MD5 eec71986b3a2c95a9b7133c5907cc798
BLAKE2b-256 392ca12f286a031dc1d01427a88f1d7558abee135ec030f32e4b15e1901de867

See more details on using hashes here.

File details

Details for the file pytrimal-0.6.0-cp310-cp310-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for pytrimal-0.6.0-cp310-cp310-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 4725025dd5f15ffd942261f93cb036e20e297fa630da561d5db46d14a10777c5
MD5 e45c6258586a48c67e3bbf643a26c86c
BLAKE2b-256 c5cf7ca29c5a46fc875b5aea241e7d683e9bb92792a4c2ca1e0f85e0052c307d

See more details on using hashes here.

File details

Details for the file pytrimal-0.6.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for pytrimal-0.6.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 c67f8e5020372077906ca220870267cd7d45f51e10595d5566d9be65557bed89
MD5 8cbe773bd33bb55190867674ea2419e8
BLAKE2b-256 ef88fe22669cefc8988c1be4e34da2e64f7d90d7f5ff362ff436bbe5059c6f58

See more details on using hashes here.

File details

Details for the file pytrimal-0.6.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for pytrimal-0.6.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 d695ff1612dd26dbc681372a6c71f70ae2b977699805e7681891c983e94e35ae
MD5 2946089f89193b51223d7b590fce1cfb
BLAKE2b-256 a1c847b8b2d03866c2b2d1417c1666cba3ffecd171796c6b7c003e9b67a99a1e

See more details on using hashes here.

File details

Details for the file pytrimal-0.6.0-cp39-cp39-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pytrimal-0.6.0-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 c494aedaced3b616601429963c2634054aa6e3803ab63eaf5a39dfd26cbb0328
MD5 c59c47e5666210fda959a0ab0d75caf1
BLAKE2b-256 6c980bf98ae1c3f279c22a9f81a759de3735f562ce7a8a7a120c4a95d0705218

See more details on using hashes here.

File details

Details for the file pytrimal-0.6.0-cp39-cp39-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for pytrimal-0.6.0-cp39-cp39-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 7b6f9997ba3b136d0b83b0770675e708919295e079c7f65cc307923ed9d1c87c
MD5 635995fcb91c00a841a857a71607c5bc
BLAKE2b-256 6d45cb3e782c308bf1c7bc2b50467820f9ab885dbafd8069adb9e273bf25e6e4

See more details on using hashes here.

File details

Details for the file pytrimal-0.6.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for pytrimal-0.6.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 8b58c3abe9d62472e0fdf068eca7a23b75f0912af9d88a4de435355f89b92641
MD5 b34453ce435390a9c998d30d7ca1a867
BLAKE2b-256 7b32ad961707b5a1b0bc74cae2cb4ff346f1d911a438fa5a6357afd7ab792b61

See more details on using hashes here.

File details

Details for the file pytrimal-0.6.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for pytrimal-0.6.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 6d26af6bb143eb8a3fa13f018237856c319ffe72b4e37ad193c5998f2565f199
MD5 5fc25cdf83c161c5a7e8049640ce3583
BLAKE2b-256 648a1f96971a5402b96406f8873bf36cfe40ac6a0dc0658ace7957ce28d46bb9

See more details on using hashes here.

File details

Details for the file pytrimal-0.6.0-cp38-cp38-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pytrimal-0.6.0-cp38-cp38-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 b0bd6725ac475f60f1a8bb8b1980e220f5035ee66f3b0a9a394104c429ca6ef7
MD5 5a202f2c56201f72b111aacc8fe30ab8
BLAKE2b-256 b8bd514ab3595373b6335f59ebac882623f9c73d73bc663c3587609bbae8a724

See more details on using hashes here.

File details

Details for the file pytrimal-0.6.0-cp38-cp38-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for pytrimal-0.6.0-cp38-cp38-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 3ac8e4b4a9db142937bdd54451b7be2a296bac25eb24b5f959c3289614d47073
MD5 99ca9ae37e3d4b486ae35de1b9e47560
BLAKE2b-256 4219e29b341091f500fb205a7a897b39f1a66ea3037f98fc5adaae112d6d25db

See more details on using hashes here.

File details

Details for the file pytrimal-0.6.0-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for pytrimal-0.6.0-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 8508c4715e7867f7dc08683c0621bdab1a084eb6b997112b59695c8d426fa6d8
MD5 fa0b63c7bbeccba9c47585e0c8d24011
BLAKE2b-256 36e8c05c45431eadf6da882c516522f2a49ccca46e3cbf4fe2526c67b361fa57

See more details on using hashes here.

File details

Details for the file pytrimal-0.6.0-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for pytrimal-0.6.0-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 c81fb78db24997f573f524c3d8e7aa988760150bd4e63bf12b4117e005f957e2
MD5 3858d78c5b5dfa3c12ac3dd62539f45b
BLAKE2b-256 2ba6a9571b0dc9e95d8dcdce37530298c8a8e0a6a3e7deb27928577281048987

See more details on using hashes here.

File details

Details for the file pytrimal-0.6.0-cp37-cp37m-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for pytrimal-0.6.0-cp37-cp37m-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 3627fbaf2730b09767d4e283dea96d91201f4649fba718634987f2a36a42ea68
MD5 b522258e1a361eeca3f42176b967514c
BLAKE2b-256 e85f32bb539584a9ad35d456aa1a392096666604248f61cb1c211f1caded2465

See more details on using hashes here.

File details

Details for the file pytrimal-0.6.0-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for pytrimal-0.6.0-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 4d65cb03fafd258d22127d14dbe9f9f17c7cc36e5eae9d6feb2341df852e2eb0
MD5 56d4b24fa6530191a055efc648f422e0
BLAKE2b-256 3e0557db57977a36ba9f1d374d7bf27ad8eeccb176f84a58721d48bfad1ea3b4

See more details on using hashes here.

File details

Details for the file pytrimal-0.6.0-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for pytrimal-0.6.0-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 68d776cfe525a1bdd769d4ea5e5c7090c4a3b347c583bf0feb31a60a5f08d4b3
MD5 40b9e9fda71ed41f9d2cf0df8ce1b03f
BLAKE2b-256 aec571926894efd286b9470dca22a5ef718a4b1a71e2f7096f3a8ef94b3790ed

See more details on using hashes here.

File details

Details for the file pytrimal-0.6.0-cp36-cp36m-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for pytrimal-0.6.0-cp36-cp36m-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 1c37d09e979ca4b2b9babb449d5e1d649bfbfcb8467f58d7b74bfd891fb3fb6b
MD5 6369f0ffa5680e122b149ed652596793
BLAKE2b-256 201d90eadc5ab7809218d638c007d7a48a66231d6a335988d3d5f5235566263e

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