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)

[42] Delon, J., Gozlan, N., and Saint-Dizier, A. Generalized Wasserstein barycenters between probability measures living on different subspaces. arXiv preprint arXiv:2105.09755, 2021.

[43] Álvarez-Esteban, Pedro C., et al. A fixed-point approach to barycenters in Wasserstein space. Journal of Mathematical Analysis and Applications 441.2 (2016): 744-762.

[44] Delon, Julie, Julien Salomon, and Andrei Sobolevski. Fast transport optimization for Monge costs on the circle. SIAM Journal on Applied Mathematics 70.7 (2010): 2239-2258.

[45] Hundrieser, Shayan, Marcel Klatt, and Axel Munk. The statistics of circular optimal transport. Directional Statistics for Innovative Applications: A Bicentennial Tribute to Florence Nightingale. Singapore: Springer Nature Singapore, 2022. 57-82.

[46] Bonet, C., Berg, P., Courty, N., Septier, F., Drumetz, L., & Pham, M. T. (2023). Spherical Sliced-Wasserstein. International Conference on Learning Representations.

[47] Chowdhury, S., & Mémoli, F. (2019). The gromov–wasserstein distance between networks and stable network invariants. Information and Inference: A Journal of the IMA, 8(4), 757-787.

[48] Cédric Vincent-Cuaz, Rémi Flamary, Marco Corneli, Titouan Vayer, Nicolas Courty (2022). Semi-relaxed Gromov-Wasserstein divergence and applications on graphs. International Conference on Learning Representations (ICLR), 2022.

[49] Redko, I., Vayer, T., Flamary, R., and Courty, N. (2020). CO-Optimal Transport. Advances in Neural Information Processing Systems, 33.

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.9.0.tar.gz (298.6 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.9.0-cp310-cp310-win_amd64.whl (227.6 kB view details)

Uploaded CPython 3.10Windows x86-64

POT-0.9.0-cp310-cp310-win32.whl (224.0 kB view details)

Uploaded CPython 3.10Windows x86

POT-0.9.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (697.9 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ ARM64

POT-0.9.0-cp310-cp310-manylinux_2_12_x86_64.manylinux2010_x86_64.whl (702.9 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.12+ x86-64

POT-0.9.0-cp310-cp310-manylinux_2_12_i686.manylinux2010_i686.whl (695.2 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.12+ i686

POT-0.9.0-cp310-cp310-macosx_11_0_arm64.whl (225.8 kB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

POT-0.9.0-cp310-cp310-macosx_10_9_x86_64.whl (234.6 kB view details)

Uploaded CPython 3.10macOS 10.9+ x86-64

POT-0.9.0-cp310-cp310-macosx_10_9_universal2.whl (288.3 kB view details)

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

POT-0.9.0-cp39-cp39-win_amd64.whl (228.1 kB view details)

Uploaded CPython 3.9Windows x86-64

POT-0.9.0-cp39-cp39-win32.whl (224.3 kB view details)

Uploaded CPython 3.9Windows x86

POT-0.9.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (705.5 kB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ ARM64

POT-0.9.0-cp39-cp39-manylinux_2_12_x86_64.manylinux2010_x86_64.whl (709.2 kB view details)

Uploaded CPython 3.9manylinux: glibc 2.12+ x86-64

POT-0.9.0-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.whl (702.1 kB view details)

Uploaded CPython 3.9manylinux: glibc 2.12+ i686

POT-0.9.0-cp39-cp39-macosx_11_0_arm64.whl (225.0 kB view details)

Uploaded CPython 3.9macOS 11.0+ ARM64

POT-0.9.0-cp39-cp39-macosx_10_9_x86_64.whl (233.8 kB view details)

Uploaded CPython 3.9macOS 10.9+ x86-64

POT-0.9.0-cp39-cp39-macosx_10_9_universal2.whl (286.6 kB view details)

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

POT-0.9.0-cp38-cp38-win_amd64.whl (228.3 kB view details)

Uploaded CPython 3.8Windows x86-64

POT-0.9.0-cp38-cp38-win32.whl (224.7 kB view details)

Uploaded CPython 3.8Windows x86

POT-0.9.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (707.7 kB view details)

Uploaded CPython 3.8manylinux: glibc 2.17+ ARM64

POT-0.9.0-cp38-cp38-manylinux_2_12_x86_64.manylinux2010_x86_64.whl (720.8 kB view details)

Uploaded CPython 3.8manylinux: glibc 2.12+ x86-64

POT-0.9.0-cp38-cp38-manylinux_2_12_i686.manylinux2010_i686.whl (712.0 kB view details)

Uploaded CPython 3.8manylinux: glibc 2.12+ i686

POT-0.9.0-cp38-cp38-macosx_11_0_arm64.whl (225.3 kB view details)

Uploaded CPython 3.8macOS 11.0+ ARM64

POT-0.9.0-cp38-cp38-macosx_10_9_x86_64.whl (234.2 kB view details)

Uploaded CPython 3.8macOS 10.9+ x86-64

POT-0.9.0-cp38-cp38-macosx_10_9_universal2.whl (287.5 kB view details)

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

POT-0.9.0-cp37-cp37m-win_amd64.whl (228.4 kB view details)

Uploaded CPython 3.7mWindows x86-64

POT-0.9.0-cp37-cp37m-win32.whl (224.4 kB view details)

Uploaded CPython 3.7mWindows x86

POT-0.9.0-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (693.9 kB view details)

Uploaded CPython 3.7mmanylinux: glibc 2.17+ ARM64

POT-0.9.0-cp37-cp37m-manylinux_2_12_x86_64.manylinux2010_x86_64.whl (703.6 kB view details)

Uploaded CPython 3.7mmanylinux: glibc 2.12+ x86-64

POT-0.9.0-cp37-cp37m-manylinux_2_12_i686.manylinux2010_i686.whl (696.2 kB view details)

Uploaded CPython 3.7mmanylinux: glibc 2.12+ i686

POT-0.9.0-cp37-cp37m-macosx_10_9_x86_64.whl (233.9 kB view details)

Uploaded CPython 3.7mmacOS 10.9+ x86-64

File details

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

File metadata

  • Download URL: POT-0.9.0.tar.gz
  • Upload date:
  • Size: 298.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.10.6

File hashes

Hashes for POT-0.9.0.tar.gz
Algorithm Hash digest
SHA256 300864ae2b469a7b66155fc610a134961d9d46f1ecde0d85e484d14acd06b215
MD5 47f7b6b68ae6a11c7782f85c12697a72
BLAKE2b-256 4a9086ec09ac19eb438915e2b253b9bfc8922fc753b3da871d407497e00b0ff4

See more details on using hashes here.

File details

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

File metadata

  • Download URL: POT-0.9.0-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 227.6 kB
  • Tags: CPython 3.10, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.10.6

File hashes

Hashes for POT-0.9.0-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 cb9347361b9baaeafff296829fec71b21e71d2aaa17a8c4a98f15e31719f23a7
MD5 9420ddcd28a810508890d3d0afd04a71
BLAKE2b-256 bd91c8d61290ae7db031d9c8c3bfba4770e2f97eabca6b76612c9470b4e9510a

See more details on using hashes here.

File details

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

File metadata

  • Download URL: POT-0.9.0-cp310-cp310-win32.whl
  • Upload date:
  • Size: 224.0 kB
  • Tags: CPython 3.10, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.10.6

File hashes

Hashes for POT-0.9.0-cp310-cp310-win32.whl
Algorithm Hash digest
SHA256 e780c2306909900193e84917df7281149fa2ee5ade99d61dbb72af91f859cf08
MD5 15b498f8072fd7cfc79b99e79df08d9e
BLAKE2b-256 88943cf7b842fbe5df71ac010e966c03566271e6d3756d1f8f8a385c752cc833

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for POT-0.9.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 3384cae377d8d90a8dc9055ccba3cedc625b2bcf178d3c5877fcd954a9f83972
MD5 8ecb72e5225a10f48dc9969f23cd77d9
BLAKE2b-256 2384fe86f70abb1db86443a5bb8340bb708531584f98d4cc8e17f3c3d6bb7902

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for POT-0.9.0-cp310-cp310-manylinux_2_12_x86_64.manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 d755d0208f34df1958bae2c1c98cedf14e1521a45d39d641225829289a5c28b6
MD5 19be3cd676bdd60aec8a7b7446e78267
BLAKE2b-256 26b0ce7bbb813078f67af4abf3f882de64544c8c0e964c29dcc01a29f357562e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for POT-0.9.0-cp310-cp310-manylinux_2_12_i686.manylinux2010_i686.whl
Algorithm Hash digest
SHA256 65ccc1de449ae7d935290e86c13b9f76a37938ac726a5e5b70c21e178225f7c8
MD5 d9c17c0dd4ea3a70f02aacd4e63695af
BLAKE2b-256 db0642aa2a3f1602993c9203d3564c8fff1dbe5755dd8536390aa43555899933

See more details on using hashes here.

File details

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

File metadata

  • Download URL: POT-0.9.0-cp310-cp310-macosx_11_0_arm64.whl
  • Upload date:
  • Size: 225.8 kB
  • Tags: CPython 3.10, macOS 11.0+ ARM64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.10.6

File hashes

Hashes for POT-0.9.0-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 6c6d7b7185929fe9c2fe999cda3aa6c00a01cf0e70d9e934f4489223bb318538
MD5 591b19dc425c7b16d0e2f3c170fb069f
BLAKE2b-256 bb2fe67f74dc66ce46a15542c7eaa71903492fef6031d5c72452e57ae164661b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for POT-0.9.0-cp310-cp310-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 f670442fc566014792842d8bcb76bb7c734c3578183029b7aa9efd5ec0106fb1
MD5 d5f239944958d4bfeb280d73218c5841
BLAKE2b-256 19da59a72ec0abfc28bf16f7d9a08248d253bb06f460ff7d25bf49c0b76bd45f

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for POT-0.9.0-cp310-cp310-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 7484e1b9cb7852b9fa94c9af7317f9bfafee937be5893d6e12e867098fe6f9d6
MD5 d07a826bc29128c88e95d4bb5d027354
BLAKE2b-256 69ee6f01f8b746bfd50c53f8a8c785be35c5be0bf5398a2126cbfa95d9f1f11a

See more details on using hashes here.

File details

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

File metadata

  • Download URL: POT-0.9.0-cp39-cp39-win_amd64.whl
  • Upload date:
  • Size: 228.1 kB
  • Tags: CPython 3.9, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.10.6

File hashes

Hashes for POT-0.9.0-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 c40e1c771e188c2856702ce7b8a4891afb3f634a6d9abad0488260afa7e28028
MD5 96c90064d797e77e6dd27c1e02f9c4d3
BLAKE2b-256 afcfc472e534f5ba0b5d3c1e44f2150e1c280d2ba40355a10445de1defd1096c

See more details on using hashes here.

File details

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

File metadata

  • Download URL: POT-0.9.0-cp39-cp39-win32.whl
  • Upload date:
  • Size: 224.3 kB
  • Tags: CPython 3.9, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.10.6

File hashes

Hashes for POT-0.9.0-cp39-cp39-win32.whl
Algorithm Hash digest
SHA256 470586ff300cc8ff6b731896f37d7add9e4ec11b75c21a23921c4ec5105a20ae
MD5 ed148807f77cf5aa6924f497b5db264d
BLAKE2b-256 511e90f58c681fcec1b2a5a409cfda25e08e0eb9b13cc03b4a0e1ed4527de53a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for POT-0.9.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 6337dc81f40830e12044e25752aadd4dfe42187e8be040c88e6c405cb51eef69
MD5 cc2c1e0c916553e16afa8f1048161cba
BLAKE2b-256 dcf9fbe531fbf99bef7109db3b29aec239048615c76231bc67c5912a3ded8410

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for POT-0.9.0-cp39-cp39-manylinux_2_12_x86_64.manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 ec13f663d597fe44e9fc1ed70269efb9946e2a0503d6025665b23886eda7178a
MD5 10c102c051c3cd46ac99beb6d07db659
BLAKE2b-256 8c2200b7523973c8b1ae9bd9d8cb3114e3f8d86125b3769c890388409cbf1b41

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for POT-0.9.0-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.whl
Algorithm Hash digest
SHA256 bda1f80c35367e365b8e757280fc7bf19524a62907cc706880ead0283af36df1
MD5 d7b83dd8267377f1ebfc4c8b6026ca83
BLAKE2b-256 3e72078b7ade2716c57631b48a38a1ed1b3a248b26cd9c2e0a48f55c8e01b401

See more details on using hashes here.

File details

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

File metadata

  • Download URL: POT-0.9.0-cp39-cp39-macosx_11_0_arm64.whl
  • Upload date:
  • Size: 225.0 kB
  • Tags: CPython 3.9, macOS 11.0+ ARM64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.10.6

File hashes

Hashes for POT-0.9.0-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 b842fd909ae4511a12946bd4dc35665f46b6e7d4e9ffc16edc03c71573d15001
MD5 2a147ac35e6ab9d2081d4dea3f7fc461
BLAKE2b-256 41a456c9591fd6df6aed46d2d7462da619145dee35c1230855e9c8d814cd2218

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for POT-0.9.0-cp39-cp39-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 f9bcbcf8f0c7c9aeb4010b0ba4f452f1d56d7a843af869121d0cb823ca964d71
MD5 5635e6de4a78b5bef4888ed9cd517ce3
BLAKE2b-256 d431fd11f4527b77655cf54f97a1f3949d56f583b5ac85a23aaa737efb8a7d57

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for POT-0.9.0-cp39-cp39-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 5c78f08601c5cc0e70861cd1a1cb25c937de0ca689e791ff7f217ab14a8cf9a7
MD5 491b80a2b9800c577d4f19aec77a838f
BLAKE2b-256 3a01fb69804c80c7c4403e1ce31c0d190b4f40675ce8edb0afd4e9f851dfe9fb

See more details on using hashes here.

File details

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

File metadata

  • Download URL: POT-0.9.0-cp38-cp38-win_amd64.whl
  • Upload date:
  • Size: 228.3 kB
  • Tags: CPython 3.8, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.10.6

File hashes

Hashes for POT-0.9.0-cp38-cp38-win_amd64.whl
Algorithm Hash digest
SHA256 54d7c38e78bf3dfe3591619d70f025536f91b59d3b95bc1d59747a92498dae43
MD5 193ad3122c2e92451ca099c67642482e
BLAKE2b-256 2c186115e67339c736ead2a60ef239cc2b5381a62ab6a258909c0daec98ed75e

See more details on using hashes here.

File details

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

File metadata

  • Download URL: POT-0.9.0-cp38-cp38-win32.whl
  • Upload date:
  • Size: 224.7 kB
  • Tags: CPython 3.8, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.10.6

File hashes

Hashes for POT-0.9.0-cp38-cp38-win32.whl
Algorithm Hash digest
SHA256 51ade7a80be1866635371df2f59b27191f01299388d71ca24a424bb663501846
MD5 8ea50ee9ab68230b1f80b2bfaa22a53b
BLAKE2b-256 e68af2bb884d34c92a541a5e04f9e70e0eb3d6d77e8485cfb1adf7e768106a87

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for POT-0.9.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 9eb6dd3e032215a669a93b0cc4f2ace45f4096e25a7f5df4c84819aa30229968
MD5 79eb5551d9607d3acacc0a2d32b7b81f
BLAKE2b-256 a2bc3b76bb99e55c1c650df8d7b75e99e6f50561c0a3e9d670549437f2ca8121

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for POT-0.9.0-cp38-cp38-manylinux_2_12_x86_64.manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 0b59fd547667e237ee88e1a24fdde97097c50300050842f8d54c97c05e068eb4
MD5 af906c90cbe560d5e7d4a37858d7b02f
BLAKE2b-256 39352d125d347ddf69bc5aa230549bc003040797601ca7d49de4b9fa723c416d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for POT-0.9.0-cp38-cp38-manylinux_2_12_i686.manylinux2010_i686.whl
Algorithm Hash digest
SHA256 61f55e54b842a6750bf3c1d81deaceab92e48956c195ec7be4f3be4287f7aafa
MD5 0dce59da3b9707d97750599279d49690
BLAKE2b-256 b15df45d0c55735937ef7045aafd90796eb3c6ad8c9f67beb089b19ed86d054e

See more details on using hashes here.

File details

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

File metadata

  • Download URL: POT-0.9.0-cp38-cp38-macosx_11_0_arm64.whl
  • Upload date:
  • Size: 225.3 kB
  • Tags: CPython 3.8, macOS 11.0+ ARM64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.10.6

File hashes

Hashes for POT-0.9.0-cp38-cp38-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 7d7a1ee80072001c434cdf71d38bc38f85b05ead0750ed822388320ab3330536
MD5 f3fdc3d499d359d6e1999da64535e064
BLAKE2b-256 5c970ed67144f73855ba0d04365bd8faf235c7cb55d88c31f9d12ad73156dc48

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for POT-0.9.0-cp38-cp38-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 27da7e2d8328c7c5e12d9ce177ee0e09bb41427e934925f3136e6a1eca629855
MD5 6af97bfd940ef5c41a5701c2e5ee4d4c
BLAKE2b-256 7501282fb86f95a063019c8dfcf6e754893e8070f8531cafe63d957bf883bf13

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for POT-0.9.0-cp38-cp38-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 5b46260b9a3194cda694f4f4e0bc4488ad90c7ebe7bdaa8d185a25da90a4b2b0
MD5 31a50fce0e5e7d23ad66291f7ccbbdfc
BLAKE2b-256 1caa795c2749c7cce4235ba6a07153adac6a8b0773b0958c81e7e10d44957c58

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for POT-0.9.0-cp37-cp37m-win_amd64.whl
Algorithm Hash digest
SHA256 d1ed3398cb4765badc51938c3b60d9961d93ac742aaabb1f9c97a79b845289dd
MD5 1a702a4cb4d13b89e0eeedc61387bb2d
BLAKE2b-256 82e62298e7879dda25bd676ea9870fecbe52be82c92f9f441cc4a776608f8413

See more details on using hashes here.

File details

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

File metadata

  • Download URL: POT-0.9.0-cp37-cp37m-win32.whl
  • Upload date:
  • Size: 224.4 kB
  • Tags: CPython 3.7m, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.10.6

File hashes

Hashes for POT-0.9.0-cp37-cp37m-win32.whl
Algorithm Hash digest
SHA256 26466654728525972fdbe791b799eaeff71be323c93f0f3eb4d8fe61168008ea
MD5 edb5f4d540888db0bc31b88576fed9ef
BLAKE2b-256 29d9d45142651f37148b16dca6eb317c7b778ed6debd31fbeaa3eb19db43a9fa

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for POT-0.9.0-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 bffd3dc8bdb013b78ae075aabe22f756d659c5c414f8305177929d17a3c14007
MD5 73d3271b9c8df53bcbc70860f5c19daa
BLAKE2b-256 36c58982fb3f4aaa97cc0364de45d12a74a49adda8a7ebf5e736de3d7b307bff

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for POT-0.9.0-cp37-cp37m-manylinux_2_12_x86_64.manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 f9bbebb987cfa591e81c763b3a2d9f142fe93698523342bff18752e96cdda27e
MD5 12d628f789c2a044e378bd09014730ed
BLAKE2b-256 05502fbe8cd57fed6d796dbefe6a58ebf143d7313ef0e5e7a724e8f342af122e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for POT-0.9.0-cp37-cp37m-manylinux_2_12_i686.manylinux2010_i686.whl
Algorithm Hash digest
SHA256 a43206b10c72052db40ac398ec572b26ed80c6d732d4d9156d20eb4161629ed4
MD5 b3fb37c9b5061dc6a5c1a187bb6fb9ca
BLAKE2b-256 31a5a948d3e2d6821641d78a9b106294f5a0acc0ccf530d7f2d16b23e2971dd0

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for POT-0.9.0-cp37-cp37m-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 a448175fcf585b8400f9b4ee0bf14b4816cdeaa494f23fbdf0117358a859d867
MD5 a14a986bb967a489371665a95b0df831
BLAKE2b-256 1fdc9a75546ca711ff56b50de279d52f03a15fb5af161c944a4ffd552260a7b7

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