Skip to main content

Cython bindings and Python interface to Opal, a SIMD-accelerated pairwise aligner.

Project description

🐍🌈🪨 PyOpal Stars

Cython bindings and Python interface to Opal, a SIMD-accelerated database search aligner.

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

🗺️ Overview

Opal is a sequence aligner enabling fast sequence similarity search using either of the Smith-Waterman, semi-global or Needleman-Wunsch algorithms.

PyOpal is a Python module that provides bindings to Opal using Cython. It implements a user-friendly, Pythonic interface to query a database of sequences and access the search results. It interacts with the Opal interface rather than with the CLI, which has the following advantages:

  • no binary dependency: PyOpal is distributed as a Python package, so you can add it as a dependency to your project, and stop worrying about the Opal 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 Opal CLI using a sub-process and temporary files.
  • better portability: Opal uses SIMD to accelerate alignment scoring, but doesn't support dynamic dispatch, so it has to be compiled on the local machine to be able to use the full capabilities of the local CPU. PyOpal ships several versions of Opal instead, each compiled with different target features, and selects the best one for the local platform at runtime.
  • wider platform support: The Opal code has been backported to work on SSE2 rather than SSE4.1, allowing PyOpal to run on older x86 CPUs (all x86 CPUs support it since 2003). In addition, Armv7 and Aarch64 CPUs are also supported if they implement NEON extensions.

🔧 Installing

PyOpal is available for all modern versions (3.6+), depending only on the lightweight Python package archspec for runtime CPU feature detection.

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

$ pip install pyopal

Otherwise, PyOpal is also available as a Bioconda package:

$ conda install -c bioconda pyopal

💡 Example

Create a database from some reference sequences:

import pyopal

database = pyopal.Database([
    "MESILDLQELETSEEESALMAASTVSNNC",                         # goadvionin A
    "MKKAVIVENKGCATCSIGAACLVDGPIPDFEIAGATGLFGLWG",           # subtilosin A
    "MAGFLKVVQILAKYGSKAVQWAWANKGKILDWINAGQAIDWVVEKIKQILGIK", # lacticin Z
    "MTQIKVPTALIASVHGEGQHLFEPMAARCTCTTIISSSSTF",             # plantazolicin
])

Then search it with a query sequence, and show the target sequence with the highest score:

results = database.search("MAGFLKVVQLLAKYGSKAVQWAWANKGKILDWLNAGQAIDWVVSKIKQILGIK")
best = max(results, key=lambda result: result.score)
print(best.score, best.target_index, database[best.target_index])

You can also get the alignment for every target, but this must be enabled when searching the database:

results = database.search("MESVLDLQELETSEEESALMAASTISQNC", mode="full")
for result in results:
    print(result.score, result.identity(), result.cigar())

🧶 Thread-safety

Database objects are thread safe through a C++17 read/write lock that prevents modification while the database is searched. In addition, the Database.search method is re-entrant and can be safely used to query the same database in parallel with different queries across different threads:

import multiprocessing.pool
import pyopal
import Bio.SeqIO

queries = [
    "MEQQIELDVLEISDLIAGAGENDDLAQVMAASCTTSSVSTSSSSSSS",
    "MTQIKVPTALIASVHGEGQHLFEPMAARCTCTTIISSSSTF",
    "MGAIAKLVAKFGWPIVKKYYKQIMQFIGEGWAINKIIDWIKKHI",
    "MGPVVVFDCMTADFLNDDPNNAELSALEMEELESWGAWDGEATS",
]

database = pyopal.Database([
    str(record.seq)
    for record in Bio.SeqIO.parse("vendor/opal/test_data/db/uniprot_sprot12071.fasta", "fasta")
])

with multiprocessing.pool.ThreadPool() as pool:
    hits = dict(pool.map(lambda q: (q, database.search(q)), queries))

💭 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 MIT License. Opal is developed by Martin Šošić and is distributed under the terms of the MIT License as well. See vendor/opal/LICENSE for more information.

This project is in no way not affiliated, sponsored, or otherwise endorsed by the Opal 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

pyopal-0.4.1.tar.gz (56.9 kB view details)

Uploaded Source

Built Distributions

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

pyopal-0.4.1-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (366.3 kB view details)

Uploaded PyPymanylinux: glibc 2.17+ x86-64

pyopal-0.4.1-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (243.6 kB view details)

Uploaded PyPymanylinux: glibc 2.17+ ARM64

pyopal-0.4.1-pp39-pypy39_pp73-macosx_10_12_x86_64.whl (237.4 kB view details)

Uploaded PyPymacOS 10.12+ x86-64

pyopal-0.4.1-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (366.1 kB view details)

Uploaded PyPymanylinux: glibc 2.17+ x86-64

pyopal-0.4.1-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (244.2 kB view details)

Uploaded PyPymanylinux: glibc 2.17+ ARM64

pyopal-0.4.1-pp38-pypy38_pp73-macosx_10_12_x86_64.whl (235.7 kB view details)

Uploaded PyPymacOS 10.12+ x86-64

pyopal-0.4.1-pp37-pypy37_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (366.5 kB view details)

Uploaded PyPymanylinux: glibc 2.17+ x86-64

pyopal-0.4.1-pp37-pypy37_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (244.3 kB view details)

Uploaded PyPymanylinux: glibc 2.17+ ARM64

pyopal-0.4.1-pp37-pypy37_pp73-macosx_10_12_x86_64.whl (235.8 kB view details)

Uploaded PyPymacOS 10.12+ x86-64

pyopal-0.4.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (2.0 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64

pyopal-0.4.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (1.4 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ ARM64

pyopal-0.4.1-cp311-cp311-macosx_11_0_arm64.whl (167.4 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

pyopal-0.4.1-cp311-cp311-macosx_10_12_x86_64.whl (318.4 kB view details)

Uploaded CPython 3.11macOS 10.12+ x86-64

pyopal-0.4.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.9 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ x86-64

pyopal-0.4.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (1.3 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ ARM64

pyopal-0.4.1-cp310-cp310-macosx_11_0_arm64.whl (167.8 kB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

pyopal-0.4.1-cp310-cp310-macosx_10_12_x86_64.whl (318.7 kB view details)

Uploaded CPython 3.10macOS 10.12+ x86-64

pyopal-0.4.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.9 MB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ x86-64

pyopal-0.4.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (1.3 MB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ ARM64

pyopal-0.4.1-cp39-cp39-macosx_11_0_arm64.whl (168.2 kB view details)

Uploaded CPython 3.9macOS 11.0+ ARM64

pyopal-0.4.1-cp39-cp39-macosx_10_12_x86_64.whl (318.8 kB view details)

Uploaded CPython 3.9macOS 10.12+ x86-64

pyopal-0.4.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.9 MB view details)

Uploaded CPython 3.8manylinux: glibc 2.17+ x86-64

pyopal-0.4.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (1.3 MB view details)

Uploaded CPython 3.8manylinux: glibc 2.17+ ARM64

pyopal-0.4.1-cp38-cp38-macosx_11_0_arm64.whl (167.4 kB view details)

Uploaded CPython 3.8macOS 11.0+ ARM64

pyopal-0.4.1-cp38-cp38-macosx_10_12_x86_64.whl (317.8 kB view details)

Uploaded CPython 3.8macOS 10.12+ x86-64

pyopal-0.4.1-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.9 MB view details)

Uploaded CPython 3.7mmanylinux: glibc 2.17+ x86-64

pyopal-0.4.1-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (1.3 MB view details)

Uploaded CPython 3.7mmanylinux: glibc 2.17+ ARM64

pyopal-0.4.1-cp37-cp37m-macosx_10_12_x86_64.whl (316.8 kB view details)

Uploaded CPython 3.7mmacOS 10.12+ x86-64

pyopal-0.4.1-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.9 MB view details)

Uploaded CPython 3.6mmanylinux: glibc 2.17+ x86-64

pyopal-0.4.1-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (1.3 MB view details)

Uploaded CPython 3.6mmanylinux: glibc 2.17+ ARM64

pyopal-0.4.1-cp36-cp36m-macosx_10_12_x86_64.whl (314.6 kB view details)

Uploaded CPython 3.6mmacOS 10.12+ x86-64

File details

Details for the file pyopal-0.4.1.tar.gz.

File metadata

  • Download URL: pyopal-0.4.1.tar.gz
  • Upload date:
  • Size: 56.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.9.18

File hashes

Hashes for pyopal-0.4.1.tar.gz
Algorithm Hash digest
SHA256 abfc3cb741eaaaf0185af6efb44b56f458f54fe7b1d4d5b9c54bf60da73e245a
MD5 aaa4bf66a9e584d726a3c35855a6417b
BLAKE2b-256 98d12cd9a5ec91a3c6d41f84394009203bfdd05a4ad805ed0542c9c05d643b33

See more details on using hashes here.

File details

Details for the file pyopal-0.4.1-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for pyopal-0.4.1-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 6d2184df93df7c932b21e651fc1e5806bc029a890237eaa94c890b969ad89ce1
MD5 26d229b07390ee3723c5720707703f1d
BLAKE2b-256 6bec852d5988ec88edc9ed7967af9f5ddb5a4ef5f54375a394e49357976139f8

See more details on using hashes here.

File details

Details for the file pyopal-0.4.1-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for pyopal-0.4.1-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 5373b566fa7ae90440f8877e2ad398ea306ed37ef9942b44e24c43eb24dbf312
MD5 388fc709806b78943a0d71b695122604
BLAKE2b-256 c2602f571ed7d20ad5a95a19a8f90ce3f144dc1115f9ad251101778541ded1b8

See more details on using hashes here.

File details

Details for the file pyopal-0.4.1-pp39-pypy39_pp73-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for pyopal-0.4.1-pp39-pypy39_pp73-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 be3177d7cd8e1bd9f929efaaf4dcfdf718541b6da5c246384bbe9b7ffab79804
MD5 0969ab068df09db6cf9a30be4f984ab4
BLAKE2b-256 ab34d31338668a775a2af39705c81a4871582d54a1d10230e356d7389650f214

See more details on using hashes here.

File details

Details for the file pyopal-0.4.1-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for pyopal-0.4.1-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 e9b8e0c1083ea592b78a8cb67439540acbf87ff5ab647a709ab8ff2f771c9fcf
MD5 7d32cf622ed78314b0eb218a4d839312
BLAKE2b-256 c1dc91f8bb75c7fd96d3f919db5d5dd0a268f7d9035e6589ab56fb9f31f51bb4

See more details on using hashes here.

File details

Details for the file pyopal-0.4.1-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for pyopal-0.4.1-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 e8fd17af94e430c4413697f47d41b22b3c84feb15a6ec5daa3efb90b624f9c2e
MD5 919fb4deaff761981cc7770b976ce80b
BLAKE2b-256 9cccb88e7e1869ea6466d6fec5f4d6e57db04947befd8616d2ce4298e96efbf5

See more details on using hashes here.

File details

Details for the file pyopal-0.4.1-pp38-pypy38_pp73-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for pyopal-0.4.1-pp38-pypy38_pp73-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 dd0e62aaddc9fe233d9eccb7ad2adc0dd0ee77d8d3f7b5d26267e5777733369c
MD5 6f61c5ff577447f12692a012e80a6c3d
BLAKE2b-256 598249e7327bc11aadc7db105e2118387b2a6315e2e150d8d4e1f42c5239d272

See more details on using hashes here.

File details

Details for the file pyopal-0.4.1-pp37-pypy37_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for pyopal-0.4.1-pp37-pypy37_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 ec3df1395bae4385bce939317a111bb2c1cafe5229b043c5e1e43f220a9c834c
MD5 633a0af18585b164dfa007cf1dcd901e
BLAKE2b-256 c9f022a7eafe2e9984c66db207b4947d4f4dc07184f5c3d75bf6dd4fa5df35bf

See more details on using hashes here.

File details

Details for the file pyopal-0.4.1-pp37-pypy37_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for pyopal-0.4.1-pp37-pypy37_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 41242ac0523198479653240cb4c82c90f34a03f9e21424f791d423eede3e537c
MD5 0613d8b8f00603387f6ae266b5a2bbf5
BLAKE2b-256 7567a91d05b0afadcf3f5250e5c2785d8afe7dcc4907d2f0b972f1f4542d2682

See more details on using hashes here.

File details

Details for the file pyopal-0.4.1-pp37-pypy37_pp73-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for pyopal-0.4.1-pp37-pypy37_pp73-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 ff841646c4a02771de8fdb85836f1512767442a21390958bf57f99c230188435
MD5 edf4b653c7458f718264ce83c91869a5
BLAKE2b-256 fe1f10c746b1d7331eef36000e9f723b460bc07bd36841fcf17a2aead9855aa0

See more details on using hashes here.

File details

Details for the file pyopal-0.4.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for pyopal-0.4.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 a83c4a2a677bb2450c06ff2fcc16339d07d19ea591ba9d92b2b7556efdfed99a
MD5 d546d119cdbdb5c642d394e73af1edf7
BLAKE2b-256 4935f20d9ae26a4c165e0e88255c42e143eb05e1b557fd42ceb47c678e146982

See more details on using hashes here.

File details

Details for the file pyopal-0.4.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for pyopal-0.4.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 b366d80bc6bf17f2d50df1f27b997f3e74c0bfff8e83ffb9cffeef39e6661066
MD5 f1153b75679c483f675adc3779e0780b
BLAKE2b-256 2220684df73f0436eb11e5a92d18b45db4a31953b5228e837ba2479115d78e38

See more details on using hashes here.

File details

Details for the file pyopal-0.4.1-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pyopal-0.4.1-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 a539acabdbf11816d631b6da075c26328627343aa928e5deb96ad7eb1ab8233b
MD5 922346c644e63d20eab591f6b5dbf931
BLAKE2b-256 f1e752f1ca4a6901adcbb8b54509c7f90ae1037fea27fd49f742b26959297c1d

See more details on using hashes here.

File details

Details for the file pyopal-0.4.1-cp311-cp311-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for pyopal-0.4.1-cp311-cp311-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 1ef2919d811311011a5455424c7c9c94d30c5967948d63f0cc285644b58138a2
MD5 8ee4fe9b6f28442e11201906a218d3d6
BLAKE2b-256 a0b65324d3758d2487ceb4c7c13402289f43047afb68c464457641377afc484a

See more details on using hashes here.

File details

Details for the file pyopal-0.4.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for pyopal-0.4.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 1e3d6253a2fff6a10a321d8433f440dbf7c08eadf7297e585af4a544ff3407df
MD5 691ed697e793b362e8e019d6c88b0bcf
BLAKE2b-256 0e17e529e2128b2c51279cdb09dd83d30449e376849c3337520e6eac40b7fb2f

See more details on using hashes here.

File details

Details for the file pyopal-0.4.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for pyopal-0.4.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 0af1219d35afc9d554e188b5333de0d1b2925c0f036fdf00a29c4a30f0776708
MD5 e4944ed5b32daf2ae5ae0f94d04c6a31
BLAKE2b-256 a98b9606e16e56425496a9ec52352debe51691b1778aea0b3dfda05439ab2b20

See more details on using hashes here.

File details

Details for the file pyopal-0.4.1-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pyopal-0.4.1-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 c564f65277c055a7ec552c6576f94061376f28be0e0ce5ebf4393353a938c537
MD5 c9f84c833fc1e96dad102e3927714225
BLAKE2b-256 8747c45e36ef639addd8e51430b42cb573e63105014e9c9ffda33dd650219a79

See more details on using hashes here.

File details

Details for the file pyopal-0.4.1-cp310-cp310-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for pyopal-0.4.1-cp310-cp310-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 044e190062f9ea9bc0e64588d081f1d5ae4044cbc6ce3cdcfc407a8213caee99
MD5 4384a8f04fd46f52a525a9527c0969d3
BLAKE2b-256 6a1cc1851d3fc306fcaef115b53bfb383164386a42a2180dc2f11d39e96cbba7

See more details on using hashes here.

File details

Details for the file pyopal-0.4.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for pyopal-0.4.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 9f739d66590d2f7cb8f5a8923ac64928c5c06852632c60edd75fa0b99828254e
MD5 6495b0581fba7e374aaab5a065edb089
BLAKE2b-256 4cddb4c07ff6438e350fec122e5d2559318a4f9d68bc7d3cb569b2e429d90e36

See more details on using hashes here.

File details

Details for the file pyopal-0.4.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for pyopal-0.4.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 2542909332fa7f8be9016d5d818aa0d7fa823b3ef7d1e8b27078c4c39a74ea9d
MD5 97a3b58cc3346f98ae973a0906eda7d4
BLAKE2b-256 fcdef32eeb1fb5b56f43869be98bad1a8c2069def86d915af45ed94e5803d4c6

See more details on using hashes here.

File details

Details for the file pyopal-0.4.1-cp39-cp39-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pyopal-0.4.1-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 20b608a1199dd46e477e7651681acc8c944d58f31f687fb9d0b692036e0e31bc
MD5 1662d863be9a86d07a4f0619820edcb7
BLAKE2b-256 1f66c503394ceab661bdc8c87c351e07423a1cdc6a0902dd1f3ea42fdfab74c1

See more details on using hashes here.

File details

Details for the file pyopal-0.4.1-cp39-cp39-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for pyopal-0.4.1-cp39-cp39-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 2e732fe347da46821526cd6bfa6f18df8c89601510e9844484640e5cf13541e4
MD5 5e500770dd61bb74f635cdc54a73b56b
BLAKE2b-256 4efd5ee1433a023b0827927e607ab7ff71b8809ce7241e5c0d0516e8124d8b0f

See more details on using hashes here.

File details

Details for the file pyopal-0.4.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for pyopal-0.4.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 5ce7bd95c9aab9efd0d3f1b3c31a2ad238fe49c45c1424f5c5b7605d388f33dc
MD5 4878f8845e201cc0b532b17e95719fa3
BLAKE2b-256 4d722039a3ae7bfc1185ef5f6a5a5edd40ae143d4b5f639ed279e9c4294de418

See more details on using hashes here.

File details

Details for the file pyopal-0.4.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for pyopal-0.4.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 60892a684365d290e2c2da25106c8198e245d1c985a75894e955313056fd79c8
MD5 b44a7f4d236b9b4fefa37f0f4bc43a05
BLAKE2b-256 92ff886bde35d9c0399b49d9c3adf2793391e13a472beade4afac6e65233dda4

See more details on using hashes here.

File details

Details for the file pyopal-0.4.1-cp38-cp38-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pyopal-0.4.1-cp38-cp38-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 cd0efaa4e836e874b8c3599a231d2f9928610aea2b20d5f82afa0ca063a28679
MD5 e8da7491a0b4c453b6cb473c6834702a
BLAKE2b-256 d6f7817554ffd42efb12a52be2373842d7e5bab0804e8a12a44f37468c721110

See more details on using hashes here.

File details

Details for the file pyopal-0.4.1-cp38-cp38-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for pyopal-0.4.1-cp38-cp38-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 bfe38da38690c4fdc78bd90aa3547c968af363c074b320bc1a2b63563e6938e6
MD5 7e86aa8e228a1f5c69ddf6c315d297ee
BLAKE2b-256 55912c10b26fc2b486321c4dc812e232c59917abd0f02726293148194700c218

See more details on using hashes here.

File details

Details for the file pyopal-0.4.1-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for pyopal-0.4.1-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 7c5f50ef4c0b55aa073a67bb45cdec2e08c295b45b8d4e2c9065fd9669074b55
MD5 9186a6e99e9ec950faffbd27ed207706
BLAKE2b-256 aa777c7c04e43d547bcc0511d19d1677d16e24ffc517710286e477dae8b54f79

See more details on using hashes here.

File details

Details for the file pyopal-0.4.1-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for pyopal-0.4.1-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 227f415f4f033a3e5fade194d5450fe7da1ffd768afedc396e4c56d1c3c3020b
MD5 e77de5a91647b09133f1eeb0f3481491
BLAKE2b-256 b4b08707c56d13eceae1fa37fd6abd99f86023e27c53daa3347284c2b9a920e8

See more details on using hashes here.

File details

Details for the file pyopal-0.4.1-cp37-cp37m-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for pyopal-0.4.1-cp37-cp37m-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 85142e24ddd8f6c5dd1fef0f8416b77c3c181bf99db382d5e581fa06a9273eac
MD5 268f0d28462f6d5264f065bc31049a97
BLAKE2b-256 d209f1922ae0a065152c4336c510e43651f6d3840ced3c9346add5d7d2e88f41

See more details on using hashes here.

File details

Details for the file pyopal-0.4.1-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for pyopal-0.4.1-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 43cce412028bb8714b43aac33171d64d259c71aaebc186bdae3d83a644550851
MD5 78ba7fbcdfd512d372d891b60d488093
BLAKE2b-256 3612421f831395ec1f911797d1e04529896e60606435546bed62789d055e183e

See more details on using hashes here.

File details

Details for the file pyopal-0.4.1-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for pyopal-0.4.1-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 d97db9494e2eba014bfdd41d56e0505b7f6aff36a59884f89d0636c685c9bcec
MD5 d723148488df06f2b89227012b0fc21b
BLAKE2b-256 30d7c6def2d754b56d343b263a62efd8dd3871af7d4c6bff3da8e03730d2a37e

See more details on using hashes here.

File details

Details for the file pyopal-0.4.1-cp36-cp36m-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for pyopal-0.4.1-cp36-cp36m-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 e76ca50c34aa5195c27227848ae1fdb77ad0ea002c069b76d82101c6dcc8dd37
MD5 6a7e1f20c017d431229e5421602b5b01
BLAKE2b-256 a47d3db04f8b09833e093a4b1d6be7aad55ef419096f31f1de0f8f46205a7cd3

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