Skip to main content

Scalar and vectorial models of the microscope point spread function (PSF).

Project description

psfmodels

PyPI Python Version CI codecov

Python bindings for scalar and vectorial models of the point spread function.

Original C++ code and MATLAB MEX bindings Copyright © 2006-2013, Francois Aguet, distributed under GPL-3.0 license. Python bindings by Talley Lambert

This package contains three models:

  1. The vectorial model is described in Auget et al 20091. For more information and implementation details, see Francois' Thesis2.
  2. A scalar model, based on Gibson & Lanni3.
  3. A gaussian approximation (both paraxial and non-paraxial), using paramters from Zhang et al (2007)4.

1 F. Aguet et al., (2009) Opt. Express 17(8), pp. 6829-6848

2 F. Aguet. (2009) Super-Resolution Fluorescence Microscopy Based on Physical Models. Swiss Federal Institute of Technology Lausanne, EPFL Thesis no. 4418

3 F. Gibson and F. Lanni (1992) J. Opt. Soc. Am. A, vol. 9, no. 1, pp. 154-166

4 Zhang et al (2007). Appl Opt . 2007 Apr 1;46(10):1819-29.

see also:

For a different (faster) scalar-based Gibson–Lanni PSF model, see the MicroscPSF project, based on Li et al (2017) which has been implemented in Python, MATLAB, and ImageJ/Java

Install

pip install psfmodels

from source

git clone https://github.com/tlambert03/PSFmodels.git
cd PSFmodels
pip install -e ".[dev]"  # will compile c code via pybind11

Usage

There are two main functions in psfmodels: vectorial_psf and scalar_psf. Additionally, each version has a helper function called vectorial_psf_centered and scalar_psf_centered respectively. The main difference is that the _psf functions accept a vector of Z positions zv (relative to coverslip) at which PSF is calculated. As such, the point source may or may not actually be in the center of the rendered volume. The _psf_centered variants, by contrast, do not accecpt zv, but rather accept nz (the number of z planes) and dz (the z step size in microns), and always generates an output volume in which the point source is positioned in the middle of the Z range, with planes equidistant from each other. All functions accept an argument pz, specifying the position of the point source relative to the coverslip. See additional keyword arguments below

Note, all output dimensions (nx and nz) should be odd.

import psfmodels as psfm
import matplotlib.pyplot as plt
from matplotlib.colors import PowerNorm

# generate centered psf with a point source at `pz` microns from coverslip
# shape will be (127, 127, 127)
psf = psfm.make_psf(127, 127, dxy=0.05, dz=0.05, pz=0)
fig, (ax1, ax2) = plt.subplots(1, 2)
ax1.imshow(psf[nz//2], norm=PowerNorm(gamma=0.4))
ax2.imshow(psf[:, nx//2], norm=PowerNorm(gamma=0.4))
plt.show()

Image of PSF

# instead of nz and dz, you can directly specify a vector of z positions
import numpy as np

# generate 31 evenly spaced Z positions from -3 to 3 microns
psf = psfm.make_psf(np.linspace(-3, 3, 31), nx=127)
psf.shape  # (31, 127, 127)

all PSF functions accept the following parameters. Units should be provided in microns unless otherwise stated. Python API may change slightly in the future. See function docstrings as well.

nx (int):       XY size of output PSF in pixels, must be odd.
dxy (float):    pixel size in sample space (microns) [default: 0.05]
pz (float):     depth of point source relative to coverslip (in microns) [default: 0]
ti0 (float):    working distance of the objective (microns) [default: 150.0]
ni0 (float):    immersion medium refractive index, design value [default: 1.515]
ni (float):     immersion medium refractive index, experimental value [default: 1.515]
tg0 (float):    coverslip thickness, design value (microns) [default: 170.0]
tg (float):     coverslip thickness, experimental value (microns) [default: 170.0]
ng0 (float):    coverslip refractive index, design value [default: 1.515]
ng (float):     coverslip refractive index, experimental value [default: 1.515]
ns (float):     sample refractive index [default: 1.47]
wvl (float):    emission wavelength (microns) [default: 0.6]
NA (float):     numerical aperture [default: 1.4]

Comparison with other models

While these models are definitely slower than the one implemented in Li et al (2017) and MicroscPSF, there are some interesting differences between the scalar and vectorial approximations, particularly with higher NA lenses, non-ideal sample refractive index, and increasing spherical aberration with depth from the coverslip.

For an interactive comparison, see the examples.ipynb Jupyter notebook.

Lightsheet PSF utility function

The psfmodels.tot_psf() function provides a quick way to simulate the total system PSF (excitation x detection) as might be observed on a light sheet microscope (currently, only strictly orthogonal illumination and detection are supported). See the lightsheet.ipynb Jupyter notebook for examples.

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

psfmodels-0.3.3.tar.gz (581.1 kB view details)

Uploaded Source

Built Distributions

psfmodels-0.3.3-cp311-cp311-win_amd64.whl (111.0 kB view details)

Uploaded CPython 3.11 Windows x86-64

psfmodels-0.3.3-cp311-cp311-musllinux_1_1_x86_64.whl (673.9 kB view details)

Uploaded CPython 3.11 musllinux: musl 1.1+ x86-64

psfmodels-0.3.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (158.2 kB view details)

Uploaded CPython 3.11 manylinux: glibc 2.17+ x86-64

psfmodels-0.3.3-cp311-cp311-macosx_11_0_arm64.whl (106.1 kB view details)

Uploaded CPython 3.11 macOS 11.0+ ARM64

psfmodels-0.3.3-cp311-cp311-macosx_10_9_x86_64.whl (113.1 kB view details)

Uploaded CPython 3.11 macOS 10.9+ x86-64

psfmodels-0.3.3-cp310-cp310-win_amd64.whl (111.0 kB view details)

Uploaded CPython 3.10 Windows x86-64

psfmodels-0.3.3-cp310-cp310-musllinux_1_1_x86_64.whl (673.9 kB view details)

Uploaded CPython 3.10 musllinux: musl 1.1+ x86-64

psfmodels-0.3.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (158.2 kB view details)

Uploaded CPython 3.10 manylinux: glibc 2.17+ x86-64

psfmodels-0.3.3-cp310-cp310-macosx_11_0_arm64.whl (106.1 kB view details)

Uploaded CPython 3.10 macOS 11.0+ ARM64

psfmodels-0.3.3-cp310-cp310-macosx_10_9_x86_64.whl (113.1 kB view details)

Uploaded CPython 3.10 macOS 10.9+ x86-64

psfmodels-0.3.3-cp39-cp39-win_amd64.whl (110.7 kB view details)

Uploaded CPython 3.9 Windows x86-64

psfmodels-0.3.3-cp39-cp39-musllinux_1_1_x86_64.whl (673.9 kB view details)

Uploaded CPython 3.9 musllinux: musl 1.1+ x86-64

psfmodels-0.3.3-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (158.1 kB view details)

Uploaded CPython 3.9 manylinux: glibc 2.17+ x86-64

psfmodels-0.3.3-cp39-cp39-macosx_11_0_arm64.whl (106.2 kB view details)

Uploaded CPython 3.9 macOS 11.0+ ARM64

psfmodels-0.3.3-cp39-cp39-macosx_10_9_x86_64.whl (113.2 kB view details)

Uploaded CPython 3.9 macOS 10.9+ x86-64

psfmodels-0.3.3-cp38-cp38-win_amd64.whl (111.0 kB view details)

Uploaded CPython 3.8 Windows x86-64

psfmodels-0.3.3-cp38-cp38-musllinux_1_1_x86_64.whl (673.7 kB view details)

Uploaded CPython 3.8 musllinux: musl 1.1+ x86-64

psfmodels-0.3.3-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (158.0 kB view details)

Uploaded CPython 3.8 manylinux: glibc 2.17+ x86-64

psfmodels-0.3.3-cp38-cp38-macosx_11_0_arm64.whl (106.0 kB view details)

Uploaded CPython 3.8 macOS 11.0+ ARM64

psfmodels-0.3.3-cp38-cp38-macosx_10_9_x86_64.whl (113.0 kB view details)

Uploaded CPython 3.8 macOS 10.9+ x86-64

psfmodels-0.3.3-cp37-cp37m-win_amd64.whl (111.5 kB view details)

Uploaded CPython 3.7m Windows x86-64

psfmodels-0.3.3-cp37-cp37m-musllinux_1_1_x86_64.whl (675.1 kB view details)

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

psfmodels-0.3.3-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (158.1 kB view details)

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

psfmodels-0.3.3-cp37-cp37m-macosx_10_9_x86_64.whl (112.9 kB view details)

Uploaded CPython 3.7m macOS 10.9+ x86-64

File details

Details for the file psfmodels-0.3.3.tar.gz.

File metadata

  • Download URL: psfmodels-0.3.3.tar.gz
  • Upload date:
  • Size: 581.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.11.3

File hashes

Hashes for psfmodels-0.3.3.tar.gz
Algorithm Hash digest
SHA256 4dd4388f26b731d0a39b1e0593648c02aff108a89dea2218632536479e24de57
MD5 2a861cafd2eac04adef35a0817eb831a
BLAKE2b-256 9265c2d27897c4cbb9d36e83a65ace5543b490af4160e85bcf5c6c03eb30c7e6

See more details on using hashes here.

File details

Details for the file psfmodels-0.3.3-cp311-cp311-win_amd64.whl.

File metadata

File hashes

Hashes for psfmodels-0.3.3-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 6015f92f25834f04ef4d4a670bb02271e342f37955f2ea868387a6f3e76f61e1
MD5 1bee7f40793fd345b67d9ca7ff7b2e99
BLAKE2b-256 7750c9d02dd6ee9f7840a141b6a00a1bd6b1db75f981871074697e0edfd48205

See more details on using hashes here.

File details

Details for the file psfmodels-0.3.3-cp311-cp311-musllinux_1_1_x86_64.whl.

File metadata

File hashes

Hashes for psfmodels-0.3.3-cp311-cp311-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 7af483fe5868a1300763c3f9288756f867a8b4d8dd08d8eabec8342bd58ca65e
MD5 c6306ab00aeac7af86106301adae8bc4
BLAKE2b-256 1c9b5fc5c787ba3aae60f2ba1888e390c3f1cc695be46c90b268794e6e413d06

See more details on using hashes here.

File details

Details for the file psfmodels-0.3.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for psfmodels-0.3.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 28b4719506e2784e90edf191ae1fbb820c1455d661b10aed916a8fdec9448f81
MD5 1da21969a8c60a982a3dc639947743a5
BLAKE2b-256 2d380c2002e91c975a386092c2af5be87956dea0e50cfbc0f795baafe405a177

See more details on using hashes here.

File details

Details for the file psfmodels-0.3.3-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for psfmodels-0.3.3-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 18cd28bd5fae8334dcabcb424e6de1ce42527661ef7197f94eec455ec64cf6ed
MD5 9f38580b66bdab0293555c634161ca13
BLAKE2b-256 39acc3134cbe0386f0b775a621f58b8d2fb948334bad2f534255c3baf4f8c7da

See more details on using hashes here.

File details

Details for the file psfmodels-0.3.3-cp311-cp311-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for psfmodels-0.3.3-cp311-cp311-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 55e27e40ccc0d2d6377d2801df67363879ef032ded5722b4a3f1dcc359d6f4ff
MD5 938f48533a5c444ddd16912e9658b66a
BLAKE2b-256 12fb85cc651f15555dd6d1c0336cc8975b03e47372c5e68c4de68e8b105c96db

See more details on using hashes here.

File details

Details for the file psfmodels-0.3.3-cp310-cp310-win_amd64.whl.

File metadata

File hashes

Hashes for psfmodels-0.3.3-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 546e96d1298a0ee132eff06961b64c24b7e2f5d44b81f205ab79120a2f0eb0ae
MD5 d5e89bcafb1565ac4fd4feb270a2140e
BLAKE2b-256 d6498ab2f493ff0f3e576bac7756ef9339cdb8cc8a15df7ef71cd92761740373

See more details on using hashes here.

File details

Details for the file psfmodels-0.3.3-cp310-cp310-musllinux_1_1_x86_64.whl.

File metadata

File hashes

Hashes for psfmodels-0.3.3-cp310-cp310-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 f4cdf4bb035c4312fef8206f012a86f5670c0a4f7323eaffc7b6e94f49afbb8f
MD5 364f01187df01ef98bdb6f33a24c56e4
BLAKE2b-256 0d02e50b8969552b8d8ce9a78dbaaee1a6ab2d4c48f695d6cbbf0de052ef2ed4

See more details on using hashes here.

File details

Details for the file psfmodels-0.3.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for psfmodels-0.3.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 2fd544494a4aee0573bc0573e23033c3bf4f58f7145f9cfd5f784a7e08ab34cf
MD5 1fd8383dd804b2e8a2cfbc2dc3358ec8
BLAKE2b-256 28226fc28a14975d7308b54faa0309de6ed6013d6ce0d049274815c72ac41065

See more details on using hashes here.

File details

Details for the file psfmodels-0.3.3-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for psfmodels-0.3.3-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 bfa93b79b4a00c9b24409508fd5f086dcd092f9ad1ad2f994c3121eb2ae39784
MD5 0c28d7acc5abdd00b92161c80c6d5ff7
BLAKE2b-256 f706e6f0831ffaebb1434d781b6f21132edf23d5f18a0786f510325c90f2852c

See more details on using hashes here.

File details

Details for the file psfmodels-0.3.3-cp310-cp310-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for psfmodels-0.3.3-cp310-cp310-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 44719f2fc8d7fa6e22a3ac05f2f0aa79c61c437ef6ed9d407175ef06e4aa1f7f
MD5 9f25241a821ac579fe3e871b744b58da
BLAKE2b-256 0760f17f914a0d411108f7f44937816e480c41c955535945b94d9a446f140721

See more details on using hashes here.

File details

Details for the file psfmodels-0.3.3-cp39-cp39-win_amd64.whl.

File metadata

  • Download URL: psfmodels-0.3.3-cp39-cp39-win_amd64.whl
  • Upload date:
  • Size: 110.7 kB
  • Tags: CPython 3.9, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.11.3

File hashes

Hashes for psfmodels-0.3.3-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 7ef1d766540d7f1cfe3a22f6ad6057e28672b523fcb4ba012c333d2079f7cf9c
MD5 8f91b7057e68a6d7250493452704de93
BLAKE2b-256 03c270dfcbc094505b1831f272ad49cac3d77595a3de2fb50c4d45940a25f787

See more details on using hashes here.

File details

Details for the file psfmodels-0.3.3-cp39-cp39-musllinux_1_1_x86_64.whl.

File metadata

File hashes

Hashes for psfmodels-0.3.3-cp39-cp39-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 faeee699758b5c8415159461b1df984b32e10d0c8ffafed627278e33cc0958b6
MD5 a02797d024430123d1783630ff52983e
BLAKE2b-256 bca64510a7a3008e8f6874c4645d19b7d2846a470ff88f5c4dbd583b55c81ab8

See more details on using hashes here.

File details

Details for the file psfmodels-0.3.3-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for psfmodels-0.3.3-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 892c4f878ca18c8d924298a59e85ac74acd2044326321e10053f9a04092028d7
MD5 bcab2a4977d3ac835a944b93159bba59
BLAKE2b-256 b8e64aef2196f25fc904c8416062992d6aee692f060b4d6d7d0eabab2a5474b3

See more details on using hashes here.

File details

Details for the file psfmodels-0.3.3-cp39-cp39-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for psfmodels-0.3.3-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 394e91167374df7b1a99840575efd3081423c489a5e86fadcfc6416667cb7942
MD5 4b18fdfd8059a3e6dcc4c9d3f129dda3
BLAKE2b-256 98e0cb9c860c095cbba3e83b001c6c67ea105c7e4222d3a5a5dd5d6f44149f46

See more details on using hashes here.

File details

Details for the file psfmodels-0.3.3-cp39-cp39-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for psfmodels-0.3.3-cp39-cp39-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 73bcc890242edd589c343007cdaee6e7085b7b608bf465136446a70fa431dde2
MD5 192b67174052d77783c2aaf52d98df5a
BLAKE2b-256 e82270f9157216d3e1bcec5cd638ce1632f50c8109f7e56d81707a5182c20a95

See more details on using hashes here.

File details

Details for the file psfmodels-0.3.3-cp38-cp38-win_amd64.whl.

File metadata

  • Download URL: psfmodels-0.3.3-cp38-cp38-win_amd64.whl
  • Upload date:
  • Size: 111.0 kB
  • Tags: CPython 3.8, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.11.3

File hashes

Hashes for psfmodels-0.3.3-cp38-cp38-win_amd64.whl
Algorithm Hash digest
SHA256 007e989bebd872a16b4352c7e02798a9f6f13c246c1d7b32d390aa5da1865118
MD5 eb0f4a9f74d04ac432ee1eac5b22c431
BLAKE2b-256 a4c16efab42af9520867b467f2fb1b32193795772f1440a1742c94fa2ac0a373

See more details on using hashes here.

File details

Details for the file psfmodels-0.3.3-cp38-cp38-musllinux_1_1_x86_64.whl.

File metadata

File hashes

Hashes for psfmodels-0.3.3-cp38-cp38-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 32b5e51d3c11c860dfdda18e8603da0f6ff24a6f063c8017ccf8a400ab9b1e25
MD5 e2952c0c7d0fc71d3881f0cad605cfae
BLAKE2b-256 3b997e84728c76341f593be9575bc2e113bb8d53c3899ad957b620403c00903c

See more details on using hashes here.

File details

Details for the file psfmodels-0.3.3-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for psfmodels-0.3.3-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 0b141df4263050731ad68fb056fe52758c72978a35e2dbb781dbbce8ebdfe0fa
MD5 94c99df3ae52dc34320008a0af037cb4
BLAKE2b-256 ef23c2781eca08c63b1cb8dd51ad8e36ee270aa49464a5544d596e3969c13a88

See more details on using hashes here.

File details

Details for the file psfmodels-0.3.3-cp38-cp38-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for psfmodels-0.3.3-cp38-cp38-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 de6cdb2af93094a7eb422dfb799105a15636e50d52cf2c30f761fa1f809e6c1e
MD5 f275e13d0d49799d39f4df95be9b19f7
BLAKE2b-256 623daff7bd9f8088def417d59a405fc662f54e8665db412e4c2523f15e4ee5f5

See more details on using hashes here.

File details

Details for the file psfmodels-0.3.3-cp38-cp38-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for psfmodels-0.3.3-cp38-cp38-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 e297c1eaf6a811bc4ae913dfa573a9680ab75b675cc1559969d7b3ace9c99cbd
MD5 bee6776bbb566124a074afb231f8d15c
BLAKE2b-256 eebfac87e124c6d506049444ce48a3f65d3ffbefd8ccc629a82ad5c02bda18a6

See more details on using hashes here.

File details

Details for the file psfmodels-0.3.3-cp37-cp37m-win_amd64.whl.

File metadata

  • Download URL: psfmodels-0.3.3-cp37-cp37m-win_amd64.whl
  • Upload date:
  • Size: 111.5 kB
  • Tags: CPython 3.7m, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.11.3

File hashes

Hashes for psfmodels-0.3.3-cp37-cp37m-win_amd64.whl
Algorithm Hash digest
SHA256 ded17819fc961085e92b253b8d94a8bbade39bd26e1d9ab18c6fb33df83f588a
MD5 3edccdfc69ef4d4104d082c37e56b44c
BLAKE2b-256 88e8ec26ba303fcc8b13d1ad370287b1dee79a3b057cc0d25cbc235e994385a7

See more details on using hashes here.

File details

Details for the file psfmodels-0.3.3-cp37-cp37m-musllinux_1_1_x86_64.whl.

File metadata

File hashes

Hashes for psfmodels-0.3.3-cp37-cp37m-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 9b89ae640281cff952a2136633fb97d35cf4335acde2e5c5201ea5ee02f565f8
MD5 a9e94d19a5c4a7a9ecfba25ecbb071d1
BLAKE2b-256 4fd5bcb4887f92ae02fde8c67d677a49a364c5748583f6064bc75974a447d530

See more details on using hashes here.

File details

Details for the file psfmodels-0.3.3-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for psfmodels-0.3.3-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 b357a747a15e269fc83485e28918aab736b598a8820462d9e5f7708aa4734580
MD5 8f63a784cb891d836ce59b85a6bb7fcc
BLAKE2b-256 0815b0ff3cea9e2302cdb342b6896057620f8caebe753d34beaa7f78cd5b0601

See more details on using hashes here.

File details

Details for the file psfmodels-0.3.3-cp37-cp37m-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for psfmodels-0.3.3-cp37-cp37m-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 c41f5ac03e1c487fa90641e84fb82b3581b025b2bf2f9cb315b2e3808439c9c6
MD5 281d6fb5ca4a274b1eca055965441716
BLAKE2b-256 ebab0d99ed81311bd5d30eb2dfd36db232b6cc5fefae084610cb66bd9e8ac040

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