setup
python versions
project directory
version numbering
coding styles
modules & libraries
intro
import system
standard libraries - essential modules
atexit, argparse, bisect, calendar, codecs, collections, copy, csv, datetime, fnmatch, glob, io, json, logging, multiprocessing, operator, os, random, re, select, shutil, signal, threading, tempfile, urllib, uuid
external libraries - basics
frameworks
Doug Hellmann
how to write a Python app from scratch?
getting a module into Python StdLib?
3 overlooked StdLib modules
(more)...
API changes
Christophe de Vienne
API design mistakes?
WSME & framework API support?
pros & cons?
python API design pros, cons?
best practices - changes, EOLs, removals
(more)
docs
intro
Sphinx and reST
Sphinx modules
Sphinx extensions
distribution
history
packaging with
pbr
wheel format
package installation
sharing your work
Nick Coghlan
why fragmented package ecosystem?
setuptools tips & hints
PEP 426
wheels & standard library
entry points
virtual environments
virtualenv
unit testing
basics
fixtures
mocking
scenario data
test streaming & parallelism
coverage
virtualenv setups with
tox
policy aka best practices
Robert Collins
preferred testing policy?
python code for testability?
unit test organization?
tools
future trends
methods & decorators
creating decorators
how methods work
static methods
class methods
abstract methods
mixing static, class & abstract methods
super
functional programming
intro
generators
list comprehensions
functions
map(func,iterable)
filter(func|none,iterable)
enumerate(iterable,start)
sorted,all,any(iterable)
zip(iterable...)
first
functools.partial
itertools module
chain()
combinations()
compress()
count()
cycle()
dropwhile()
groupby()
permutations()
product()
takewhile()
AST ("abstract syntax tree")
Hy programming language
Paul Tagliamonte
why create Hy?
tips & tricks
status & goals
Python interoperability? packaging?
pros & cons
performance & optimization
data structures
profiling
ordered lists & bisecting
namedtuples & slots
memoization (caching results)
PyPy
achieving zero copy with the buffer protocol
Victor Skinner
optimization starting points
preferred tools
performance tricks
poor performance area
common mistakes
scaling & architecture
multithreading & Global Interpreter Lock (GIL)
multiprocessing vs multithreading
async & event-driven architectures
service-style architectures
RDBMs & ORM
SQL vs RDBMS - the object-relational impedance mismatch
streaming - Flask & PostgresQL
RDBMS concepts
PostgresQL pros & cons
Python 3 support
standard library
external libraries
using six
write less - code more
single dispatcher
context managers