pytrimal


Namepytrimal JSON
Version 0.7.0 PyPI version JSON
download
home_pagehttps://github.com/althonos/pytrimal
SummaryCython bindings and Python interface to trimAl, a tool for automated alignment trimming.
upload_time2023-07-21 19:17:59
maintainer
docs_urlNone
authorMartin Larralde
requires_python>=3.5
licenseGPLv3
keywords bioinformatics sequence alignment trimming genomics
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # πŸβœ‚οΈ PytrimAl [![Stars](https://img.shields.io/github/stars/althonos/pytrimal.svg?style=social&maxAge=3600&label=Star)](https://github.com/althonos/pytrimal/stargazers)

*[Cython](https://cython.org/) bindings and Python interface to [trimAl](http://trimal.cgenomics.org/), a tool for automated alignment trimming. **Now with SIMD!***

[![Actions](https://img.shields.io/github/actions/workflow/status/althonos/pytrimal/test.yml?branch=main&logo=github&style=flat-square&maxAge=300)](https://github.com/althonos/pytrimal/actions)
[![Coverage](https://img.shields.io/codecov/c/gh/althonos/pytrimal?style=flat-square&maxAge=3600&logo=codecov)](https://codecov.io/gh/althonos/pytrimal/)
[![License](https://img.shields.io/badge/license-GPLv3-blue.svg?style=flat-square&maxAge=2678400)](https://choosealicense.com/licenses/gpl-3.0/)
[![PyPI](https://img.shields.io/pypi/v/pytrimal.svg?style=flat-square&maxAge=3600&logo=PyPI)](https://pypi.org/project/pytrimal)
[![Bioconda](https://img.shields.io/conda/vn/bioconda/pytrimal?style=flat-square&maxAge=3600&logo=anaconda)](https://anaconda.org/bioconda/pytrimal)
[![AUR](https://img.shields.io/aur/version/python-pytrimal?logo=archlinux&style=flat-square&maxAge=3600)](https://aur.archlinux.org/packages/python-pytrimal)
[![Wheel](https://img.shields.io/pypi/wheel/pytrimal.svg?style=flat-square&maxAge=3600)](https://pypi.org/project/pytrimal/#files)
[![Python Versions](https://img.shields.io/pypi/pyversions/pytrimal.svg?style=flat-square&maxAge=600&logo=python)](https://pypi.org/project/pytrimal/#files)
[![Python Implementations](https://img.shields.io/pypi/implementation/pytrimal.svg?style=flat-square&maxAge=600&label=impl)](https://pypi.org/project/pytrimal/#files)
[![Source](https://img.shields.io/badge/source-GitHub-303030.svg?maxAge=2678400&style=flat-square)](https://github.com/althonos/pytrimal/)
[![Mirror](https://img.shields.io/badge/mirror-EMBL-009f4d?style=flat-square&maxAge=2678400)](https://git.embl.de/larralde/pytrimal/)
[![Issues](https://img.shields.io/github/issues/althonos/pytrimal.svg?style=flat-square&maxAge=600)](https://github.com/althonos/pytrimal/issues)
[![Docs](https://img.shields.io/readthedocs/pytrimal/latest?style=flat-square&maxAge=600)](https://pytrimal.readthedocs.io)
[![Changelog](https://img.shields.io/badge/keep%20a-changelog-8A0707.svg?maxAge=2678400&style=flat-square)](https://github.com/althonos/pytrimal/blob/main/CHANGELOG.md)
[![Downloads](https://img.shields.io/pypi/dm/pytrimal?style=flat-square&color=303f9f&maxAge=86400&label=downloads)](https://pepy.tech/project/pytrimal)

***⚠️ 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](http://trimal.cgenomics.org/)
using [Cython](https://cython.org/). 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`](https://pytrimal.readthedocs.io/en/latest/api/alignment.html#pytrimal.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:

- [x] **automatic trimming**: Support for trimming alignments using one of the
  automatic heuristics implemented in trimAl.
- [x] **manual trimming**: Support for trimming alignments using manually
  defined conservation and gap thresholds for each residue position.
- [x] **overlap trimming**: Trimming sequences using residue and sequence
  overlaps to exclude regions with minimal conservation.
- [x] **representative trimming**: Select only representative sequences
  from the alignment, either using a fixed number, or a maximum identity
  threshold.
- [x] **alignment loading from disk**: Load an alignment from disk given
  a filename.
- [x] **alignment loading from a file-like object**: Load an alignment from
  a Python [file object](https://docs.python.org/3/glossary.html#term-file-object)
  instead of a file on the local filesystem.
- [x] **aligment creation from Python**: Create an alignment from a collection
  of sequences stored in Python strings.
- [x] **alignment formatting to disk**: Write an alignment to a file given
  a filename in one of the supported file formats.
- [x] **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.
- [x] **alternative similarity matrix**: Specify an alternative similarity
  matrix for the alignment (instead of BLOSUM62).
- [x] **similarity matrix creation**: Create a similarity matrix from scratch
  from Python code.
- [x] **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](https://pypi.org/project/pytrimal/),
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:
```console
$ pip install pytrimal
```

Otherwise, pytrimal is also available as a [Bioconda](https://bioconda.github.io/)
package:
```console
$ 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:
```python
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`](https://pytrimal.readthedocs.io/en/latest/api/alignment.html#pytrimal.Alignment.dump)
method to write the trimmed alignment to a file or file-like
object. For instance, save the results in
[PIR format](https://www.bioinformatics.nl/tools/crab_pir.html)
to a file named `example.trimmed.pir`:
```python
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`](https://docs.python.org/3/library/multiprocessing.html#multiprocessing.pool.ThreadPool)
with a single trimmer object:
```python
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](https://ark.intel.com/content/www/us/en/ark/products/196448/intel-core-i710710u-processor-12m-cache-up-to-4-70-ghz.html)
@ 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`](https://github.com/inab/trimal/blob/trimAl/dataset/example.014.AA.EggNOG.COG0591.fasta),
an alignment of 3583 sequences and 7287 columns.

![Benchmarks](https://raw.githubusercontent.com/althonos/pytrimal/main/bench/v0.5.4.svg)

Each graph measures the computation time of a single trimAl statistic
(see the [Statistics page](https://pytrimal.readthedocs.io/en/stable/statistics.html)
of the [online documentation](https://pytrimal.readthedocs.io/) 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](https://en.wikipedia.org/wiki/Single_instruction,_multiple_data)
implementations of the statistic computation.

## πŸ’­ Feedback

### ⚠️ Issue Tracker

Found a bug ? Have an enhancement request ? Head over to the [GitHub issue tracker](https://github.com/althonos/pytrimal/issues)
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`](https://github.com/althonos/pytrimal/blob/main/CONTRIBUTING.md)
for more details.


## πŸ“‹ Changelog

This project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.html)
and provides a [changelog](https://github.com/althonos/pytrimal/blob/main/CHANGELOG.md)
in the [Keep a Changelog](http://keepachangelog.com/en/1.0.0/) format.


## βš–οΈ License

This library is provided under the [GNU General Public License v3.0](https://choosealicense.com/licenses/gpl-3.0/).
trimAl is developed by the [trimAl team](http://trimal.cgenomics.org/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](http://trimal.cgenomics.org/trimal_team). It was developed
by [Martin Larralde](https://github.com/althonos/) during his PhD project
at the [European Molecular Biology Laboratory](https://www.embl.de/) in
the [Zeller team](https://github.com/zellerlab).*

            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/althonos/pytrimal",
    "name": "pytrimal",
    "maintainer": "",
    "docs_url": null,
    "requires_python": ">=3.5",
    "maintainer_email": "",
    "keywords": "bioinformatics,sequence,alignment,trimming,genomics",
    "author": "Martin Larralde",
    "author_email": "martin.larralde@embl.de",
    "download_url": "https://files.pythonhosted.org/packages/27/d4/b5f132426e1f6a3269f76527be6d7fff58ffe57df014720de60503f0aa27/pytrimal-0.7.0.tar.gz",
    "platform": "any",
    "description": "# \ud83d\udc0d\u2702\ufe0f PytrimAl [![Stars](https://img.shields.io/github/stars/althonos/pytrimal.svg?style=social&maxAge=3600&label=Star)](https://github.com/althonos/pytrimal/stargazers)\n\n*[Cython](https://cython.org/) bindings and Python interface to [trimAl](http://trimal.cgenomics.org/), a tool for automated alignment trimming. **Now with SIMD!***\n\n[![Actions](https://img.shields.io/github/actions/workflow/status/althonos/pytrimal/test.yml?branch=main&logo=github&style=flat-square&maxAge=300)](https://github.com/althonos/pytrimal/actions)\n[![Coverage](https://img.shields.io/codecov/c/gh/althonos/pytrimal?style=flat-square&maxAge=3600&logo=codecov)](https://codecov.io/gh/althonos/pytrimal/)\n[![License](https://img.shields.io/badge/license-GPLv3-blue.svg?style=flat-square&maxAge=2678400)](https://choosealicense.com/licenses/gpl-3.0/)\n[![PyPI](https://img.shields.io/pypi/v/pytrimal.svg?style=flat-square&maxAge=3600&logo=PyPI)](https://pypi.org/project/pytrimal)\n[![Bioconda](https://img.shields.io/conda/vn/bioconda/pytrimal?style=flat-square&maxAge=3600&logo=anaconda)](https://anaconda.org/bioconda/pytrimal)\n[![AUR](https://img.shields.io/aur/version/python-pytrimal?logo=archlinux&style=flat-square&maxAge=3600)](https://aur.archlinux.org/packages/python-pytrimal)\n[![Wheel](https://img.shields.io/pypi/wheel/pytrimal.svg?style=flat-square&maxAge=3600)](https://pypi.org/project/pytrimal/#files)\n[![Python Versions](https://img.shields.io/pypi/pyversions/pytrimal.svg?style=flat-square&maxAge=600&logo=python)](https://pypi.org/project/pytrimal/#files)\n[![Python Implementations](https://img.shields.io/pypi/implementation/pytrimal.svg?style=flat-square&maxAge=600&label=impl)](https://pypi.org/project/pytrimal/#files)\n[![Source](https://img.shields.io/badge/source-GitHub-303030.svg?maxAge=2678400&style=flat-square)](https://github.com/althonos/pytrimal/)\n[![Mirror](https://img.shields.io/badge/mirror-EMBL-009f4d?style=flat-square&maxAge=2678400)](https://git.embl.de/larralde/pytrimal/)\n[![Issues](https://img.shields.io/github/issues/althonos/pytrimal.svg?style=flat-square&maxAge=600)](https://github.com/althonos/pytrimal/issues)\n[![Docs](https://img.shields.io/readthedocs/pytrimal/latest?style=flat-square&maxAge=600)](https://pytrimal.readthedocs.io)\n[![Changelog](https://img.shields.io/badge/keep%20a-changelog-8A0707.svg?maxAge=2678400&style=flat-square)](https://github.com/althonos/pytrimal/blob/main/CHANGELOG.md)\n[![Downloads](https://img.shields.io/pypi/dm/pytrimal?style=flat-square&color=303f9f&maxAge=86400&label=downloads)](https://pepy.tech/project/pytrimal)\n\n***\u26a0\ufe0f This package is based on the release candidate of trimAl 2.0, and results\nmay not be consistent across versions or with the trimAl 1.4 results.***\n\n## \ud83d\uddfa\ufe0f Overview\n\nPytrimAl is a Python module that provides bindings to [trimAl](http://trimal.cgenomics.org/)\nusing [Cython](https://cython.org/). It implements a user-friendly, Pythonic\ninterface to use one of the different trimming methods from trimAl and\naccess results directly. It interacts with the trimAl internals, which has\nthe following advantages:\n\n- **single dependency**: PytrimAl is distributed as a Python package, so you\n  can add it as a dependency to your project, and stop worrying about the\n  trimAl binary being present on the end-user machine.\n- **no intermediate files**: Everything happens in memory, in a Python object\n  you control, so you don't have to invoke the trimAl CLI using a\n  sub-process and temporary files.\n  [`Alignment`](https://pytrimal.readthedocs.io/en/latest/api/alignment.html#pytrimal.Alignment)\n  objects can be created directly from Python code.\n- **friendly interface**: The different trimming methods are implement as\n  Python classes that can be configured independently.\n- **error management**: Errors occuring in trimAl are converted\n  transparently into Python exceptions, including an informative\n  error message.\n- **better performance**: PytrimAl uses *SIMD* instructions to compute\n  statistics like pairwise sequence similarity. This makes the whole\n  trimming process much faster for alignment with a large number of\n  sequences, at the expense of slightly higher memory consumption.\n\n## \ud83d\udccb Roadmap\n\nThe following features are available or considered for implementation:\n\n- [x] **automatic trimming**: Support for trimming alignments using one of the\n  automatic heuristics implemented in trimAl.\n- [x] **manual trimming**: Support for trimming alignments using manually\n  defined conservation and gap thresholds for each residue position.\n- [x] **overlap trimming**: Trimming sequences using residue and sequence\n  overlaps to exclude regions with minimal conservation.\n- [x] **representative trimming**: Select only representative sequences\n  from the alignment, either using a fixed number, or a maximum identity\n  threshold.\n- [x] **alignment loading from disk**: Load an alignment from disk given\n  a filename.\n- [x] **alignment loading from a file-like object**: Load an alignment from\n  a Python [file object](https://docs.python.org/3/glossary.html#term-file-object)\n  instead of a file on the local filesystem.\n- [x] **aligment creation from Python**: Create an alignment from a collection\n  of sequences stored in Python strings.\n- [x] **alignment formatting to disk**: Write an alignment to a file given\n  a filename in one of the supported file formats.\n- [x] **alignment formatting to a file-like object**: Write an alignment to\n  a file-like object in one of the supported file formats.\n- [ ] **reverse-translation**: Back-translate a protein alignment to align\n  the sequences in genomic space.\n- [x] **alternative similarity matrix**: Specify an alternative similarity\n  matrix for the alignment (instead of BLOSUM62).\n- [x] **similarity matrix creation**: Create a similarity matrix from scratch\n  from Python code.\n- [x] **windows for manual methods**: Use a sliding window for computing\n  statistics in manual methods.\n\n## \ud83d\udd27 Installing\n\nPytrimAl is available for all modern versions (3.6+), with no external dependencies.\n\nIt can be installed directly from [PyPI](https://pypi.org/project/pytrimal/),\nwhich hosts some pre-built wheels for the x86-64 architecture (Linux/OSX)\nand the Aarch64 architecture (Linux only), as well as the code required to compile\nfrom source with Cython:\n```console\n$ pip install pytrimal\n```\n\nOtherwise, pytrimal is also available as a [Bioconda](https://bioconda.github.io/)\npackage:\n```console\n$ conda install -c bioconda pytrimal\n```\n\n## \ud83d\udca1 Example\n\nLet's load an `Alignment` from a file on the disk, and use the *strictplus*\nmethod to trim it, before printing the `TrimmedAlignment` as a Clustal block:\n```python\nfrom pytrimal import Alignment, AutomaticTrimmer\n\nali = Alignment.load(\"pytrimal/tests/data/example.001.AA.clw\")\ntrimmer = AutomaticTrimmer(method=\"strictplus\")\n\ntrimmed = trimmer.trim(ali)\nfor name, seq in zip(trimmed.names, trimmed.sequences):\n    print(name.decode().rjust(6), seq)\n```\n\nThis should output the following:\n```\nSp8    GIVLVWLFPWNGLQIHMMGII\nSp10   VIMLEWFFAWLGLEINMMVII\nSp26   GLFLAAANAWLGLEINMMAQI\nSp6    GIYLSWYLAWLGLEINMMAII\nSp17   GFLLTWFQLWQGLDLNKMPVF\nSp33   GLHMAWFQAWGGLEINKQAIL\n```\n\nYou can then use the\n[`dump`](https://pytrimal.readthedocs.io/en/latest/api/alignment.html#pytrimal.Alignment.dump)\nmethod to write the trimmed alignment to a file or file-like\nobject. For instance, save the results in\n[PIR format](https://www.bioinformatics.nl/tools/crab_pir.html)\nto a file named `example.trimmed.pir`:\n```python\ntrimmed.dump(\"example.trimmed.pir\", format=\"pir\")\n```\n\n## \ud83e\uddf6 Thread-safety\n\nTrimmer objects are thread-safe, and the `trim` method is re-entrant.\nThis means you can batch-process alignments in parallel using a\n[`ThreadPool`](https://docs.python.org/3/library/multiprocessing.html#multiprocessing.pool.ThreadPool)\nwith a single trimmer object:\n```python\nimport glob\nimport multiprocessing.pool\nfrom pytrimal import Alignment, AutomaticTrimmer\n\ntrimmer = AutomaticTrimmer()\nalignments = map(Alignment.load, glob.iglob(\"pytrimal/tests/data/*.fasta\"))\n\nwith multiprocessing.pool.ThreadPool() as pool:\n    trimmed_alignments = pool.map(trimmer.trim, alignments)\n```\n\n## \u23f1\ufe0f Benchmarks\n\nBenchmarks were run on a [i7-10710U CPU](https://ark.intel.com/content/www/us/en/ark/products/196448/intel-core-i710710u-processor-12m-cache-up-to-4-70-ghz.html)\n@ 1.10GHz, using a single core to time the computation of several statistics,\non a variable number of sequences from\n[`example.014.AA.EggNOG.COG0591.fasta`](https://github.com/inab/trimal/blob/trimAl/dataset/example.014.AA.EggNOG.COG0591.fasta),\nan alignment of 3583 sequences and 7287 columns.\n\n![Benchmarks](https://raw.githubusercontent.com/althonos/pytrimal/main/bench/v0.5.4.svg)\n\nEach graph measures the computation time of a single trimAl statistic\n(see the [Statistics page](https://pytrimal.readthedocs.io/en/stable/statistics.html)\nof the [online documentation](https://pytrimal.readthedocs.io/) for more\ninformation.)\n\nThe `None` curve shows the time using the internal trimAl 2.0 code,\nthe `Generic` curve shows a generic C implementation with some more\noptimizations, and the `SSE` curve shows the time spent using a dedicated\nclass with [SIMD](https://en.wikipedia.org/wiki/Single_instruction,_multiple_data)\nimplementations of the statistic computation.\n\n## \ud83d\udcad Feedback\n\n### \u26a0\ufe0f Issue Tracker\n\nFound a bug ? Have an enhancement request ? Head over to the [GitHub issue tracker](https://github.com/althonos/pytrimal/issues)\nif you need to report or ask something. If you are filing in on a bug,\nplease include as much information as you can about the issue, and try to\nrecreate the same bug in a simple, easily reproducible situation.\n\n\n### \ud83c\udfd7\ufe0f Contributing\n\nContributions are more than welcome! See\n[`CONTRIBUTING.md`](https://github.com/althonos/pytrimal/blob/main/CONTRIBUTING.md)\nfor more details.\n\n\n## \ud83d\udccb Changelog\n\nThis project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.html)\nand provides a [changelog](https://github.com/althonos/pytrimal/blob/main/CHANGELOG.md)\nin the [Keep a Changelog](http://keepachangelog.com/en/1.0.0/) format.\n\n\n## \u2696\ufe0f License\n\nThis library is provided under the [GNU General Public License v3.0](https://choosealicense.com/licenses/gpl-3.0/).\ntrimAl is developed by the [trimAl team](http://trimal.cgenomics.org/trimal_team) and is distributed under the\nterms of the GPLv3 as well. See `vendor/trimal/LICENSE` for more information.\n\n*This project is in no way not affiliated, sponsored, or otherwise endorsed\nby the [trimAl authors](http://trimal.cgenomics.org/trimal_team). It was developed\nby [Martin Larralde](https://github.com/althonos/) during his PhD project\nat the [European Molecular Biology Laboratory](https://www.embl.de/) in\nthe [Zeller team](https://github.com/zellerlab).*\n",
    "bugtrack_url": null,
    "license": "GPLv3",
    "summary": "Cython bindings and Python interface to trimAl, a tool for automated alignment trimming.",
    "version": "0.7.0",
    "project_urls": {
        "Bug Tracker": "https://github.com/althonos/pytrimal/issues",
        "Builds": "https://github.com/althonos/pytrimal/actions",
        "Changelog": "https://github.com/althonos/pytrimal/blob/main/CHANGELOG.md",
        "Coverage": "https://codecov.io/gh/althonos/pytrimal/",
        "Documentation": "https://pytrimal.readthedocs.io/en/stable/",
        "Homepage": "https://github.com/althonos/pytrimal",
        "PyPI": "https://pypi.org/project/pytrimal"
    },
    "split_keywords": [
        "bioinformatics",
        "sequence",
        "alignment",
        "trimming",
        "genomics"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "fc7b493293917ae3e2244573c35b7f119f4f1ffa97c942cee588b4139e34db55",
                "md5": "b30f282a578152348efb9b34cb5b9a69",
                "sha256": "006a8b7856408df77be88fc07ebd05c02f1125a6bc3b910b699bd3451c3513ca"
            },
            "downloads": -1,
            "filename": "pytrimal-0.7.0-cp310-cp310-macosx_10_9_x86_64.whl",
            "has_sig": false,
            "md5_digest": "b30f282a578152348efb9b34cb5b9a69",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": ">=3.5",
            "size": 709002,
            "upload_time": "2023-07-21T19:17:00",
            "upload_time_iso_8601": "2023-07-21T19:17:00.339076Z",
            "url": "https://files.pythonhosted.org/packages/fc/7b/493293917ae3e2244573c35b7f119f4f1ffa97c942cee588b4139e34db55/pytrimal-0.7.0-cp310-cp310-macosx_10_9_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "ac9d5c36c0c7031d84aaf71064abe25d3f4db948900714ae11f2ac22ad45df3a",
                "md5": "2f9d2f36c79e1834db3ad5803c2fd664",
                "sha256": "a32efbb457800d7b4afb6c47d91b23ce48b7c5e31d9120156925b7175aabef09"
            },
            "downloads": -1,
            "filename": "pytrimal-0.7.0-cp310-cp310-macosx_11_0_arm64.whl",
            "has_sig": false,
            "md5_digest": "2f9d2f36c79e1834db3ad5803c2fd664",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": ">=3.5",
            "size": 667483,
            "upload_time": "2023-07-21T19:17:03",
            "upload_time_iso_8601": "2023-07-21T19:17:03.210628Z",
            "url": "https://files.pythonhosted.org/packages/ac/9d/5c36c0c7031d84aaf71064abe25d3f4db948900714ae11f2ac22ad45df3a/pytrimal-0.7.0-cp310-cp310-macosx_11_0_arm64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "7b0113032a86f4c7234dff1e99afa6aebadfa099e2bacdbfd932e222d13fe49f",
                "md5": "2aa403e79c7b9aa1ae2ca3e713029041",
                "sha256": "5a49bb81d1b3b7877607ac78766be712e8998e9779d0e48a3966e8979f1ae474"
            },
            "downloads": -1,
            "filename": "pytrimal-0.7.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
            "has_sig": false,
            "md5_digest": "2aa403e79c7b9aa1ae2ca3e713029041",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": ">=3.5",
            "size": 3705228,
            "upload_time": "2023-07-21T19:17:05",
            "upload_time_iso_8601": "2023-07-21T19:17:05.779453Z",
            "url": "https://files.pythonhosted.org/packages/7b/01/13032a86f4c7234dff1e99afa6aebadfa099e2bacdbfd932e222d13fe49f/pytrimal-0.7.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "bfd3310a462d0f023c7ae3fc3b3e66060be12edee88d3e81e541d212856a085d",
                "md5": "8958b0a555dc55c223658076279f0439",
                "sha256": "79ebbec724b51dff9769514387e9ccb2596922e7308aee1d1813912f8810cb7c"
            },
            "downloads": -1,
            "filename": "pytrimal-0.7.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "8958b0a555dc55c223658076279f0439",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": ">=3.5",
            "size": 3861978,
            "upload_time": "2023-07-21T19:17:07",
            "upload_time_iso_8601": "2023-07-21T19:17:07.638770Z",
            "url": "https://files.pythonhosted.org/packages/bf/d3/310a462d0f023c7ae3fc3b3e66060be12edee88d3e81e541d212856a085d/pytrimal-0.7.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "27cb86214a17d8fb1e7cb9fabc40441f8d68e6d72952c91c3f167189113e547b",
                "md5": "83570c2bbb23285b6aff0515da8473b3",
                "sha256": "b95bc7d792cca287b6a3a0c7938c0d22bda160862bbc13f4a62f022262f997b2"
            },
            "downloads": -1,
            "filename": "pytrimal-0.7.0-cp311-cp311-macosx_10_9_x86_64.whl",
            "has_sig": false,
            "md5_digest": "83570c2bbb23285b6aff0515da8473b3",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": ">=3.5",
            "size": 709286,
            "upload_time": "2023-07-21T19:17:09",
            "upload_time_iso_8601": "2023-07-21T19:17:09.313646Z",
            "url": "https://files.pythonhosted.org/packages/27/cb/86214a17d8fb1e7cb9fabc40441f8d68e6d72952c91c3f167189113e547b/pytrimal-0.7.0-cp311-cp311-macosx_10_9_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "c4d8e36438307250e68e9b59f297cbdf245a7ac2367ab62c78a6068989af8961",
                "md5": "d14c311864e7e69994d5d26694ec9cc4",
                "sha256": "aac5808bb2e771d32f12330e431306f48e6784a3ddcf4ed171eb600de39644f7"
            },
            "downloads": -1,
            "filename": "pytrimal-0.7.0-cp311-cp311-macosx_11_0_arm64.whl",
            "has_sig": false,
            "md5_digest": "d14c311864e7e69994d5d26694ec9cc4",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": ">=3.5",
            "size": 667749,
            "upload_time": "2023-07-21T19:17:11",
            "upload_time_iso_8601": "2023-07-21T19:17:11.498434Z",
            "url": "https://files.pythonhosted.org/packages/c4/d8/e36438307250e68e9b59f297cbdf245a7ac2367ab62c78a6068989af8961/pytrimal-0.7.0-cp311-cp311-macosx_11_0_arm64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "c25c222eff83ac0e6d894b30b35fff3ba7169b37dc48518b3cd185867736f70e",
                "md5": "381ec7e6b56cb9f4b668448dec4bbd28",
                "sha256": "a8cc06bd895c25395ccf3db583965e3ae5e56ba3776ef63d1d2f8636d7b59573"
            },
            "downloads": -1,
            "filename": "pytrimal-0.7.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
            "has_sig": false,
            "md5_digest": "381ec7e6b56cb9f4b668448dec4bbd28",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": ">=3.5",
            "size": 3806546,
            "upload_time": "2023-07-21T19:17:13",
            "upload_time_iso_8601": "2023-07-21T19:17:13.211202Z",
            "url": "https://files.pythonhosted.org/packages/c2/5c/222eff83ac0e6d894b30b35fff3ba7169b37dc48518b3cd185867736f70e/pytrimal-0.7.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "abcddd1a508284b9a35c1e5a17a5621eec9af33ae3993d4960e71348ad2664e3",
                "md5": "80bcc148321ff26c92c0faaf43fbd508",
                "sha256": "37f0b28061200ad658bed059f4b681f08aaed37efdf18237eee45195da397c7b"
            },
            "downloads": -1,
            "filename": "pytrimal-0.7.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "80bcc148321ff26c92c0faaf43fbd508",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": ">=3.5",
            "size": 3961791,
            "upload_time": "2023-07-21T19:17:15",
            "upload_time_iso_8601": "2023-07-21T19:17:15.050438Z",
            "url": "https://files.pythonhosted.org/packages/ab/cd/dd1a508284b9a35c1e5a17a5621eec9af33ae3993d4960e71348ad2664e3/pytrimal-0.7.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "ea76aa72772a5d49f3af748afaa3de5bf7a474df866090a4c4157ed17c9c3795",
                "md5": "90248f5a0c730722f6beacc17791d8e5",
                "sha256": "b8cc4cdba349776db138d1669b9954609a3285fcc026daeb776781deb53bc84a"
            },
            "downloads": -1,
            "filename": "pytrimal-0.7.0-cp36-cp36m-macosx_10_9_x86_64.whl",
            "has_sig": false,
            "md5_digest": "90248f5a0c730722f6beacc17791d8e5",
            "packagetype": "bdist_wheel",
            "python_version": "cp36",
            "requires_python": ">=3.5",
            "size": 705144,
            "upload_time": "2023-07-21T19:17:17",
            "upload_time_iso_8601": "2023-07-21T19:17:17.391909Z",
            "url": "https://files.pythonhosted.org/packages/ea/76/aa72772a5d49f3af748afaa3de5bf7a474df866090a4c4157ed17c9c3795/pytrimal-0.7.0-cp36-cp36m-macosx_10_9_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "640447099e03fc38ce99fe7f7e3c5d4e1e7fe6020cee961a263407b9e29ea31e",
                "md5": "d382f8b6a5ca694f87ea19a06500c420",
                "sha256": "d3d17afa5daa832768607dfe8db6c77014ea2aef71c4a3f2993c524f112dab2d"
            },
            "downloads": -1,
            "filename": "pytrimal-0.7.0-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
            "has_sig": false,
            "md5_digest": "d382f8b6a5ca694f87ea19a06500c420",
            "packagetype": "bdist_wheel",
            "python_version": "cp36",
            "requires_python": ">=3.5",
            "size": 3626949,
            "upload_time": "2023-07-21T19:17:19",
            "upload_time_iso_8601": "2023-07-21T19:17:19.779258Z",
            "url": "https://files.pythonhosted.org/packages/64/04/47099e03fc38ce99fe7f7e3c5d4e1e7fe6020cee961a263407b9e29ea31e/pytrimal-0.7.0-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "1758f090952737b7766f89105af25251304cf948e141bd60fc846d3329c133d1",
                "md5": "2f1f27aaad77b4a20317cbdaccae9d14",
                "sha256": "decbcddea6dd9569051108bf6629687a48afc842ed2ca0ed31acf4d6f1954825"
            },
            "downloads": -1,
            "filename": "pytrimal-0.7.0-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "2f1f27aaad77b4a20317cbdaccae9d14",
            "packagetype": "bdist_wheel",
            "python_version": "cp36",
            "requires_python": ">=3.5",
            "size": 3783767,
            "upload_time": "2023-07-21T19:17:21",
            "upload_time_iso_8601": "2023-07-21T19:17:21.695567Z",
            "url": "https://files.pythonhosted.org/packages/17/58/f090952737b7766f89105af25251304cf948e141bd60fc846d3329c133d1/pytrimal-0.7.0-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "e68218e712bf8a81aa7071e662b849a123d6de66eb8410b4d96b6a606640c0f9",
                "md5": "eb0193c86666b6f342c67fb7a695cb47",
                "sha256": "f9facdeafb0426bc9bedb8174c5a47161dde9cdb605ed633973818364a92637b"
            },
            "downloads": -1,
            "filename": "pytrimal-0.7.0-cp37-cp37m-macosx_10_9_x86_64.whl",
            "has_sig": false,
            "md5_digest": "eb0193c86666b6f342c67fb7a695cb47",
            "packagetype": "bdist_wheel",
            "python_version": "cp37",
            "requires_python": ">=3.5",
            "size": 706900,
            "upload_time": "2023-07-21T19:17:23",
            "upload_time_iso_8601": "2023-07-21T19:17:23.302818Z",
            "url": "https://files.pythonhosted.org/packages/e6/82/18e712bf8a81aa7071e662b849a123d6de66eb8410b4d96b6a606640c0f9/pytrimal-0.7.0-cp37-cp37m-macosx_10_9_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "e490f45a2b2c806ce653a3bee64b889957a1dbcc8dd9635c90e4b496d20e4684",
                "md5": "205083b8caac2557c0117fec3502bd69",
                "sha256": "dc216c212cebf39cc3f4c14d0ec96a01f48fdfc7db6a8c7e26f24b123f9900ca"
            },
            "downloads": -1,
            "filename": "pytrimal-0.7.0-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
            "has_sig": false,
            "md5_digest": "205083b8caac2557c0117fec3502bd69",
            "packagetype": "bdist_wheel",
            "python_version": "cp37",
            "requires_python": ">=3.5",
            "size": 3635436,
            "upload_time": "2023-07-21T19:17:25",
            "upload_time_iso_8601": "2023-07-21T19:17:25.680650Z",
            "url": "https://files.pythonhosted.org/packages/e4/90/f45a2b2c806ce653a3bee64b889957a1dbcc8dd9635c90e4b496d20e4684/pytrimal-0.7.0-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "3a40c21b65132ecfb3e1d2ccade94e3d3e28339390bf6b4250cdae81e251ad89",
                "md5": "3292e1fcec75d4f588e4f4a87e67abbb",
                "sha256": "b6173cae8b492ffbbc683aaba6293df8354b797496d47e86c11d1249261746ca"
            },
            "downloads": -1,
            "filename": "pytrimal-0.7.0-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "3292e1fcec75d4f588e4f4a87e67abbb",
            "packagetype": "bdist_wheel",
            "python_version": "cp37",
            "requires_python": ">=3.5",
            "size": 3789341,
            "upload_time": "2023-07-21T19:17:27",
            "upload_time_iso_8601": "2023-07-21T19:17:27.347079Z",
            "url": "https://files.pythonhosted.org/packages/3a/40/c21b65132ecfb3e1d2ccade94e3d3e28339390bf6b4250cdae81e251ad89/pytrimal-0.7.0-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "c6591391fc8022c1fac81f18de4fea9158d8e0b89b7a87a89ef3442e0a287ee1",
                "md5": "5ef46fc8bba25ed94094789b5eb4075a",
                "sha256": "c86f476345e9af1ebc73ea63b334b345d7091bff7d25e32ea23a292fb80e7bc7"
            },
            "downloads": -1,
            "filename": "pytrimal-0.7.0-cp38-cp38-macosx_10_9_x86_64.whl",
            "has_sig": false,
            "md5_digest": "5ef46fc8bba25ed94094789b5eb4075a",
            "packagetype": "bdist_wheel",
            "python_version": "cp38",
            "requires_python": ">=3.5",
            "size": 708200,
            "upload_time": "2023-07-21T19:17:29",
            "upload_time_iso_8601": "2023-07-21T19:17:29.591991Z",
            "url": "https://files.pythonhosted.org/packages/c6/59/1391fc8022c1fac81f18de4fea9158d8e0b89b7a87a89ef3442e0a287ee1/pytrimal-0.7.0-cp38-cp38-macosx_10_9_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "7964df1de90273a7d2cd2c64ab93b5a220a2d0ecb8aac0d7abc1a36f406067cc",
                "md5": "a856276f9aadd0dd20a876608789f301",
                "sha256": "ef48c8fa6ec5d0cdb8c8d23586ba6092373e2ac0f94980f012b8e0b139864349"
            },
            "downloads": -1,
            "filename": "pytrimal-0.7.0-cp38-cp38-macosx_11_0_arm64.whl",
            "has_sig": false,
            "md5_digest": "a856276f9aadd0dd20a876608789f301",
            "packagetype": "bdist_wheel",
            "python_version": "cp38",
            "requires_python": ">=3.5",
            "size": 667269,
            "upload_time": "2023-07-21T19:17:31",
            "upload_time_iso_8601": "2023-07-21T19:17:31.036310Z",
            "url": "https://files.pythonhosted.org/packages/79/64/df1de90273a7d2cd2c64ab93b5a220a2d0ecb8aac0d7abc1a36f406067cc/pytrimal-0.7.0-cp38-cp38-macosx_11_0_arm64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "9e2261da002ff6a9ff39eb4838c5b6879076de26cb03063dad9feea3f6f468b6",
                "md5": "4717a64026e7d5e870e755b71386c6f9",
                "sha256": "1eb8ae54c4862dd3e6939be76153e67ebaec9981ea6d11078fa33c1ac2176433"
            },
            "downloads": -1,
            "filename": "pytrimal-0.7.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
            "has_sig": false,
            "md5_digest": "4717a64026e7d5e870e755b71386c6f9",
            "packagetype": "bdist_wheel",
            "python_version": "cp38",
            "requires_python": ">=3.5",
            "size": 3714483,
            "upload_time": "2023-07-21T19:17:32",
            "upload_time_iso_8601": "2023-07-21T19:17:32.761859Z",
            "url": "https://files.pythonhosted.org/packages/9e/22/61da002ff6a9ff39eb4838c5b6879076de26cb03063dad9feea3f6f468b6/pytrimal-0.7.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "35ba865220473c7e866128adbd43524740a74349f5902d694e4887c34f446c4f",
                "md5": "4aea406bb5e7bd8edffbd82fe15b8ce2",
                "sha256": "7bb1a654600f1800ecf38de2566f9867e0d44f0418d9f3ef837c12813e8b07f3"
            },
            "downloads": -1,
            "filename": "pytrimal-0.7.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "4aea406bb5e7bd8edffbd82fe15b8ce2",
            "packagetype": "bdist_wheel",
            "python_version": "cp38",
            "requires_python": ">=3.5",
            "size": 3871813,
            "upload_time": "2023-07-21T19:17:34",
            "upload_time_iso_8601": "2023-07-21T19:17:34.700587Z",
            "url": "https://files.pythonhosted.org/packages/35/ba/865220473c7e866128adbd43524740a74349f5902d694e4887c34f446c4f/pytrimal-0.7.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "9077494f9404c4b6de54841d7914101764c60745cbc4fd48ab381112d9477296",
                "md5": "8b5914fbc89f4728353a43e8689ae415",
                "sha256": "e96606cf999a78cfe325edff77aa150c390f6368e70a741b2930b1b4870951b9"
            },
            "downloads": -1,
            "filename": "pytrimal-0.7.0-cp39-cp39-macosx_10_9_x86_64.whl",
            "has_sig": false,
            "md5_digest": "8b5914fbc89f4728353a43e8689ae415",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": ">=3.5",
            "size": 709244,
            "upload_time": "2023-07-21T19:17:36",
            "upload_time_iso_8601": "2023-07-21T19:17:36.965854Z",
            "url": "https://files.pythonhosted.org/packages/90/77/494f9404c4b6de54841d7914101764c60745cbc4fd48ab381112d9477296/pytrimal-0.7.0-cp39-cp39-macosx_10_9_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "a5e0e4b4301c7c06889aa5c733f6724937e32e4baa33992bb9ff52f89d81b96c",
                "md5": "b8269a93173d2634d3e6e5f733df1c59",
                "sha256": "e3c7f9bdf607fef0c4a15c8572c1b4bb0d11a63012279c8eab8cc4ebf467ccd5"
            },
            "downloads": -1,
            "filename": "pytrimal-0.7.0-cp39-cp39-macosx_11_0_arm64.whl",
            "has_sig": false,
            "md5_digest": "b8269a93173d2634d3e6e5f733df1c59",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": ">=3.5",
            "size": 667627,
            "upload_time": "2023-07-21T19:17:38",
            "upload_time_iso_8601": "2023-07-21T19:17:38.695772Z",
            "url": "https://files.pythonhosted.org/packages/a5/e0/e4b4301c7c06889aa5c733f6724937e32e4baa33992bb9ff52f89d81b96c/pytrimal-0.7.0-cp39-cp39-macosx_11_0_arm64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "9cd2a6b14fc2c629142d94aae7d78f4c939b8063919f366a83e5db77da6ff59e",
                "md5": "ea1a92c9acd000020723588c1e909068",
                "sha256": "4d4056c8cae04de4a42efab31b7e2c3d998083899da63bddddcaabc44669ef68"
            },
            "downloads": -1,
            "filename": "pytrimal-0.7.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
            "has_sig": false,
            "md5_digest": "ea1a92c9acd000020723588c1e909068",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": ">=3.5",
            "size": 3704016,
            "upload_time": "2023-07-21T19:17:40",
            "upload_time_iso_8601": "2023-07-21T19:17:40.709437Z",
            "url": "https://files.pythonhosted.org/packages/9c/d2/a6b14fc2c629142d94aae7d78f4c939b8063919f366a83e5db77da6ff59e/pytrimal-0.7.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "bda8abfc394d3687be26591b5554e452a79f934c05c45beebf266d0886084421",
                "md5": "87a45709e4feb99e23a4eb3585c1db77",
                "sha256": "dde640e269b3685e4aa839c6fc73b43ff21b6427194c767573ab5d1fa06ce5f3"
            },
            "downloads": -1,
            "filename": "pytrimal-0.7.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "87a45709e4feb99e23a4eb3585c1db77",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": ">=3.5",
            "size": 3861514,
            "upload_time": "2023-07-21T19:17:42",
            "upload_time_iso_8601": "2023-07-21T19:17:42.727205Z",
            "url": "https://files.pythonhosted.org/packages/bd/a8/abfc394d3687be26591b5554e452a79f934c05c45beebf266d0886084421/pytrimal-0.7.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "40f31514c62835d1a10f497367c476c1c63d899f814ab375bcd8cecc60c6dbbc",
                "md5": "52d0fc612f9ba0a8095372080eed234c",
                "sha256": "a270b85695d3475d4c953792e5b085b24437e18832671f708bff491b6aace44d"
            },
            "downloads": -1,
            "filename": "pytrimal-0.7.0-pp37-pypy37_pp73-macosx_10_9_x86_64.whl",
            "has_sig": false,
            "md5_digest": "52d0fc612f9ba0a8095372080eed234c",
            "packagetype": "bdist_wheel",
            "python_version": "pp37",
            "requires_python": ">=3.5",
            "size": 634359,
            "upload_time": "2023-07-21T19:17:44",
            "upload_time_iso_8601": "2023-07-21T19:17:44.370043Z",
            "url": "https://files.pythonhosted.org/packages/40/f3/1514c62835d1a10f497367c476c1c63d899f814ab375bcd8cecc60c6dbbc/pytrimal-0.7.0-pp37-pypy37_pp73-macosx_10_9_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "da6030a3232263be603211853c9688748a28b1437054313c6eafb9bb6a870c73",
                "md5": "a85939d0b70d660db109a5cef487a262",
                "sha256": "b4e68929f3e5dec8419e7d68f72f70bcafa717f35b4b633ea4b55b78224e5a3c"
            },
            "downloads": -1,
            "filename": "pytrimal-0.7.0-pp37-pypy37_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
            "has_sig": false,
            "md5_digest": "a85939d0b70d660db109a5cef487a262",
            "packagetype": "bdist_wheel",
            "python_version": "pp37",
            "requires_python": ">=3.5",
            "size": 709869,
            "upload_time": "2023-07-21T19:17:45",
            "upload_time_iso_8601": "2023-07-21T19:17:45.844174Z",
            "url": "https://files.pythonhosted.org/packages/da/60/30a3232263be603211853c9688748a28b1437054313c6eafb9bb6a870c73/pytrimal-0.7.0-pp37-pypy37_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "144f98acfe0974a2efbf32ce38e5f013b7dbb688856fb5b356701d4c8b4263c3",
                "md5": "5d47bf64a1239c9bfb7b92a64184bf6d",
                "sha256": "79f70eb8090d30be87fd2de743c30bc7dcd9b602065aba6dc364bc97c29fe2e1"
            },
            "downloads": -1,
            "filename": "pytrimal-0.7.0-pp37-pypy37_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "5d47bf64a1239c9bfb7b92a64184bf6d",
            "packagetype": "bdist_wheel",
            "python_version": "pp37",
            "requires_python": ">=3.5",
            "size": 729937,
            "upload_time": "2023-07-21T19:17:47",
            "upload_time_iso_8601": "2023-07-21T19:17:47.303946Z",
            "url": "https://files.pythonhosted.org/packages/14/4f/98acfe0974a2efbf32ce38e5f013b7dbb688856fb5b356701d4c8b4263c3/pytrimal-0.7.0-pp37-pypy37_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "56c7f58e2a538d08108542822c21ac0557e520fbdfccb2f6fc4757e322d9be8e",
                "md5": "11e4b8e8c25c061b96822ccf8f9de0c8",
                "sha256": "501c44644e55f1f4343d419645867bd9f5b828922a0c413126249e9c8e90cb37"
            },
            "downloads": -1,
            "filename": "pytrimal-0.7.0-pp38-pypy38_pp73-macosx_10_9_x86_64.whl",
            "has_sig": false,
            "md5_digest": "11e4b8e8c25c061b96822ccf8f9de0c8",
            "packagetype": "bdist_wheel",
            "python_version": "pp38",
            "requires_python": ">=3.5",
            "size": 634481,
            "upload_time": "2023-07-21T19:17:48",
            "upload_time_iso_8601": "2023-07-21T19:17:48.856838Z",
            "url": "https://files.pythonhosted.org/packages/56/c7/f58e2a538d08108542822c21ac0557e520fbdfccb2f6fc4757e322d9be8e/pytrimal-0.7.0-pp38-pypy38_pp73-macosx_10_9_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "d8663528b865040009edc3f7fa01ca755b2e8d9cfdb635a1bca04e530f061d96",
                "md5": "5d715be95c498039630d649d5329e179",
                "sha256": "bbe3e17a09d077edf41812fcb5e1507253bdaaf5ad9584eaec20acf6a8404527"
            },
            "downloads": -1,
            "filename": "pytrimal-0.7.0-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
            "has_sig": false,
            "md5_digest": "5d715be95c498039630d649d5329e179",
            "packagetype": "bdist_wheel",
            "python_version": "pp38",
            "requires_python": ">=3.5",
            "size": 707312,
            "upload_time": "2023-07-21T19:17:50",
            "upload_time_iso_8601": "2023-07-21T19:17:50.430580Z",
            "url": "https://files.pythonhosted.org/packages/d8/66/3528b865040009edc3f7fa01ca755b2e8d9cfdb635a1bca04e530f061d96/pytrimal-0.7.0-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "5782141872469d907ca4a4d6a3ff944f8e9d199039c6c0da44493e50073df9ba",
                "md5": "edd9a1e65747ead45b20f33437d58366",
                "sha256": "7bbe6ee224db83b08d2581efeb6182fae8270269ab4630c058b3a4360a66675d"
            },
            "downloads": -1,
            "filename": "pytrimal-0.7.0-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "edd9a1e65747ead45b20f33437d58366",
            "packagetype": "bdist_wheel",
            "python_version": "pp38",
            "requires_python": ">=3.5",
            "size": 725835,
            "upload_time": "2023-07-21T19:17:52",
            "upload_time_iso_8601": "2023-07-21T19:17:52.324556Z",
            "url": "https://files.pythonhosted.org/packages/57/82/141872469d907ca4a4d6a3ff944f8e9d199039c6c0da44493e50073df9ba/pytrimal-0.7.0-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "bef53a64ac65df88119888e3de4fd3d6305ff4c5fa3bbcb9ad95b112bf6a9090",
                "md5": "14ecd86f03c5b372b2998af894740d89",
                "sha256": "bcda22e17fe3f2391cc218869b1071c065db0d9709f0bc779ab20b807924dd3d"
            },
            "downloads": -1,
            "filename": "pytrimal-0.7.0-pp39-pypy39_pp73-macosx_10_9_x86_64.whl",
            "has_sig": false,
            "md5_digest": "14ecd86f03c5b372b2998af894740d89",
            "packagetype": "bdist_wheel",
            "python_version": "pp39",
            "requires_python": ">=3.5",
            "size": 633422,
            "upload_time": "2023-07-21T19:17:53",
            "upload_time_iso_8601": "2023-07-21T19:17:53.760474Z",
            "url": "https://files.pythonhosted.org/packages/be/f5/3a64ac65df88119888e3de4fd3d6305ff4c5fa3bbcb9ad95b112bf6a9090/pytrimal-0.7.0-pp39-pypy39_pp73-macosx_10_9_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "e8433335546663062cb948c036321f50b4a87e149c55de683e545aeebe330ad5",
                "md5": "ff26420f0756e68178be9754341e25ea",
                "sha256": "55333790caed0a98ee279b2863b85d3339fd66c79a341ab77b465137963b8ee0"
            },
            "downloads": -1,
            "filename": "pytrimal-0.7.0-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
            "has_sig": false,
            "md5_digest": "ff26420f0756e68178be9754341e25ea",
            "packagetype": "bdist_wheel",
            "python_version": "pp39",
            "requires_python": ">=3.5",
            "size": 701261,
            "upload_time": "2023-07-21T19:17:55",
            "upload_time_iso_8601": "2023-07-21T19:17:55.833808Z",
            "url": "https://files.pythonhosted.org/packages/e8/43/3335546663062cb948c036321f50b4a87e149c55de683e545aeebe330ad5/pytrimal-0.7.0-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "83f1ee101daf3a0cf0420cbc6b843d5e8b43c4c14a4761c1fcbb90cf86e7f22e",
                "md5": "f2c43e6192acada79a6540621ae72dc1",
                "sha256": "9b6f9282de203cba47a6c83995f5a0b2d5ba0f2b01845d84363eaeb48f16c4e7"
            },
            "downloads": -1,
            "filename": "pytrimal-0.7.0-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "f2c43e6192acada79a6540621ae72dc1",
            "packagetype": "bdist_wheel",
            "python_version": "pp39",
            "requires_python": ">=3.5",
            "size": 720511,
            "upload_time": "2023-07-21T19:17:57",
            "upload_time_iso_8601": "2023-07-21T19:17:57.977857Z",
            "url": "https://files.pythonhosted.org/packages/83/f1/ee101daf3a0cf0420cbc6b843d5e8b43c4c14a4761c1fcbb90cf86e7f22e/pytrimal-0.7.0-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "27d4b5f132426e1f6a3269f76527be6d7fff58ffe57df014720de60503f0aa27",
                "md5": "0bf8f6dbc8efaed8811866416e5d34b1",
                "sha256": "e80df938e83a95bf81d620f5909580f3f07b661f25b8613e67037134785b91b4"
            },
            "downloads": -1,
            "filename": "pytrimal-0.7.0.tar.gz",
            "has_sig": false,
            "md5_digest": "0bf8f6dbc8efaed8811866416e5d34b1",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.5",
            "size": 8648929,
            "upload_time": "2023-07-21T19:17:59",
            "upload_time_iso_8601": "2023-07-21T19:17:59.833111Z",
            "url": "https://files.pythonhosted.org/packages/27/d4/b5f132426e1f6a3269f76527be6d7fff58ffe57df014720de60503f0aa27/pytrimal-0.7.0.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2023-07-21 19:17:59",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "althonos",
    "github_project": "pytrimal",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "lcname": "pytrimal"
}
        
Elapsed time: 0.10457s