- ID scansione:
- 5836b03d-1153-4a98-88aa-a5763fb06accFatto
- URL inviato:
- https://pypi.org/
- Report terminato:
Link · 21 trovati
I link in uscita identificati dalla pagina
Link | Testo |
---|---|
https://survey.alchemer.com/s3/8009809/python-developers-survey-2024 | Take the 2024 survey |
https://packaging.python.org/tutorials/installing-packages/ | Learn about installing packages |
https://packaging.python.org/tutorials/packaging-projects/ | Uploading packages |
https://packaging.python.org/ | User guide |
https://www.python.org/dev/peps/pep-0541/ | Project name retention |
https://dtdg.co/pypi | Infrastructure dashboard |
https://github.com/pypi/warehouse | Contribute on GitHub |
https://hosted.weblate.org/projects/pypa/warehouse/ | Translate PyPI |
https://github.com/pypi/warehouse/graphs/contributors | Development credits |
https://policies.python.org/python.org/code-of-conduct/ | Code of conduct |
Variabili JavaScript · 15 trovate
Le variabili JavaScript globali caricate sull'oggetto finestra di una pagina sono variabili dichiarate all'esterno delle funzioni e accessibili da qualsiasi punto del codice nell'ambito corrente
Nome | Tipo |
---|---|
onbeforetoggle | object |
documentPictureInPicture | object |
onscrollend | object |
dataLayer | object |
ethicalads | object |
FASTLY | object |
google_tag_manager | object |
google_tag_data | object |
GoogleAnalyticsObject | string |
ga | function |
Messaggi di log della console · 10 trovati
Messaggi registrati nella console Web
Tipo | Categoria | Log |
---|---|---|
warning | other |
|
warning | other |
|
warning | other |
|
warning | other |
|
warning | other |
|
warning | other |
|
warning | other |
|
warning | other |
|
warning | other |
|
warning | other |
|
HTML
Il corpo HTML non elaborato della pagina
<!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">
<title>PyPI · The Python Package Index</title>
<meta name="description" content="The Python Package Index (PyPI) is a repository of software for the Python programming language.">
<link rel="stylesheet" href="/static/css/warehouse-ltr.5715db28.css">
<link rel="stylesheet" href="/static/css/fontawesome.da0464c1.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">
<meta property="og:url" content="https://pypi.org/">
<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="">
<meta property="og:description" content="The Python Package Index (PyPI) is a repository of software for the Python programming language.">
<link rel="search" type="application/opensearchdescription+xml" title="PyPI" href="/opensearch.xml">
<script type="text/javascript" async="" src="https://www.google-analytics.com/analytics.js"></script><script type="text/javascript" async="" src="https://www.googletagmanager.com/gtag/js?id=G-B0F3Y2XW9M&l=dataLayer&cx=c"></script><script async="" data-ga-id="UA-55961911-1" data-ga4-id="G-RW7D75DF8V" src="/static/js/warehouse.f780b8ef.js">
</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>
<style>[data-ea-publisher].loaded,[data-ea-type].loaded{font-size:14px;font-family:-apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Helvetica Neue, Arial, Noto Sans, sans-serif, Apple Color Emoji, Segoe UI Emoji, Segoe UI Symbol, Noto Color Emoji;font-weight:normal;font-style:normal;leter-spacing:0px;vertical-align:baseline;line-height:1.3em}[data-ea-publisher].loaded a,[data-ea-type].loaded a{text-decoration:none}[data-ea-publisher].loaded .ea-pixel,[data-ea-type].loaded .ea-pixel{display:none}[data-ea-publisher].loaded .ea-content,[data-ea-type].loaded .ea-content{margin:1em 1em 0.5em 1em;padding:1em;background:rgba(0,0,0,0.03);color:#505050}[data-ea-publisher].loaded .ea-content a:link,[data-ea-type].loaded .ea-content a:link{color:#505050}[data-ea-publisher].loaded .ea-content a:visited,[data-ea-type].loaded .ea-content a:visited{color:#505050}[data-ea-publisher].loaded .ea-content a:hover,[data-ea-type].loaded .ea-content a:hover{color:#373737}[data-ea-publisher].loaded .ea-content a:active,[data-ea-type].loaded .ea-content a:active{color:#373737}[data-ea-publisher].loaded .ea-content a strong,[data-ea-publisher].loaded .ea-content a b,[data-ea-type].loaded .ea-content a strong,[data-ea-type].loaded .ea-content a b{color:#088cdb}[data-ea-publisher].loaded .ea-callout a:link,[data-ea-type].loaded .ea-callout a:link{color:#6a6a6a}[data-ea-publisher].loaded .ea-callout a:visited,[data-ea-type].loaded .ea-callout a:visited{color:#6a6a6a}[data-ea-publisher].loaded .ea-callout a:hover,[data-ea-type].loaded .ea-callout a:hover{color:#505050}[data-ea-publisher].loaded .ea-callout a:active,[data-ea-type].loaded .ea-callout a:active{color:#505050}[data-ea-publisher].loaded .ea-callout a strong,[data-ea-publisher].loaded .ea-callout a b,[data-ea-type].loaded .ea-callout a strong,[data-ea-type].loaded .ea-callout a b{color:#088cdb}[data-ea-publisher].loaded .ea-callout a,[data-ea-type].loaded .ea-callout a{font-size:0.8em}[data-ea-publisher].loaded.dark .ea-content,[data-ea-type].loaded.dark .ea-content{background:rgba(255,255,255,0.05);color:#dcdcdc}[data-ea-publisher].loaded.dark .ea-content a:link,[data-ea-type].loaded.dark .ea-content a:link{color:#dcdcdc}[data-ea-publisher].loaded.dark .ea-content a:visited,[data-ea-type].loaded.dark .ea-content a:visited{color:#dcdcdc}[data-ea-publisher].loaded.dark .ea-content a:hover,[data-ea-type].loaded.dark .ea-content a:hover{color:#f6f6f6}[data-ea-publisher].loaded.dark .ea-content a:active,[data-ea-type].loaded.dark .ea-content a:active{color:#f6f6f6}[data-ea-publisher].loaded.dark .ea-content a strong,[data-ea-publisher].loaded.dark .ea-content a b,[data-ea-type].loaded.dark .ea-content a strong,[data-ea-type].loaded.dark .ea-content a b{color:#50baf9}[data-ea-publisher].loaded.dark .ea-callout a:link,[data-ea-type].loaded.dark .ea-callout a:link{color:#c3c3c3}[data-ea-publisher].loaded.dark .ea-callout a:visited,[data-ea-type].loaded.dark .ea-callout a:visited{color:#c3c3c3}[data-ea-publisher].loaded.dark .ea-callout a:hover,[data-ea-type].loaded.dark .ea-callout a:hover{color:#dcdcdc}[data-ea-publisher].loaded.dark .ea-callout a:active,[data-ea-type].loaded.dark .ea-callout a:active{color:#dcdcdc}[data-ea-publisher].loaded.dark .ea-callout a strong,[data-ea-publisher].loaded.dark .ea-callout a b,[data-ea-type].loaded.dark .ea-callout a strong,[data-ea-type].loaded.dark .ea-callout a b{color:#50baf9}@media (prefers-color-scheme: dark){[data-ea-publisher].loaded.adaptive .ea-content,[data-ea-type].loaded.adaptive .ea-content{background:rgba(255,255,255,0.05);color:#dcdcdc}[data-ea-publisher].loaded.adaptive .ea-content a:link,[data-ea-type].loaded.adaptive .ea-content a:link{color:#dcdcdc}[data-ea-publisher].loaded.adaptive .ea-content a:visited,[data-ea-type].loaded.adaptive .ea-content a:visited{color:#dcdcdc}[data-ea-publisher].loaded.adaptive .ea-content a:hover,[data-ea-type].loaded.adaptive .ea-content a:hover{color:#f6f6f6}[data-ea-publisher].loaded.adaptive .ea-content a:active,[data-ea-type].loaded.adaptive .ea-content a:active{color:#f6f6f6}[data-ea-publisher].loaded.adaptive .ea-content a strong,[data-ea-publisher].loaded.adaptive .ea-content a b,[data-ea-type].loaded.adaptive .ea-content a strong,[data-ea-type].loaded.adaptive .ea-content a b{color:#50baf9}[data-ea-publisher].loaded.adaptive .ea-callout a:link,[data-ea-type].loaded.adaptive .ea-callout a:link{color:#c3c3c3}[data-ea-publisher].loaded.adaptive .ea-callout a:visited,[data-ea-type].loaded.adaptive .ea-callout a:visited{color:#c3c3c3}[data-ea-publisher].loaded.adaptive .ea-callout a:hover,[data-ea-type].loaded.adaptive .ea-callout a:hover{color:#dcdcdc}[data-ea-publisher].loaded.adaptive .ea-callout a:active,[data-ea-type].loaded.adaptive .ea-callout a:active{color:#dcdcdc}[data-ea-publisher].loaded.adaptive .ea-callout a strong,[data-ea-publisher].loaded.adaptive .ea-callout a b,[data-ea-type].loaded.adaptive .ea-callout a strong,[data-ea-type].loaded.adaptive .ea-callout a b{color:#50baf9}}[data-ea-publisher].loaded .ea-content,[data-ea-type].loaded .ea-content{border:0px;border-radius:3px;box-shadow:0px 2px 3px rgba(0,0,0,0.15)}[data-ea-publisher].loaded.raised .ea-content,[data-ea-type].loaded.raised .ea-content{border:0px;border-radius:3px;box-shadow:0px 2px 3px rgba(0,0,0,0.15)}[data-ea-publisher].loaded.bordered .ea-content,[data-ea-type].loaded.bordered .ea-content{border:1px solid rgba(0,0,0,0.04);border-radius:3px;box-shadow:none}[data-ea-publisher].loaded.bordered.dark .ea-content,[data-ea-type].loaded.bordered.dark .ea-content{border:1px solid rgba(255,255,255,0.07)}@media (prefers-color-scheme: dark){[data-ea-publisher].loaded.bordered.adaptive .ea-content,[data-ea-type].loaded.bordered.adaptive .ea-content{border:1px solid rgba(255,255,255,0.07)}}[data-ea-publisher].loaded.flat .ea-content,[data-ea-type].loaded.flat .ea-content{border:0px;border-radius:3px;box-shadow:none}[data-ea-type="image"].loaded,[data-ea-publisher]:not([data-ea-type]).loaded,.ea-type-image{display:inline-block}[data-ea-type="image"].loaded .ea-content,[data-ea-publisher]:not([data-ea-type]).loaded .ea-content,.ea-type-image .ea-content{max-width:180px;overflow:auto;text-align:center}[data-ea-type="image"].loaded .ea-content>a>img,[data-ea-publisher]:not([data-ea-type]).loaded .ea-content>a>img,.ea-type-image .ea-content>a>img{width:120px;height:90px;display:inline-block}[data-ea-type="image"].loaded .ea-content>.ea-text,[data-ea-publisher]:not([data-ea-type]).loaded .ea-content>.ea-text,.ea-type-image .ea-content>.ea-text{margin-top:1em;font-size:1em;text-align:center}[data-ea-type="image"].loaded .ea-callout,[data-ea-publisher]:not([data-ea-type]).loaded .ea-callout,.ea-type-image .ea-callout{max-width:180px;margin:0em 1em 1em 1em;padding-left:1em;padding-right:1em;font-style:italic;text-align:right}[data-ea-type="image"].loaded.horizontal .ea-content,[data-ea-publisher]:not([data-ea-type]).loaded.horizontal .ea-content,.ea-type-image.horizontal .ea-content{max-width:320px}[data-ea-type="image"].loaded.horizontal .ea-content>a>img,[data-ea-publisher]:not([data-ea-type]).loaded.horizontal .ea-content>a>img,.ea-type-image.horizontal .ea-content>a>img{float:left;margin-right:1em}[data-ea-type="image"].loaded.horizontal .ea-content .ea-text,[data-ea-publisher]:not([data-ea-type]).loaded.horizontal .ea-content .ea-text,.ea-type-image.horizontal .ea-content .ea-text{margin-top:0em;text-align:left;overflow:auto}[data-ea-type="image"].loaded.horizontal .ea-callout,[data-ea-publisher]:not([data-ea-type]).loaded.horizontal .ea-callout,.ea-type-image.horizontal .ea-callout{max-width:320px;text-align:right}[data-ea-type="text"].loaded,.ea-type-text{font-size:14px}[data-ea-type="text"].loaded .ea-content,.ea-type-text .ea-content{text-align:left}[data-ea-type="text"].loaded .ea-callout,.ea-type-text .ea-callout{margin:0.5em 1em 1em 1em;padding-left:1em;padding-right:1em;text-align:right;font-style:italic}[data-ea-style="stickybox"].loaded .ea-type-image{z-index:1000;position:fixed;bottom:20px;right:20px}[data-ea-style="stickybox"].loaded .ea-type-image .ea-stickybox-hide{cursor:pointer;position:absolute;top:0.75em;right:0.75em;background-color:#fefefe;border:1px solid #088cdb;border-radius:50%;color:#088cdb;font-size:1em;text-align:center;height:1.5em;width:1.5em;line-height:1.5em}@media (max-width: 1300px){[data-ea-style="stickybox"].loaded .ea-type-image{position:static;bottom:0;right:0;margin:auto;text-align:center}[data-ea-style="stickybox"].loaded .ea-type-image .ea-stickybox-hide{display:none}}@media (min-width: 1301px){[data-ea-style="stickybox"].loaded .ea-type-image .ea-content{background:#dcdcdc}[data-ea-style="stickybox"].loaded.dark .ea-type-image .ea-content{background:#505050}}@media (min-width: 1301px) and (prefers-color-scheme: dark){[data-ea-style="stickybox"].loaded.adaptive .ea-type-image .ea-content{background:#505050}}
</style></head>
<body data-controller="viewport-toggle" style="padding-top: 87px;" class="with-sticky">
<!-- 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/notification-banners/"><div class="notification-bar notification-bar--banner notification-bar--dismissable notification-bar--visible" data-controller="notification" data-notification-target="notification" id="10528dc5-8fd5-49c1-98db-7205e1b86239">
<span class="notification-bar__icon">
<i class="fa fa-clipboard-list fa-lg" aria-hidden="true"></i>
</span>
<span class="notification-bar__message">
Join the official Python Developers Survey 2024 and have a chance to win a prize!
<a href="https://survey.alchemer.com/s3/8009809/python-developers-survey-2024" class="button button--dark button--small button--primary" target="_blank" rel="noopener">Take the 2024 survey</a>
</span>
<button type="button" title="Dismiss this notification" data-notification-target="dismissButton" data-action="click->notification#dismiss" class="notification-bar__dismiss" aria-label="Close"><i class="fa fa-times" aria-hidden="true"></i></button>
</div>
</div> </div>
<div data-html-include="/_includes/flash-messages/">
</div>
<div data-html-include="/_includes/session-notifications/"></div>
<header class="site-header ">
<div class="site-container">
<div class="split-layout">
<div>
<a class="site-header__logo" href="/">
<img alt="PyPI" src="/static/images/logo-small.8998e9d1.svg">
</a>
</div>
<div data-html-include="/_includes/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" data-dropdown-bound="true">
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>
<main id="content">
<div class="banner">
<div class="homepage-banner">
<h1 class="homepage-banner__title">Find, install and publish Python packages with the Python Package Index</h1>
<form class="search-form search-form--large search-form--fullwidth" action="/search/" role="search">
<label for="search" class="sr-only">Search PyPI</label>
<!-- The following input is intentionally not autofocused, see https://github.com/pypi/warehouse/issues/6088 for more details -->
<input id="search" class="search-form__search large-input" type="text" name="q" placeholder="Search projects" 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>
<p class="homepage-banner__browse">Or <a href="/search/">browse projects</a></p>
</div>
</div>
<div class="horizontal-section horizontal-section--grey horizontal-section--thin horizontal-section--statistics">
<div class="statistics-bar">
<p class="statistics-bar__statistic">
578,322 projects </p>
<p class="statistics-bar__statistic">
6,204,203 releases </p>
<p class="statistics-bar__statistic">
12,340,522 files </p>
<p class="statistics-bar__statistic">
867,204 users </p>
</div>
</div>
<div class="horizontal-section">
<div class="about-pypi">
<div class="about-pypi__logo">
<img alt="" src="/static/images/logo-large.516e776d.svg" loading="lazy">
</div>
<div class="about-pypi__text">
<p class="lede-paragraph">The Python Package Index (PyPI) is a repository of software for the Python programming language.</p>
<p>
PyPI helps you find and install software developed and shared by the Python community. <a href="https://packaging.python.org/tutorials/installing-packages/" title="External link" target="_blank" rel="noopener">Learn about installing packages</a>.
</p>
<p>
Package authors use PyPI to distribute their software. <a href="https://packaging.python.org/tutorials/packaging-projects/" title="External link" target="_blank" rel="noopener">Learn how to package your Python code for PyPI</a>.
</p>
</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/python.org/code-of-conduct/" title="External link" target="_blank" rel="noopener">Code of conduct</a></li>
<li><a href="/security/">Report security issue</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/Terms-of-Use/" title="External link" target="_blank" rel="noopener">Terms of Use</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>
© 2024 <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" 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>
</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.python.org/psf/sponsors/#microsoft">
<img class="sponsors__image" src="https://pypi-camo.freetls.fastly.net/524d1ce72f7772294ca4c1fe05d21dec8fa3f8ea/68747470733a2f2f73746f726167652e676f6f676c65617069732e636f6d2f707970692d6173736574732f73706f6e736f726c6f676f732f6d6963726f736f66742d77686974652d6c6f676f2d5a443172685444462e706e67" alt="Microsoft" loading="lazy">
<span class="sponsors__name">Microsoft</span>
<span class="sponsors__service">
PSF Sponsor
</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>