Past Meetup

SoCal Piggies Meeting February 2013

This Meetup is past

73 people went


Since PyCon US is coming up quickly, anyone giving a talk at PyCon US is invited to give a draft of their presentation in front of a live audience. The talk won't be recorded which means it's a chance to have a live audience review your material. In addition there will be time to socialize and hang out with fun friends from the Southern California Python community.

Currently Scheduled Talks:

1. Why you should use Python 3 for text processing (

2. How to Except When You're Excepting (

3. Advanced Django Forms Usage (

Talk Details:

First talk: Why you should use Python 3 for text processing ( by David Mertz

This talk, by its nature, will be a somewhat impressionistic review of nice-to-have improvements to text processing that have come to python--in part in the long time frame since my book on the topic, but with an emphasis on 3.x features.

Improvements to collections help with many things, but seem to come up particularly often as nice ways to do text processing tasks: e.g. namedtuple; Counter; OrderedDict; defaultdict.

Lots of improvements and rationalization of email package (mailbox too).

Unicode handling--sometimes an important aspect of text processing--remains unwieldy, but has at least entered the domain of "possible to do right" (usually).

Codecs improvements

Relatively old but continues to improve: textwrap.

ElementTree as standard library high-level option for XML handling (with various tweaks in 3.x version).

str.format(); technically back ported to 2.x also, but a good option that wasn't in historical python versions.

Miscellaneous improvements to datetime.

logging has become good enough that it should be a standard tool for logging (also backported generally).


csv improvements.

Not only in 3.x, but json as a standard module is wonderful for serialization and data sharing.

Ancient but little known tip: use str.startswith([list,of,values]).

Second talk: How to Except When You're Excepting ( by Esther Nam (

Exception handling is a form of defensive programming, requiring the programmer to anticipate possible points of failure in his/her code, and think through methods for handling such failures in a graceful way. In this talk, Esther will:

Describe various types of exceptions that can occur (system- and application- level). Compare and contrast naive ways to handle exceptions versus well-known design patterns for exception handling, especially as related to debugging. Cover various best practices for catching, recovering from, or otherwise handling exceptions, including ways to take advantage of Python-specific features, such as the context manager and built-in Exception types. Explain the consequences of Exception handling, as relating to general principles of flow control. The listener should walk away with a better idea of why proper exception handling is important, as well as when and how to do so. They should also leave wondering how to get better at sussing out where failure points might occur in their code, and how to deal with unexpected events in a graceful manner.

Third talk: "Advanced Django Forms Usage (" by Daniel Greenfeld (

Django forms are really powerful but there are edge cases, especially with class based views, that can cause a bit of anguish. This talk will go over how to handle many common solutions not currently described in the core documentation. It will also cover useful third-party libraries.

Material covered:

Django forms in functional views [5 min] Economize your code with the request.POST practice Understanding the ramifications of the request.POST practice Django forms in class based views [5 min] UpdateView without a slug Two or more forms in a single view Modifying forms on the fly [5 min] Adding fields Changing widgets Using forms to provide schema for schemaless datastores [5 min] Coverage on two 3rd party form libraries you should consider using [5 min] django-crispy-forms django-floppy-forms Third party libraries that get twitter bootstrap into your forms [2 min] Adding date widgets the easy way [3 min]