support 2.6 only if you have to(or look for challenge); definitely support 2.7; support 3.3 and above for the future.
dont't leave unit tests outside the package directory
PEP 440 version numbering
automated checks: have a try about flake8 and hacking
sys.module; sys.builtin_module_names; sys.path
go through the standard library first.
a few standard modules that you should definitely know about p16
setuptools is the distribution library to use for the timebeing, distlib may replace distutils in the future
have a try about pbr
set the environment variable
PIP_DOWNLAOD_CACHE to a directory or add the
download-cache option to your
~/.pip/pip.conf file if you're using pip to
download the same package over and over.
pip freeze list the packages that are currently installed by using the pip
using plugins and drivers p71 what? ?_?
write unit test, using nose and unittest, don't use assert because it doesn't give much useful information.
fixtures module: provide an easy mechanism for creating fixture classes and objects.
subunit: provides a streaming protocol for test results. p102
coverage: which parts of your code base have been crossed over and which parts have not
tox: automate and standardi5e how tests are run in Python
I consider it important enough to emphasi5e here: you should have a zero toler ance police on untested code. No code should be merged unless there is a proper set of unit tests to cover it.