Sprinting @ Google in Mountain View

About seven people sprinted during most of the day here at Google (two other people joined later in the day) with three people in NYC (one person joined later). Guido presented possible sprint topics as listed on the GoogleSprint and GoogleSprintPy3k wiki pages at the start after we got video conferencing working between NYC and here. I ended up working with Jiwon Seo on redesigning the interface for function signature objects. This led to me writing PEP 362.

Changed the approach being taken to what Talin suggested on python-dev when I first started talking about doing signature objects; each parameter is represented by an object instead of having a tuple with parameter names and then various dicts keyed on those names. While I originally preferred the latter approach, the former is much easier to extend for future changes to function signatures (namely keyword-only parameters and function annotations which I keep calling "type tags" for some reason).

There is no implementation yet for the PEP (that is what the sprint will be for). Should have a Python version up and going tomorrow. I have some open issues in the PEP that will need to be resolved before it gets checked in. If these objects end up on every function then I will most likely re-implement in C and then tie into the MAKE_FUNCTION bytecode.

I have not addressed adding the information to C functions, but it should be possible by passing in the PyArg_ParseTuple() format string. Only issue is specifying how optional arguments are handled since they don't necessarily have a default value. But one thing at a time.