imapautofiler 1.8.0

imapautofiler applies user-defined rules to automatically organize messages on an IMAP server.

What’s new in 1.8.0?

  • use yaml safe loader
  • drop python 3.5 and add 3.7 support
  • perform substring matches without regard to case

sphinxcontrib.datatemplates 0.2.0

sphinxcontrib.datatemplates is an extension for Sphinx to render parts of reStructuredText pages from data files in formats like JSON, YAML, and CSV.

What’s new in 0.2.0?

  • Use sphinx.util.logging for logging calls (contributed by Sean McGinnis)
  • optionally exec the file and pass settings to the template
  • make test-template support python 2 and 3
  • update to python 3.5
  • add license file
  • Add links to repo and docs from README and docs frontpage (contributed by Christoph Deil)
  • add a command line tool to make testing templates easier

sphinxcontrib-spelling 4.2.1

sphinxcontrib-spelling is a spelling checker for Sphinx-based documentation. It uses PyEnchant to produce a report showing misspelled words.

What’s new in 4.2.1?

  • fix remaining logging issue (contributed by Timotheus Kampik)
  • Remove usage of deprecated logging API (contributed by Tim Graham)

Planting Acorns

This post is based on the closing keynote I gave for PyTennessee in February 2018, where I talked about how the governance of an open source project impacts  the health of the project, and some lessons we learned in building the OpenStack community that can be applied to other projects.

OpenStack is a cloud computing system written in Python. The project is 8 years old. During that time we have had 18 major releases, and to give you an idea of the size of the community, during 2017, we had 2,500 people contribute more than 65,000 patches. The age and size of the project means our community has been through several transitions and challenges that other smaller projects may not yet have encountered, and my hope is that by thinking about them early, you can prepare for them, and your communities will be able to grow in a healthier way.

I started working on OpenStack in 2012, 2 years after the project had been launched and right at the beginning of a period of increased interest and contributions. It was the leading edge of the up-slope for our hype curve. I started looking at the code with my team at Dreamhost, but my first significant exposure to the community was at a Design Summit, an in-person event for organizing the teams working on different parts of the software. It was an energizing experience.

I had been to conferences before, including open source conferences like PyCon and PyTennessee, but never anything quite like this. We had hundreds of contributors gathered together in one place for a week of meetings, discussions, arguments, decision making, and, just as importantly, socializing. The enthusiasm of the participants was amazing, and the event led me to dive deeper and deeper into the project over the following 6 years.

At that summit I was part of starting two new teams, one based on metering cloud use for billing and one based on building a set of reusable libraries for the different OpenStack services. My experience with trying to help launch those teams within the community sparked my ongoing interest in open source project governance — not just how to build open source software, but how to build the communities around it — in part because, at the time, OpenStack had no system in place for expanding the scope of the project, and the community struggled to work out how to do it. Today, I want to share 9 themes that may help you avoid pitfalls when considering governance in your own projects.

Continue reading “Planting Acorns”

git-nit 1.0.0

git-nit is a tool for grabbing existing reviews on gerrit and layering on a new patch to fix nits.

  • This is the first public release.

io — Text, Binary, and Raw Stream I/O Tools — PyMOTW 3

The io module provides access to the built-in open() function and the classes used to implement file-based input and output operations. The classes are decomposed in such a way that they can be recombined for alternate purposes, for example to enable writing Unicode data to a network socket.

Read more…

This post is part of the Python Module of the Week series for Python 3. See for more articles from the series.