CINXE.COM

caniusepython3 · PyPI

<!DOCTYPE html> <html lang="en" dir="ltr"> <head> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1"> <meta name="defaultLanguage" content="en"> <meta name="availableLanguages" content="en, es, fr, ja, pt_BR, uk, el, de, zh_Hans, zh_Hant, ru, he, eo, ko"> <title>caniusepython3 · PyPI</title> <meta name="description" content="Determine what projects are blocking you from porting to Python 3"> <link rel="stylesheet" href="/static/css/warehouse-ltr.4afe342a.css"> <link rel="stylesheet" href="/static/css/fontawesome.080e1050.css"> <link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Source+Sans+3:400,400italic,600,600italic,700,700italic%7CSource+Code+Pro:500"> <noscript> <link rel="stylesheet" href="/static/css/noscript.0673c9ea.css"> </noscript> <link rel="icon" href="/static/images/favicon.35549fe8.ico" type="image/x-icon"> <link rel="alternate" type="application/rss+xml" title="RSS: 40 latest updates" href="/rss/updates.xml"> <link rel="alternate" type="application/rss+xml" title="RSS: 40 newest packages" href="/rss/packages.xml"> <link rel="alternate" type="application/rss+xml" title="RSS: latest releases for caniusepython3" href="/rss/project/caniusepython3/releases.xml"> <link rel="canonical" href="https://pypi.org/project/caniusepython3/"> <meta property="og:url" content="https://pypi.org/project/caniusepython3/"> <meta property="og:site_name" content="PyPI"> <meta property="og:type" content="website"> <meta property="og:image" content="https://pypi.org/static/images/twitter.abaf4b19.webp"> <meta property="og:title" content="caniusepython3"> <meta property="og:description" content="Determine what projects are blocking you from porting to Python 3"> <link rel="search" type="application/opensearchdescription+xml" title="PyPI" href="/opensearch.xml"> <script async data-ga-id="UA-55961911-1" data-ga4-id="G-RW7D75DF8V" src="/static/js/warehouse.33c92630.js"> </script> <script> MathJax = { tex: { inlineMath: [['$', '$'], ['\\(', '\\)']] }, }; </script> <script async src="https://cdn.jsdelivr.net/npm/mathjax@3.2.2/es5/tex-svg.js" integrity="sha256-1CldwzdEg2k1wTmf7s5RWVd7NMXI/7nxxjJM2C4DqII=" crossorigin="anonymous" ></script> <script async src="https://www.googletagmanager.com/gtag/js?id=UA-55961911-1"></script> <script async src="https://www.googletagmanager.com/gtag/js?id=G-RW7D75DF8V"></script> <script defer src="https://www.fastly-insights.com/insights.js?k=6a52360a-f306-421e-8ed5-7417d0d4a4e9&dnt=true"></script> <script async src="https://media.ethicalads.io/media/client/v1.4.0/ethicalads.min.js" integrity="sha256-U3hKDidudIaxBDEzwGJApJgPEf2mWk6cfMWghrAa6i0= sha384-UcmsCqcNRSLW/dV3Lo1oCi2/VaurXbib6p4HyUEOeIa/4OpsrnucrugAefzVZJfI sha512-q4t1L4xEjGV2R4hzqCa41P8jrgFUS8xTb8rdNv4FGvw7FpydVj/kkxBJHOiaoxHa8olCcx1Slk9K+3sNbsM4ug==" crossorigin="anonymous" ></script> </head> <body data-controller="viewport-toggle"> <!-- Accessibility: this link should always be the first piece of content inside the body--> <a href="#content" class="skip-to-content">Skip to main content</a> <button type="button" class="button button--primary button--switch-to-mobile hidden" data-viewport-toggle-target="switchToMobile" data-action="viewport-toggle#switchToMobile"> Switch to mobile version </button> <div id="sticky-notifications" class="stick-to-top js-stick-to-top"> <!-- Add browser warning. Will show for ie9 and below --> <!--[if IE]> <div class="notification-bar notification-bar--warning" role="status"> <span class="notification-bar__icon"> <i class="fa fa-exclamation-triangle" aria-hidden="true"></i> <span class="sr-only">Warning</span> </span> <span class="notification-bar__message">You are using an unsupported browser, upgrade to a newer version.</span> </div> <![endif]--> <noscript> <div class="notification-bar notification-bar--warning" role="status"> <span class="notification-bar__icon"> <i class="fa fa-exclamation-triangle" aria-hidden="true"></i> <span class="sr-only">Warning</span> </span> <span class="notification-bar__message">Some features may not work without JavaScript. Please try enabling it if you encounter problems.</span> </div> </noscript> <div data-html-include="/_includes/unauthed/notification-banners/"></div> </div> <div data-html-include="/_includes/authed/flash-messages/"></div> <div data-html-include="/_includes/authed/session-notifications/"></div> <header class="site-header "> <div class="site-container"> <div class="split-layout"> <div class="split-layout"> <div> <a class="site-header__logo" href="/"> <img alt="PyPI" src="/static/images/logo-small.8998e9d1.svg"> </a> </div> <form class="search-form search-form--primary" action="/search/" role="search"> <label for="search" class="sr-only">Search PyPI</label> <input id="search" class="search-form__search" type="text" name="q" placeholder="Search projects" value="" autocomplete="off" autocapitalize="off" spellcheck="false" data-controller="search-focus" data-action="keydown@window->search-focus#focusSearchField" data-search-focus-target="searchField"> <button type="submit" class="search-form__button"> <i class="fa fa-search" aria-hidden="true"></i> <span class="sr-only">Search</span> </button> </form> </div> <div data-html-include="/_includes/authed/current-user-indicator/"> <div id="user-indicator" class="horizontal-menu horizontal-menu--light horizontal-menu--tall"> <nav class="horizontal-menu horizontal-menu--light horizontal-menu--tall hide-on-tablet" aria-label="Main navigation"> <ul> <li class="horizontal-menu__item"><a href="/help/" class="horizontal-menu__link">Help</a></li> <li class="horizontal-menu__item"><a href="/sponsors/" class="horizontal-menu__link">Sponsors</a></li> <li class="horizontal-menu__item"><a href="/account/login/" class="horizontal-menu__link">Log in</a></li> <li class="horizontal-menu__item"><a href="/account/register/" class="horizontal-menu__link">Register</a></li> </ul> </nav> <nav class="dropdown dropdown--on-menu hidden show-on-tablet" aria-label="Main navigation"> <button type="button" class="horizontal-menu__link dropdown__trigger" aria-haspopup="true" aria-expanded="false" aria-label="View menu"> Menu <span class="dropdown__trigger-caret"> <i class="fa fa-caret-down" aria-hidden="true"></i> </span> </button> <ul class="dropdown__content" aria-hidden="true" aria-label="Main menu"> <li><a class="dropdown__link" href="/help/">Help</a></li> <li><a class="dropdown__link" href="/sponsors/">Sponsors</a></li> <li><a class="dropdown__link" href="/account/login/">Log in</a></li> <li><a class="dropdown__link" href="/account/register/">Register</a></li> </ul> </nav> </div> </div> </div> </div> </header> <div class="mobile-search"> <form class="search-form search-form--fullwidth" action="/search/" role="search"> <label for="mobile-search" class="sr-only">Search PyPI</label> <input id="mobile-search" class="search-form__search" type="text" name="q" placeholder="Search projects" value="" autocomplete="off" autocapitalize="off" spellcheck="false"> <button type="submit" class="search-form__button"> <i class="fa fa-search" aria-hidden="true"></i> <span class="sr-only">Search</span> </button> </form> </div> <main id="content"> <div class="banner"> <div class="package-header"> <div class="package-header__left"> <h1 class="package-header__name"> caniusepython3 7.3.0 </h1> <div data-controller="clipboard"> <p class="package-header__pip-instructions"> <span id="pip-command" data-clipboard-target="source">pip install caniusepython3</span> <button type="button" class="copy-tooltip copy-tooltip-s" data-action="clipboard#copy" data-clipboard-target="tooltip" data-clipboard-tooltip-value="Copy to clipboard"> <i class="fa fa-copy" aria-hidden="true"></i> <span class="sr-only">Copy PIP instructions</span> </button> </p> </div> </div> <div class="package-header__right"> <a class="status-badge status-badge--good" href="/project/caniusepython3/"> <span>Latest version</span> </a> <p class="package-header__date"> Released: <time datetime="2021-01-01T23:11:47+0000" data-controller="localized-time" data-localized-time-relative="true" data-localized-time-show-time="false"> Jan 1, 2021 </time> </p> </div> </div> </div> <div class="horizontal-section horizontal-section--grey horizontal-section--thin"> <div class="site-container"> <div data-html-include="/_includes/authed/administer-project-include/caniusepython3"></div> <div class="split-layout split-layout--middle package-description"> <p class="package-description__summary">Determine what projects are blocking you from porting to Python 3</p> <div data-html-include="/_includes/authed/edit-project-button/caniusepython3"></div> </div> </div> </div> <div data-controller="project-tabs"> <div class="tabs-container"> <div class="vertical-tabs"> <div class="vertical-tabs__tabs"> <div class="sidebar-section"> <h3 class="sidebar-section__title">Navigation</h3> <nav aria-label="Navigation for caniusepython3"> <ul class="vertical-tabs__list" role="tablist"> <li role="tab"> <a id="description-tab" href="#description" data-project-tabs-target="tab" data-action="project-tabs#onTabClick" class="vertical-tabs__tab vertical-tabs__tab--with-icon vertical-tabs__tab--is-active" aria-selected="true" aria-label="Project description. Focus will be moved to the description."> <i class="fa fa-align-left" aria-hidden="true"></i> Project description </a> </li> <li role="tab"> <a id="history-tab" href="#history" data-project-tabs-target="tab" data-action="project-tabs#onTabClick" class="vertical-tabs__tab vertical-tabs__tab--with-icon" aria-label="Release history. Focus will be moved to the history panel."> <i class="fa fa-history" aria-hidden="true"></i> Release history </a> </li> <li role="tab"> <a id="files-tab" href="#files" data-project-tabs-target="tab" data-action="project-tabs#onTabClick" class="vertical-tabs__tab vertical-tabs__tab--with-icon" aria-label="Download files. Focus will be moved to the project files."> <i class="fa fa-download" aria-hidden="true"></i> Download files </a> </li> </ul> </nav> </div> <div class="sidebar-section verified"> <h3 class="sidebar-section__title"> Verified details <i class="fa fa-circle-check check" title="Verified by PyPI on 2021-01-01"></i> </h3> <small><i>These details have been <a href="https://docs.pypi.org/project_metadata/#verified-details">verified by PyPI</a></i></small> <h6>Maintainers</h6> <span class="sidebar-section__maintainer"> <a href="/user/brettcannon/" aria-label=""> <span class="sidebar-section__user-gravatar"> <img src="https://pypi-camo.freetls.fastly.net/f1d45dc57e85dc2eaa175bd03f1e8d4e5cfd558b/68747470733a2f2f7365637572652e67726176617461722e636f6d2f6176617461722f65383630306431366261363637636338643766303064646339663235343334303f73697a653d3530" height="50" width="50" alt="Avatar for brettcannon from gravatar.com" title="Avatar for brettcannon from gravatar.com"> </span> <span class="sidebar-section__user-gravatar-text"> brettcannon </span> </a> </span> </div> <div class="sidebar-section unverified"> <h3 class="sidebar-section__title">Unverified details</h3> <small><i>These details have <b>not</b> been verified by PyPI</i></small> <h6>Project links</h6> <ul class="vertical-tabs__list"> <li> <a class="vertical-tabs__tab vertical-tabs__tab--with-icon vertical-tabs__tab--condensed" href="https://github.com/brettcannon/caniusepython3" rel="nofollow"> <i class="fas fa-home" aria-hidden="true"></i>Homepage </a> </li> </ul> <div class="sidebar-section unverified"> <h6>Meta</h6> <ul> <li> <span> <strong>License:</strong> Apache Software License </span> </li> <li> <span> <strong>Author:</strong> <a href="mailto:brett@python.org">Brett Cannon</a> </span> </li> </ul> </div> <div class="sidebar-section unverified"> <h6 class="sidebar-section__title">Classifiers</h6> <ul class="sidebar-section__classifiers"> <li> <strong>Development Status</strong> <ul> <li> <a href="/search/?c=Development+Status+%3A%3A+7+-+Inactive"> 7 - Inactive </a> </li> </ul> </li> <li> <strong>Environment</strong> <ul> <li> <a href="/search/?c=Environment+%3A%3A+Console"> Console </a> </li> </ul> </li> <li> <strong>Intended Audience</strong> <ul> <li> <a href="/search/?c=Intended+Audience+%3A%3A+Developers"> Developers </a> </li> </ul> </li> <li> <strong>License</strong> <ul> <li> <a href="/search/?c=License+%3A%3A+OSI+Approved+%3A%3A+Apache+Software+License"> OSI Approved :: Apache Software License </a> </li> </ul> </li> <li> <strong>Programming Language</strong> <ul> <li> <a href="/search/?c=Programming+Language+%3A%3A+Python"> Python </a> </li> <li> <a href="/search/?c=Programming+Language+%3A%3A+Python+%3A%3A+2.7"> Python :: 2.7 </a> </li> <li> <a href="/search/?c=Programming+Language+%3A%3A+Python+%3A%3A+3"> Python :: 3 </a> </li> <li> <a href="/search/?c=Programming+Language+%3A%3A+Python+%3A%3A+3.5"> Python :: 3.5 </a> </li> <li> <a href="/search/?c=Programming+Language+%3A%3A+Python+%3A%3A+3.6"> Python :: 3.6 </a> </li> <li> <a href="/search/?c=Programming+Language+%3A%3A+Python+%3A%3A+3.7"> Python :: 3.7 </a> </li> <li> <a href="/search/?c=Programming+Language+%3A%3A+Python+%3A%3A+3.8"> Python :: 3.8 </a> </li> <li> <a href="/search/?c=Programming+Language+%3A%3A+Python+%3A%3A+3.9"> Python :: 3.9 </a> </li> </ul> </li> </ul> </div> </div><div class="sidebar-section" data-ea-publisher="psf" data-ea-type="psf" data-ea-keywords="pypi-sidebar"></div> <div data-html-include="https://pypi.org/_includes/authed/submit-malware-report/caniusepython3"></div> </div> <div class="vertical-tabs__panel"> <!-- mobile menu --> <nav aria-label="Navigation for caniusepython3"> <ul class="vertical-tabs__list" role="tablist"> <li role="tab"> <a id="mobile-description-tab" href="#description" data-project-tabs-target="mobileTab" data-action="project-tabs#onTabClick" class="vertical-tabs__tab vertical-tabs__tab--with-icon vertical-tabs__tab--mobile vertical-tabs__tab--no-top-border vertical-tabs__tab--is-active" aria-selected="true" aria-label="Project description. Focus will be moved to the description."> <i class="fa fa-align-left" aria-hidden="true"></i> Project description </a> </li> <li role="tab"> <a id="mobile-data-tab" href="#data" data-project-tabs-target="mobileTab" data-action="project-tabs#onTabClick" class="vertical-tabs__tab vertical-tabs__tab--with-icon vertical-tabs__tab--mobile" aria-label="Project details. Focus will be moved to the project details."> <i class="fa fa-info-circle" aria-hidden="true"></i> Project details </a> </li> <li role="tab"> <a id="mobile-history-tab" href="#history" data-project-tabs-target="mobileTab" data-action="project-tabs#onTabClick" class="vertical-tabs__tab vertical-tabs__tab--with-icon vertical-tabs__tab--mobile" aria-label="Release history. Focus will be moved to the history panel."> <i class="fa fa-history" aria-hidden="true"></i> Release history </a> </li> <li role="tab"> <a id="mobile-files-tab" href="#files" data-project-tabs-target="mobileTab" data-action="project-tabs#onTabClick" class="vertical-tabs__tab vertical-tabs__tab--with-icon vertical-tabs__tab--mobile" aria-label="Download files. Focus will be moved to the project files."> <i class="fa fa-download" aria-hidden="true"></i> Download files </a> </li> </ul> </nav> <div id="description" data-project-tabs-target="content" class="vertical-tabs__content" role="tabpanel" aria-labelledby="description-tab mobile-description-tab" tabindex="-1"> <div class="callout-block callout-block--warning"> <p>This project has been archived.</p> <p> The maintainers of this project have marked this project as archived. No new releases are expected. </p> </div> <h2 class="page-title">Project description</h2> <div class="project-description"> <p>** NOTE ** This project is no longer actively developed!</p> <section id=can-i-use-python-3> <h2>Can I Use Python 3?</h2> <p>This script takes in a set of dependencies and then figures out which of them are holding you up from porting to Python 3.</p> <section id=command-line-web-usage> <h3>Command-line/Web Usage</h3> <p>You can specify your dependencies in multiple ways:</p> <pre>caniusepython3 -r requirements.txt test-requirement.txt caniusepython3 -m PKG-INFO caniusepython3 -p numpy scipy ipython # If your project's setup.py uses setuptools # (note that setup_requires can't be checked) ... python setup.py caniusepython3</pre> <p>The output of the script will tell you how many (implicit) dependencies you need to transition to Python 3 in order to allow you to make the same transition. It will also list what projects have no dependencies blocking their transition so you can ask them to start a port to Python 3.</p> <p>If you prefer a web interface you can use <a href="https://caniusepython3.com" rel=nofollow>https://caniusepython3.com</a> by Jannis Leidel.</p> </section> <section id=integrating-with-your-tests> <h3>Integrating With Your Tests</h3> <p>If you want to check for Python 3 availability as part of your tests, you can use <span class="docutils literal">caniusepython3.check()</span>:</p> <pre><code><span class=k>def</span> <span class=nf>check</span><span class=p>(</span><span class=n>requirements_paths</span><span class=o>=</span><span class=p>[],</span> <span class=n>metadata</span><span class=o>=</span><span class=p>[],</span> <span class=n>projects</span><span class=o>=</span><span class=p>[]):</span><span class=w> </span><span class=sd>"""Return True if all of the specified dependencies have been ported to Python 3. The requirements_paths argument takes a sequence of file paths to requirements files. The 'metadata' argument takes a sequence of strings representing metadata. The 'projects' argument takes a sequence of project names. Any project that is not listed on PyPI will be considered ported. """</span></code></pre> <p>You can then integrate it into your tests like so:</p> <pre><code><span class=kn>import</span> <span class=nn>unittest</span><span class=w> </span><span class=kn>import</span> <span class=nn>caniusepython3</span><span class=w> </span><span class=k>class</span> <span class=nc>DependenciesOnPython3</span><span class=p>(</span><span class=n>unittest</span><span class=o>.</span><span class=n>TestCase</span><span class=p>):</span><span class=w> </span> <span class=k>def</span> <span class=nf>test_dependencies</span><span class=p>(</span><span class=bp>self</span><span class=p>):</span><span class=w> </span> <span class=c1># Will begin to fail when dependencies are no longer blocking you</span><span class=w> </span> <span class=c1># from using Python 3.</span><span class=w> </span> <span class=bp>self</span><span class=o>.</span><span class=n>assertFalse</span><span class=p>(</span><span class=n>caniusepython3</span><span class=o>.</span><span class=n>check</span><span class=p>(</span><span class=n>projects</span><span class=o>=</span><span class=p>[</span><span class=s1>'ipython'</span><span class=p>]))</span></code></pre> <p>For the change log, how to tell if a project has been ported, as well as help on how to port a project, please see the <a href="https://github.com/brettcannon/caniusepython3" rel=nofollow>project website</a>.</p> </section> <section id=extending-pylint-py3k> <h3>Extending <span class="docutils literal">pylint <span class=pre>--py3k</span></span></h3> <p>In <a href="https://pypi.python.org/pypi/pylint" rel=nofollow>Pylint</a> 1.4, a <span class="docutils literal"><span class=pre>--py3k</span></span> option was added to the linting tool to turn on checks for Python 2/3 incompatibilities (all other checks are turned off). While great, those checks are a little conservative in order to always be accurate. To fill out those checks with stricter – albeit potentially inaccurate – checkers, <span class="docutils literal">caniusepython3.pylint_checker</span> exists. On top of everything <span class="docutils literal">pylint <span class=pre>--py3k</span></span> already checks for, it adds checks for:</p> <ol> <li><p>Uses of <span class="docutils literal">open()</span> (in Python3, <span class="docutils literal">open()</span> is actually <span class="docutils literal">io.open()</span>)</li> <li><p>String literals that do not have a <span class="docutils literal">b</span>/<span class="docutils literal">u</span> prefix or <span class="docutils literal">from __future__ import unicode_literals</span></li> </ol> <p>If you wish to use the checker with Pylint, you can add it to your Pylint configuration file, e.g.:</p> <pre><code><span class=k>[MASTER]</span><span class=w> </span><span class=na>load-plugins</span><span class=o>=</span><span class=s>caniusepython3.pylint_checker</span></code></pre> </section> <section id=secret-bonus-feature> <h3>Secret, bonus feature</h3> <p>If you would like to use a different name for the script and setuptools command then set the environment variable <span class="docutils literal">CIU_ALT_NAME</span> to what you would like the alternative name to be. Reddit suggests <span class="docutils literal">icanhazpython3</span>.</p> </section> </section> </div> </div> <div id="data" data-project-tabs-target="content" class="vertical-tabs__content" role="tabpanel" aria-labelledby="mobile-data-tab" tabindex="-1"> <h2 class="page-title">Project details</h2> <div class="sidebar-section verified"> <h3 class="sidebar-section__title"> Verified details <i class="fa fa-circle-check check" title="Verified by PyPI on 2021-01-01"></i> </h3> <small><i>These details have been <a href="https://docs.pypi.org/project_metadata/#verified-details">verified by PyPI</a></i></small> <h6>Maintainers</h6> <span class="sidebar-section__maintainer"> <a href="/user/brettcannon/" aria-label=""> <span class="sidebar-section__user-gravatar"> <img src="https://pypi-camo.freetls.fastly.net/f1d45dc57e85dc2eaa175bd03f1e8d4e5cfd558b/68747470733a2f2f7365637572652e67726176617461722e636f6d2f6176617461722f65383630306431366261363637636338643766303064646339663235343334303f73697a653d3530" height="50" width="50" alt="Avatar for brettcannon from gravatar.com" title="Avatar for brettcannon from gravatar.com"> </span> <span class="sidebar-section__user-gravatar-text"> brettcannon </span> </a> </span> </div> <div class="sidebar-section unverified"> <h3 class="sidebar-section__title">Unverified details</h3> <small><i>These details have <b>not</b> been verified by PyPI</i></small> <h6>Project links</h6> <ul class="vertical-tabs__list"> <li> <a class="vertical-tabs__tab vertical-tabs__tab--with-icon vertical-tabs__tab--condensed" href="https://github.com/brettcannon/caniusepython3" rel="nofollow"> <i class="fas fa-home" aria-hidden="true"></i>Homepage </a> </li> </ul> <div class="sidebar-section unverified"> <h6>Meta</h6> <ul> <li> <span> <strong>License:</strong> Apache Software License </span> </li> <li> <span> <strong>Author:</strong> <a href="mailto:brett@python.org">Brett Cannon</a> </span> </li> </ul> </div> <div class="sidebar-section unverified"> <h6 class="sidebar-section__title">Classifiers</h6> <ul class="sidebar-section__classifiers"> <li> <strong>Development Status</strong> <ul> <li> <a href="/search/?c=Development+Status+%3A%3A+7+-+Inactive"> 7 - Inactive </a> </li> </ul> </li> <li> <strong>Environment</strong> <ul> <li> <a href="/search/?c=Environment+%3A%3A+Console"> Console </a> </li> </ul> </li> <li> <strong>Intended Audience</strong> <ul> <li> <a href="/search/?c=Intended+Audience+%3A%3A+Developers"> Developers </a> </li> </ul> </li> <li> <strong>License</strong> <ul> <li> <a href="/search/?c=License+%3A%3A+OSI+Approved+%3A%3A+Apache+Software+License"> OSI Approved :: Apache Software License </a> </li> </ul> </li> <li> <strong>Programming Language</strong> <ul> <li> <a href="/search/?c=Programming+Language+%3A%3A+Python"> Python </a> </li> <li> <a href="/search/?c=Programming+Language+%3A%3A+Python+%3A%3A+2.7"> Python :: 2.7 </a> </li> <li> <a href="/search/?c=Programming+Language+%3A%3A+Python+%3A%3A+3"> Python :: 3 </a> </li> <li> <a href="/search/?c=Programming+Language+%3A%3A+Python+%3A%3A+3.5"> Python :: 3.5 </a> </li> <li> <a href="/search/?c=Programming+Language+%3A%3A+Python+%3A%3A+3.6"> Python :: 3.6 </a> </li> <li> <a href="/search/?c=Programming+Language+%3A%3A+Python+%3A%3A+3.7"> Python :: 3.7 </a> </li> <li> <a href="/search/?c=Programming+Language+%3A%3A+Python+%3A%3A+3.8"> Python :: 3.8 </a> </li> <li> <a href="/search/?c=Programming+Language+%3A%3A+Python+%3A%3A+3.9"> Python :: 3.9 </a> </li> </ul> </li> </ul> </div> </div> <br> </div> <div id="history" data-project-tabs-target="content" class="vertical-tabs__content" role="tabpanel" aria-labelledby="history-tab mobile-history-tab" tabindex="-1"> <h2 class="page-title split-layout"> <span>Release history</span> <span class="reset-text margin-top"> <a href="/help/#project-release-notifications">Release notifications</a> | <a href="/rss/project/caniusepython3/releases.xml">RSS feed <i class="fa fa-rss" aria-hidden="true"></i></a> </span> </h2> <div class="release-timeline"> <div class="release release--latest release--current"> <div class="release__meta"> <span class="badge">This version</span> </div> <div class="release__graphic"> <div class="release__line"></div> <img class="release__node" alt="" src="https://pypi.org/static/images/blue-cube.572a5bfb.svg"> </div> <a class="card release__card" href="/project/caniusepython3/7.3.0/"> <p class="release__version"> 7.3.0 </p> <p class="release__version-date"> <time datetime="2021-01-01T23:11:47+0000" data-controller="localized-time" data-localized-time-relative="true" data-localized-time-show-time="false"> Jan 1, 2021 </time> </p> </a> </div> <div class="release"> <div class="release__meta"> </div> <div class="release__graphic"> <div class="release__line"></div> <img class="release__node" alt="" src="https://pypi.org/static/images/white-cube.2351a86c.svg"> </div> <a class="card release__card" href="/project/caniusepython3/7.2.0/"> <p class="release__version"> 7.2.0 </p> <p class="release__version-date"> <time datetime="2019-11-01T22:32:30+0000" data-controller="localized-time" data-localized-time-relative="true" data-localized-time-show-time="false"> Nov 1, 2019 </time> </p> </a> </div> <div class="release"> <div class="release__meta"> </div> <div class="release__graphic"> <div class="release__line"></div> <img class="release__node" alt="" src="https://pypi.org/static/images/white-cube.2351a86c.svg"> </div> <a class="card release__card" href="/project/caniusepython3/7.1.0/"> <p class="release__version"> 7.1.0 </p> <p class="release__version-date"> <time datetime="2019-05-06T19:31:55+0000" data-controller="localized-time" data-localized-time-relative="true" data-localized-time-show-time="false"> May 6, 2019 </time> </p> </a> </div> <div class="release"> <div class="release__meta"> </div> <div class="release__graphic"> <div class="release__line"></div> <img class="release__node" alt="" src="https://pypi.org/static/images/white-cube.2351a86c.svg"> </div> <a class="card release__card" href="/project/caniusepython3/7.0.0/"> <p class="release__version"> 7.0.0 </p> <p class="release__version-date"> <time datetime="2018-05-15T19:37:50+0000" data-controller="localized-time" data-localized-time-relative="true" data-localized-time-show-time="false"> May 15, 2018 </time> </p> </a> </div> <div class="release"> <div class="release__meta"> </div> <div class="release__graphic"> <div class="release__line"></div> <img class="release__node" alt="" src="https://pypi.org/static/images/white-cube.2351a86c.svg"> </div> <a class="card release__card" href="/project/caniusepython3/6.0.0/"> <p class="release__version"> 6.0.0 </p> <p class="release__version-date"> <time datetime="2017-10-20T19:15:08+0000" data-controller="localized-time" data-localized-time-relative="true" data-localized-time-show-time="false"> Oct 20, 2017 </time> </p> </a> </div> <div class="release"> <div class="release__meta"> </div> <div class="release__graphic"> <div class="release__line"></div> <img class="release__node" alt="" src="https://pypi.org/static/images/white-cube.2351a86c.svg"> </div> <a class="card release__card" href="/project/caniusepython3/5.0.0/"> <p class="release__version"> 5.0.0 </p> <p class="release__version-date"> <time datetime="2017-02-06T03:11:20+0000" data-controller="localized-time" data-localized-time-relative="true" data-localized-time-show-time="false"> Feb 6, 2017 </time> </p> </a> </div> <div class="release"> <div class="release__meta"> </div> <div class="release__graphic"> <div class="release__line"></div> <img class="release__node" alt="" src="https://pypi.org/static/images/white-cube.2351a86c.svg"> </div> <a class="card release__card" href="/project/caniusepython3/4.0.0/"> <p class="release__version"> 4.0.0 </p> <p class="release__version-date"> <time datetime="2016-08-07T21:40:27+0000" data-controller="localized-time" data-localized-time-relative="true" data-localized-time-show-time="false"> Aug 7, 2016 </time> </p> </a> </div> <div class="release"> <div class="release__meta"> </div> <div class="release__graphic"> <div class="release__line"></div> <img class="release__node" alt="" src="https://pypi.org/static/images/white-cube.2351a86c.svg"> </div> <a class="card release__card" href="/project/caniusepython3/3.4.1/"> <p class="release__version"> 3.4.1 </p> <p class="release__version-date"> <time datetime="2016-08-05T18:10:14+0000" data-controller="localized-time" data-localized-time-relative="true" data-localized-time-show-time="false"> Aug 5, 2016 </time> </p> </a> </div> <div class="release"> <div class="release__meta"> </div> <div class="release__graphic"> <div class="release__line"></div> <img class="release__node" alt="" src="https://pypi.org/static/images/white-cube.2351a86c.svg"> </div> <a class="card release__card" href="/project/caniusepython3/3.4.0/"> <p class="release__version"> 3.4.0 </p> <p class="release__version-date"> <time datetime="2016-06-20T22:54:10+0000" data-controller="localized-time" data-localized-time-relative="true" data-localized-time-show-time="false"> Jun 20, 2016 </time> </p> </a> </div> <div class="release"> <div class="release__meta"> </div> <div class="release__graphic"> <div class="release__line"></div> <img class="release__node" alt="" src="https://pypi.org/static/images/white-cube.2351a86c.svg"> </div> <a class="card release__card" href="/project/caniusepython3/3.3.0/"> <p class="release__version"> 3.3.0 </p> <p class="release__version-date"> <time datetime="2015-09-16T04:17:45+0000" data-controller="localized-time" data-localized-time-relative="true" data-localized-time-show-time="false"> Sep 16, 2015 </time> </p> </a> </div> <div class="release"> <div class="release__meta"> </div> <div class="release__graphic"> <div class="release__line"></div> <img class="release__node" alt="" src="https://pypi.org/static/images/white-cube.2351a86c.svg"> </div> <a class="card release__card" href="/project/caniusepython3/3.2.0/"> <p class="release__version"> 3.2.0 </p> <p class="release__version-date"> <time datetime="2015-05-29T13:53:11+0000" data-controller="localized-time" data-localized-time-relative="true" data-localized-time-show-time="false"> May 29, 2015 </time> </p> </a> </div> <div class="release"> <div class="release__meta"> </div> <div class="release__graphic"> <div class="release__line"></div> <img class="release__node" alt="" src="https://pypi.org/static/images/white-cube.2351a86c.svg"> </div> <a class="card release__card" href="/project/caniusepython3/3.1.0/"> <p class="release__version"> 3.1.0 </p> <p class="release__version-date"> <time datetime="2015-03-20T13:50:09+0000" data-controller="localized-time" data-localized-time-relative="true" data-localized-time-show-time="false"> Mar 20, 2015 </time> </p> </a> </div> <div class="release"> <div class="release__meta"> </div> <div class="release__graphic"> <div class="release__line"></div> <img class="release__node" alt="" src="https://pypi.org/static/images/white-cube.2351a86c.svg"> </div> <a class="card release__card" href="/project/caniusepython3/3.0.0/"> <p class="release__version"> 3.0.0 </p> <p class="release__version-date"> <time datetime="2015-01-16T13:33:26+0000" data-controller="localized-time" data-localized-time-relative="true" data-localized-time-show-time="false"> Jan 16, 2015 </time> </p> </a> </div> <div class="release"> <div class="release__meta"> </div> <div class="release__graphic"> <div class="release__line"></div> <img class="release__node" alt="" src="https://pypi.org/static/images/white-cube.2351a86c.svg"> </div> <a class="card release__card" href="/project/caniusepython3/2.2.0/"> <p class="release__version"> 2.2.0 </p> <p class="release__version-date"> <time datetime="2014-10-31T14:36:51+0000" data-controller="localized-time" data-localized-time-relative="true" data-localized-time-show-time="false"> Oct 31, 2014 </time> </p> </a> </div> <div class="release"> <div class="release__meta"> </div> <div class="release__graphic"> <div class="release__line"></div> <img class="release__node" alt="" src="https://pypi.org/static/images/white-cube.2351a86c.svg"> </div> <a class="card release__card" href="/project/caniusepython3/2.1.2/"> <p class="release__version"> 2.1.2 </p> <p class="release__version-date"> <time datetime="2014-06-05T19:27:05+0000" data-controller="localized-time" data-localized-time-relative="true" data-localized-time-show-time="false"> Jun 5, 2014 </time> </p> </a> </div> <div class="release"> <div class="release__meta"> </div> <div class="release__graphic"> <div class="release__line"></div> <img class="release__node" alt="" src="https://pypi.org/static/images/white-cube.2351a86c.svg"> </div> <a class="card release__card" href="/project/caniusepython3/2.1.1/"> <p class="release__version"> 2.1.1 </p> <p class="release__version-date"> <time datetime="2014-05-16T13:59:01+0000" data-controller="localized-time" data-localized-time-relative="true" data-localized-time-show-time="false"> May 16, 2014 </time> </p> </a> </div> <div class="release"> <div class="release__meta"> </div> <div class="release__graphic"> <div class="release__line"></div> <img class="release__node" alt="" src="https://pypi.org/static/images/white-cube.2351a86c.svg"> </div> <a class="card release__card" href="/project/caniusepython3/2.1.0/"> <p class="release__version"> 2.1.0 </p> <p class="release__version-date"> <time datetime="2014-03-28T14:28:29+0000" data-controller="localized-time" data-localized-time-relative="true" data-localized-time-show-time="false"> Mar 28, 2014 </time> </p> </a> </div> <div class="release"> <div class="release__meta"> </div> <div class="release__graphic"> <div class="release__line"></div> <img class="release__node" alt="" src="https://pypi.org/static/images/white-cube.2351a86c.svg"> </div> <a class="card release__card" href="/project/caniusepython3/2.0.3/"> <p class="release__version"> 2.0.3 </p> <p class="release__version-date"> <time datetime="2014-03-21T14:44:45+0000" data-controller="localized-time" data-localized-time-relative="true" data-localized-time-show-time="false"> Mar 21, 2014 </time> </p> </a> </div> <div class="release"> <div class="release__meta"> </div> <div class="release__graphic"> <div class="release__line"></div> <img class="release__node" alt="" src="https://pypi.org/static/images/white-cube.2351a86c.svg"> </div> <a class="card release__card" href="/project/caniusepython3/2.0.2/"> <p class="release__version"> 2.0.2 </p> <p class="release__version-date"> <time datetime="2014-03-14T20:46:24+0000" data-controller="localized-time" data-localized-time-relative="true" data-localized-time-show-time="false"> Mar 14, 2014 </time> </p> </a> </div> <div class="release"> <div class="release__meta"> </div> <div class="release__graphic"> <div class="release__line"></div> <img class="release__node" alt="" src="https://pypi.org/static/images/white-cube.2351a86c.svg"> </div> <a class="card release__card" href="/project/caniusepython3/2.0.1/"> <p class="release__version"> 2.0.1 </p> <p class="release__version-date"> <time datetime="2014-03-14T20:19:48+0000" data-controller="localized-time" data-localized-time-relative="true" data-localized-time-show-time="false"> Mar 14, 2014 </time> </p> </a> </div> <div class="release"> <div class="release__meta"> </div> <div class="release__graphic"> <div class="release__line"></div> <img class="release__node" alt="" src="https://pypi.org/static/images/white-cube.2351a86c.svg"> </div> <a class="card release__card" href="/project/caniusepython3/2.0.0/"> <p class="release__version"> 2.0.0 </p> <p class="release__version-date"> <time datetime="2014-03-14T20:08:47+0000" data-controller="localized-time" data-localized-time-relative="true" data-localized-time-show-time="false"> Mar 14, 2014 </time> </p> </a> </div> <div class="release"> <div class="release__meta"> </div> <div class="release__graphic"> <div class="release__line"></div> <img class="release__node" alt="" src="https://pypi.org/static/images/white-cube.2351a86c.svg"> </div> <a class="card release__card" href="/project/caniusepython3/1.2.1/"> <p class="release__version"> 1.2.1 </p> <p class="release__version-date"> <time datetime="2014-03-09T19:08:31+0000" data-controller="localized-time" data-localized-time-relative="true" data-localized-time-show-time="false"> Mar 9, 2014 </time> </p> </a> </div> <div class="release"> <div class="release__meta"> </div> <div class="release__graphic"> <div class="release__line"></div> <img class="release__node" alt="" src="https://pypi.org/static/images/white-cube.2351a86c.svg"> </div> <a class="card release__card" href="/project/caniusepython3/1.2.0/"> <p class="release__version"> 1.2.0 </p> <p class="release__version-date"> <time datetime="2014-03-07T22:56:35+0000" data-controller="localized-time" data-localized-time-relative="true" data-localized-time-show-time="false"> Mar 7, 2014 </time> </p> </a> </div> <div class="release"> <div class="release__meta"> </div> <div class="release__graphic"> <div class="release__line"></div> <img class="release__node" alt="" src="https://pypi.org/static/images/white-cube.2351a86c.svg"> </div> <a class="card release__card" href="/project/caniusepython3/1.1.0/"> <p class="release__version"> 1.1.0 </p> <p class="release__version-date"> <time datetime="2014-02-28T20:37:18+0000" data-controller="localized-time" data-localized-time-relative="true" data-localized-time-show-time="false"> Feb 28, 2014 </time> </p> </a> </div> <div class="release release--oldest"> <div class="release__meta"> </div> <div class="release__graphic"> <div class="release__line"></div> <img class="release__node" alt="" src="https://pypi.org/static/images/white-cube.2351a86c.svg"> </div> <a class="card release__card" href="/project/caniusepython3/1.0/"> <p class="release__version"> 1.0 </p> <p class="release__version-date"> <time datetime="2014-02-21T20:27:02+0000" data-controller="localized-time" data-localized-time-relative="true" data-localized-time-show-time="false"> Feb 21, 2014 </time> </p> </a> </div> </div> </div> <div id="files" data-project-tabs-target="content" class="vertical-tabs__content" role="tabpanel" aria-labelledby="files-tab mobile-files-tab" tabindex="-1"> <h2 class="page-title">Download files</h2> <p>Download the file for your platform. If you're not sure which to choose, learn more about <a href="https://packaging.python.org/tutorials/installing-packages/" title="External link" target="_blank" rel="noopener">installing packages</a>.</p> <h3> Source Distribution </h3> <div class="file"> <div class="file__graphic"> <i class="far fa-file" aria-hidden="true"></i> </div> <div class="card file__card"> <a href="https://files.pythonhosted.org/packages/69/b2/d1cf4440751eaa1a33bd6dbf8e5120aecd49a662ae9568c4203282d6af79/caniusepython3-7.3.0.tar.gz"> caniusepython3-7.3.0.tar.gz </a> (25.7 kB <a href="#caniusepython3-7.3.0.tar.gz" data-project-tabs-target="tab" data-action="project-tabs#onTabClick">view details</a>) <p class="file__meta"> Uploaded <time datetime="2021-01-01T23:11:48+0000" data-controller="localized-time" data-localized-time-relative="true" data-localized-time-show-time="false"> Jan 1, 2021 </time> <code>Source</code> </p> </div> </div> <h3> Built Distribution </h3> <div class="file"> <div class="file__graphic"> <i class="far fa-file" aria-hidden="true"></i> </div> <div class="card file__card"> <a href="https://files.pythonhosted.org/packages/c9/03/dd95687a4b1eb0c3396a3ab0cdd94cd784d79285b6eec83d01cdc7d8e823/caniusepython3-7.3.0-py2.py3-none-any.whl"> caniusepython3-7.3.0-py2.py3-none-any.whl </a> (29.1 kB <a href="#caniusepython3-7.3.0-py2.py3-none-any.whl" data-project-tabs-target="tab" data-action="project-tabs#onTabClick">view details</a>) <p class="file__meta"> Uploaded <time datetime="2021-01-01T23:11:47+0000" data-controller="localized-time" data-localized-time-relative="true" data-localized-time-show-time="false"> Jan 1, 2021 </time> <code>Python 2</code> <code>Python 3</code> </p> </div> </div> </div> <div id="caniusepython3-7.3.0.tar.gz" data-project-tabs-target="content" class="vertical-tabs__content" role="tabpanel" aria-labelledby="file-tab mobile-file-tab" tabindex="-1"> <h2 class="page-title">File details</h2> <p>Details for the file <code>caniusepython3-7.3.0.tar.gz</code>.</p> <h3>File metadata</h3> <div> <ul> <li> Download URL: <a href="https://files.pythonhosted.org/packages/69/b2/d1cf4440751eaa1a33bd6dbf8e5120aecd49a662ae9568c4203282d6af79/caniusepython3-7.3.0.tar.gz"> caniusepython3-7.3.0.tar.gz </a> </li> <li>Upload date: <time datetime="2021-01-01T23:11:48+0000" data-controller="localized-time" data-localized-time-relative="true" data-localized-time-show-time="false"> Jan 1, 2021 </time></li> <li>Size: 25.7 kB</li> <li>Tags: Source</li> <li> Uploaded using Trusted Publishing? No </li> <li>Uploaded via: twine/3.3.0 pkginfo/1.6.1 requests/2.25.1 setuptools/51.1.1 requests-toolbelt/0.9.1 tqdm/4.55.0 CPython/3.9.1</li> </ul> </div> <h3>File hashes</h3> <div> <table class="table table--hashes"> <caption class="sr-only">Hashes for caniusepython3-7.3.0.tar.gz</caption> <thead> <tr> <th scope="col">Algorithm</th> <th scope="col">Hash digest</th> <th></th> </tr> </thead> <tbody> <tr data-controller="clipboard"> <th scope="row">SHA256</th> <td><code data-clipboard-target="source">58cb3b3643530bc955d3dc5fe49385ccd1f0d2677bf1d9b159814c0f5e677562</code></td> <td class="table__align-right"> <button type="button" class="button button--small copy-tooltip copy-tooltip-w" data-action="clipboard#copy" data-clipboard-target="tooltip" data-clipboard-tooltip-value="Copy to clipboard"> Copy </button> </td> </tr> <tr data-controller="clipboard"> <th scope="row">MD5</th> <td><code data-clipboard-target="source">3f0204729c6ddf9228c31f4413eac642</code></td> <td class="table__align-right"> <button type="button" class="button button--small copy-tooltip copy-tooltip-w" data-action="clipboard#copy" data-clipboard-target="tooltip" data-clipboard-tooltip-value="Copy to clipboard"> Copy </button> </td> </tr> <tr data-controller="clipboard"> <th scope="row">BLAKE2b-256</th> <td><code data-clipboard-target="source">69b2d1cf4440751eaa1a33bd6dbf8e5120aecd49a662ae9568c4203282d6af79</code></td> <td class="table__align-right"> <button type="button" class="button button--small copy-tooltip copy-tooltip-w" data-action="clipboard#copy" data-clipboard-target="tooltip" data-clipboard-tooltip-value="Copy to clipboard"> Copy </button> </td> </tr> </tbody> </table> <p> <a href="https://pip.pypa.io/en/stable/topics/secure-installs/#hash-checking-mode" title="External link" target="_blank" rel="noopener">See more details on using hashes here.</a> </p> </div> </div> <div id="caniusepython3-7.3.0-py2.py3-none-any.whl" data-project-tabs-target="content" class="vertical-tabs__content" role="tabpanel" aria-labelledby="file-tab mobile-file-tab" tabindex="-1"> <h2 class="page-title">File details</h2> <p>Details for the file <code>caniusepython3-7.3.0-py2.py3-none-any.whl</code>.</p> <h3>File metadata</h3> <div> <ul> <li> Download URL: <a href="https://files.pythonhosted.org/packages/c9/03/dd95687a4b1eb0c3396a3ab0cdd94cd784d79285b6eec83d01cdc7d8e823/caniusepython3-7.3.0-py2.py3-none-any.whl"> caniusepython3-7.3.0-py2.py3-none-any.whl </a> </li> <li>Upload date: <time datetime="2021-01-01T23:11:47+0000" data-controller="localized-time" data-localized-time-relative="true" data-localized-time-show-time="false"> Jan 1, 2021 </time></li> <li>Size: 29.1 kB</li> <li>Tags: Python 2, Python 3</li> <li> Uploaded using Trusted Publishing? No </li> <li>Uploaded via: twine/3.3.0 pkginfo/1.6.1 requests/2.25.1 setuptools/51.1.1 requests-toolbelt/0.9.1 tqdm/4.55.0 CPython/3.9.1</li> </ul> </div> <h3>File hashes</h3> <div> <table class="table table--hashes"> <caption class="sr-only">Hashes for caniusepython3-7.3.0-py2.py3-none-any.whl</caption> <thead> <tr> <th scope="col">Algorithm</th> <th scope="col">Hash digest</th> <th></th> </tr> </thead> <tbody> <tr data-controller="clipboard"> <th scope="row">SHA256</th> <td><code data-clipboard-target="source">003d59386905809b7d83a7f093643f11f3003d1766560e02f61f2aa8d8c63d9e</code></td> <td class="table__align-right"> <button type="button" class="button button--small copy-tooltip copy-tooltip-w" data-action="clipboard#copy" data-clipboard-target="tooltip" data-clipboard-tooltip-value="Copy to clipboard"> Copy </button> </td> </tr> <tr data-controller="clipboard"> <th scope="row">MD5</th> <td><code data-clipboard-target="source">a1be3a9f9e84e4680951aa928df185d5</code></td> <td class="table__align-right"> <button type="button" class="button button--small copy-tooltip copy-tooltip-w" data-action="clipboard#copy" data-clipboard-target="tooltip" data-clipboard-tooltip-value="Copy to clipboard"> Copy </button> </td> </tr> <tr data-controller="clipboard"> <th scope="row">BLAKE2b-256</th> <td><code data-clipboard-target="source">c903dd95687a4b1eb0c3396a3ab0cdd94cd784d79285b6eec83d01cdc7d8e823</code></td> <td class="table__align-right"> <button type="button" class="button button--small copy-tooltip copy-tooltip-w" data-action="clipboard#copy" data-clipboard-target="tooltip" data-clipboard-tooltip-value="Copy to clipboard"> Copy </button> </td> </tr> </tbody> </table> <p> <a href="https://pip.pypa.io/en/stable/topics/secure-installs/#hash-checking-mode" title="External link" target="_blank" rel="noopener">See more details on using hashes here.</a> </p> </div> </div> </div> </div> </div> </div> </main> <footer class="footer"> <div class="footer__logo"> <img src="/static/images/white-cube.2351a86c.svg" alt="" class="-js-white-cube"> </div> <div class="footer__menus"> <div class="footer__menu"> <h2>Help</h2> <nav aria-label="Help navigation"> <ul> <li><a href="https://packaging.python.org/tutorials/installing-packages/" title="External link" target="_blank" rel="noopener">Installing packages</a></li> <li><a href="https://packaging.python.org/tutorials/packaging-projects/" title="External link" target="_blank" rel="noopener">Uploading packages</a></li> <li><a href="https://packaging.python.org/" title="External link" target="_blank" rel="noopener">User guide</a></li> <li><a href="https://www.python.org/dev/peps/pep-0541/" title="External link" target="_blank" rel="noopener">Project name retention</a></li> <li><a href="/help/">FAQs</a></li> </ul> </nav> </div> <div class="footer__menu"> <h2>About PyPI</h2> <nav aria-label="About PyPI navigation"> <ul> <li><a href="https://blog.pypi.org" title="External link" target="_blank" rel="noopener">PyPI Blog</a></li> <li><a href="https://dtdg.co/pypi" title="External link" target="_blank" rel="noopener">Infrastructure dashboard</a></li> <li><a href="/stats/">Statistics</a></li> <li><a href="/trademarks/">Logos & trademarks</a></li> <li><a href="/sponsors/">Our sponsors</a></li> </ul> </nav> </div> <div class="footer__menu"> <h2>Contributing to PyPI</h2> <nav aria-label="How to contribute navigation"> <ul> <li><a href="/help/#feedback">Bugs and feedback</a></li> <li><a href="https://github.com/pypi/warehouse" title="External link" target="_blank" rel="noopener">Contribute on GitHub</a></li> <li><a href="https://hosted.weblate.org/projects/pypa/warehouse/" title="External link" target="_blank" rel="noopener">Translate PyPI</a></li> <li><a href="/sponsors/">Sponsor PyPI</a></li> <li><a href="https://github.com/pypi/warehouse/graphs/contributors" title="External link" target="_blank" rel="noopener">Development credits</a></li> </ul> </nav> </div> <div class="footer__menu"> <h2>Using PyPI</h2> <nav aria-label="Using PyPI navigation"> <ul> <li><a href="https://policies.python.org/pypi.org/Terms-of-Service/" title="External link" target="_blank" rel="noopener">Terms of Service</a></li> <li><a href="/security/">Report security issue</a></li> <li><a href="https://policies.python.org/python.org/code-of-conduct/" title="External link" target="_blank" rel="noopener">Code of conduct</a></li> <li><a href="https://policies.python.org/pypi.org/Privacy-Notice/" title="External link" target="_blank" rel="noopener">Privacy Notice</a></li> <li><a href="https://policies.python.org/pypi.org/Acceptable-Use-Policy/" title="External link" target="_blank" rel="noopener">Acceptable Use Policy</a></li> </ul> </nav> </div> </div> <hr class="footer__divider"> <div class="footer__text"> <p>Status:<a href="https://status.python.org/" title="External link" target="_blank" rel="noopener"> <span data-statuspage-domain="https://2p66nmmycsj3.statuspage.io">all systems operational</span></a> </p> <p> Developed and maintained by the Python community, for the Python community. <br> <a href="https://donate.pypi.org">Donate today!</a> </p> <p> "PyPI", "Python Package Index", and the blocks logos are registered <a href="/trademarks/">trademarks</a> of the <a href="https://www.python.org/psf-landing" target="_blank" rel="noopener">Python Software Foundation</a>.<br> </p> <p> © 2025 <a href="https://www.python.org/psf-landing/" title="External link" target="_blank" rel="noopener">Python Software Foundation</a><br> <a href="/sitemap/">Site map</a> </p> </div> <div class="centered hide-on-desktop"> <button type="button" class="button button--switch-to-desktop hidden" data-viewport-toggle-target="switchToDesktop" data-action="viewport-toggle#switchToDesktop"> Switch to desktop version </button> </div> </footer> <div class="language-switcher"> <form action="/locale/"> <ul> <li> <button class="language-switcher__selected" name="locale_id" value="en" type="submit" > English </button> </li> <li> <button name="locale_id" value="es" type="submit" > español </button> </li> <li> <button name="locale_id" value="fr" type="submit" > français </button> </li> <li> <button name="locale_id" value="ja" type="submit" > 日本語 </button> </li> <li> <button name="locale_id" value="pt_BR" type="submit" > português (Brasil) </button> </li> <li> <button name="locale_id" value="uk" type="submit" > українська </button> </li> <li> <button name="locale_id" value="el" type="submit" > Ελληνικά </button> </li> <li> <button name="locale_id" value="de" type="submit" > Deutsch </button> </li> <li> <button name="locale_id" value="zh_Hans" type="submit" > 中文 (简体) </button> </li> <li> <button name="locale_id" value="zh_Hant" type="submit" > 中文 (繁體) </button> </li> <li> <button name="locale_id" value="ru" type="submit" > русский </button> </li> <li> <button name="locale_id" value="he" type="submit" > עברית </button> </li> <li> <button name="locale_id" value="eo" type="submit" > Esperanto </button> </li> <li> <button name="locale_id" value="ko" type="submit" > 한국어 </button> </li> </ul> </form> </div> <div class="sponsors"> <p class="sponsors__title">Supported by</p> <div class="sponsors__divider"></div> <a class="sponsors__sponsor" target="_blank" rel="noopener" href="https://aws.amazon.com/"> <img class=sponsors__image src="https://pypi-camo.freetls.fastly.net/ed7074cadad1a06f56bc520ad9bd3e00d0704c5b/68747470733a2f2f73746f726167652e676f6f676c65617069732e636f6d2f707970692d6173736574732f73706f6e736f726c6f676f732f6177732d77686974652d6c6f676f2d7443615473387a432e706e67" alt=AWS loading=lazy> <span class="sponsors__name">AWS</span> <span class="sponsors__service"> Cloud computing and Security Sponsor </span> </a> <a class="sponsors__sponsor" target="_blank" rel="noopener" href="https://www.datadoghq.com/"> <img class=sponsors__image src="https://pypi-camo.freetls.fastly.net/8855f7c063a3bdb5b0ce8d91bfc50cf851cc5c51/68747470733a2f2f73746f726167652e676f6f676c65617069732e636f6d2f707970692d6173736574732f73706f6e736f726c6f676f732f64617461646f672d77686974652d6c6f676f2d6668644c4e666c6f2e706e67" alt=Datadog loading=lazy> <span class="sponsors__name">Datadog</span> <span class="sponsors__service"> Monitoring </span> </a> <a class="sponsors__sponsor" target="_blank" rel="noopener" href="https://www.fastly.com/"> <img class=sponsors__image src="https://pypi-camo.freetls.fastly.net/df6fe8829cbff2d7f668d98571df1fd011f36192/68747470733a2f2f73746f726167652e676f6f676c65617069732e636f6d2f707970692d6173736574732f73706f6e736f726c6f676f732f666173746c792d77686974652d6c6f676f2d65684d3077735f6f2e706e67" alt=Fastly loading=lazy> <span class="sponsors__name">Fastly</span> <span class="sponsors__service"> CDN </span> </a> <a class="sponsors__sponsor" target="_blank" rel="noopener" href="https://careers.google.com/"> <img class=sponsors__image src="https://pypi-camo.freetls.fastly.net/420cc8cf360bac879e24c923b2f50ba7d1314fb0/68747470733a2f2f73746f726167652e676f6f676c65617069732e636f6d2f707970692d6173736574732f73706f6e736f726c6f676f732f676f6f676c652d77686974652d6c6f676f2d616734424e3774332e706e67" alt=Google loading=lazy> <span class="sponsors__name">Google</span> <span class="sponsors__service"> Download Analytics </span> </a> <a class="sponsors__sponsor" target="_blank" rel="noopener" href="https://www.pingdom.com/"> <img class=sponsors__image src="https://pypi-camo.freetls.fastly.net/d01053c02f3a626b73ffcb06b96367fdbbf9e230/68747470733a2f2f73746f726167652e676f6f676c65617069732e636f6d2f707970692d6173736574732f73706f6e736f726c6f676f732f70696e67646f6d2d77686974652d6c6f676f2d67355831547546362e706e67" alt=Pingdom loading=lazy> <span class="sponsors__name">Pingdom</span> <span class="sponsors__service"> Monitoring </span> </a> <a class="sponsors__sponsor" target="_blank" rel="noopener" href="https://getsentry.com/for/python"> <img class=sponsors__image src="https://pypi-camo.freetls.fastly.net/67af7117035e2345bacb5a82e9aa8b5b3e70701d/68747470733a2f2f73746f726167652e676f6f676c65617069732e636f6d2f707970692d6173736574732f73706f6e736f726c6f676f732f73656e7472792d77686974652d6c6f676f2d4a2d6b64742d706e2e706e67" alt=Sentry loading=lazy> <span class="sponsors__name">Sentry</span> <span class="sponsors__service"> Error logging </span> </a> <a class="sponsors__sponsor" target="_blank" rel="noopener" href="https://statuspage.io"> <img class=sponsors__image src="https://pypi-camo.freetls.fastly.net/b611884ff90435a0575dbab7d9b0d3e60f136466/68747470733a2f2f73746f726167652e676f6f676c65617069732e636f6d2f707970692d6173736574732f73706f6e736f726c6f676f732f737461747573706167652d77686974652d6c6f676f2d5467476c6a4a2d502e706e67" alt=StatusPage loading=lazy> <span class="sponsors__name">StatusPage</span> <span class="sponsors__service"> Status page </span> </a> </div> </body> </html>

Pages: 1 2 3 4 5 6 7 8 9 10