Skip to main content

Efficient parallelizable algorithms for multidimensional arrays to speed up your data pipelines

Project description

codecov pypi License PyPI - Downloads

Imops

Efficient parallelizable algorithms for multidimensional arrays to speed up your data pipelines.

Install

pip install imops  # default install with Cython backend
pip install imops[numba]  # additionally install Numba backend

How fast is it?

Time comparisons (ms) for Intel(R) Xeon(R) Silver 4114 CPU @ 2.20GHz using 8 threads. All inputs are C-contiguous NumPy arrays. For morphology functions bool dtype is used and float64 for all others.

function / backend Scipy() Cython(fast=False) Cython(fast=True) Numba()
zoom(..., order=0) 2072 1114 867 3590
zoom(..., order=1) 6527 596 575 3757
interp1d 780 149 146 420
radon 59711 5982 4837 -
inverse_radon 52928 8254 6535 -
binary_dilation 2207 310 298 -
binary_erosion 2296 326 304 -
binary_closing 4158 544 469 -
binary_opening 4410 567 522 -
center_of_mass 2237 64 64 -

We use airspeed velocity to benchmark our code. For detailed results visit benchmark page.

Features

Fast Radon transform

from imops import radon, inverse_radon

Fast 0/1-order zoom

from imops import zoom, zoom_to_shape

# fast zoom with optional fallback to scipy's implementation
y = zoom(x, 2, axis=[0, 1])
# a handy function to zoom the array to a given shape 
# without the need to compute the scale factor
z = zoom_to_shape(x, (4, 120, 67))

Works faster only for ndim<=4, dtype=float32 or float64 (and bool-int16-32-64-uint8-16-32 if order == 0), output=None, order=0 or 1, mode='constant', grid_mode=False

Fast 1d linear interpolation

from imops import interp1d  # same as `scipy.interpolate.interp1d`

Works faster only for ndim<=3, dtype=float32 or float64, order=1

Fast 2d linear interpolation

import numpy as np
from imops.interp2d import Linear2DInterpolator
n, m = 1024, 2
points = np.random.randint(low=0, high=1024, size=(n, m))
points = np.unique(points, axis=0)
x_points = points[: n // 2]
values = np.random.uniform(low=0.0, high=1.0, size=(len(x_points),))
interp_points = points[n // 2:]
num_threads = -1 # will be equal to num of CPU cores
# You can optionally pass your own triangulation as an np.array of shape [num_triangles, 3], element at (i, j) position is an index of a point from x_points
interpolator = Linear2DInterpolator(x_points, values, num_threads=num_threads, triangles=None)
# Also you can pass values to __call__ and rewrite the ones that were passed to __init__
interp_values = interpolator(interp_points, values + 1.0, fill_value=0.0)

Fast binary morphology

from imops import binary_dilation, binary_erosion, binary_opening, binary_closing

These functions mimic scikit-image counterparts

Padding

from imops import pad, pad_to_shape

y = pad(x, 10, axis=[0, 1])
# `ratio` controls how much padding is applied to left side:
# 0 - pad from right
# 1 - pad from left
# 0.5 - distribute the padding equally
z = pad_to_shape(x, (4, 120, 67), ratio=0.25)

Cropping

from imops import crop_to_shape

# `ratio` controls the position of the crop
# 0 - crop from right
# 1 - crop from left
# 0.5 - crop from the middle
z = crop_to_shape(x, (4, 120, 67), ratio=0.25)

Labeling

from imops import label

# same as `skimage.measure.label`
labeled, num_components = label(x, background=1, return_num=True)

Backends

For all heavy image routines except label you can specify which backend to use. Backend can be specified by a string or by an instance of Backend class. The latter allows you to customize some backend options:

from imops import Cython, Numba, Scipy, zoom

y = zoom(x, 2, backend='Cython')
y = zoom(x, 2, backend=Cython(fast=False))  # same as previous
y = zoom(x, 2, backend=Cython(fast=True))  # -ffast-math compiled cython backend
y = zoom(x, 2, backend=Scipy())  # use scipy original implementation
y = zoom(x, 2, backend='Numba')
y = zoom(x, 2, backend=Numba(parallel=True, nogil=True, cache=True))  # same as previous

Also backend can be specified globally or locally:

from imops import imops_backend, set_backend, zoom

set_backend('Numba')  # sets Numba as default backend
with imops_backend('Cython'):  # sets Cython backend via context manager
    zoom(x, 2)

Note that for Numba backend setting num_threads argument has no effect for now and you should use NUMBA_NUM_THREADS environment variable. Available backends:

function / backend Scipy Cython Numba
zoom
interp1d
radon
inverse_radon
binary_dilation
binary_erosion
binary_closing
binary_opening
center_of_mass

Acknowledgements

Some parts of our code for radon/inverse radon transform as well as the code for linear interpolation are inspired by the implementations from scikit-image and scipy. Also we used fastremap, edt and cc3d out of the box.

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

imops-0.9.0.tar.gz (72.8 kB view details)

Uploaded Source

Built Distributions

imops-0.9.0-cp312-cp312-win_amd64.whl (4.2 MB view details)

Uploaded CPython 3.12 Windows x86-64

imops-0.9.0-cp312-cp312-win32.whl (4.0 MB view details)

Uploaded CPython 3.12 Windows x86

imops-0.9.0-cp312-cp312-musllinux_1_1_x86_64.whl (15.9 MB view details)

Uploaded CPython 3.12 musllinux: musl 1.1+ x86-64

imops-0.9.0-cp312-cp312-musllinux_1_1_i686.whl (15.2 MB view details)

Uploaded CPython 3.12 musllinux: musl 1.1+ i686

imops-0.9.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (15.3 MB view details)

Uploaded CPython 3.12 manylinux: glibc 2.17+ x86-64

imops-0.9.0-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl (15.1 MB view details)

Uploaded CPython 3.12 manylinux: glibc 2.17+ i686

imops-0.9.0-cp312-cp312-macosx_10_9_x86_64.whl (5.0 MB view details)

Uploaded CPython 3.12 macOS 10.9+ x86-64

imops-0.9.0-cp311-cp311-win_amd64.whl (4.2 MB view details)

Uploaded CPython 3.11 Windows x86-64

imops-0.9.0-cp311-cp311-win32.whl (4.0 MB view details)

Uploaded CPython 3.11 Windows x86

imops-0.9.0-cp311-cp311-musllinux_1_1_x86_64.whl (16.1 MB view details)

Uploaded CPython 3.11 musllinux: musl 1.1+ x86-64

imops-0.9.0-cp311-cp311-musllinux_1_1_i686.whl (15.5 MB view details)

Uploaded CPython 3.11 musllinux: musl 1.1+ i686

imops-0.9.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (15.5 MB view details)

Uploaded CPython 3.11 manylinux: glibc 2.17+ x86-64

imops-0.9.0-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl (15.4 MB view details)

Uploaded CPython 3.11 manylinux: glibc 2.17+ i686

imops-0.9.0-cp311-cp311-macosx_10_9_x86_64.whl (5.0 MB view details)

Uploaded CPython 3.11 macOS 10.9+ x86-64

imops-0.9.0-cp310-cp310-win_amd64.whl (4.2 MB view details)

Uploaded CPython 3.10 Windows x86-64

imops-0.9.0-cp310-cp310-win32.whl (4.0 MB view details)

Uploaded CPython 3.10 Windows x86

imops-0.9.0-cp310-cp310-musllinux_1_1_x86_64.whl (15.4 MB view details)

Uploaded CPython 3.10 musllinux: musl 1.1+ x86-64

imops-0.9.0-cp310-cp310-musllinux_1_1_i686.whl (14.9 MB view details)

Uploaded CPython 3.10 musllinux: musl 1.1+ i686

imops-0.9.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (14.8 MB view details)

Uploaded CPython 3.10 manylinux: glibc 2.17+ x86-64

imops-0.9.0-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl (14.9 MB view details)

Uploaded CPython 3.10 manylinux: glibc 2.17+ i686

imops-0.9.0-cp310-cp310-macosx_10_9_x86_64.whl (5.0 MB view details)

Uploaded CPython 3.10 macOS 10.9+ x86-64

imops-0.9.0-cp39-cp39-win_amd64.whl (4.2 MB view details)

Uploaded CPython 3.9 Windows x86-64

imops-0.9.0-cp39-cp39-win32.whl (4.0 MB view details)

Uploaded CPython 3.9 Windows x86

imops-0.9.0-cp39-cp39-musllinux_1_1_x86_64.whl (15.5 MB view details)

Uploaded CPython 3.9 musllinux: musl 1.1+ x86-64

imops-0.9.0-cp39-cp39-musllinux_1_1_i686.whl (14.9 MB view details)

Uploaded CPython 3.9 musllinux: musl 1.1+ i686

imops-0.9.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (14.8 MB view details)

Uploaded CPython 3.9 manylinux: glibc 2.17+ x86-64

imops-0.9.0-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl (14.9 MB view details)

Uploaded CPython 3.9 manylinux: glibc 2.17+ i686

imops-0.9.0-cp39-cp39-macosx_10_9_x86_64.whl (6.2 MB view details)

Uploaded CPython 3.9 macOS 10.9+ x86-64

imops-0.9.0-cp38-cp38-win_amd64.whl (4.2 MB view details)

Uploaded CPython 3.8 Windows x86-64

imops-0.9.0-cp38-cp38-win32.whl (3.9 MB view details)

Uploaded CPython 3.8 Windows x86

imops-0.9.0-cp38-cp38-musllinux_1_1_x86_64.whl (16.2 MB view details)

Uploaded CPython 3.8 musllinux: musl 1.1+ x86-64

imops-0.9.0-cp38-cp38-musllinux_1_1_i686.whl (15.6 MB view details)

Uploaded CPython 3.8 musllinux: musl 1.1+ i686

imops-0.9.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (15.1 MB view details)

Uploaded CPython 3.8 manylinux: glibc 2.17+ x86-64

imops-0.9.0-cp38-cp38-manylinux_2_17_i686.manylinux2014_i686.whl (15.1 MB view details)

Uploaded CPython 3.8 manylinux: glibc 2.17+ i686

imops-0.9.0-cp38-cp38-macosx_10_9_x86_64.whl (6.2 MB view details)

Uploaded CPython 3.8 macOS 10.9+ x86-64

imops-0.9.0-cp37-cp37m-win_amd64.whl (4.2 MB view details)

Uploaded CPython 3.7m Windows x86-64

imops-0.9.0-cp37-cp37m-win32.whl (3.9 MB view details)

Uploaded CPython 3.7m Windows x86

imops-0.9.0-cp37-cp37m-musllinux_1_1_x86_64.whl (14.7 MB view details)

Uploaded CPython 3.7m musllinux: musl 1.1+ x86-64

imops-0.9.0-cp37-cp37m-musllinux_1_1_i686.whl (14.1 MB view details)

Uploaded CPython 3.7m musllinux: musl 1.1+ i686

imops-0.9.0-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (14.0 MB view details)

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

imops-0.9.0-cp37-cp37m-manylinux_2_17_i686.manylinux2014_i686.whl (14.1 MB view details)

Uploaded CPython 3.7m manylinux: glibc 2.17+ i686

imops-0.9.0-cp37-cp37m-macosx_10_9_x86_64.whl (6.1 MB view details)

Uploaded CPython 3.7m macOS 10.9+ x86-64

File details

Details for the file imops-0.9.0.tar.gz.

File metadata

  • Download URL: imops-0.9.0.tar.gz
  • Upload date:
  • Size: 72.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.9.19

File hashes

Hashes for imops-0.9.0.tar.gz
Algorithm Hash digest
SHA256 45d6707e0c4fd571162e6f57ebc73f40237e835d7eb7cbd34f127c6ef77c6afb
MD5 d45baf87fe8eda59348561b376058d4a
BLAKE2b-256 7ecfcb150c728641928f42fcf2b9a77e38256580e28483fd4967ac2ac2d605d0

See more details on using hashes here.

File details

Details for the file imops-0.9.0-cp312-cp312-win_amd64.whl.

File metadata

  • Download URL: imops-0.9.0-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 4.2 MB
  • Tags: CPython 3.12, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.9.19

File hashes

Hashes for imops-0.9.0-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 b54e20b022bbb7b986e480f208781607b1ac11db7906722e412b10b5896abd38
MD5 b754f196bed2996de22c0ca23b6fc9d9
BLAKE2b-256 96f1a5d122f0649b616d912ed8c8ce6f472f84bc123b685031958b6fa578f917

See more details on using hashes here.

File details

Details for the file imops-0.9.0-cp312-cp312-win32.whl.

File metadata

  • Download URL: imops-0.9.0-cp312-cp312-win32.whl
  • Upload date:
  • Size: 4.0 MB
  • Tags: CPython 3.12, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.9.19

File hashes

Hashes for imops-0.9.0-cp312-cp312-win32.whl
Algorithm Hash digest
SHA256 59faaf9e8a4083016d50a966a8dd5b3390b3a8a146ad32039793c9b1b68accf7
MD5 298bcf901e12a476975e9a3489adeb3e
BLAKE2b-256 7612cf20c0d25544330324e029d5e82b5941cd6df0f20403f2702465dc0c9a80

See more details on using hashes here.

File details

Details for the file imops-0.9.0-cp312-cp312-musllinux_1_1_x86_64.whl.

File metadata

File hashes

Hashes for imops-0.9.0-cp312-cp312-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 85740dace00ffa4c3a0c75a7f6b8523d706fc6b51e739c209e953bfd810978d4
MD5 550e0cb09c810cc04480088744bd4438
BLAKE2b-256 2ab10352ca2a68ee9381e7616a47abfc2e654be14e39e34e0cb4c8e57d442c66

See more details on using hashes here.

File details

Details for the file imops-0.9.0-cp312-cp312-musllinux_1_1_i686.whl.

File metadata

File hashes

Hashes for imops-0.9.0-cp312-cp312-musllinux_1_1_i686.whl
Algorithm Hash digest
SHA256 d3755bcefd17e6e16d0f9608dfca7130ee1aacbb962eaadec10855f87adf3a0f
MD5 eb4ebea939a16bef3add38fabd8ec3ec
BLAKE2b-256 030de8c0263a1e787b0dd555e95007adbc46b9d6fc526b074c6991c6e748e295

See more details on using hashes here.

File details

Details for the file imops-0.9.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for imops-0.9.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 00dfcab0650a2fde8cb4039ebf77c4ae353d46537d57b7074b551b0dc5452391
MD5 9b70ccfed5ad9953f9cc0d9015784f76
BLAKE2b-256 9213ce9cee280a22a7bd8d3a5052cc7326ed6594a0347fa256d0fc6f7b614efb

See more details on using hashes here.

File details

Details for the file imops-0.9.0-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for imops-0.9.0-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 fa15f459e5ab4dc6abb4c84e301e8036cd4e0e87f602200b0f84910d682bee40
MD5 0858ad8583cfe6a68670f7133b91cd81
BLAKE2b-256 99db26df64fcc7032093795c4b220b85ce80649f09e73e81703cf5c4df9f2c44

See more details on using hashes here.

File details

Details for the file imops-0.9.0-cp312-cp312-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for imops-0.9.0-cp312-cp312-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 de3b0bfe41329fc30c8dcbd21ad34909d73cabf93ad609c31fa4e8b2365a1617
MD5 054b87d236f98e4f7dae4a1bdfef8eca
BLAKE2b-256 d17fd30a5b58bc94375598f3a7bdea7cdfd53dde502377b25b4a915808508467

See more details on using hashes here.

File details

Details for the file imops-0.9.0-cp311-cp311-win_amd64.whl.

File metadata

  • Download URL: imops-0.9.0-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 4.2 MB
  • Tags: CPython 3.11, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.9.19

File hashes

Hashes for imops-0.9.0-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 455c6e1cb7bc1988912bb557b75cdc97c27d98dd06ec1a3531c08ef50cd95e57
MD5 6b0d2d781ae0b7486458fa7c224a36bb
BLAKE2b-256 fc2340ae3d6831e2d20bb345dbe26c6cbc49a3888ad83d4bbe6fa2c4294732f8

See more details on using hashes here.

File details

Details for the file imops-0.9.0-cp311-cp311-win32.whl.

File metadata

  • Download URL: imops-0.9.0-cp311-cp311-win32.whl
  • Upload date:
  • Size: 4.0 MB
  • Tags: CPython 3.11, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.9.19

File hashes

Hashes for imops-0.9.0-cp311-cp311-win32.whl
Algorithm Hash digest
SHA256 dadcfab9b6082fa1e998f72bf53b5610f566fa775c4752dcca8fb49a734c5fd1
MD5 67b091b5fc6aff658556ea5fded4ad49
BLAKE2b-256 e3583ce9e742b41a958c1bd48c1b3e27402f85cc9988258b8c094f2b97f95dc8

See more details on using hashes here.

File details

Details for the file imops-0.9.0-cp311-cp311-musllinux_1_1_x86_64.whl.

File metadata

File hashes

Hashes for imops-0.9.0-cp311-cp311-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 445fdb19caf04d4cc43a80c0f93ae16fe2f49143aa730fee07e925cfa9e82851
MD5 c59a98e4715e222a95ae09d003843d44
BLAKE2b-256 2da823865dfdd5c9a76ff47270aa0e00e67b200b9ec7f0ea25bbe03456a89ac2

See more details on using hashes here.

File details

Details for the file imops-0.9.0-cp311-cp311-musllinux_1_1_i686.whl.

File metadata

File hashes

Hashes for imops-0.9.0-cp311-cp311-musllinux_1_1_i686.whl
Algorithm Hash digest
SHA256 059c19dd9235b4b792e70d134dff156dd797ed600dacf6296be8d49357119dad
MD5 e510143d4bdfa2e573f89449c1e790b7
BLAKE2b-256 c3e0fce68372ad6b0c35faafefbe4b7ecacc425b8da8e63ec5a28cacd2d9eb3c

See more details on using hashes here.

File details

Details for the file imops-0.9.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for imops-0.9.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 04cc449d209aa36eb92bdcb281d25c1c41c473dd51347dd85b3275a39fa413af
MD5 0ac8e20ed7752146ca2e305ef6966fc7
BLAKE2b-256 59b154a6c6ce967596ef80d672b93beeb331b9a48f1bb9cbe5078f3dc05c831e

See more details on using hashes here.

File details

Details for the file imops-0.9.0-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for imops-0.9.0-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 cf75e393d7c878edbae25aaeb730c3098a4c82e83280d335b7004a1f27099f43
MD5 99a5165e39975c6966a31ec9553ce078
BLAKE2b-256 9c07a2052d6282d3085309f32561e24a2f3c26a47d6c9e3b92e9c1ff4b6a6d69

See more details on using hashes here.

File details

Details for the file imops-0.9.0-cp311-cp311-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for imops-0.9.0-cp311-cp311-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 7ec6e0c227019fbc0ca3f3dadfea27f7ff6902d354923381cc2608a2c7844252
MD5 622f583941cceef2b05d00e8b00a0a0b
BLAKE2b-256 df1b2f813883db9f09c7538f97006b8be9e6854ff045de2c0ec22cd7f9da6a49

See more details on using hashes here.

File details

Details for the file imops-0.9.0-cp310-cp310-win_amd64.whl.

File metadata

  • Download URL: imops-0.9.0-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 4.2 MB
  • Tags: CPython 3.10, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.9.19

File hashes

Hashes for imops-0.9.0-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 4ea1597451e766dd832a8cd4b2c519a9c8e9e97437f07119d0288ec195d6ed8a
MD5 7c11265fb75c55b91ea2096e48e6ab7c
BLAKE2b-256 08fe243cb1d8b25e42eaea5d79a5f2d3b567fea1a11a8c0fa26c917d7687c752

See more details on using hashes here.

File details

Details for the file imops-0.9.0-cp310-cp310-win32.whl.

File metadata

  • Download URL: imops-0.9.0-cp310-cp310-win32.whl
  • Upload date:
  • Size: 4.0 MB
  • Tags: CPython 3.10, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.9.19

File hashes

Hashes for imops-0.9.0-cp310-cp310-win32.whl
Algorithm Hash digest
SHA256 c700db4e870614a3740c4c838f67da1e478670a9c0b7657c206aeade2be72f1b
MD5 7457719c2efec7cae883c10a77d2146d
BLAKE2b-256 231d27231437a0213edc42eb7db3133d9b8fe18739ab53be74905581175fef2e

See more details on using hashes here.

File details

Details for the file imops-0.9.0-cp310-cp310-musllinux_1_1_x86_64.whl.

File metadata

File hashes

Hashes for imops-0.9.0-cp310-cp310-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 e7be2ef2fb5b545a6e1105a77c924d477afea8db869e49823425aa2ce1dab532
MD5 f172b980bd4ffff166cad1e9c33c1f14
BLAKE2b-256 002a1af5d5256656ddc6fb9b41bd4c1a84bc7b9ca67ea974f979caf084694fc3

See more details on using hashes here.

File details

Details for the file imops-0.9.0-cp310-cp310-musllinux_1_1_i686.whl.

File metadata

File hashes

Hashes for imops-0.9.0-cp310-cp310-musllinux_1_1_i686.whl
Algorithm Hash digest
SHA256 36aa63778350fe8a862d1fa135c2c93b5bbfa1ca45f005ceee5bf74ed5a8e5ea
MD5 9b74816e1d7de2e6e4667a8ff0caf29f
BLAKE2b-256 c4f830a9773debc86f1e09d4a09de994cdee38a0f3655ff030abd7c1bfaab322

See more details on using hashes here.

File details

Details for the file imops-0.9.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for imops-0.9.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 b645baea1cf7517a064e0937ec29521667514c674365ec3cd415027ef3121a6d
MD5 e8b2be5c9ce8f8f3dfa37d8d4c0b3a4c
BLAKE2b-256 c5cf3ccc296761d8c0c5fde507ecc5d53d27848b311608f4e05efa9e0908b57b

See more details on using hashes here.

File details

Details for the file imops-0.9.0-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for imops-0.9.0-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 64116c0b8fbd1b26c772212cec61217aba8ee003fe8c77d78325f962de3d4a90
MD5 9760e8ef89704d801c2cb7ed30dc27ef
BLAKE2b-256 50dbd2f0e38c7cbdbea5fb7b579e81a057f21f520fcbd88f114077565fc70753

See more details on using hashes here.

File details

Details for the file imops-0.9.0-cp310-cp310-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for imops-0.9.0-cp310-cp310-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 8d832c76dd3871ea721d013f7b0d1327808d2384783f088280a96a536e8d1070
MD5 769ff87b144cc2523039442b8070fa7e
BLAKE2b-256 45b2b90ce59fd0efc724b18bb1e814060dd7232922ea98604511cf6219f2b1e4

See more details on using hashes here.

File details

Details for the file imops-0.9.0-cp39-cp39-win_amd64.whl.

File metadata

  • Download URL: imops-0.9.0-cp39-cp39-win_amd64.whl
  • Upload date:
  • Size: 4.2 MB
  • Tags: CPython 3.9, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.9.19

File hashes

Hashes for imops-0.9.0-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 b5515e9073d1724e66e19a0862206e9346c7873cb73b3bfd87bb20e9ff8b1db7
MD5 c4c23eaafd0464c4f16f32a59d8c17ac
BLAKE2b-256 b967bc30b552aaa2d17edac77fab282bcc642919fc058d261711dfe8d717501e

See more details on using hashes here.

File details

Details for the file imops-0.9.0-cp39-cp39-win32.whl.

File metadata

  • Download URL: imops-0.9.0-cp39-cp39-win32.whl
  • Upload date:
  • Size: 4.0 MB
  • Tags: CPython 3.9, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.9.19

File hashes

Hashes for imops-0.9.0-cp39-cp39-win32.whl
Algorithm Hash digest
SHA256 8ac1a600b355a3647506a05ee4eb41b5b2513f7247fc23e913d6e3e023c6f7ef
MD5 eca902cfd2d75f2f4803115147464901
BLAKE2b-256 316ce8b9997b72835623a1932b3665acc12de58ec2d578f5f091ca199ac2295b

See more details on using hashes here.

File details

Details for the file imops-0.9.0-cp39-cp39-musllinux_1_1_x86_64.whl.

File metadata

File hashes

Hashes for imops-0.9.0-cp39-cp39-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 509c85c00c82b41a3a6ab41ba7595c41194453e741c5da5247dd37442d84526b
MD5 1777b0f7759ccaa706aaec448d893dc2
BLAKE2b-256 6a4dc5bbe6a5060fad267e18a9cd500b9cf305e09ba89698e3c75e59b1522cff

See more details on using hashes here.

File details

Details for the file imops-0.9.0-cp39-cp39-musllinux_1_1_i686.whl.

File metadata

File hashes

Hashes for imops-0.9.0-cp39-cp39-musllinux_1_1_i686.whl
Algorithm Hash digest
SHA256 8f55000904d002e198e61fdbf3e6e74c9abe10a0071de3f79c3919fce1649637
MD5 9d5275182dff50fe7fdaafe54bb4bb23
BLAKE2b-256 5baed86575778665380e197b5f838f316ad45bcfa13a918a614e335eb65be543

See more details on using hashes here.

File details

Details for the file imops-0.9.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for imops-0.9.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 901a0de2fa83a1850b9d8a3f07859fcfae267c3856eee97d2857a690d616ffbd
MD5 f7baf5dd116931d114da2c7be8b07532
BLAKE2b-256 61bab4aa1fee1e86dd2674bc8af23a3650a8e3fb9af70e6ba2924fd61854cf24

See more details on using hashes here.

File details

Details for the file imops-0.9.0-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for imops-0.9.0-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 8d81d151767bbf5770163143e70116dbee56a3c76007f1dd2dc9fde1411772c3
MD5 8d2c0ef71e08cc2ade0f8912247cb1c5
BLAKE2b-256 0ccd44783b7d3a24a96511894ac062d9dba688b10a57da61d38d6fbde4ad1c07

See more details on using hashes here.

File details

Details for the file imops-0.9.0-cp39-cp39-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for imops-0.9.0-cp39-cp39-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 f59ffcb9ce6cf41ba6a456ee2a847e9f51c4ffe63708f2e6f6a424d57542d45d
MD5 0d0df7ce498b1a70375a7c3c6b7ca2f4
BLAKE2b-256 12c67899eee85a022ca0725bec5dc8f5902364679fb1c771f39c9bd5cc681ce4

See more details on using hashes here.

File details

Details for the file imops-0.9.0-cp38-cp38-win_amd64.whl.

File metadata

  • Download URL: imops-0.9.0-cp38-cp38-win_amd64.whl
  • Upload date:
  • Size: 4.2 MB
  • Tags: CPython 3.8, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.9.19

File hashes

Hashes for imops-0.9.0-cp38-cp38-win_amd64.whl
Algorithm Hash digest
SHA256 af93220dca3644f56edb0423d7e2a11a4c6386a2ef536a67cd08b2640889b9b5
MD5 f56733364c554ab3c5c8af2df59636cf
BLAKE2b-256 f41394fbb6376bfbfc8b9f8f8e90fb4cbe6562eae81112d4a8b6bba664a1fb1e

See more details on using hashes here.

File details

Details for the file imops-0.9.0-cp38-cp38-win32.whl.

File metadata

  • Download URL: imops-0.9.0-cp38-cp38-win32.whl
  • Upload date:
  • Size: 3.9 MB
  • Tags: CPython 3.8, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.9.19

File hashes

Hashes for imops-0.9.0-cp38-cp38-win32.whl
Algorithm Hash digest
SHA256 2813cd6b6a21921d914d5a719ad5493390facc29599d5e6616e23894cc537d4d
MD5 504b98d18d1c354993606f49a439928b
BLAKE2b-256 9cd15dcebda7af880a486cb988380aafce4243533494fa0082768155b3d15f8d

See more details on using hashes here.

File details

Details for the file imops-0.9.0-cp38-cp38-musllinux_1_1_x86_64.whl.

File metadata

File hashes

Hashes for imops-0.9.0-cp38-cp38-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 58d025ceeefd0a6c0b3321bc2787f9c98b56932166af905995dd5cb207ebcbdb
MD5 5b6f74c39217b3548329d23b75904603
BLAKE2b-256 5ca5f1200fdd41c334363ff0f5760133df4ddee09051938edc1aafcb24361599

See more details on using hashes here.

File details

Details for the file imops-0.9.0-cp38-cp38-musllinux_1_1_i686.whl.

File metadata

File hashes

Hashes for imops-0.9.0-cp38-cp38-musllinux_1_1_i686.whl
Algorithm Hash digest
SHA256 6d1c34a333f009c0c85fafe336c126d5f89636f7b81f4ae9409805afdffff2c0
MD5 9eb644bc8c7241d9796d5d1cb5740b84
BLAKE2b-256 4fbf39973ae9925dfe60c2697e3d9650de864eb23e810b972f87034f02675fbe

See more details on using hashes here.

File details

Details for the file imops-0.9.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for imops-0.9.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 2119bfa4b5f0e40a12b2d4fccb18294a52c1a326587c9ce8dd99d95ac83474b2
MD5 6fedc0c199b27ae3e5de06eb3a0788a2
BLAKE2b-256 d94ffe42f6d0cc934fc9a374f413709ff2679b07200b4ad4a880b46d97164cd5

See more details on using hashes here.

File details

Details for the file imops-0.9.0-cp38-cp38-manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for imops-0.9.0-cp38-cp38-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 63e595dfc936f1b0ac3735ff02ba5751fe26a8f5561bfb00a3000d698ee8d790
MD5 ef7fb896fdd69aab0bd9123e3e42de61
BLAKE2b-256 84614c751e21f23885a24967e6fb9a6c30a8ee7c30459b685dfdad169b0841e9

See more details on using hashes here.

File details

Details for the file imops-0.9.0-cp38-cp38-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for imops-0.9.0-cp38-cp38-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 136370e29390e0b0ddaf5f9f31a761be8a8c6d8c49b872044c930152ada56636
MD5 5186bb6ae08591c7169010f439241a27
BLAKE2b-256 2a85b79746c233f6e878d853a036238a7a2849c9ab4e105c37ce8c429d3090db

See more details on using hashes here.

File details

Details for the file imops-0.9.0-cp37-cp37m-win_amd64.whl.

File metadata

  • Download URL: imops-0.9.0-cp37-cp37m-win_amd64.whl
  • Upload date:
  • Size: 4.2 MB
  • Tags: CPython 3.7m, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.9.19

File hashes

Hashes for imops-0.9.0-cp37-cp37m-win_amd64.whl
Algorithm Hash digest
SHA256 2f859a54f39263ab5d7fc4dafc8606bb40a3486e6b7402117f78cb740773e408
MD5 af4fed27718bd362169da2c94d8c2ea7
BLAKE2b-256 6227170eef72d2e0ba66eb131b39d5a814abd27e69b9466b7ddcf3cc489ce94f

See more details on using hashes here.

File details

Details for the file imops-0.9.0-cp37-cp37m-win32.whl.

File metadata

  • Download URL: imops-0.9.0-cp37-cp37m-win32.whl
  • Upload date:
  • Size: 3.9 MB
  • Tags: CPython 3.7m, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.9.19

File hashes

Hashes for imops-0.9.0-cp37-cp37m-win32.whl
Algorithm Hash digest
SHA256 c369a21e112b756afd60b5266f8d4d52635e44ef64826460b0f804bab506bbc4
MD5 fe0aa5ab0dfd86053e94c00e9658333f
BLAKE2b-256 4acf3282f6b95a0eafe98f30934c4fcb0bafc2b8d94e3d8d252aebe76e2a9553

See more details on using hashes here.

File details

Details for the file imops-0.9.0-cp37-cp37m-musllinux_1_1_x86_64.whl.

File metadata

File hashes

Hashes for imops-0.9.0-cp37-cp37m-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 fe7c92f7171b5375d00dc4856e18adeb6cf182b502f660b8849a6ef413d92d57
MD5 c156ea333d914260c3b3b872f88b8f09
BLAKE2b-256 74ebde44de773f6b06bf6a149f3b7b2fc00c294ff6d90d7f550557f8ebabee93

See more details on using hashes here.

File details

Details for the file imops-0.9.0-cp37-cp37m-musllinux_1_1_i686.whl.

File metadata

File hashes

Hashes for imops-0.9.0-cp37-cp37m-musllinux_1_1_i686.whl
Algorithm Hash digest
SHA256 e0468000880336150553cdd77e7e6d000cb02210dec9ec3246009da01c301e32
MD5 637f3327a07814db52ad29f8fbc3959a
BLAKE2b-256 42c4ff8c6334305d59010d9d653eda4665cdc13bfee60450947b0b44baed1e33

See more details on using hashes here.

File details

Details for the file imops-0.9.0-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for imops-0.9.0-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 0db280d5f660bddf5622b0e3c86479649dc7a268e871763202d009c18b4228b5
MD5 4d3fd599b07d6746d9bafce64f9066a6
BLAKE2b-256 9d6fab2954cc447d0e311a3d7abd7070e98b9b19b45f146e8ca223f92bd4fc58

See more details on using hashes here.

File details

Details for the file imops-0.9.0-cp37-cp37m-manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for imops-0.9.0-cp37-cp37m-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 6ca4bbefc62c16f28e94491c6ea03a2e9ea44838584bc62e092a3931285576f1
MD5 79668fbe3fcd77f971d0f3a5f4f90201
BLAKE2b-256 925142e324ce8c0d3262dddfeb61cf0fd87a9ff4aec804871af713d75247c85a

See more details on using hashes here.

File details

Details for the file imops-0.9.0-cp37-cp37m-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for imops-0.9.0-cp37-cp37m-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 fff21bd69f7ef23c19d0628a16d6ecb9abaca7e896c511e768cd2e20742ba5ee
MD5 ce6d6d0fac0133f0454ddbe14b400c8f
BLAKE2b-256 e1c357207a12da5089c9f1708c2cf3e8e221ff2d021581b1c4e8bfe37be739c4

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