The bisect module implements an algorithm for inserting elements into a list while maintaining the list in sorted order. This can be much more efficient than repeatedly sorting a list, or explicitly sorting a large list after it is constructed.
Read more at pymotw.com: bisect
The linecache module is used extensively throughout the Python standard library when dealing with Python source files. The implementation of the cache simply holds the contents of files, parsed into separate lines, in a dictionary in memory. The API returns the requested line(s) by indexing into a list. The time savings is from (repeatedly) reading the file and parsing lines to find the one desired. This is especially useful when looking for multiple lines from the same file, such as when producing a traceback for an error report.
I just posted a new version of my codehosting project for django which supports passing the Atom feeds for release updates through feedburner.com. There isn’t anything tying the implementation to FeedBurner, of course, but since that’s why I wanted the feature that’s how I am describing it.
One tricky bit was I wanted all of the existing subscribers to my feed(s) to be redirected to the FeedBurner URL. I couldn’t just add a redirect rule in Apache, since not all of the feeds are set up with FeedBurner yet.
The textwrap module can be used to format text for output in situations where pretty-printing is desired. It offers programmatic functionality similar to the paragraph wrapping or filling features found in many text editors.
Read more at pymotw.com: textwrap
The StringIO class provides a convenient means of working with text in-memory using the file API (read, write. etc.). There are 2 separate implementations. The cStringIO module is written in C for speed, while the StringIO module is written in Python for portability. Using cStringIO to build large strings can offer performance savings over some other string conctatenation techniques.
Read more at pymotw.com: StringIO
The Queue module provides a FIFO implementation suitable for multi-threaded programming. It can be used to pass messages or other data between producer and consumer threads safely. Locking is handled for the caller, so it is simple to have as many threads as you want working with the same Queue instance. A Queue’s size (number of elements) may be restricted to throttle memory usage or processing.
Read more at pymotw.com: Queue
This is a test from google docs. My friend Luis sent me a link to “Why I Switched from OpenOffice to Google Docs”, which happened to mention that it supports “publishing”, so I wanted to give it a try.
The ConfigParser module is very useful for creating user-editable configuration files for your applications. The configuration files are broken up into sections, and each section can contain name-value pairs for configuration data. Value interpolation using Python formatting strings is also supported, to build values which depend on one another (this is especially handy for paths or URLs).
Read more at pymotw.com: ConfigParser
Tomorrow’s post will cover the ConfigParser module. Beyond that, I have a few more weeks planned out, and am looking for suggestions for which modules to cover next.
If you were stranded on a desert island, which standard library module would you want, and why?
This is a test post to see experiment with the code hightlighting output from pygments.org (as recommended by a couple of commenters on my previous post). Pygments produces HTML with CSS-based styling, so I have added a bunch of new styles to my blogger template. And I am including as a sample the same Python code posted earlier with the alternative syntax highlighting tool.
def main(self, *m3ufilenames): self.startRSS() self.generateChannelInfo() for line in fileinput.