CINXE.COM

Python Software Foundation News: 2018

<!DOCTYPE html> <html class='v2' dir='ltr' lang='en' xmlns='http://www.w3.org/1999/xhtml' xmlns:b='http://www.google.com/2005/gml/b' xmlns:data='http://www.google.com/2005/gml/data' xmlns:expr='http://www.google.com/2005/gml/expr'> <head> <link href='https://www.blogger.com/static/v1/widgets/3566091532-css_bundle_v2.css' rel='stylesheet' type='text/css'/> <!-- Google tag (gtag.js) --> <script async='async' src='https://www.googletagmanager.com/gtag/js?id=G-H6ZX4B41B7'></script> <script> window.dataLayer = window.dataLayer || []; function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'G-H6ZX4B41B7'); </script> <meta content='Python Software Foundation Blog' property='og:site_name'/> <meta content='https://pyfound.blogspot.com' property='og:url'/> <meta content='' property='og:description'/> <meta content='' property='og:type'/> <meta content='https://s3.dualstack.us-east-2.amazonaws.com/pythondotorg-assets/media/psf/grants/report-2006-10/psf-logo.png' property='og:image'/> <meta content='width=1100' name='viewport'/> <meta content='text/html; charset=UTF-8' http-equiv='Content-Type'/> <meta content='blogger' name='generator'/> <link href='https://pyfound.blogspot.com/favicon.ico' rel='icon' type='image/x-icon'/> <link href='https://pyfound.blogspot.com/2018/' rel='canonical'/> <link rel="alternate" type="application/atom+xml" title="Python Software Foundation News - Atom" href="https://pyfound.blogspot.com/feeds/posts/default" /> <link rel="alternate" type="application/rss+xml" title="Python Software Foundation News - RSS" href="https://pyfound.blogspot.com/feeds/posts/default?alt=rss" /> <link rel="service.post" type="application/atom+xml" title="Python Software Foundation News - Atom" href="https://www.blogger.com/feeds/8520/posts/default" /> <!--Can't find substitution for tag [blog.ieCssRetrofitLinks]--> <meta content='https://pyfound.blogspot.com/2018/' property='og:url'/> <meta content='Python Software Foundation News' property='og:title'/> <meta content='聽聽News from the Python Software Foundation' property='og:description'/> <title>Python Software Foundation News: 2018</title> <style id='page-skin-1' type='text/css'><!-- /* ----------------------------------------------- Blogger Template Style Name: Simple Designer: Blogger URL: www.blogger.com ----------------------------------------------- */ /* Variable definitions ==================== <Variable name="keycolor" description="Main Color" type="color" default="#66bbdd"/> <Group description="Page Text" selector="body"> <Variable name="body.font" description="Font" type="font" default="normal normal 12px Arial, Tahoma, Helvetica, FreeSans, sans-serif"/> <Variable name="body.text.color" description="Text Color" type="color" default="#222222"/> </Group> <Group description="Backgrounds" selector=".body-fauxcolumns-outer"> <Variable name="body.background.color" description="Outer Background" type="color" default="#66bbdd"/> <Variable name="content.background.color" description="Main Background" type="color" default="#ffffff"/> <Variable name="header.background.color" description="Header Background" type="color" default="transparent"/> </Group> <Group description="Links" selector=".main-outer"> <Variable name="link.color" description="Link Color" type="color" default="#2288bb"/> <Variable name="link.visited.color" description="Visited Color" type="color" default="#888888"/> <Variable name="link.hover.color" description="Hover Color" type="color" default="#33aaff"/> </Group> <Group description="Blog Title" selector=".header h1"> <Variable name="header.font" description="Font" type="font" default="normal normal 60px Arial, Tahoma, Helvetica, FreeSans, sans-serif"/> <Variable name="header.text.color" description="Title Color" type="color" default="#3399bb" /> </Group> <Group description="Blog Description" selector=".header .description"> <Variable name="description.text.color" description="Description Color" type="color" default="#777777" /> </Group> <Group description="Tabs Text" selector=".tabs-inner .widget li a"> <Variable name="tabs.font" description="Font" type="font" default="normal normal 14px Arial, Tahoma, Helvetica, FreeSans, sans-serif"/> <Variable name="tabs.text.color" description="Text Color" type="color" default="#999999"/> <Variable name="tabs.selected.text.color" description="Selected Color" type="color" default="#000000"/> </Group> <Group description="Tabs Background" selector=".tabs-outer .PageList"> <Variable name="tabs.background.color" description="Background Color" type="color" default="#f5f5f5"/> <Variable name="tabs.selected.background.color" description="Selected Color" type="color" default="#eeeeee"/> </Group> <Group description="Post Title" selector="h3.post-title, .comments h4"> <Variable name="post.title.font" description="Font" type="font" default="normal normal 22px Arial, Tahoma, Helvetica, FreeSans, sans-serif"/> </Group> <Group description="Date Header" selector=".date-header"> <Variable name="date.header.color" description="Text Color" type="color" default="#666666"/> <Variable name="date.header.background.color" description="Background Color" type="color" default="transparent"/> <Variable name="date.header.font" description="Text Font" type="font" default="normal bold 11px Arial, Tahoma, Helvetica, FreeSans, sans-serif"/> <Variable name="date.header.padding" description="Date Header Padding" type="string" default="inherit"/> <Variable name="date.header.letterspacing" description="Date Header Letter Spacing" type="string" default="inherit"/> <Variable name="date.header.margin" description="Date Header Margin" type="string" default="inherit"/> </Group> <Group description="Post Footer" selector=".post-footer"> <Variable name="post.footer.text.color" description="Text Color" type="color" default="#666666"/> <Variable name="post.footer.background.color" description="Background Color" type="color" default="#f9f9f9"/> <Variable name="post.footer.border.color" description="Shadow Color" type="color" default="#eeeeee"/> </Group> <Group description="Gadgets" selector="h2"> <Variable name="widget.title.font" description="Title Font" type="font" default="normal bold 11px Arial, Tahoma, Helvetica, FreeSans, sans-serif"/> <Variable name="widget.title.text.color" description="Title Color" type="color" default="#000000"/> <Variable name="widget.alternate.text.color" description="Alternate Color" type="color" default="#999999"/> </Group> <Group description="Images" selector=".main-inner"> <Variable name="image.background.color" description="Background Color" type="color" default="#ffffff"/> <Variable name="image.border.color" description="Border Color" type="color" default="#eeeeee"/> <Variable name="image.text.color" description="Caption Text Color" type="color" default="#666666"/> </Group> <Group description="Accents" selector=".content-inner"> <Variable name="body.rule.color" description="Separator Line Color" type="color" default="#eeeeee"/> <Variable name="tabs.border.color" description="Tabs Border Color" type="color" default="#ffd343"/> </Group> <Variable name="body.background" description="Body Background" type="background" color="#eeeeee" default="$(color) none repeat scroll top left"/> <Variable name="body.background.override" description="Body Background Override" type="string" default=""/> <Variable name="body.background.gradient.cap" description="Body Gradient Cap" type="url" default="url(https://resources.blogblog.com/blogblog/data/1kt/simple/gradients_light.png)"/> <Variable name="body.background.gradient.tile" description="Body Gradient Tile" type="url" default="url(https://resources.blogblog.com/blogblog/data/1kt/simple/body_gradient_tile_light.png)"/> <Variable name="content.background.color.selector" description="Content Background Color Selector" type="string" default=".content-inner"/> <Variable name="content.padding" description="Content Padding" type="length" default="10px" min="0" max="100px"/> <Variable name="content.padding.horizontal" description="Content Horizontal Padding" type="length" default="10px" min="0" max="100px"/> <Variable name="content.shadow.spread" description="Content Shadow Spread" type="length" default="40px" min="0" max="100px"/> <Variable name="content.shadow.spread.webkit" description="Content Shadow Spread (WebKit)" type="length" default="5px" min="0" max="100px"/> <Variable name="content.shadow.spread.ie" description="Content Shadow Spread (IE)" type="length" default="10px" min="0" max="100px"/> <Variable name="main.border.width" description="Main Border Width" type="length" default="0" min="0" max="10px"/> <Variable name="header.background.gradient" description="Header Gradient" type="url" default="none"/> <Variable name="header.shadow.offset.left" description="Header Shadow Offset Left" type="length" default="-1px" min="-50px" max="50px"/> <Variable name="header.shadow.offset.top" description="Header Shadow Offset Top" type="length" default="-1px" min="-50px" max="50px"/> <Variable name="header.shadow.spread" description="Header Shadow Spread" type="length" default="1px" min="0" max="100px"/> <Variable name="header.padding" description="Header Padding" type="length" default="30px" min="0" max="100px"/> <Variable name="header.border.size" description="Header Border Size" type="length" default="1px" min="0" max="10px"/> <Variable name="header.bottom.border.size" description="Header Bottom Border Size" type="length" default="1px" min="0" max="10px"/> <Variable name="header.border.horizontalsize" description="Header Horizontal Border Size" type="length" default="0" min="0" max="10px"/> <Variable name="description.text.size" description="Description Text Size" type="string" default="140%"/> <Variable name="tabs.margin.top" description="Tabs Margin Top" type="length" default="0" min="0" max="100px"/> <Variable name="tabs.margin.side" description="Tabs Side Margin" type="length" default="30px" min="0" max="100px"/> <Variable name="tabs.background.gradient" description="Tabs Background Gradient" type="url" default="url(https://resources.blogblog.com/blogblog/data/1kt/simple/gradients_light.png)"/> <Variable name="tabs.border.width" description="Tabs Border Width" type="length" default="1px" min="0" max="10px"/> <Variable name="tabs.bevel.border.width" description="Tabs Bevel Border Width" type="length" default="1px" min="0" max="10px"/> <Variable name="post.margin.bottom" description="Post Bottom Margin" type="length" default="25px" min="0" max="100px"/> <Variable name="image.border.small.size" description="Image Border Small Size" type="length" default="2px" min="0" max="10px"/> <Variable name="image.border.large.size" description="Image Border Large Size" type="length" default="5px" min="0" max="10px"/> <Variable name="page.width.selector" description="Page Width Selector" type="string" default=".region-inner"/> <Variable name="page.width" description="Page Width" type="string" default="auto"/> <Variable name="main.section.margin" description="Main Section Margin" type="length" default="15px" min="0" max="100px"/> <Variable name="main.padding" description="Main Padding" type="length" default="15px" min="0" max="100px"/> <Variable name="main.padding.top" description="Main Padding Top" type="length" default="30px" min="0" max="100px"/> <Variable name="main.padding.bottom" description="Main Padding Bottom" type="length" default="30px" min="0" max="100px"/> <Variable name="paging.background" color="#ffffff" description="Background of blog paging area" type="background" default="transparent none no-repeat scroll top center"/> <Variable name="footer.bevel" description="Bevel border length of footer" type="length" default="0" min="0" max="10px"/> <Variable name="mobile.background.overlay" description="Mobile Background Overlay" type="string" default="transparent none repeat scroll top left"/> <Variable name="mobile.background.size" description="Mobile Background Size" type="string" default="auto"/> <Variable name="mobile.button.color" description="Mobile Button Color" type="color" default="#ffffff" /> <Variable name="startSide" description="Side where text starts in blog language" type="automatic" default="left"/> <Variable name="endSide" description="Side where text ends in blog language" type="automatic" default="right"/> */ /* Content ----------------------------------------------- */ body { font: normal normal 12px 'Trebuchet MS', Trebuchet, Verdana, sans-serif; color: #666666; background: #eeeeee none repeat scroll top left; padding: 0 0 0 0; } html body .region-inner { min-width: 0; max-width: 100%; width: auto; } h2 { font-size: 22px; } a:link { text-decoration:none; color: #2b5b84; } a:visited { text-decoration:none; color: #2b5b84; } a:hover { text-decoration:underline; color: #3776ab; } .body-fauxcolumn-outer .fauxcolumn-inner { background: transparent none repeat scroll top left; _background-image: none; } .body-fauxcolumn-outer .cap-top { position: absolute; z-index: 1; height: 400px; width: 100%; } .body-fauxcolumn-outer .cap-top .cap-left { width: 100%; background: transparent none repeat-x scroll top left; _background-image: none; } .content-outer { -moz-box-shadow: 0 0 0 rgba(0, 0, 0, .15); -webkit-box-shadow: 0 0 0 rgba(0, 0, 0, .15); -goog-ms-box-shadow: 0 0 0 #333333; box-shadow: 0 0 0 rgba(0, 0, 0, .15); margin-bottom: 1px; } .content-inner { padding: 10px 40px; } .content-inner { background-color: #ffffff; } /* Header ----------------------------------------------- */ .header-outer { background: #2b5b84 none repeat-x scroll 0 -400px; _background-image: none; } .Header h1 { font: normal normal 40px 'Trebuchet MS',Trebuchet,Verdana,sans-serif; color: #000000; text-shadow: 0 0 0 rgba(0, 0, 0, .2); } .Header h1 a { color: #000000; } .Header .description { font-size: 18px; color: #ffd343; } .header-inner .Header .titlewrapper { padding: 22px 0; } .header-inner .Header .descriptionwrapper { padding: 0 0; } /* Tabs ----------------------------------------------- */ .tabs-inner .section:first-child { border-top: 0 solid #dddddd; } .tabs-inner .section:first-child ul { margin-top: -1px; border-top: 1px solid #dddddd; border-left: 1px solid #dddddd; border-right: 1px solid #dddddd; } .tabs-inner .widget ul { background: transparent none repeat-x scroll 0 -800px; _background-image: none; border-bottom: 1px solid #dddddd; margin-top: 0; margin-left: -30px; margin-right: -30px; } .tabs-inner .widget li a { display: inline-block; padding: .6em 1em; font: normal normal 12px 'Trebuchet MS', Trebuchet, Verdana, sans-serif; color: #000000; border-left: 1px solid #ffffff; border-right: 1px solid #dddddd; } .tabs-inner .widget li:first-child a { border-left: none; } .tabs-inner .widget li.selected a, .tabs-inner .widget li a:hover { color: #000000; background-color: #eeeeee; text-decoration: none; } /* Columns ----------------------------------------------- */ .main-outer { border-top: 0 solid #ffd343; } .fauxcolumn-left-outer .fauxcolumn-inner { border-right: 1px solid #ffd343; } .fauxcolumn-right-outer .fauxcolumn-inner { border-left: 1px solid #ffd343; } /* Headings ----------------------------------------------- */ div.widget > h2, div.widget h2.title { margin: 0 0 1em 0; font: normal bold 11px 'Trebuchet MS',Trebuchet,Verdana,sans-serif; color: #000000; } /* Widgets ----------------------------------------------- */ .widget .zippy { color: #999999; text-shadow: 2px 2px 1px rgba(0, 0, 0, .1); } .widget .popular-posts ul { list-style: none; } /* Posts ----------------------------------------------- */ h2.date-header { font: normal bold 11px Arial, Tahoma, Helvetica, FreeSans, sans-serif; } .date-header span { background-color: #bbbbbb; color: #ffffff; padding: 0.4em; letter-spacing: 3px; margin: inherit; } .main-inner { padding-top: 35px; padding-bottom: 65px; } .main-inner .column-center-inner { padding: 0 0; } .main-inner .column-center-inner .section { margin: 0 1em; } .post { margin: 0 0 45px 0; } h3.post-title, .comments h4 { font: normal normal 22px 'Trebuchet MS',Trebuchet,Verdana,sans-serif; margin: .75em 0 0; } .post-body { font-size: 110%; line-height: 1.4; position: relative; } .post-body img, .post-body .tr-caption-container, .Profile img, .Image img, .BlogList .item-thumbnail img { padding: 2px; background: #ffffff; border: 1px solid #eeeeee; -moz-box-shadow: 1px 1px 5px rgba(0, 0, 0, .1); -webkit-box-shadow: 1px 1px 5px rgba(0, 0, 0, .1); box-shadow: 1px 1px 5px rgba(0, 0, 0, .1); } .post-body img, .post-body .tr-caption-container { padding: 5px; } .post-body .tr-caption-container { color: #666666; } .post-body .tr-caption-container img { padding: 0; background: transparent; border: none; -moz-box-shadow: 0 0 0 rgba(0, 0, 0, .1); -webkit-box-shadow: 0 0 0 rgba(0, 0, 0, .1); box-shadow: 0 0 0 rgba(0, 0, 0, .1); } .post-header { margin: 0 0 1.5em; line-height: 1.6; font-size: 90%; } .post-footer { margin: 20px -2px 0; padding: 5px 10px; color: #666666; background-color: #eeeeee; border-bottom: 1px solid #eeeeee; line-height: 1.6; font-size: 90%; } #comments .comment-author { padding-top: 1.5em; border-top: 1px solid #ffd343; background-position: 0 1.5em; } #comments .comment-author:first-child { padding-top: 0; border-top: none; } .avatar-image-container { margin: .2em 0 0; } #comments .avatar-image-container img { border: 1px solid #eeeeee; } /* Comments ----------------------------------------------- */ .comments .comments-content .icon.blog-author { background-repeat: no-repeat; background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASCAYAAABWzo5XAAAAAXNSR0IArs4c6QAAAAZiS0dEAP8A/wD/oL2nkwAAAAlwSFlzAAALEgAACxIB0t1+/AAAAAd0SU1FB9sLFwMeCjjhcOMAAAD+SURBVDjLtZSvTgNBEIe/WRRnm3U8RC1neQdsm1zSBIU9VVF1FkUguQQsD9ITmD7ECZIJSE4OZo9stoVjC/zc7ky+zH9hXwVwDpTAWWLrgS3QAe8AZgaAJI5zYAmc8r0G4AHYHQKVwII8PZrZFsBFkeRCABYiMh9BRUhnSkPTNCtVXYXURi1FpBDgArj8QU1eVXUzfnjv7yP7kwu1mYrkWlU33vs1QNu2qU8pwN0UpKoqokjWwCztrMuBhEhmh8bD5UDqur75asbcX0BGUB9/HAMB+r32hznJgXy2v0sGLBcyAJ1EK3LFcbo1s91JeLwAbwGYu7TP/3ZGfnXYPgAVNngtqatUNgAAAABJRU5ErkJggg==); } .comments .comments-content .loadmore a { border-top: 1px solid #999999; border-bottom: 1px solid #999999; } .comments .comment-thread.inline-thread { background-color: #eeeeee; } .comments .continue { border-top: 2px solid #999999; } /* Accents ---------------------------------------------- */ .section-columns td.columns-cell { border-left: 1px solid #ffd343; } .blog-pager { background: transparent url(//www.blogblog.com/1kt/simple/paging_dot.png) repeat-x scroll top center; } .blog-pager-older-link, .home-link, .blog-pager-newer-link { background-color: #ffffff; padding: 5px; } .footer-outer { border-top: 1px dashed #bbbbbb; } /* Mobile ----------------------------------------------- */ body.mobile { background-size: auto; } .mobile .body-fauxcolumn-outer { background: transparent none repeat scroll top left; } .mobile .body-fauxcolumn-outer .cap-top { background-size: 100% auto; } .mobile .content-outer { -webkit-box-shadow: 0 0 3px rgba(0, 0, 0, .15); box-shadow: 0 0 3px rgba(0, 0, 0, .15); } .mobile .tabs-inner .widget ul { margin-left: 0; margin-right: 0; } .mobile .post { margin: 0; } .mobile .main-inner .column-center-inner .section { margin: 0; } .mobile .date-header span { padding: 0.1em 10px; margin: 0 -10px; } .mobile h3.post-title { margin: 0; } .mobile .blog-pager { background: transparent none no-repeat scroll top center; } .mobile .footer-outer { border-top: none; } .mobile .main-inner, .mobile .footer-inner { background-color: #ffffff; } .mobile-index-contents { color: #666666; } .mobile-link-button { background-color: #2b5b84; } .mobile-link-button a:link, .mobile-link-button a:visited { color: #ffffff; } .mobile .tabs-inner .section:first-child { border-top: none; } .mobile .tabs-inner .PageList .widget-content { background-color: #eeeeee; color: #000000; border-top: 1px solid #dddddd; border-bottom: 1px solid #dddddd; } .mobile .tabs-inner .PageList .widget-content .pagelist-arrow { border-left: 1px solid #dddddd; } --></style> <style id='template-skin-1' type='text/css'><!-- body { min-width: 960px; } .content-outer, .content-fauxcolumn-outer, .region-inner { min-width: 960px; max-width: 960px; _width: 960px; } .main-inner .columns { padding-left: 0; padding-right: 310px; } .main-inner .fauxcolumn-center-outer { left: 0; right: 310px; /* IE6 does not respect left and right together */ _width: expression(this.parentNode.offsetWidth - parseInt("0") - parseInt("310px") + 'px'); } .main-inner .fauxcolumn-left-outer { width: 0; } .main-inner .fauxcolumn-right-outer { width: 310px; } .main-inner .column-left-outer { width: 0; right: 100%; margin-left: -0; } .main-inner .column-right-outer { width: 310px; margin-right: -310px; } #layout { min-width: 0; } #layout .content-outer { min-width: 0; width: 800px; } #layout .region-inner { min-width: 0; width: auto; } body#layout div.add_widget { padding: 8px; } body#layout div.add_widget a { margin-left: 32px; } --></style> <script type='text/javascript'> (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){ (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o), m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m) })(window,document,'script','https://www.google-analytics.com/analytics.js','ga'); ga('create', 'UA-55961911-3', 'auto', 'blogger'); ga('blogger.send', 'pageview'); </script> <link href='https://www.blogger.com/dyn-css/authorization.css?targetBlogID=8520&amp;zx=6eb4518c-c420-4a81-bd87-82582fc5b6e7' media='none' onload='if(media!=&#39;all&#39;)media=&#39;all&#39;' rel='stylesheet'/><noscript><link href='https://www.blogger.com/dyn-css/authorization.css?targetBlogID=8520&amp;zx=6eb4518c-c420-4a81-bd87-82582fc5b6e7' rel='stylesheet'/></noscript> <meta name='google-adsense-platform-account' content='ca-host-pub-1556223355139109'/> <meta name='google-adsense-platform-domain' content='blogspot.com'/> <link rel="stylesheet" href="https://fonts.googleapis.com/css2?display=swap&family=Montserrat"></head> <body class='loading'> <div class='navbar section' id='navbar' name='Navbar'><div class='widget Navbar' data-version='1' id='Navbar1'><script type="text/javascript"> function setAttributeOnload(object, attribute, val) { if(window.addEventListener) { window.addEventListener('load', function(){ object[attribute] = val; }, false); } else { window.attachEvent('onload', function(){ object[attribute] = val; }); } } </script> <div id="navbar-iframe-container"></div> <script type="text/javascript" src="https://apis.google.com/js/platform.js"></script> <script type="text/javascript"> gapi.load("gapi.iframes:gapi.iframes.style.bubble", function() { if (gapi.iframes && gapi.iframes.getContext) { gapi.iframes.getContext().openChild({ url: 'https://www.blogger.com/navbar/8520?origin\x3dhttps://pyfound.blogspot.com', where: document.getElementById("navbar-iframe-container"), id: "navbar-iframe" }); } }); </script><script type="text/javascript"> (function() { var script = document.createElement('script'); script.type = 'text/javascript'; script.src = '//pagead2.googlesyndication.com/pagead/js/google_top_exp.js'; var head = document.getElementsByTagName('head')[0]; if (head) { head.appendChild(script); }})(); </script> </div></div> <div class='body-fauxcolumns'> <div class='fauxcolumn-outer body-fauxcolumn-outer'> <div class='cap-top'> <div class='cap-left'></div> <div class='cap-right'></div> </div> <div class='fauxborder-left'> <div class='fauxborder-right'></div> <div class='fauxcolumn-inner'> </div> </div> <div class='cap-bottom'> <div class='cap-left'></div> <div class='cap-right'></div> </div> </div> </div> <div class='content'> <div class='content-fauxcolumns'> <div class='fauxcolumn-outer content-fauxcolumn-outer'> <div class='cap-top'> <div class='cap-left'></div> <div class='cap-right'></div> </div> <div class='fauxborder-left'> <div class='fauxborder-right'></div> <div class='fauxcolumn-inner'> </div> </div> <div class='cap-bottom'> <div class='cap-left'></div> <div class='cap-right'></div> </div> </div> </div> <div class='content-outer'> <div class='content-cap-top cap-top'> <div class='cap-left'></div> <div class='cap-right'></div> </div> <div class='fauxborder-left content-fauxborder-left'> <div class='fauxborder-right content-fauxborder-right'></div> <div class='content-inner'> <header> <div class='header-outer'> <div class='header-cap-top cap-top'> <div class='cap-left'></div> <div class='cap-right'></div> </div> <div class='fauxborder-left header-fauxborder-left'> <div class='fauxborder-right header-fauxborder-right'></div> <div class='region-inner header-inner'> <div class='header section' id='header' name='Header'><div class='widget Header' data-version='1' id='Header1'> <div id='header-inner'> <a href='https://pyfound.blogspot.com/' style='display: block'> <img alt='Python Software Foundation News' height='82px; ' id='Header1_headerimg' src='https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgD_WIGHsseqGaGnsXVjcNYZ5g6EIb1XoDEmltAoM6Bi6_R9uDS1BPJP9oPJKj1k4I5R8ALUVZZfy4_DLjEDs6i2GxsCDnf3xO5eo54utZQ5E2pyUhtbQGOiiwBrmLU5asONQ/s1600-r/psf-logo.png' style='display: block' width='334px; '/> </a> <div class='descriptionwrapper'> <p class='description'><span>&#160;&#160;News from the Python Software Foundation</span></p> </div> </div> </div></div> </div> </div> <div class='header-cap-bottom cap-bottom'> <div class='cap-left'></div> <div class='cap-right'></div> </div> </div> </header> <div class='tabs-outer'> <div class='tabs-cap-top cap-top'> <div class='cap-left'></div> <div class='cap-right'></div> </div> <div class='fauxborder-left tabs-fauxborder-left'> <div class='fauxborder-right tabs-fauxborder-right'></div> <div class='region-inner tabs-inner'> <div class='tabs no-items section' id='crosscol' name='Cross-Column'></div> <div class='tabs no-items section' id='crosscol-overflow' name='Cross-Column 2'></div> </div> </div> <div class='tabs-cap-bottom cap-bottom'> <div class='cap-left'></div> <div class='cap-right'></div> </div> </div> <div class='main-outer'> <div class='main-cap-top cap-top'> <div class='cap-left'></div> <div class='cap-right'></div> </div> <div class='fauxborder-left main-fauxborder-left'> <div class='fauxborder-right main-fauxborder-right'></div> <div class='region-inner main-inner'> <div class='columns fauxcolumns'> <div class='fauxcolumn-outer fauxcolumn-center-outer'> <div class='cap-top'> <div class='cap-left'></div> <div class='cap-right'></div> </div> <div class='fauxborder-left'> <div class='fauxborder-right'></div> <div class='fauxcolumn-inner'> </div> </div> <div class='cap-bottom'> <div class='cap-left'></div> <div class='cap-right'></div> </div> </div> <div class='fauxcolumn-outer fauxcolumn-left-outer'> <div class='cap-top'> <div class='cap-left'></div> <div class='cap-right'></div> </div> <div class='fauxborder-left'> <div class='fauxborder-right'></div> <div class='fauxcolumn-inner'> </div> </div> <div class='cap-bottom'> <div class='cap-left'></div> <div class='cap-right'></div> </div> </div> <div class='fauxcolumn-outer fauxcolumn-right-outer'> <div class='cap-top'> <div class='cap-left'></div> <div class='cap-right'></div> </div> <div class='fauxborder-left'> <div class='fauxborder-right'></div> <div class='fauxcolumn-inner'> </div> </div> <div class='cap-bottom'> <div class='cap-left'></div> <div class='cap-right'></div> </div> </div> <!-- corrects IE6 width calculation --> <div class='columns-inner'> <div class='column-center-outer'> <div class='column-center-inner'> <div class='main section' id='main' name='Main'><div class='widget Blog' data-version='1' id='Blog1'> <div class='blog-posts hfeed'> <div class="date-outer"> <h2 class='date-header'><span>Thursday, December 20, 2018</span></h2> <div class="date-posts"> <div class='post-outer'> <div class='post hentry uncustomized-post-template' itemprop='blogPost' itemscope='itemscope' itemtype='http://schema.org/BlogPosting'> <meta content='8520' itemprop='blogId'/> <meta content='5669211037731771021' itemprop='postId'/> <a name='5669211037731771021'></a> <h3 class='post-title entry-title' itemprop='name'> <a href='https://pyfound.blogspot.com/2018/12/upcoming-pypi-improvements-for-2019.html'>Upcoming PyPI Improvements for 2019</a> </h3> <div class='post-header'> <div class='post-header-line-1'></div> </div> <div class='post-body entry-content' id='post-body-5669211037731771021' itemprop='description articleBody'> <div dir="ltr" style="line-height: 1.38; margin-bottom: 3pt; margin-top: 0pt;"> <span style="font-family: inherit;"><span style="font-variant-east-asian: normal; font-variant-ligatures: normal; font-variant-position: normal; vertical-align: baseline; white-space: pre-wrap;">The </span><a href="https://pypi.org/" style="text-decoration: none;"><span style="-webkit-text-decoration-skip: none; font-variant-east-asian: normal; font-variant-ligatures: normal; font-variant-position: normal; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;">Python Package Index</span></a><span style="font-variant-east-asian: normal; font-variant-ligatures: normal; font-variant-position: normal; vertical-align: baseline; white-space: pre-wrap;"> (PyPI) is far and away the largest and most visible service that the </span><a href="https://www.python.org/psf-landing/" style="text-decoration: none;"><span style="-webkit-text-decoration-skip: none; font-variant-east-asian: normal; font-variant-ligatures: normal; font-variant-position: normal; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;">Python Software Foundation</span></a><span style="font-variant-east-asian: normal; font-variant-ligatures: normal; font-variant-position: normal; vertical-align: baseline; white-space: pre-wrap;"> (PSF) supports for the Python community. Throughout the project&#8217;s 16 year history, it has primarily relied on volunteers and donated services to operate as it grew from an empty repository to one hosting more than 1.1 million releases for over 162,000 projects and serving more than 2.2 petabytes in 13.8 billion requests in the last month.</span></span></div> <div dir="ltr" style="line-height: 1.38; margin-bottom: 3pt; margin-top: 0pt;"> <span style="font-variant-east-asian: normal; font-variant-ligatures: normal; font-variant-position: normal; vertical-align: baseline; white-space: pre-wrap;"><span style="font-family: inherit;"><br /></span></span></div> <div dir="ltr" style="line-height: 1.38; margin-bottom: 3pt; margin-top: 0pt;"> <span style="font-family: inherit;"><span style="font-variant-east-asian: normal; font-variant-ligatures: normal; font-variant-position: normal; vertical-align: baseline; white-space: pre-wrap;">In November 2017, we </span><a href="https://pyfound.blogspot.com/2017/11/the-psf-awarded-moss-grant-pypi.html" style="text-decoration: none;"><span style="-webkit-text-decoration-skip: none; font-variant-east-asian: normal; font-variant-ligatures: normal; font-variant-position: normal; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;">announced</span></a><span style="font-variant-east-asian: normal; font-variant-ligatures: normal; font-variant-position: normal; vertical-align: baseline; white-space: pre-wrap;"> an award from the </span><a href="https://www.mozilla.org/en-US/moss/" style="text-decoration: none;"><span style="-webkit-text-decoration-skip: none; font-variant-east-asian: normal; font-variant-ligatures: normal; font-variant-position: normal; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;">Mozilla Open Source Support</span></a><span style="font-variant-east-asian: normal; font-variant-ligatures: normal; font-variant-position: normal; vertical-align: baseline; white-space: pre-wrap;"> (MOSS) program that made it possible to </span><a href="http://pyfound.blogspot.com/2018/03/warehouse-all-new-pypi-is-now-in-beta.html" style="text-decoration: none;"><span style="-webkit-text-decoration-skip: none; font-variant-east-asian: normal; font-variant-ligatures: normal; font-variant-position: normal; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;">launch</span></a><span style="font-variant-east-asian: normal; font-variant-ligatures: normal; font-variant-position: normal; vertical-align: baseline; white-space: pre-wrap;"> the </span><a href="https://github.com/pypa/warehouse" style="text-decoration: none;"><span style="-webkit-text-decoration-skip: none; font-variant-east-asian: normal; font-variant-ligatures: normal; font-variant-position: normal; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;">ground up rewrite</span></a><span style="font-variant-east-asian: normal; font-variant-ligatures: normal; font-variant-position: normal; vertical-align: baseline; white-space: pre-wrap;"> of PyPI&#8217;s backend in April of 2018. This milestone has offered lower maintenance overhead and helped put the codebase into a much better state to add new features, improved security, and increased accessibility for users.</span></span></div> <div dir="ltr" style="line-height: 1.38; margin-bottom: 3pt; margin-top: 0pt;"> <span style="white-space: pre-wrap;"><span style="font-family: inherit;"><br /></span></span></div> <div dir="ltr" style="line-height: 1.38; margin-bottom: 3pt; margin-top: 0pt;"> <span style="white-space: pre-wrap;"><span style="font-family: inherit;">While some smaller features have already been proposed, designed, submitted, reviewed, and merged by volunteer contributors, other larger improvements warrant paid work. As 2019 approaches, we are excited to look forward to plans that will help deliver important improvements to the security and accessibility of PyPI.</span></span></div> <div dir="ltr" style="line-height: 1.38; margin-bottom: 3pt; margin-top: 0pt;"> <span style="white-space: pre-wrap;"><span style="font-family: inherit;"><br /></span></span></div> <div dir="ltr" style="line-height: 1.38; margin-bottom: 3pt; margin-top: 0pt;"> <span style="white-space: pre-wrap;"><span style="font-family: inherit;">As a grant-giving non-profit, the Python Software Foundation is grateful to the organizations that make funding this work possible. For 2019 we are glad to have two initiatives in the works.</span></span></div> <div dir="ltr" style="line-height: 1.38; margin-bottom: 3pt; margin-top: 0pt;"> <span style="white-space: pre-wrap;"><span style="font-family: inherit;"><br /></span></span></div> <h2> <span style="font-family: inherit; vertical-align: baseline; white-space: pre-wrap;">Facebook Gift</span></h2> <div dir="ltr" style="line-height: 1.38; margin-bottom: 3pt; margin-top: 0pt;"> <span style="font-family: inherit; vertical-align: baseline; white-space: pre-wrap;"><br /></span></div> <div dir="ltr" style="line-height: 1.38; margin-bottom: 3pt; margin-top: 0pt;"> <span style="font-family: inherit; vertical-align: baseline; white-space: pre-wrap;">We&#8217;re excited to announce that </span><a href="https://research.fb.com/" style="font-family: inherit; text-decoration: none;"><span style="-webkit-text-decoration-skip: none; font-variant-east-asian: normal; font-variant-ligatures: normal; font-variant-position: normal; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;">Facebook</span></a><span style="font-family: inherit; vertical-align: baseline; white-space: pre-wrap;"> has provided the Python Software Foundation with a monetary gift that will be used to fund the development and deployment of enhanced security features to PyPI. As a major Python user, contributor, and supporter, Facebook was impressed with the success of the MOSS award and is enthusiastically assisting with further enhancements to PyPI with this gift.</span></div> <div dir="ltr" style="line-height: 1.38; margin-bottom: 3pt; margin-top: 0pt;"> <span style="font-variant-east-asian: normal; font-variant-ligatures: normal; font-variant-position: normal; vertical-align: baseline; white-space: pre-wrap;"><span style="font-family: inherit;"><br /></span></span></div> <div dir="ltr" style="line-height: 1.38; margin-bottom: 3pt; margin-top: 0pt;"> <span style="font-family: inherit;"><span style="font-variant-east-asian: normal; font-variant-ligatures: normal; font-variant-position: normal; vertical-align: baseline; white-space: pre-wrap;">The PSF </span><a href="https://www.python.org/psf/committees/#packaging-work-group" style="text-decoration: none;"><span style="-webkit-text-decoration-skip: none; font-variant-east-asian: normal; font-variant-ligatures: normal; font-variant-position: normal; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;">Packaging Working Group</span></a><span style="font-variant-east-asian: normal; font-variant-ligatures: normal; font-variant-position: normal; vertical-align: baseline; white-space: pre-wrap;"> plans to use these funds to implement highly requested security features in PyPI such as cryptographic signing and verification of files uploaded and installed from the index. Additionally, systems for the automated detection of malicious uploads will lower the time to response and improve the resiliency of PyPI against attacks such as &#8220;</span><a href="https://pytosquatting.overtag.dk/" style="text-decoration: none;"><span style="-webkit-text-decoration-skip: none; font-variant-east-asian: normal; font-variant-ligatures: normal; font-variant-position: normal; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;">pytosquatting</span></a><span style="font-variant-east-asian: normal; font-variant-ligatures: normal; font-variant-position: normal; vertical-align: baseline; white-space: pre-wrap;">&#8221;.</span></span></div> <div dir="ltr" style="line-height: 1.38; margin-bottom: 3pt; margin-top: 0pt;"> <span style="white-space: pre-wrap;"><span style="font-family: inherit;"><br /></span></span></div> <div dir="ltr" style="line-height: 1.38; margin-bottom: 3pt; margin-top: 0pt;"> <span style="white-space: pre-wrap;"><span style="font-family: inherit;">This work will be undertaken in the second half of 2019 but planning will begin in the second quarter of the year.</span></span></div> <div dir="ltr" style="line-height: 1.38; margin-bottom: 3pt; margin-top: 0pt;"> <span style="white-space: pre-wrap;"><span style="font-family: inherit;"><br /></span></span></div> <h2> <span style="font-variant-east-asian: normal; font-variant-ligatures: normal; font-variant-position: normal; vertical-align: baseline; white-space: pre-wrap;"><span style="font-family: inherit;">Open Technology Fund</span></span></h2> <div dir="ltr" style="line-height: 1.38; margin-bottom: 3pt; margin-top: 0pt;"> <span style="font-family: inherit; vertical-align: baseline; white-space: pre-wrap;"><br /></span></div> <div dir="ltr" style="line-height: 1.38; margin-bottom: 3pt; margin-top: 0pt;"> <span style="font-family: inherit; vertical-align: baseline; white-space: pre-wrap;">The </span><a href="https://www.opentech.fund/funds/" style="font-family: inherit; text-decoration: none;"><span style="-webkit-text-decoration-skip: none; font-variant-east-asian: normal; font-variant-ligatures: normal; font-variant-position: normal; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;">Open Technology Fund</span></a><span style="font-family: inherit; vertical-align: baseline; white-space: pre-wrap;"> (OTF) supports projects and people that develop open and accessible technologies promoting human rights and open societies and help advance inclusive and safe access to global communications networks.</span></div> <div dir="ltr" style="line-height: 1.38; margin-bottom: 3pt; margin-top: 0pt;"> <span style="font-variant-east-asian: normal; font-variant-ligatures: normal; font-variant-position: normal; vertical-align: baseline; white-space: pre-wrap;"><span style="font-family: inherit;"><br /></span></span></div> <div dir="ltr" style="line-height: 1.38; margin-bottom: 3pt; margin-top: 0pt;"> <span style="font-family: inherit;"><span style="font-variant-east-asian: normal; font-variant-ligatures: normal; font-variant-position: normal; vertical-align: baseline; white-space: pre-wrap;">The PSF </span><a href="https://www.python.org/psf/committees/#packaging-work-group" style="text-decoration: none;"><span style="-webkit-text-decoration-skip: none; font-variant-east-asian: normal; font-variant-ligatures: normal; font-variant-position: normal; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;">Packaging Working Group</span></a><span style="font-variant-east-asian: normal; font-variant-ligatures: normal; font-variant-position: normal; vertical-align: baseline; white-space: pre-wrap;"> is delighted to have been awarded a contract through the </span><a href="https://www.opentech.fund/funds/core-infrastructure-fund/" style="text-decoration: none;"><span style="-webkit-text-decoration-skip: none; font-variant-east-asian: normal; font-variant-ligatures: normal; font-variant-position: normal; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;">OTF Core Infrastructure Fund</span></a><span style="font-variant-east-asian: normal; font-variant-ligatures: normal; font-variant-position: normal; vertical-align: baseline; white-space: pre-wrap;"> to add key security features to PyPI including API keys, multi-factor authentication, and audit logs. Additionally, accessibility and localization features will be a key focus as we ensure service&#8217;s ability to support our global community of users.</span></span></div> <div dir="ltr" style="line-height: 1.38; margin-bottom: 3pt; margin-top: 0pt;"> <span style="font-family: inherit;"><span style="font-variant-east-asian: normal; font-variant-ligatures: normal; font-variant-position: normal; vertical-align: baseline; white-space: pre-wrap;"><br /></span></span></div> <h2> <span style="white-space: pre-wrap;"><span style="font-family: inherit;">Get Involved</span></span></h2> <div dir="ltr" style="line-height: 1.38; margin-bottom: 3pt; margin-top: 0pt;"> <span style="font-family: inherit; white-space: pre-wrap;"><br /></span></div> <div dir="ltr" style="line-height: 1.38; margin-bottom: 3pt; margin-top: 0pt;"> <span style="font-family: inherit; white-space: pre-wrap;">We plan to begin this work in the first quarter of 2019, if you&#8217;re interested in getting involved, keep reading!</span></div> <div dir="ltr" style="line-height: 1.38; margin-bottom: 3pt; margin-top: 0pt;"> <span style="font-variant-east-asian: normal; font-variant-ligatures: normal; font-variant-position: normal; vertical-align: baseline; white-space: pre-wrap;"><span style="font-family: inherit;"><br /></span></span></div> <div dir="ltr" style="line-height: 1.38; margin-bottom: 3pt; margin-top: 0pt;"> <span style="font-family: inherit;"><span style="font-variant-east-asian: normal; font-variant-ligatures: normal; font-variant-position: normal; vertical-align: baseline; white-space: pre-wrap;">If you&#8217;re interested in getting involved, you can do so today by responding to our </span><a href="http://pyfound.blogspot.com/2018/12/pypi-security-and-accessibility-q1-2019.html" style="text-decoration: none;"><span style="-webkit-text-decoration-skip: none; font-variant-east-asian: normal; font-variant-ligatures: normal; font-variant-position: normal; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;">Request for Proposals</span></a><span style="font-variant-east-asian: normal; font-variant-ligatures: normal; font-variant-position: normal; vertical-align: baseline; white-space: pre-wrap;"> to fulfill the OTF contract. This RFP will close </span><span style="font-variant-east-asian: normal; font-variant-ligatures: normal; font-variant-position: normal; font-weight: 700; vertical-align: baseline; white-space: pre-wrap;">January 25th, 2019 </span><a href="https://www.timeanddate.com/time/zones/aoe" style="text-decoration: none;"><span style="-webkit-text-decoration-skip: none; font-variant-east-asian: normal; font-variant-ligatures: normal; font-variant-position: normal; font-weight: 700; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;">AoE</span></a><span style="font-variant-east-asian: normal; font-variant-ligatures: normal; font-variant-position: normal; vertical-align: baseline; white-space: pre-wrap;">. </span><span style="font-variant-east-asian: normal; font-variant-ligatures: normal; font-variant-position: normal; vertical-align: baseline; white-space: pre-wrap;">If you&#8217;re interested in getting involved at a later date to complete the work planned for the Facebook Gift, keep your eyes on this blog, </span><a href="https://www.python.org/psf/newsletter/" style="text-decoration: none;"><span style="-webkit-text-decoration-skip: none; font-variant-east-asian: normal; font-variant-ligatures: normal; font-variant-position: normal; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;">subscribe to the PSF newsletter</span></a><span style="font-variant-east-asian: normal; font-variant-ligatures: normal; font-variant-position: normal; vertical-align: baseline; white-space: pre-wrap;">, or follow us on </span><a href="https://twitter.com/thepsf" style="text-decoration: none;"><span style="-webkit-text-decoration-skip: none; font-variant-east-asian: normal; font-variant-ligatures: normal; font-variant-position: normal; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;">Twitter</span></a><span style="font-variant-east-asian: normal; font-variant-ligatures: normal; font-variant-position: normal; vertical-align: baseline; white-space: pre-wrap;">.</span></span></div> <br class="Apple-interchange-newline" /> <div style='clear: both;'></div> </div> <div class='post-footer'> <div class='post-footer-line post-footer-line-1'> <span class='post-author vcard'> Posted by <span class='fn' itemprop='author' itemscope='itemscope' itemtype='http://schema.org/Person'> <meta content='https://www.blogger.com/profile/13577459520968677064' itemprop='url'/> <a class='g-profile' href='https://www.blogger.com/profile/13577459520968677064' rel='author' title='author profile'> <span itemprop='name'>Ee Durbin</span> </a> </span> </span> <span class='post-timestamp'> at <meta content='https://pyfound.blogspot.com/2018/12/upcoming-pypi-improvements-for-2019.html' itemprop='url'/> <a class='timestamp-link' href='https://pyfound.blogspot.com/2018/12/upcoming-pypi-improvements-for-2019.html' rel='bookmark' title='permanent link'><abbr class='published' itemprop='datePublished' title='2018-12-20T12:55:00-05:00'>12/20/2018 12:55:00 PM</abbr></a> </span> <span class='post-comment-link'> </span> <span class='post-icons'> <span class='item-control blog-admin pid-312150102'> <a href='https://www.blogger.com/post-edit.g?blogID=8520&postID=5669211037731771021&from=pencil' title='Edit Post'> <img alt='' class='icon-action' height='18' src='https://resources.blogblog.com/img/icon18_edit_allbkg.gif' width='18'/> </a> </span> </span> <div class='post-share-buttons goog-inline-block'> </div> </div> <div class='post-footer-line post-footer-line-2'> <span class='post-labels'> Labels: <a href='https://pyfound.blogspot.com/search/label/pypi' rel='tag'>pypi</a> </span> </div> <div class='post-footer-line post-footer-line-3'> <span class='post-location'> </span> </div> </div> </div> </div> </div></div> <div class="date-outer"> <h2 class='date-header'><span>Wednesday, December 19, 2018</span></h2> <div class="date-posts"> <div class='post-outer'> <div class='post hentry uncustomized-post-template' itemprop='blogPost' itemscope='itemscope' itemtype='http://schema.org/BlogPosting'> <meta content='8520' itemprop='blogId'/> <meta content='5731926777458674184' itemprop='postId'/> <a name='5731926777458674184'></a> <h3 class='post-title entry-title' itemprop='name'> <a href='https://pyfound.blogspot.com/2018/12/pypi-security-and-accessibility-q1-2019.html'>PyPI Security and Accessibility Q1 2019 Request for Proposals Update</a> </h3> <div class='post-header'> <div class='post-header-line-1'></div> </div> <div class='post-body entry-content' id='post-body-5731926777458674184' itemprop='description articleBody'> <div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;"> <span style="font-family: inherit;"><span style="background-color: transparent; font-style: normal; font-variant-caps: normal; font-variant-east-asian: normal; font-variant-ligatures: normal; font-variant-position: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Earlier this year we </span><a href="http://pyfound.blogspot.com/2018/10/pypi-security-and-accessibility-q1-2019.html" style="text-decoration: none;"><span style="-webkit-text-decoration-skip: none; background-color: transparent; font-style: normal; font-variant-caps: normal; font-variant-east-asian: normal; font-variant-ligatures: normal; font-variant-position: normal; font-weight: 400; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;">launched a Request for Information</span></a><span style="background-color: transparent; font-style: normal; font-variant-caps: normal; font-variant-east-asian: normal; font-variant-ligatures: normal; font-variant-position: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> (RFI) followed by the </span><a href="http://pyfound.blogspot.com/2018/11/pypi-security-and-accessibility-q1-2019.html" style="text-decoration: none;"><span style="-webkit-text-decoration-skip: none; background-color: transparent; font-style: normal; font-variant-caps: normal; font-variant-east-asian: normal; font-variant-ligatures: normal; font-variant-position: normal; font-weight: 400; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;">launch of a Request for Proposals</span></a><span style="background-color: transparent; font-style: normal; font-variant-caps: normal; font-variant-east-asian: normal; font-variant-ligatures: normal; font-variant-position: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> (RFP) in November to fulfill a contract for the </span><a href="https://www.opentech.fund/" style="text-decoration: none;"><span style="-webkit-text-decoration-skip: none; background-color: transparent; font-style: normal; font-variant-caps: normal; font-variant-east-asian: normal; font-variant-ligatures: normal; font-variant-position: normal; font-weight: 400; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;">Open Technology Fund</span></a><span style="background-color: transparent; font-style: normal; font-variant-caps: normal; font-variant-east-asian: normal; font-variant-ligatures: normal; font-variant-position: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> (OTF) </span><a href="https://www.opentech.fund/funds/core-infrastructure-fund/" style="text-decoration: none;"><span style="-webkit-text-decoration-skip: none; background-color: transparent; font-style: normal; font-variant-caps: normal; font-variant-east-asian: normal; font-variant-ligatures: normal; font-variant-position: normal; font-weight: 400; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;">Core Infrastructure Fund</span></a><span style="background-color: transparent; font-style: normal; font-variant-caps: normal; font-variant-east-asian: normal; font-variant-ligatures: normal; font-variant-position: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">.</span><span style="background-color: transparent; font-style: normal; font-variant-caps: normal; font-variant-east-asian: normal; font-variant-ligatures: normal; font-variant-position: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><br class="kix-line-break" /></span></span></div> <span style="background-color: transparent; font-style: normal; font-variant-caps: normal; font-variant-east-asian: normal; font-variant-ligatures: normal; font-variant-position: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><span style="font-family: inherit;"><br class="kix-line-break" /></span></span> <span style="background-color: transparent; font-style: normal; font-variant-caps: normal; font-variant-east-asian: normal; font-variant-ligatures: normal; font-variant-position: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><span style="font-family: inherit;">The initial deadline for our RFP was December 14th. We had hoped to begin work with the selected proposers in January 2019, but ultimately fell short of the ability to do so.</span></span><br /> <br /> <h3> <span style="font-family: inherit; font-size: 20pt; white-space: pre-wrap;">What&#8217;s holding us back</span></h3> <span style="font-family: inherit; white-space: pre-wrap;"><br /></span> <span style="font-family: inherit; white-space: pre-wrap;">After the deadline passed there were no proposals submitted for Milestone 2. This leaves us in a position where the project cannot proceed as planned without reassessing the RFP process and extending the deadline.</span><br /> <h3> <span style="font-family: inherit; font-size: 20pt; white-space: pre-wrap;">How we&#8217;ll move forward</span></h3> <span style="font-family: inherit; white-space: pre-wrap;"><br /></span> <span style="font-family: inherit; white-space: pre-wrap;">The RFP document has been <a href="https://github.com/python/request-for/commit/263aad69a25eaf74588bbb4e245c5037a5791410" target="_blank">updated</a> based on feedback received from those who took part in the initial period to allow for additional flexibility on proposal parameters.</span><br /> <span style="font-variant-east-asian: normal; font-variant-ligatures: normal; font-variant-position: normal; vertical-align: baseline; white-space: pre-wrap;"><span style="font-family: inherit;"><br /></span></span> <span style="font-family: inherit;"><span style="font-variant-east-asian: normal; font-variant-ligatures: normal; font-variant-position: normal; vertical-align: baseline; white-space: pre-wrap;">The </span><a href="https://github.com/python/request-for/blob/aaa24d92ea12c28ae4e9f8c17ef86770bfa78427/2019-Q1-PyPI/RFP.md" style="text-decoration: none;"><span style="-webkit-text-decoration-skip: none; font-variant-east-asian: normal; font-variant-ligatures: normal; font-variant-position: normal; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;">RFP</span></a><span style="font-variant-east-asian: normal; font-variant-ligatures: normal; font-variant-position: normal; vertical-align: baseline; white-space: pre-wrap;"> contained two milestones that could be proposed for independently or as a pair. In responses to our RFP the </span><a href="https://github.com/python/request-for/blob/aaa24d92ea12c28ae4e9f8c17ef86770bfa78427/2019-Q1-PyPI/RFP.md#milestone-1---security-development" style="text-decoration: none;"><span style="-webkit-text-decoration-skip: none; font-variant-east-asian: normal; font-variant-ligatures: normal; font-variant-position: normal; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;">security development milestone</span></a><span style="font-variant-east-asian: normal; font-variant-ligatures: normal; font-variant-position: normal; vertical-align: baseline; white-space: pre-wrap;"> (Milestone 1) received more attention than the </span><a href="https://github.com/python/request-for/blob/aaa24d92ea12c28ae4e9f8c17ef86770bfa78427/2019-Q1-PyPI/RFP.md#milestone-2---accessibility-and-internationalization-development" style="text-decoration: none;"><span style="-webkit-text-decoration-skip: none; font-variant-east-asian: normal; font-variant-ligatures: normal; font-variant-position: normal; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;">accessibility and internationalization milestone</span></a><span style="font-variant-east-asian: normal; font-variant-ligatures: normal; font-variant-position: normal; vertical-align: baseline; white-space: pre-wrap;"> (Milestone 2).</span></span><br /> <span style="white-space: pre-wrap;"><span style="font-family: inherit;"><br /></span></span> <span style="white-space: pre-wrap;"><span style="font-family: inherit;">Given that we will at least need to extend the RFP period to obtain proposals for Milestone 2, we plan to continue to accept proposals for both. This offers us the best chance to select a proposal that will best utilize the available funds.</span></span><br /> <span style="font-variant-east-asian: normal; font-variant-ligatures: normal; font-variant-position: normal; vertical-align: baseline; white-space: pre-wrap;"><span style="font-family: inherit;"><br /></span></span> <span style="font-family: inherit;"><span style="font-variant-east-asian: normal; font-variant-ligatures: normal; font-variant-position: normal; vertical-align: baseline; white-space: pre-wrap;">Our new deadline for responses will be the end of the day </span><span style="font-variant-east-asian: normal; font-variant-ligatures: normal; font-variant-position: normal; font-weight: 700; vertical-align: baseline; white-space: pre-wrap;">January 31st, 2019 </span><a href="https://www.timeanddate.com/time/zones/aoe" style="text-decoration: none;"><span style="-webkit-text-decoration-skip: none; font-variant-east-asian: normal; font-variant-ligatures: normal; font-variant-position: normal; font-weight: 700; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;">AoE</span></a><span style="font-variant-east-asian: normal; font-variant-ligatures: normal; font-variant-position: normal; vertical-align: baseline; white-space: pre-wrap;">. You can read the full Request for Proposals document </span><a href="https://github.com/python/request-for/blob/master/2019-Q1-PyPI/RFP.md" style="text-decoration: none;"><span style="-webkit-text-decoration-skip: none; font-variant-east-asian: normal; font-variant-ligatures: normal; font-variant-position: normal; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;">here</span></a><span style="font-variant-east-asian: normal; font-variant-ligatures: normal; font-variant-position: normal; vertical-align: baseline; white-space: pre-wrap;">.</span></span><br /> <span style="font-variant-east-asian: normal; font-variant-ligatures: normal; font-variant-position: normal; vertical-align: baseline; white-space: pre-wrap;"><span style="font-family: inherit;"><br /></span></span> <span style="font-family: inherit;"><span style="font-variant-east-asian: normal; font-variant-ligatures: normal; font-variant-position: normal; vertical-align: baseline; white-space: pre-wrap;">If you have any questions, concerns, or feedback about the RFP please contact the Python Software Foundation Director of Infrastructure, </span><a href="mailto:ernest@python.org"><span style="-webkit-text-decoration-skip: none; font-variant-east-asian: normal; font-variant-ligatures: normal; font-variant-position: normal; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;">Ernest W. Durbin III</span></a><span style="font-variant-east-asian: normal; font-variant-ligatures: normal; font-variant-position: normal; vertical-align: baseline; white-space: pre-wrap;">. Proposers may also discuss the RFP in our community discussion forum at </span><a href="https://discuss.python.org/c/python-software-foundation/rfp-pypi-project-q1-2019" style="text-decoration: none;"><span style="-webkit-text-decoration-skip: none; font-variant-east-asian: normal; font-variant-ligatures: normal; font-variant-position: normal; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;">discuss.python.org</span></a><span style="font-variant-east-asian: normal; font-variant-ligatures: normal; font-variant-position: normal; vertical-align: baseline; white-space: pre-wrap;">.</span></span><br /> <br /> <br class="Apple-interchange-newline" /> <div style='clear: both;'></div> </div> <div class='post-footer'> <div class='post-footer-line post-footer-line-1'> <span class='post-author vcard'> Posted by <span class='fn' itemprop='author' itemscope='itemscope' itemtype='http://schema.org/Person'> <meta content='https://www.blogger.com/profile/13577459520968677064' itemprop='url'/> <a class='g-profile' href='https://www.blogger.com/profile/13577459520968677064' rel='author' title='author profile'> <span itemprop='name'>Ee Durbin</span> </a> </span> </span> <span class='post-timestamp'> at <meta content='https://pyfound.blogspot.com/2018/12/pypi-security-and-accessibility-q1-2019.html' itemprop='url'/> <a class='timestamp-link' href='https://pyfound.blogspot.com/2018/12/pypi-security-and-accessibility-q1-2019.html' rel='bookmark' title='permanent link'><abbr class='published' itemprop='datePublished' title='2018-12-19T14:11:00-05:00'>12/19/2018 02:11:00 PM</abbr></a> </span> <span class='post-comment-link'> </span> <span class='post-icons'> <span class='item-control blog-admin pid-312150102'> <a href='https://www.blogger.com/post-edit.g?blogID=8520&postID=5731926777458674184&from=pencil' title='Edit Post'> <img alt='' class='icon-action' height='18' src='https://resources.blogblog.com/img/icon18_edit_allbkg.gif' width='18'/> </a> </span> </span> <div class='post-share-buttons goog-inline-block'> </div> </div> <div class='post-footer-line post-footer-line-2'> <span class='post-labels'> Labels: <a href='https://pyfound.blogspot.com/search/label/pypi' rel='tag'>pypi</a> </span> </div> <div class='post-footer-line post-footer-line-3'> <span class='post-location'> </span> </div> </div> </div> </div> </div></div> <div class="date-outer"> <h2 class='date-header'><span>Monday, December 17, 2018</span></h2> <div class="date-posts"> <div class='post-outer'> <div class='post hentry uncustomized-post-template' itemprop='blogPost' itemscope='itemscope' itemtype='http://schema.org/BlogPosting'> <meta content='https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgOflxa6xXMgFn0l5cRR1IZ9HZMM81mgeA2pW8wpiftjnu9FUoKrdoY2xUbMAsU5NvhzXcExMvJC6BydTsjBErtv7uhInJ1xzYZo704_9cjVEhLtFguGDZBMeFPwukUgFhpqg/s320/ichux-image.jpg' itemprop='image_url'/> <meta content='8520' itemprop='blogId'/> <meta content='8820700080279065993' itemprop='postId'/> <a name='8820700080279065993'></a> <h3 class='post-title entry-title' itemprop='name'> <a href='https://pyfound.blogspot.com/2018/12/evangelizing-python-in-africa-chukwudi_65.html'>Evangelizing Python in Africa: Chukwudi Nwachukwu, Q2 CSA Recipient</a> </h3> <div class='post-header'> <div class='post-header-line-1'></div> </div> <div class='post-body entry-content' id='post-body-8820700080279065993' itemprop='description articleBody'> <style type="text/css"> p.p1 {margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px 'Helvetica Neue'; color: #454545} p.p2 {margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px 'Helvetica Neue'; color: #454545; min-height: 14.0px} span.s1 {text-decoration: underline ; color: #e4af0a} span.Apple-tab-span {white-space:pre} </style> <br /> <div class="p1"> Chukwudi, or Chux as he is often referred to in more familiar circles, is the president of <a href="https://pycon.ng/"><span class="s1">Python Nigeria</span></a> (@PythonNigeria) and has served as part of the PSF&#8217;s Grants Working Group for several years. Some of the work he has done with the grants working group involves dealing with very delicate situations, as grant requests need to be authenticated and require due diligence to properly understand the local context for preparing and awarding a grant.&nbsp;According to Nicholas H. Tollervey, a fellow Grants Working Group member, Chux regularly contacts, researches and (where possible) visits in-person many of the requesters so the Grants Work Group has the context needed to be able to make an informed decision. All of this detail oriented &nbsp;work requires a great deal of interpersonal skill and effort, which Chux exerts freely as a credit to our larger Python community.<span class="Apple-converted-space">&nbsp;</span></div> <div class="p2"> <br /></div> <div class="p1"> It is for this demonstrated passion and devotion to the Python community that in <a href="https://www.python.org/psf/records/board/minutes/2018-07-24/#id4"><span class="s1">July 2018</span></a> the Python Software Foundation unanimously voted to award Chukwudi Nwachukwu with a <a href="https://www.python.org/community/awards/psf-awards/#id4"><span class="s1">Q2 2018 Community Award</span></a>:</div> <div class="p1"> <br /></div> <div class="p1"> <span class="Apple-tab-span"> </span>RESOLVED, that the Python Software Foundation award the Q3 2018 Community</div> <div class="p1"> Service Award to Chukwudi Nwachukwu for all of the support he provides the PSF's<span class="Apple-tab-span"> </span>Grants Work Group by researching regional grant requests and for all of his contributions to the Python Nigeria community.</div> <div class="p1"> <br /></div> <div class="p1"> <b>Python in Nigeria</b></div> <div class="p2"> <br /></div> <div class="p1"> The Python community in Nigeria has grown exponentially in the last few years. Chux has done an incredible job of guiding this growth along with Aisha Bello, the Vice President of <a href="https://www.python.org/events/python-events/733/"><span class="s1">Pycon Nigeria</span></a> (@Pythonnigeria). PyCon Nigeria launched for the first time in August 2017, and was the fourth PyCon to have been hosted on the African continent.<span class="Apple-converted-space">&nbsp;</span>Aisha Bello share her thoughts on Chux winning the award, saying:<span class="Apple-converted-space">&nbsp;</span></div> <div class="p2"> <br /></div> <div class="p1"> <i>&#8220;I have known and worked with Chuks for over 2 years now and he is family. His passion for the python community as a whole and his significant contributions, continuous sacrifices and dedication has gone a long way in shaping the collective growth and successes we have had. He definitely deserved the award"<span class="Apple-converted-space">&nbsp;</span></i></div> <div class="p2"> <br /></div> <div class="p1"> As a new Director for the PSF, I was able to attend the conference and witness first hand Chux&#8217;s thoughtful leadership and strong organizational skills. He attended the event with his wife and new baby, happily commenting how he wanted to make sure his family became plugged into the Python community as early &nbsp;as possible. He tried his best to navigate through the room, making sure that everyone present felt comfortable and informed.<span class="Apple-converted-space">&nbsp;</span></div> <div class="p1"> <span class="Apple-converted-space"><br /></span></div> <div class="p2"> <br /></div> <div class="separator" style="clear: both; text-align: center;"> <a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgOflxa6xXMgFn0l5cRR1IZ9HZMM81mgeA2pW8wpiftjnu9FUoKrdoY2xUbMAsU5NvhzXcExMvJC6BydTsjBErtv7uhInJ1xzYZo704_9cjVEhLtFguGDZBMeFPwukUgFhpqg/s1600/ichux-image.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="400" data-original-width="400" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgOflxa6xXMgFn0l5cRR1IZ9HZMM81mgeA2pW8wpiftjnu9FUoKrdoY2xUbMAsU5NvhzXcExMvJC6BydTsjBErtv7uhInJ1xzYZo704_9cjVEhLtFguGDZBMeFPwukUgFhpqg/s320/ichux-image.jpg" width="320" /></a></div> <div class="p2"> <br /></div> <div class="p2"> <br /></div> <div class="p1"> Chux is an integral part of the Nigerian and global Python community. According to Tosin Damilare James Animashaun, a member of the local Python community in Lagos, Chux is one of the reasons he joined:<span class="Apple-converted-space">&nbsp;</span></div> <div class="p2"> <br /></div> <div class="p1"> &#8220;<i>Many, like myself, owe our entrance and involvement with the community to Chukwudi,</i> <i>who is very dedicated to advancing the cause of the community. This is aside [from]</i></div> <div class="p1"> <i>him being a great programmer, as I have worked with him well enough to know this. He is a great influence. I have no doubt that Chuk&#8217;s &nbsp;passion is definitely Python. In his words, "Python is something I code and breathe."<span class="Apple-converted-space">&nbsp;</span></i></div> <div class="p2"> <br /></div> <div class="p1"> <i><span class="Apple-converted-space">&nbsp;</span></i><b>PyCon Africa: The continued growth of Python in Africa</b></div> <div class="p2"> <br /></div> <div class="p1"> Chukwudi has done and continues to work tirelessly to forward the mission of the PSF by supporting its sustainable growth in Africa. He is also involved in planning the upcoming PyCon Africa, where he has offered to share his knowledge in regards to running a conference. He is well known in the region, interacting daily with African Pythonistas. He is consistently looking for ways to connect, support and grow the Python community and for that, he is truly deserving of this award. From all of us at &nbsp;the PSF we say a hearty thank you for all your hard work Chukwudi!<span class="Apple-converted-space">&nbsp;</span></div> <br /> <div style='clear: both;'></div> </div> <div class='post-footer'> <div class='post-footer-line post-footer-line-1'> <span class='post-author vcard'> Posted by <span class='fn' itemprop='author' itemscope='itemscope' itemtype='http://schema.org/Person'> <meta content='https://www.blogger.com/profile/12157871163204008115' itemprop='url'/> <a class='g-profile' href='https://www.blogger.com/profile/12157871163204008115' rel='author' title='author profile'> <span itemprop='name'>Marlene_zw</span> </a> </span> </span> <span class='post-timestamp'> at <meta content='https://pyfound.blogspot.com/2018/12/evangelizing-python-in-africa-chukwudi_65.html' itemprop='url'/> <a class='timestamp-link' href='https://pyfound.blogspot.com/2018/12/evangelizing-python-in-africa-chukwudi_65.html' rel='bookmark' title='permanent link'><abbr class='published' itemprop='datePublished' title='2018-12-17T06:30:00-05:00'>12/17/2018 06:30:00 AM</abbr></a> </span> <span class='post-comment-link'> </span> <span class='post-icons'> <span class='item-control blog-admin pid-1298475288'> <a href='https://www.blogger.com/post-edit.g?blogID=8520&postID=8820700080279065993&from=pencil' title='Edit Post'> <img alt='' class='icon-action' height='18' src='https://resources.blogblog.com/img/icon18_edit_allbkg.gif' width='18'/> </a> </span> </span> <div class='post-share-buttons goog-inline-block'> </div> </div> <div class='post-footer-line post-footer-line-2'> <span class='post-labels'> </span> </div> <div class='post-footer-line post-footer-line-3'> <span class='post-location'> </span> </div> </div> </div> </div> </div></div> <div class="date-outer"> <h2 class='date-header'><span>Tuesday, December 11, 2018</span></h2> <div class="date-posts"> <div class='post-outer'> <div class='post hentry uncustomized-post-template' itemprop='blogPost' itemscope='itemscope' itemtype='http://schema.org/BlogPosting'> <meta content='https://2.bp.blogspot.com/-iSe40cq3Xcw/XA5FRx54FEI/AAAAAAABxiM/GMbwqbOVnMwoTtw_NymB-HWcdU2SBV8UQCLcBGAs/s320/43655770310_77bec2c598_k.jpg' itemprop='image_url'/> <meta content='8520' itemprop='blogId'/> <meta content='5363041041226613832' itemprop='postId'/> <a name='5363041041226613832'></a> <h3 class='post-title entry-title' itemprop='name'> <a href='https://pyfound.blogspot.com/2018/12/pyconza-2018-beautiful-community-in.html'>PyConZA 2018 &#8211; a beautiful community in South Africa</a> </h3> <div class='post-header'> <div class='post-header-line-1'></div> </div> <div class='post-body entry-content' id='post-body-5363041041226613832' itemprop='description articleBody'> This year I attended my second <a href="https://za.pycon.org/">PyConZA</a>, which is held in Johannesburg, South Africa. It is the annual gathering of the South African Python community that uses and develops the open source Python programming language. It's organized by the community for the community, fostering unique solutions to the challenges faced in Africa. For the curious: ZA stands for Zuid-Afrika, a Dutch abbreviation for South Africa.<br /> <br /> I keep coming back to South Africa to attend PyConZA. I am from Brazil but I struggle to resist a trip to South Africa to visit amazing friends, the beautiful mountains, beaches, wine farms, great food, safaris, and more.<br /> <br /> The South African conference, a conference ran entirely by a team of dedicated volunteers, reached its eighth edition this year. As an added success this year the conference reached an outstanding number of attendees.<br /> <br /> <h3> The Numbers</h3> Over five days &#8211; which included tutorials, main conference and sprints &#8211; the conference received 255 attendees, boasting 100% growth compared to the last time it was held in Johannesburg in 2015.<br /> <br /> The main event counted three simultaneous tracks &#8211; plus daily open space sessions. Collectively the conference had 41 speakers, 34 talks, 13 lightning talks and 3 keynotes. The Data Science and Typing tutorials gathered 36 people. Roughly 15 attendees with hacker spirits joined the sprints and ate pizza whilst working on various projects.<br /> <br /> <a href="http://womenintech.co.za/blog/">Women in Tech ZA</a> &amp; PyConZA gathered 13 attendees for their beginners friendly workshop "Python for Everyone".<br /> <br /> Sponsored by 11 entities &#8211; including companies such as Microsoft and Oracle &#8211; the event had&nbsp; &nbsp;lunch daily, a lounge with <i>really good coffee</i>, juices and mocktails &#8211; freshly made by professionals and available at all times &#8211; a speaker's dinner and lots of swag in the Birchwood Hotel Conference Center.<br /> <br /> If a Python conference wasn't enough, Johannesburg hosted at the same week and venue, <a href="https://linuxconf.co.za/">LinuxConf</a> and <a href="https://postgresconf.org/conferences/SouthAfrica2018">PostgresConf</a>, bringing in yet more attendees, diversity and people walking around with three different badges.<br /> <br /> <br /> <div class="separator" style="clear: both; text-align: center;"> <a href="https://2.bp.blogspot.com/-iSe40cq3Xcw/XA5FRx54FEI/AAAAAAABxiM/GMbwqbOVnMwoTtw_NymB-HWcdU2SBV8UQCLcBGAs/s1600/43655770310_77bec2c598_k.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1062" data-original-width="1600" height="212" src="https://2.bp.blogspot.com/-iSe40cq3Xcw/XA5FRx54FEI/AAAAAAABxiM/GMbwqbOVnMwoTtw_NymB-HWcdU2SBV8UQCLcBGAs/s320/43655770310_77bec2c598_k.jpg" width="320" /></a></div> <div class="separator" style="clear: both; text-align: center;"> <span style="text-align: start;"><i><span style="font-size: x-small;">Speakers photo &lt;3</span></i></span></div> <br /> <div class="separator" style="clear: both; text-align: center;"> <br /></div> <h3> Running a Conference Ain't Easy!</h3> Here is what the conference organizers had to say about this year's conference:<br /> <br /> David Sharpe, chair of the PyConZA 2017, said:<br /> <blockquote class="tr_bq"> <i>PyConZA is a conference made for the community and by the community. Getting people involved with it is relatively easy &#8211; getting people up to speed with how to run a conference is the hard part. The same team has been running the conference for the past seven years, and now our biggest challenge is to spread this knowledge and show other people the ropes, having redundancy in the committee and enabling PyConZA to move around the country more.</i></blockquote> <br /> Adam Piskorski, chair of this year&#8217;s edition, completed:<br /> <blockquote class="tr_bq"> <i>Finding volunteers and chasing sponsors has been especially difficult when most of the organizers are based in Cape Town &#8211; a city near the south most part of the country. For the next year, we want a larger conference with more optimized planning and execution.</i></blockquote> <br /> <h3> AfroDjango</h3> The talk "<a href="https://2018.za.pycon.org/talks/74-python-community-development-in-east-africa/">Python Community Development in East Africa</a>" is proof of how the Python programming language and community is changing the world's landscape and people's life.&nbsp; I&#8217;d encourage you to&nbsp; take 40 minutes of your time and watch this, it's inspirational.<br /> <br /> <a href="https://www.linkedin.com/in/joshua-kato-3b09966a">Joshua Kato</a> (PSF Python Ambassador in East Africa), <a href="https://twitter.com/linuswamanya">Linus Wamanya</a> and <a href="https://www.facebook.com/buwembo.murshid">Buwembo Murshid</a> showed us how they are empowering the community in East Africa through training and mentoring kids, students, and people with intellectual or physical disabilities and refugees.<br /> <br /> <a href="http://www.afrodjangoinitiative.org/">AfroDjango</a> already has trained more than 3000 people since 2015, from basic digital literacy to professional software development. Projects such as home automation, online learning platforms and an online market for hardware and sensors are being currently developed by their students.<br /> <br /> Today, AfroDjango has support from a variety of partners, including the PSF. All of this amazing work has been recognized as "Promoting ICT practical skills" by Uganda's Head of State.<br /> <br /> <h3> Financial Aid</h3> Financial assistance is provided for those who might otherwise not be able to attend the conference. Those potentially eligible were attendees with accepted talks, attendees from South Africa and other African countries (especially those from underprivileged backgrounds) and volunteers helping the conference.<br /> <br /> This year, PyConZA was able to provide an amount of R40.000 (about US$2.700) as financial aid for 7 attendees &#8211; 2 from South Africa, 3 from Mozambique, 1 from Nigeria and 1 from Uganda, 4 of them being women and 5 being speakers. The organizing team used a points system to reward speakers, giving priority to people from Africa and South Africa. They also wanted to choose people from disadvantaged backgrounds, but the committee mentioned it proved difficult to fairly ascertain that.<br /> <br /> <h3> The Video Team</h3> Another highlight shared by all three events was the video recording crew. Everything seemed magical and seamless. The video infrastructure organization was led by Carl Karsten, a really cool Pythonista wearing hawaiian shorts from Chicago, and the <a href="http://www.nextdayvideo.com/">Next Day Video</a> team.<br /> <br /> They were able to record and livestream three simultaneous tracks using open source software and even open source hardware. The recording interface was so simple that volunteers (including me) could help with the job after just a two minutes tutorial. On top of that, the videos were released on <a href="http://archive.org/">Archive.org</a> and <a href="https://www.youtube.com/playlist?list=PLGjWYNrNnSuc78h5x23A5mLAzWlCl9LGf">Youtube</a> in couple of <i>hours</i>, with minimal manual intervention.<br /> <br /> <h3> The Python Software Society of South Africa</h3> The PyConZA organizing committee created <a href="http://pss-sa.org/">PSSSA</a> &#8211; a non-profit organization &#8211; in May 2017. The objective is to support and grow the Python community and events across the country, as well as manage and run PyConZA.<br /> <br /> Today it's being used mainly as a legal and financial entity to support the conference infrastructure, but the plans are to spread its influence and facilitate Python groups throughout South Africa.<br /> <br /> <br /> <div class="separator" style="clear: both; text-align: center;"> <a href="https://4.bp.blogspot.com/-8ouEoZKpMAs/XA5FR4RhqqI/AAAAAAABxiI/Ua7WCIj0gugMXOvwjMesPfHNCNUADrJ8QCLcBGAs/s1600/44558817075_8c16d6f509_k.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em; text-align: center;"><img border="0" data-original-height="1062" data-original-width="1600" height="212" src="https://4.bp.blogspot.com/-8ouEoZKpMAs/XA5FR4RhqqI/AAAAAAABxiI/Ua7WCIj0gugMXOvwjMesPfHNCNUADrJ8QCLcBGAs/s320/44558817075_8c16d6f509_k.jpg" width="320" /></a></div> <div style="text-align: center;"> <span style="font-size: x-small;"><i>PyConZA is awesome!</i></span></div> <div> <br /></div> <br /> I'd like to say thanks to the PyConZA organizing committee for helping me gather all the information necessary to put this article together. It is always a pleasure to hang out with you folks.<br /> <br /> PyConZA 2019 is expected to be hosted once again in Johannesburg, in October 2019. I hope to see you there!<br /> <div> <br /></div> <div style='clear: both;'></div> </div> <div class='post-footer'> <div class='post-footer-line post-footer-line-1'> <span class='post-author vcard'> Posted by <span class='fn' itemprop='author' itemscope='itemscope' itemtype='http://schema.org/Person'> <span itemprop='name'>Anonymous</span> </span> </span> <span class='post-timestamp'> at <meta content='https://pyfound.blogspot.com/2018/12/pyconza-2018-beautiful-community-in.html' itemprop='url'/> <a class='timestamp-link' href='https://pyfound.blogspot.com/2018/12/pyconza-2018-beautiful-community-in.html' rel='bookmark' title='permanent link'><abbr class='published' itemprop='datePublished' title='2018-12-11T10:46:00-05:00'>12/11/2018 10:46:00 AM</abbr></a> </span> <span class='post-comment-link'> </span> <span class='post-icons'> <span class='item-control blog-admin pid-1051695758'> <a href='https://www.blogger.com/post-edit.g?blogID=8520&postID=5363041041226613832&from=pencil' title='Edit Post'> <img alt='' class='icon-action' height='18' src='https://resources.blogblog.com/img/icon18_edit_allbkg.gif' width='18'/> </a> </span> </span> <div class='post-share-buttons goog-inline-block'> </div> </div> <div class='post-footer-line post-footer-line-2'> <span class='post-labels'> </span> </div> <div class='post-footer-line post-footer-line-3'> <span class='post-location'> </span> </div> </div> </div> </div> </div></div> <div class="date-outer"> <h2 class='date-header'><span>Monday, December 03, 2018</span></h2> <div class="date-posts"> <div class='post-outer'> <div class='post hentry uncustomized-post-template' itemprop='blogPost' itemscope='itemscope' itemtype='http://schema.org/BlogPosting'> <meta content='8520' itemprop='blogId'/> <meta content='8267985285535480145' itemprop='postId'/> <a name='8267985285535480145'></a> <h3 class='post-title entry-title' itemprop='name'> <a href='https://pyfound.blogspot.com/2018/12/november-2018-board-meeting-summary.html'>November 2018 board meeting summary</a> </h3> <div class='post-header'> <div class='post-header-line-1'></div> </div> <div class='post-body entry-content' id='post-body-8267985285535480145' itemprop='description articleBody'> On November 12th and 13th, ten of the thirteen PSF board members convened in Chicago, IL. Those who could not make it to the in-person meeting, joined via phone conferencing when possible.<br /> <br /> In attendance were Naomi Ceder, Jacqueline Kazil, Thomas Wouters, Van Lindberg, Ewa Jodlowska, Lorena Mesa, Eric Holscher, Anna Ossowski, Christopher Neugebauer, and Jeff Triplett. Kushal Das and Marlene Mhangami connected remotely. <br /> <br /> In continued efforts to be transparent with our community, we wanted to share what we discussed and what actions will be taken next.<br /> <br /> <div> <h2> Fundraising</h2> <br /> The first discussion we had pertained to directors' involvement in fundraising.<br /> <br /> <h4> What is being addressed?</h4> <br /> It is common for non-profit board members to help raise resources via their various networks. In the past, our board hasn&#8217;t been very active in this area, and we&#8217;d like to change that going forward.<br /> <br /> <h4> What are the next steps?</h4> <br /> During the meeting, we created two board committees to get directors more involved in the fundraising process:<br /> <ul> <li>Fundraising committee: This committee will be focused on incoming sponsorships and donations. Even though this is a responsibility all directors will work on, this committee will help move things forward and provide the resources that other directors need to help with this role.</li> <li>Outreach committee: This committee will decide if/how PSF funds will be used to help promote the PSF globally (this would be in addition to funds given via a grant/sponsorship). This group will also assist with creating resources for directors to use when attending an event to represent the PSF.</li> </ul> <div> <br /></div> <h2> Code of Conduct</h2> <br /> Since the Code of Conduct&#8217;s creation in 2013, the PSF has not updated nor worked on any related resources for our community to use outside of PyCon. <br /> <br /> To better support our community, in the third quarter of 2017, the PSF created the Code of Conduct Work Group (<a href="https://wiki.python.org/psf/ConductWG/Charter">https://wiki.python.org/psf/ConductWG/Charter</a>). The purpose of this work group is to:<br /> <ol> <li>Review, revise, and advise on policies relating to the PSF code of conducts and other communities that the PSF supports. This includes any #python chat community &amp; python.org email list under PSF jurisdiction.</li> <li>Create a standard set of Codes of Conduct and supporting documents for multiple channels of interaction such as, but not limited to, conferences, mailing lists, slack/IRC, code repositories, and more.</li> <li>Develop training materials and other processes to support Python community organizers in implementing and enforcing the Code of Conduct.</li> </ol> <h4> What is being addressed?</h4> <br /> At our November meeting, the board discussed certain risk exposure that was brought to our attention. This discussion is still ongoing and as soon as there is a resolution for moving forward, we will work together with the Code of Conduct Work Group to update the community.<br /> <br /></div> <div> <h2> Python in Education</h2> <h4> <br /></h4> <h4> What is being addressed?</h4> At PyCon 2018, one of the directors hosted an open space about Python in Education. The goal was to hear from attendees how the PSF can help educators with any obstacles they face with introducing Python into their curriculums. Lot of data points were collected and needed to be discussed.<br /> <br /> <h4> What are the next steps?</h4> The board directors created a Python in Education group. This group will facilitate ways the PSF can use its resources to improve the way we support educators with introducing Python into their curriculums. <br /> <br /> The first goal will be to curate impactful and proven open source material that educators can use globally. The group will write up a request for proposal, decide on a budget that will be allocated to accepted proposals, and market it to our community. Our intended timeline is to launch the RFP by the new year and have the deadline be before PyCon. At PyCon, we will announce accepted proposals so the work can be done during the third quarter of 2019.<br /> <br /></div> <div> <h2> Finance Committee</h2> <br /> As the PSF continues to grow, we have to make sure that operationally we are efficient and effective, especially when it comes to our finances.<br /> <br /> <h4> What is being addressed?</h4> For every non-profit board, a major responsibility is to ensure that there is a group to monitor the organization&#8217;s overall financial health. Prior to now, the PSF has not had a board finance committee.<br /> <br /> <h4> What are the next steps?</h4> During the meeting, we created a committee that the Director of Operations and Finance Controller will report to. To start, the group will meet quarterly. Their goals will be to:<br /> <ul> <li>Oversee financial planning (PSF &amp; PyCon budgets)</li> <li>Monitor that adequate funds are available for financial management tasks</li> <li>Ensure that assets are protected</li> <li>Draft organizational fiscal policies&nbsp;</li> <li>Anticipate financial problems from external fiscal environments</li> <li>Oversee financial record keeping</li> <li>Relay financial health to the rest of the board</li> <li>Ensure all legal reporting requirements are met</li> <li>Sustain the financial committee itself by training and recruiting subsequent board members</li> </ul> <div> <br /></div> </div> <div> <h2> PyCon Trademark</h2> <h4> <br /></h4> <h4> What is being addressed?</h4> At our meeting in May 2018, the board directors decided that the PSF needs to improve the way we monitor the PyCon trademark. The main reason behind this decision is to protect the mark by being able to prove that we are monitoring its use, which will help avoid certain legal challenges. Additionally, it will help us ensure that all PyCons are up to community standards: Python focused, non-commercial, and have actionable code of conducts.<br /> <br /> The process has not yet been fully implemented.<br /> <br /> <h4> What are the next steps?</h4> The board directors will revive the discussion with the PSF&#8217;s trademark committee. The goal is to find common ground on how the process will work. Afterwards, we will work on full transparency with the community via blogs and a message on pycon.org.<br /> <br /></div> <div> <h2> Diversity Tracking</h2> <br /> Even though this topic was not on our initial agenda, we wanted to talk about this if time allowed. We got lucky and were able to sneak it in!<br /> <br /> <h4> What is being addressed?</h4> Our grants program currently does not require any tracking or reporting for diversity grants. Nor does the PSF have a policy for expectations of diversity grants. Since we want to see that the funding we give towards diversity is impactful, we wanted to discuss options for what we can do.<br /> <br /> <h4> What are the next steps?</h4> We will work on a policy for diversity grants that ask organizers to collect relevant diversity statistics. In addition to that, the PSF will work on a template survey so conferences can have a starting point in order to lessen the burden on volunteer organizers. Once a template and policy is in place, we will market the resource via relevant mailing lists, communication chats, and the Grants Program page.<br /> <br /></div> <div> <h2> Python Governance and Core Development</h2> <span style="font-size: small; font-weight: normal;"><br /></span> <span style="font-size: small; font-weight: normal;">Python has recently seen the resignation of its BDFL, Guido van Rossum. This encouraged the core developers to rethink the governance of Python. Several governance proposals were created in the forms of PEPs, which the core developers will be <a href="https://www.python.org/dev/peps/pep-8001/" target="_blank">voting</a> December 1st, 2018 to December 16th, 2018 (Anywhere on Earth).</span><br /> <br /> Even though the board is not currently involved with core development, we did discuss what has been developing with the governance discussions. We reflected on some of the discussions happening on discuss.python.org. We discussed the various PEPs such as PEP 8001, which is about the Python Governance Voting Process. We also discussed what the directors thought about the proposals for Python governance such as PEP <a href="https://www.python.org/dev/peps/pep-8010/" target="_blank">8010</a>, <a href="https://www.python.org/dev/peps/pep-8011/" target="_blank">8011</a>, <a href="https://www.python.org/dev/peps/pep-8012/" target="_blank">8012</a>, <a href="https://www.python.org/dev/peps/pep-8013/" target="_blank">8013</a>, <a href="https://www.python.org/dev/peps/pep-8014/" target="_blank">8014</a>, <a href="https://www.python.org/dev/peps/pep-8015/" target="_blank">8015</a>, <a href="https://www.python.org/dev/peps/pep-8016/" target="_blank">8016</a>.<br /> <br /> <h2> What&#8217;s next?</h2> <div> <br /></div> Working across the table from one another was motivational and acted as a catalyst for several initiatives. It gave us the opportunity to have in-depth conversations, establish stronger professional relationships, and create actionable tasks to help move initiatives forward beyond the two-day meeting. <br /> <br /> We plan to host more 24-hour chat channels throughout 2019. They give us the chance to hear from community members world wide. Additionally, we will have our next in-person board meeting at PyCon 2019 on May 2nd. We look forward to updating you all on our progress then.<br /> <br /> It is important for us to know that the PSF Board is inline with our community&#8217;s needs. If you have comments or suggestions on what was recently discussed or something completely new, please reach out to me: ewa at python dot org. </div> <div style='clear: both;'></div> </div> <div class='post-footer'> <div class='post-footer-line post-footer-line-1'> <span class='post-author vcard'> Posted by <span class='fn' itemprop='author' itemscope='itemscope' itemtype='http://schema.org/Person'> <meta content='https://www.blogger.com/profile/18334325508115717169' itemprop='url'/> <a class='g-profile' href='https://www.blogger.com/profile/18334325508115717169' rel='author' title='author profile'> <span itemprop='name'>Ewa Jodlowska</span> </a> </span> </span> <span class='post-timestamp'> at <meta content='https://pyfound.blogspot.com/2018/12/november-2018-board-meeting-summary.html' itemprop='url'/> <a class='timestamp-link' href='https://pyfound.blogspot.com/2018/12/november-2018-board-meeting-summary.html' rel='bookmark' title='permanent link'><abbr class='published' itemprop='datePublished' title='2018-12-03T15:02:00-05:00'>12/03/2018 03:02:00 PM</abbr></a> </span> <span class='post-comment-link'> </span> <span class='post-icons'> <span class='item-control blog-admin pid-771879458'> <a href='https://www.blogger.com/post-edit.g?blogID=8520&postID=8267985285535480145&from=pencil' title='Edit Post'> <img alt='' class='icon-action' height='18' src='https://resources.blogblog.com/img/icon18_edit_allbkg.gif' width='18'/> </a> </span> </span> <div class='post-share-buttons goog-inline-block'> </div> </div> <div class='post-footer-line post-footer-line-2'> <span class='post-labels'> </span> </div> <div class='post-footer-line post-footer-line-3'> <span class='post-location'> </span> </div> </div> </div> </div> </div></div> <div class="date-outer"> <h2 class='date-header'><span>Monday, November 19, 2018</span></h2> <div class="date-posts"> <div class='post-outer'> <div class='post hentry uncustomized-post-template' itemprop='blogPost' itemscope='itemscope' itemtype='http://schema.org/BlogPosting'> <meta content='8520' itemprop='blogId'/> <meta content='7942081304140852083' itemprop='postId'/> <a name='7942081304140852083'></a> <h3 class='post-title entry-title' itemprop='name'> <a href='https://pyfound.blogspot.com/2018/11/pypi-security-and-accessibility-q1-2019.html'>PyPI Security and Accessibility Q1 2019 Request for Proposals period opens.</a> </h3> <div class='post-header'> <div class='post-header-line-1'></div> </div> <div class='post-body entry-content' id='post-body-7942081304140852083' itemprop='description articleBody'> <span style="background-color: white; font-family: &quot;helvetica&quot; , &quot;arial&quot; , sans-serif; font-size: 14px;">The</span><span style="background-color: white; font-family: &quot;helvetica&quot; , &quot;arial&quot; , sans-serif; font-size: 14px;">&nbsp;</span><a href="https://python.org/psf-landing" style="-webkit-print-color-adjust: exact; background-color: white; color: #4183c4; font-family: Helvetica, arial, sans-serif; font-size: 14px;">Python Software Foundation</a><span style="background-color: white; font-family: &quot;helvetica&quot; , &quot;arial&quot; , sans-serif; font-size: 14px;">&nbsp;</span><a href="https://www.python.org/psf/committees/#packaging-work-group" style="-webkit-print-color-adjust: exact; background-color: white; color: #4183c4; font-family: Helvetica, arial, sans-serif; font-size: 14px;">Packaging Working Group</a><span style="background-color: white; font-family: &quot;helvetica&quot; , &quot;arial&quot; , sans-serif; font-size: 14px;">&nbsp;</span><span style="background-color: white; font-family: &quot;helvetica&quot; , &quot;arial&quot; , sans-serif; font-size: 14px;">has applied for and received a commitment from the</span><span style="background-color: white; font-family: &quot;helvetica&quot; , &quot;arial&quot; , sans-serif; font-size: 14px;">&nbsp;</span><a href="https://www.opentech.fund/" style="-webkit-print-color-adjust: exact; background-color: white; color: #4183c4; font-family: Helvetica, arial, sans-serif; font-size: 14px;">Open Technology Fund</a><span style="background-color: white; font-family: &quot;helvetica&quot; , &quot;arial&quot; , sans-serif; font-size: 14px;">&nbsp;</span><span style="background-color: white; font-family: &quot;helvetica&quot; , &quot;arial&quot; , sans-serif; font-size: 14px;">to fulfill a contract via their</span><span style="background-color: white; font-family: &quot;helvetica&quot; , &quot;arial&quot; , sans-serif; font-size: 14px;">&nbsp;</span><a href="https://www.opentech.fund/funds/core-infrastructure-fund/" style="-webkit-print-color-adjust: exact; background-color: white; color: #4183c4; font-family: Helvetica, arial, sans-serif; font-size: 14px;">Core Infrastructure Fund</a><span style="background-color: white; font-family: &quot;helvetica&quot; , &quot;arial&quot; , sans-serif; font-size: 14px;">.</span><br /> <div style="-webkit-print-color-adjust: exact; background-color: white; font-family: Helvetica, arial, sans-serif; font-size: 14px; margin-bottom: 15px; margin-top: 15px;"> The&nbsp;<a href="https://pypi.org/" style="-webkit-print-color-adjust: exact; color: #4183c4;">Python Package Index (PyPI)</a>&nbsp;is a foundational component of the&nbsp;<a href="https://python.org/" style="-webkit-print-color-adjust: exact; color: #4183c4;">Python</a>&nbsp;ecosystem and broader computer software and technology landscape. This project aims to improve the security and accessibility of PyPI for all users worldwide, whether they are direct users, like project maintainers and&nbsp;<a href="https://pip.pypa.io/en/stable/" style="-webkit-print-color-adjust: exact; color: #4183c4;"><code style="-webkit-print-color-adjust: exact; background-color: #f8f8f8; border-bottom-left-radius: 3px; border-bottom-right-radius: 3px; border-top-left-radius: 3px; border-top-right-radius: 3px; border: 1px solid rgb(234, 234, 234); margin: 0px 2px; padding: 0px 5px; white-space: nowrap;">pip install</code></a>ers, or indirect users. The impact of this work will be highly visible and improve crucial features of the service.</div> <div style="-webkit-print-color-adjust: exact; background-color: white; font-family: Helvetica, arial, sans-serif; font-size: 14px; margin-bottom: 15px; margin-top: 15px;"> We plan to begin the project in January 2019. Because of the size of the project, funding has been allocated to secure one or more contractors to complete the development, testing, verification, and assist in the rollout of necessary features.</div> <h2 id="toc_1" style="-webkit-font-smoothing: antialiased; -webkit-print-color-adjust: exact; background-color: white; border-bottom-color: rgb(204, 204, 204); border-bottom-style: solid; border-bottom-width: 1px; cursor: text; font-family: Helvetica, arial, sans-serif; font-size: 24px; margin: 20px 0px 10px; padding: 0px; position: relative;"> Timeline</h2> <table style="-webkit-print-color-adjust: exact; background-color: white; border-collapse: collapse; color: black; font-family: Helvetica, arial, sans-serif; font-size: 14px; margin: 15px 0px; padding: 0px;"><thead style="-webkit-print-color-adjust: exact;"> <tr style="-webkit-print-color-adjust: exact; border-top-color: rgb(204, 204, 204); border-top-style: solid; border-top-width: 1px; margin: 0px; padding: 0px;"><th style="-webkit-print-color-adjust: exact; border: 1px solid rgb(204, 204, 204); margin: 0px; padding: 6px 13px;">Date</th><th style="-webkit-print-color-adjust: exact; border: 1px solid rgb(204, 204, 204); margin: 0px; padding: 6px 13px;">Milestone</th></tr> </thead><tbody style="-webkit-print-color-adjust: exact;"> <tr style="-webkit-print-color-adjust: exact; border-top-color: rgb(204, 204, 204); border-top-style: solid; border-top-width: 1px; margin: 0px; padding: 0px;"><td style="-webkit-print-color-adjust: exact; border: 1px solid rgb(204, 204, 204); margin: 0px; padding: 6px 13px;">2018-11-19</td><td style="-webkit-print-color-adjust: exact; border: 1px solid rgb(204, 204, 204); margin: 0px; padding: 6px 13px;">Request for Proposal period opens.</td></tr> <tr style="-webkit-print-color-adjust: exact; background-color: #f8f8f8; border-top-color: rgb(204, 204, 204); border-top-style: solid; border-top-width: 1px; margin: 0px; padding: 0px;"><td style="-webkit-print-color-adjust: exact; border: 1px solid rgb(204, 204, 204); margin: 0px; padding: 6px 13px;">2018-12-14</td><td style="-webkit-print-color-adjust: exact; border: 1px solid rgb(204, 204, 204); margin: 0px; padding: 6px 13px;">Request for Proposal period closes.</td></tr> <tr style="-webkit-print-color-adjust: exact; border-top-color: rgb(204, 204, 204); border-top-style: solid; border-top-width: 1px; margin: 0px; padding: 0px;"><td style="-webkit-print-color-adjust: exact; border: 1px solid rgb(204, 204, 204); margin: 0px; padding: 6px 13px;">2018-12-21</td><td style="-webkit-print-color-adjust: exact; border: 1px solid rgb(204, 204, 204); margin: 0px; padding: 6px 13px;">Date proposals will have received a decision.</td></tr> <tr style="-webkit-print-color-adjust: exact; background-color: #f8f8f8; border-top-color: rgb(204, 204, 204); border-top-style: solid; border-top-width: 1px; margin: 0px; padding: 0px;"><td style="-webkit-print-color-adjust: exact; border: 1px solid rgb(204, 204, 204); margin: 0px; padding: 6px 13px;">2019-Q1</td><td style="-webkit-print-color-adjust: exact; border: 1px solid rgb(204, 204, 204); margin: 0px; padding: 6px 13px;">Contract work commences.</td></tr> </tbody></table> <h2 id="toc_2" style="-webkit-font-smoothing: antialiased; -webkit-print-color-adjust: exact; background-color: white; border-bottom-color: rgb(204, 204, 204); border-bottom-style: solid; border-bottom-width: 1px; cursor: text; font-family: Helvetica, arial, sans-serif; font-size: 24px; margin: 20px 0px 10px; padding: 0px; position: relative;"> What is the Request for Proposals period?</h2> <div style="-webkit-print-color-adjust: exact; background-color: white; font-family: Helvetica, arial, sans-serif; font-size: 14px; margin-bottom: 15px; margin-top: 15px;"> A Request for Proposal (RFP) is a process intended to allow us (The Python Software Foundation) to collect proposals from potential contractors and select contractor(s) best suited to fulfill the specified work.</div> <div style="-webkit-print-color-adjust: exact; background-color: white; font-family: Helvetica, arial, sans-serif; font-size: 14px; margin-bottom: 15px; margin-top: 15px;"> After the RFP period closes we will evaluate the received proposals based on the evaluation criteria, seek clarification from proposers as necessary, and select one or more contractors to complete the work specified in the scope.</div> <div style="-webkit-print-color-adjust: exact; background-color: white; font-family: Helvetica, arial, sans-serif; font-size: 14px; margin-bottom: 15px; margin-top: 15px;"> The Request for Proposals period opens today, November 19th, 2018, and is scheduled to close&nbsp;<span style="-webkit-print-color-adjust: exact;"><b>December 15, 2018&nbsp;</b><a href="https://www.timeanddate.com/time/zones/aoe" style="-webkit-print-color-adjust: exact; color: #4183c4; font-weight: bold;">AoE</a>.</span></div> <h2 id="toc_3" style="-webkit-font-smoothing: antialiased; -webkit-print-color-adjust: exact; background-color: white; border-bottom-color: rgb(204, 204, 204); border-bottom-style: solid; border-bottom-width: 1px; cursor: text; font-family: Helvetica, arial, sans-serif; font-size: 24px; margin: 20px 0px 10px; padding: 0px; position: relative;"> How do I submit a proposal?</h2> <div style="-webkit-print-color-adjust: exact; background-color: white; font-family: Helvetica, arial, sans-serif; font-size: 14px; margin-bottom: 15px; margin-top: 15px;"> First, please read the full contents of the Request for Proposals <a href="https://github.com/python/request-for/blob/master/2019-Q1-PyPI/RFP.md" target="_blank">here</a>!</div> <div style="-webkit-print-color-adjust: exact; background-color: white; font-family: Helvetica, arial, sans-serif; font-size: 14px; margin-bottom: 15px; margin-top: 15px;"> You'll find the <a href="https://github.com/python/request-for/blob/master/2019-Q1-PyPI/RFP.md#how-do-i-submit-a-proposal" target="_blank">instructions for submission</a>, <a href="https://github.com/python/request-for/blob/master/2019-Q1-PyPI/RFP.md#evaluation-criteria" target="_blank">evaluation criteria</a>, as well as scope of the project there.</div> <div style='clear: both;'></div> </div> <div class='post-footer'> <div class='post-footer-line post-footer-line-1'> <span class='post-author vcard'> Posted by <span class='fn' itemprop='author' itemscope='itemscope' itemtype='http://schema.org/Person'> <meta content='https://www.blogger.com/profile/13577459520968677064' itemprop='url'/> <a class='g-profile' href='https://www.blogger.com/profile/13577459520968677064' rel='author' title='author profile'> <span itemprop='name'>Ee Durbin</span> </a> </span> </span> <span class='post-timestamp'> at <meta content='https://pyfound.blogspot.com/2018/11/pypi-security-and-accessibility-q1-2019.html' itemprop='url'/> <a class='timestamp-link' href='https://pyfound.blogspot.com/2018/11/pypi-security-and-accessibility-q1-2019.html' rel='bookmark' title='permanent link'><abbr class='published' itemprop='datePublished' title='2018-11-19T16:03:00-05:00'>11/19/2018 04:03:00 PM</abbr></a> </span> <span class='post-comment-link'> </span> <span class='post-icons'> <span class='item-control blog-admin pid-312150102'> <a href='https://www.blogger.com/post-edit.g?blogID=8520&postID=7942081304140852083&from=pencil' title='Edit Post'> <img alt='' class='icon-action' height='18' src='https://resources.blogblog.com/img/icon18_edit_allbkg.gif' width='18'/> </a> </span> </span> <div class='post-share-buttons goog-inline-block'> </div> </div> <div class='post-footer-line post-footer-line-2'> <span class='post-labels'> Labels: <a href='https://pyfound.blogspot.com/search/label/pypi' rel='tag'>pypi</a> </span> </div> <div class='post-footer-line post-footer-line-3'> <span class='post-location'> </span> </div> </div> </div> </div> </div></div> <div class="date-outer"> <h2 class='date-header'><span>Tuesday, October 30, 2018</span></h2> <div class="date-posts"> <div class='post-outer'> <div class='post hentry uncustomized-post-template' itemprop='blogPost' itemscope='itemscope' itemtype='http://schema.org/BlogPosting'> <meta content='8520' itemprop='blogId'/> <meta content='6543402325891168754' itemprop='postId'/> <a name='6543402325891168754'></a> <h3 class='post-title entry-title' itemprop='name'> <a href='https://pyfound.blogspot.com/2018/10/pypi-security-and-accessibility-q1-2019.html'>PyPI Security and Accessibility Q1 2019 Request for Information period opens.</a> </h3> <div class='post-header'> <div class='post-header-line-1'></div> </div> <div class='post-body entry-content' id='post-body-6543402325891168754' itemprop='description articleBody'> <div style="-webkit-print-color-adjust: exact; background-color: white; font-family: Helvetica, arial, sans-serif; font-size: 14px; margin-bottom: 15px; margin-top: 15px;"> The&nbsp;<a href="https://python.org/psf-landing" style="-webkit-print-color-adjust: exact; color: #4183c4;">Python Software Foundation</a>&nbsp;<a href="https://www.python.org/psf/committees/#packaging-work-group" style="-webkit-print-color-adjust: exact; color: #4183c4;">Packaging Working Group</a>&nbsp;has applied for and received a commitment from the&nbsp;<a href="https://www.opentech.fund/" style="-webkit-print-color-adjust: exact; color: #4183c4;">Open Technology Fund</a>&nbsp;to fulfill a contract for their&nbsp;<a href="https://www.opentech.fund/funds/core-infrastructure-fund/" style="-webkit-print-color-adjust: exact; color: #4183c4;">Core Infrastructure Fund</a>.</div> <div style="-webkit-print-color-adjust: exact; background-color: white; font-family: Helvetica, arial, sans-serif; font-size: 14px; margin-bottom: 15px; margin-top: 15px;"> <a href="https://pypi.org/" style="-webkit-print-color-adjust: exact; color: #4183c4;">PyPI</a>&nbsp;is a foundational component of the&nbsp;<a href="https://python.org/" style="-webkit-print-color-adjust: exact; color: #4183c4;">Python</a>&nbsp;ecosystem and broader computer software and technology landscape. This project aims to improve the security and accessibility of PyPI for all users worldwide, whether they are direct users like project maintainers and&nbsp;<a href="https://pip.pypa.io/en/stable/" style="-webkit-print-color-adjust: exact; color: #4183c4;"><code style="-webkit-print-color-adjust: exact; background-color: #f8f8f8; border-bottom-left-radius: 3px; border-bottom-right-radius: 3px; border-top-left-radius: 3px; border-top-right-radius: 3px; border: 1px solid rgb(234, 234, 234); margin: 0px 2px; padding: 0px 5px; white-space: nowrap;">pip install</code></a>ers or indirect users. The impact of this work will be highly visible and improve crucial features of the service.</div> <div style="-webkit-print-color-adjust: exact; background-color: white; font-family: Helvetica, arial, sans-serif; font-size: 14px; margin-bottom: 15px; margin-top: 15px;"> We plan to begin the project in January 2019. Because of the size of the project, funding has been allocated to secure one or more contractors to complete the development, testing, verification, and assist in the rollout of necessary features.</div> <div style="-webkit-print-color-adjust: exact; background-color: white; font-family: Helvetica, arial, sans-serif; font-size: 14px; margin-bottom: 15px; margin-top: 15px;"> <span style="font-size: 18px;">Register Interest</span></div> <div style="-webkit-print-color-adjust: exact; background-color: white; font-family: Helvetica, arial, sans-serif; font-size: 14px; margin-bottom: 15px; margin-top: 15px;"> To receive notification when our Request for Information period closes and the Request for Proposals period opens, please&nbsp;<a href="https://goo.gl/forms/Jx5aXUhwSgzqjGtl2" style="-webkit-print-color-adjust: exact; color: #4183c4;">register your interest here</a>.</div> <h2 id="toc_3" style="-webkit-font-smoothing: antialiased; -webkit-print-color-adjust: exact; background-color: white; border-bottom-color: rgb(204, 204, 204); border-bottom-style: solid; border-bottom-width: 1px; cursor: text; font-family: Helvetica, arial, sans-serif; font-size: 24px; margin: 20px 0px 10px; padding: 0px; position: relative;"> What is the Request for Information period?</h2> <div style="-webkit-print-color-adjust: exact; background-color: white; font-family: Helvetica, arial, sans-serif; font-size: 14px; margin-bottom: 15px; margin-top: 15px;"> A Request for Information (RFI) is a process intended to allow us (The Python Software Foundation) and potential contractors to openly share information to improve the scope and definition of the project at hand.</div> <div style="-webkit-print-color-adjust: exact; background-color: white; font-family: Helvetica, arial, sans-serif; font-size: 14px; margin-bottom: 15px; margin-top: 15px;"> We hope that it will help potential contractors better understand the work to be completed and develop better specified proposals. Additionally we hope that the open nature of our RFI will expose the project to multiple perspectives and potentially help shape the direction for some choices in the project.</div> <div style="-webkit-print-color-adjust: exact; background-color: white; font-family: Helvetica, arial, sans-serif; font-size: 14px; margin-bottom: 15px; margin-top: 15px;"> The Request for Information period opens today, October 30, 2018, and is scheduled to close <b>November 13, 2018</b>.</div> <div style="-webkit-print-color-adjust: exact; background-color: white; font-family: Helvetica, arial, sans-serif; font-size: 14px; margin-bottom: 15px; margin-top: 15px;"> After the RFI period closes, we will use the results of the process to prepare and open a Request for Proposals to solicit proposals from contractors to complete the work.</div> <h2 id="toc_25" style="-webkit-font-smoothing: antialiased; -webkit-print-color-adjust: exact; background-color: white; border-bottom-color: rgb(204, 204, 204); border-bottom-style: solid; border-bottom-width: 1px; cursor: text; font-family: Helvetica, arial, sans-serif; font-size: 24px; margin: 20px 0px 10px; padding: 0px; position: relative;"> More Information</h2> <div style="-webkit-print-color-adjust: exact; background-color: white; font-family: Helvetica, arial, sans-serif; font-size: 14px; margin-bottom: 15px; margin-top: 15px;"> The full version of our Request for Information document can be found&nbsp;<a href="https://github.com/python/request-for/blob/master/2019-Q1-PyPI/RFI.md" style="-webkit-print-color-adjust: exact; color: #4183c4;">here</a>.</div> <h2 id="toc_25" style="-webkit-font-smoothing: antialiased; -webkit-print-color-adjust: exact; background-color: white; border-bottom-color: rgb(204, 204, 204); border-bottom-style: solid; border-bottom-width: 1px; cursor: text; font-family: Helvetica, arial, sans-serif; font-size: 24px; margin: 20px 0px 10px; padding: 0px; position: relative;"> Participate!</h2> <div style="-webkit-print-color-adjust: exact; background-color: white; font-family: Helvetica, arial, sans-serif; font-size: 14px; margin-bottom: 15px; margin-top: 15px;"> Our RFI will be conducted on the&nbsp;<a href="https://discuss.python.org/c/python-software-foundation/psf-pypi-rfi-q1-2019" style="-webkit-print-color-adjust: exact; color: #4183c4;">Python Community Discussion Forum</a>. Participants will need to create an account in order to propose new topics of discussion or respond to existing topics.</div> <div style="-webkit-print-color-adjust: exact; background-color: white; font-family: Helvetica, arial, sans-serif; font-size: 14px; margin-bottom: 15px; margin-top: 15px;"> All discussions will remain public and available for review by potential proposal authors who do not wish to or cannot create an account to participate directly.</div> <div style='clear: both;'></div> </div> <div class='post-footer'> <div class='post-footer-line post-footer-line-1'> <span class='post-author vcard'> Posted by <span class='fn' itemprop='author' itemscope='itemscope' itemtype='http://schema.org/Person'> <meta content='https://www.blogger.com/profile/13577459520968677064' itemprop='url'/> <a class='g-profile' href='https://www.blogger.com/profile/13577459520968677064' rel='author' title='author profile'> <span itemprop='name'>Ee Durbin</span> </a> </span> </span> <span class='post-timestamp'> at <meta content='https://pyfound.blogspot.com/2018/10/pypi-security-and-accessibility-q1-2019.html' itemprop='url'/> <a class='timestamp-link' href='https://pyfound.blogspot.com/2018/10/pypi-security-and-accessibility-q1-2019.html' rel='bookmark' title='permanent link'><abbr class='published' itemprop='datePublished' title='2018-10-30T09:53:00-04:00'>10/30/2018 09:53:00 AM</abbr></a> </span> <span class='post-comment-link'> </span> <span class='post-icons'> <span class='item-control blog-admin pid-312150102'> <a href='https://www.blogger.com/post-edit.g?blogID=8520&postID=6543402325891168754&from=pencil' title='Edit Post'> <img alt='' class='icon-action' height='18' src='https://resources.blogblog.com/img/icon18_edit_allbkg.gif' width='18'/> </a> </span> </span> <div class='post-share-buttons goog-inline-block'> </div> </div> <div class='post-footer-line post-footer-line-2'> <span class='post-labels'> Labels: <a href='https://pyfound.blogspot.com/search/label/pypi' rel='tag'>pypi</a> </span> </div> <div class='post-footer-line post-footer-line-3'> <span class='post-location'> </span> </div> </div> </div> </div> </div></div> <div class="date-outer"> <h2 class='date-header'><span>Monday, October 22, 2018</span></h2> <div class="date-posts"> <div class='post-outer'> <div class='post hentry uncustomized-post-template' itemprop='blogPost' itemscope='itemscope' itemtype='http://schema.org/BlogPosting'> <meta content='8520' itemprop='blogId'/> <meta content='7633257640353103460' itemprop='postId'/> <a name='7633257640353103460'></a> <h3 class='post-title entry-title' itemprop='name'> <a href='https://pyfound.blogspot.com/2018/10/2018-psf-recurring-giving-campaign.html'>2018 PSF Recurring Giving Campaign</a> </h3> <div class='post-header'> <div class='post-header-line-1'></div> </div> <div class='post-body entry-content' id='post-body-7633257640353103460' itemprop='description articleBody'> The PSF is launching an end-of-year fundraising drive to build a sustainable community of supporters. Our goal is to raise $30,000! You can help by signing up to give monthly or if you&#8217;re already a supporting member (Thank You!!), by checking the box to renew your membership automatically.<br /> <br /> The drive begins October 22 and concludes November 21, 2018.<br /> <br /> <b><u>Your donations have IMPACT</u></b><br /> <br /> Over $118,543 was awarded in financial aid to 143 PyCon attendees in 2018.<br /> $240,000 has been paid in grants from January through September 2018 to recipients in 45 different countries.<br /> <br /> Some examples of how your donation dollars are spent:<br /> <br /> <ul><li>$35,000 was provided to the Python Core Development Sprint in 2018</li> <li>$20,000 helps support 11 Python conferences, impacting over&nbsp; 3,000 people globally</li> <li>$20,000 helps support ~25 hands-on workshops impacting over 700 people&nbsp;</li> <li>$10,000 supports user group meetup fees for 150 groups for 6 months</li> <li>$5,000 provides hosting for 3-4 PSF community web services for a year(e.g. Mail.python.org, uspycon.org, wiki.python.org)</li> <li>$1,000 helps supports 2 regional conferences, impacting over 500 people</li> <li>$50 supports a Python meetup group for 3 months</li> </ul><br /> This work can&#8217;t be done without the generous financial support that people like you provide.<br /> <br /> <i><b>It's easy to donate -&nbsp;</b></i><br /> <br /> <ul><li>Click <a href="https://psfmember.org/civicrm/contribute/transact?reset=1&amp;id=2">here</a> to make a one-time or recurring donation.</li> <li>If you&#8217;re an existing PSF Supporting Member and would like to make your support recurring, log into your account and click &#8220;Auto-Renewal&#8221;.</li> <li>If you&#8217;re an existing Supporting Member and would like to support the PSF beyond your $99 annual fee, use this <a href="https://psfmember.org/civicrm/contribute/transact?reset=1&amp;id=2">donation page</a> to select an additional one-time or monthly donation.</li> <li>If you'd like to join the PSF, click <a href="https://psfmember.org/civicrm/contribute/transact?reset=1&amp;id=21">here</a> to become a Supporting Member and optionally make a one-time donation.</li> </ul><div>&nbsp;More details on contributing can be found on the 2018 PSF Recurring Giving Campaign <a href="https://www.python.org/psf/donations/2018-q4-drive/">page</a>.<br /> <br /> Thank you to everyone who has contributed to our past fundraisers! Your support is what makes the PSF possible and is greatly appreciated by the Python community.<br /> <br /> If you would like to share the news about the PSF&#8217;s Recurring Giving Campaign, please share a tweet via this tweet button or by copying the text in the following:<br /> <br /> <div style="text-align: center;"><a class="twitter-share-button" href="https://twitter.com/intent/tweet?url=https%3A%2F%2Fwww.python.org%2Fpsf%2Fdonations%2F2018-q4-drive%2F&amp;via=%40thepsf&amp;text=Our%20Recurring%20Giving%20Campaign%20starts%20TODAY%2C%20October%2022.%20Help%20us%20raise%20%2430K%21%20%20&amp;hashtags=idonatedtothepsf%2Cijoinedthepsf"></a></div><br /> Contribute to our Recurring Giving Campaign &amp; help us reach our goal of $30K. The PSF is a non-profit organization entirely supported by its sponsors, members &amp; the public. https://www.python.org/psf/donations/2018-q4-drive/ #idonatedtothepsf #ijoinedthepsf<br /> <div><br /> </div></div> <div style='clear: both;'></div> </div> <div class='post-footer'> <div class='post-footer-line post-footer-line-1'> <span class='post-author vcard'> Posted by <span class='fn' itemprop='author' itemscope='itemscope' itemtype='http://schema.org/Person'> <meta content='https://www.blogger.com/profile/11931343676066539740' itemprop='url'/> <a class='g-profile' href='https://www.blogger.com/profile/11931343676066539740' rel='author' title='author profile'> <span itemprop='name'>Betsy Waliszewski</span> </a> </span> </span> <span class='post-timestamp'> at <meta content='https://pyfound.blogspot.com/2018/10/2018-psf-recurring-giving-campaign.html' itemprop='url'/> <a class='timestamp-link' href='https://pyfound.blogspot.com/2018/10/2018-psf-recurring-giving-campaign.html' rel='bookmark' title='permanent link'><abbr class='published' itemprop='datePublished' title='2018-10-22T10:04:00-04:00'>10/22/2018 10:04:00 AM</abbr></a> </span> <span class='post-comment-link'> </span> <span class='post-icons'> <span class='item-control blog-admin pid-536116824'> <a href='https://www.blogger.com/post-edit.g?blogID=8520&postID=7633257640353103460&from=pencil' title='Edit Post'> <img alt='' class='icon-action' height='18' src='https://resources.blogblog.com/img/icon18_edit_allbkg.gif' width='18'/> </a> </span> </span> <div class='post-share-buttons goog-inline-block'> </div> </div> <div class='post-footer-line post-footer-line-2'> <span class='post-labels'> </span> </div> <div class='post-footer-line post-footer-line-3'> <span class='post-location'> </span> </div> </div> </div> </div> </div></div> <div class="date-outer"> <h2 class='date-header'><span>Wednesday, October 10, 2018</span></h2> <div class="date-posts"> <div class='post-outer'> <div class='post hentry uncustomized-post-template' itemprop='blogPost' itemscope='itemscope' itemtype='http://schema.org/BlogPosting'> <meta content='8520' itemprop='blogId'/> <meta content='170756758682517375' itemprop='postId'/> <a name='170756758682517375'></a> <h3 class='post-title entry-title' itemprop='name'> <a href='https://pyfound.blogspot.com/2018/10/python-software-foundation-fellow.html'>Python Software Foundation Fellow Members for Q3 2018</a> </h3> <div class='post-header'> <div class='post-header-line-1'></div> </div> <div class='post-body entry-content' id='post-body-170756758682517375' itemprop='description articleBody'> <span style="font-family: &quot;arial&quot; , &quot;helvetica&quot; , sans-serif;">We are happy to announce our 2018 3rd Quarter Python Software Foundation Fellow Members:&nbsp;</span><br /> <div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;"> <div style="text-align: center;"> <span style="font-family: &quot;arial&quot; , &quot;helvetica&quot; , sans-serif; font-size: large;"><b><br /> Stefan Behnel</b></span><br /> <span style="font-family: &quot;arial&quot; , &quot;helvetica&quot; , sans-serif;"><a href="http://blog.behnel.de/" target="_blank">Blog</a>, <a href="https://github.com/scoder/" target="_blank">Github</a></span><br /> <b style="font-family: arial, helvetica, sans-serif;"><span style="font-size: large;">Andrew Godwin</span></b><br /> <span style="font-family: &quot;arial&quot; , &quot;helvetica&quot; , sans-serif;"><a href="http://www.aeracode.org/" target="_blank">Website</a>, <a href="http://twitter.com/andrewgodwin" target="_blank">Twitter</a></span><br /> <b style="font-family: arial, helvetica, sans-serif;"><span style="font-size: large;">David Markey</span></b><br /> <span><span style="font-family: Arial, Helvetica, sans-serif;"><a href="https://twitter.com/DavidjMarkey" target="_blank">Twitter</a></span></span><br /> <span style="font-family: &quot;arial&quot; , &quot;helvetica&quot; , sans-serif; font-size: large;"><b>Eduardo Mendes</b></span><br /> <span style="font-family: &quot;arial&quot; , &quot;helvetica&quot; , sans-serif;"><a href="http://github.com/dunossauro" target="_blank">Github</a>, <a href="http://twitter.com/dunossauro" target="_blank">Twitter</a>, <a href="http://linkedin.com/dunossauro" target="_blank">LinkedIn</a></span><br /> <b style="font-family: arial, helvetica, sans-serif;"><span style="font-size: large;">Claudiu Popa</span></b><br /> <span style="font-family: &quot;arial&quot; , &quot;helvetica&quot; , sans-serif;"><a href="https://github.com/PCManticore" target="_blank">Github</a></span><br /> <br /></div> </div> <span style="font-family: &quot;arial&quot; , &quot;helvetica&quot; , sans-serif;">Congratulations! Thank you for your continued contributions. We have added you to our&nbsp;<a href="https://www.python.org/psf/members/#fellows">Fellow roster online</a>.<br /> <br /> The above members have contributed to the Python ecosystem by maintaining popular libraries/tools, organizing Python events, hosting Python meet ups, teaching via YouTube videos, contributing to CPython, and overall being great mentors in our community. Each of them continues to help make Python more accessible around the world. To learn more about the new Fellow members, check out their links above.<br /> <br /> If you would like to nominate someone to be a PSF Fellow, please send a description of their Python accomplishments and their email address to psf-fellow at python.org. Here is the nomination review schedule for 2018:</span><br /> <ul><span style="font-family: &quot;arial&quot; , &quot;helvetica&quot; , sans-serif;"> <li>Q4: October to the end of December (01/10 - 31/12) Cut-off for quarter four will be November 20. New fellows will be announced before December 31.&nbsp;</li> </span></ul> <span style="font-family: &quot;arial&quot; , &quot;helvetica&quot; , sans-serif;"><br /> We are looking for a few more voting members to join the Work Group to help review nominations. If you are a PSF Fellow and would like to join, please write to psf-fellow at python.org.</span> <div style='clear: both;'></div> </div> <div class='post-footer'> <div class='post-footer-line post-footer-line-1'> <span class='post-author vcard'> Posted by <span class='fn' itemprop='author' itemscope='itemscope' itemtype='http://schema.org/Person'> <meta content='https://www.blogger.com/profile/18334325508115717169' itemprop='url'/> <a class='g-profile' href='https://www.blogger.com/profile/18334325508115717169' rel='author' title='author profile'> <span itemprop='name'>Ewa Jodlowska</span> </a> </span> </span> <span class='post-timestamp'> at <meta content='https://pyfound.blogspot.com/2018/10/python-software-foundation-fellow.html' itemprop='url'/> <a class='timestamp-link' href='https://pyfound.blogspot.com/2018/10/python-software-foundation-fellow.html' rel='bookmark' title='permanent link'><abbr class='published' itemprop='datePublished' title='2018-10-10T09:15:00-04:00'>10/10/2018 09:15:00 AM</abbr></a> </span> <span class='post-comment-link'> </span> <span class='post-icons'> <span class='item-control blog-admin pid-771879458'> <a href='https://www.blogger.com/post-edit.g?blogID=8520&postID=170756758682517375&from=pencil' title='Edit Post'> <img alt='' class='icon-action' height='18' src='https://resources.blogblog.com/img/icon18_edit_allbkg.gif' width='18'/> </a> </span> </span> <div class='post-share-buttons goog-inline-block'> </div> </div> <div class='post-footer-line post-footer-line-2'> <span class='post-labels'> </span> </div> <div class='post-footer-line post-footer-line-3'> <span class='post-location'> </span> </div> </div> </div> </div> </div></div> <div class="date-outer"> <h2 class='date-header'><span>Thursday, October 04, 2018</span></h2> <div class="date-posts"> <div class='post-outer'> <div class='post hentry uncustomized-post-template' itemprop='blogPost' itemscope='itemscope' itemtype='http://schema.org/BlogPosting'> <meta content='8520' itemprop='blogId'/> <meta content='9140843380861919408' itemprop='postId'/> <a name='9140843380861919408'></a> <h3 class='post-title entry-title' itemprop='name'> <a href='https://pyfound.blogspot.com/2018/10/join-2018-python-developers-survey.html'>Join the 2018 Python Developers Survey: Share and learn about the community</a> </h3> <div class='post-header'> <div class='post-header-line-1'></div> </div> <div class='post-body entry-content' id='post-body-9140843380861919408' itemprop='description articleBody'> 2018 is drawing to a close and we are excited to start the official <b>Python Developers Survey for 2018</b>!<br /> <br /> In 2017, Python Software Foundation together with JetBrains conducted an official Python Developers Survey for the first time. Over 9,500 developers from almost 150 different countries participated to help us map out an accurate landscape of the Python community.<br /> <br /> With this second iteration of the official Python Developers Survey, we aim to identify how the Python development world looks today and how it compares to last year. The results of the survey will serve as a major source of knowledge about the current state of the Python community, so we encourage you to participate and make an invaluable contribution to this community resource. The survey takes approximately 10 minutes to complete.<br /> <b style="font-weight: normal;"><br /></b> <a href="https://surveys.jetbrains.com/s3/c11-python-developers-survey-2018">Please take a few minutes to complete the Python Developers Survey 2018!</a> <br /> <br /> Your valuable opinion and feedback will help us better understand how different Python developers use Python, related frameworks, tools, and technologies. We also hope you'll have fun going through the questions.<br /> <br /> The survey is organized in partnership between the Python Software Foundation and JetBrains. After the survey is over, we will publish the aggregated results and randomly choose 100 winners (those who complete the survey in its entirety), who will each receive an amazing <b>Python Surprise Gift Pack</b>. <div style='clear: both;'></div> </div> <div class='post-footer'> <div class='post-footer-line post-footer-line-1'> <span class='post-author vcard'> Posted by <span class='fn' itemprop='author' itemscope='itemscope' itemtype='http://schema.org/Person'> <meta content='https://www.blogger.com/profile/18334325508115717169' itemprop='url'/> <a class='g-profile' href='https://www.blogger.com/profile/18334325508115717169' rel='author' title='author profile'> <span itemprop='name'>Ewa Jodlowska</span> </a> </span> </span> <span class='post-timestamp'> at <meta content='https://pyfound.blogspot.com/2018/10/join-2018-python-developers-survey.html' itemprop='url'/> <a class='timestamp-link' href='https://pyfound.blogspot.com/2018/10/join-2018-python-developers-survey.html' rel='bookmark' title='permanent link'><abbr class='published' itemprop='datePublished' title='2018-10-04T12:01:00-04:00'>10/04/2018 12:01:00 PM</abbr></a> </span> <span class='post-comment-link'> </span> <span class='post-icons'> <span class='item-control blog-admin pid-771879458'> <a href='https://www.blogger.com/post-edit.g?blogID=8520&postID=9140843380861919408&from=pencil' title='Edit Post'> <img alt='' class='icon-action' height='18' src='https://resources.blogblog.com/img/icon18_edit_allbkg.gif' width='18'/> </a> </span> </span> <div class='post-share-buttons goog-inline-block'> </div> </div> <div class='post-footer-line post-footer-line-2'> <span class='post-labels'> </span> </div> <div class='post-footer-line post-footer-line-3'> <span class='post-location'> </span> </div> </div> </div> </div> </div></div> <div class="date-outer"> <h2 class='date-header'><span>Tuesday, September 25, 2018</span></h2> <div class="date-posts"> <div class='post-outer'> <div class='post hentry uncustomized-post-template' itemprop='blogPost' itemscope='itemscope' itemtype='http://schema.org/BlogPosting'> <meta content='https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgPo9XKVv_iUcyng-mzymgibhBxnfqG_hefoRukPIhT4T1xSzIftXmk1h5v-aBvt3Xkg0yxKBsbhPQXOYt7cLB3UUKAVL0CnesZTxm_Ysm-Y0hEMv_3Y7CObSITk9LO7-RQU9s/s320/SprintsTeam.jpg' itemprop='image_url'/> <meta content='8520' itemprop='blogId'/> <meta content='2013721055813105454' itemprop='postId'/> <a name='2013721055813105454'></a> <h3 class='post-title entry-title' itemprop='name'> <a href='https://pyfound.blogspot.com/2018/09/cpython-core-developer-sprint-2018.html'>CPython Core Developer Sprint 2018</a> </h3> <div class='post-header'> <div class='post-header-line-1'></div> </div> <div class='post-body entry-content' id='post-body-2013721055813105454' itemprop='description articleBody'> This September, twenty-nine core committers arrived at Microsoft&#8217;s main campus in Redmond, Washington, USA for the now-annual core developer sprints. These are an opportunity for the core team to have focused discussions, in-depth conversations and work free from interruption for five days. By the end of the week, thirty-one core developers went home tired but satisfied.<br /> <div class="separator" style="clear: both; text-align: center;"> <a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgPo9XKVv_iUcyng-mzymgibhBxnfqG_hefoRukPIhT4T1xSzIftXmk1h5v-aBvt3Xkg0yxKBsbhPQXOYt7cLB3UUKAVL0CnesZTxm_Ysm-Y0hEMv_3Y7CObSITk9LO7-RQU9s/s1600/SprintsTeam.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="600" data-original-width="1080" height="177" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgPo9XKVv_iUcyng-mzymgibhBxnfqG_hefoRukPIhT4T1xSzIftXmk1h5v-aBvt3Xkg0yxKBsbhPQXOYt7cLB3UUKAVL0CnesZTxm_Ysm-Y0hEMv_3Y7CObSITk9LO7-RQU9s/s320/SprintsTeam.jpg" width="320" /></a></div> <br /> The major sponsor of the sprints this year was the Python Software Foundation. Microsoft provided the venue and some events during the week, and Facebook, Microsoft, Google, LinkedIn, Bloomberg, and a number of small companies covered their employees&#8217; expenses.<br /> <br /> <h3> Major Achievements</h3> With over thirty people working for a week, there were many achievements and improvements made for Python 3.8 and earlier versions. Some of the highlights include:<br /> <br /> <ul> <li>The asyncio documentation was completely rewritten</li> <li>Most of PEP 572 (assignment expressions) was implemented and tested</li> <li>Recursive tracebacks and syntax errors in f-strings were improved to provide better feedback</li> <li>The Automerge bot was enabled on the CPython GitHub repository, helping reduce the amount of manual work done by core committers</li> <li>importlib_metadata was improved, helping to standardize the way Python exposes information about installed packages</li> <li>The zipimport module was rewritten in Python code, which will enable new development and improvements for importing modules directly from ZIP files</li> <li>Over 45 contributions (besides our own) were reviewed and merged, and over 80 issues were closed in the CPython repository, with many others in related projects such as Buildbot, Roundup, blurb, and our GitHub bots</li> </ul> <br /> <br /> <h3> Governance Discussions</h3> With our BDFL of Python retiring earlier this year, we spent some time discussing how to approach the future of Python. More than any specific outcomes, the discussions were very fruitful and helped many of us see how similar our positions are to each other.<br /> <br /> While no decisions have been made, all current proposals intend to keep the PEP process, and limit the new leaders&#8217; responsibilities to arbitrating controversial decisions.<br /> <br /> Final proposals are due by the end of September. See <a href="https://www.python.org/dev/peps/pep-8000/" target="_blank">PEP 8000</a> for an overview of the process and links to related PEPs.<br /> <br /> <h3> New Core Developers</h3> Those who read the first paragraph carefully will have noticed that more committers left the sprints than arrived. This happened because we appointed two new core developers during the week. Congratulations to Emily Morehouse and Lisa Roach!<br /> <div class="separator" style="clear: both; text-align: center;"> <a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhIliFv5aT7sZSOEUSgcQVhXzjDqxNj1DT1U65wv9Tjd0W8mC2cJ8Fd3x2Tzga-QDaeSBwSq55J3e_5x89M3AgQOf2A4lx8UvQXpEW2twKm4uqLhdTPd1cfYBZt5LMHadB420o/s1600/NewCoreDevs.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="900" data-original-width="1600" height="180" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhIliFv5aT7sZSOEUSgcQVhXzjDqxNj1DT1U65wv9Tjd0W8mC2cJ8Fd3x2Tzga-QDaeSBwSq55J3e_5x89M3AgQOf2A4lx8UvQXpEW2twKm4uqLhdTPd1cfYBZt5LMHadB420o/s320/NewCoreDevs.jpg" width="320" /></a></div> <br /> <br /> From Raymond Hettinger&#8217;s <a href="https://mail.python.org/pipermail/python-committers/2018-September/006059.html" target="_blank">announcement post</a>:<br /> <blockquote class="tr_bq"> Emily is the Director of Engineering at Cuttlesoft. She has previously attended two Language Summits and three core development sprints at PyCon. Since July, Emily has worked with Guido's guidance to implement PEP 572, Assignment Expressions.&nbsp; She has also worked with Eric Snow to dive into CPython's runtime as well as subinterpreters.&nbsp; This year at PyCon she gave a talk on Python's AST.<br />Lisa has a background in network engineering and supported the Cisco sale engineer team to develop high quality Python product demonstrations.&nbsp; Later she moved to the Facebook security team.&nbsp; This is her third core developer sprint.&nbsp; She and Guido are co-authors of PEP 526, Syntax for Variable Annotations. Last year, she worked with Eric Smith on PEP 557, Data Classes.</blockquote> <h3> Other Blogs</h3> Other attendees have posted their own blogs describing their experiences at the sprints. (This list may be updated over time as more are published.)<br /> <br /> <ul> <li>Mariatta Wijaya: <a href="https://mariatta.ca/core-sprint-2018-part-1.html" target="_blank">Part 1</a>, <a href="https://mariatta.ca/core-sprint-2018-part-2.html" target="_blank">Part 2&nbsp;</a></li> <li><a href="http://python.ca/nas/python/core_sprints/2018.html" target="_blank">Neil Schemanauer&nbsp;</a></li> </ul> <br /> <h3> Thank you!</h3> A huge thanks to all the participants who attended, the various companies who sponsored parts of the event, and the PSF for covering the majority of travel expenses. Thanks also to those contributors who were unable to make it this year. Hopefully next year we can include even more core contributors.<br /> <br /> Attendees: Brett Cannon, Kushal Das, Ned Deily, Steve Dower, Ethan Furman, Larry Hastings, Christian Heimes, Raymond Hettinger, 艁ukasz Langa, Ezio Melotti, Emily Morehouse, Benjamin Peterson, Davin Potts, Lisa Roach, Pablo Galindo Salgado, Neil Schemenauer, Yury Selivanov, Eric V. Smith, Gregory P. Smith, Nathaniel Smith, Eric Snow, Victor Stinner, Andrew Svetlov, Guido van Rossum, Dino Viehland, Petr Viktorin, Zachary Ware, Barry Warsaw, Mariatta Wijaya, Carol Willing<br /> <br /> Written by: Steve Dower <div style='clear: both;'></div> </div> <div class='post-footer'> <div class='post-footer-line post-footer-line-1'> <span class='post-author vcard'> Posted by <span class='fn' itemprop='author' itemscope='itemscope' itemtype='http://schema.org/Person'> <meta content='https://www.blogger.com/profile/18334325508115717169' itemprop='url'/> <a class='g-profile' href='https://www.blogger.com/profile/18334325508115717169' rel='author' title='author profile'> <span itemprop='name'>Ewa Jodlowska</span> </a> </span> </span> <span class='post-timestamp'> at <meta content='https://pyfound.blogspot.com/2018/09/cpython-core-developer-sprint-2018.html' itemprop='url'/> <a class='timestamp-link' href='https://pyfound.blogspot.com/2018/09/cpython-core-developer-sprint-2018.html' rel='bookmark' title='permanent link'><abbr class='published' itemprop='datePublished' title='2018-09-25T11:14:00-04:00'>9/25/2018 11:14:00 AM</abbr></a> </span> <span class='post-comment-link'> </span> <span class='post-icons'> <span class='item-control blog-admin pid-771879458'> <a href='https://www.blogger.com/post-edit.g?blogID=8520&postID=2013721055813105454&from=pencil' title='Edit Post'> <img alt='' class='icon-action' height='18' src='https://resources.blogblog.com/img/icon18_edit_allbkg.gif' width='18'/> </a> </span> </span> <div class='post-share-buttons goog-inline-block'> </div> </div> <div class='post-footer-line post-footer-line-2'> <span class='post-labels'> </span> </div> <div class='post-footer-line post-footer-line-3'> <span class='post-location'> </span> </div> </div> </div> </div> </div></div> <div class="date-outer"> <h2 class='date-header'><span>Tuesday, August 28, 2018</span></h2> <div class="date-posts"> <div class='post-outer'> <div class='post hentry uncustomized-post-template' itemprop='blogPost' itemscope='itemscope' itemtype='http://schema.org/BlogPosting'> <meta content='https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhtiv4iacJl6C0Xg17cbHpRfD894UjyMoVgudIJIj6TCll0clw2j2OQE_9WNTATdV1GimQ0X3eaM-YW5MNAimodsdXEVNPJIdddv6L9-W9jMsJGkAPuFZ7CgX8gWepKIInWwiY/s640/Screen+Shot+2018-07-18+at+4.32.52+PM.png' itemprop='image_url'/> <meta content='8520' itemprop='blogId'/> <meta content='7986357904752348460' itemprop='postId'/> <a name='7986357904752348460'></a> <h3 class='post-title entry-title' itemprop='name'> <a href='https://pyfound.blogspot.com/2018/08/redesigning-python-package-index.html'>Redesigning the Python Package Index</a> </h3> <div class='post-header'> <div class='post-header-line-1'></div> </div> <div class='post-body entry-content' id='post-body-7986357904752348460' itemprop='description articleBody'> In April this year a new version of the <a href="https://pypi.org/" target="_blank">Python Package Index</a> (PyPI) was released, an effort made possible by a <a href="http://pyfound.blogspot.com/2017/11/the-psf-awarded-moss-grant-pypi.html" target="_blank">generous award from the Mozilla Open Source Support program</a>. <br /> <br /> A major change in PyPI is the new user interface - something that had not seen any sizeable updates for over ten years. Understandably there have been questions about what&#8217;s next for the new UI, which as the designer of <a href="https://github.com/pypa/warehouse" target="_blank">Warehouse</a> (the project powering PyPI), I would like to address. <br /> <br /> <br /> <div style="clear: both; padding: 0; text-align: center;"> <a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhtiv4iacJl6C0Xg17cbHpRfD894UjyMoVgudIJIj6TCll0clw2j2OQE_9WNTATdV1GimQ0X3eaM-YW5MNAimodsdXEVNPJIdddv6L9-W9jMsJGkAPuFZ7CgX8gWepKIInWwiY/s1600/Screen+Shot+2018-07-18+at+4.32.52+PM.png" imageanchor="1"><img alt="The PyPI homepage" border="0" data-original-height="1397" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhtiv4iacJl6C0Xg17cbHpRfD894UjyMoVgudIJIj6TCll0clw2j2OQE_9WNTATdV1GimQ0X3eaM-YW5MNAimodsdXEVNPJIdddv6L9-W9jMsJGkAPuFZ7CgX8gWepKIInWwiY/s640/Screen+Shot+2018-07-18+at+4.32.52+PM.png" style="max-width: 90%;" title="" /></a></div> <br /> <h2> The new design</h2> <br /> PyPI&#8217;s new design is a reflection of the Python community - modern, welcoming and inclusive.<br /> <br /> The design emphasises inclusion by providing extensive help documentation, user friendly interfaces, accessible font sizes and a high-contrast color scheme. The entire site works across all resolutions, meaning that you can now use PyPI on any device.<br /> <br /> These features are no accident, as the goal of the redesign is to make PyPI a success for as many users as possible. This a big challenge as over 15 million people from 236 different countries visit PyPI.org each year (Aug 2017 - July 2018).<br /> <br /> While the new design is informed by <a href="https://whoisnicoleharris.com/2018/05/17/warehouse-accessibility.html" target="_blank">usability standards</a> and user experience best practices, it&#8217;s now time to take PyPI to the next level: informing design improvements by engaging in community research and user testing.<br /> <br /> <h2> Next steps</h2> <br /> The first area we are looking to improve is the project's detail page (<a href="https://pypi.org/project/pip/" target="_blank">view example</a>), which is - as the name suggests - the page where the details of a particular project can be viewed.<br /> <br /> This is by far the most visited page type on PyPI. In July 2018 alone, 76.59% of page visits were to a project detail page, or 3,594,956 visits from a total page visit count of 4,693,561. The majority of users arrive on these pages direct from Google or other sources, bypassing the PyPI home and search pages.<br /> <br /> Given these numbers, even a small improvement in the efficiency of this page would return great results for the community. The question is: how should we decide what to change? What one user might think of an improvement, others may consider a regression.<br /> <br /> <h2> Conducting user research</h2> <br /> In an effort to better understand what our users want from the aforementioned page, we ran a design research exercise (<a href="https://whoisnicoleharris.com/2018/07/22/pypi-user-research.html" target="_blank">full writeup</a>) asking Python community members to rank the importance of different pieces of information on the page. 1,926 people participated in the exercise. These were the results:<br /> <br /> <br /> <div class="infogram-embed" data-id="aafb06e8-4bc6-4e49-8bbe-9e2525b18ddf" data-title="&amp;quot;Buy a Feature&amp;quot; - PyPI research" data-type="interactive"> </div> <script>!function(e,t,n,s){var i="InfogramEmbeds",o=e.getElementsByTagName(t)[0],d=/^http:/.test(e.location)?"http:":"https:";if(/^\/{2}/.test(s)&&(s=d+s),window[i]&&window[i].initialized)window[i].process&&window[i].process();else if(!e.getElementById(n)){var a=e.createElement(t);a.async=1,a.id=n,a.src=s,o.parentNode.insertBefore(a,o)}}(document,"script","infogram-async","https://e.infogram.com/js/dist/embed-loader-min.js");</script><br /> <div style="border-top: 1px solid #dadada; font-family: &quot;arial important&quot;; font-size: 13px; line-height: 15px; margin: 0 30px; padding: 8px 0; text-align: center;"> <a href="https://infogram.com/aafb06e8-4bc6-4e49-8bbe-9e2525b18ddf" style="color: #989898!important; text-decoration: none!important;" target="_blank">"Buy a Feature" - PyPI research</a><br /> <a href="https://infogram.com/" rel="nofollow" style="color: #989898!important; text-decoration: none!important;" target="_blank">Infogram</a></div> <br /> From this research, we can ascertain that many users highly value the project description, information about the required version of Python, and links to the project online. In contrast, few users value the <a href="https://pypi.org/classifiers/" target="_blank">trove classifiers</a>, list of maintainers, or instructions on how to see statistics about the project.<br /> <br /> Such insights are essential in driving the redesign in a way that prioritises important information for the largest number of users.<br /> <br /> <h2> Running user tests</h2> <br /> In conjunction with this research we are also establishing a user testing program, where PyPI users will give their feedback to the team via a remote video call; answering specific usage questions or completing certain tasks on the site.<br /> <br /> Our goal is to run these sessions with a diverse group of users, accounting for the different people, places and ways that Python is used, while establishing major &#8220;pain points&#8221; with the current design. From this, we can open issues in the issue tracker to address problems, <a href="https://github.com/pypa/warehouse/issues?utf8=%E2%9C%93&amp;q=is%3Aissue+label%3A%22raised+in+user+testing%22+" target="_blank">as has happened before</a> with previous rounds of user tests conducted on the project management interfaces.<br /> <br /> User tests can also be used to test new design concepts, compare the performance between old design vs new proposals, and ascertain if the proposed design solutions are truely performant.<br /> <br /> <h2> Help us help PyPI!</h2> <br /> So - how can you help us take PyPI to the next level?<br /> <br /> If you&#8217;d like to participate in user tests, please <a href="https://t.co/rkBRinecDx" target="_blank">register your interest</a>. Depending on your profile and availability, we will be in touch to organise a testing session. <br /> <br /> If you have a background in design/research or are interested in facilitating user tests, please contact me on <a href="mailto:nicole@pypi.org">nicole@pypi.org</a>. All help is welcome!<br /> <br /> We appreciate new contributors to the Warehouse project, with <a href="https://github.com/pypa/warehouse/issues?q=is%3Aissue+label%3A%22good+first+issue%22" target="_blank">reserved issues for new contributors</a> and love <a href="https://psfmember.org/civicrm/contribute/transact?reset=1&amp;id=13" target="_blank">donations to the Python Packaging Working Group</a> as these help us build a more sustainable model for Python packaging.<br /> <br /> Finally, if you are interested in participating in future rounds of user research, please follow <a href="https://twitter.com/pypi" target="_blank">PyPI on Twitter</a> or keep an eye on PyPI.org for future announcements! <div style='clear: both;'></div> </div> <div class='post-footer'> <div class='post-footer-line post-footer-line-1'> <span class='post-author vcard'> Posted by <span class='fn' itemprop='author' itemscope='itemscope' itemtype='http://schema.org/Person'> <meta content='https://www.blogger.com/profile/12696815808536247448' itemprop='url'/> <a class='g-profile' href='https://www.blogger.com/profile/12696815808536247448' rel='author' title='author profile'> <span itemprop='name'>Nicole Harris</span> </a> </span> </span> <span class='post-timestamp'> at <meta content='https://pyfound.blogspot.com/2018/08/redesigning-python-package-index.html' itemprop='url'/> <a class='timestamp-link' href='https://pyfound.blogspot.com/2018/08/redesigning-python-package-index.html' rel='bookmark' title='permanent link'><abbr class='published' itemprop='datePublished' title='2018-08-28T10:00:00-04:00'>8/28/2018 10:00:00 AM</abbr></a> </span> <span class='post-comment-link'> </span> <span class='post-icons'> <span class='item-control blog-admin pid-1965497298'> <a href='https://www.blogger.com/post-edit.g?blogID=8520&postID=7986357904752348460&from=pencil' title='Edit Post'> <img alt='' class='icon-action' height='18' src='https://resources.blogblog.com/img/icon18_edit_allbkg.gif' width='18'/> </a> </span> </span> <div class='post-share-buttons goog-inline-block'> </div> </div> <div class='post-footer-line post-footer-line-2'> <span class='post-labels'> Labels: <a href='https://pyfound.blogspot.com/search/label/pypi' rel='tag'>pypi</a> </span> </div> <div class='post-footer-line post-footer-line-3'> <span class='post-location'> </span> </div> </div> </div> </div> </div></div> <div class="date-outer"> <h2 class='date-header'><span>Thursday, August 23, 2018</span></h2> <div class="date-posts"> <div class='post-outer'> <div class='post hentry uncustomized-post-template' itemprop='blogPost' itemscope='itemscope' itemtype='http://schema.org/BlogPosting'> <meta content='https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh6HVcwGUQggrQQ7h696fjVGWC05APC70Tz4HDKAaYxa9SHH-sTA3eMw2nVJfwJGsQmjoMoNROsD3qgeDx_AUA44NdpzeV-hGXjvuuA9p69x6kTOaDDUJlULTFVqR3tCBs6c_s/s400/28338539217_1613d4a13e_h.jpg' itemprop='image_url'/> <meta content='8520' itemprop='blogId'/> <meta content='3036785244728258643' itemprop='postId'/> <a name='3036785244728258643'></a> <h3 class='post-title entry-title' itemprop='name'> <a href='https://pyfound.blogspot.com/2018/08/pycon-2019-call-for-sponsors.html'>PyCon 2019 - Call for Sponsors</a> </h3> <div class='post-header'> <div class='post-header-line-1'></div> </div> <div class='post-body entry-content' id='post-body-3036785244728258643' itemprop='description articleBody'> <div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;"> <div style="-webkit-print-color-adjust: exact; background-color: white; font-family: Helvetica, arial, sans-serif; font-size: 14px; margin-bottom: 15px;"> It seems like&nbsp;<a href="https://us.pycon.org/2018" style="-webkit-print-color-adjust: exact; color: #4183c4;">PyCon 2018</a>&nbsp;was just last week, but the 2019 edition will be here before we know it. We want to say thanks to all our sponsors who helped make the conference a huge success. This year, we welcomed 3,260 attendees from 48 different countries around the world, strengthening the connection in our beloved community even more.&nbsp;</div> <div style="-webkit-print-color-adjust: exact; background-color: white; font-family: Helvetica, arial, sans-serif; font-size: 14px; margin-bottom: 15px; margin-top: 15px;"> The invaluable and generous support of our PyCon sponsors enables the Python Software Foundation to help and improve the Python community worldwide by promoting sprints, meetups, events, projects, fiscal sponsorships, software development, open source projects and the Python Ambassador Program &#8211; which helps the creation of communities where Python is not well known.&nbsp;</div> <div style="-webkit-print-color-adjust: exact; background-color: white; font-family: Helvetica, arial, sans-serif; font-size: 14px; margin-bottom: 15px; margin-top: 15px;"> PyCon sponsorship enabled us to award $118,543 USD in financial aid to 143 attendees in 2018. It also generates 80% of the PSF's revenue, making financial aid, conferences, workshops, and training support possible. As a result, in 2017 $271,138 was awarded to grant recipients in 34 different countries and we are on track to meet or beat our total from last year.</div> <div style="-webkit-print-color-adjust: exact; background-color: white; font-family: Helvetica, arial, sans-serif; font-size: 14px; margin-bottom: 15px; margin-top: 15px;"> Your sponsorship helps keep PyCon affordable and accessible to the widest possible audience.&nbsp;</div> <div style="-webkit-print-color-adjust: exact; background-color: white; font-family: Helvetica, arial, sans-serif; font-size: 14px; margin-bottom: 15px; margin-top: 15px;"> Here is a sample of the many benefits from being a sponsor:</div> <ul style="-webkit-print-color-adjust: exact; background-color: white; font-family: Helvetica, arial, sans-serif; font-size: 14px; margin: 15px 0px; padding-left: 30px;"> <li style="-webkit-print-color-adjust: exact; margin: 0px;">Being part of the biggest Python conference in the world</li> <li style="-webkit-print-color-adjust: exact; margin: 0px;">Visibility to those who could potentially become new customers or employees</li> <li style="-webkit-print-color-adjust: exact; margin: 0px;">Increasing your brand exposure and elevating your corporate identity within the community</li> <li style="-webkit-print-color-adjust: exact; margin: 0px;">Expose your products to more than 3,200 attendees</li> <li style="-webkit-print-color-adjust: exact; margin: 0px;">Enhance your company&#8217;s reputation by supporting and investing in Python and the open source community</li> </ul> <div style="-webkit-print-color-adjust: exact; background-color: white; font-family: Helvetica, arial, sans-serif; font-size: 14px; margin-bottom: 15px; margin-top: 15px;"> Depending on your level of sponsorship, packages may include complimentary conference passes, booth space, lead retrieval scanners, speaking opportunities, and participation in the Job Fair. Our current sponsorship prospectus can be found&nbsp;<a href="https://us.pycon.org/2019/sponsors/prospectus/" style="-webkit-print-color-adjust: exact; color: #4183c4;">here</a>. Sponsors in the Diamond, Platinum, Gold or Silver categories will receive additional tickets to the conference.</div> <div style="-webkit-print-color-adjust: exact; background-color: white; font-family: Helvetica, arial, sans-serif; font-size: 14px; margin-bottom: 15px; margin-top: 15px;"> We want to hear from you! Contact us anytime - we are flexible and willing to build a sponsorship package that fits your needs. Only you know your business, how you measure success and what you're looking for. For more information please contact&nbsp;<a href="mailto:betsy@python.org" style="-webkit-print-color-adjust: exact; color: #4183c4;">betsy@python.org</a>&nbsp;or&nbsp;<a href="mailto:pycon-sponsors@python.org" style="-webkit-print-color-adjust: exact; color: #4183c4;">pycon-sponsors@python.org</a>.</div> <div style="-webkit-print-color-adjust: exact; background-color: white; font-family: Helvetica, arial, sans-serif; font-size: 14px; margin-bottom: 15px; margin-top: 15px;"> We proudly want to announce the organizations that are already sponsoring the PyCon 2019!</div> <ul style="-webkit-print-color-adjust: exact; background-color: white; font-family: Helvetica, arial, sans-serif; font-size: 14px; margin: 15px 0px; padding-left: 30px;"> <li style="-webkit-print-color-adjust: exact; margin: 0px;"><a href="https://twitter.com/googlecloud" style="-webkit-print-color-adjust: exact; color: #4183c4; margin-top: 0px;">Google</a></li> <li style="-webkit-print-color-adjust: exact; margin: 0px;"><a href="https://twitter.com/anacondainc" style="-webkit-print-color-adjust: exact; color: #4183c4; margin-top: 0px;">Anaconda</a></li> <li style="-webkit-print-color-adjust: exact; margin: 0px;"><a href="https://twitter.com/facebook" style="-webkit-print-color-adjust: exact; color: #4183c4; margin-top: 0px;">Facebook</a>&nbsp;&amp;&nbsp;<a href="https://twitter.com/instagram" style="-webkit-print-color-adjust: exact; color: #4183c4;">Instagram</a></li> <li style="-webkit-print-color-adjust: exact; margin: 0px;"><a href="https://twitter.com/instagram" style="-webkit-print-color-adjust: exact; color: #4183c4; margin-top: 0px;">JP Morgan Chase</a></li> <li style="-webkit-print-color-adjust: exact; margin: 0px;"><a href="https://twitter.com/citusdata" style="-webkit-print-color-adjust: exact; color: #4183c4; margin-top: 0px;">Citus Data</a></li> <li style="-webkit-print-color-adjust: exact; margin: 0px;"><a href="https://twitter.com/YelpEngineering" style="-webkit-print-color-adjust: exact; color: #4183c4; margin-top: 0px;">Yelp</a></li> <li style="-webkit-print-color-adjust: exact; margin: 0px;"><a href="https://twitter.com/nexmodev" style="-webkit-print-color-adjust: exact; color: #4183c4; margin-top: 0px;">Nexmo Inc.</a></li> <li style="-webkit-print-color-adjust: exact; margin: 0px;"><a href="https://twitter.com/elastic" style="-webkit-print-color-adjust: exact; color: #4183c4; margin-top: 0px;">Elastic</a></li> <li style="-webkit-print-color-adjust: exact; margin: 0px;"><a href="https://twitter.com/AQRCapital" style="-webkit-print-color-adjust: exact; color: #4183c4; margin-top: 0px;">AQR Capital Management</a></li> <li style="-webkit-print-color-adjust: exact; margin: 0px;"><a href="https://twitter.com/Novetta" style="-webkit-print-color-adjust: exact; color: #4183c4; margin-top: 0px;">Novetta</a></li> <li style="-webkit-print-color-adjust: exact; margin: 0px;"><a href="https://twitter.com/twosigma" style="-webkit-print-color-adjust: exact; color: #4183c4; margin-top: 0px;">Two Sigma Investments, LP</a></li> <li style="-webkit-print-color-adjust: exact; margin: 0px;"><a href="https://twitter.com/sixfeetup" style="-webkit-print-color-adjust: exact; color: #4183c4; margin-top: 0px;">Six Feet Up</a></li> <li style="-webkit-print-color-adjust: exact; margin: 0px;"><a href="https://twitter.com/square" style="-webkit-print-color-adjust: exact; color: #4183c4; margin-top: 0px;">Square</a></li> <li style="-webkit-print-color-adjust: exact; margin: 0px;"><a href="https://twitter.com/doctorondemand" style="-webkit-print-color-adjust: exact; color: #4183c4; margin-top: 0px;">Doctor On Demand, Inc</a></li> <li style="-webkit-print-color-adjust: exact; margin: 0px;"><a href="https://www.blogger.com/blogger.g?blogID=8520" style="-webkit-print-color-adjust: exact; color: #4183c4; margin-top: 0px;">Anvil</a></li> </ul> <div style="text-align: center;"> <table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody> <tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh6HVcwGUQggrQQ7h696fjVGWC05APC70Tz4HDKAaYxa9SHH-sTA3eMw2nVJfwJGsQmjoMoNROsD3qgeDx_AUA44NdpzeV-hGXjvuuA9p69x6kTOaDDUJlULTFVqR3tCBs6c_s/s1600/28338539217_1613d4a13e_h.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="110" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh6HVcwGUQggrQQ7h696fjVGWC05APC70Tz4HDKAaYxa9SHH-sTA3eMw2nVJfwJGsQmjoMoNROsD3qgeDx_AUA44NdpzeV-hGXjvuuA9p69x6kTOaDDUJlULTFVqR3tCBs6c_s/s400/28338539217_1613d4a13e_h.jpg" width="400" /></a></td></tr> <tr><td class="tr-caption" style="text-align: center;">Huntington Convention Center - Cleveland, Ohio.<br /> Photo Credit: Mike&nbsp;Pirnat&nbsp;https://www.flickr.com/photos/mikepirnat</td></tr> </tbody></table> </div> <div style="-webkit-print-color-adjust: exact; background-color: white; font-family: Helvetica, arial, sans-serif; font-size: 14px; margin-bottom: 15px; margin-top: 15px;"> PyCon 2019 will be held at Huntington Convention Center in Cleveland, Ohio, from May 1st to May 9th.</div> <div style="-webkit-print-color-adjust: exact; background-color: white; font-family: Helvetica, arial, sans-serif; font-size: 14px; margin-bottom: 15px; margin-top: 15px;"> If you would like to share information about PyCon 2019 sponsorship, please share with this tweet:</div> <blockquote style="-webkit-print-color-adjust: exact; background-color: white; border-left-color: rgb(221, 221, 221); border-left-style: solid; border-left-width: 4px; color: #777777; font-family: Helvetica, arial, sans-serif; font-size: 14px; margin: 15px 0px; padding: 0px 15px;"> <div style="-webkit-print-color-adjust: exact;"> Support @ThePSF by sponsoring @pycon 2019! More information can be found here: https://us.pycon.org/2019/sponsors/prospectus/. #pycon2019</div> </blockquote> <br /> <div style="text-align: center;"> <table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody> <tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiQKOzYPtuGkjsghpe0Gap1YNqnrdlOGX-mHReh8CaDrdR4AF0egfjD7DSIaisHiZqYXwZbojOyd3NFpWfYPR0RQ3U4IGW1c3zmzWkvT4Tl-ZB52IIdt8pJTaXqp_NbTNd2NPA/s1600/DcyxtqxXUAEOWQb.jpg-large.jpeg" imageanchor="1" style="background-color: white; clear: left; display: inline; font-family: helvetica, arial, sans-serif; font-size: 24px; margin-bottom: 1em; margin-left: auto; margin-right: auto;"><img border="0" height="222" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiQKOzYPtuGkjsghpe0Gap1YNqnrdlOGX-mHReh8CaDrdR4AF0egfjD7DSIaisHiZqYXwZbojOyd3NFpWfYPR0RQ3U4IGW1c3zmzWkvT4Tl-ZB52IIdt8pJTaXqp_NbTNd2NPA/s400/DcyxtqxXUAEOWQb.jpg-large.jpeg" width="400" /></a></td></tr> <tr><td class="tr-caption" style="text-align: center;">PyCon 2018 Staff.<br /> Photo Credit: Mike Pirnat https://www.flickr.com/photos/mikepirnat</td></tr> </tbody></table> </div> <h2 id="toc_0" style="-webkit-font-smoothing: antialiased; -webkit-print-color-adjust: exact; background-color: white; border-bottom-color: rgb(204, 204, 204); border-bottom-style: solid; border-bottom-width: 1px; cursor: text; font-family: Helvetica, arial, sans-serif; font-size: 24px; margin: 20px 0px 10px; padding: 0px; position: relative;"> Here&#8217;s what our attendees say about the PyCon US experience:</h2> <blockquote style="-webkit-print-color-adjust: exact; background-color: white; border-left-color: rgb(221, 221, 221); border-left-style: solid; border-left-width: 4px; color: #777777; font-family: Helvetica, arial, sans-serif; font-size: 14px; margin: 15px 0px; padding: 0px 15px;"> <div style="-webkit-print-color-adjust: exact;"> #PyCon2018 was my first PyCon. I have had an INCREDIBLE time! I've listened to inspirational speakers; met some of the most amazing people and have made lifelong connections. Most of all, I had FUN! Thanks to the brilliant @pycon team for working tirelessly to make it a reality!</div> </blockquote> <span style="background-color: white; font-family: &quot;helvetica&quot; , &quot;arial&quot; , sans-serif; font-size: 14px; text-align: right;">- Julian Sequeira (@_juliansequeira)</span></div> <div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;"> <span style="background-color: white; font-family: &quot;helvetica&quot; , &quot;arial&quot; , sans-serif; font-size: 14px; text-align: right;"><br /> </span></div> <div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;"> <div style="text-align: right;"> <span style="background-color: white; color: #777777; font-family: &quot;helvetica&quot; , &quot;arial&quot; , sans-serif; font-size: 14px;">PyCon has been my gold standard for conference accessibility as long as I've been attending, they do a great job and the community here really reflects it. I appreciate all your hard work @pycon, keep it up.</span></div> <span style="background-color: white; font-family: &quot;helvetica&quot; , &quot;arial&quot; , sans-serif; font-size: 14px;">- Jonan Scheffler (@thejonanshow)</span><br /> <blockquote style="-webkit-print-color-adjust: exact; background-color: white; border-left-color: rgb(221, 221, 221); border-left-style: solid; border-left-width: 4px; color: #777777; font-family: Helvetica, arial, sans-serif; font-size: 14px; margin: 15px 0px; padding: 0px 15px;"> <div style="-webkit-print-color-adjust: exact;"> #pycon2018 was incredible. The support and hospitality from #Cleveland was stellar. Lighting all the downtown buildings in blue and yellow was a class act. I can&#8217;t wait to come back next year for some Mabel&#8217;s BBQ and the amazing @pycon community</div> </blockquote> <span style="background-color: white; font-family: &quot;helvetica&quot; , &quot;arial&quot; , sans-serif; font-size: 14px;">- Jenn Basalone (@pennyblackio)</span><br /> <blockquote style="-webkit-print-color-adjust: exact; background-color: white; border-left-color: rgb(221, 221, 221); border-left-style: solid; border-left-width: 4px; color: #777777; font-family: Helvetica, arial, sans-serif; font-size: 14px; margin: 15px 0px; padding: 0px 15px;"> <div style="-webkit-print-color-adjust: exact;"> One of more understated benefits of @pycon is the economic and social impact in the surrounding communities it takes place at. In the case of larger cities, might not a big deal. In smaller locales, like Cleveland, that impact can be huge!</div> </blockquote> <span style="background-color: white; font-family: &quot;helvetica&quot; , &quot;arial&quot; , sans-serif; font-size: 14px;">- Ruben Orduz (@rdodev)</span><br /> <blockquote style="-webkit-print-color-adjust: exact; background-color: white; border-left-color: rgb(221, 221, 221); border-left-style: solid; border-left-width: 4px; color: #777777; font-family: Helvetica, arial, sans-serif; font-size: 14px; margin: 15px 0px; padding: 0px 15px;"> <div style="-webkit-print-color-adjust: exact;"> Just got back from @pycon. Was delighted by the inclusiveness and thoughtfulness I saw there.</div> </blockquote> <span style="background-color: white; font-family: &quot;helvetica&quot; , &quot;arial&quot; , sans-serif; font-size: 14px;">- David Vandegrift (@DavidVandegrift)</span></div> <div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;"> <span style="font-family: &quot;helvetica&quot; , &quot;arial&quot; , sans-serif;"><span style="background-color: white; font-size: 14px;"><br /> </span></span> <br /> <div style="text-align: center;"> <table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody> <tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjsu5EDwKT_lrMQeI2c_Gx4_nAd-tVrbnVmmH6rDuAI6zsQ400eXKLZ2RT7kFTdXwYJHqRvZv_q57Lm02IKtnkp-jJ34crq8E0_hdm7pyE27HO7eSOT1sowR1vR7N5Z_xwbWt4/s1600/43156901132_f0665a7a9c_h.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="225" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjsu5EDwKT_lrMQeI2c_Gx4_nAd-tVrbnVmmH6rDuAI6zsQ400eXKLZ2RT7kFTdXwYJHqRvZv_q57Lm02IKtnkp-jJ34crq8E0_hdm7pyE27HO7eSOT1sowR1vR7N5Z_xwbWt4/s400/43156901132_f0665a7a9c_h.jpg" width="400" /></a></td></tr> <tr><td class="tr-caption" style="text-align: center;">Rock and Roll Hall of Fame - Cleveland, Ohio<br /> Photo Credit: Mike&nbsp;Pirnat&nbsp;https://www.flickr.com/photos/mikepirnat</td></tr> </tbody></table> <span style="font-family: &quot;helvetica&quot; , &quot;arial&quot; , sans-serif;"><span style="background-color: white; font-size: 14px;"></span></span></div> </div> <div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt; text-align: center;"> <span id="docs-internal-guid-0e5642a9-7fff-76b2-f072-74cf0fff3895"></span></div> <div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;"> <blockquote class="tr_bq"> PyCon is underwritten by the Python Software Foundation, a 501(c)3 charitable organization set up to manage the growth and development of Python worldwide.</blockquote> </div> <div style='clear: both;'></div> </div> <div class='post-footer'> <div class='post-footer-line post-footer-line-1'> <span class='post-author vcard'> Posted by <span class='fn' itemprop='author' itemscope='itemscope' itemtype='http://schema.org/Person'> <meta content='https://www.blogger.com/profile/13577459520968677064' itemprop='url'/> <a class='g-profile' href='https://www.blogger.com/profile/13577459520968677064' rel='author' title='author profile'> <span itemprop='name'>Ee Durbin</span> </a> </span> </span> <span class='post-timestamp'> at <meta content='https://pyfound.blogspot.com/2018/08/pycon-2019-call-for-sponsors.html' itemprop='url'/> <a class='timestamp-link' href='https://pyfound.blogspot.com/2018/08/pycon-2019-call-for-sponsors.html' rel='bookmark' title='permanent link'><abbr class='published' itemprop='datePublished' title='2018-08-23T12:51:00-04:00'>8/23/2018 12:51:00 PM</abbr></a> </span> <span class='post-comment-link'> </span> <span class='post-icons'> <span class='item-control blog-admin pid-312150102'> <a href='https://www.blogger.com/post-edit.g?blogID=8520&postID=3036785244728258643&from=pencil' title='Edit Post'> <img alt='' class='icon-action' height='18' src='https://resources.blogblog.com/img/icon18_edit_allbkg.gif' width='18'/> </a> </span> </span> <div class='post-share-buttons goog-inline-block'> </div> </div> <div class='post-footer-line post-footer-line-2'> <span class='post-labels'> </span> </div> <div class='post-footer-line post-footer-line-3'> <span class='post-location'> </span> </div> </div> </div> </div> </div></div> </div> <div class='blog-pager' id='blog-pager'> <span id='blog-pager-newer-link'> <a class='blog-pager-newer-link' href='https://pyfound.blogspot.com/search?updated-max=2019-02-05T12:39:00-05:00&amp;max-results=2&amp;reverse-paginate=true' id='Blog1_blog-pager-newer-link' title='Newer Posts'>Newer Posts</a> </span> <span id='blog-pager-older-link'> <a class='blog-pager-older-link' href='https://pyfound.blogspot.com/search?updated-max=2018-08-23T12:51:00-04:00&amp;max-results=2' id='Blog1_blog-pager-older-link' title='Older Posts'>Older Posts</a> </span> <a class='home-link' href='https://pyfound.blogspot.com/'>Home</a> </div> <div class='clear'></div> <div class='blog-feeds'> <div class='feed-links'> Subscribe to: <a class='feed-link' href='https://pyfound.blogspot.com/feeds/posts/default' target='_blank' type='application/atom+xml'>Posts (Atom)</a> </div> </div> </div></div> </div> </div> <div class='column-left-outer'> <div class='column-left-inner'> <aside> </aside> </div> </div> <div class='column-right-outer'> <div class='column-right-inner'> <aside> <div class='sidebar section' id='sidebar-right-1'><div class='widget Text' data-version='1' id='Text1'> <h2 class='title'>Mission</h2> <div class='widget-content'> <span style="font-size: 125%;font-size:125%;"><i>The mission of the <a href="https://www.python.org/psf/">Python Software Foundation</a> is to promote, protect, and advance the Python programming language, and to support and facilitate the growth of a diverse and international community of Python programmers.</i></span> </div> <div class='clear'></div> </div><div class='widget LinkList' data-version='1' id='LinkList1'> <div class='widget-content'> <ul> <li><a href='https://www.python.org/psf-landing/'>Python Software Foundation</a></li> <li><a href='https://www.python.org/psf/grants/'>Grants Program</a></li> <li><a href='https://www.python.org/psf/membership/'>Membership</a></li> <li><a href='https://www.python.org/community/awards/'>Awards</a></li> <li><a href='https://www.python.org/psf/records/board/minutes/'>Meeting Minutes</a></li> </ul> <div class='clear'></div> </div> </div><div class='widget Image' data-version='1' id='Image1'> <h2>PSF Sponsors</h2> <div class='widget-content'> <a href='https://www.python.org/psf/sponsors/'> <img alt='PSF Sponsors' height='143' id='Image1_img' src='https://blogger.googleusercontent.com/img/a/AVvXsEiagchpTRkriKoEe2Cqh2Bd5mX7Un4EYG-fq2Gdwx-Jx5scs09-0bmLVT89ewlhrQsiaJVE6nUU1Z0UkZFu0KUM2f82CiXXGsY_mg0JRq8iUtt_Rob_rcWX9meUjM2ql0XMoYFwO7dtt8T3cHO5oGfxo3HPk-9Lz358AlCHMDRAo5fgBXTuEuo=s302' width='302'/> </a> <br/> <span class='caption'>A big thank you to the above PSF sponsors for supporting our mission!</span> </div> <div class='clear'></div> </div><div class='widget BlogArchive' data-version='1' id='BlogArchive1'> <h2>Blog Archive</h2> <div class='widget-content'> <div id='ArchiveList'> <div id='BlogArchive1_ArchiveList'> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href='https://pyfound.blogspot.com/2025/'> 2025 </a> <span class='post-count' dir='ltr'>(6)</span> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href='https://pyfound.blogspot.com/2025/03/'> March </a> <span class='post-count' dir='ltr'>(4)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href='https://pyfound.blogspot.com/2025/02/'> February </a> <span class='post-count' dir='ltr'>(1)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href='https://pyfound.blogspot.com/2025/01/'> January </a> <span class='post-count' dir='ltr'>(1)</span> </li> </ul> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href='https://pyfound.blogspot.com/2024/'> 2024 </a> <span class='post-count' dir='ltr'>(58)</span> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href='https://pyfound.blogspot.com/2024/12/'> December </a> <span class='post-count' dir='ltr'>(6)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href='https://pyfound.blogspot.com/2024/11/'> November </a> <span class='post-count' dir='ltr'>(5)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href='https://pyfound.blogspot.com/2024/10/'> October </a> <span class='post-count' dir='ltr'>(3)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href='https://pyfound.blogspot.com/2024/09/'> September </a> <span class='post-count' dir='ltr'>(2)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href='https://pyfound.blogspot.com/2024/08/'> August </a> <span class='post-count' dir='ltr'>(4)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href='https://pyfound.blogspot.com/2024/07/'> July </a> <span class='post-count' dir='ltr'>(7)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href='https://pyfound.blogspot.com/2024/06/'> June </a> <span class='post-count' dir='ltr'>(16)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href='https://pyfound.blogspot.com/2024/05/'> May </a> <span class='post-count' dir='ltr'>(4)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href='https://pyfound.blogspot.com/2024/04/'> April </a> <span class='post-count' dir='ltr'>(2)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href='https://pyfound.blogspot.com/2024/03/'> March </a> <span class='post-count' dir='ltr'>(2)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href='https://pyfound.blogspot.com/2024/02/'> February </a> <span class='post-count' dir='ltr'>(3)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href='https://pyfound.blogspot.com/2024/01/'> January </a> <span class='post-count' dir='ltr'>(4)</span> </li> </ul> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href='https://pyfound.blogspot.com/2023/'> 2023 </a> <span class='post-count' dir='ltr'>(37)</span> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href='https://pyfound.blogspot.com/2023/12/'> December </a> <span class='post-count' dir='ltr'>(1)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href='https://pyfound.blogspot.com/2023/11/'> November </a> <span class='post-count' dir='ltr'>(3)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href='https://pyfound.blogspot.com/2023/10/'> October </a> <span class='post-count' dir='ltr'>(3)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href='https://pyfound.blogspot.com/2023/09/'> September </a> <span class='post-count' dir='ltr'>(2)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href='https://pyfound.blogspot.com/2023/08/'> August </a> <span class='post-count' dir='ltr'>(3)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href='https://pyfound.blogspot.com/2023/06/'> June </a> <span class='post-count' dir='ltr'>(5)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href='https://pyfound.blogspot.com/2023/05/'> May </a> <span class='post-count' dir='ltr'>(12)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href='https://pyfound.blogspot.com/2023/04/'> April </a> <span class='post-count' dir='ltr'>(2)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href='https://pyfound.blogspot.com/2023/03/'> March </a> <span class='post-count' dir='ltr'>(1)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href='https://pyfound.blogspot.com/2023/02/'> February </a> <span class='post-count' dir='ltr'>(3)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href='https://pyfound.blogspot.com/2023/01/'> January </a> <span class='post-count' dir='ltr'>(2)</span> </li> </ul> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href='https://pyfound.blogspot.com/2022/'> 2022 </a> <span class='post-count' dir='ltr'>(35)</span> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href='https://pyfound.blogspot.com/2022/12/'> December </a> <span class='post-count' dir='ltr'>(2)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href='https://pyfound.blogspot.com/2022/11/'> November </a> <span class='post-count' dir='ltr'>(3)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href='https://pyfound.blogspot.com/2022/10/'> October </a> <span class='post-count' dir='ltr'>(2)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href='https://pyfound.blogspot.com/2022/07/'> July </a> <span class='post-count' dir='ltr'>(3)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href='https://pyfound.blogspot.com/2022/06/'> June </a> <span class='post-count' dir='ltr'>(6)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href='https://pyfound.blogspot.com/2022/05/'> May </a> <span class='post-count' dir='ltr'>(12)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href='https://pyfound.blogspot.com/2022/04/'> April </a> <span class='post-count' dir='ltr'>(2)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href='https://pyfound.blogspot.com/2022/03/'> March </a> <span class='post-count' dir='ltr'>(3)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href='https://pyfound.blogspot.com/2022/02/'> February </a> <span class='post-count' dir='ltr'>(1)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href='https://pyfound.blogspot.com/2022/01/'> January </a> <span class='post-count' dir='ltr'>(1)</span> </li> </ul> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href='https://pyfound.blogspot.com/2021/'> 2021 </a> <span class='post-count' dir='ltr'>(42)</span> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href='https://pyfound.blogspot.com/2021/12/'> December </a> <span class='post-count' dir='ltr'>(3)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href='https://pyfound.blogspot.com/2021/11/'> November </a> <span class='post-count' dir='ltr'>(4)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href='https://pyfound.blogspot.com/2021/10/'> October </a> <span class='post-count' dir='ltr'>(3)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href='https://pyfound.blogspot.com/2021/09/'> September </a> <span class='post-count' dir='ltr'>(2)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href='https://pyfound.blogspot.com/2021/08/'> August </a> <span class='post-count' dir='ltr'>(1)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href='https://pyfound.blogspot.com/2021/07/'> July </a> <span class='post-count' dir='ltr'>(2)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href='https://pyfound.blogspot.com/2021/06/'> June </a> <span class='post-count' dir='ltr'>(4)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href='https://pyfound.blogspot.com/2021/05/'> May </a> <span class='post-count' dir='ltr'>(12)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href='https://pyfound.blogspot.com/2021/04/'> April </a> <span class='post-count' dir='ltr'>(5)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href='https://pyfound.blogspot.com/2021/03/'> March </a> <span class='post-count' dir='ltr'>(1)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href='https://pyfound.blogspot.com/2021/02/'> February </a> <span class='post-count' dir='ltr'>(4)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href='https://pyfound.blogspot.com/2021/01/'> January </a> <span class='post-count' dir='ltr'>(1)</span> </li> </ul> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href='https://pyfound.blogspot.com/2020/'> 2020 </a> <span class='post-count' dir='ltr'>(51)</span> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href='https://pyfound.blogspot.com/2020/12/'> December </a> <span class='post-count' dir='ltr'>(8)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href='https://pyfound.blogspot.com/2020/11/'> November </a> <span class='post-count' dir='ltr'>(3)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href='https://pyfound.blogspot.com/2020/10/'> October </a> <span class='post-count' dir='ltr'>(3)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href='https://pyfound.blogspot.com/2020/09/'> September </a> <span class='post-count' dir='ltr'>(4)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href='https://pyfound.blogspot.com/2020/07/'> July </a> <span class='post-count' dir='ltr'>(4)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href='https://pyfound.blogspot.com/2020/06/'> June </a> <span class='post-count' dir='ltr'>(2)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href='https://pyfound.blogspot.com/2020/05/'> May </a> <span class='post-count' dir='ltr'>(10)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href='https://pyfound.blogspot.com/2020/04/'> April </a> <span class='post-count' dir='ltr'>(11)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href='https://pyfound.blogspot.com/2020/03/'> March </a> <span class='post-count' dir='ltr'>(4)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href='https://pyfound.blogspot.com/2020/01/'> January </a> <span class='post-count' dir='ltr'>(2)</span> </li> </ul> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href='https://pyfound.blogspot.com/2019/'> 2019 </a> <span class='post-count' dir='ltr'>(45)</span> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href='https://pyfound.blogspot.com/2019/12/'> December </a> <span class='post-count' dir='ltr'>(3)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href='https://pyfound.blogspot.com/2019/11/'> November </a> <span class='post-count' dir='ltr'>(3)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href='https://pyfound.blogspot.com/2019/10/'> October </a> <span class='post-count' dir='ltr'>(3)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href='https://pyfound.blogspot.com/2019/09/'> September </a> <span class='post-count' dir='ltr'>(4)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href='https://pyfound.blogspot.com/2019/08/'> August </a> <span class='post-count' dir='ltr'>(3)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href='https://pyfound.blogspot.com/2019/07/'> July </a> <span class='post-count' dir='ltr'>(3)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href='https://pyfound.blogspot.com/2019/06/'> June </a> <span class='post-count' dir='ltr'>(5)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href='https://pyfound.blogspot.com/2019/05/'> May </a> <span class='post-count' dir='ltr'>(11)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href='https://pyfound.blogspot.com/2019/04/'> April </a> <span class='post-count' dir='ltr'>(1)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href='https://pyfound.blogspot.com/2019/03/'> March </a> <span class='post-count' dir='ltr'>(2)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href='https://pyfound.blogspot.com/2019/02/'> February </a> <span class='post-count' dir='ltr'>(5)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href='https://pyfound.blogspot.com/2019/01/'> January </a> <span class='post-count' dir='ltr'>(2)</span> </li> </ul> </li> </ul> <ul class='hierarchy'> <li class='archivedate expanded'> <a class='toggle' href='javascript:void(0)'> <span class='zippy toggle-open'> &#9660;&#160; </span> </a> <a class='post-count-link' href='https://pyfound.blogspot.com/2018/'> 2018 </a> <span class='post-count' dir='ltr'>(31)</span> <ul class='hierarchy'> <li class='archivedate expanded'> <a class='toggle' href='javascript:void(0)'> <span class='zippy toggle-open'> &#9660;&#160; </span> </a> <a class='post-count-link' href='https://pyfound.blogspot.com/2018/12/'> December </a> <span class='post-count' dir='ltr'>(5)</span> <ul class='posts'> <li><a href='https://pyfound.blogspot.com/2018/12/upcoming-pypi-improvements-for-2019.html'>Upcoming PyPI Improvements for 2019</a></li> <li><a href='https://pyfound.blogspot.com/2018/12/pypi-security-and-accessibility-q1-2019.html'>PyPI Security and Accessibility Q1 2019 Request fo...</a></li> <li><a href='https://pyfound.blogspot.com/2018/12/evangelizing-python-in-africa-chukwudi_65.html'>Evangelizing Python in Africa: Chukwudi Nwachukwu,...</a></li> <li><a href='https://pyfound.blogspot.com/2018/12/pyconza-2018-beautiful-community-in.html'>PyConZA 2018 &#8211; a beautiful community in South Africa</a></li> <li><a href='https://pyfound.blogspot.com/2018/12/november-2018-board-meeting-summary.html'>November 2018 board meeting summary</a></li> </ul> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href='https://pyfound.blogspot.com/2018/11/'> November </a> <span class='post-count' dir='ltr'>(1)</span> <ul class='posts'> <li><a href='https://pyfound.blogspot.com/2018/11/pypi-security-and-accessibility-q1-2019.html'>PyPI Security and Accessibility Q1 2019 Request fo...</a></li> </ul> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href='https://pyfound.blogspot.com/2018/10/'> October </a> <span class='post-count' dir='ltr'>(4)</span> <ul class='posts'> <li><a href='https://pyfound.blogspot.com/2018/10/pypi-security-and-accessibility-q1-2019.html'>PyPI Security and Accessibility Q1 2019 Request fo...</a></li> <li><a href='https://pyfound.blogspot.com/2018/10/2018-psf-recurring-giving-campaign.html'>2018 PSF Recurring Giving Campaign</a></li> <li><a href='https://pyfound.blogspot.com/2018/10/python-software-foundation-fellow.html'>Python Software Foundation Fellow Members for Q3 2018</a></li> <li><a href='https://pyfound.blogspot.com/2018/10/join-2018-python-developers-survey.html'>Join the 2018 Python Developers Survey: Share and ...</a></li> </ul> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href='https://pyfound.blogspot.com/2018/09/'> September </a> <span class='post-count' dir='ltr'>(1)</span> <ul class='posts'> <li><a href='https://pyfound.blogspot.com/2018/09/cpython-core-developer-sprint-2018.html'>CPython Core Developer Sprint 2018</a></li> </ul> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href='https://pyfound.blogspot.com/2018/08/'> August </a> <span class='post-count' dir='ltr'>(2)</span> <ul class='posts'> <li><a href='https://pyfound.blogspot.com/2018/08/redesigning-python-package-index.html'>Redesigning the Python Package Index</a></li> <li><a href='https://pyfound.blogspot.com/2018/08/pycon-2019-call-for-sponsors.html'>PyCon 2019 - Call for Sponsors</a></li> </ul> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href='https://pyfound.blogspot.com/2018/07/'> July </a> <span class='post-count' dir='ltr'>(3)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href='https://pyfound.blogspot.com/2018/06/'> June </a> <span class='post-count' dir='ltr'>(3)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href='https://pyfound.blogspot.com/2018/05/'> May </a> <span class='post-count' dir='ltr'>(5)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href='https://pyfound.blogspot.com/2018/04/'> April </a> <span class='post-count' dir='ltr'>(2)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href='https://pyfound.blogspot.com/2018/03/'> March </a> <span class='post-count' dir='ltr'>(2)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href='https://pyfound.blogspot.com/2018/02/'> February </a> <span class='post-count' dir='ltr'>(1)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href='https://pyfound.blogspot.com/2018/01/'> January </a> <span class='post-count' dir='ltr'>(2)</span> </li> </ul> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href='https://pyfound.blogspot.com/2017/'> 2017 </a> <span class='post-count' dir='ltr'>(32)</span> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href='https://pyfound.blogspot.com/2017/12/'> December </a> <span class='post-count' dir='ltr'>(3)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href='https://pyfound.blogspot.com/2017/11/'> November </a> <span class='post-count' dir='ltr'>(2)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href='https://pyfound.blogspot.com/2017/10/'> October </a> <span class='post-count' dir='ltr'>(4)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href='https://pyfound.blogspot.com/2017/09/'> September </a> <span class='post-count' dir='ltr'>(6)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href='https://pyfound.blogspot.com/2017/08/'> August </a> <span class='post-count' dir='ltr'>(2)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href='https://pyfound.blogspot.com/2017/07/'> July </a> <span class='post-count' dir='ltr'>(2)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href='https://pyfound.blogspot.com/2017/05/'> May </a> <span class='post-count' dir='ltr'>(2)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href='https://pyfound.blogspot.com/2017/04/'> April </a> <span class='post-count' dir='ltr'>(3)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href='https://pyfound.blogspot.com/2017/03/'> March </a> <span class='post-count' dir='ltr'>(2)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href='https://pyfound.blogspot.com/2017/02/'> February </a> <span class='post-count' dir='ltr'>(2)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href='https://pyfound.blogspot.com/2017/01/'> January </a> <span class='post-count' dir='ltr'>(4)</span> </li> </ul> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href='https://pyfound.blogspot.com/2016/'> 2016 </a> <span class='post-count' dir='ltr'>(27)</span> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href='https://pyfound.blogspot.com/2016/12/'> December </a> <span class='post-count' dir='ltr'>(2)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href='https://pyfound.blogspot.com/2016/10/'> October </a> <span class='post-count' dir='ltr'>(2)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href='https://pyfound.blogspot.com/2016/08/'> August </a> <span class='post-count' dir='ltr'>(4)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href='https://pyfound.blogspot.com/2016/07/'> July </a> <span class='post-count' dir='ltr'>(1)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href='https://pyfound.blogspot.com/2016/06/'> June </a> <span class='post-count' dir='ltr'>(3)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href='https://pyfound.blogspot.com/2016/05/'> May </a> <span class='post-count' dir='ltr'>(6)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href='https://pyfound.blogspot.com/2016/04/'> April </a> <span class='post-count' dir='ltr'>(4)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href='https://pyfound.blogspot.com/2016/03/'> March </a> <span class='post-count' dir='ltr'>(2)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href='https://pyfound.blogspot.com/2016/01/'> January </a> <span class='post-count' dir='ltr'>(3)</span> </li> </ul> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href='https://pyfound.blogspot.com/2015/'> 2015 </a> <span class='post-count' dir='ltr'>(67)</span> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href='https://pyfound.blogspot.com/2015/12/'> December </a> <span class='post-count' dir='ltr'>(2)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href='https://pyfound.blogspot.com/2015/11/'> November </a> <span class='post-count' dir='ltr'>(4)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href='https://pyfound.blogspot.com/2015/10/'> October </a> <span class='post-count' dir='ltr'>(4)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href='https://pyfound.blogspot.com/2015/09/'> September </a> <span class='post-count' dir='ltr'>(1)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href='https://pyfound.blogspot.com/2015/08/'> August </a> <span class='post-count' dir='ltr'>(2)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href='https://pyfound.blogspot.com/2015/07/'> July </a> <span class='post-count' dir='ltr'>(4)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href='https://pyfound.blogspot.com/2015/06/'> June </a> <span class='post-count' dir='ltr'>(6)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href='https://pyfound.blogspot.com/2015/05/'> May </a> <span class='post-count' dir='ltr'>(4)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href='https://pyfound.blogspot.com/2015/04/'> April </a> <span class='post-count' dir='ltr'>(13)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href='https://pyfound.blogspot.com/2015/03/'> March </a> <span class='post-count' dir='ltr'>(14)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href='https://pyfound.blogspot.com/2015/02/'> February </a> <span class='post-count' dir='ltr'>(9)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href='https://pyfound.blogspot.com/2015/01/'> January </a> <span class='post-count' dir='ltr'>(4)</span> </li> </ul> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href='https://pyfound.blogspot.com/2014/'> 2014 </a> <span class='post-count' dir='ltr'>(14)</span> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href='https://pyfound.blogspot.com/2014/10/'> October </a> <span class='post-count' dir='ltr'>(1)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href='https://pyfound.blogspot.com/2014/09/'> September </a> <span class='post-count' dir='ltr'>(1)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href='https://pyfound.blogspot.com/2014/08/'> August </a> <span class='post-count' dir='ltr'>(2)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href='https://pyfound.blogspot.com/2014/07/'> July </a> <span class='post-count' dir='ltr'>(1)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href='https://pyfound.blogspot.com/2014/05/'> May </a> <span class='post-count' dir='ltr'>(1)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href='https://pyfound.blogspot.com/2014/04/'> April </a> <span class='post-count' dir='ltr'>(1)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href='https://pyfound.blogspot.com/2014/03/'> March </a> <span class='post-count' dir='ltr'>(2)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href='https://pyfound.blogspot.com/2014/02/'> February </a> <span class='post-count' dir='ltr'>(3)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href='https://pyfound.blogspot.com/2014/01/'> January </a> <span class='post-count' dir='ltr'>(2)</span> </li> </ul> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href='https://pyfound.blogspot.com/2013/'> 2013 </a> <span class='post-count' dir='ltr'>(18)</span> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href='https://pyfound.blogspot.com/2013/11/'> November </a> <span class='post-count' dir='ltr'>(1)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href='https://pyfound.blogspot.com/2013/09/'> September </a> <span class='post-count' dir='ltr'>(2)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href='https://pyfound.blogspot.com/2013/08/'> August </a> <span class='post-count' dir='ltr'>(1)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href='https://pyfound.blogspot.com/2013/07/'> July </a> <span class='post-count' dir='ltr'>(1)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href='https://pyfound.blogspot.com/2013/06/'> June </a> <span class='post-count' dir='ltr'>(1)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href='https://pyfound.blogspot.com/2013/04/'> April </a> <span class='post-count' dir='ltr'>(1)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href='https://pyfound.blogspot.com/2013/03/'> March </a> <span class='post-count' dir='ltr'>(5)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href='https://pyfound.blogspot.com/2013/02/'> February </a> <span class='post-count' dir='ltr'>(3)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href='https://pyfound.blogspot.com/2013/01/'> January </a> <span class='post-count' dir='ltr'>(3)</span> </li> </ul> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href='https://pyfound.blogspot.com/2012/'> 2012 </a> <span class='post-count' dir='ltr'>(21)</span> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href='https://pyfound.blogspot.com/2012/12/'> December </a> <span class='post-count' dir='ltr'>(3)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href='https://pyfound.blogspot.com/2012/11/'> November </a> <span class='post-count' dir='ltr'>(2)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href='https://pyfound.blogspot.com/2012/10/'> October </a> <span class='post-count' dir='ltr'>(2)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href='https://pyfound.blogspot.com/2012/09/'> September </a> <span class='post-count' dir='ltr'>(1)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href='https://pyfound.blogspot.com/2012/08/'> August </a> <span class='post-count' dir='ltr'>(1)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href='https://pyfound.blogspot.com/2012/07/'> July </a> <span class='post-count' dir='ltr'>(1)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href='https://pyfound.blogspot.com/2012/06/'> June </a> <span class='post-count' dir='ltr'>(2)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href='https://pyfound.blogspot.com/2012/05/'> May </a> <span class='post-count' dir='ltr'>(4)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href='https://pyfound.blogspot.com/2012/04/'> April </a> <span class='post-count' dir='ltr'>(1)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href='https://pyfound.blogspot.com/2012/03/'> March </a> <span class='post-count' dir='ltr'>(1)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href='https://pyfound.blogspot.com/2012/01/'> January </a> <span class='post-count' dir='ltr'>(3)</span> </li> </ul> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href='https://pyfound.blogspot.com/2011/'> 2011 </a> <span class='post-count' dir='ltr'>(55)</span> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href='https://pyfound.blogspot.com/2011/12/'> December </a> <span class='post-count' dir='ltr'>(2)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href='https://pyfound.blogspot.com/2011/11/'> November </a> <span class='post-count' dir='ltr'>(1)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href='https://pyfound.blogspot.com/2011/10/'> October </a> <span class='post-count' dir='ltr'>(7)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href='https://pyfound.blogspot.com/2011/09/'> September </a> <span class='post-count' dir='ltr'>(5)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href='https://pyfound.blogspot.com/2011/08/'> August </a> <span class='post-count' dir='ltr'>(2)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href='https://pyfound.blogspot.com/2011/07/'> July </a> <span class='post-count' dir='ltr'>(1)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href='https://pyfound.blogspot.com/2011/06/'> June </a> <span class='post-count' dir='ltr'>(3)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href='https://pyfound.blogspot.com/2011/05/'> May </a> <span class='post-count' dir='ltr'>(8)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href='https://pyfound.blogspot.com/2011/04/'> April </a> <span class='post-count' dir='ltr'>(8)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href='https://pyfound.blogspot.com/2011/03/'> March </a> <span class='post-count' dir='ltr'>(13)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href='https://pyfound.blogspot.com/2011/02/'> February </a> <span class='post-count' dir='ltr'>(2)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href='https://pyfound.blogspot.com/2011/01/'> January </a> <span class='post-count' dir='ltr'>(3)</span> </li> </ul> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href='https://pyfound.blogspot.com/2010/'> 2010 </a> <span class='post-count' dir='ltr'>(35)</span> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href='https://pyfound.blogspot.com/2010/12/'> December </a> <span class='post-count' dir='ltr'>(4)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href='https://pyfound.blogspot.com/2010/11/'> November </a> <span class='post-count' dir='ltr'>(1)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href='https://pyfound.blogspot.com/2010/10/'> October </a> <span class='post-count' dir='ltr'>(3)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href='https://pyfound.blogspot.com/2010/09/'> September </a> <span class='post-count' dir='ltr'>(2)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href='https://pyfound.blogspot.com/2010/08/'> August </a> <span class='post-count' dir='ltr'>(1)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href='https://pyfound.blogspot.com/2010/07/'> July </a> <span class='post-count' dir='ltr'>(8)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href='https://pyfound.blogspot.com/2010/06/'> June </a> <span class='post-count' dir='ltr'>(6)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href='https://pyfound.blogspot.com/2010/05/'> May </a> <span class='post-count' dir='ltr'>(2)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href='https://pyfound.blogspot.com/2010/04/'> April </a> <span class='post-count' dir='ltr'>(4)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href='https://pyfound.blogspot.com/2010/03/'> March </a> <span class='post-count' dir='ltr'>(2)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href='https://pyfound.blogspot.com/2010/01/'> January </a> <span class='post-count' dir='ltr'>(2)</span> </li> </ul> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href='https://pyfound.blogspot.com/2009/'> 2009 </a> <span class='post-count' dir='ltr'>(21)</span> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href='https://pyfound.blogspot.com/2009/12/'> December </a> <span class='post-count' dir='ltr'>(1)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href='https://pyfound.blogspot.com/2009/10/'> October </a> <span class='post-count' dir='ltr'>(1)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href='https://pyfound.blogspot.com/2009/09/'> September </a> <span class='post-count' dir='ltr'>(6)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href='https://pyfound.blogspot.com/2009/08/'> August </a> <span class='post-count' dir='ltr'>(4)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href='https://pyfound.blogspot.com/2009/07/'> July </a> <span class='post-count' dir='ltr'>(4)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href='https://pyfound.blogspot.com/2009/06/'> June </a> <span class='post-count' dir='ltr'>(1)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href='https://pyfound.blogspot.com/2009/05/'> May </a> <span class='post-count' dir='ltr'>(2)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href='https://pyfound.blogspot.com/2009/04/'> April </a> <span class='post-count' dir='ltr'>(1)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href='https://pyfound.blogspot.com/2009/02/'> February </a> <span class='post-count' dir='ltr'>(1)</span> </li> </ul> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href='https://pyfound.blogspot.com/2008/'> 2008 </a> <span class='post-count' dir='ltr'>(23)</span> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href='https://pyfound.blogspot.com/2008/12/'> December </a> <span class='post-count' dir='ltr'>(1)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href='https://pyfound.blogspot.com/2008/11/'> November </a> <span class='post-count' dir='ltr'>(1)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href='https://pyfound.blogspot.com/2008/10/'> October </a> <span class='post-count' dir='ltr'>(1)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href='https://pyfound.blogspot.com/2008/08/'> August </a> <span class='post-count' dir='ltr'>(3)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href='https://pyfound.blogspot.com/2008/07/'> July </a> <span class='post-count' dir='ltr'>(1)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href='https://pyfound.blogspot.com/2008/05/'> May </a> <span class='post-count' dir='ltr'>(3)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href='https://pyfound.blogspot.com/2008/04/'> April </a> <span class='post-count' dir='ltr'>(1)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href='https://pyfound.blogspot.com/2008/03/'> March </a> <span class='post-count' dir='ltr'>(5)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href='https://pyfound.blogspot.com/2008/02/'> February </a> <span class='post-count' dir='ltr'>(4)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href='https://pyfound.blogspot.com/2008/01/'> January </a> <span class='post-count' dir='ltr'>(3)</span> </li> </ul> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href='https://pyfound.blogspot.com/2007/'> 2007 </a> <span class='post-count' dir='ltr'>(26)</span> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href='https://pyfound.blogspot.com/2007/12/'> December </a> <span class='post-count' dir='ltr'>(3)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href='https://pyfound.blogspot.com/2007/11/'> November </a> <span class='post-count' dir='ltr'>(2)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href='https://pyfound.blogspot.com/2007/10/'> October </a> <span class='post-count' dir='ltr'>(6)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href='https://pyfound.blogspot.com/2007/09/'> September </a> <span class='post-count' dir='ltr'>(1)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href='https://pyfound.blogspot.com/2007/08/'> August </a> <span class='post-count' dir='ltr'>(1)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href='https://pyfound.blogspot.com/2007/07/'> July </a> <span class='post-count' dir='ltr'>(1)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href='https://pyfound.blogspot.com/2007/06/'> June </a> <span class='post-count' dir='ltr'>(2)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href='https://pyfound.blogspot.com/2007/05/'> May </a> <span class='post-count' dir='ltr'>(1)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href='https://pyfound.blogspot.com/2007/04/'> April </a> <span class='post-count' dir='ltr'>(1)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href='https://pyfound.blogspot.com/2007/03/'> March </a> <span class='post-count' dir='ltr'>(2)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href='https://pyfound.blogspot.com/2007/02/'> February </a> <span class='post-count' dir='ltr'>(3)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href='https://pyfound.blogspot.com/2007/01/'> January </a> <span class='post-count' dir='ltr'>(3)</span> </li> </ul> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href='https://pyfound.blogspot.com/2006/'> 2006 </a> <span class='post-count' dir='ltr'>(39)</span> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href='https://pyfound.blogspot.com/2006/12/'> December </a> <span class='post-count' dir='ltr'>(3)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href='https://pyfound.blogspot.com/2006/11/'> November </a> <span class='post-count' dir='ltr'>(4)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href='https://pyfound.blogspot.com/2006/10/'> October </a> <span class='post-count' dir='ltr'>(5)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href='https://pyfound.blogspot.com/2006/09/'> September </a> <span class='post-count' dir='ltr'>(4)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href='https://pyfound.blogspot.com/2006/08/'> August </a> <span class='post-count' dir='ltr'>(4)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href='https://pyfound.blogspot.com/2006/07/'> July </a> <span class='post-count' dir='ltr'>(3)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href='https://pyfound.blogspot.com/2006/05/'> May </a> <span class='post-count' dir='ltr'>(7)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href='https://pyfound.blogspot.com/2006/04/'> April </a> <span class='post-count' dir='ltr'>(6)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href='https://pyfound.blogspot.com/2006/03/'> March </a> <span class='post-count' dir='ltr'>(3)</span> </li> </ul> </li> </ul> </div> </div> <div class='clear'></div> </div> </div></div> <table border='0' cellpadding='0' cellspacing='0' class='section-columns columns-2'> <tbody> <tr> <td class='first columns-cell'> <div class='sidebar no-items section' id='sidebar-right-2-1'></div> </td> <td class='columns-cell'> <div class='sidebar no-items section' id='sidebar-right-2-2'></div> </td> </tr> </tbody> </table> <div class='sidebar no-items section' id='sidebar-right-3'></div> </aside> </div> </div> </div> <div style='clear: both'></div> <!-- columns --> </div> <!-- main --> </div> </div> <div class='main-cap-bottom cap-bottom'> <div class='cap-left'></div> <div class='cap-right'></div> </div> </div> <footer> <div class='footer-outer'> <div class='footer-cap-top cap-top'> <div class='cap-left'></div> <div class='cap-right'></div> </div> <div class='fauxborder-left footer-fauxborder-left'> <div class='fauxborder-right footer-fauxborder-right'></div> <div class='region-inner footer-inner'> <div class='foot no-items section' id='footer-1'></div> <table border='0' cellpadding='0' cellspacing='0' class='section-columns columns-2'> <tbody> <tr> <td class='first columns-cell'> <div class='foot no-items section' id='footer-2-1'></div> </td> <td class='columns-cell'> <div class='foot no-items section' id='footer-2-2'></div> </td> </tr> </tbody> </table> <!-- outside of the include in order to lock Attribution widget --> <div class='foot section' id='footer-3' name='Footer'><div class='widget Attribution' data-version='1' id='Attribution1'> <div class='widget-content' style='text-align: center;'> Powered by <a href='https://www.blogger.com' target='_blank'>Blogger</a>. </div> <div class='clear'></div> </div></div> </div> </div> <div class='footer-cap-bottom cap-bottom'> <div class='cap-left'></div> <div class='cap-right'></div> </div> </div> </footer> <!-- content --> </div> </div> <div class='content-cap-bottom cap-bottom'> <div class='cap-left'></div> <div class='cap-right'></div> </div> </div> </div> <script type='text/javascript'> window.setTimeout(function() { document.body.className = document.body.className.replace('loading', ''); }, 10); </script> <script type="text/javascript" src="https://www.blogger.com/static/v1/widgets/2806328968-widgets.js"></script> <script type='text/javascript'> window['__wavt'] = 'AOuZoY60Qmg1H9wQeRLdwseWGBlPXlVkwg:1744004883937';_WidgetManager._Init('//www.blogger.com/rearrange?blogID\x3d8520','//pyfound.blogspot.com/2018/','8520'); _WidgetManager._SetDataContext([{'name': 'blog', 'data': {'blogId': '8520', 'title': 'Python Software Foundation News', 'url': 'https://pyfound.blogspot.com/2018/', 'canonicalUrl': 'https://pyfound.blogspot.com/2018/', 'homepageUrl': 'https://pyfound.blogspot.com/', 'searchUrl': 'https://pyfound.blogspot.com/search', 'canonicalHomepageUrl': 'https://pyfound.blogspot.com/', 'blogspotFaviconUrl': 'https://pyfound.blogspot.com/favicon.ico', 'bloggerUrl': 'https://www.blogger.com', 'hasCustomDomain': false, 'httpsEnabled': true, 'enabledCommentProfileImages': true, 'gPlusViewType': 'FILTERED_POSTMOD', 'adultContent': false, 'analyticsAccountNumber': 'UA-55961911-3', 'encoding': 'UTF-8', 'locale': 'en', 'localeUnderscoreDelimited': 'en', 'languageDirection': 'ltr', 'isPrivate': false, 'isMobile': false, 'isMobileRequest': false, 'mobileClass': '', 'isPrivateBlog': false, 'isDynamicViewsAvailable': false, 'feedLinks': '\x3clink rel\x3d\x22alternate\x22 type\x3d\x22application/atom+xml\x22 title\x3d\x22Python Software Foundation News - Atom\x22 href\x3d\x22https://pyfound.blogspot.com/feeds/posts/default\x22 /\x3e\n\x3clink rel\x3d\x22alternate\x22 type\x3d\x22application/rss+xml\x22 title\x3d\x22Python Software Foundation News - RSS\x22 href\x3d\x22https://pyfound.blogspot.com/feeds/posts/default?alt\x3drss\x22 /\x3e\n\x3clink rel\x3d\x22service.post\x22 type\x3d\x22application/atom+xml\x22 title\x3d\x22Python Software Foundation News - Atom\x22 href\x3d\x22https://www.blogger.com/feeds/8520/posts/default\x22 /\x3e\n', 'meTag': '', 'adsenseHostId': 'ca-host-pub-1556223355139109', 'adsenseHasAds': false, 'adsenseAutoAds': false, 'boqCommentIframeForm': true, 'loginRedirectParam': '', 'view': '', 'dynamicViewsCommentsSrc': '//www.blogblog.com/dynamicviews/4224c15c4e7c9321/js/comments.js', 'dynamicViewsScriptSrc': '//www.blogblog.com/dynamicviews/2c423cb85ff27b65', 'plusOneApiSrc': 'https://apis.google.com/js/platform.js', 'disableGComments': true, 'interstitialAccepted': false, 'sharing': {'platforms': [{'name': 'Get link', 'key': 'link', 'shareMessage': 'Get link', 'target': ''}, {'name': 'Facebook', 'key': 'facebook', 'shareMessage': 'Share to Facebook', 'target': 'facebook'}, {'name': 'BlogThis!', 'key': 'blogThis', 'shareMessage': 'BlogThis!', 'target': 'blog'}, {'name': 'X', 'key': 'twitter', 'shareMessage': 'Share to X', 'target': 'twitter'}, {'name': 'Pinterest', 'key': 'pinterest', 'shareMessage': 'Share to Pinterest', 'target': 'pinterest'}, {'name': 'Email', 'key': 'email', 'shareMessage': 'Email', 'target': 'email'}], 'disableGooglePlus': true, 'googlePlusShareButtonWidth': 0, 'googlePlusBootstrap': '\x3cscript type\x3d\x22text/javascript\x22\x3ewindow.___gcfg \x3d {\x27lang\x27: \x27en\x27};\x3c/script\x3e'}, 'hasCustomJumpLinkMessage': false, 'jumpLinkMessage': 'Read more', 'pageType': 'archive', 'pageName': '2018', 'pageTitle': 'Python Software Foundation News: 2018'}}, {'name': 'features', 'data': {}}, {'name': 'messages', 'data': {'edit': 'Edit', 'linkCopiedToClipboard': 'Link copied to clipboard!', 'ok': 'Ok', 'postLink': 'Post Link'}}, {'name': 'template', 'data': {'name': 'custom', 'localizedName': 'Custom', 'isResponsive': false, 'isAlternateRendering': false, 'isCustom': true}}, {'name': 'view', 'data': {'classic': {'name': 'classic', 'url': '?view\x3dclassic'}, 'flipcard': {'name': 'flipcard', 'url': '?view\x3dflipcard'}, 'magazine': {'name': 'magazine', 'url': '?view\x3dmagazine'}, 'mosaic': {'name': 'mosaic', 'url': '?view\x3dmosaic'}, 'sidebar': {'name': 'sidebar', 'url': '?view\x3dsidebar'}, 'snapshot': {'name': 'snapshot', 'url': '?view\x3dsnapshot'}, 'timeslide': {'name': 'timeslide', 'url': '?view\x3dtimeslide'}, 'isMobile': false, 'title': 'Python Software Foundation News', 'description': '\xa0\xa0News from the Python Software Foundation', 'url': 'https://pyfound.blogspot.com/2018/', 'type': 'feed', 'isSingleItem': false, 'isMultipleItems': true, 'isError': false, 'isPage': false, 'isPost': false, 'isHomepage': false, 'isArchive': true, 'isLabelSearch': false, 'archive': {'year': 2018, 'rangeMessage': 'Showing posts from 2018'}}}]); _WidgetManager._RegisterWidget('_NavbarView', new _WidgetInfo('Navbar1', 'navbar', document.getElementById('Navbar1'), {}, 'displayModeFull')); _WidgetManager._RegisterWidget('_HeaderView', new _WidgetInfo('Header1', 'header', document.getElementById('Header1'), {}, 'displayModeFull')); _WidgetManager._RegisterWidget('_BlogView', new _WidgetInfo('Blog1', 'main', document.getElementById('Blog1'), {'cmtInteractionsEnabled': false, 'lightboxEnabled': true, 'lightboxModuleUrl': 'https://www.blogger.com/static/v1/jsbin/1205177679-lbx.js', 'lightboxCssUrl': 'https://www.blogger.com/static/v1/v-css/3681588378-lightbox_bundle.css'}, 'displayModeFull')); _WidgetManager._RegisterWidget('_TextView', new _WidgetInfo('Text1', 'sidebar-right-1', document.getElementById('Text1'), {}, 'displayModeFull')); _WidgetManager._RegisterWidget('_LinkListView', new _WidgetInfo('LinkList1', 'sidebar-right-1', document.getElementById('LinkList1'), {}, 'displayModeFull')); _WidgetManager._RegisterWidget('_ImageView', new _WidgetInfo('Image1', 'sidebar-right-1', document.getElementById('Image1'), {'resize': true}, 'displayModeFull')); _WidgetManager._RegisterWidget('_BlogArchiveView', new _WidgetInfo('BlogArchive1', 'sidebar-right-1', document.getElementById('BlogArchive1'), {'languageDirection': 'ltr', 'loadingMessage': 'Loading\x26hellip;'}, 'displayModeFull')); _WidgetManager._RegisterWidget('_AttributionView', new _WidgetInfo('Attribution1', 'footer-3', document.getElementById('Attribution1'), {}, 'displayModeFull')); </script> </body> </html>

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