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 dependencies which are discussed below

  • ot.dr (Wasserstein dimensionality reduction) depends on autograd and pymanopt that can be installed with:
pip install pymanopt autograd

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 numerous contributors to this library are listed here.

POT has benefited from the financing or manpower from the following partners:

ANRCNRS3IA

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.

[39] Gozlan, N., Roberto, C., Samson, P. M., & Tetali, P. (2017). Kantorovich duality for general transport costs and applications. Journal of Functional Analysis, 273(11), 3327-3405.

[40] Forrow, A., Hütter, J. C., Nitzan, M., Rigollet, P., Schiebinger, G., & Weed, J. (2019, April). Statistical optimal transport via factored couplings. In The 22nd International Conference on Artificial Intelligence and Statistics (pp. 2454-2465). PMLR.

[41] Chapel*, L., Flamary*, R., Wu, H., Févotte, C., Gasso, G. (2021). Unbalanced Optimal Transport through Non-negative Penalized Linear Regression Advances in Neural Information Processing Systems (NeurIPS), 2020. (Two first co-authors)

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.2.tar.gz (255.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.2-cp310-cp310-win_amd64.whl (192.9 kB view details)

Uploaded CPython 3.10Windows x86-64

POT-0.8.2-cp310-cp310-win32.whl (188.3 kB view details)

Uploaded CPython 3.10Windows x86

POT-0.8.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (669.5 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ ARM64

POT-0.8.2-cp310-cp310-manylinux_2_12_x86_64.manylinux2010_x86_64.whl (671.1 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.12+ x86-64

POT-0.8.2-cp310-cp310-manylinux_2_12_i686.manylinux2010_i686.whl (660.1 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.12+ i686

POT-0.8.2-cp310-cp310-macosx_11_0_arm64.whl (190.4 kB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

POT-0.8.2-cp310-cp310-macosx_10_9_x86_64.whl (198.7 kB view details)

Uploaded CPython 3.10macOS 10.9+ x86-64

POT-0.8.2-cp310-cp310-macosx_10_9_universal2.whl (252.3 kB view details)

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

POT-0.8.2-cp39-cp39-win_amd64.whl (192.7 kB view details)

Uploaded CPython 3.9Windows x86-64

POT-0.8.2-cp39-cp39-win32.whl (188.0 kB view details)

Uploaded CPython 3.9Windows x86

POT-0.8.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (668.3 kB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ ARM64

POT-0.8.2-cp39-cp39-manylinux_2_12_x86_64.manylinux2010_x86_64.whl (670.2 kB view details)

Uploaded CPython 3.9manylinux: glibc 2.12+ x86-64

POT-0.8.2-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.whl (658.9 kB view details)

Uploaded CPython 3.9manylinux: glibc 2.12+ i686

POT-0.8.2-cp39-cp39-macosx_11_0_arm64.whl (190.0 kB view details)

Uploaded CPython 3.9macOS 11.0+ ARM64

POT-0.8.2-cp39-cp39-macosx_10_9_x86_64.whl (198.3 kB view details)

Uploaded CPython 3.9macOS 10.9+ x86-64

POT-0.8.2-cp39-cp39-macosx_10_9_universal2.whl (251.4 kB view details)

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

POT-0.8.2-cp38-cp38-win_amd64.whl (192.9 kB view details)

Uploaded CPython 3.8Windows x86-64

POT-0.8.2-cp38-cp38-win32.whl (188.4 kB view details)

Uploaded CPython 3.8Windows x86

POT-0.8.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (670.4 kB view details)

Uploaded CPython 3.8manylinux: glibc 2.17+ ARM64

POT-0.8.2-cp38-cp38-manylinux_2_12_x86_64.manylinux2010_x86_64.whl (682.3 kB view details)

Uploaded CPython 3.8manylinux: glibc 2.12+ x86-64

POT-0.8.2-cp38-cp38-manylinux_2_12_i686.manylinux2010_i686.whl (668.9 kB view details)

Uploaded CPython 3.8manylinux: glibc 2.12+ i686

POT-0.8.2-cp38-cp38-macosx_11_0_arm64.whl (190.4 kB view details)

Uploaded CPython 3.8macOS 11.0+ ARM64

POT-0.8.2-cp38-cp38-macosx_10_9_x86_64.whl (198.7 kB view details)

Uploaded CPython 3.8macOS 10.9+ x86-64

POT-0.8.2-cp38-cp38-macosx_10_9_universal2.whl (252.3 kB view details)

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

POT-0.8.2-cp37-cp37m-win_amd64.whl (192.9 kB view details)

Uploaded CPython 3.7mWindows x86-64

POT-0.8.2-cp37-cp37m-win32.whl (188.2 kB view details)

Uploaded CPython 3.7mWindows x86

POT-0.8.2-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (655.4 kB view details)

Uploaded CPython 3.7mmanylinux: glibc 2.17+ ARM64

POT-0.8.2-cp37-cp37m-manylinux_2_12_x86_64.manylinux2010_x86_64.whl (664.9 kB view details)

Uploaded CPython 3.7mmanylinux: glibc 2.12+ x86-64

POT-0.8.2-cp37-cp37m-manylinux_2_12_i686.manylinux2010_i686.whl (654.4 kB view details)

Uploaded CPython 3.7mmanylinux: glibc 2.12+ i686

POT-0.8.2-cp37-cp37m-macosx_10_9_x86_64.whl (198.3 kB view details)

Uploaded CPython 3.7mmacOS 10.9+ x86-64

File details

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

File metadata

  • Download URL: POT-0.8.2.tar.gz
  • Upload date:
  • Size: 255.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.0 CPython/3.8.10

File hashes

Hashes for POT-0.8.2.tar.gz
Algorithm Hash digest
SHA256 3ca9ae3c8f370cfcbb4643a01c73dd3c9273e4d4ff7e9af5db70154f34cbc204
MD5 398e84d6de7573beadfb9b2b67d7a3d2
BLAKE2b-256 1c0daee391eac05f0ba1a6d29cbb3eacb79bfd80cc8da52c9bf964115fcf8334

See more details on using hashes here.

File details

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

File metadata

  • Download URL: POT-0.8.2-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 192.9 kB
  • Tags: CPython 3.10, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.0 CPython/3.8.10

File hashes

Hashes for POT-0.8.2-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 f8e0d7feb5b42002311624244393869fdace5b244849c4d7c87b104f9bae3f41
MD5 85ce338cef475e5582631a456279bc8e
BLAKE2b-256 02388d03eec0c4a6ddb8f29f57ab19e3f1e3ef8b496fcef89af5c0a74bf52bd0

See more details on using hashes here.

File details

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

File metadata

  • Download URL: POT-0.8.2-cp310-cp310-win32.whl
  • Upload date:
  • Size: 188.3 kB
  • Tags: CPython 3.10, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.0 CPython/3.8.10

File hashes

Hashes for POT-0.8.2-cp310-cp310-win32.whl
Algorithm Hash digest
SHA256 09dcf580cf91378837ea0cefa3e62b2d62e5ccbc3a5b954575b82e5bae43c405
MD5 8ca30b1e22b09801e49d5900e99a7ecd
BLAKE2b-256 4fadb730efd4032b1310cbf65032eef6fb99d362ed9a16e08d32bf645a1ef561

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for POT-0.8.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 15de7425ba09a5281b760dfa199454edd427178c7da00f9da4ba53965f6eba86
MD5 a54d209c69c0c7c477c9b7df575179bf
BLAKE2b-256 8517585253a460a3a4d8789b62d0d0bfe48b8dd3b032dd8e2cb456a81b2ddaf8

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for POT-0.8.2-cp310-cp310-manylinux_2_12_x86_64.manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 0f1da47ad0ff3e8a370542ab69cd6909bb3cbd038f442fe6b6eb5fa020a12a34
MD5 8dca16e2dcd73e3368991e7c8f3b77e4
BLAKE2b-256 7fbc4bef7a7b5fcd6f3b109b688011330816e6f011c39010a7b03c439a539782

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for POT-0.8.2-cp310-cp310-manylinux_2_12_i686.manylinux2010_i686.whl
Algorithm Hash digest
SHA256 750b5fc09f730bef290176efb7ec5870acd4f3319f66bb417b3d38eebc58aada
MD5 746387750913a4e05230244fef50221c
BLAKE2b-256 1370612fa3bfb6f65957b781f45bc2991c060a593626cde28220720b691f084b

See more details on using hashes here.

File details

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

File metadata

  • Download URL: POT-0.8.2-cp310-cp310-macosx_11_0_arm64.whl
  • Upload date:
  • Size: 190.4 kB
  • Tags: CPython 3.10, macOS 11.0+ ARM64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.0 CPython/3.8.10

File hashes

Hashes for POT-0.8.2-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 4247436eb4f13082a53561c419579d30c79b00a975f41e6375ce5377362987db
MD5 e098f802ef2944954c7f215c131bfef1
BLAKE2b-256 23471fbb242bb1c31ea957c7d4ee6b226ab5457f328fd56563b967e633a88b56

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for POT-0.8.2-cp310-cp310-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 2a047a57e7cca0821a43b69e5be2d33bc31cef3b2d09a227794ce20c6e80ecd1
MD5 1fcde8919e443da032933688a7b729d3
BLAKE2b-256 f7ea959b176d093410f9028bbe73c9614dcdbf79f21ea86904a3411fe89dad37

See more details on using hashes here.

File details

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

File metadata

  • Download URL: POT-0.8.2-cp310-cp310-macosx_10_9_universal2.whl
  • Upload date:
  • Size: 252.3 kB
  • Tags: CPython 3.10, macOS 10.9+ universal2 (ARM64, x86-64)
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.0 CPython/3.8.10

File hashes

Hashes for POT-0.8.2-cp310-cp310-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 2ddf094a1e1788a1ba6266af4c5f6ef57a9eb37645eec8e8fda5ef9f233c0515
MD5 edbc14ed4bd9d154f8dd3998de711198
BLAKE2b-256 4f35ea1c191fa89ea0a028caaf496fec1666c776a2073501f8059927629fe2e1

See more details on using hashes here.

File details

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

File metadata

  • Download URL: POT-0.8.2-cp39-cp39-win_amd64.whl
  • Upload date:
  • Size: 192.7 kB
  • Tags: CPython 3.9, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.0 CPython/3.8.10

File hashes

Hashes for POT-0.8.2-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 d933b6cda00fa22dbc02f45554953e4b39105d178c83d00fc32091cd2cd050ba
MD5 6babce776e041af71f6e7b248576d29e
BLAKE2b-256 e9c1168cd6a4cddb8df5959e6199b785888a3e536a33ae12652464f809f73f59

See more details on using hashes here.

File details

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

File metadata

  • Download URL: POT-0.8.2-cp39-cp39-win32.whl
  • Upload date:
  • Size: 188.0 kB
  • Tags: CPython 3.9, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.0 CPython/3.8.10

File hashes

Hashes for POT-0.8.2-cp39-cp39-win32.whl
Algorithm Hash digest
SHA256 0b11dae9309c181d277e96ccf91927d5de47102c268ee554e410cf222e982d07
MD5 26438586dc8a5d83fa70651195756250
BLAKE2b-256 c712ae656fdaeeb7cf8696b9afed825542b6c592826c1a320e78db9d25a79913

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for POT-0.8.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 9a721f9f516506ce7d148e93954409dc7abf550a71381608903814ef4bf59ca4
MD5 861709173ccd1b5ccac13435ce5598c1
BLAKE2b-256 dade6dbfaafe5288b2ccb0cf645253a94f3b2660824fb795faf57271e3941e90

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for POT-0.8.2-cp39-cp39-manylinux_2_12_x86_64.manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 82e0f8ded05e6784453d983354133eb8b9f66ff9203cd2ba3545a8d0397aee63
MD5 be0c119fb8a8146a989542a95a76a460
BLAKE2b-256 574df097e33813a934821d7ae494ddd3f1ffcd3cd8806e2e65bc09fbeec596fa

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for POT-0.8.2-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.whl
Algorithm Hash digest
SHA256 cc42f0ccbc3434f66c7738050a082aba240fbdd953f54f25d66ccd07aa543928
MD5 ef79fc4c0c6aa4b4beb0231063cf23f2
BLAKE2b-256 697045f780819e543f3e0a0bf80690b1df0a98e5f499f7e35807b0657cb24363

See more details on using hashes here.

File details

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

File metadata

  • Download URL: POT-0.8.2-cp39-cp39-macosx_11_0_arm64.whl
  • Upload date:
  • Size: 190.0 kB
  • Tags: CPython 3.9, macOS 11.0+ ARM64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.0 CPython/3.8.10

File hashes

Hashes for POT-0.8.2-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 6ac9030cb37dedc22210035cf03acfdd1060e7d8ed69dac8a239a4eab282929c
MD5 bdf47b48982026346635a67cf0a2b369
BLAKE2b-256 f98b112b18667c4b1a5b2dc641869c7e2c4a905ffd2d6d14b5a5929ae2e3ffdb

See more details on using hashes here.

File details

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

File metadata

  • Download URL: POT-0.8.2-cp39-cp39-macosx_10_9_x86_64.whl
  • Upload date:
  • Size: 198.3 kB
  • Tags: CPython 3.9, macOS 10.9+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.0 CPython/3.8.10

File hashes

Hashes for POT-0.8.2-cp39-cp39-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 e7172cc2ad5b3a806f9c8405573c9735d497653492812c0034bf4ec576c43b13
MD5 627d379f0f9e4c86b25e53cc0871a8a1
BLAKE2b-256 21b5cab584cc218e744ae374dad48443583f4d40afa38618b3d6457c4c179d38

See more details on using hashes here.

File details

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

File metadata

  • Download URL: POT-0.8.2-cp39-cp39-macosx_10_9_universal2.whl
  • Upload date:
  • Size: 251.4 kB
  • Tags: CPython 3.9, macOS 10.9+ universal2 (ARM64, x86-64)
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.0 CPython/3.8.10

File hashes

Hashes for POT-0.8.2-cp39-cp39-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 6244cf659ba885c08f5872b22c86a39d05280410a818c37004efc69f8b9a24ed
MD5 f5a58df13a0464e5646512c1111a65fa
BLAKE2b-256 5977643f085073a1879706949b09d46079b6145f3424ffb4a572dde1ad5c648d

See more details on using hashes here.

File details

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

File metadata

  • Download URL: POT-0.8.2-cp38-cp38-win_amd64.whl
  • Upload date:
  • Size: 192.9 kB
  • Tags: CPython 3.8, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.0 CPython/3.8.10

File hashes

Hashes for POT-0.8.2-cp38-cp38-win_amd64.whl
Algorithm Hash digest
SHA256 df301b12abfe1e53f410cbb7026f7f45065ea1f0de1f32dd6e87a290f0b4e7dd
MD5 d80150764376dc71af5c7fb73be8cb05
BLAKE2b-256 8f9d36a3ebe97c96437b5f88ceddc0b1f07cea3fa39b4a8cc83d8d65a583d8af

See more details on using hashes here.

File details

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

File metadata

  • Download URL: POT-0.8.2-cp38-cp38-win32.whl
  • Upload date:
  • Size: 188.4 kB
  • Tags: CPython 3.8, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.0 CPython/3.8.10

File hashes

Hashes for POT-0.8.2-cp38-cp38-win32.whl
Algorithm Hash digest
SHA256 4cb7bfea91407b303f476163e25a1ef9e623fae37d279ab49a7a43344dd31906
MD5 e0e06b48caa170ad79ffbf64bb0ab767
BLAKE2b-256 a0fb06558138ea3cc4721a7af2465abc6d9a66a453dca98d7f71ce6fbf04fd80

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for POT-0.8.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 860829caaa2452301ca6c62595e7e73a30930f5553f23a6d6bd9c2bf149444ca
MD5 c09239f58361b4ff386da991d5d22919
BLAKE2b-256 7b7fe998c073fc550fc29868898c0fff4e1705305a3d70c7ae3c1b8c6c14c033

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for POT-0.8.2-cp38-cp38-manylinux_2_12_x86_64.manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 a0c50fea351d1377829865ea7590cd8e525c26b00f5d6cff903047f78a4274a4
MD5 0acb4ddd8964858d27312c9142c97ad9
BLAKE2b-256 b480da5489ade495cbbf7275debfb6251bbb87272dfa930373f4fdb380da6399

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for POT-0.8.2-cp38-cp38-manylinux_2_12_i686.manylinux2010_i686.whl
Algorithm Hash digest
SHA256 02da730208e087abb199eef38d388a6e78799f7e4c1b78c8350c5d11fef99481
MD5 0b1765b5b0f8ad4688767d0c3304bd09
BLAKE2b-256 f3ac3f387f3ceacccf93506adb1c9a53dcd9621c5f09591d6a87841998d13c8e

See more details on using hashes here.

File details

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

File metadata

  • Download URL: POT-0.8.2-cp38-cp38-macosx_11_0_arm64.whl
  • Upload date:
  • Size: 190.4 kB
  • Tags: CPython 3.8, macOS 11.0+ ARM64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.0 CPython/3.8.10

File hashes

Hashes for POT-0.8.2-cp38-cp38-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 920e7db3c887a0155b601b530db57f7fe5c84279e74c586484f8f71cf18a3f19
MD5 d023795cb0f7234108e6f9ec75c0b46c
BLAKE2b-256 f53ed5d351421536a07269079010a3542c33defdb014b7936d3ad539223c0b2e

See more details on using hashes here.

File details

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

File metadata

  • Download URL: POT-0.8.2-cp38-cp38-macosx_10_9_x86_64.whl
  • Upload date:
  • Size: 198.7 kB
  • Tags: CPython 3.8, macOS 10.9+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.0 CPython/3.8.10

File hashes

Hashes for POT-0.8.2-cp38-cp38-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 110c88e2e016ecd9bc9d5511067f1845af4c1f660fd0128205dbe5e88ca4913e
MD5 3b3f3f7b16a8d09d591952e940eadf18
BLAKE2b-256 925460337729a268c439c32e24998cffba81bc070179f7c78a99149f747ead2a

See more details on using hashes here.

File details

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

File metadata

  • Download URL: POT-0.8.2-cp38-cp38-macosx_10_9_universal2.whl
  • Upload date:
  • Size: 252.3 kB
  • Tags: CPython 3.8, macOS 10.9+ universal2 (ARM64, x86-64)
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.0 CPython/3.8.10

File hashes

Hashes for POT-0.8.2-cp38-cp38-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 df15c25869a2a0782fe48f15ca6f2eb016349bd174c571afd38496d7eba7fe2d
MD5 0df7ca96cb3cba25e9890e9bb3c1202b
BLAKE2b-256 4595c7e9200d653f4c07d7287d766613e652fe5a2dfdfca57908d7db6ea2110f

See more details on using hashes here.

File details

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

File metadata

  • Download URL: POT-0.8.2-cp37-cp37m-win_amd64.whl
  • Upload date:
  • Size: 192.9 kB
  • Tags: CPython 3.7m, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.0 CPython/3.8.10

File hashes

Hashes for POT-0.8.2-cp37-cp37m-win_amd64.whl
Algorithm Hash digest
SHA256 80a6519f503a61dd72281005c9c274c20ceeef364afbee699000b3ae1f828d79
MD5 14f2056b3d5157dec4c482886360becb
BLAKE2b-256 517a6b956756a634b6e3021c3081785ddcfdd484e966e874727d64c112b675b6

See more details on using hashes here.

File details

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

File metadata

  • Download URL: POT-0.8.2-cp37-cp37m-win32.whl
  • Upload date:
  • Size: 188.2 kB
  • Tags: CPython 3.7m, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.0 CPython/3.8.10

File hashes

Hashes for POT-0.8.2-cp37-cp37m-win32.whl
Algorithm Hash digest
SHA256 a0f982d1d1ff42cc5c3945d3b34d4edcbb1edfe10dd0a9bced731a0a62dd64df
MD5 0d43693109e859709559a521e90b646d
BLAKE2b-256 79e4b34a90b64d8fff2286f75f0bcb9d7d7efeae3f61b54681b4a8dc7f0aef99

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for POT-0.8.2-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 dd62e03707ef173368e4d67307c7820e74a8553ece53723210c157ec47cc2ec6
MD5 ab48cd8b93554799f90f97d581af253d
BLAKE2b-256 6d82691587e1b8b4c527efc0c3038c8c308fb883223bffdcc0e1b25821f73e46

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for POT-0.8.2-cp37-cp37m-manylinux_2_12_x86_64.manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 32fc319f10ee80e942c44bcc1efe7e118240235c39a487d405b6294ff9116d28
MD5 574f9881d0f7caaada398e33297f926f
BLAKE2b-256 16c01c2bda68ba4973a5ea45a4ad143fb066a69fc6c319c36ed845f03f7b0721

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for POT-0.8.2-cp37-cp37m-manylinux_2_12_i686.manylinux2010_i686.whl
Algorithm Hash digest
SHA256 71ecf6a8504f1620a91a68e31d70fd4cb532cdb962de651b697c8b70f199bacc
MD5 b3f2e674477aed3fc37337eed9087444
BLAKE2b-256 ff6682a4557b7241a25598794b77be63b56ee2dea5eae21bfabc21703ab07f37

See more details on using hashes here.

File details

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

File metadata

  • Download URL: POT-0.8.2-cp37-cp37m-macosx_10_9_x86_64.whl
  • Upload date:
  • Size: 198.3 kB
  • Tags: CPython 3.7m, macOS 10.9+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.0 CPython/3.8.10

File hashes

Hashes for POT-0.8.2-cp37-cp37m-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 d23affa522b69252436e7b9a94c8ac73f93513973c1bc3dc527f87f91b3581bc
MD5 4614c0cd6bb9b2a3cd7cbce952265aa7
BLAKE2b-256 e391e1f4d3d01a3e15a19c1a9e0bb18355580f716341427f25317f95780d6ea0

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