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.8.0.tar.gz (739.6 kB view details)

Uploaded Source

Built Distributions

pytrimal-0.8.0-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (700.9 kB view details)

Uploaded PyPy manylinux: glibc 2.17+ x86-64

pytrimal-0.8.0-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (674.8 kB view details)

Uploaded PyPy manylinux: glibc 2.17+ ARM64

pytrimal-0.8.0-pp310-pypy310_pp73-macosx_10_9_x86_64.whl (620.5 kB view details)

Uploaded PyPy macOS 10.9+ x86-64

pytrimal-0.8.0-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (700.6 kB view details)

Uploaded PyPy manylinux: glibc 2.17+ x86-64

pytrimal-0.8.0-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (674.6 kB view details)

Uploaded PyPy manylinux: glibc 2.17+ ARM64

pytrimal-0.8.0-pp39-pypy39_pp73-macosx_10_9_x86_64.whl (620.2 kB view details)

Uploaded PyPy macOS 10.9+ x86-64

pytrimal-0.8.0-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (702.7 kB view details)

Uploaded PyPy manylinux: glibc 2.17+ x86-64

pytrimal-0.8.0-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (677.5 kB view details)

Uploaded PyPy manylinux: glibc 2.17+ ARM64

pytrimal-0.8.0-pp38-pypy38_pp73-macosx_10_9_x86_64.whl (622.2 kB view details)

Uploaded PyPy macOS 10.9+ x86-64

pytrimal-0.8.0-pp37-pypy37_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (706.8 kB view details)

Uploaded PyPy manylinux: glibc 2.17+ x86-64

pytrimal-0.8.0-pp37-pypy37_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (680.1 kB view details)

Uploaded PyPy manylinux: glibc 2.17+ ARM64

pytrimal-0.8.0-pp37-pypy37_pp73-macosx_10_9_x86_64.whl (622.2 kB view details)

Uploaded PyPy macOS 10.9+ x86-64

pytrimal-0.8.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (3.8 MB view details)

Uploaded CPython 3.12 manylinux: glibc 2.17+ x86-64

pytrimal-0.8.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (3.7 MB view details)

Uploaded CPython 3.12 manylinux: glibc 2.17+ ARM64

pytrimal-0.8.0-cp312-cp312-macosx_11_0_arm64.whl (647.3 kB view details)

Uploaded CPython 3.12 macOS 11.0+ ARM64

pytrimal-0.8.0-cp312-cp312-macosx_10_9_x86_64.whl (688.9 kB view details)

Uploaded CPython 3.12 macOS 10.9+ x86-64

pytrimal-0.8.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (3.8 MB view details)

Uploaded CPython 3.11 manylinux: glibc 2.17+ x86-64

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

Uploaded CPython 3.11 manylinux: glibc 2.17+ ARM64

pytrimal-0.8.0-cp311-cp311-macosx_11_0_arm64.whl (648.5 kB view details)

Uploaded CPython 3.11 macOS 11.0+ ARM64

pytrimal-0.8.0-cp311-cp311-macosx_10_9_x86_64.whl (690.0 kB view details)

Uploaded CPython 3.11 macOS 10.9+ x86-64

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

Uploaded CPython 3.10 manylinux: glibc 2.17+ x86-64

pytrimal-0.8.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (3.6 MB view details)

Uploaded CPython 3.10 manylinux: glibc 2.17+ ARM64

pytrimal-0.8.0-cp310-cp310-macosx_11_0_arm64.whl (649.0 kB view details)

Uploaded CPython 3.10 macOS 11.0+ ARM64

pytrimal-0.8.0-cp310-cp310-macosx_10_9_x86_64.whl (690.8 kB view details)

Uploaded CPython 3.10 macOS 10.9+ x86-64

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

Uploaded CPython 3.9 manylinux: glibc 2.17+ x86-64

pytrimal-0.8.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (3.6 MB view details)

Uploaded CPython 3.9 manylinux: glibc 2.17+ ARM64

pytrimal-0.8.0-cp39-cp39-macosx_11_0_arm64.whl (649.5 kB view details)

Uploaded CPython 3.9 macOS 11.0+ ARM64

pytrimal-0.8.0-cp39-cp39-macosx_10_9_x86_64.whl (691.5 kB view details)

Uploaded CPython 3.9 macOS 10.9+ x86-64

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

Uploaded CPython 3.8 manylinux: glibc 2.17+ x86-64

pytrimal-0.8.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (3.6 MB view details)

Uploaded CPython 3.8 manylinux: glibc 2.17+ ARM64

pytrimal-0.8.0-cp38-cp38-macosx_11_0_arm64.whl (649.6 kB view details)

Uploaded CPython 3.8 macOS 11.0+ ARM64

pytrimal-0.8.0-cp38-cp38-macosx_10_9_x86_64.whl (690.6 kB view details)

Uploaded CPython 3.8 macOS 10.9+ x86-64

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

Uploaded CPython 3.7m manylinux: glibc 2.17+ x86-64

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

Uploaded CPython 3.7m manylinux: glibc 2.17+ ARM64

pytrimal-0.8.0-cp37-cp37m-macosx_10_9_x86_64.whl (689.1 kB view details)

Uploaded CPython 3.7m macOS 10.9+ x86-64

pytrimal-0.8.0-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (3.7 MB view details)

Uploaded CPython 3.6m manylinux: glibc 2.17+ x86-64

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

Uploaded CPython 3.6m manylinux: glibc 2.17+ ARM64

pytrimal-0.8.0-cp36-cp36m-macosx_10_9_x86_64.whl (687.1 kB view details)

Uploaded CPython 3.6m macOS 10.9+ x86-64

File details

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

File metadata

  • Download URL: pytrimal-0.8.0.tar.gz
  • Upload date:
  • Size: 739.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/5.1.0 CPython/3.12.5

File hashes

Hashes for pytrimal-0.8.0.tar.gz
Algorithm Hash digest
SHA256 2331e67a74f3144d82373b6a79f42198f6632bd1b5025ab01cdd3eb527ef88cf
MD5 3c877ad3841a4bf8ee93c027c44c38fe
BLAKE2b-256 6d4303610c9d80da55531f99e30cde2113eeb9da9d8a3967afcdceb1fda6bd54

See more details on using hashes here.

File details

Details for the file pytrimal-0.8.0-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for pytrimal-0.8.0-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 2c8faa9a5572712fbfb988c37ac06257263cc82dd8c6df3c55def4b747ea0e31
MD5 74d382f54fcc5e9e0f3785e7abdb577c
BLAKE2b-256 5a08883ff55c128ec76a98f616c696f79fa39920bea4f3ae1d798fc643624aaf

See more details on using hashes here.

File details

Details for the file pytrimal-0.8.0-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for pytrimal-0.8.0-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 4a670eeabc930812a9290e891f53d408664875814edbb9f7469467860e031e62
MD5 01592be3c96e1df32a40d55ae1edd97b
BLAKE2b-256 8cfc4515f2e4481caaba3db4711036c21f28de54dbffe2517dca26de7c915bba

See more details on using hashes here.

File details

Details for the file pytrimal-0.8.0-pp310-pypy310_pp73-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for pytrimal-0.8.0-pp310-pypy310_pp73-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 6a0b073a72a7f87ba72ca14ab24ecc38de98578db4e27df3615aed471ce78232
MD5 18ec98249e2a7b2a40644d02b1114d30
BLAKE2b-256 b6c8b2fd3e5e0bedef460c396b46b52b86b0f91a9a30ee402ec3cd2d9a134891

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pytrimal-0.8.0-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 ae5ba21ef8f5bd2a0af4d30738eec65cd25c5cf80ffe3e7a66161be92b13bfc2
MD5 fad725fdf595255270bbc13638562675
BLAKE2b-256 5019af1e0c55e5e3ddcef161dce3d4eb1a027e8f6fcc3ea7d83fe8a2203140c6

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pytrimal-0.8.0-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 0b385115fa3dca7a9b20e259c1b0d3738c2f2806e87155f504f083b1ca907b2f
MD5 dd1eb21aa146e7aa1210d5e7ff91205e
BLAKE2b-256 de2432b0f06db7a84a6087dd15215b584b1dda5023578b9a3a5ab12003e37b43

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pytrimal-0.8.0-pp39-pypy39_pp73-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 5de6c2355d25cf089278ce6b9cae11e061ca80721c2e568b682623a8ed556680
MD5 f39bd4fa052dc5ad0a5acf7c3ef4ff8f
BLAKE2b-256 c28db34840bb910e5fc57d6c69417e4563fd41c2a573d446507dabbbe06a3fd0

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pytrimal-0.8.0-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 fa5c9190a9a674e13cd1403014c198a42d32eb1ebb5a7c845829d953099a3987
MD5 a956dd1003c18bff1db8e133da990436
BLAKE2b-256 1a0ad4f79134c43471b164dfaf79cd1f76c72d11e32094f5d67e2be69c4f7eab

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pytrimal-0.8.0-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 37cc2c6c1a3711ad6891c5a423264d8ac6b522f01e54929bfca81fb16740e000
MD5 7b1362baac30bcb31d933dc982baf08b
BLAKE2b-256 d1f2dcab644e6b5b50f633cc4550a7deac8939f5efefd90e09e58d0cb43cb858

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pytrimal-0.8.0-pp38-pypy38_pp73-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 d570b46dff05b7205753594e0ffe2eec0c3f96333edb0054cf5c48a7596cbca4
MD5 c282b7f952b8a6a38814f0960d18f8ec
BLAKE2b-256 3214cfc60d89abc5b19f3ef37e0e6e867fc7542546bdd4dcf4855a3e89d8b278

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pytrimal-0.8.0-pp37-pypy37_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 0643c1593639f1ce8c95fb1ffce63e8427418c6208792aa958ad145bec4f886b
MD5 c7b188153ab5890f349955fd74d3c60a
BLAKE2b-256 4660669522573dace3d3dc4b276f3834c1abf7846b776e5886e6961416ed067b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pytrimal-0.8.0-pp37-pypy37_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 fa5e95afd1889a362ea8aa90fdb02068da5512472395fd0365c1ce2f37d09b10
MD5 271fe5e9d3f3699a02ad49b3d0e853c4
BLAKE2b-256 364747f2e8e7f6309aafc7b9352d9df42cdcf15dc9014d56a426e8b7141e94b2

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pytrimal-0.8.0-pp37-pypy37_pp73-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 6e2057cf974f13f9d1ad91e4f6daa5e1e306966d18cf3c403a7c4b32f2c2c8c6
MD5 7b3461ba73c6fad1d8623512cbd6b10c
BLAKE2b-256 2803f09d81ca9b7b2129b478da199ed6cf928ab8b4bbf20ba91cb24fe2a45ebe

See more details on using hashes here.

File details

Details for the file pytrimal-0.8.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for pytrimal-0.8.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 3a40d2172cd111e01e6639d2db9ba79aaf2e2069fd71e9c76a256b2c6ea8f63f
MD5 138e7c70f1d53ad9ad884555cb753de9
BLAKE2b-256 efff2d009901d38582338d8e5b0d08f5b62c6af0708b87a5a813b3a3fd35d782

See more details on using hashes here.

File details

Details for the file pytrimal-0.8.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for pytrimal-0.8.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 5119e81a2747564b46542df7aedf02675efbe018af7cf8703164c17f08b96a31
MD5 286c0867748d9ff4d9351a58698599fd
BLAKE2b-256 18e6381a58f1d0523d2f487fe1c44e3002765c787fcd751d29a3cc627eae65ad

See more details on using hashes here.

File details

Details for the file pytrimal-0.8.0-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pytrimal-0.8.0-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 f58a8241f36a4243d2e7f2eaccd9bc8b0385eecbba0fd92add0b90dc96a682a3
MD5 5cef91a9c101ae7ccba25c219e62c200
BLAKE2b-256 f26752ea67034f98e21a5bfa04c0da74fc2fe822efb66b0ead612204ab0f402c

See more details on using hashes here.

File details

Details for the file pytrimal-0.8.0-cp312-cp312-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for pytrimal-0.8.0-cp312-cp312-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 c11c9702fc839ce1470e31ce4125304513d2231dfebd47564b7a93c45b38f4dc
MD5 b5f2874c877d7f3c825aaca39a65a2fb
BLAKE2b-256 5bf5a8472b90ce8a428bf302788725097823e0bc2fa392e5d927ccc84c0e17c9

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pytrimal-0.8.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 5b48a2acd40b7e50070c2e8ec9f5937db6987200850bfbfe6820f26380589944
MD5 014a124570c4d7899531208318bb5a39
BLAKE2b-256 7188ba4bb31508e4ffba4837b628a9243150df76716312543b58118181cab070

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pytrimal-0.8.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 87a2502f8109da4652e77e7069862641dd8bea2281d1142ba2640e0726a67d6e
MD5 358e6594c299ec1bd655c3fc0513b430
BLAKE2b-256 1e26f38bd31149cd98b37e059f702430aa8776f4e80da442d42828c56bbaf224

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pytrimal-0.8.0-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 d96c52b4b06649ae2b967a2192b5d6bce71e38fa6daba76fd85aaa23150517d6
MD5 f0870ecb7d68f442a525c6b225c50904
BLAKE2b-256 f04bb1265f957c5eb29d334c2b8769e77a27949a6deb3dab3cca7a6d663374d6

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pytrimal-0.8.0-cp311-cp311-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 d00dfdfa359c1fbb28839c9c0b40f0fc34da9ed0a15984947bc8fdfca9b36753
MD5 a64ee31d0e9b49a05818157acfc9a8eb
BLAKE2b-256 4a6e8b838a151e343b51388ae096f88d6c94f50e500943e7c56e86e5921b6f52

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pytrimal-0.8.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 f1c667b323e244e14e6ffc3eabf7662f4aac2de52bdecb4ddd76b54ee9fe37b1
MD5 119f0d741dc5b276f05d24e2f7624f66
BLAKE2b-256 af8c454ea5ddcc2b68e0ea542835351fb7d234ffa9500a224a0124a615f409da

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pytrimal-0.8.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 91e0d846d6abbf222f352cb3dcb2cbeed80d307be715d8a2b4a7b7e0aed66cc2
MD5 f674dc406fce8e64400f6ebc38b69c9a
BLAKE2b-256 e346253679914b65849c58ee0f68ca4cadcc9d73dec622431702e9daa99859f7

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pytrimal-0.8.0-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 449eaca03cea469af817e8f018251b397ac1ab147169d8fa4f45eb23726cbfd2
MD5 721d70b854f58a90e05e6d6a0b89ec32
BLAKE2b-256 f33fab3636f7c57da86669567c449ccc0d87fec01adb67f8bc53e2fa0617e993

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pytrimal-0.8.0-cp310-cp310-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 6763e2f1cc1e65dfbd0f5a22afd6e36d71042dd9543340550e10897e95810e53
MD5 cf44209afcdf1566b23aadf23d8ba672
BLAKE2b-256 614815920fa6770b3e7910185e102f2c9bd6445bf89a293097f619e5fa51ecbf

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pytrimal-0.8.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 ac466986243564895ca0761d5ce7a060fa34b11291bc8cc49c08bde22546189b
MD5 434d79cb4420c3066363f4440d138877
BLAKE2b-256 522d1832de102ba08aa29ca6c01aff0cb0b4d787f44aaf3ff5456184b58731e1

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pytrimal-0.8.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 e512e334be6d95bba6837552bbaacde78cfd34e2ef6a81da73b0c3640d7c6ab3
MD5 4ba3edc34303b95103a55c0ef5196cce
BLAKE2b-256 1606a87a3f9fb405592d374834e14c736225a4a24b433ba5f254ec2d9a972494

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pytrimal-0.8.0-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 180035766f197d209b9e6ea7bf9b4ffc8aed447b30699525355cd9cc33a5cec4
MD5 99d704504e2d34cb42e27527a3653a6d
BLAKE2b-256 54b26a448d00e48b1e89ee21e6157cd8fc515076e8a05fd4bccc1e84a3bd1b96

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pytrimal-0.8.0-cp39-cp39-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 1dd759b5f4e476e2fc4f0c246a6b609b2e52b3ff67a3183dbc4bb3ae642af04f
MD5 a78403edd3b4fb7720e3b62031b746e2
BLAKE2b-256 9764ff9ebde7301808437103cdea7c56c9bb53a28ad04de694d76abdb6bc3407

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pytrimal-0.8.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 45b449cdf20a6fef48752abdefa1fffb4ce53fbe7a2283937264336b4718c66e
MD5 11f1784f3c82c7d759aaab7ac398cc17
BLAKE2b-256 093d3b3eb2cd09ee97e5ef9fd29e5a414e3961a6e9b568e9785f4f61d0fcb660

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pytrimal-0.8.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 5bbdd6d39c9b0d0ae652097f08255e89238dcd733969af7d475f1e76594c31dd
MD5 cdf84dd04275ef0afbe4f9a52b79560c
BLAKE2b-256 962dc2bd6066fa72444911c70b1d7a6c213a9029bf3e43d117efba0069b0d4c4

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pytrimal-0.8.0-cp38-cp38-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 2e801533408a1d8db1ea94efb5c607de3207a610a315283fe340549283d3f161
MD5 72a1b0f7669b29958f07f28e8a652597
BLAKE2b-256 a16f83e3bb5a09e3ab874684c3d6d7751151aee47793a65d8d353cdc5873129e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pytrimal-0.8.0-cp38-cp38-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 d4183584aa33751536cd6ef1afed70e2d3d9ac12cea3d84d5bb7a2519ba41ad6
MD5 f7ba06d1dc461dd5ed44d075fd2ff13e
BLAKE2b-256 346bb76e79a42d9ef8d63e6b6fe2156b8214d3860231f9706c7ea94e4fb74368

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pytrimal-0.8.0-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 5aaab829b7f3bea31438d8b0625ece088eb95095c27a467a540630c2e3823626
MD5 122736f94ace9bf76785d58f44b924e7
BLAKE2b-256 038ad82241da563d3e09188286776a19946ca57fff19923feb858ffa1d6f4caa

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pytrimal-0.8.0-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 713e7d01ef1a3667f5644b1835b52518dd92421d0f6b035812910457e0e37e23
MD5 af7e97226ea0b8ff0f3aa74a518a6d79
BLAKE2b-256 4c0402ebc8cdf300e8f25b32fa7a04a59a99e467bc88865a096965e74ece605c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pytrimal-0.8.0-cp37-cp37m-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 a0b61597a424495dd9fa78eedf0beeb80b254d72c6b9a51f7efb28e29a0be0ad
MD5 15935cd79cb1d4b84d45ccf1fd8aced3
BLAKE2b-256 31f828bb058f9936114671e509af3848f8cdefbde6710341f337b402391b1c7f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pytrimal-0.8.0-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 87a202d727e1642a76224f04f0c9ba71264c8371ca68ac3fdb175e8d08c56729
MD5 2060a9b79e5aff56587db4b116e5db01
BLAKE2b-256 b4d05bedaef479a74e21240ce532f1f2989f4dd27a677878983d3d60f9829ff8

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pytrimal-0.8.0-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 c127aa8ed111c5e5287ce2764bec39772579c65a850647980f9bd2e996cb02c4
MD5 5746b448a2ebcd4d7dcf67f6774cf897
BLAKE2b-256 30f7c17b6543046ce18f78485ad685f25f84980c0ba987735c5ac179cb311dc5

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pytrimal-0.8.0-cp36-cp36m-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 6926f2880c9be5ac7e9ee2d71df3f0d79f5f4194ccd9a01d28f73ab3cde067a4
MD5 b4747f01873c72eee6a2ea8b72867363
BLAKE2b-256 de3cab9bc42f829e85965218f81aee5515bd1032969508fc8ea3b17855829dcb

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