Skip to main content

Python Optimal Transport Library

Project description

POT: Python Optimal Transport

PyPI version Anaconda Cloud Build Status Codecov Status Downloads Anaconda downloads License

This open source Python library provide several solvers for optimization problems related to Optimal Transport for signal, image processing and machine learning.

Website and documentation: https://PythonOT.github.io/

Source Code (MIT): https://github.com/PythonOT/POT

POT provides the following generic OT solvers (links to examples):

POT provides the following Machine Learning related solvers:

Some other examples are available in the documentation.

Using and citing the toolbox

If you use this toolbox in your research and find it useful, please cite POT using the following reference from our JMLR paper:

Rémi Flamary, Nicolas Courty, Alexandre Gramfort, Mokhtar Z. Alaya, Aurélie Boisbunon, Stanislas Chambon, Laetitia Chapel, Adrien Corenflos, Kilian Fatras, Nemo Fournier, Léo Gautheron, Nathalie T.H. Gayraud, Hicham Janati, Alain Rakotomamonjy, Ievgen Redko, Antoine Rolet, Antony Schutz, Vivien Seguy, Danica J. Sutherland, Romain Tavenard, Alexander Tong, Titouan Vayer,
POT Python Optimal Transport library,
Journal of Machine Learning Research, 22(78):1−8, 2021.
Website: https://pythonot.github.io/

In Bibtex format:

@article{flamary2021pot,
  author  = {R{\'e}mi Flamary and Nicolas Courty and Alexandre Gramfort and Mokhtar Z. Alaya and Aur{\'e}lie Boisbunon and Stanislas Chambon and Laetitia Chapel and Adrien Corenflos and Kilian Fatras and Nemo Fournier and L{\'e}o Gautheron and Nathalie T.H. Gayraud and Hicham Janati and Alain Rakotomamonjy and Ievgen Redko and Antoine Rolet and Antony Schutz and Vivien Seguy and Danica J. Sutherland and Romain Tavenard and Alexander Tong and Titouan Vayer},
  title   = {POT: Python Optimal Transport},
  journal = {Journal of Machine Learning Research},
  year    = {2021},
  volume  = {22},
  number  = {78},
  pages   = {1-8},
  url     = {http://jmlr.org/papers/v22/20-451.html}
}

Installation

The library has been tested on Linux, MacOSX and Windows. It requires a C++ compiler for building/installing the EMD solver and relies on the following Python modules:

  • Numpy (>=1.16)
  • Scipy (>=1.0)
  • Cython (>=0.23) (build only, not necessary when installing from pip or conda)

Pip installation

You can install the toolbox through PyPI with:

pip install POT

or get the very latest version by running:

pip install -U https://github.com/PythonOT/POT/archive/master.zip # with --user for user install (no root)

Anaconda installation with conda-forge

If you use the Anaconda python distribution, POT is available in conda-forge. To install it and the required dependencies:

conda install -c conda-forge pot

Post installation check

After a correct installation, you should be able to import the module without errors:

import ot

Note that for easier access the module is named ot instead of pot.

Dependencies

Some sub-modules require additional dependences which are discussed below

  • ot.dr (Wasserstein dimensionality reduction) depends on autograd and pymanopt that can be installed with:
pip install pymanopt autograd
  • ot.gpu (GPU accelerated OT) depends on cupy that have to be installed following instructions on this page. Obviously you will need CUDA installed and a compatible GPU. Note that this module is deprecated since version 0.8 and will be deleted in the future. GPU is now handled automatically through the backends and several solver already can run on GPU using the Pytorch backend.

Examples

Short examples

  • Import the toolbox
import ot
  • Compute Wasserstein distances
# a,b are 1D histograms (sum to 1 and positive)
# M is the ground cost matrix
Wd = ot.emd2(a, b, M) # exact linear program
Wd_reg = ot.sinkhorn2(a, b, M, reg) # entropic regularized OT
# if b is a matrix compute all distances to a and return a vector
  • Compute OT matrix
# a,b are 1D histograms (sum to 1 and positive)
# M is the ground cost matrix
T = ot.emd(a, b, M) # exact linear program
T_reg = ot.sinkhorn(a, b, M, reg) # entropic regularized OT
  • Compute Wasserstein barycenter
# A is a n*d matrix containing d  1D histograms
# M is the ground cost matrix
ba = ot.barycenter(A, M, reg) # reg is regularization parameter

Examples and Notebooks

The examples folder contain several examples and use case for the library. The full documentation with examples and output is available on https://PythonOT.github.io/.

Acknowledgements

This toolbox has been created and is maintained by

The contributors to this library are

This toolbox benefit a lot from open source research and we would like to thank the following persons for providing some code (in various languages):

Contributions and code of conduct

Every contribution is welcome and should respect the contribution guidelines. Each member of the project is expected to follow the code of conduct.

Support

You can ask questions and join the development discussion:

You can also post bug reports and feature requests in Github issues. Make sure to read our guidelines first.

References

[1] Bonneel, N., Van De Panne, M., Paris, S., & Heidrich, W. (2011, December). Displacement interpolation using Lagrangian mass transport. In ACM Transactions on Graphics (TOG) (Vol. 30, No. 6, p. 158). ACM.

[2] Cuturi, M. (2013). Sinkhorn distances: Lightspeed computation of optimal transport. In Advances in Neural Information Processing Systems (pp. 2292-2300).

[3] Benamou, J. D., Carlier, G., Cuturi, M., Nenna, L., & Peyré, G. (2015). Iterative Bregman projections for regularized transportation problems. SIAM Journal on Scientific Computing, 37(2), A1111-A1138.

[4] S. Nakhostin, N. Courty, R. Flamary, D. Tuia, T. Corpetti, Supervised planetary unmixing with optimal transport, Whorkshop on Hyperspectral Image and Signal Processing : Evolution in Remote Sensing (WHISPERS), 2016.

[5] N. Courty; R. Flamary; D. Tuia; A. Rakotomamonjy, Optimal Transport for Domain Adaptation, in IEEE Transactions on Pattern Analysis and Machine Intelligence , vol.PP, no.99, pp.1-1

[6] Ferradans, S., Papadakis, N., Peyré, G., & Aujol, J. F. (2014). Regularized discrete optimal transport. SIAM Journal on Imaging Sciences, 7(3), 1853-1882.

[7] Rakotomamonjy, A., Flamary, R., & Courty, N. (2015). Generalized conditional gradient: analysis of convergence and applications. arXiv preprint arXiv:1510.06567.

[8] M. Perrot, N. Courty, R. Flamary, A. Habrard (2016), Mapping estimation for discrete optimal transport, Neural Information Processing Systems (NIPS).

[9] Schmitzer, B. (2016). Stabilized Sparse Scaling Algorithms for Entropy Regularized Transport Problems. arXiv preprint arXiv:1610.06519.

[10] Chizat, L., Peyré, G., Schmitzer, B., & Vialard, F. X. (2016). Scaling algorithms for unbalanced transport problems. arXiv preprint arXiv:1607.05816.

[11] Flamary, R., Cuturi, M., Courty, N., & Rakotomamonjy, A. (2016). Wasserstein Discriminant Analysis. arXiv preprint arXiv:1608.08063.

[12] Gabriel Peyré, Marco Cuturi, and Justin Solomon (2016), Gromov-Wasserstein averaging of kernel and distance matrices International Conference on Machine Learning (ICML).

[13] Mémoli, Facundo (2011). Gromov–Wasserstein distances and the metric approach to object matching. Foundations of computational mathematics 11.4 : 417-487.

[14] Knott, M. and Smith, C. S. (1984).On the optimal mapping of distributions, Journal of Optimization Theory and Applications Vol 43.

[15] Peyré, G., & Cuturi, M. (2018). Computational Optimal Transport .

[16] Agueh, M., & Carlier, G. (2011). Barycenters in the Wasserstein space. SIAM Journal on Mathematical Analysis, 43(2), 904-924.

[17] Blondel, M., Seguy, V., & Rolet, A. (2018). Smooth and Sparse Optimal Transport. Proceedings of the Twenty-First International Conference on Artificial Intelligence and Statistics (AISTATS).

[18] Genevay, A., Cuturi, M., Peyré, G. & Bach, F. (2016) Stochastic Optimization for Large-scale Optimal Transport. Advances in Neural Information Processing Systems (2016).

[19] Seguy, V., Bhushan Damodaran, B., Flamary, R., Courty, N., Rolet, A.& Blondel, M. Large-scale Optimal Transport and Mapping Estimation. International Conference on Learning Representation (2018)

[20] Cuturi, M. and Doucet, A. (2014) Fast Computation of Wasserstein Barycenters. International Conference in Machine Learning

[21] Solomon, J., De Goes, F., Peyré, G., Cuturi, M., Butscher, A., Nguyen, A. & Guibas, L. (2015). Convolutional wasserstein distances: Efficient optimal transportation on geometric domains. ACM Transactions on Graphics (TOG), 34(4), 66.

[22] J. Altschuler, J.Weed, P. Rigollet, (2017) Near-linear time approximation algorithms for optimal transport via Sinkhorn iteration, Advances in Neural Information Processing Systems (NIPS) 31

[23] Aude, G., Peyré, G., Cuturi, M., Learning Generative Models with Sinkhorn Divergences, Proceedings of the Twenty-First International Conference on Artficial Intelligence and Statistics, (AISTATS) 21, 2018

[24] Vayer, T., Chapel, L., Flamary, R., Tavenard, R. and Courty, N. (2019). Optimal Transport for structured data with application on graphs Proceedings of the 36th International Conference on Machine Learning (ICML).

[25] Frogner C., Zhang C., Mobahi H., Araya-Polo M., Poggio T. (2015). Learning with a Wasserstein Loss Advances in Neural Information Processing Systems (NIPS).

[26] Alaya M. Z., Bérar M., Gasso G., Rakotomamonjy A. (2019). Screening Sinkhorn Algorithm for Regularized Optimal Transport, Advances in Neural Information Processing Systems 33 (NeurIPS).

[27] Redko I., Courty N., Flamary R., Tuia D. (2019). Optimal Transport for Multi-source Domain Adaptation under Target Shift, Proceedings of the Twenty-Second International Conference on Artificial Intelligence and Statistics (AISTATS) 22, 2019.

[28] Caffarelli, L. A., McCann, R. J. (2010). Free boundaries in optimal transport and Monge-Ampere obstacle problems, Annals of mathematics, 673-730.

[29] Chapel, L., Alaya, M., Gasso, G. (2020). Partial Optimal Transport with Applications on Positive-Unlabeled Learning, Advances in Neural Information Processing Systems (NeurIPS), 2020.

[30] Flamary R., Courty N., Tuia D., Rakotomamonjy A. (2014). Optimal transport with Laplacian regularization: Applications to domain adaptation and shape matching, NIPS Workshop on Optimal Transport and Machine Learning OTML, 2014.

[31] Bonneel, Nicolas, et al. Sliced and radon wasserstein barycenters of measures, Journal of Mathematical Imaging and Vision 51.1 (2015): 22-45

[32] Huang, M., Ma S., Lai, L. (2021). A Riemannian Block Coordinate Descent Method for Computing the Projection Robust Wasserstein Distance, Proceedings of the 38th International Conference on Machine Learning (ICML).

[33] Kerdoncuff T., Emonet R., Marc S. Sampled Gromov Wasserstein, Machine Learning Journal (MJL), 2021

[34] Feydy, J., Séjourné, T., Vialard, F. X., Amari, S. I., Trouvé, A., & Peyré, G. (2019, April). Interpolating between optimal transport and MMD using Sinkhorn divergences. In The 22nd International Conference on Artificial Intelligence and Statistics (pp. 2681-2690). PMLR.

[35] Deshpande, I., Hu, Y. T., Sun, R., Pyrros, A., Siddiqui, N., Koyejo, S., ... & Schwing, A. G. (2019). Max-sliced wasserstein distance and its use for gans. In Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition (pp. 10648-10656).

[36] Liutkus, A., Simsekli, U., Majewski, S., Durmus, A., & Stöter, F. R. (2019, May). Sliced-Wasserstein flows: Nonparametric generative modeling via optimal transport and diffusions. In International Conference on Machine Learning (pp. 4104-4113). PMLR.

[37] Janati, H., Cuturi, M., Gramfort, A. Debiased sinkhorn barycenters Proceedings of the 37th International Conference on Machine Learning, PMLR 119:4692-4701, 2020

[38] C. Vincent-Cuaz, T. Vayer, R. Flamary, M. Corneli, N. Courty, Online Graph Dictionary Learning, International Conference on Machine Learning (ICML), 2021.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

POT-0.8.1.0.tar.gz (241.8 kB view details)

Uploaded Source

Built Distributions

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

POT-0.8.1.0-cp310-cp310-win_amd64.whl (183.5 kB view details)

Uploaded CPython 3.10Windows x86-64

POT-0.8.1.0-cp310-cp310-win32.whl (180.1 kB view details)

Uploaded CPython 3.10Windows x86

POT-0.8.1.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (661.1 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ ARM64

POT-0.8.1.0-cp310-cp310-manylinux_2_12_x86_64.manylinux2010_x86_64.whl (662.8 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.12+ x86-64

POT-0.8.1.0-cp310-cp310-manylinux_2_12_i686.manylinux2010_i686.whl (651.8 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.12+ i686

POT-0.8.1.0-cp310-cp310-macosx_11_0_arm64.whl (181.9 kB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

POT-0.8.1.0-cp310-cp310-macosx_10_9_x86_64.whl (190.3 kB view details)

Uploaded CPython 3.10macOS 10.9+ x86-64

POT-0.8.1.0-cp310-cp310-macosx_10_9_universal2.whl (243.9 kB view details)

Uploaded CPython 3.10macOS 10.9+ universal2 (ARM64, x86-64)

POT-0.8.1.0-cp39-cp39-win_amd64.whl (183.5 kB view details)

Uploaded CPython 3.9Windows x86-64

POT-0.8.1.0-cp39-cp39-win32.whl (180.1 kB view details)

Uploaded CPython 3.9Windows x86

POT-0.8.1.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (660.3 kB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ ARM64

POT-0.8.1.0-cp39-cp39-manylinux_2_12_x86_64.manylinux2010_x86_64.whl (662.3 kB view details)

Uploaded CPython 3.9manylinux: glibc 2.12+ x86-64

POT-0.8.1.0-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.whl (651.1 kB view details)

Uploaded CPython 3.9manylinux: glibc 2.12+ i686

POT-0.8.1.0-cp39-cp39-macosx_11_0_arm64.whl (182.0 kB view details)

Uploaded CPython 3.9macOS 11.0+ ARM64

POT-0.8.1.0-cp39-cp39-macosx_10_9_x86_64.whl (190.3 kB view details)

Uploaded CPython 3.9macOS 10.9+ x86-64

POT-0.8.1.0-cp39-cp39-macosx_10_9_universal2.whl (243.9 kB view details)

Uploaded CPython 3.9macOS 10.9+ universal2 (ARM64, x86-64)

POT-0.8.1.0-cp38-cp38-win_amd64.whl (183.4 kB view details)

Uploaded CPython 3.8Windows x86-64

POT-0.8.1.0-cp38-cp38-win32.whl (180.1 kB view details)

Uploaded CPython 3.8Windows x86

POT-0.8.1.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (662.4 kB view details)

Uploaded CPython 3.8manylinux: glibc 2.17+ ARM64

POT-0.8.1.0-cp38-cp38-manylinux_2_12_x86_64.manylinux2010_x86_64.whl (673.2 kB view details)

Uploaded CPython 3.8manylinux: glibc 2.12+ x86-64

POT-0.8.1.0-cp38-cp38-manylinux_2_12_i686.manylinux2010_i686.whl (659.7 kB view details)

Uploaded CPython 3.8manylinux: glibc 2.12+ i686

POT-0.8.1.0-cp38-cp38-macosx_11_0_arm64.whl (181.8 kB view details)

Uploaded CPython 3.8macOS 11.0+ ARM64

POT-0.8.1.0-cp38-cp38-macosx_10_9_x86_64.whl (189.9 kB view details)

Uploaded CPython 3.8macOS 10.9+ x86-64

POT-0.8.1.0-cp38-cp38-macosx_10_9_universal2.whl (243.3 kB view details)

Uploaded CPython 3.8macOS 10.9+ universal2 (ARM64, x86-64)

POT-0.8.1.0-cp37-cp37m-win_amd64.whl (183.2 kB view details)

Uploaded CPython 3.7mWindows x86-64

POT-0.8.1.0-cp37-cp37m-win32.whl (179.7 kB view details)

Uploaded CPython 3.7mWindows x86

POT-0.8.1.0-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (647.7 kB view details)

Uploaded CPython 3.7mmanylinux: glibc 2.17+ ARM64

POT-0.8.1.0-cp37-cp37m-manylinux_2_12_x86_64.manylinux2010_x86_64.whl (656.4 kB view details)

Uploaded CPython 3.7mmanylinux: glibc 2.12+ x86-64

POT-0.8.1.0-cp37-cp37m-manylinux_2_12_i686.manylinux2010_i686.whl (645.1 kB view details)

Uploaded CPython 3.7mmanylinux: glibc 2.12+ i686

POT-0.8.1.0-cp37-cp37m-macosx_10_9_x86_64.whl (189.5 kB view details)

Uploaded CPython 3.7mmacOS 10.9+ x86-64

File details

Details for the file POT-0.8.1.0.tar.gz.

File metadata

  • Download URL: POT-0.8.1.0.tar.gz
  • Upload date:
  • Size: 241.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.5.0 importlib_metadata/4.8.1 pkginfo/1.7.1 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.56.0 CPython/3.8.10

File hashes

Hashes for POT-0.8.1.0.tar.gz
Algorithm Hash digest
SHA256 ff2974418fbf35b18072555c2a9e7e4f6876eddfb6791179ddb8f0f6d6032505
MD5 8a4ddd6f224bc8cba3196958423c62a8
BLAKE2b-256 71c1f460b43719cf06127c3cb5eed1d498c2081f13d97a605b1913450b69d580

See more details on using hashes here.

File details

Details for the file POT-0.8.1.0-cp310-cp310-win_amd64.whl.

File metadata

  • Download URL: POT-0.8.1.0-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 183.5 kB
  • Tags: CPython 3.10, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.5.0 importlib_metadata/4.8.1 pkginfo/1.7.1 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.56.0 CPython/3.8.10

File hashes

Hashes for POT-0.8.1.0-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 3e016ba23ed4f581c5e1d8d06f1b0d59478736e90aba2120603a1c6ab65eaad1
MD5 cf9da607433cdf4b94f389c97290b582
BLAKE2b-256 6f00fc894afd18ee9189f34097c41616ca4f53b03a533c90185037a11ffebc48

See more details on using hashes here.

File details

Details for the file POT-0.8.1.0-cp310-cp310-win32.whl.

File metadata

  • Download URL: POT-0.8.1.0-cp310-cp310-win32.whl
  • Upload date:
  • Size: 180.1 kB
  • Tags: CPython 3.10, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.5.0 importlib_metadata/4.8.1 pkginfo/1.7.1 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.56.0 CPython/3.8.10

File hashes

Hashes for POT-0.8.1.0-cp310-cp310-win32.whl
Algorithm Hash digest
SHA256 837e22ce8febce28a610dfc8a8ed232479d2e0fdebda1a567f0b25c9138c2a40
MD5 065d6b52998043ac1fc4b40a44c44d1a
BLAKE2b-256 c463908bdb9a83e8fd4fc9106b64b23d5f4e9c7269f2b4fad22282f2347e997f

See more details on using hashes here.

File details

Details for the file POT-0.8.1.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for POT-0.8.1.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 8fc97f1c9591c360a2ea1b411a4d89f410fa1ffb91227ceb18cdb7f1c13828e1
MD5 ff20625d9e01fd1d2ee4a34e2dd7c9e1
BLAKE2b-256 d52bd171851d50f5b1cb365e4d0ec07ca9ad0345d003b732d861ab01813aad91

See more details on using hashes here.

File details

Details for the file POT-0.8.1.0-cp310-cp310-manylinux_2_12_x86_64.manylinux2010_x86_64.whl.

File metadata

File hashes

Hashes for POT-0.8.1.0-cp310-cp310-manylinux_2_12_x86_64.manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 828b91d70267077aebd2e5d95d68e31f44a41127d98a6c2ea44cc14adf497b50
MD5 4aa448b06e7bca82b53e926669250e41
BLAKE2b-256 f5fa96f0ec6e565dc49be44a9dfdcd586ca9d5c0f18f6e08c879c68f862664dc

See more details on using hashes here.

File details

Details for the file POT-0.8.1.0-cp310-cp310-manylinux_2_12_i686.manylinux2010_i686.whl.

File metadata

  • Download URL: POT-0.8.1.0-cp310-cp310-manylinux_2_12_i686.manylinux2010_i686.whl
  • Upload date:
  • Size: 651.8 kB
  • Tags: CPython 3.10, manylinux: glibc 2.12+ i686
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.5.0 importlib_metadata/4.8.1 pkginfo/1.7.1 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.56.0 CPython/3.8.10

File hashes

Hashes for POT-0.8.1.0-cp310-cp310-manylinux_2_12_i686.manylinux2010_i686.whl
Algorithm Hash digest
SHA256 17ec0856f23cb38ba9d16fec59ea02991de3db229cc344a5b77a02b347e55a36
MD5 605a0eeb82948a4b57dc978bfa437613
BLAKE2b-256 08028344525a849bc1db9a753d99dbaefd4942af74278ab57addcea70f87c11e

See more details on using hashes here.

File details

Details for the file POT-0.8.1.0-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

  • Download URL: POT-0.8.1.0-cp310-cp310-macosx_11_0_arm64.whl
  • Upload date:
  • Size: 181.9 kB
  • Tags: CPython 3.10, macOS 11.0+ ARM64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.5.0 importlib_metadata/4.8.1 pkginfo/1.7.1 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.56.0 CPython/3.8.10

File hashes

Hashes for POT-0.8.1.0-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 cf132286dd91ba1bb414523652745b180559eab44ccaf6f0d91b001cb6dded97
MD5 c7ee199505554ef9a41e45218a03d915
BLAKE2b-256 ab954d9b8cd8a932cc9f726cae146149a0c99a8fa97118d69ebc291f7ff53fd0

See more details on using hashes here.

File details

Details for the file POT-0.8.1.0-cp310-cp310-macosx_10_9_x86_64.whl.

File metadata

  • Download URL: POT-0.8.1.0-cp310-cp310-macosx_10_9_x86_64.whl
  • Upload date:
  • Size: 190.3 kB
  • Tags: CPython 3.10, macOS 10.9+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.5.0 importlib_metadata/4.8.1 pkginfo/1.7.1 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.56.0 CPython/3.8.10

File hashes

Hashes for POT-0.8.1.0-cp310-cp310-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 036b324ad6552d77ff91d0fbfa8774a5ab289aa8d2f27f46e454b6a916e03899
MD5 d20351a59068ddb2f46c5412a55676fe
BLAKE2b-256 5259e972580e21adbdfc714f9c0ffcb388c88360636ac3e4a54f43d80d955fee

See more details on using hashes here.

File details

Details for the file POT-0.8.1.0-cp310-cp310-macosx_10_9_universal2.whl.

File metadata

  • Download URL: POT-0.8.1.0-cp310-cp310-macosx_10_9_universal2.whl
  • Upload date:
  • Size: 243.9 kB
  • Tags: CPython 3.10, macOS 10.9+ universal2 (ARM64, x86-64)
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.5.0 importlib_metadata/4.8.1 pkginfo/1.7.1 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.56.0 CPython/3.8.10

File hashes

Hashes for POT-0.8.1.0-cp310-cp310-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 93c85d6d28fd60882405b3705bfbb9c92fcc307310fa4759a7307a9cfbddbb7f
MD5 6d68bc89842c41abae708fb6986975e8
BLAKE2b-256 950629f33617de259e69039173043a112b405b4292f805ec1010f744e81f8cf5

See more details on using hashes here.

File details

Details for the file POT-0.8.1.0-cp39-cp39-win_amd64.whl.

File metadata

  • Download URL: POT-0.8.1.0-cp39-cp39-win_amd64.whl
  • Upload date:
  • Size: 183.5 kB
  • Tags: CPython 3.9, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.5.0 importlib_metadata/4.8.1 pkginfo/1.7.1 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.56.0 CPython/3.8.10

File hashes

Hashes for POT-0.8.1.0-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 1d5fb8ae8e567e316c0efebed3ee0e755b9868c76bb9453302f38a03360fbc58
MD5 feb9a564bff38e74a5258ce979f609e3
BLAKE2b-256 e1bcfca4401b1578794761c79c28fd4cb075f95188a0c8456156a5ab9eaa7c71

See more details on using hashes here.

File details

Details for the file POT-0.8.1.0-cp39-cp39-win32.whl.

File metadata

  • Download URL: POT-0.8.1.0-cp39-cp39-win32.whl
  • Upload date:
  • Size: 180.1 kB
  • Tags: CPython 3.9, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.5.0 importlib_metadata/4.8.1 pkginfo/1.7.1 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.56.0 CPython/3.8.10

File hashes

Hashes for POT-0.8.1.0-cp39-cp39-win32.whl
Algorithm Hash digest
SHA256 a49694a1509a4fd2c3bae0ae4f346e99af7685624098a591c5a109908d69f8a1
MD5 7498b845961f46027a800f3ee37baf33
BLAKE2b-256 187c07c1c017e84b13c02d9d65172c525761a70dd1c65f2626a82abdcfad9761

See more details on using hashes here.

File details

Details for the file POT-0.8.1.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for POT-0.8.1.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 a7b90de8b57878a1fa077ba1260e78c72af8dcbbc35cd61d0e88bab837187048
MD5 29a875e83254849b682a9ee16f9a25a5
BLAKE2b-256 b89187781269cfa08017842cbb0e2e43057c6ba27ef7ae6ed59e53db2429e659

See more details on using hashes here.

File details

Details for the file POT-0.8.1.0-cp39-cp39-manylinux_2_12_x86_64.manylinux2010_x86_64.whl.

File metadata

  • Download URL: POT-0.8.1.0-cp39-cp39-manylinux_2_12_x86_64.manylinux2010_x86_64.whl
  • Upload date:
  • Size: 662.3 kB
  • Tags: CPython 3.9, manylinux: glibc 2.12+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.5.0 importlib_metadata/4.8.1 pkginfo/1.7.1 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.56.0 CPython/3.8.10

File hashes

Hashes for POT-0.8.1.0-cp39-cp39-manylinux_2_12_x86_64.manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 ce6ffa21f4a9965034eefeb88c84e28c9e8860596435d76eb553f5f63d7002ff
MD5 6eb587b3c7245f50020e3a532e5aae2e
BLAKE2b-256 63be6c9fc51e312ba9358d5b672d54cd5adca970128652d4d9a9a6073057735a

See more details on using hashes here.

File details

Details for the file POT-0.8.1.0-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.whl.

File metadata

  • Download URL: POT-0.8.1.0-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.whl
  • Upload date:
  • Size: 651.1 kB
  • Tags: CPython 3.9, manylinux: glibc 2.12+ i686
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.5.0 importlib_metadata/4.8.1 pkginfo/1.7.1 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.56.0 CPython/3.8.10

File hashes

Hashes for POT-0.8.1.0-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.whl
Algorithm Hash digest
SHA256 0c29ec97b17d937bb50ee1de765ce451da37f7c31db1aff4f0d7d97b0719b4c2
MD5 a6440d907fb60d1dac0da786f127c660
BLAKE2b-256 a4f4754e84bd9fdb2a4f659386d2f6da97d4e2bc766ba3f02427a675606623d5

See more details on using hashes here.

File details

Details for the file POT-0.8.1.0-cp39-cp39-macosx_11_0_arm64.whl.

File metadata

  • Download URL: POT-0.8.1.0-cp39-cp39-macosx_11_0_arm64.whl
  • Upload date:
  • Size: 182.0 kB
  • Tags: CPython 3.9, macOS 11.0+ ARM64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.5.0 importlib_metadata/4.8.1 pkginfo/1.7.1 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.56.0 CPython/3.8.10

File hashes

Hashes for POT-0.8.1.0-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 77dfa0ec4372bf2814e21f6e554022902bb77ff866fa5ff50ea668e829b57250
MD5 57ddce2dacfc20592bd4a28c971fe2e0
BLAKE2b-256 e24936d84aa8d132912d36554fc146cf116ef7e6a71f2cf8c34697a96b39cb03

See more details on using hashes here.

File details

Details for the file POT-0.8.1.0-cp39-cp39-macosx_10_9_x86_64.whl.

File metadata

  • Download URL: POT-0.8.1.0-cp39-cp39-macosx_10_9_x86_64.whl
  • Upload date:
  • Size: 190.3 kB
  • Tags: CPython 3.9, macOS 10.9+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.5.0 importlib_metadata/4.8.1 pkginfo/1.7.1 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.56.0 CPython/3.8.10

File hashes

Hashes for POT-0.8.1.0-cp39-cp39-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 ba258860bac6c9f06d03b560992ec56f9c935ed0aec1d7c20819aa95c4b0ba9e
MD5 16179b0d3facd14d9f2211adc705f785
BLAKE2b-256 48642d090053d3cc04b23405deda15c841587c531fc1267af815f86a6a7fe16d

See more details on using hashes here.

File details

Details for the file POT-0.8.1.0-cp39-cp39-macosx_10_9_universal2.whl.

File metadata

  • Download URL: POT-0.8.1.0-cp39-cp39-macosx_10_9_universal2.whl
  • Upload date:
  • Size: 243.9 kB
  • Tags: CPython 3.9, macOS 10.9+ universal2 (ARM64, x86-64)
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.5.0 importlib_metadata/4.8.1 pkginfo/1.7.1 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.56.0 CPython/3.8.10

File hashes

Hashes for POT-0.8.1.0-cp39-cp39-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 77ffedece28024fb6188553c2951937dcc4598bdf34cfc76133359b6d9d8e405
MD5 58b980296c7b312a9f1e8ece9fd9743d
BLAKE2b-256 12ae0041cae959c896e58cc1b9409f1db6011e98baca50f2795fb8d4ca29d65e

See more details on using hashes here.

File details

Details for the file POT-0.8.1.0-cp38-cp38-win_amd64.whl.

File metadata

  • Download URL: POT-0.8.1.0-cp38-cp38-win_amd64.whl
  • Upload date:
  • Size: 183.4 kB
  • Tags: CPython 3.8, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.5.0 importlib_metadata/4.8.1 pkginfo/1.7.1 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.56.0 CPython/3.8.10

File hashes

Hashes for POT-0.8.1.0-cp38-cp38-win_amd64.whl
Algorithm Hash digest
SHA256 678fbcacd630fe658dd95d4b1dcade936dd1431c48d94a7bf39bab416c6d4898
MD5 64cd85f9ecb05f725984e01b0ad2a5ba
BLAKE2b-256 c4abf97d3c13b0dddd485f495f9a68093716afcf72deced235479238ce271f26

See more details on using hashes here.

File details

Details for the file POT-0.8.1.0-cp38-cp38-win32.whl.

File metadata

  • Download URL: POT-0.8.1.0-cp38-cp38-win32.whl
  • Upload date:
  • Size: 180.1 kB
  • Tags: CPython 3.8, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.5.0 importlib_metadata/4.8.1 pkginfo/1.7.1 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.56.0 CPython/3.8.10

File hashes

Hashes for POT-0.8.1.0-cp38-cp38-win32.whl
Algorithm Hash digest
SHA256 7944dde623654b0b3ae49cd2a77e0944e5b59a0dd166033eafb8c2676e7fb7d9
MD5 a666385adfdefb1dd3757ca754aad084
BLAKE2b-256 856ea24de4613a71811d436864fe146ea17be5b9a60d53def1dae707139bdb75

See more details on using hashes here.

File details

Details for the file POT-0.8.1.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for POT-0.8.1.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 d4348ef9116a9b02a168d991243242e90cca8b2b9ad08ad575fd1c0b65faf307
MD5 7f5f53dcead9f60f085b1f9f64ed1f1d
BLAKE2b-256 525722befe0c1bd12090faa5a0bff11adcee78aa62c2f17f06cea5cc5cffe8af

See more details on using hashes here.

File details

Details for the file POT-0.8.1.0-cp38-cp38-manylinux_2_12_x86_64.manylinux2010_x86_64.whl.

File metadata

  • Download URL: POT-0.8.1.0-cp38-cp38-manylinux_2_12_x86_64.manylinux2010_x86_64.whl
  • Upload date:
  • Size: 673.2 kB
  • Tags: CPython 3.8, manylinux: glibc 2.12+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.5.0 importlib_metadata/4.8.1 pkginfo/1.7.1 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.56.0 CPython/3.8.10

File hashes

Hashes for POT-0.8.1.0-cp38-cp38-manylinux_2_12_x86_64.manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 f071800461a24f0ad9bc180198c67abf2c86b7d79398a28ea61000f28585f9d7
MD5 042c68e8945091490f6882da445788f6
BLAKE2b-256 5cf5b7c44ce3714eb4c928713fb31f7eaaeea94f3f2ca238c923082479e78cf6

See more details on using hashes here.

File details

Details for the file POT-0.8.1.0-cp38-cp38-manylinux_2_12_i686.manylinux2010_i686.whl.

File metadata

  • Download URL: POT-0.8.1.0-cp38-cp38-manylinux_2_12_i686.manylinux2010_i686.whl
  • Upload date:
  • Size: 659.7 kB
  • Tags: CPython 3.8, manylinux: glibc 2.12+ i686
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.5.0 importlib_metadata/4.8.1 pkginfo/1.7.1 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.56.0 CPython/3.8.10

File hashes

Hashes for POT-0.8.1.0-cp38-cp38-manylinux_2_12_i686.manylinux2010_i686.whl
Algorithm Hash digest
SHA256 b7b239da088fa02b71acad98fe08bc87cf81147f386c5d65778ae0d9f436ad0a
MD5 5cbe7386af763c4cb07939236f617855
BLAKE2b-256 b10ca5625731ed2deb788a0ff2b7767789a04f3457a3b48e8a2a51d2e31f73ad

See more details on using hashes here.

File details

Details for the file POT-0.8.1.0-cp38-cp38-macosx_11_0_arm64.whl.

File metadata

  • Download URL: POT-0.8.1.0-cp38-cp38-macosx_11_0_arm64.whl
  • Upload date:
  • Size: 181.8 kB
  • Tags: CPython 3.8, macOS 11.0+ ARM64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.5.0 importlib_metadata/4.8.1 pkginfo/1.7.1 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.56.0 CPython/3.8.10

File hashes

Hashes for POT-0.8.1.0-cp38-cp38-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 9d0e3fa14d674a74b2d539c626ebad207508d2aecbd7828ab0c07c083f27380c
MD5 84b59e693d77500e0afbb74ff02b3a4a
BLAKE2b-256 466358227f03312caea9e5107b27ca5896b405e3d84254c074953567758028d8

See more details on using hashes here.

File details

Details for the file POT-0.8.1.0-cp38-cp38-macosx_10_9_x86_64.whl.

File metadata

  • Download URL: POT-0.8.1.0-cp38-cp38-macosx_10_9_x86_64.whl
  • Upload date:
  • Size: 189.9 kB
  • Tags: CPython 3.8, macOS 10.9+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.5.0 importlib_metadata/4.8.1 pkginfo/1.7.1 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.56.0 CPython/3.8.10

File hashes

Hashes for POT-0.8.1.0-cp38-cp38-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 c2392c2d9053163c0642e0947dcc93d07f8e2753031e12e641debb1c6e96e83c
MD5 9ba5cb90551c303935237ac5d274ce24
BLAKE2b-256 03f6d10e5c947b9345b6d2d902377873551ac0de967513a95e67d573bf7d5862

See more details on using hashes here.

File details

Details for the file POT-0.8.1.0-cp38-cp38-macosx_10_9_universal2.whl.

File metadata

  • Download URL: POT-0.8.1.0-cp38-cp38-macosx_10_9_universal2.whl
  • Upload date:
  • Size: 243.3 kB
  • Tags: CPython 3.8, macOS 10.9+ universal2 (ARM64, x86-64)
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.5.0 importlib_metadata/4.8.1 pkginfo/1.7.1 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.56.0 CPython/3.8.10

File hashes

Hashes for POT-0.8.1.0-cp38-cp38-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 18bbdf19961c87b4e4aebac3db2bf957d944f6e86bf2401379e11066ca4e8368
MD5 78b1a8eecad6323a1260d8f859fb50c2
BLAKE2b-256 562e5703dc45e31bcb35a4250f13439e98117420b70cc99da3b10fcfff097358

See more details on using hashes here.

File details

Details for the file POT-0.8.1.0-cp37-cp37m-win_amd64.whl.

File metadata

  • Download URL: POT-0.8.1.0-cp37-cp37m-win_amd64.whl
  • Upload date:
  • Size: 183.2 kB
  • Tags: CPython 3.7m, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.5.0 importlib_metadata/4.8.1 pkginfo/1.7.1 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.56.0 CPython/3.8.10

File hashes

Hashes for POT-0.8.1.0-cp37-cp37m-win_amd64.whl
Algorithm Hash digest
SHA256 26fe2a238469737b650d77a33ec6e4ec8c92a23242f165e5c156ccdbd71d4d64
MD5 37a4aa80e578f849800992b7796a3455
BLAKE2b-256 3b76aa2788f836ce29d9b104d5a7e971cc678d4a0b25e45db874e8300686ee0f

See more details on using hashes here.

File details

Details for the file POT-0.8.1.0-cp37-cp37m-win32.whl.

File metadata

  • Download URL: POT-0.8.1.0-cp37-cp37m-win32.whl
  • Upload date:
  • Size: 179.7 kB
  • Tags: CPython 3.7m, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.5.0 importlib_metadata/4.8.1 pkginfo/1.7.1 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.56.0 CPython/3.8.10

File hashes

Hashes for POT-0.8.1.0-cp37-cp37m-win32.whl
Algorithm Hash digest
SHA256 171e96f09c41e0cf22bff55a6ee3785dab69c6f17e866c3715fd30df39b1f1dd
MD5 d77c1ff6015b49927c8292ea21308efd
BLAKE2b-256 7cb721f729e7d2279b99728d959ed534f7edf29794ab70332d7cdfa256128acf

See more details on using hashes here.

File details

Details for the file POT-0.8.1.0-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for POT-0.8.1.0-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 3692e15e009cb61a1d76129e66093b9945962aaede61bdaa5339857b512fa0cc
MD5 339a9c5c2f2a2fb4d6fd2c5ef65faca6
BLAKE2b-256 ea54701f36d44047dead80705cbbd5302d4c3a217705d5d91e09d6a9d9fd7def

See more details on using hashes here.

File details

Details for the file POT-0.8.1.0-cp37-cp37m-manylinux_2_12_x86_64.manylinux2010_x86_64.whl.

File metadata

  • Download URL: POT-0.8.1.0-cp37-cp37m-manylinux_2_12_x86_64.manylinux2010_x86_64.whl
  • Upload date:
  • Size: 656.4 kB
  • Tags: CPython 3.7m, manylinux: glibc 2.12+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.5.0 importlib_metadata/4.8.1 pkginfo/1.7.1 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.56.0 CPython/3.8.10

File hashes

Hashes for POT-0.8.1.0-cp37-cp37m-manylinux_2_12_x86_64.manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 44abce5716dea4d8cc217793d84734a21f89305015d621a8260cf2152c8f4810
MD5 6dfaa948cdb487995ba383c7faac0425
BLAKE2b-256 561bce8e6469db5e8513433f74010b77a3fff8ebc2203d22dda237f615d2f69a

See more details on using hashes here.

File details

Details for the file POT-0.8.1.0-cp37-cp37m-manylinux_2_12_i686.manylinux2010_i686.whl.

File metadata

  • Download URL: POT-0.8.1.0-cp37-cp37m-manylinux_2_12_i686.manylinux2010_i686.whl
  • Upload date:
  • Size: 645.1 kB
  • Tags: CPython 3.7m, manylinux: glibc 2.12+ i686
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.5.0 importlib_metadata/4.8.1 pkginfo/1.7.1 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.56.0 CPython/3.8.10

File hashes

Hashes for POT-0.8.1.0-cp37-cp37m-manylinux_2_12_i686.manylinux2010_i686.whl
Algorithm Hash digest
SHA256 e77150afa4d53d3cc876a505052693586f5a323d5735a7930a4fc3384c1a9527
MD5 437982f712f43db9358b2311361add4f
BLAKE2b-256 5d969848406de614d1ad85e5808fec5d72a1288d49e756558de149509ed0fbaf

See more details on using hashes here.

File details

Details for the file POT-0.8.1.0-cp37-cp37m-macosx_10_9_x86_64.whl.

File metadata

  • Download URL: POT-0.8.1.0-cp37-cp37m-macosx_10_9_x86_64.whl
  • Upload date:
  • Size: 189.5 kB
  • Tags: CPython 3.7m, macOS 10.9+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.5.0 importlib_metadata/4.8.1 pkginfo/1.7.1 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.56.0 CPython/3.8.10

File hashes

Hashes for POT-0.8.1.0-cp37-cp37m-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 9976df52d6c3cf1ced2a201138ea460607e13c8b9c782f27b0f9727219830d89
MD5 92bf10dff6c0c2e77cf3fb60443977dc
BLAKE2b-256 0f4e777b75350a058dc218f2151a8790c2284b0790eed3f4c395213307630618

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