about summary refs log tree commit diff
path: root/pkgs/development
diff options
context:
space:
mode:
authorFrederik Rietdijk <fridh@fridh.nl>2018-10-21 08:37:30 +0200
committerFrederik Rietdijk <fridh@fridh.nl>2018-10-21 08:37:30 +0200
commit86c7662be0a2cef3d1d6f152e84ff436129dd2c1 (patch)
treea195f510944c7d8f9a4efc683816491a05a269d9 /pkgs/development
parent04ce4c3e42ec15c4420657052110d928dbdf5d84 (diff)
parentca6ee8f519733e1f45b7598d995245dd687f535c (diff)
downloadnixlib-86c7662be0a2cef3d1d6f152e84ff436129dd2c1.tar
nixlib-86c7662be0a2cef3d1d6f152e84ff436129dd2c1.tar.gz
nixlib-86c7662be0a2cef3d1d6f152e84ff436129dd2c1.tar.bz2
nixlib-86c7662be0a2cef3d1d6f152e84ff436129dd2c1.tar.lz
nixlib-86c7662be0a2cef3d1d6f152e84ff436129dd2c1.tar.xz
nixlib-86c7662be0a2cef3d1d6f152e84ff436129dd2c1.tar.zst
nixlib-86c7662be0a2cef3d1d6f152e84ff436129dd2c1.zip
Merge staging-next into master
Diffstat (limited to 'pkgs/development')
-rw-r--r--pkgs/development/interpreters/python/wrapper.nix4
-rw-r--r--pkgs/development/libraries/avahi/default.nix5
-rw-r--r--pkgs/development/libraries/freetype/default.nix4
-rw-r--r--pkgs/development/libraries/libgksu/default.nix22
-rw-r--r--pkgs/development/libraries/libgpod/default.nix7
-rw-r--r--pkgs/development/libraries/libxml2/default.nix3
-rw-r--r--pkgs/development/libraries/protobuf/generic-v3.nix14
-rw-r--r--pkgs/development/libraries/rarian/default.nix5
-rw-r--r--pkgs/development/python-modules/Cython/default.nix13
-rw-r--r--pkgs/development/python-modules/Fabric/default.nix36
-rw-r--r--pkgs/development/python-modules/Theano/default.nix4
-rw-r--r--pkgs/development/python-modules/alabaster/default.nix4
-rw-r--r--pkgs/development/python-modules/autobahn/default.nix4
-rw-r--r--pkgs/development/python-modules/beancount/default.nix4
-rw-r--r--pkgs/development/python-modules/bedup/default.nix42
-rw-r--r--pkgs/development/python-modules/binwalk/default.nix37
-rw-r--r--pkgs/development/python-modules/bootstrapped-pip/default.nix12
-rw-r--r--pkgs/development/python-modules/box2d/default.nix37
-rw-r--r--pkgs/development/python-modules/box2d/disable-test.patch14
-rw-r--r--pkgs/development/python-modules/bsddb3/default.nix38
-rw-r--r--pkgs/development/python-modules/bugz/default.nix26
-rw-r--r--pkgs/development/python-modules/buildout-nix/default.nix4
-rw-r--r--pkgs/development/python-modules/buildout/default.nix4
-rw-r--r--pkgs/development/python-modules/bumps/default.nix4
-rw-r--r--pkgs/development/python-modules/caldavclientlibrary-asynk/default.nix35
-rw-r--r--pkgs/development/python-modules/capstone/default.nix38
-rw-r--r--pkgs/development/python-modules/carbon/default.nix4
-rw-r--r--pkgs/development/python-modules/cassandra-driver/default.nix55
-rw-r--r--pkgs/development/python-modules/cddb/default.nix24
-rw-r--r--pkgs/development/python-modules/chameleon/default.nix22
-rw-r--r--pkgs/development/python-modules/click-plugins/default.nix4
-rw-r--r--pkgs/development/python-modules/closure-linter/default.nix33
-rw-r--r--pkgs/development/python-modules/cloudpickle/default.nix4
-rw-r--r--pkgs/development/python-modules/cntk/default.nix38
-rw-r--r--pkgs/development/python-modules/colanderalchemy/default.nix35
-rw-r--r--pkgs/development/python-modules/colored/default.nix24
-rw-r--r--pkgs/development/python-modules/cornice/default.nix31
-rw-r--r--pkgs/development/python-modules/cupy/default.nix4
-rw-r--r--pkgs/development/python-modules/cvxopt/default.nix4
-rw-r--r--pkgs/development/python-modules/dask-image/default.nix4
-rw-r--r--pkgs/development/python-modules/ddt/default.nix21
-rw-r--r--pkgs/development/python-modules/deprecation/default.nix4
-rw-r--r--pkgs/development/python-modules/deskcon/default.nix41
-rw-r--r--pkgs/development/python-modules/distributed/default.nix4
-rw-r--r--pkgs/development/python-modules/distutils_extra/default.nix21
-rw-r--r--pkgs/development/python-modules/django/1_8.nix31
-rw-r--r--pkgs/development/python-modules/django_classytags/default.nix27
-rw-r--r--pkgs/development/python-modules/django_colorful/default.nix28
-rw-r--r--pkgs/development/python-modules/django_contrib_comments/default.nix24
-rw-r--r--pkgs/development/python-modules/django_environ/default.nix27
-rw-r--r--pkgs/development/python-modules/django_evolution/default.nix26
-rw-r--r--pkgs/development/python-modules/django_modelcluster/default.nix28
-rw-r--r--pkgs/development/python-modules/django_nose/default.nix28
-rw-r--r--pkgs/development/python-modules/django_reversion/default.nix24
-rw-r--r--pkgs/development/python-modules/django_silk/default.nix37
-rw-r--r--pkgs/development/python-modules/django_taggit/default.nix26
-rw-r--r--pkgs/development/python-modules/django_treebeard/default.nix30
-rw-r--r--pkgs/development/python-modules/dominate/default.nix4
-rw-r--r--pkgs/development/python-modules/dtopt/default.nix24
-rw-r--r--pkgs/development/python-modules/dynd/default.nix43
-rw-r--r--pkgs/development/python-modules/ecdsa/default.nix26
-rw-r--r--pkgs/development/python-modules/editorconfig/default.nix31
-rw-r--r--pkgs/development/python-modules/elpy/default.nix32
-rw-r--r--pkgs/development/python-modules/emoji/default.nix2
-rw-r--r--pkgs/development/python-modules/enum/default.nix26
-rw-r--r--pkgs/development/python-modules/enum34/default.nix27
-rw-r--r--pkgs/development/python-modules/epc/default.nix25
-rw-r--r--pkgs/development/python-modules/et_xmlfile/default.nix40
-rw-r--r--pkgs/development/python-modules/etcd/default.nix34
-rw-r--r--pkgs/development/python-modules/eve/default.nix4
-rw-r--r--pkgs/development/python-modules/eventlet/default.nix33
-rw-r--r--pkgs/development/python-modules/eventlib/default.nix30
-rw-r--r--pkgs/development/python-modules/execnet/default.nix42
-rw-r--r--pkgs/development/python-modules/exifread/default.nix22
-rw-r--r--pkgs/development/python-modules/eyed3/default.nix42
-rw-r--r--pkgs/development/python-modules/factory_boy/default.nix24
-rw-r--r--pkgs/development/python-modules/fake_factory/default.nix33
-rw-r--r--pkgs/development/python-modules/falcon/default.nix37
-rw-r--r--pkgs/development/python-modules/fdroidserver/default.nix35
-rw-r--r--pkgs/development/python-modules/feedparser/default.nix25
-rw-r--r--pkgs/development/python-modules/filebrowser_safe/default.nix40
-rw-r--r--pkgs/development/python-modules/filebytes/default.nix22
-rw-r--r--pkgs/development/python-modules/filelock/default.nix4
-rw-r--r--pkgs/development/python-modules/flaky/default.nix28
-rw-r--r--pkgs/development/python-modules/flask-autoindex/default.nix4
-rw-r--r--pkgs/development/python-modules/flowlogs_reader/default.nix30
-rw-r--r--pkgs/development/python-modules/flup/default.nix23
-rw-r--r--pkgs/development/python-modules/fonttools/default.nix4
-rw-r--r--pkgs/development/python-modules/foolscap/default.nix40
-rw-r--r--pkgs/development/python-modules/forbiddenfruit/default.nix21
-rw-r--r--pkgs/development/python-modules/fudge/default.nix34
-rw-r--r--pkgs/development/python-modules/funcparserlib/default.nix31
-rw-r--r--pkgs/development/python-modules/functools32/default.nix22
-rw-r--r--pkgs/development/python-modules/fusepy/default.nix37
-rw-r--r--pkgs/development/python-modules/gateone/default.nix35
-rw-r--r--pkgs/development/python-modules/gcovr/default.nix21
-rw-r--r--pkgs/development/python-modules/gcutil/default.nix41
-rw-r--r--pkgs/development/python-modules/gdrivefs/default.nix48
-rw-r--r--pkgs/development/python-modules/genanki/default.nix4
-rw-r--r--pkgs/development/python-modules/genshi/default.nix32
-rw-r--r--pkgs/development/python-modules/genzshcomp/default.nix24
-rw-r--r--pkgs/development/python-modules/gevent-socketio/default.nix29
-rw-r--r--pkgs/development/python-modules/gevent-websocket/default.nix27
-rw-r--r--pkgs/development/python-modules/geventhttpclient/default.nix36
-rw-r--r--pkgs/development/python-modules/gipc/default.nix35
-rw-r--r--pkgs/development/python-modules/git-sweep/default.nix25
-rw-r--r--pkgs/development/python-modules/github-webhook/default.nix28
-rw-r--r--pkgs/development/python-modules/github3_py/default.nix45
-rw-r--r--pkgs/development/python-modules/gmusicapi/default.nix37
-rw-r--r--pkgs/development/python-modules/gnureadline/default.nix29
-rw-r--r--pkgs/development/python-modules/gnutls/default.nix31
-rw-r--r--pkgs/development/python-modules/goobook/default.nix38
-rw-r--r--pkgs/development/python-modules/google_apputils/default.nix38
-rw-r--r--pkgs/development/python-modules/gpapi/default.nix4
-rw-r--r--pkgs/development/python-modules/gpsoauth/default.nix36
-rw-r--r--pkgs/development/python-modules/gpy/default.nix4
-rw-r--r--pkgs/development/python-modules/graphite-web/default.nix4
-rw-r--r--pkgs/development/python-modules/graphviz/default.nix25
-rw-r--r--pkgs/development/python-modules/grappelli_safe/default.nix34
-rw-r--r--pkgs/development/python-modules/greenlet/default.nix4
-rw-r--r--pkgs/development/python-modules/grpcio-tools/default.nix4
-rw-r--r--pkgs/development/python-modules/gspread/default.nix21
-rw-r--r--pkgs/development/python-modules/gtimelog/default.nix44
-rw-r--r--pkgs/development/python-modules/gyp/default.nix34
-rw-r--r--pkgs/development/python-modules/hawkauthlib/default.nix26
-rw-r--r--pkgs/development/python-modules/hdbscan/default.nix4
-rw-r--r--pkgs/development/python-modules/helper/default.nix13
-rw-r--r--pkgs/development/python-modules/hetzner/default.nix24
-rw-r--r--pkgs/development/python-modules/hg-git/default.nix27
-rw-r--r--pkgs/development/python-modules/hkdf/default.nix28
-rw-r--r--pkgs/development/python-modules/hovercraft/default.nix36
-rw-r--r--pkgs/development/python-modules/hpack/default.nix21
-rw-r--r--pkgs/development/python-modules/hsaudiotag/default.nix26
-rw-r--r--pkgs/development/python-modules/hsaudiotag3k/default.nix26
-rw-r--r--pkgs/development/python-modules/htmllaundry/default.nix30
-rw-r--r--pkgs/development/python-modules/http_signature/default.nix26
-rw-r--r--pkgs/development/python-modules/httpauth/default.nix24
-rw-r--r--pkgs/development/python-modules/httpretty/default.nix50
-rw-r--r--pkgs/development/python-modules/hug/default.nix30
-rw-r--r--pkgs/development/python-modules/humanize/default.nix28
-rw-r--r--pkgs/development/python-modules/hupper/default.nix4
-rw-r--r--pkgs/development/python-modules/hvac/default.nix4
-rw-r--r--pkgs/development/python-modules/i3-py/default.nix25
-rw-r--r--pkgs/development/python-modules/icalendar/default.nix28
-rw-r--r--pkgs/development/python-modules/identify/default.nix4
-rw-r--r--pkgs/development/python-modules/imageio/default.nix33
-rw-r--r--pkgs/development/python-modules/imagesize/default.nix21
-rw-r--r--pkgs/development/python-modules/imread/default.nix30
-rw-r--r--pkgs/development/python-modules/inflect/default.nix4
-rw-r--r--pkgs/development/python-modules/influxdb/default.nix29
-rw-r--r--pkgs/development/python-modules/infoqscraper/default.nix34
-rw-r--r--pkgs/development/python-modules/inifile/default.nix22
-rw-r--r--pkgs/development/python-modules/iniparse/default.nix30
-rw-r--r--pkgs/development/python-modules/ipaddr/default.nix23
-rw-r--r--pkgs/development/python-modules/ipaddress/default.nix27
-rw-r--r--pkgs/development/python-modules/ipdb/default.nix28
-rw-r--r--pkgs/development/python-modules/ipdbplugin/default.nix26
-rw-r--r--pkgs/development/python-modules/ipfsapi/default.nix30
-rw-r--r--pkgs/development/python-modules/iptools/default.nix24
-rw-r--r--pkgs/development/python-modules/ipywidgets/default.nix4
-rw-r--r--pkgs/development/python-modules/itsdangerous/default.nix21
-rw-r--r--pkgs/development/python-modules/j2cli/default.nix34
-rw-r--r--pkgs/development/python-modules/jdatetime/default.nix4
-rw-r--r--pkgs/development/python-modules/jinja2_time/default.nix25
-rw-r--r--pkgs/development/python-modules/jmespath/default.nix26
-rw-r--r--pkgs/development/python-modules/jsonpath_rw/default.nix31
-rw-r--r--pkgs/development/python-modules/jsonpointer/default.nix21
-rw-r--r--pkgs/development/python-modules/jsonrpclib/default.nix11
-rw-r--r--pkgs/development/python-modules/jsonwatch/default.nix35
-rw-r--r--pkgs/development/python-modules/jupyter/default.nix34
-rw-r--r--pkgs/development/python-modules/jupyterlab/default.nix4
-rw-r--r--pkgs/development/python-modules/kajiki/default.nix26
-rw-r--r--pkgs/development/python-modules/kaptan/default.nix26
-rw-r--r--pkgs/development/python-modules/kazoo/default.nix44
-rw-r--r--pkgs/development/python-modules/keepalive/default.nix24
-rw-r--r--pkgs/development/python-modules/keras-applications/default.nix4
-rw-r--r--pkgs/development/python-modules/keras-preprocessing/default.nix4
-rw-r--r--pkgs/development/python-modules/keras/default.nix4
-rw-r--r--pkgs/development/python-modules/kerberos/default.nix24
-rw-r--r--pkgs/development/python-modules/lazy-object-proxy/default.nix30
-rw-r--r--pkgs/development/python-modules/le/default.nix30
-rw-r--r--pkgs/development/python-modules/ledgerblue/default.nix4
-rw-r--r--pkgs/development/python-modules/lektor/default.nix46
-rw-r--r--pkgs/development/python-modules/libcloud/default.nix31
-rw-r--r--pkgs/development/python-modules/librosa/default.nix33
-rw-r--r--pkgs/development/python-modules/libthumbor/default.nix29
-rw-r--r--pkgs/development/python-modules/lightblue/default.nix27
-rw-r--r--pkgs/development/python-modules/lightning/default.nix30
-rw-r--r--pkgs/development/python-modules/limnoria/default.nix30
-rw-r--r--pkgs/development/python-modules/linode/default.nix25
-rw-r--r--pkgs/development/python-modules/livestreamer-curses/default.nix26
-rw-r--r--pkgs/development/python-modules/livestreamer/default.nix44
-rw-r--r--pkgs/development/python-modules/llfuse/default.nix4
-rw-r--r--pkgs/development/python-modules/lmdb/default.nix26
-rw-r--r--pkgs/development/python-modules/logilab_astng/default.nix24
-rw-r--r--pkgs/development/python-modules/logutils/default.nix21
-rw-r--r--pkgs/development/python-modules/lpod/default.nix31
-rw-r--r--pkgs/development/python-modules/lsi/default.nix29
-rw-r--r--pkgs/development/python-modules/lxc/default.nix29
-rw-r--r--pkgs/development/python-modules/lxml/default.nix4
-rw-r--r--pkgs/development/python-modules/m2crypto/default.nix31
-rw-r--r--pkgs/development/python-modules/magic/default.nix28
-rw-r--r--pkgs/development/python-modules/mailchimp/default.nix29
-rw-r--r--pkgs/development/python-modules/manuel/default.nix25
-rw-r--r--pkgs/development/python-modules/mapsplotlib/default.nix32
-rw-r--r--pkgs/development/python-modules/markdown-macros/default.nix40
-rw-r--r--pkgs/development/python-modules/markdown2/default.nix4
-rw-r--r--pkgs/development/python-modules/markupsafe/default.nix22
-rw-r--r--pkgs/development/python-modules/marshmallow/default.nix4
-rw-r--r--pkgs/development/python-modules/mathics/default.nix50
-rw-r--r--pkgs/development/python-modules/mechanize/default.nix28
-rw-r--r--pkgs/development/python-modules/meld3/default.nix23
-rw-r--r--pkgs/development/python-modules/memcached/default.nix26
-rw-r--r--pkgs/development/python-modules/memory_profiler/default.nix24
-rw-r--r--pkgs/development/python-modules/mezzanine/default.nix70
-rw-r--r--pkgs/development/python-modules/mezzanine/writable_settings.patch21
-rw-r--r--pkgs/development/python-modules/micawber/default.nix4
-rw-r--r--pkgs/development/python-modules/minidb/default.nix29
-rw-r--r--pkgs/development/python-modules/minimock/default.nix26
-rw-r--r--pkgs/development/python-modules/mixpanel/default.nix30
-rw-r--r--pkgs/development/python-modules/mock/default.nix33
-rw-r--r--pkgs/development/python-modules/modestmaps/default.nix26
-rw-r--r--pkgs/development/python-modules/monotonic/default.nix28
-rw-r--r--pkgs/development/python-modules/moto/default.nix4
-rw-r--r--pkgs/development/python-modules/moviepy/default.nix29
-rw-r--r--pkgs/development/python-modules/mox/default.nix24
-rw-r--r--pkgs/development/python-modules/mozsvc/default.nix34
-rw-r--r--pkgs/development/python-modules/mpd/default.nix23
-rw-r--r--pkgs/development/python-modules/mpd2/default.nix29
-rw-r--r--pkgs/development/python-modules/mpmath/default.nix26
-rw-r--r--pkgs/development/python-modules/mpv/default.nix25
-rw-r--r--pkgs/development/python-modules/msgpack-numpy/default.nix4
-rw-r--r--pkgs/development/python-modules/msrplib/default.nix27
-rw-r--r--pkgs/development/python-modules/multi_key_dict/default.nix21
-rw-r--r--pkgs/development/python-modules/munch/default.nix21
-rw-r--r--pkgs/development/python-modules/munkres/default.nix25
-rw-r--r--pkgs/development/python-modules/musicbrainzngs/default.nix27
-rw-r--r--pkgs/development/python-modules/mutag/default.nix27
-rw-r--r--pkgs/development/python-modules/muttils/default.nix26
-rw-r--r--pkgs/development/python-modules/mwclient/default.nix3
-rw-r--r--pkgs/development/python-modules/mwlib-ext/default.nix24
-rw-r--r--pkgs/development/python-modules/mwlib-rl/default.nix27
-rw-r--r--pkgs/development/python-modules/mwlib/default.nix55
-rw-r--r--pkgs/development/python-modules/mxnet/default.nix37
-rw-r--r--pkgs/development/python-modules/mysql_python/default.nix32
-rw-r--r--pkgs/development/python-modules/namebench/default.nix50
-rw-r--r--pkgs/development/python-modules/nameparser/default.nix21
-rw-r--r--pkgs/development/python-modules/ncclient/default.nix4
-rw-r--r--pkgs/development/python-modules/ndg-httpsclient/default.nix30
-rw-r--r--pkgs/development/python-modules/netaddr/default.nix37
-rw-r--r--pkgs/development/python-modules/netifaces/default.nix21
-rw-r--r--pkgs/development/python-modules/neuronpy/default.nix31
-rw-r--r--pkgs/development/python-modules/nine/default.nix21
-rw-r--r--pkgs/development/python-modules/nipy/default.nix49
-rw-r--r--pkgs/development/python-modules/nipype/default.nix4
-rw-r--r--pkgs/development/python-modules/nixpkgs/default.nix29
-rw-r--r--pkgs/development/python-modules/nose-cover3/default.nix27
-rw-r--r--pkgs/development/python-modules/nose-cprof/default.nix25
-rw-r--r--pkgs/development/python-modules/nose/default.nix33
-rw-r--r--pkgs/development/python-modules/nose2/default.nix26
-rw-r--r--pkgs/development/python-modules/nosejs/default.nix28
-rw-r--r--pkgs/development/python-modules/nosexcover/default.nix25
-rw-r--r--pkgs/development/python-modules/notify/default.nix41
-rw-r--r--pkgs/development/python-modules/notmuch/default.nix28
-rw-r--r--pkgs/development/python-modules/ntfy/default.nix33
-rw-r--r--pkgs/development/python-modules/ntplib/default.nix24
-rw-r--r--pkgs/development/python-modules/nuitka/default.nix54
-rw-r--r--pkgs/development/python-modules/numpy/default.nix4
-rw-r--r--pkgs/development/python-modules/nxt-python/default.nix36
-rw-r--r--pkgs/development/python-modules/oauth/default.nix24
-rw-r--r--pkgs/development/python-modules/oauth2/default.nix32
-rw-r--r--pkgs/development/python-modules/oauth2client/default.nix4
-rw-r--r--pkgs/development/python-modules/oauthlib/default.nix31
-rw-r--r--pkgs/development/python-modules/obfsproxy/default.nix38
-rw-r--r--pkgs/development/python-modules/objgraph/default.nix28
-rw-r--r--pkgs/development/python-modules/offtrac/default.nix23
-rw-r--r--pkgs/development/python-modules/openant/default.nix38
-rw-r--r--pkgs/development/python-modules/openpyxl/default.nix4
-rw-r--r--pkgs/development/python-modules/ordered-set/default.nix4
-rw-r--r--pkgs/development/python-modules/ordereddict/default.nix21
-rw-r--r--pkgs/development/python-modules/osc/default.nix46
-rw-r--r--pkgs/development/python-modules/pamela/default.nix30
-rw-r--r--pkgs/development/python-modules/paramiko/default.nix48
-rw-r--r--pkgs/development/python-modules/paramz/default.nix4
-rw-r--r--pkgs/development/python-modules/path-and-address/default.nix31
-rw-r--r--pkgs/development/python-modules/pathspec/default.nix4
-rw-r--r--pkgs/development/python-modules/pathtools/default.nix22
-rw-r--r--pkgs/development/python-modules/paver/default.nix33
-rw-r--r--pkgs/development/python-modules/peppercorn/default.nix22
-rw-r--r--pkgs/development/python-modules/pex/default.nix29
-rw-r--r--pkgs/development/python-modules/phonenumbers/default.nix4
-rw-r--r--pkgs/development/python-modules/pillowfight/default.nix24
-rw-r--r--pkgs/development/python-modules/pint/default.nix21
-rw-r--r--pkgs/development/python-modules/pip/default.nix4
-rw-r--r--pkgs/development/python-modules/plyvel/default.nix29
-rw-r--r--pkgs/development/python-modules/pocket/default.nix25
-rw-r--r--pkgs/development/python-modules/poezio/fix_gnupg_import.patch12
-rw-r--r--pkgs/development/python-modules/poyo/default.nix21
-rw-r--r--pkgs/development/python-modules/pudb/default.nix29
-rw-r--r--pkgs/development/python-modules/pyaxmlparser/default.nix4
-rw-r--r--pkgs/development/python-modules/pybluez/default.nix29
-rw-r--r--pkgs/development/python-modules/pycallgraph/default.nix28
-rw-r--r--pkgs/development/python-modules/pycares/default.nix27
-rw-r--r--pkgs/development/python-modules/pycountry/default.nix22
-rw-r--r--pkgs/development/python-modules/pycuda/default.nix4
-rw-r--r--pkgs/development/python-modules/pyfribidi/default.nix25
-rw-r--r--pkgs/development/python-modules/pygal/default.nix36
-rw-r--r--pkgs/development/python-modules/pyhepmc/default.nix47
-rw-r--r--pkgs/development/python-modules/pyhepmc/pyhepmc_export_edges.patch (renamed from pkgs/development/python-modules/pyhepmc_export_edges.patch)0
-rw-r--r--pkgs/development/python-modules/pyhepmc/pyhepmc_export_flow.patch (renamed from pkgs/development/python-modules/pyhepmc_export_flow.patch)0
-rw-r--r--pkgs/development/python-modules/pyhomematic/default.nix4
-rw-r--r--pkgs/development/python-modules/pymatgen/default.nix4
-rw-r--r--pkgs/development/python-modules/pympler/default.nix31
-rw-r--r--pkgs/development/python-modules/pymysqlsa/default.nix25
-rw-r--r--pkgs/development/python-modules/pyparsing/default.nix4
-rw-r--r--pkgs/development/python-modules/pyperclip/default.nix4
-rw-r--r--pkgs/development/python-modules/pypoppler/default.nix41
-rw-r--r--pkgs/development/python-modules/pypoppler/pypoppler-0.39.0.patch (renamed from pkgs/development/python-modules/pypoppler-0.39.0.patch)0
-rw-r--r--pkgs/development/python-modules/pypoppler/pypoppler-poppler.c.patch (renamed from pkgs/development/python-modules/pypoppler-poppler.c.patch)0
-rw-r--r--pkgs/development/python-modules/pyramid/default.nix46
-rw-r--r--pkgs/development/python-modules/pyramid_chameleon/default.nix28
-rw-r--r--pkgs/development/python-modules/pyramid_exclog/default.nix25
-rw-r--r--pkgs/development/python-modules/pyramid_hawkauth/default.nix29
-rw-r--r--pkgs/development/python-modules/pyramid_jinja2/default.nix28
-rw-r--r--pkgs/development/python-modules/pyramid_mako/default.nix27
-rw-r--r--pkgs/development/python-modules/pyramid_multiauth/default.nix24
-rw-r--r--pkgs/development/python-modules/pyrfc3339/default.nix26
-rw-r--r--pkgs/development/python-modules/pyroute2/default.nix4
-rw-r--r--pkgs/development/python-modules/pyspark/default.nix4
-rw-r--r--pkgs/development/python-modules/pysrim/default.nix4
-rw-r--r--pkgs/development/python-modules/pytest-isort/default.nix4
-rw-r--r--pkgs/development/python-modules/pytest-relaxed/default.nix37
-rw-r--r--pkgs/development/python-modules/pytest-xdist/default.nix4
-rw-r--r--pkgs/development/python-modules/python-levenshtein/default.nix25
-rw-r--r--pkgs/development/python-modules/python-mapnik/default.nix58
-rw-r--r--pkgs/development/python-modules/python-otr/default.nix33
-rw-r--r--pkgs/development/python-modules/python-slugify/default.nix4
-rw-r--r--pkgs/development/python-modules/python2-pythondialog/default.nix27
-rw-r--r--pkgs/development/python-modules/python_openzwave/default.nix4
-rw-r--r--pkgs/development/python-modules/pythonirclib/default.nix34
-rw-r--r--pkgs/development/python-modules/pytun/default.nix27
-rw-r--r--pkgs/development/python-modules/pyxdg/default.nix25
-rw-r--r--pkgs/development/python-modules/rainbowstream/default.nix54
-rw-r--r--pkgs/development/python-modules/random2/default.nix24
-rw-r--r--pkgs/development/python-modules/reikna/default.nix4
-rw-r--r--pkgs/development/python-modules/relatorio/default.nix4
-rw-r--r--pkgs/development/python-modules/reportlab/default.nix4
-rw-r--r--pkgs/development/python-modules/repoze_lru/default.nix22
-rw-r--r--pkgs/development/python-modules/repoze_sphinx_autointerface/default.nix25
-rw-r--r--pkgs/development/python-modules/rethinkdb/default.nix23
-rw-r--r--pkgs/development/python-modules/rlp/default.nix4
-rw-r--r--pkgs/development/python-modules/roman/default.nix22
-rw-r--r--pkgs/development/python-modules/safe/default.nix24
-rw-r--r--pkgs/development/python-modules/samplerate/default.nix37
-rw-r--r--pkgs/development/python-modules/schedule/default.nix24
-rw-r--r--pkgs/development/python-modules/scikit-image/default.nix4
-rw-r--r--pkgs/development/python-modules/seekpath/default.nix4
-rw-r--r--pkgs/development/python-modules/setuptools-git/default.nix25
-rw-r--r--pkgs/development/python-modules/shippai/default.nix4
-rw-r--r--pkgs/development/python-modules/sleekxmpp/default.nix1
-rw-r--r--pkgs/development/python-modules/slixmpp/default.nix26
-rw-r--r--pkgs/development/python-modules/sortedcollections/default.nix27
-rw-r--r--pkgs/development/python-modules/sortedcontainers/default.nix4
-rw-r--r--pkgs/development/python-modules/sounddevice/default.nix4
-rw-r--r--pkgs/development/python-modules/sparqlwrapper/default.nix35
-rw-r--r--pkgs/development/python-modules/sphfile/default.nix4
-rw-r--r--pkgs/development/python-modules/sphinx/default.nix4
-rw-r--r--pkgs/development/python-modules/sqlalchemy/default.nix4
-rw-r--r--pkgs/development/python-modules/sqlmap/default.nix4
-rw-r--r--pkgs/development/python-modules/ssdeep/default.nix33
-rw-r--r--pkgs/development/python-modules/statsd/default.nix33
-rw-r--r--pkgs/development/python-modules/toml/default.nix4
-rw-r--r--pkgs/development/python-modules/uncompyle6/default.nix25
-rw-r--r--pkgs/development/python-modules/validictory/default.nix23
-rw-r--r--pkgs/development/python-modules/venusian/default.nix28
-rw-r--r--pkgs/development/python-modules/warlock/default.nix27
-rw-r--r--pkgs/development/python-modules/watchdog/default.nix32
-rw-r--r--pkgs/development/python-modules/whisper/default.nix4
-rw-r--r--pkgs/development/python-modules/widgetsnbextension/default.nix4
-rw-r--r--pkgs/development/python-modules/wtforms/default.nix29
-rw-r--r--pkgs/development/python-modules/xarray/default.nix4
-rw-r--r--pkgs/development/python-modules/xdis/default.nix25
-rw-r--r--pkgs/development/python-modules/xml2rfc/default.nix4
-rw-r--r--pkgs/development/python-modules/xstatic-bootstrap/default.nix2
-rw-r--r--pkgs/development/python-modules/xstatic-jquery-ui/default.nix2
-rw-r--r--pkgs/development/python-modules/xstatic/default.nix2
-rw-r--r--pkgs/development/python-modules/zake/default.nix31
-rw-r--r--pkgs/development/python-modules/zetup/default.nix4
-rw-r--r--pkgs/development/python-modules/zope_deprecation/default.nix25
-rw-r--r--pkgs/development/tools/analysis/egypt/default.nix4
-rw-r--r--pkgs/development/tools/misc/intltool/default.nix4
-rw-r--r--pkgs/development/tools/misc/ninka/default.nix6
392 files changed, 8637 insertions, 285 deletions
diff --git a/pkgs/development/interpreters/python/wrapper.nix b/pkgs/development/interpreters/python/wrapper.nix
index 8d4e68bf57ca..27d01e4e1f51 100644
--- a/pkgs/development/interpreters/python/wrapper.nix
+++ b/pkgs/development/interpreters/python/wrapper.nix
@@ -4,6 +4,8 @@
 , postBuild ? ""
 , ignoreCollisions ? false
 , requiredPythonModules
+# Wrap executables with the given argument.
+, makeWrapperArgs ? []
 , }:
 
 # Create a python executable that knows about additional packages.
@@ -32,7 +34,7 @@ let
             if [ -f "$prg" ]; then
               rm -f "$out/bin/$prg"
               if [ -x "$prg" ]; then
-                makeWrapper "$path/bin/$prg" "$out/bin/$prg" --set PYTHONHOME "$out" --set PYTHONNOUSERSITE "true"
+                makeWrapper "$path/bin/$prg" "$out/bin/$prg" --set PYTHONHOME "$out" --set PYTHONNOUSERSITE "true" ${stdenv.lib.concatStringsSep " " makeWrapperArgs}
               fi
             fi
           done
diff --git a/pkgs/development/libraries/avahi/default.nix b/pkgs/development/libraries/avahi/default.nix
index 53e3f5468abc..971637bc7870 100644
--- a/pkgs/development/libraries/avahi/default.nix
+++ b/pkgs/development/libraries/avahi/default.nix
@@ -1,4 +1,4 @@
-{ fetchurl, stdenv, pkgconfig, libdaemon, dbus, perl, perlXMLParser
+{ fetchurl, stdenv, pkgconfig, libdaemon, dbus, perlPackages
 , expat, gettext, intltool, glib, libiconv
 , qt4 ? null
 , qt4Support ? false
@@ -17,7 +17,8 @@ stdenv.mkDerivation rec {
 
   patches = [ ./no-mkdir-localstatedir.patch ];
 
-  buildInputs = [ libdaemon dbus perl perlXMLParser glib expat libiconv ]
+  buildInputs = [ libdaemon dbus glib expat libiconv ]
+    ++ (with perlPackages; [ perl XMLParser ])
     ++ (stdenv.lib.optional qt4Support qt4);
 
   nativeBuildInputs = [ pkgconfig gettext intltool glib ];
diff --git a/pkgs/development/libraries/freetype/default.nix b/pkgs/development/libraries/freetype/default.nix
index fce052aeb223..5a11d03c5917 100644
--- a/pkgs/development/libraries/freetype/default.nix
+++ b/pkgs/development/libraries/freetype/default.nix
@@ -1,4 +1,5 @@
 { stdenv, fetchurl
+, buildPackages
 , pkgconfig, which, makeWrapper
 , zlib, bzip2, libpng, gnumake, glib
 
@@ -50,6 +51,9 @@ in stdenv.mkDerivation rec {
 
   configureFlags = [ "--disable-static" "--bindir=$(dev)/bin" ];
 
+  # native compiler to generate building tool
+  CC_BUILD = "${buildPackages.stdenv.cc}/bin/cc";
+
   # The asm for armel is written with the 'asm' keyword.
   CFLAGS = optionalString stdenv.isAarch32 "-std=gnu99";
 
diff --git a/pkgs/development/libraries/libgksu/default.nix b/pkgs/development/libraries/libgksu/default.nix
index 29f346e9acfb..0af0a1227f32 100644
--- a/pkgs/development/libraries/libgksu/default.nix
+++ b/pkgs/development/libraries/libgksu/default.nix
@@ -1,5 +1,5 @@
 { stdenv, fetchurl, pkgconfig, wrapGAppsHook, gtk2, gnome2, gnome3,
-  libstartup_notification, libgtop, perl, perlXMLParser,
+  libstartup_notification, libgtop, perlPackages,
   autoreconfHook, intltool, docbook_xsl, xauth
 }:
 
@@ -19,8 +19,8 @@ stdenv.mkDerivation rec {
 
   buildInputs = [
     gtk2 gnome2.GConf libstartup_notification
-    gnome3.libgnome-keyring libgtop gnome2.libglade perl perlXMLParser
-  ];
+    gnome3.libgnome-keyring libgtop gnome2.libglade
+  ] ++ (with perlPackages; [ perl XMLParser ]);
 
   enableParallelBuilding = true;
 
@@ -30,26 +30,26 @@ stdenv.mkDerivation rec {
         # Patches from the gentoo ebuild
 
         # Fix compilation on bsdc
-	./libgksu-2.0.0-fbsd.patch
+        ./libgksu-2.0.0-fbsd.patch
 
         # Fix wrong usage of LDFLAGS, gentoo bug #226837
-	./libgksu-2.0.7-libs.patch
+        ./libgksu-2.0.7-libs.patch
 
         # Use po/LINGUAS
-	./libgksu-2.0.7-polinguas.patch
+        ./libgksu-2.0.7-polinguas.patch
 
         # Don't forkpty; gentoo bug #298289
-	./libgksu-2.0.12-revert-forkpty.patch
+        ./libgksu-2.0.12-revert-forkpty.patch
 
         # Make this gmake-3.82 compliant, gentoo bug #333961
-	./libgksu-2.0.12-fix-make-3.82.patch
+        ./libgksu-2.0.12-fix-make-3.82.patch
 
         # Do not build test programs that are never executed; also fixes gentoo bug #367397 (underlinking issues).
-	./libgksu-2.0.12-notests.patch
+        ./libgksu-2.0.12-notests.patch
 
         # Fix automake-1.11.2 compatibility, gentoo bug #397411
-	./libgksu-2.0.12-automake-1.11.2.patch
-	];
+        ./libgksu-2.0.12-automake-1.11.2.patch
+  ];
 
   postPatch = ''
     # gentoo bug #467026
diff --git a/pkgs/development/libraries/libgpod/default.nix b/pkgs/development/libraries/libgpod/default.nix
index 74aee0f39c7e..f178af349088 100644
--- a/pkgs/development/libraries/libgpod/default.nix
+++ b/pkgs/development/libraries/libgpod/default.nix
@@ -1,4 +1,4 @@
-{stdenv, lib, fetchurl, gettext, perl, perlXMLParser, intltool, pkgconfig, glib,
+{stdenv, lib, fetchurl, gettext, perlPackages, intltool, pkgconfig, glib,
   libxml2, sqlite, zlib, sg3_utils, gdk_pixbuf, taglib,
   libimobiledevice, pythonPackages, mutagen,
   monoSupport ? true, mono, gtk-sharp-2_0
@@ -25,8 +25,9 @@ in stdenv.mkDerivation rec {
   propagatedBuildInputs = [ glib libxml2 sqlite zlib sg3_utils
     gdk_pixbuf taglib libimobiledevice python pygobject2 mutagen ];
 
-  nativeBuildInputs = [ gettext perlXMLParser intltool pkgconfig perl] ++
-   lib.optionals monoSupport [ mono gtk-sharp-2_0 ];
+  nativeBuildInputs = [ gettext intltool pkgconfig ]
+    ++ (with perlPackages; [ perl XMLParser ])
+    ++ lib.optionals monoSupport [ mono gtk-sharp-2_0 ];
 
   meta = {
     homepage = http://gtkpod.sourceforge.net/;
diff --git a/pkgs/development/libraries/libxml2/default.nix b/pkgs/development/libraries/libxml2/default.nix
index c359ea10b665..36606999f534 100644
--- a/pkgs/development/libraries/libxml2/default.nix
+++ b/pkgs/development/libraries/libxml2/default.nix
@@ -1,5 +1,5 @@
 { stdenv, lib, fetchurl, fetchpatch
-, zlib, xz, python2, findXMLCatalogs
+, zlib, xz, python2, ncurses, findXMLCatalogs
 , pythonSupport ? stdenv.buildPlatform == stdenv.hostPlatform
 , icuSupport ? false, icu ? null
 , enableShared ? stdenv.hostPlatform.libc != "msvcrt"
@@ -37,6 +37,7 @@ in stdenv.mkDerivation rec {
   propagatedBuildOutputs = "out bin" + lib.optionalString pythonSupport " py";
 
   buildInputs = lib.optional pythonSupport python
+    ++ lib.optional (pythonSupport && python?isPy3 && python.isPy3) ncurses
     # Libxml2 has an optional dependency on liblzma.  However, on impure
     # platforms, it may end up using that from /usr/lib, and thus lack a
     # RUNPATH for that, leading to undefined references for its users.
diff --git a/pkgs/development/libraries/protobuf/generic-v3.nix b/pkgs/development/libraries/protobuf/generic-v3.nix
index 79e4c387cdf5..883dff56f2ee 100644
--- a/pkgs/development/libraries/protobuf/generic-v3.nix
+++ b/pkgs/development/libraries/protobuf/generic-v3.nix
@@ -1,11 +1,12 @@
 { stdenv
 , fetchFromGitHub
-, autoreconfHook, zlib, gmock
+, autoreconfHook, zlib, gmock, which, buildPackages
 , version, sha256
 , ...
 }:
 
-stdenv.mkDerivation rec {
+let
+mkProtobufDerivation = buildProtobuf: stdenv: stdenv.mkDerivation rec {
   name = "protobuf-${version}";
 
   # make sure you test also -A pythonPackages.protobuf
@@ -28,8 +29,10 @@ stdenv.mkDerivation rec {
       --replace 'tmpnam(b)' '"'$TMPDIR'/foo"'
   '';
 
-  nativeBuildInputs = [ autoreconfHook ];
+  nativeBuildInputs = [ autoreconfHook buildPackages.which buildPackages.stdenv.cc buildProtobuf ];
+
   buildInputs = [ zlib ];
+  configureFlags = if buildProtobuf == null then [] else [ "--with-protoc=${buildProtobuf}/bin/protoc" ];
 
   enableParallelBuilding = true;
 
@@ -54,4 +57,7 @@ stdenv.mkDerivation rec {
   };
 
   passthru.version = version;
-}
+};
+in mkProtobufDerivation(if (stdenv.buildPlatform != stdenv.hostPlatform)
+                        then (mkProtobufDerivation null buildPackages.stdenv)
+                        else null) stdenv
diff --git a/pkgs/development/libraries/rarian/default.nix b/pkgs/development/libraries/rarian/default.nix
index d0a15e866f7a..bd79e3628a14 100644
--- a/pkgs/development/libraries/rarian/default.nix
+++ b/pkgs/development/libraries/rarian/default.nix
@@ -1,4 +1,4 @@
-{stdenv, fetchurl, pkgconfig, perl, perlXMLParser, libxml2, libxslt, docbook_xml_dtd_42, gnome3}:
+{stdenv, fetchurl, pkgconfig, perlPackages, libxml2, libxslt, docbook_xml_dtd_42, gnome3}:
 let
   pname = "rarian";
   version = "0.8.1";
@@ -11,7 +11,8 @@ in stdenv.mkDerivation rec {
   };
 
   nativeBuildInputs = [ pkgconfig ];
-  buildInputs = [ perl perlXMLParser libxml2 libxslt];
+  buildInputs = [ libxml2 libxslt ]
+    ++ (with perlPackages; [ perl XMLParser ]);
   configureFlags = [ "--with-xml-catalog=${docbook_xml_dtd_42}/xml/dtd/docbook/docbook.cat" ];
 
   passthru = {
diff --git a/pkgs/development/python-modules/Cython/default.nix b/pkgs/development/python-modules/Cython/default.nix
index de5eaea842b2..53e9ec270acf 100644
--- a/pkgs/development/python-modules/Cython/default.nix
+++ b/pkgs/development/python-modules/Cython/default.nix
@@ -25,11 +25,11 @@ let
 
 in buildPythonPackage rec {
   pname = "Cython";
-  version = "0.28.3";
+  version = "0.28.5";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1aae6d6e9858888144cea147eb5e677830f45faaff3d305d77378c3cba55f526";
+    sha256 = "b64575241f64f6ec005a4d4137339fb0ba5e156e826db2fdb5f458060d9979e0";
   };
 
   nativeBuildInputs = [
@@ -50,15 +50,6 @@ in buildPythonPackage rec {
 
   doCheck = !stdenv.isDarwin;
 
-  patches = [
-    # The following is in GitHub in 0.28.3 but not in the `sdist`.
-    # https://github.com/cython/cython/issues/2319
-    (fetchpatch {
-      url = https://github.com/cython/cython/commit/c485b1b77264c3c75d090a3c526de24966830d42.patch;
-      sha256 = "1p6jj9rb097kqvhs5j5127sj5zy18l7x9v0p478cjyzh41khh9r0";
-    })
-  ];
-
   meta = {
     description = "An optimising static compiler for both the Python programming language and the extended Cython programming language";
     homepage = http://cython.org;
diff --git a/pkgs/development/python-modules/Fabric/default.nix b/pkgs/development/python-modules/Fabric/default.nix
new file mode 100644
index 000000000000..ed89c26943f8
--- /dev/null
+++ b/pkgs/development/python-modules/Fabric/default.nix
@@ -0,0 +1,36 @@
+{ pkgs
+, buildPythonPackage
+, fetchPypi
+, invoke
+, paramiko
+, cryptography
+, pytest
+, mock
+, pytest-relaxed
+}:
+
+buildPythonPackage rec {
+  pname = "fabric";
+  version = "2.4.0";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "93684ceaac92e0b78faae551297e29c48370cede12ff0f853cdebf67d4b87068";
+  };
+
+  propagatedBuildInputs = [ invoke paramiko cryptography ];
+  checkInputs = [ pytest mock pytest-relaxed ];
+
+  # ignore subprocess main errors (1) due to hardcoded /bin/bash
+  checkPhase = ''
+    rm tests/main.py
+    pytest tests
+  '';
+
+  meta = with pkgs.lib; {
+    description = "Pythonic remote execution";
+    homepage    = https://www.fabfile.org/;
+    license     = licenses.bsd2;
+    maintainers = [ maintainers.costrouc ];
+  };
+}
diff --git a/pkgs/development/python-modules/Theano/default.nix b/pkgs/development/python-modules/Theano/default.nix
index 793488f0b136..a9799807a279 100644
--- a/pkgs/development/python-modules/Theano/default.nix
+++ b/pkgs/development/python-modules/Theano/default.nix
@@ -45,13 +45,13 @@ let
 
 in buildPythonPackage rec {
   pname = "Theano";
-  version = "1.0.2";
+  version = "1.0.3";
 
   disabled = isPyPy || pythonOlder "2.6" || (isPy3k && pythonOlder "3.3");
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "6768e003d328a17011e6fca9126fbb8a6ffd3bb13cb21c450f3e724cca29abde";
+    sha256 = "637f3b34d40ef5e0d54dd4c40618475aaa085c26d2491e925c98e2ad4bc2115a";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/alabaster/default.nix b/pkgs/development/python-modules/alabaster/default.nix
index a2a35f852a3d..e5aaa9a6c769 100644
--- a/pkgs/development/python-modules/alabaster/default.nix
+++ b/pkgs/development/python-modules/alabaster/default.nix
@@ -3,11 +3,11 @@
 
 buildPythonPackage rec {
   pname = "alabaster";
-  version = "0.7.11";
+  version = "0.7.12";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "b63b1f4dc77c074d386752ec4a8a7517600f6c0db8cd42980cae17ab7b3275d7";
+    sha256 = "a661d72d58e6ea8a57f7a86e37d86716863ee5e92788398526d58b26a4e4dc02";
   };
 
   propagatedBuildInputs = [ pygments ];
diff --git a/pkgs/development/python-modules/autobahn/default.nix b/pkgs/development/python-modules/autobahn/default.nix
index f618b05373a7..01922f98c402 100644
--- a/pkgs/development/python-modules/autobahn/default.nix
+++ b/pkgs/development/python-modules/autobahn/default.nix
@@ -4,11 +4,11 @@
 }:
 buildPythonPackage rec {
   pname = "autobahn";
-  version = "18.8.1";
+  version = "18.8.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "b69858e0be4bff8437b0bd82a0db1cbef7405e16bd9354ba587c043d6d5e1ad9";
+    sha256 = "448df2e241011ea2948799918930042d81e63d26b01912c472f5a9a37f42f319";
   };
 
   propagatedBuildInputs = [ six txaio twisted zope_interface cffi ] ++
diff --git a/pkgs/development/python-modules/beancount/default.nix b/pkgs/development/python-modules/beancount/default.nix
index 195a1ccad766..1a005d9e42d7 100644
--- a/pkgs/development/python-modules/beancount/default.nix
+++ b/pkgs/development/python-modules/beancount/default.nix
@@ -4,14 +4,14 @@
 , nose, requests }:
 
 buildPythonPackage rec {
-  version = "2.1.2";
+  version = "2.1.3";
   pname = "beancount";
 
   disabled = !isPy3k;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "d0d5f7088cb6b699cc4d030dad42d20b8228232cdb445bb1330d4ef5e3581f52";
+    sha256 = "4b7b0d3633c82ca88d3cb3d31ad2fd2e45a42401cfa94eaa1cb938ffece34f22";
   };
 
   checkInputs = [ nose ];
diff --git a/pkgs/development/python-modules/bedup/default.nix b/pkgs/development/python-modules/bedup/default.nix
new file mode 100644
index 000000000000..13aa48f7f8f3
--- /dev/null
+++ b/pkgs/development/python-modules/bedup/default.nix
@@ -0,0 +1,42 @@
+{ stdenv
+, buildPythonPackage
+, fetchFromGitHub
+, btrfs-progs
+, contextlib2
+, pyxdg
+, pycparser
+, alembic
+, cffi
+, pythonOlder
+, isPyPy
+}:
+
+buildPythonPackage rec {
+  version = "0.10.1";
+  pname = "bedup";
+  disabled = pythonOlder "3.3";
+
+  src = fetchFromGitHub {
+    owner = "g2p";
+    repo = "bedup";
+    rev = "v${version}";
+    sha256 = "0sp8pmjkxcqq0alianfp41mwq7qj10rk1qy31pjjp9kiph1rn0x6";
+  };
+
+  buildInputs = [ btrfs-progs ];
+  propagatedBuildInputs = [ contextlib2 pyxdg pycparser alembic ]
+    ++ stdenv.lib.optionals (!isPyPy) [ cffi ];
+
+  meta = with stdenv.lib; {
+    description = "Deduplication for Btrfs";
+    longDescription = ''
+      Deduplication for Btrfs. bedup looks for new and changed files,
+      making sure that multiple copies of identical files share space
+      on disk. It integrates deeply with btrfs so that scans are
+      incremental and low-impact.
+    '';
+    homepage = https://github.com/g2p/bedup;
+    license = licenses.gpl2;
+    maintainers = with maintainers; [ bluescreen303 ];
+  };
+}
diff --git a/pkgs/development/python-modules/binwalk/default.nix b/pkgs/development/python-modules/binwalk/default.nix
new file mode 100644
index 000000000000..9bd7e586820d
--- /dev/null
+++ b/pkgs/development/python-modules/binwalk/default.nix
@@ -0,0 +1,37 @@
+{ stdenv
+, buildPythonPackage
+, fetchFromGitHub
+, zlib
+, xz
+, ncompress
+, gzip
+, bzip2
+, gnutar
+, p7zip
+, cabextract
+, lzma
+, pycrypto
+, pyqtgraph ? null }:
+
+let visualizationSupport = (pyqtgraph != null);
+in
+buildPythonPackage rec {
+  name = "binwalk-${version}";
+  version = "2.1.1";
+
+  src = fetchFromGitHub {
+    owner = "devttys0";
+    repo = "binwalk";
+    rev = "291a03595d17f848c73b74cb6ca508da782cd8f7";
+    sha256 = "0grid93yz6i6jb2zggrqncp5awdf7qi88j5y2k7dq0k9r6b8zydw";
+  };
+
+  propagatedBuildInputs = [ zlib xz ncompress gzip bzip2 gnutar p7zip cabextract lzma pycrypto ]
+    ++ stdenv.lib.optional visualizationSupport pyqtgraph;
+
+  meta = with stdenv.lib; {
+    homepage = "http://binwalk.org";
+    description = "A tool for searching a given binary image for embedded files";
+    maintainers = [ maintainers.koral ];
+  };
+}
diff --git a/pkgs/development/python-modules/bootstrapped-pip/default.nix b/pkgs/development/python-modules/bootstrapped-pip/default.nix
index 613be1f7d6b7..d482b7a8c88b 100644
--- a/pkgs/development/python-modules/bootstrapped-pip/default.nix
+++ b/pkgs/development/python-modules/bootstrapped-pip/default.nix
@@ -3,26 +3,26 @@
 let
   wheel_source = fetchPypi {
     pname = "wheel";
-    version = "0.31.1";
+    version = "0.32.1";
     format = "wheel";
-    sha256 = "80044e51ec5bbf6c894ba0bc48d26a8c20a9ba629f4ca19ea26ecfcf87685f5f";
+    sha256 = "15hizylh761jcaz8zfdc3wg30jf33izaakyv1p82ppx2y5rgg8cz";
   };
   setuptools_source = fetchPypi {
     pname = "setuptools";
-    version = "40.2.0";
+    version = "40.4.3";
     format = "wheel";
-    sha256 = "ea3796a48a207b46ea36a9d26de4d0cc87c953a683a7b314ea65d666930ea8e6";
+    sha256 = "1zzryv1fqx4nk7hzv4afxpl8k7f60lc0qkhxlc8sqjs4igakfhff";
   };
 
 in stdenv.mkDerivation rec {
   pname = "pip";
-  version = "18.0";
+  version = "18.1";
   name = "${python.libPrefix}-bootstrapped-${pname}-${version}";
 
   src = fetchPypi {
     inherit pname version;
     format = "wheel";
-    sha256 = "070e4bf493c7c2c9f6a08dd797dd3c066d64074c38e9e8a0fb4e6541f266d96c";
+    sha256 = "7909d0a0932e88ea53a7014dfd14522ffef91a464daaaf5c573343852ef98550";
   };
 
   unpackPhase = ''
diff --git a/pkgs/development/python-modules/box2d/default.nix b/pkgs/development/python-modules/box2d/default.nix
new file mode 100644
index 000000000000..f1bd87126795
--- /dev/null
+++ b/pkgs/development/python-modules/box2d/default.nix
@@ -0,0 +1,37 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, swig2
+, pkgs-box2d
+, isPy3k
+}:
+
+buildPythonPackage rec {
+  pname = "Box2D";
+  version = "2.3.2";
+  disabled = isPy3k;
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "d1557dffdf9c1d6c796ec5df53e3d93227bb026c14b8411d22c295edaa2fb225";
+  };
+
+  postPatch = ''
+    sed -i "s/'Box2D.tests' : 'tests'//" setup.py
+  '';
+
+  buildInputs = [ swig2 pkgs-box2d ];
+
+  # tests not included with pypi release
+  doCheck = false;
+
+  meta = with stdenv.lib; {
+    homepage = https://github.com/pybox2d/pybox2d;
+    description = ''
+      A 2D game physics library for Python under
+      the very liberal zlib license
+    '';
+    license = licenses.zlib;
+    maintainers = with maintainers; [ sepi ];
+  };
+}
diff --git a/pkgs/development/python-modules/box2d/disable-test.patch b/pkgs/development/python-modules/box2d/disable-test.patch
deleted file mode 100644
index bc2897a8b100..000000000000
--- a/pkgs/development/python-modules/box2d/disable-test.patch
+++ /dev/null
@@ -1,14 +0,0 @@
-Common subdirectories: Box2D-2.3b0/Box2D and Box2D-2.3b0.new/Box2D
-Common subdirectories: Box2D-2.3b0/examples and Box2D-2.3b0.new/examples
-Common subdirectories: Box2D-2.3b0/library and Box2D-2.3b0.new/library
-diff -u Box2D-2.3b0/setup.py Box2D-2.3b0.new/setup.py
---- Box2D-2.3b0/setup.py	2013-02-02 18:09:34.000000000 +0100
-+++ Box2D-2.3b0.new/setup.py	2014-10-25 13:32:07.136922343 +0200
-@@ -176,7 +176,6 @@
-     package_dir      = {'Box2D': library_path, 

-                         'Box2D.b2': os.path.join(library_path, 'b2'),

-                         'Box2D.tests' : 'tests'},

--    test_suite       = 'tests',

-     options          = { 'build_ext': { 'swig_opts' : swig_arguments },

-                          'egg_info' : { 'egg_base' : library_base },

-                         },

diff --git a/pkgs/development/python-modules/bsddb3/default.nix b/pkgs/development/python-modules/bsddb3/default.nix
new file mode 100644
index 000000000000..971aac70ad8e
--- /dev/null
+++ b/pkgs/development/python-modules/bsddb3/default.nix
@@ -0,0 +1,38 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, pkgs
+, isPy3k
+}:
+
+buildPythonPackage rec {
+  pname = "bsddb3";
+  version = "6.2.6";
+  disabled = isPy3k;
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "42d621f4037425afcb16b67d5600c4556271a071a9a7f7f2c2b1ba65bc582d05";
+  };
+
+  buildInputs = [ pkgs.db ];
+
+  # Judging from SyntaxError in test
+  doCheck = false; # test suite breaks python3 compatibility
+
+  # Path to database need to be set.
+  # Somehow the setup.py flag is not propagated.
+  #setupPyBuildFlags = [ "--berkeley-db=${pkgs.db}" ];
+  # We can also use a variable
+  preConfigure = ''
+    export BERKELEYDB_DIR=${pkgs.db.dev};
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Python bindings for Oracle Berkeley DB";
+    homepage = https://www.jcea.es/programacion/pybsddb.htm;
+    license = with licenses; [ agpl3 ]; # License changed from bsd3 to agpl3 since 6.x
+    maintainers = [ maintainers.costrouc ];
+  };
+
+}
diff --git a/pkgs/development/python-modules/bugz/default.nix b/pkgs/development/python-modules/bugz/default.nix
new file mode 100644
index 000000000000..4af8b247fcf3
--- /dev/null
+++ b/pkgs/development/python-modules/bugz/default.nix
@@ -0,0 +1,26 @@
+{ stdenv
+, buildPythonPackage
+, fetchFromGitHub
+}:
+
+buildPythonPackage rec {
+  pname = "bugz-0.9.3";
+  version = "0.13";
+
+  src = fetchFromGitHub {
+    owner = "williamh";
+    repo = "pybugz";
+    rev = "0.13";
+    sha256 = "1nw07q7r078dp82rcrhvvnhmnaqjx6f8a6cdjgrsiy6fryrx9dwz";
+  };
+
+  doCheck = false;
+
+  meta = with stdenv.lib; {
+    homepage = http://www.liquidx.net/pybugz/;
+    description = "Command line interface for Bugzilla";
+    license = licenses.gpl2;
+    maintainers = [ maintainers.costrouc ];
+  };
+
+}
diff --git a/pkgs/development/python-modules/buildout-nix/default.nix b/pkgs/development/python-modules/buildout-nix/default.nix
index 5a1bc4485b71..c76a930c9655 100644
--- a/pkgs/development/python-modules/buildout-nix/default.nix
+++ b/pkgs/development/python-modules/buildout-nix/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "zc.buildout";
-  version = "2.12.1";
+  version = "2.12.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1e180b62fd129a68cb3a9ec8eb0ef457e18921269a93e87ef2cc34519415332d";
+    sha256 = "ff5d7e8a1361da8dfe1025d35ef6ce55e929dd8518d2a811a1cf2c948950a043";
   };
 
   patches = [ ./nix.patch ];
diff --git a/pkgs/development/python-modules/buildout/default.nix b/pkgs/development/python-modules/buildout/default.nix
index c75b9fdb6ccb..ede09373f90f 100644
--- a/pkgs/development/python-modules/buildout/default.nix
+++ b/pkgs/development/python-modules/buildout/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "zc.buildout";
-  version = "2.12.1";
+  version = "2.12.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1e180b62fd129a68cb3a9ec8eb0ef457e18921269a93e87ef2cc34519415332d";
+    sha256 = "ff5d7e8a1361da8dfe1025d35ef6ce55e929dd8518d2a811a1cf2c948950a043";
   };
 
   meta = with stdenv.lib; {
diff --git a/pkgs/development/python-modules/bumps/default.nix b/pkgs/development/python-modules/bumps/default.nix
index 469b449483af..d8fc3d992352 100644
--- a/pkgs/development/python-modules/bumps/default.nix
+++ b/pkgs/development/python-modules/bumps/default.nix
@@ -2,7 +2,7 @@
 
 buildPythonPackage rec {
   pname = "bumps";
-  version = "0.7.10";
+  version = "0.7.11";
 
   propagatedBuildInputs = [six];
 
@@ -12,7 +12,7 @@ buildPythonPackage rec {
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "07917abf7e598f2a42456ca4f704c6da2a5489eaea0b9a7c61ed8a26506737c8";
+    sha256 = "16d24a7f965592d9b02f96e68e6aa70d6fb59abe4db37bb14c4b60c509a3c2ef";
   };
 
   meta = with stdenv.lib; {
diff --git a/pkgs/development/python-modules/caldavclientlibrary-asynk/default.nix b/pkgs/development/python-modules/caldavclientlibrary-asynk/default.nix
new file mode 100644
index 000000000000..7f4857a95319
--- /dev/null
+++ b/pkgs/development/python-modules/caldavclientlibrary-asynk/default.nix
@@ -0,0 +1,35 @@
+{ stdenv
+, buildPythonPackage
+, fetchgit
+, isPy3k
+}:
+
+buildPythonPackage rec {
+  version = "asynkdev";
+  pname = "caldavclientlibrary-asynk";
+
+  src = fetchgit {
+    url = "https://github.com/skarra/CalDAVClientLibrary.git";
+    rev = "06699b08190d50cc2636b921a654d67db0a967d1";
+    sha256 = "157q32251ac9x3gdshgrjwsy48nq74vrzviswvph56h9wa8ksnnk";
+  };
+
+  disabled = isPy3k;
+
+  meta = with stdenv.lib; {
+    description = "A Python library and tool for CalDAV";
+
+    longDescription = ''
+      CalDAVCLientLibrary is a Python library and tool for CalDAV.
+
+      This package is the unofficial CalDAVCLientLibrary Python
+      library maintained by the author of Asynk and is needed for
+      that package.
+    '';
+
+    homepage = https://github.com/skarra/CalDAVClientLibrary/tree/asynkdev/;
+    maintainers = with maintainers; [ pjones ];
+    broken = true; # 2018-04-11
+  };
+
+}
diff --git a/pkgs/development/python-modules/capstone/default.nix b/pkgs/development/python-modules/capstone/default.nix
new file mode 100644
index 000000000000..91e00ed7e43c
--- /dev/null
+++ b/pkgs/development/python-modules/capstone/default.nix
@@ -0,0 +1,38 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, fetchpatch
+}:
+
+buildPythonPackage rec {
+  pname = "capstone";
+  version = "3.0.4";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "945d3b8c3646a1c3914824c416439e2cf2df8969dd722c8979cdcc23b40ad225";
+  };
+
+  patches = [
+    (fetchpatch {
+      stripLen = 2;
+      url = "https://patch-diff.githubusercontent.com/raw/aquynh/capstone/pull/783/commits/23fe9f36622573c747e2bab6119ff245437bf276.patch";
+      sha256 = "0yizqrdlxqxn16873593kdx2vrr7gvvilhgcf9xy6hr0603d3m5r";
+    })
+  ];
+
+  postPatch = ''
+    patchShebangs src/make.sh
+  '';
+
+  preCheck = ''
+    mv src/libcapstone.so capstone
+  '';
+
+  meta = with stdenv.lib; {
+    homepage = "http://www.capstone-engine.org/";
+    license = licenses.bsdOriginal;
+    description = "Capstone disassembly engine";
+    maintainers = with maintainers; [ bennofs ];
+  };
+}
diff --git a/pkgs/development/python-modules/carbon/default.nix b/pkgs/development/python-modules/carbon/default.nix
index df14f44f0b00..0398782900d5 100644
--- a/pkgs/development/python-modules/carbon/default.nix
+++ b/pkgs/development/python-modules/carbon/default.nix
@@ -4,13 +4,13 @@
 
 buildPythonPackage rec {
   pname = "carbon";
-  version = "1.1.3";
+  version = "1.1.4";
 
   disabled = isPy3k;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1s7327p30w4l9ak4gc7m5ga521233179n2lr3j0ggfbmfhd6blky";
+    sha256 = "1b70e34ac0f0bd32a03ee14eaf1ed2c857e208984fc9761f59a95c21c5264513";
   };
 
   propagatedBuildInputs = [ twisted whisper txamqp cachetools urllib3 ];
diff --git a/pkgs/development/python-modules/cassandra-driver/default.nix b/pkgs/development/python-modules/cassandra-driver/default.nix
new file mode 100644
index 000000000000..110cd1e0bd5b
--- /dev/null
+++ b/pkgs/development/python-modules/cassandra-driver/default.nix
@@ -0,0 +1,55 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, pkgs
+, cython
+, futures
+, six
+, python
+, scales
+, eventlet
+, twisted
+, mock
+, gevent
+, nose
+, pytz
+, pyyaml
+, sure
+, pythonOlder
+}:
+
+buildPythonPackage rec {
+  pname = "cassandra-driver";
+  version = "3.6.0";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1aqmy3psn12lxgp659d0zsxkirxzy5lnbnzxf9xjq1a93s3qm704";
+  };
+
+  buildInputs = [ pkgs.libev cython ];
+
+  propagatedBuildInputs = [ six ]
+    ++ stdenv.lib.optionals (pythonOlder "3.4") [ futures ];
+
+  postPatch = ''
+    sed -i "s/<=1.0.1//" setup.py
+  '';
+
+  checkPhase = ''
+    ${python.interpreter} setup.py gevent_nosetests
+    ${python.interpreter} setup.py eventlet_nosetests
+  '';
+
+  checkInputs = [ scales eventlet twisted mock gevent nose pytz pyyaml sure ];
+
+  # Could not get tests running
+  doCheck = false;
+
+  meta = with stdenv.lib; {
+    homepage = http://datastax.github.io/python-driver/;
+    description = "A Python client driver for Apache Cassandra";
+    license = licenses.asl20;
+  };
+
+}
diff --git a/pkgs/development/python-modules/cddb/default.nix b/pkgs/development/python-modules/cddb/default.nix
new file mode 100644
index 000000000000..f40ff08fcf42
--- /dev/null
+++ b/pkgs/development/python-modules/cddb/default.nix
@@ -0,0 +1,24 @@
+{ stdenv
+, buildPythonPackage
+, pkgs
+, isPy3k
+}:
+
+buildPythonPackage rec {
+  name = "CDDB-1.4";
+  disabled = isPy3k;
+
+  buildInputs = stdenv.lib.optionals stdenv.isDarwin [ pkgs.darwin.apple_sdk.frameworks.IOKit ];
+
+  src = pkgs.fetchurl {
+    url = "http://cddb-py.sourceforge.net/${name}.tar.gz";
+    sha256 = "098xhd575ibvdx7i3dny3lwi851yxhjg2hn5jbbgrwj833rg5l5w";
+  };
+
+  meta = with stdenv.lib; {
+    homepage = http://cddb-py.sourceforge.net/;
+    description = "CDDB and FreeDB audio CD track info access";
+    license = licenses.gpl2Plus;
+  };
+
+}
diff --git a/pkgs/development/python-modules/chameleon/default.nix b/pkgs/development/python-modules/chameleon/default.nix
new file mode 100644
index 000000000000..1a2811b50b67
--- /dev/null
+++ b/pkgs/development/python-modules/chameleon/default.nix
@@ -0,0 +1,22 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+}:
+
+buildPythonPackage rec {
+  pname = "Chameleon";
+  version = "2.25";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "0va95cml7wfjpvgj3dc9xdn8psyjh3zbk6v51b0hcqv2fzh409vb";
+  };
+
+  meta = with stdenv.lib; {
+    homepage = https://chameleon.readthedocs.io/;
+    description = "Fast HTML/XML Template Compiler";
+    license = licenses.bsd0;
+    maintainers = with maintainers; [ garbas domenkozar ];
+  };
+
+}
diff --git a/pkgs/development/python-modules/click-plugins/default.nix b/pkgs/development/python-modules/click-plugins/default.nix
index 74d64d8390cf..a5124ac86134 100644
--- a/pkgs/development/python-modules/click-plugins/default.nix
+++ b/pkgs/development/python-modules/click-plugins/default.nix
@@ -4,11 +4,11 @@
 
 buildPythonPackage rec {
   pname = "click-plugins";
-  version = "1.0.3";
+  version = "1.0.4";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1ifphgaw5mmcdnqd0qfnmrbm62q3k6p573aff4cxgpyjxmz5xk3s";
+    sha256 = "dfed74b5063546a137de99baaaf742b4de4337ad2b3e1df5ec7c8a256adc0847";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/closure-linter/default.nix b/pkgs/development/python-modules/closure-linter/default.nix
new file mode 100644
index 000000000000..f6c94ace1fad
--- /dev/null
+++ b/pkgs/development/python-modules/closure-linter/default.nix
@@ -0,0 +1,33 @@
+{ stdenv
+, buildPythonPackage
+, fetchgit
+, isPy3k
+, gflags
+}:
+
+/* There is a project called "closure-linter" on PyPI that is the
+   same as this, but it does not appear to be owned by Google.
+   So we're pulling from Google's GitHub repo instead. */
+buildPythonPackage rec {
+  pname = "closure-linter";
+  version = "2.3.19";
+
+  /* This project has no Python 3 support, as noted by
+     https://github.com/google/closure-linter/issues/81 */
+  disabled = isPy3k;
+
+  src = fetchgit {
+    url = "https://github.com/google/closure-linter";
+    rev = "5c27529075bb88bdc45e73008f496dec8438d658";
+    sha256 = "076c7q7pr7akfvq5y8lxr1ab81wwps07gw00igdkcxnc5k9dzxwc";
+  };
+
+  propagatedBuildInputs = [ gflags ];
+
+  meta = with stdenv.lib; {
+    description = "Checks JavaScript files against Google's style guide.";
+    homepage = "https://developers.google.com/closure/utilities/";
+    license = with licenses; [ asl20 ];
+  };
+
+}
diff --git a/pkgs/development/python-modules/cloudpickle/default.nix b/pkgs/development/python-modules/cloudpickle/default.nix
index f70ebee411ab..b00d210a464a 100644
--- a/pkgs/development/python-modules/cloudpickle/default.nix
+++ b/pkgs/development/python-modules/cloudpickle/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "cloudpickle";
-  version = "0.5.5";
+  version = "0.5.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "6ea4b548f61a4f616b065182716318c7dced8c053517f35ac59cec22802daf3d";
+    sha256 = "0390ecb3731ac035d74c34651460f4a683e9ef7443861712b8d56c20c2f92113";
   };
 
   buildInputs = [ pytest mock ];
diff --git a/pkgs/development/python-modules/cntk/default.nix b/pkgs/development/python-modules/cntk/default.nix
new file mode 100644
index 000000000000..2bcb7165ca1c
--- /dev/null
+++ b/pkgs/development/python-modules/cntk/default.nix
@@ -0,0 +1,38 @@
+{ stdenv
+, buildPythonPackage
+, pkgs
+, numpy
+, scipy
+, enum34
+, protobuf
+, pip
+, python
+}:
+
+buildPythonPackage rec {
+  inherit (pkgs.cntk) name version src meta;
+
+  buildInputs = [ pkgs.cntk pkgs.swig pkgs.openmpi ];
+  propagatedBuildInputs = [ numpy scipy enum34 protobuf pip ];
+
+  CNTK_LIB_PATH = "${pkgs.cntk}/lib";
+  CNTK_COMPONENT_VERSION = pkgs.cntk.version;
+
+  postPatch = ''
+    cd bindings/python
+    sed -i 's,"libmpi.so.12","${pkgs.openmpi}/lib/libmpi.so",g' cntk/train/distributed.py
+  '';
+
+  postInstall = ''
+    rm -rf $out/${python.sitePackages}/cntk/libs
+    ln -s ${pkgs.cntk}/lib $out/${python.sitePackages}/cntk/libs
+    # It's not installed for some reason.
+    cp cntk/cntk_py.py $out/${python.sitePackages}/cntk
+  '';
+
+  # Actual tests are broken.
+  checkPhase = ''
+    cd $NIX_BUILD_TOP
+    ${python.interpreter} -c "import cntk"
+  '';
+}
diff --git a/pkgs/development/python-modules/colanderalchemy/default.nix b/pkgs/development/python-modules/colanderalchemy/default.nix
new file mode 100644
index 000000000000..78f0f6fe371f
--- /dev/null
+++ b/pkgs/development/python-modules/colanderalchemy/default.nix
@@ -0,0 +1,35 @@
+{ stdenv
+, buildPythonPackage
+, fetchpatch
+, fetchPypi
+, unittest2
+, colander
+, sqlalchemy
+}:
+
+buildPythonPackage rec {
+  pname = "ColanderAlchemy";
+  version = "0.3.3";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "11wcni2xmfmy001rj62q2pwf305vvngkrfm5c4zlwvgbvlsrvnnw";
+  };
+
+  patches = [
+    (fetchpatch {
+        url = "https://github.com/stefanofontanelli/ColanderAlchemy/commit/b45fe35f2936a5ccb705e9344075191e550af6c9.patch";
+        sha256 = "1kf278wjq49zd6fhpp55vdcawzdd107767shzfck522sv8gr6qvx";
+    })
+  ];
+
+  buildInputs = [ unittest2 ];
+  propagatedBuildInputs = [ colander sqlalchemy ];
+
+  meta = with stdenv.lib; {
+    description = "Autogenerate Colander schemas based on SQLAlchemy models";
+    homepage = https://github.com/stefanofontanelli/ColanderAlchemy;
+    license = licenses.mit;
+  };
+
+}
diff --git a/pkgs/development/python-modules/colored/default.nix b/pkgs/development/python-modules/colored/default.nix
new file mode 100644
index 000000000000..a32c9ebb429c
--- /dev/null
+++ b/pkgs/development/python-modules/colored/default.nix
@@ -0,0 +1,24 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+}:
+
+buildPythonPackage rec {
+  pname = "colored";
+  version = "1.1.5";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1r1vsypk8v7az82d66bidbxlndx1h7xd4m43hpg1a6hsjr30wrm3";
+  };
+
+  # No proper test suite
+  doCheck = false;
+
+  meta = with stdenv.lib; {
+    homepage = https://gitlab.com/dslackw/colored;
+    description = "Simple library for color and formatting to terminal";
+    license = licenses.mit;
+  };
+
+}
diff --git a/pkgs/development/python-modules/cornice/default.nix b/pkgs/development/python-modules/cornice/default.nix
new file mode 100644
index 000000000000..dc7c9c334d3c
--- /dev/null
+++ b/pkgs/development/python-modules/cornice/default.nix
@@ -0,0 +1,31 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, pyramid
+, simplejson
+, six
+, venusian
+}:
+
+buildPythonPackage rec {
+  pname = "cornice";
+  version = "3.4.1";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "a7f8db903ba06c2584c7db4474459de3565d90b5e4ae4b97c687840e11d5b7fd";
+  };
+
+  propagatedBuildInputs = [ pyramid simplejson six venusian ];
+
+  # tests not packaged with pypi release
+  doCheck = false;
+
+  meta = with stdenv.lib; {
+    homepage = https://github.com/mozilla-services/cornice;
+    description = "Build Web Services with Pyramid";
+    license = licenses.mpl20;
+    maintainers = [ maintainers.costrouc ];
+  };
+
+}
diff --git a/pkgs/development/python-modules/cupy/default.nix b/pkgs/development/python-modules/cupy/default.nix
index 9a836e88752a..f9f400408a78 100644
--- a/pkgs/development/python-modules/cupy/default.nix
+++ b/pkgs/development/python-modules/cupy/default.nix
@@ -6,11 +6,11 @@
 
 buildPythonPackage rec {
   pname = "cupy";
-  version = "4.4.0";
+  version = "4.4.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "fca0e3d3fdad4c825197ea421bed0d253224b44daf738d82af5cba856c1c0b3e";
+    sha256 = "d46a3eea628a17b9c3f446e4b13513a1f0cc0b9930214417b41c90dcf0bb427f";
   };
 
   checkInputs = [
diff --git a/pkgs/development/python-modules/cvxopt/default.nix b/pkgs/development/python-modules/cvxopt/default.nix
index e17bd38da02b..f0de39edd0d2 100644
--- a/pkgs/development/python-modules/cvxopt/default.nix
+++ b/pkgs/development/python-modules/cvxopt/default.nix
@@ -15,13 +15,13 @@
 
 buildPythonPackage rec {
   pname = "cvxopt";
-  version = "1.2.0";
+  version = "1.2.1";
 
   disabled = isPyPy; # hangs at [translation:info]
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "3296c9d49b7dcb894b20db5d7d1c1a443912b4d82358e03f836575e8398e0d60";
+    sha256 = "12e3cfda982576b0b9b597d297aaf3172efa765a20fbed6f3c066aa0c48ee817";
   };
 
   # similar to Gsl, glpk, fftw there is also a dsdp interface
diff --git a/pkgs/development/python-modules/dask-image/default.nix b/pkgs/development/python-modules/dask-image/default.nix
index 15a13b2ff714..ed576bcc02bb 100644
--- a/pkgs/development/python-modules/dask-image/default.nix
+++ b/pkgs/development/python-modules/dask-image/default.nix
@@ -10,12 +10,12 @@
 }:
 
 buildPythonPackage rec {
-  version = "0.1.1";
+  version = "0.1.2";
   pname = "dask-image";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "e6294ac577a8fc0abec2b97a2c42d404f599feac61d6899bdf1bf2b7cfb0e015";
+    sha256 = "401e2c345a582eb2859a4a2a4a6fcfbc85beece59705f3ead9b6708a0cd183e7";
   };
 
   checkInputs = [ pytest scikitimage ];
diff --git a/pkgs/development/python-modules/ddt/default.nix b/pkgs/development/python-modules/ddt/default.nix
new file mode 100644
index 000000000000..2fb9e9e990b6
--- /dev/null
+++ b/pkgs/development/python-modules/ddt/default.nix
@@ -0,0 +1,21 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+}:
+
+buildPythonPackage rec {
+  pname = "ddt";
+  version = "1.0.0";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "e24ecb7e2cf0bf43fa9d4255d3ae2bd0b7ce30b1d1b89ace7aa68aca1152f37a";
+  };
+
+  meta = with stdenv.lib; {
+    description = "Data-Driven/Decorated Tests, a library to multiply test cases";
+    homepage = https://github.com/txels/ddt;
+    license = licenses.mit;
+  };
+
+}
diff --git a/pkgs/development/python-modules/deprecation/default.nix b/pkgs/development/python-modules/deprecation/default.nix
index 10e0d79dddf5..600fe8887514 100644
--- a/pkgs/development/python-modules/deprecation/default.nix
+++ b/pkgs/development/python-modules/deprecation/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "deprecation";
-  version = "2.0.5";
+  version = "2.0.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "cbe7d15006bc339709be5e02b14884ecc479639c1a3714a908de3a8ca13b5ca9";
+    sha256 = "68071e5ae7cd7e9da6c7dffd750922be4825c7c3a6780d29314076009cc39c35";
   };
 
   propagatedBuildInputs = [ packaging ];
diff --git a/pkgs/development/python-modules/deskcon/default.nix b/pkgs/development/python-modules/deskcon/default.nix
new file mode 100644
index 000000000000..05fa3aa835a3
--- /dev/null
+++ b/pkgs/development/python-modules/deskcon/default.nix
@@ -0,0 +1,41 @@
+{ stdenv
+, buildPythonPackage
+, pyopenssl
+, pkgs
+, isPy3k
+, python
+}:
+
+buildPythonPackage rec {
+  name = "deskcon-0.3";
+  disabled = isPy3k;
+
+  src = pkgs.fetchFromGitHub {
+    owner= "screenfreeze";
+    repo = "deskcon-desktop";
+    rev = "267804122188fa79c37f2b21f54fe05c898610e6";
+    sha256 ="0i1dd85ls6n14m9q7lkympms1w3x0pqyaxvalq82s4xnjdv585j3";
+  };
+
+  phases = [ "unpackPhase" "installPhase" ];
+
+  pythonPath = [ pyopenssl pkgs.gtk3 ];
+
+  installPhase = ''
+    substituteInPlace server/deskcon-server --replace "python2" "python"
+
+    mkdir -p $out/bin
+    mkdir -p $out/lib/${python.libPrefix}/site-packages
+    cp -r "server/"* $out/lib/${python.libPrefix}/site-packages
+    mv $out/lib/${python.libPrefix}/site-packages/deskcon-server $out/bin/deskcon-server
+
+    wrapPythonProgramsIn $out/bin "$out $pythonPath"
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Integrates an Android device into a desktop";
+    homepage = https://github.com/screenfreeze/deskcon-desktop;
+    license = licenses.gpl3;
+  };
+
+}
diff --git a/pkgs/development/python-modules/distributed/default.nix b/pkgs/development/python-modules/distributed/default.nix
index 694bc2ce4f94..65d0b1ab77f1 100644
--- a/pkgs/development/python-modules/distributed/default.nix
+++ b/pkgs/development/python-modules/distributed/default.nix
@@ -26,12 +26,12 @@
 
 buildPythonPackage rec {
   pname = "distributed";
-  version = "1.23.1";
+  version = "1.23.3";
 
   # get full repository need conftest.py to run tests
   src = fetchPypi {
     inherit pname version;
-    sha256 = "9d4693442efe40e05e4304fe6d8174989c6eb4bad1afe70480c98263ef8e1cdb";
+    sha256 = "2d48a4de280fd7243ca76f9b12db5fe2486fc89dcdb510c77fa51f51733a04cc";
   };
 
   checkInputs = [ pytest pytest-repeat pytest-faulthandler pytest-timeout mock joblib ];
diff --git a/pkgs/development/python-modules/distutils_extra/default.nix b/pkgs/development/python-modules/distutils_extra/default.nix
new file mode 100644
index 000000000000..52b3b41b02bc
--- /dev/null
+++ b/pkgs/development/python-modules/distutils_extra/default.nix
@@ -0,0 +1,21 @@
+{ stdenv
+, buildPythonPackage
+, fetchurl
+}:
+
+buildPythonPackage rec {
+  pname = "distutils-extra";
+  version = "2.39";
+
+  src = fetchurl {
+    url = "http://launchpad.net/python-distutils-extra/trunk/${version}/+download/python-${pname}-${version}.tar.gz";
+    sha256 = "1bv3h2p9ffbzyddhi5sccsfwrm3i6yxzn0m06fdxkj2zsvs28gvj";
+  };
+
+  meta = with stdenv.lib; {
+    homepage = https://launchpad.net/python-distutils-extra;
+    description = "Enhancements to Python's distutils";
+    license = licenses.gpl2;
+  };
+
+}
diff --git a/pkgs/development/python-modules/django/1_8.nix b/pkgs/development/python-modules/django/1_8.nix
new file mode 100644
index 000000000000..e87a9cbad027
--- /dev/null
+++ b/pkgs/development/python-modules/django/1_8.nix
@@ -0,0 +1,31 @@
+{ stdenv
+, buildPythonPackage
+, fetchurl
+, pythonOlder
+}:
+
+buildPythonPackage rec {
+  name = "Django-${version}";
+  version = "1.8.18";
+  disabled = pythonOlder "2.7";
+
+  src = fetchurl {
+    url = "http://www.djangoproject.com/m/releases/1.8/${name}.tar.gz";
+    sha256 = "1ishvbihr9pain0486qafb18dnb7v2ppq34nnx1s8f95bvfiqqf7";
+  };
+
+  # too complicated to setup
+  doCheck = false;
+
+  # patch only $out/bin to avoid problems with starter templates (see #3134)
+  postFixup = ''
+    wrapPythonProgramsIn $out/bin "$out $pythonPath"
+  '';
+
+  meta = with stdenv.lib; {
+    description = "A high-level Python Web framework";
+    homepage = https://www.djangoproject.com/;
+    license = licenses.bsd0;
+  };
+
+}
diff --git a/pkgs/development/python-modules/django_classytags/default.nix b/pkgs/development/python-modules/django_classytags/default.nix
new file mode 100644
index 000000000000..022709bacbe0
--- /dev/null
+++ b/pkgs/development/python-modules/django_classytags/default.nix
@@ -0,0 +1,27 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, django
+}:
+
+buildPythonPackage rec {
+  pname = "django-classy-tags";
+  version = "0.6.1";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "0wxvpmjdzk0aajk33y4himn3wqjx7k0aqlka9j8ay3yfav78bdq0";
+  };
+
+  propagatedBuildInputs = [ django ];
+
+  # tests appear to be broken on 0.6.1 at least
+  doCheck = ( version != "0.6.1" );
+
+  meta = with stdenv.lib; {
+    description = "Class based template tags for Django";
+    homepage = https://github.com/ojii/django-classy-tags;
+    license = licenses.bsd3;
+  };
+
+}
diff --git a/pkgs/development/python-modules/django_colorful/default.nix b/pkgs/development/python-modules/django_colorful/default.nix
new file mode 100644
index 000000000000..7da878880dab
--- /dev/null
+++ b/pkgs/development/python-modules/django_colorful/default.nix
@@ -0,0 +1,28 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, django
+}:
+
+buildPythonPackage rec {
+  pname = "django-colorful";
+  version = "1.2";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "0y34hzvfrm1xbxrd8frybc9yzgqvz4c07frafipjikw7kfjsw8az";
+  };
+
+  # Tests aren't run
+  doCheck = false;
+
+  # Requires Django >= 1.8
+  buildInputs = [ django ];
+
+  meta = with stdenv.lib; {
+    description = "Django extension that provides database and form color fields";
+    homepage = https://github.com/charettes/django-colorful;
+    license = licenses.mit;
+  };
+
+}
diff --git a/pkgs/development/python-modules/django_contrib_comments/default.nix b/pkgs/development/python-modules/django_contrib_comments/default.nix
new file mode 100644
index 000000000000..f850350ee168
--- /dev/null
+++ b/pkgs/development/python-modules/django_contrib_comments/default.nix
@@ -0,0 +1,24 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, django
+}:
+
+buildPythonPackage rec {
+  pname = "django-contrib-comments";
+  version = "1.9.0";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "689f3f80ff7ea8ab9f712ae5fe17ffa2ee8babbf8d75229ee8acc7bad461dfef";
+  };
+
+  propagatedBuildInputs = [ django ];
+
+  meta = with stdenv.lib; {
+    homepage = https://github.com/django/django-contrib-comments;
+    description = "The code formerly known as django.contrib.comments";
+    license = licenses.bsd0;
+  };
+
+}
diff --git a/pkgs/development/python-modules/django_environ/default.nix b/pkgs/development/python-modules/django_environ/default.nix
new file mode 100644
index 000000000000..15eafa6dd855
--- /dev/null
+++ b/pkgs/development/python-modules/django_environ/default.nix
@@ -0,0 +1,27 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, django
+, six
+}:
+
+buildPythonPackage rec {
+  pname = "django-environ";
+  version = "0.4.0";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "0i32vsgk1xmwpi7i6f6v5hg653y9dl0fsz5qmv94skz6hwgm5kvh";
+  };
+
+  # The testsuite fails to modify the base environment
+  doCheck = false;
+  propagatedBuildInputs = [ django six ];
+
+  meta = with stdenv.lib; {
+    description = "Utilize environment variables to configure your Django application";
+    homepage = https://github.com/joke2k/django-environ/;
+    license = licenses.mit;
+  };
+
+}
diff --git a/pkgs/development/python-modules/django_evolution/default.nix b/pkgs/development/python-modules/django_evolution/default.nix
new file mode 100644
index 000000000000..92ed3d572a1e
--- /dev/null
+++ b/pkgs/development/python-modules/django_evolution/default.nix
@@ -0,0 +1,26 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, isPy3k
+, django
+}:
+
+buildPythonPackage rec {
+  pname = "django_evolution";
+  version = "0.7.5";
+  disabled = isPy3k;
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1qbcx54hq8iy3n2n6cki3bka1m9rp39np4hqddrm9knc954fb7nv";
+  };
+
+  propagatedBuildInputs = [ django ];
+
+  meta = with stdenv.lib; {
+    description = "A database schema evolution tool for the Django web framework";
+    homepage = http://code.google.com/p/django-evolution/;
+    license = licenses.bsd0;
+  };
+
+}
diff --git a/pkgs/development/python-modules/django_modelcluster/default.nix b/pkgs/development/python-modules/django_modelcluster/default.nix
new file mode 100644
index 000000000000..3a2aad16ba5f
--- /dev/null
+++ b/pkgs/development/python-modules/django_modelcluster/default.nix
@@ -0,0 +1,28 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, pytz
+, six
+}:
+
+buildPythonPackage rec {
+  pname = "django-modelcluster";
+  version = "0.6.2";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1plsdi44dvsj2sfx79lsrccjfg0ymajcsf5n0mln4cwd4qi5mwpx";
+  };
+
+  doCheck = false;
+
+  propagatedBuildInputs = [ pytz six ];
+
+  meta = with stdenv.lib; {
+    description = "Django extension to allow working with 'clusters' of models as a single unit, independently of the database";
+    homepage = https://github.com/torchbox/django-modelcluster/;
+    license = licenses.bsd2;
+    maintainers = with maintainers; [ desiderius ];
+  };
+
+}
diff --git a/pkgs/development/python-modules/django_nose/default.nix b/pkgs/development/python-modules/django_nose/default.nix
new file mode 100644
index 000000000000..9d16ee343d6a
--- /dev/null
+++ b/pkgs/development/python-modules/django_nose/default.nix
@@ -0,0 +1,28 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, nose
+, django
+}:
+
+buildPythonPackage rec {
+  pname = "django-nose";
+  version = "1.4.4";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1fm47fkza2lk0xgc6qpi9vs78zg7q8cgl6mdan69sbycgy909ff0";
+  };
+
+  # vast dependency list
+  doCheck = false;
+
+  propagatedBuildInputs = [ django nose ];
+
+  meta = with stdenv.lib; {
+    description = "Provides all the goodness of nose in your Django tests";
+    homepage = https://github.com/django-nose/django-nose;
+    license = licenses.bsd3;
+  };
+
+}
diff --git a/pkgs/development/python-modules/django_reversion/default.nix b/pkgs/development/python-modules/django_reversion/default.nix
new file mode 100644
index 000000000000..038a3d439fac
--- /dev/null
+++ b/pkgs/development/python-modules/django_reversion/default.nix
@@ -0,0 +1,24 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, django
+}:
+
+buildPythonPackage rec {
+  pname = "django-reversion";
+  version = "1.10.1";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "01iv8w6lmmq98qjhxmnp8ddjxifmhxcmp612ijd91wc8nv8lk12w";
+  };
+
+  propagatedBuildInputs = [ django ];
+
+  meta = with stdenv.lib; {
+    description = "An extension to the Django web framework that provides comprehensive version control facilities";
+    homepage = https://github.com/etianen/django-reversion;
+    license = licenses.bsd3;
+  };
+
+}
diff --git a/pkgs/development/python-modules/django_silk/default.nix b/pkgs/development/python-modules/django_silk/default.nix
new file mode 100644
index 000000000000..ad8d0bee7f45
--- /dev/null
+++ b/pkgs/development/python-modules/django_silk/default.nix
@@ -0,0 +1,37 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, django
+, pygments
+, simplejson
+, dateutil
+, requests
+, sqlparse
+, jinja2
+, autopep8
+, pytz
+, pillow
+, mock
+}:
+
+buildPythonPackage rec {
+  pname = "django-silk";
+  version = "0.5.6";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "845abc688738858ce06e993c4b7dbbcfcecf33029e828f143463ff96f9a78947";
+  };
+
+  doCheck = false;
+
+  buildInputs = [ mock ];
+  propagatedBuildInputs = [ django pygments simplejson dateutil requests sqlparse jinja2 autopep8 pytz pillow ];
+
+  meta = with stdenv.lib; {
+    description = "Silky smooth profiling for the Django Framework";
+    homepage = https://github.com/mtford90/silk;
+    license = licenses.mit;
+  };
+
+}
diff --git a/pkgs/development/python-modules/django_taggit/default.nix b/pkgs/development/python-modules/django_taggit/default.nix
new file mode 100644
index 000000000000..276097802e70
--- /dev/null
+++ b/pkgs/development/python-modules/django_taggit/default.nix
@@ -0,0 +1,26 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, pythonOlder
+}:
+
+buildPythonPackage rec {
+  pname = "django-taggit";
+  version = "0.17.0";
+  disabled = pythonOlder "2.7";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1xy4mm1y6z6bpakw907859wz7fiw7jfm586dj89w0ggdqlb0767b";
+  };
+
+  doCheck = false;
+
+  meta = with stdenv.lib; {
+    description = "django-taggit is a reusable Django application for simple tagging";
+    homepage = https://github.com/alex/django-taggit/tree/master/;
+    license = licenses.bsd2;
+    maintainers = with maintainers; [ desiderius ];
+  };
+
+}
diff --git a/pkgs/development/python-modules/django_treebeard/default.nix b/pkgs/development/python-modules/django_treebeard/default.nix
new file mode 100644
index 000000000000..5c45b18be640
--- /dev/null
+++ b/pkgs/development/python-modules/django_treebeard/default.nix
@@ -0,0 +1,30 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, pytest
+, django
+}:
+
+buildPythonPackage rec {
+  pname = "django-treebeard";
+  version = "4.3";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "c21db06a8d4943bf2a28d9d7a119058698fb76116df2679ecbf15a46a501de42";
+  };
+
+  buildInputs = [ pytest ];
+  propagatedBuildInputs = [ django ];
+
+  # tests fail  "AppRegistryNotReady("Apps aren't loaded yet.")"
+  doCheck = false;
+
+  meta = with stdenv.lib; {
+    description = "Efficient tree implementations for Django 1.6+";
+    homepage = https://tabo.pe/projects/django-treebeard/;
+    maintainers = with maintainers; [ desiderius ];
+    license = licenses.asl20;
+  };
+
+}
diff --git a/pkgs/development/python-modules/dominate/default.nix b/pkgs/development/python-modules/dominate/default.nix
index 86b3271990d5..4e918968f44a 100644
--- a/pkgs/development/python-modules/dominate/default.nix
+++ b/pkgs/development/python-modules/dominate/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "dominate";
-  version = "2.3.1";
+  version = "2.3.4";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0s9s9j9xmhkzw7apqx170fyvc0f800fd4a5jfn8xvj9k6vryd32b";
+    sha256 = "8dfcca2bde3937a2d03db6e55efcb0c0dea0d4ab0923dc983d794b19e9247328";
   };
 
   doCheck = !isPy3k;
diff --git a/pkgs/development/python-modules/dtopt/default.nix b/pkgs/development/python-modules/dtopt/default.nix
new file mode 100644
index 000000000000..601ebf6d9a99
--- /dev/null
+++ b/pkgs/development/python-modules/dtopt/default.nix
@@ -0,0 +1,24 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, isPy3k
+}:
+
+buildPythonPackage rec {
+  pname = "dtopt";
+  version = "0.1";
+  # Test contain Python 2 print
+  disabled = isPy3k;
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "06ae07a12294a7ba708abaa63f838017d1a2faf6147a1e7a14ca4fa28f86da7f";
+  };
+
+  meta = with stdenv.lib; {
+    description = "Add options to doctest examples while they are running";
+    homepage = https://pypi.python.org/pypi/dtopt;
+    license = licenses.mit;
+  };
+
+}
diff --git a/pkgs/development/python-modules/dynd/default.nix b/pkgs/development/python-modules/dynd/default.nix
new file mode 100644
index 000000000000..8d8fbf7a7cef
--- /dev/null
+++ b/pkgs/development/python-modules/dynd/default.nix
@@ -0,0 +1,43 @@
+{ stdenv
+, buildPythonPackage
+, fetchFromGitHub
+, isPyPy
+, isPy3k
+, cython
+, numpy
+, pkgs
+}:
+
+buildPythonPackage rec {
+  version = "0.7.2";
+  pname = "dynd";
+  disabled = isPyPy || !isPy3k; # tests fail on python2, 2018-04-11
+
+  src = pkgs.fetchFromGitHub {
+    owner = "libdynd";
+    repo = "dynd-python";
+    rev = "v${version}";
+    sha256 = "19igd6ibf9araqhq9bxmzbzdz05vp089zxvddkiik3b5gb7l17nh";
+  };
+
+  # setup.py invokes git on build but we're fetching a tarball, so
+  # can't retrieve git version. We hardcode:
+  preConfigure = ''
+    substituteInPlace setup.py --replace "ver = check_output(['git', 'describe', '--dirty'," "ver = '${version}'"
+    substituteInPlace setup.py --replace "'--always', '--match', 'v*']).decode('ascii').strip('\n')" ""
+  '';
+
+  # Python 3 works but has a broken import test that I couldn't
+  # figure out.
+  doCheck = !isPy3k;
+  buildInputs = [ pkgs.cmake pkgs.libdynd.dev cython ];
+  propagatedBuildInputs = [ numpy pkgs.libdynd ];
+
+  meta = with stdenv.lib; {
+    homepage = http://libdynd.org;
+    license = licenses.bsd2;
+    description = "Python exposure of dynd";
+    maintainers = with maintainers; [ teh ];
+  };
+
+}
diff --git a/pkgs/development/python-modules/ecdsa/default.nix b/pkgs/development/python-modules/ecdsa/default.nix
new file mode 100644
index 000000000000..e9fdc71cd64a
--- /dev/null
+++ b/pkgs/development/python-modules/ecdsa/default.nix
@@ -0,0 +1,26 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, pkgs
+}:
+
+buildPythonPackage rec {
+  pname = "ecdsa";
+  version = "0.13";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1yj31j0asmrx4an9xvsaj2icdmzy6pw0glfpqrrkrphwdpi1xkv4";
+  };
+
+  # Only needed for tests
+  buildInputs = [ pkgs.openssl ];
+
+  meta = with stdenv.lib; {
+    description = "ECDSA cryptographic signature library";
+    homepage = "https://github.com/warner/python-ecdsa";
+    license = licenses.mit;
+    maintainers = with maintainers; [ aszlig ];
+  };
+
+}
diff --git a/pkgs/development/python-modules/editorconfig/default.nix b/pkgs/development/python-modules/editorconfig/default.nix
new file mode 100644
index 000000000000..97e486a0532b
--- /dev/null
+++ b/pkgs/development/python-modules/editorconfig/default.nix
@@ -0,0 +1,31 @@
+{ stdenv
+, buildPythonPackage
+, fetchgit
+, cmake
+}:
+
+buildPythonPackage rec {
+  pname = "EditorConfig";
+  version = "0.12.1";
+
+  # fetchgit used to ensure test submodule is available
+  src = fetchgit {
+    url = "https://github.com/editorconfig/editorconfig-core-py";
+    rev = "refs/tags/v${version}";
+    sha256 = "0svk7id7ncygj2rnxhm7602xizljyidk4xgrl6i0xgq3829cz4bl";
+  };
+
+  buildInputs = [ cmake ];
+  checkPhase = ''
+    cmake .
+    # utf_8_char fails with python3
+    ctest -E "utf_8_char" .
+  '';
+
+  meta = with stdenv.lib; {
+    homepage = https://editorconfig.org;
+    description = "EditorConfig File Locator and Interpreter for Python";
+    license = licenses.psfl;
+  };
+
+}
diff --git a/pkgs/development/python-modules/elpy/default.nix b/pkgs/development/python-modules/elpy/default.nix
new file mode 100644
index 000000000000..79ec94a2c828
--- /dev/null
+++ b/pkgs/development/python-modules/elpy/default.nix
@@ -0,0 +1,32 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, rope
+, flake8
+, autopep8
+, jedi
+, importmagic
+, isPy27
+}:
+
+buildPythonPackage rec {
+  pname = "elpy";
+  version = "1.9.0";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "419f7b05b19182bc1aedde1ae80812c1534e59a0493476aa01ea819e76ba26f0";
+  };
+
+  propagatedBuildInputs = [ flake8 autopep8 jedi importmagic ]
+    ++ stdenv.lib.optionals isPy27 [ rope ];
+
+  doCheck = false; # there are no tests
+
+  meta = with stdenv.lib; {
+    description = "Backend for the elpy Emacs mode";
+    homepage = "https://github.com/jorgenschaefer/elpy";
+    license = licenses.gpl3;
+  };
+
+}
diff --git a/pkgs/development/python-modules/emoji/default.nix b/pkgs/development/python-modules/emoji/default.nix
index 019c29d79cd4..082958fcce19 100644
--- a/pkgs/development/python-modules/emoji/default.nix
+++ b/pkgs/development/python-modules/emoji/default.nix
@@ -6,7 +6,7 @@ buildPythonPackage rec {
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0gmdcdvh21v33ldg8kbxi7lph7znl2zdz1ic45100z4hx65w1sd9";
+    sha256 = "a9e9c08be9907c0042212c86dfbea0f61f78e9897d4df41a1d6307017763ad3e";
   };
 
   checkInputs = [ nose ];
diff --git a/pkgs/development/python-modules/enum/default.nix b/pkgs/development/python-modules/enum/default.nix
new file mode 100644
index 000000000000..70462e5f4033
--- /dev/null
+++ b/pkgs/development/python-modules/enum/default.nix
@@ -0,0 +1,26 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, isPy3k
+, isPyPy
+}:
+
+buildPythonPackage rec {
+  pname = "enum";
+  version = "0.4.4";
+  disabled = isPy3k;
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "9bdfacf543baf2350df7613eb37f598a802f346985ca0dc1548be6494140fdff";
+  };
+
+  doCheck = !isPyPy;
+
+  meta = with stdenv.lib; {
+    homepage = https://pypi.python.org/pypi/enum/;
+    description = "Robust enumerated type support in Python";
+    license = licenses.gpl2;
+  };
+
+}
diff --git a/pkgs/development/python-modules/enum34/default.nix b/pkgs/development/python-modules/enum34/default.nix
new file mode 100644
index 000000000000..a5175eba49d8
--- /dev/null
+++ b/pkgs/development/python-modules/enum34/default.nix
@@ -0,0 +1,27 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, pythonAtLeast
+, python
+}:
+
+if pythonAtLeast "3.4" then null else buildPythonPackage rec {
+  pname = "enum34";
+  version = "1.1.6";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "8ad8c4783bf61ded74527bffb48ed9b54166685e4230386a9ed9b1279e2df5b1";
+  };
+
+  checkPhase = ''
+    ${python.interpreter} -m unittest discover
+  '';
+
+  meta = with stdenv.lib; {
+    homepage = https://pypi.python.org/pypi/enum34;
+    description = "Python 3.4 Enum backported to 3.3, 3.2, 3.1, 2.7, 2.6, 2.5, and 2.4";
+    license = licenses.bsd0;
+  };
+
+}
diff --git a/pkgs/development/python-modules/epc/default.nix b/pkgs/development/python-modules/epc/default.nix
new file mode 100644
index 000000000000..621f450f2eb0
--- /dev/null
+++ b/pkgs/development/python-modules/epc/default.nix
@@ -0,0 +1,25 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, sexpdata
+}:
+
+buildPythonPackage rec {
+  pname = "epc";
+  version = "0.0.3";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "30b594bd4a4acbd5bda0d3fa3d25b4e8117f2ff8f24d2d1e3e36c90374f3c55e";
+  };
+
+  propagatedBuildInputs = [ sexpdata ];
+  doCheck = false;
+
+  meta = with stdenv.lib; {
+    description = "EPC (RPC stack for Emacs Lisp) implementation in Python";
+    homepage = "https://github.com/tkf/python-epc";
+    license = licenses.gpl3;
+  };
+
+}
diff --git a/pkgs/development/python-modules/et_xmlfile/default.nix b/pkgs/development/python-modules/et_xmlfile/default.nix
new file mode 100644
index 000000000000..619b0e0c77c8
--- /dev/null
+++ b/pkgs/development/python-modules/et_xmlfile/default.nix
@@ -0,0 +1,40 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, lxml
+, pytest
+}:
+
+buildPythonPackage rec {
+  version = "1.0.1";
+  pname = "et_xmlfile";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256="0nrkhcb6jdrlb6pwkvd4rycw34y3s931hjf409ij9xkjsli9fkb1";
+  };
+
+  buildInputs = [ lxml pytest ];
+  checkPhase = ''
+    py.test $out
+  '';
+
+  meta = with stdenv.lib; {
+    description = "An implementation of lxml.xmlfile for the standard library";
+    longDescription = ''
+      et_xmlfile is a low memory library for creating large XML files.
+
+      It is based upon the xmlfile module from lxml with the aim of
+      allowing code to be developed that will work with both
+      libraries. It was developed initially for the openpyxl project
+      but is now a standalone module.
+
+      The code was written by Elias Rabel as part of the Python
+      Düsseldorf openpyxl sprint in September 2014.
+    '';
+    homepage = "https://pypi.python.org/pypi/et_xmlfile";
+    license = licenses.mit;
+    maintainers = with maintainers; [ sjourdois ];
+  };
+
+}
diff --git a/pkgs/development/python-modules/etcd/default.nix b/pkgs/development/python-modules/etcd/default.nix
new file mode 100644
index 000000000000..1e6e1e70944d
--- /dev/null
+++ b/pkgs/development/python-modules/etcd/default.nix
@@ -0,0 +1,34 @@
+{ stdenv
+, buildPythonPackage
+, fetchurl
+, simplejson
+, pytz
+, requests
+}:
+
+buildPythonPackage rec {
+  pname = "etcd";
+  version = "2.0.8";
+
+  # PyPI package is incomplete
+  src = fetchurl {
+    url = "https://github.com/dsoprea/PythonEtcdClient/archive/${version}.tar.gz";
+    sha256 = "0fi6rxa1yxvz7nwrc7dw6fax3041d6bj3iyhywjgbkg7nadi9i8v";
+  };
+
+  patchPhase = ''
+    sed -i -e '13,14d;37d' setup.py
+  '';
+
+  propagatedBuildInputs = [ simplejson pytz requests ];
+
+  # No proper tests are available
+  doCheck = false;
+
+  meta = with stdenv.lib; {
+    description = "A Python etcd client that just works";
+    homepage = https://github.com/dsoprea/PythonEtcdClient;
+    license = licenses.gpl2;
+  };
+
+}
diff --git a/pkgs/development/python-modules/eve/default.nix b/pkgs/development/python-modules/eve/default.nix
index b145f1b2e2b8..4d85add4e3e5 100644
--- a/pkgs/development/python-modules/eve/default.nix
+++ b/pkgs/development/python-modules/eve/default.nix
@@ -3,11 +3,11 @@
 
 buildPythonPackage rec {
   pname = "Eve";
-  version = "0.8";
+  version = "0.8.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "9f926c715f88c7a92dc2b950ccc09cccd91f72fe0e93cde806b85d25b947df2f";
+    sha256 = "88105080e8a2567a1a8d50a5cded0d7d95e95f704b310c8107ef2ff7696f5316";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/eventlet/default.nix b/pkgs/development/python-modules/eventlet/default.nix
new file mode 100644
index 000000000000..afc880b2ba28
--- /dev/null
+++ b/pkgs/development/python-modules/eventlet/default.nix
@@ -0,0 +1,33 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, nose
+, httplib2
+, pyopenssl
+, greenlet
+, enum-compat
+, isPyPy
+}:
+
+buildPythonPackage rec {
+  pname = "eventlet";
+  version = "0.20.0";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "15bq5ybbigxnp5xwkps53zyhlg15lmcnq3ny2dppj0r0bylcs5rf";
+  };
+
+  buildInputs = [ nose httplib2 pyopenssl ];
+
+  doCheck = false;  # too much transient errors to bother
+
+  propagatedBuildInputs = [ enum-compat ]
+    ++ stdenv.lib.optionals (!isPyPy) [ greenlet ];
+
+  meta = with stdenv.lib; {
+    homepage = https://pypi.python.org/pypi/eventlet/;
+    description = "A concurrent networking library for Python";
+  };
+
+}
diff --git a/pkgs/development/python-modules/eventlib/default.nix b/pkgs/development/python-modules/eventlib/default.nix
new file mode 100644
index 000000000000..147e18d45f42
--- /dev/null
+++ b/pkgs/development/python-modules/eventlib/default.nix
@@ -0,0 +1,30 @@
+{ stdenv
+, buildPythonPackage
+, isPy3k
+, fetchdarcs
+, greenlet
+}:
+
+buildPythonPackage rec {
+  pname = "python-eventlib";
+  version = "0.2.2";
+  # Judging from SyntaxError
+  disabled = isPy3k;
+
+  src = fetchdarcs {
+    url = "http://devel.ag-projects.com/repositories/${pname}";
+    rev = "release-${version}";
+    sha256 = "1zxhpq8i4jwsk7wmfncqfm211hqikj3hp38cfv509924bi76wak8";
+  };
+
+  propagatedBuildInputs = [ greenlet ];
+
+  doCheck = false;
+
+  meta = with stdenv.lib; {
+    description = "Eventlib bindings for python";
+    homepage    = "http://ag-projects.com/";
+    license     = licenses.lgpl2;
+  };
+
+}
diff --git a/pkgs/development/python-modules/execnet/default.nix b/pkgs/development/python-modules/execnet/default.nix
new file mode 100644
index 000000000000..8c2ff6d82f41
--- /dev/null
+++ b/pkgs/development/python-modules/execnet/default.nix
@@ -0,0 +1,42 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, pytest
+, setuptools_scm
+, apipkg
+}:
+
+buildPythonPackage rec {
+  pname = "execnet";
+  version = "1.4.1";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1rpk1vyclhg911p3hql0m0nrpq7q7mysxnaaw6vs29cpa6kx8vgn";
+  };
+
+  buildInputs = [ pytest setuptools_scm ];
+  propagatedBuildInputs = [ apipkg ];
+
+  # remove vbox tests
+  postPatch = ''
+    rm -v testing/test_termination.py
+    rm -v testing/test_channel.py
+    rm -v testing/test_xspec.py
+    rm -v testing/test_gateway.py
+  '';
+
+  checkPhase = ''
+    py.test testing
+  '';
+
+  __darwinAllowLocalNetworking = true;
+
+  meta = with stdenv.lib; {
+    description = "Rapid multi-Python deployment";
+    license = licenses.gpl2;
+    homepage = "http://codespeak.net/execnet";
+    maintainers = with maintainers; [ nand0p ];
+  };
+
+}
diff --git a/pkgs/development/python-modules/exifread/default.nix b/pkgs/development/python-modules/exifread/default.nix
new file mode 100644
index 000000000000..61593b625f72
--- /dev/null
+++ b/pkgs/development/python-modules/exifread/default.nix
@@ -0,0 +1,22 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+}:
+
+buildPythonPackage rec {
+  pname = "ExifRead";
+  version = "2.1.2";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1b90jf6m9vxh9nanhpyvqdq7hmfx5iggw1l8kq10jrs6xgr49qkr";
+  };
+
+  meta = with stdenv.lib; {
+    description = "Easy to use Python module to extract Exif metadata from tiff and jpeg files";
+    homepage    = "https://github.com/ianare/exif-py";
+    license     = licenses.bsd0;
+    maintainers = with maintainers; [ vozz ];
+  };
+
+}
diff --git a/pkgs/development/python-modules/eyed3/default.nix b/pkgs/development/python-modules/eyed3/default.nix
new file mode 100644
index 000000000000..e42d7956dd56
--- /dev/null
+++ b/pkgs/development/python-modules/eyed3/default.nix
@@ -0,0 +1,42 @@
+{ stdenv
+, buildPythonPackage
+, fetchurl
+, paver
+, python
+, isPyPy
+}:
+
+buildPythonPackage rec {
+  version = "0.7.8";
+  pname    = "eyeD3";
+  disabled = isPyPy;
+
+  src = fetchurl {
+    url = "http://eyed3.nicfit.net/releases/${pname}-${version}.tar.gz";
+    sha256 = "1nv7nhfn1d0qm7rgkzksbccgqisng8klf97np0nwaqwd5dbmdf86";
+  };
+
+  buildInputs = [ paver ];
+
+  postInstall = ''
+    for prog in "$out/bin/"*; do
+      wrapProgram "$prog" --prefix PYTHONPATH : "$PYTHONPATH" \
+                          --prefix PATH : ${python}/bin
+    done
+  '';
+
+  meta = with stdenv.lib; {
+    description = "A Python module and command line program for processing ID3 tags";
+    homepage    = http://eyed3.nicfit.net/;
+    license     = licenses.gpl2;
+    maintainers = with maintainers; [ lovek323 ];
+    platforms   = platforms.unix;
+    longDescription = ''
+      eyeD3 is a Python module and command line program for processing ID3
+      tags. Information about mp3 files (i.e bit rate, sample frequency, play
+      time, etc.) is also provided. The formats supported are ID3 v1.0/v1.1
+      and v2.3/v2.4.
+    '';
+  };
+
+}
diff --git a/pkgs/development/python-modules/factory_boy/default.nix b/pkgs/development/python-modules/factory_boy/default.nix
new file mode 100644
index 000000000000..1e5da699894e
--- /dev/null
+++ b/pkgs/development/python-modules/factory_boy/default.nix
@@ -0,0 +1,24 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, fake_factory
+}:
+
+buildPythonPackage rec {
+  pname = "factory_boy";
+  version = "2.6.1";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "0a21f8kq917fj8xgmyp6gy8vcrlzzgwn80qas0d76h3vjbdy0bdq";
+  };
+
+  propagatedBuildInputs = [ fake_factory ];
+
+  meta = with stdenv.lib; {
+    description = "A Python package to create factories for complex objects";
+    homepage    = https://github.com/rbarrois/factory_boy;
+    license     = licenses.mit;
+  };
+
+}
diff --git a/pkgs/development/python-modules/fake_factory/default.nix b/pkgs/development/python-modules/fake_factory/default.nix
new file mode 100644
index 000000000000..26dd14b73adf
--- /dev/null
+++ b/pkgs/development/python-modules/fake_factory/default.nix
@@ -0,0 +1,33 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, python
+, six
+, dateutil
+, ipaddress
+, mock
+}:
+
+buildPythonPackage rec {
+  pname = "fake-factory";
+  version = "0.6.0";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "09sgk0kylsshs64a1xsz3qr187sbnqrbf4z8k3dgsy32lsgyffv2";
+  };
+
+  propagatedBuildInputs = [ six dateutil ipaddress mock ];
+  checkPhase = ''
+    ${python.interpreter} -m unittest faker.tests
+  '';
+
+  meta = with stdenv.lib; {
+    description = "A Python package that generates fake data for you";
+    homepage    = https://pypi.python.org/pypi/fake-factory;
+    license     = licenses.mit;
+    maintainers = with maintainers; [ lovek323 ];
+    platforms   = platforms.unix;
+  };
+
+}
diff --git a/pkgs/development/python-modules/falcon/default.nix b/pkgs/development/python-modules/falcon/default.nix
new file mode 100644
index 000000000000..1bca7eddde04
--- /dev/null
+++ b/pkgs/development/python-modules/falcon/default.nix
@@ -0,0 +1,37 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, coverage
+, ddt
+, nose
+, pyyaml
+, requests
+, testtools
+, six
+, python_mimeparse
+}:
+
+buildPythonPackage rec {
+  pname = "falcon";
+  version = "1.0.0";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "ddce23a2dd0abba6d19775e9bf7ba64e184b15a0e7163e65f62af63354193f63";
+  };
+
+  checkInputs = [coverage ddt nose pyyaml requests testtools];
+  propagatedBuildInputs = [ six python_mimeparse ];
+
+  # The travis build fails since the migration from multiprocessing to threading for hosting the API under test.
+  # OSError: [Errno 98] Address already in use
+  doCheck = false;
+
+  meta = with stdenv.lib; {
+    description = "An unladen web framework for building APIs and app backends";
+    homepage = http://falconframework.org;
+    license = licenses.asl20;
+    maintainers = with maintainers; [ desiderius ];
+  };
+
+}
diff --git a/pkgs/development/python-modules/fdroidserver/default.nix b/pkgs/development/python-modules/fdroidserver/default.nix
new file mode 100644
index 000000000000..b9b936ae83e8
--- /dev/null
+++ b/pkgs/development/python-modules/fdroidserver/default.nix
@@ -0,0 +1,35 @@
+{ stdenv
+, buildPythonPackage
+, fetchFromGitLab
+, libcloud
+, pyyaml
+, paramiko
+, pyasn1
+, pyasn1-modules
+, pillow
+, mwclient
+, GitPython
+, isPy3k
+}:
+
+buildPythonPackage rec {
+  version = "2016-05-31";
+  pname = "fdroidserver-git";
+  disabled = ! isPy3k;
+
+  src = fetchFromGitLab {
+    owner = "fdroid";
+    repo = "fdroidserver";
+    rev = "401649e0365e6e365fc48ae8a3af94768af865f3";
+    sha256 = "1mmi2ffpym1qw694yj938kc7b4xhq0blri7wkjaqddcyykjyr94d";
+  };
+
+  propagatedBuildInputs = [ libcloud pyyaml paramiko pyasn1 pyasn1-modules pillow mwclient GitPython ];
+
+  meta = with stdenv.lib; {
+    homepage = https://f-droid.org;
+    description = "Server and tools for F-Droid, the Free Software repository system for Android";
+    license = licenses.agpl3;
+  };
+
+}
diff --git a/pkgs/development/python-modules/feedparser/default.nix b/pkgs/development/python-modules/feedparser/default.nix
new file mode 100644
index 000000000000..ac91fe51d899
--- /dev/null
+++ b/pkgs/development/python-modules/feedparser/default.nix
@@ -0,0 +1,25 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+}:
+
+buildPythonPackage rec {
+  pname = "feedparser";
+  version = "5.2.1";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1ycva69bqssalhqg45rbrfipz3l6hmycszy26k0351fhq990c0xx";
+  };
+
+  # lots of networking failures
+  doCheck = false;
+
+  meta = with stdenv.lib; {
+    homepage = http://code.google.com/p/feedparser/;
+    description = "Universal feed parser";
+    license = licenses.bsd2;
+    maintainers = with maintainers; [ domenkozar ];
+  };
+
+}
diff --git a/pkgs/development/python-modules/filebrowser_safe/default.nix b/pkgs/development/python-modules/filebrowser_safe/default.nix
new file mode 100644
index 000000000000..8e95d1e413e4
--- /dev/null
+++ b/pkgs/development/python-modules/filebrowser_safe/default.nix
@@ -0,0 +1,40 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, django
+}:
+
+buildPythonPackage rec {
+  version = "0.5.0";
+  pname = "filebrowser_safe";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "5dcd31dd79684025139b43841f6515af1da5a4bb0de15bc4d88003db1970648e";
+  };
+
+  buildInputs = [ django ];
+
+  # There is no test embedded
+  doCheck = false;
+
+  meta = with stdenv.lib; {
+    description = "A snapshot of django-filebrowser for the Mezzanine CMS";
+    longDescription = ''
+      filebrowser_safe was created to provide a snapshot of the
+      FileBrowser asset manager for Django, to be referenced as a
+      dependency for the Mezzanine CMS for Django.
+
+      At the time of filebrowser_safe's creation, FileBrowser was
+      incorrectly packaged on PyPI, and had also dropped compatibility
+      with Django 1.1 - filebrowser_safe was therefore created to
+      address these specific issues.
+    '';
+    homepage = https://github.com/stephenmcd/filebrowser-safe;
+    downloadPage = https://pypi.python.org/pypi/filebrowser_safe/;
+    license = licenses.free;
+    maintainers = with maintainers; [ prikhi ];
+    platforms = platforms.linux;
+  };
+
+}
diff --git a/pkgs/development/python-modules/filebytes/default.nix b/pkgs/development/python-modules/filebytes/default.nix
new file mode 100644
index 000000000000..3dbcbe594425
--- /dev/null
+++ b/pkgs/development/python-modules/filebytes/default.nix
@@ -0,0 +1,22 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+}:
+
+buildPythonPackage rec {
+  pname = "filebytes";
+  version = "0.9.12";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "6cd1c4ca823f6541c963a317e55382609789802dedad08209f4d038369e3f0ac";
+  };
+
+  meta = with stdenv.lib; {
+    homepage = "https://scoding.de/filebytes-introduction";
+    license = licenses.gpl2;
+    description = "Scripts to parse ELF, PE, Mach-O and OAT (Android Runtime)";
+    maintainers = with maintainers; [ bennofs ];
+  };
+
+}
diff --git a/pkgs/development/python-modules/filelock/default.nix b/pkgs/development/python-modules/filelock/default.nix
index cfa0e1be74f5..80e3429b644a 100644
--- a/pkgs/development/python-modules/filelock/default.nix
+++ b/pkgs/development/python-modules/filelock/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "filelock";
-  version = "3.0.6";
+  version = "3.0.9";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "59ccab92fe118da7e5ce5a9fcd95506ade58d9d5f606db4922192524edfac820";
+    sha256 = "97694f181bdf58f213cca0a7cb556dc7bf90e2f8eb9aa3151260adac56701afb";
   };
 
   meta = with stdenv.lib; {
diff --git a/pkgs/development/python-modules/flaky/default.nix b/pkgs/development/python-modules/flaky/default.nix
new file mode 100644
index 000000000000..192b4829a41d
--- /dev/null
+++ b/pkgs/development/python-modules/flaky/default.nix
@@ -0,0 +1,28 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, mock
+, pytest
+}:
+
+buildPythonPackage rec {
+  pname = "flaky";
+  version = "3.1.0";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1x9ixika7wqjj52x8wnsh1vk7jadkdqpx01plj7mlh8slwyq4s41";
+  };
+
+  buildInputs = [ mock pytest ];
+
+  # waiting for feedback https://github.com/box/flaky/issues/97
+  doCheck = false;
+
+  meta = with stdenv.lib; {
+    homepage = https://github.com/box/flaky;
+    description = "Plugin for nose or py.test that automatically reruns flaky tests";
+    license = licenses.asl20;
+  };
+
+}
diff --git a/pkgs/development/python-modules/flask-autoindex/default.nix b/pkgs/development/python-modules/flask-autoindex/default.nix
index 0c353a34c385..afd3db60ffcf 100644
--- a/pkgs/development/python-modules/flask-autoindex/default.nix
+++ b/pkgs/development/python-modules/flask-autoindex/default.nix
@@ -8,11 +8,11 @@
 
 buildPythonPackage rec {
   pname = "Flask-AutoIndex";
-  version = "0.6.1";
+  version = "0.6.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0v87sa073hmj64f47sazbiw08kyxsxay100bd5084jwq7c1y92d7";
+    sha256 = "af2cdb34eefe6edbf43ce19200880829e8c2df3598000e75dc63c9b7e3478706";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/flowlogs_reader/default.nix b/pkgs/development/python-modules/flowlogs_reader/default.nix
new file mode 100644
index 000000000000..1f2984990bb9
--- /dev/null
+++ b/pkgs/development/python-modules/flowlogs_reader/default.nix
@@ -0,0 +1,30 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, botocore
+, boto3
+, docutils
+, unittest2
+, mock
+}:
+
+buildPythonPackage rec {
+  pname = "flowlogs_reader";
+  version = "1.0.0";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "0158aki6m3pkf98hpd60088qyhrfxkmybdf8hv3qfl8nb61vaiwf";
+  };
+
+  propagatedBuildInputs = [ botocore boto3 docutils ];
+  buildInputs = [ unittest2 mock ];
+
+  meta = with stdenv.lib; {
+    description = "Python library to make retrieving Amazon VPC Flow Logs from CloudWatch Logs a bit easier";
+    homepage = "https://github.com/obsrvbl/flowlogs-reader";
+    maintainers = with maintainers; [ cransom ];
+    license = licenses.asl20;
+  };
+
+}
diff --git a/pkgs/development/python-modules/flup/default.nix b/pkgs/development/python-modules/flup/default.nix
new file mode 100644
index 000000000000..8256f5a1063d
--- /dev/null
+++ b/pkgs/development/python-modules/flup/default.nix
@@ -0,0 +1,23 @@
+{ stdenv
+, buildPythonPackage
+, isPy3k
+, fetchPypi
+}:
+
+buildPythonPackage rec {
+  pname = "flup";
+  version = "1.0.3";
+  disabled = isPy3k;
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "5eb09f26eb0751f8380d8ac43d1dfb20e1d42eca0fa45ea9289fa532a79cd159";
+  };
+
+  meta = with stdenv.lib; {
+    homepage = "http://trac.saddi.com/flup";
+    description = "FastCGI Python module set";
+    license = licenses.bsd0;
+  };
+
+}
diff --git a/pkgs/development/python-modules/fonttools/default.nix b/pkgs/development/python-modules/fonttools/default.nix
index 4759e9d3c837..ed0b508a8acf 100644
--- a/pkgs/development/python-modules/fonttools/default.nix
+++ b/pkgs/development/python-modules/fonttools/default.nix
@@ -8,11 +8,11 @@
 
 buildPythonPackage rec {
   pname = "fonttools";
-  version = "3.29.0";
+  version = "3.29.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "aab38c8c131670684321437d4857dcb4de1c775efd152a9ca9c4d81f1cb97fe7";
+    sha256 = "a687ca070daddb7ee25e3472b631acd0e53dbf11ecdf8e76248ee556472ede9d";
     extension = "zip";
   };
 
diff --git a/pkgs/development/python-modules/foolscap/default.nix b/pkgs/development/python-modules/foolscap/default.nix
new file mode 100644
index 000000000000..94b90a25d137
--- /dev/null
+++ b/pkgs/development/python-modules/foolscap/default.nix
@@ -0,0 +1,40 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, mock
+, twisted
+, pyopenssl
+, service-identity
+}:
+
+buildPythonPackage rec {
+  pname = "foolscap";
+  version = "0.12.6";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1bpmqq6485mmr5jza9q2c55l9m1bfsvsbd9drsip7p5qcsi22jrz";
+  };
+
+  propagatedBuildInputs = [ mock twisted pyopenssl service-identity ];
+
+  checkPhase = ''
+    # Either uncomment this, or remove this custom check phase entirely, if
+    # you wish to do battle with the foolscap tests. ~ C.
+    # trial foolscap
+  '';
+
+  meta = with stdenv.lib; {
+    homepage = http://foolscap.lothar.com/;
+    description = "Foolscap, an RPC protocol for Python that follows the distributed object-capability model";
+    longDescription = ''
+      "Foolscap" is the name for the next-generation RPC protocol,
+      intended to replace Perspective Broker (part of Twisted).
+      Foolscap is a protocol to implement a distributed
+      object-capabilities model in Python.
+    '';
+    # See http://foolscap.lothar.com/trac/browser/LICENSE.
+    license = licenses.mit;
+  };
+
+}
diff --git a/pkgs/development/python-modules/forbiddenfruit/default.nix b/pkgs/development/python-modules/forbiddenfruit/default.nix
new file mode 100644
index 000000000000..4d2f656b36a3
--- /dev/null
+++ b/pkgs/development/python-modules/forbiddenfruit/default.nix
@@ -0,0 +1,21 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+}:
+
+buildPythonPackage rec {
+  version = "0.1.0";
+  pname = "forbiddenfruit";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "0xra2kw6m8ag29ifwmhi5zqksh4cr0yy1waqd488rm59kcr3zl79";
+  };
+
+  meta = with stdenv.lib; {
+    description = "Patch python built-in objects";
+    homepage = https://pypi.python.org/pypi/forbiddenfruit;
+    license = licenses.mit;
+  };
+
+}
diff --git a/pkgs/development/python-modules/fudge/default.nix b/pkgs/development/python-modules/fudge/default.nix
new file mode 100644
index 000000000000..0f6d10c3c523
--- /dev/null
+++ b/pkgs/development/python-modules/fudge/default.nix
@@ -0,0 +1,34 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, nose
+, nosejs
+, sphinx
+, isPy3k
+}:
+
+buildPythonPackage rec {
+  pname = "fudge";
+  version = "1.1.0";
+  disabled = isPy3k;
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "eba59a926fa1df1ab6dddd69a7a8af21865b16cad800cb4d1af75070b0f52afb";
+  };
+
+  buildInputs = [ nose nosejs ];
+  propagatedBuildInputs = [ sphinx ];
+
+  checkPhase = ''
+    nosetests -v
+  '';
+
+  meta = with stdenv.lib; {
+    homepage = https://github.com/fudge-py/fudge;
+    description = "Replace real objects with fakes (mocks, stubs, etc) while testing";
+    license = licenses.mit;
+    maintainers = [ maintainers.costrouc ];
+  };
+
+}
diff --git a/pkgs/development/python-modules/funcparserlib/default.nix b/pkgs/development/python-modules/funcparserlib/default.nix
new file mode 100644
index 000000000000..6c3f5f6d0186
--- /dev/null
+++ b/pkgs/development/python-modules/funcparserlib/default.nix
@@ -0,0 +1,31 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, python
+, isPy3k
+}:
+
+buildPythonPackage rec {
+  pname = "funcparserlib";
+  version = "0.3.6";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "b7992eac1a3eb97b3d91faa342bfda0729e990bd8a43774c1592c091e563c91d";
+  };
+
+  checkPhase = ''
+    ${python.interpreter} -m unittest discover
+  '';
+
+  # Tests are Python 2.x only judging from SyntaxError
+  doCheck = !(isPy3k);
+
+  meta = with stdenv.lib; {
+    description = "Recursive descent parsing library based on functional combinators";
+    homepage = https://code.google.com/p/funcparserlib/;
+    license = licenses.mit;
+    platforms = platforms.unix;
+  };
+
+}
diff --git a/pkgs/development/python-modules/functools32/default.nix b/pkgs/development/python-modules/functools32/default.nix
new file mode 100644
index 000000000000..fea79db3d05b
--- /dev/null
+++ b/pkgs/development/python-modules/functools32/default.nix
@@ -0,0 +1,22 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, isPy3k
+}:
+
+if isPy3k then null else buildPythonPackage rec {
+  pname = "functools32";
+  version = "3.2.3-2";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "0v8ya0b58x47wp216n1zamimv4iw57cxz3xxhzix52jkw3xks9gn";
+  };
+
+  meta = with stdenv.lib; {
+    description = "This is a backport of the functools standard library module from";
+    homepage = "https://github.com/MiCHiLU/python-functools32";
+    license = licenses.psfl;
+  };
+
+}
diff --git a/pkgs/development/python-modules/fusepy/default.nix b/pkgs/development/python-modules/fusepy/default.nix
new file mode 100644
index 000000000000..74ab0fc01a69
--- /dev/null
+++ b/pkgs/development/python-modules/fusepy/default.nix
@@ -0,0 +1,37 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, pkgs
+}:
+
+buildPythonPackage rec {
+  pname = "fusepy";
+  version = "2.0.4";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "0v5grm4zyf58hsplwsxfbihddw95lz9w8cy3rpzbyha287swgx8h";
+  };
+
+  propagatedBuildInputs = [ pkgs.fuse ];
+
+  # No tests included
+  doCheck = false;
+
+  patchPhase = ''
+    substituteInPlace fuse.py --replace \
+      "find_library('fuse')" "'${pkgs.fuse}/lib/libfuse.so'"
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Simple ctypes bindings for FUSE";
+    longDescription = ''
+      Python module that provides a simple interface to FUSE and MacFUSE.
+      It's just one file and is implemented using ctypes.
+    '';
+    homepage = https://github.com/terencehonles/fusepy;
+    license = licenses.isc;
+    platforms = platforms.unix;
+  };
+
+}
diff --git a/pkgs/development/python-modules/gateone/default.nix b/pkgs/development/python-modules/gateone/default.nix
new file mode 100644
index 000000000000..136c089ee4b6
--- /dev/null
+++ b/pkgs/development/python-modules/gateone/default.nix
@@ -0,0 +1,35 @@
+{ stdenv
+, buildPythonPackage
+, fetchFromGitHub
+, tornado
+, futures
+, html5lib
+, pkgs
+, isPy3k
+}:
+
+buildPythonPackage rec {
+  name = "gateone-1.2-0d57c3";
+  disabled = isPy3k;
+
+  src = pkgs.fetchFromGitHub {
+    rev = "1d0e8037fbfb7c270f3710ce24154e24b7031bea";
+    owner= "liftoff";
+    repo = "GateOne";
+    sha256 = "1ghrawlqwv7wnck6alqpbwy9mpv0y21cw2jirrvsxaracmvgk6vv";
+  };
+
+  propagatedBuildInputs = [tornado futures html5lib pkgs.openssl pkgs.cacert pkgs.openssh];
+
+  postInstall=''
+    cp -R "$out/gateone/"* $out/lib/python2.7/site-packages/gateone
+  '';
+
+  meta = with stdenv.lib; {
+    homepage = https://liftoffsoftware.com/;
+    description = "GateOne is a web-based terminal emulator and SSH client";
+    maintainers = with maintainers; [ tomberek ];
+    license = licenses.gpl3;
+  };
+
+}
diff --git a/pkgs/development/python-modules/gcovr/default.nix b/pkgs/development/python-modules/gcovr/default.nix
new file mode 100644
index 000000000000..4812744bfa85
--- /dev/null
+++ b/pkgs/development/python-modules/gcovr/default.nix
@@ -0,0 +1,21 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+}:
+
+buildPythonPackage rec {
+  pname = "gcovr";
+  version = "2.4";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "2c878e03c2eff2282e64035bec0a30532b2b1173aadf08486401883b79e4dab1";
+  };
+
+  meta = with stdenv.lib; {
+    description = "A Python script for summarizing gcov data";
+    license = licenses.bsd0;
+    homepage = http://gcovr.com/;
+  };
+
+}
diff --git a/pkgs/development/python-modules/gcutil/default.nix b/pkgs/development/python-modules/gcutil/default.nix
new file mode 100644
index 000000000000..85c0fbb4d609
--- /dev/null
+++ b/pkgs/development/python-modules/gcutil/default.nix
@@ -0,0 +1,41 @@
+{ stdenv
+, buildPythonPackage
+, fetchurl
+, gflags
+, iso8601
+, ipaddr
+, httplib2
+, google_apputils
+, google_api_python_client
+, isPy3k
+}:
+
+buildPythonPackage rec {
+  name = "gcutil-1.16.1";
+  disabled = isPy3k;
+
+  src = fetchurl {
+    url = https://dl.google.com/dl/cloudsdk/release/artifacts/gcutil-1.16.1.tar.gz;
+    sha256 = "00jaf7x1ji9y46fbkww2sg6r6almrqfsprydz3q2swr4jrnrsx9x";
+  };
+
+  propagatedBuildInputs = [ gflags iso8601 ipaddr httplib2 google_apputils google_api_python_client ];
+
+  prePatch = ''
+    sed -i -e "s|google-apputils==0.4.0|google-apputils==0.4.1|g" setup.py
+    substituteInPlace setup.py \
+      --replace "httplib2==0.8" "httplib2" \
+      --replace "iso8601==0.1.4" "iso8601" \
+      --replace "ipaddr==2.1.10" "ipaddr" \
+      --replace "google-api-python-client==1.2" "google-api-python-client" \
+      --replace "python-gflags==2.0" "python-gflags"
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Command-line tool for interacting with Google Compute Engine";
+    homepage = "https://cloud.google.com/compute/docs/gcutil/";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ phreedom ];
+  };
+
+}
diff --git a/pkgs/development/python-modules/gdrivefs/default.nix b/pkgs/development/python-modules/gdrivefs/default.nix
new file mode 100644
index 000000000000..7cbf09fa49fa
--- /dev/null
+++ b/pkgs/development/python-modules/gdrivefs/default.nix
@@ -0,0 +1,48 @@
+{ stdenv
+, buildPythonPackage
+, fetchurl
+, isPy3k
+, gipc
+, greenlet
+, httplib2
+, six
+, dateutil
+, fusepy
+, google_api_python_client
+}:
+
+buildPythonPackage rec {
+  version = "0.14.9";
+  pname = "gdrivefs";
+  disabled = isPy3k;
+
+  src = fetchurl {
+    url = "https://github.com/dsoprea/GDriveFS/archive/${version}.tar.gz";
+    sha256 = "1mc2r35nf5k8vzwdcdhi0l9rb97amqd5xb53lhydj8v8f4rndk7a";
+  };
+
+  buildInputs = [ gipc greenlet httplib2 six ];
+  propagatedBuildInputs = [ dateutil fusepy google_api_python_client ];
+
+  patchPhase = ''
+    substituteInPlace gdrivefs/resources/requirements.txt \
+      --replace "==" ">="
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Mount Google Drive as a local file system";
+    longDescription = ''
+      GDriveFS is a FUSE wrapper for Google Drive developed. Design goals:
+      - Thread for monitoring changes via "changes" functionality of API.
+      - Complete stat() implementation.
+      - Seamlessly work around duplicate-file allowances in Google Drive.
+      - Seamlessly manage file-type versatility in Google Drive
+        (Google Doc files do not have a particular format).
+      - Allow for the same file at multiple paths.
+    '';
+    homepage = https://github.com/dsoprea/GDriveFS;
+    license = licenses.gpl2;
+    platforms = platforms.unix;
+  };
+
+}
diff --git a/pkgs/development/python-modules/genanki/default.nix b/pkgs/development/python-modules/genanki/default.nix
index bcc462e7237d..45906c3c434d 100644
--- a/pkgs/development/python-modules/genanki/default.nix
+++ b/pkgs/development/python-modules/genanki/default.nix
@@ -4,11 +4,11 @@
 
 buildPythonPackage rec {
   pname = "genanki";
-  version = "0.6.0";
+  version = "0.6.3";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0xj8yd3acl8h457sh42balvcd0z4mg5idd4q63f7qlfzc5wgbb74";
+    sha256 = "2408f7d9955c8963fd9b1ecbb873f5d18dee786e060dcb083aef5dd86c736773";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/genshi/default.nix b/pkgs/development/python-modules/genshi/default.nix
new file mode 100644
index 000000000000..ad6f4ee1b21e
--- /dev/null
+++ b/pkgs/development/python-modules/genshi/default.nix
@@ -0,0 +1,32 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, setuptools
+}:
+
+buildPythonPackage rec {
+  pname = "Genshi";
+  version = "0.7.1";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "0d87ae62cf2ed92133f35725da51e02d09f79bb4cb986f0d948408a0279dd3f8";
+  };
+
+  # FAIL: test_sanitize_remove_script_elem (genshi.filters.tests.html.HTMLSanitizerTestCase)
+  # FAIL: test_sanitize_remove_src_javascript (genshi.filters.tests.html.HTMLSanitizerTestCase)
+  doCheck = false;
+
+  buildInputs = [ setuptools ];
+
+  meta = with stdenv.lib; {
+    description = "Python components for parsing HTML, XML and other textual content";
+    longDescription = ''
+      Python library that provides an integrated set of components for
+      parsing, generating, and processing HTML, XML or other textual
+      content for output generation on the web.
+    '';
+    homepage = https://genshi.edgewall.org/;
+    license = licenses.bsd0;
+  };
+}
diff --git a/pkgs/development/python-modules/genzshcomp/default.nix b/pkgs/development/python-modules/genzshcomp/default.nix
new file mode 100644
index 000000000000..87ca3aaeff44
--- /dev/null
+++ b/pkgs/development/python-modules/genzshcomp/default.nix
@@ -0,0 +1,24 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, setuptools
+}:
+
+buildPythonPackage rec {
+  pname = "genzshcomp";
+  version = "0.5.1";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "c77d007cc32cdff836ecf8df6192371767976c108a75b055e057bb6f4a09cd42";
+  };
+
+  buildInputs = [ setuptools ];
+
+  meta = with stdenv.lib; {
+    description = "Automatically generated zsh completion function for Python's option parser modules";
+    homepage = http://bitbucket.org/hhatto/genzshcomp/;
+    license = licenses.bsd0;
+  };
+
+}
diff --git a/pkgs/development/python-modules/gevent-socketio/default.nix b/pkgs/development/python-modules/gevent-socketio/default.nix
new file mode 100644
index 000000000000..e95519a346c5
--- /dev/null
+++ b/pkgs/development/python-modules/gevent-socketio/default.nix
@@ -0,0 +1,29 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, versiontools
+, gevent-websocket
+, mock
+, pytest
+, gevent
+}:
+
+buildPythonPackage rec {
+  pname = "gevent-socketio";
+  version = "0.3.6";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1zra86hg2l1jcpl9nsnqagy3nl3akws8bvrbpgdxk15x7ywllfak";
+  };
+
+  buildInputs = [ versiontools gevent-websocket mock pytest ];
+  propagatedBuildInputs = [ gevent ];
+
+  meta = with stdenv.lib; {
+    homepage = https://github.com/abourget/gevent-socketio;
+    description = "SocketIO server based on the Gevent pywsgi server, a Python network library";
+    license = licenses.bsd0;
+  };
+
+}
diff --git a/pkgs/development/python-modules/gevent-websocket/default.nix b/pkgs/development/python-modules/gevent-websocket/default.nix
new file mode 100644
index 000000000000..28dab3a257f0
--- /dev/null
+++ b/pkgs/development/python-modules/gevent-websocket/default.nix
@@ -0,0 +1,27 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, isPy3k
+, gevent
+}:
+
+buildPythonPackage rec {
+  pname = "gevent-websocket";
+  version = "0.9.3";
+  # SyntaxError in tests.
+  disabled = isPy3k;
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "07rqwfpbv13mk6gg8mf0bmvcf6siyffjpgai1xd8ky7r801j4xb4";
+  };
+
+  propagatedBuildInputs = [ gevent ];
+
+  meta = with stdenv.lib; {
+    homepage = https://www.gitlab.com/noppo/gevent-websocket;
+    description = "Websocket handler for the gevent pywsgi server, a Python network library";
+    license = licenses.asl20;
+  };
+
+}
diff --git a/pkgs/development/python-modules/geventhttpclient/default.nix b/pkgs/development/python-modules/geventhttpclient/default.nix
new file mode 100644
index 000000000000..6a78d60544db
--- /dev/null
+++ b/pkgs/development/python-modules/geventhttpclient/default.nix
@@ -0,0 +1,36 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, pytest
+, gevent
+, certifi
+, six
+, backports_ssl_match_hostname
+}:
+
+buildPythonPackage rec {
+  pname = "geventhttpclient";
+  version = "1.3.1";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "bd87af8854f5fb05738916c8973671f7035568aec69b7c842887d6faf9c0a01d";
+  };
+
+  buildInputs = [ pytest ];
+  propagatedBuildInputs = [ gevent certifi six backports_ssl_match_hostname ];
+
+  # Several tests fail that require network
+  doCheck = false;
+  checkPhase = ''
+    py.test $out
+  '';
+
+  meta = with stdenv.lib; {
+    homepage = https://github.com/gwik/geventhttpclient;
+    description = "HTTP client library for gevent";
+    license = licenses.mit;
+    maintainers = with maintainers; [ koral ];
+  };
+
+}
diff --git a/pkgs/development/python-modules/gipc/default.nix b/pkgs/development/python-modules/gipc/default.nix
new file mode 100644
index 000000000000..9780b46fa5a0
--- /dev/null
+++ b/pkgs/development/python-modules/gipc/default.nix
@@ -0,0 +1,35 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, isPy3k
+, gevent
+}:
+
+buildPythonPackage rec {
+  pname = "gipc";
+  version = "0.5.0";
+  disabled = isPy3k;
+
+  src = fetchPypi {
+    inherit pname version;
+    extension = "zip";
+    sha256 = "08c35xzv7nr12d9xwlywlbyzzz2igy0yy6y52q2nrkmh5d4slbpc";
+  };
+
+  propagatedBuildInputs = [ gevent ];
+
+  meta = with stdenv.lib; {
+    description = "gevent-cooperative child processes and IPC";
+    longDescription = ''
+      Usage of Python's multiprocessing package in a gevent-powered
+      application may raise problems and most likely breaks the application
+      in various subtle ways. gipc (pronunciation "gipsy") is developed with
+      the motivation to solve many of these issues transparently. With gipc,
+      multiprocessing. Process-based child processes can safely be created
+      anywhere within your gevent-powered application.
+    '';
+    homepage = http://gehrcke.de/gipc;
+    license = licenses.mit;
+  };
+
+}
diff --git a/pkgs/development/python-modules/git-sweep/default.nix b/pkgs/development/python-modules/git-sweep/default.nix
new file mode 100644
index 000000000000..e2182892e851
--- /dev/null
+++ b/pkgs/development/python-modules/git-sweep/default.nix
@@ -0,0 +1,25 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, GitPython
+}:
+
+buildPythonPackage rec {
+  pname = "git-sweep";
+  version = "0.1.1";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1csp0zd049d643d409rfivbswwzrayb4i6gkypp5mc27fb1z2afd";
+  };
+
+  propagatedBuildInputs = [ GitPython ];
+
+  meta = with stdenv.lib; {
+    description = "A command-line tool that helps you clean up Git branches";
+    homepage = https://github.com/arc90/git-sweep;
+    license = licenses.mit;
+    maintainers = with maintainers; [ pSub ];
+  };
+
+}
diff --git a/pkgs/development/python-modules/github-webhook/default.nix b/pkgs/development/python-modules/github-webhook/default.nix
new file mode 100644
index 000000000000..99af2830167f
--- /dev/null
+++ b/pkgs/development/python-modules/github-webhook/default.nix
@@ -0,0 +1,28 @@
+{ stdenv
+, buildPythonPackage
+, fetchgit
+, flask
+}:
+
+buildPythonPackage rec {
+  pname = "github-webhook";
+  version = "unstable-2016-03-11";
+
+  # There is a PyPI package but an older one.
+  src = fetchgit {
+    url = "https://github.com/bloomberg/python-github-webhook.git";
+    rev = "ca1855479ee59c4373da5425dbdce08567605d49";
+    sha256 = "0mqwig9281iyzbphp1d21a4pqdrf98vs9k8lqpqx6spzgqaczx5f";
+  };
+
+  propagatedBuildInputs = [ flask ];
+  # No tests
+  doCheck = false;
+
+  meta = with stdenv.lib; {
+    description = "A framework for writing webhooks for GitHub";
+    license = licenses.mit;
+    homepage = https://github.com/bloomberg/python-github-webhook;
+  };
+
+}
diff --git a/pkgs/development/python-modules/github3_py/default.nix b/pkgs/development/python-modules/github3_py/default.nix
new file mode 100644
index 000000000000..8968585d9cdd
--- /dev/null
+++ b/pkgs/development/python-modules/github3_py/default.nix
@@ -0,0 +1,45 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, unittest2
+, pytest
+, mock
+, betamax
+, betamax-matchers
+, dateutil
+, requests
+, pyopenssl
+, uritemplate_py
+, ndg-httpsclient
+, requests_toolbelt
+, pyasn1
+}:
+
+buildPythonPackage rec {
+  pname = "github3.py";
+  version = "1.1.0";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1cxaqdqmz9w2afc0cw2jyv783fp0grydbik0frzj79azzkhyg4gf";
+  };
+
+  buildInputs = [ unittest2 pytest mock betamax betamax-matchers dateutil ];
+  propagatedBuildInputs = [ requests pyopenssl uritemplate_py ndg-httpsclient requests_toolbelt pyasn1 ];
+
+  postPatch = ''
+    sed -i -e 's/mock ==1.0.1/mock>=1.0.1/' setup.py
+    sed -i -e 's/unittest2 ==0.5.1/unittest2>=0.5.1/' setup.py
+  '';
+
+  # TODO: only disable the tests that require network
+  doCheck = false;
+
+  meta = with stdenv.lib; {
+    homepage = http://github3py.readthedocs.org/en/master/;
+    description = "A wrapper for the GitHub API written in python";
+    license = licenses.bsd3;
+    maintainers = with maintainers; [ pSub ];
+  };
+
+}
diff --git a/pkgs/development/python-modules/gmusicapi/default.nix b/pkgs/development/python-modules/gmusicapi/default.nix
new file mode 100644
index 000000000000..f96e94a34a04
--- /dev/null
+++ b/pkgs/development/python-modules/gmusicapi/default.nix
@@ -0,0 +1,37 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, validictory
+, decorator
+, mutagen
+, protobuf
+, setuptools
+, requests
+, dateutil
+, proboscis
+, mock
+, appdirs
+, oauth2client
+, pyopenssl
+, gpsoauth
+, MechanicalSoup
+, future
+}:
+
+buildPythonPackage rec {
+  pname = "gmusicapi";
+  version = "10.1.0";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "0smlrafh1bjzrcjzl7im8pf8f04gcnx92lf3g5qr7yzgq8k20xa2";
+  };
+
+  propagatedBuildInputs = [ validictory decorator mutagen protobuf setuptools requests dateutil proboscis mock appdirs oauth2client pyopenssl gpsoauth MechanicalSoup future ];
+
+  meta = with stdenv.lib; {
+    description = "An unofficial API for Google Play Music";
+    homepage = https://pypi.python.org/pypi/gmusicapi/;
+    license = licenses.bsd3;
+  };
+}
diff --git a/pkgs/development/python-modules/gnureadline/default.nix b/pkgs/development/python-modules/gnureadline/default.nix
new file mode 100644
index 000000000000..2feab78f6a83
--- /dev/null
+++ b/pkgs/development/python-modules/gnureadline/default.nix
@@ -0,0 +1,29 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, isPyPy
+, pkgs
+}:
+
+buildPythonPackage rec {
+  version = "6.3.3";
+  pname = "gnureadline";
+  disabled = isPyPy;
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1ghck2zz4xbqa3wz73brgjhrqj55p9hc1fq6c9zb09dnyhwb0nd2";
+  };
+
+  buildInputs = [ pkgs.ncurses ];
+  patchPhase = ''
+    substituteInPlace setup.py --replace "/bin/bash" "${pkgs.bash}/bin/bash"
+  '';
+
+  meta = with stdenv.lib; {
+    description = "The standard Python readline extension statically linked against the GNU readline library";
+    homepage = http://github.com/ludwigschwardt/python-gnureadline;
+    license = licenses.gpl3;
+  };
+
+}
diff --git a/pkgs/development/python-modules/gnutls/default.nix b/pkgs/development/python-modules/gnutls/default.nix
new file mode 100644
index 000000000000..a58177e7544c
--- /dev/null
+++ b/pkgs/development/python-modules/gnutls/default.nix
@@ -0,0 +1,31 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, isPy3k
+, pkgs
+}:
+
+buildPythonPackage rec {
+  pname = "python-gnutls";
+  version = "3.0.0";
+
+  # https://github.com/AGProjects/python-gnutls/issues/2
+  disabled = isPy3k;
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1yrdxcj5rzvz8iglircz6icvyggz5fmdcd010n6w3j60yp4p84kc";
+  };
+
+  propagatedBuildInputs = [ pkgs.gnutls ];
+  patchPhase = ''
+    substituteInPlace gnutls/library/__init__.py --replace "/usr/local/lib" "${pkgs.gnutls.out}/lib"
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Python wrapper for the GnuTLS library";
+    homepage = https://github.com/AGProjects/python-gnutls;
+    license = licenses.lgpl2;
+  };
+
+}
diff --git a/pkgs/development/python-modules/goobook/default.nix b/pkgs/development/python-modules/goobook/default.nix
new file mode 100644
index 000000000000..91a99103af57
--- /dev/null
+++ b/pkgs/development/python-modules/goobook/default.nix
@@ -0,0 +1,38 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, isPy3k
+, oauth2client
+, gdata
+, simplejson
+, httplib2
+, keyring
+, six
+, rsa
+}:
+
+buildPythonPackage rec {
+  pname = "goobook";
+  version = "1.9";
+  disabled = isPy3k;
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "02xmq8sjavza17av44ks510934wrshxnsm6lvhvazs45s92b671i";
+  };
+
+  propagatedBuildInputs = [ oauth2client gdata simplejson httplib2 keyring six rsa ];
+
+  preConfigure = ''
+    sed -i '/distribute/d' setup.py
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Search your google contacts from the command-line or mutt";
+    homepage    = https://pypi.python.org/pypi/goobook;
+    license     = licenses.gpl3;
+    maintainers = with maintainers; [ lovek323 hbunke ];
+    platforms   = platforms.unix;
+  };
+
+}
diff --git a/pkgs/development/python-modules/google_apputils/default.nix b/pkgs/development/python-modules/google_apputils/default.nix
new file mode 100644
index 000000000000..66bad999dfb0
--- /dev/null
+++ b/pkgs/development/python-modules/google_apputils/default.nix
@@ -0,0 +1,38 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, pytz
+, gflags
+, dateutil
+, mox
+, python
+}:
+
+buildPythonPackage rec {
+  pname = "google-apputils";
+  version = "0.4.1";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1sxsm5q9vr44qzynj8l7p3l7ffb0zl1jdqhmmzmalkx941nbnj1b";
+  };
+
+  preConfigure = ''
+    sed -i '/ez_setup/d' setup.py
+  '';
+
+  propagatedBuildInputs = [ pytz gflags dateutil mox ];
+
+  checkPhase = ''
+    ${python.executable} setup.py google_test
+  '';
+
+  doCheck = true;
+
+  meta = with stdenv.lib; {
+    description = "Google Application Utilities for Python";
+    homepage = http://code.google.com/p/google-apputils-python;
+    license = licenses.asl20;
+  };
+
+}
diff --git a/pkgs/development/python-modules/gpapi/default.nix b/pkgs/development/python-modules/gpapi/default.nix
index da3bbcf28db3..13ba4f934e89 100644
--- a/pkgs/development/python-modules/gpapi/default.nix
+++ b/pkgs/development/python-modules/gpapi/default.nix
@@ -1,12 +1,12 @@
 { stdenv, buildPythonPackage, fetchPypi, requests, protobuf, pycryptodome }:
 
 buildPythonPackage rec {
-  version = "0.4.2";
+  version = "0.4.3";
   pname = "gpapi";
 
   src = fetchPypi {
     inherit version pname;
-    sha256 = "1fv2y3xbwn512fjxrdwgq6cz0xjd7mh54nq1f18wyz8w40vcznns";
+    sha256 = "9fd1351eb29c4da92d3a0ed2cd4e3c1634ea16afddbca133f6acc54766d61b02";
   };
 
   propagatedBuildInputs = [ requests protobuf pycryptodome ];
diff --git a/pkgs/development/python-modules/gpsoauth/default.nix b/pkgs/development/python-modules/gpsoauth/default.nix
new file mode 100644
index 000000000000..68dce423390a
--- /dev/null
+++ b/pkgs/development/python-modules/gpsoauth/default.nix
@@ -0,0 +1,36 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, cffi
+, cryptography
+, enum34
+, idna
+, ipaddress
+, ndg-httpsclient
+, pyopenssl
+, pyasn1
+, pycparser
+, pycryptodome
+, requests
+, six
+}:
+
+buildPythonPackage rec {
+  version = "0.2.0";
+  pname = "gpsoauth";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "01zxw8rhml8xfwda7ba8983890bzwkfa55ijd6qf8qrdy6ja1ncn";
+  };
+
+  propagatedBuildInputs = [ cffi cryptography enum34 idna ipaddress ndg-httpsclient pyopenssl pyasn1 pycparser pycryptodome requests six ];
+
+  meta = with stdenv.lib; {
+    description = "A python client library for Google Play Services OAuth";
+    homepage = "https://github.com/simon-weber/gpsoauth";
+    license = licenses.mit;
+    maintainers = with maintainers; [ jgillich ];
+  };
+
+}
diff --git a/pkgs/development/python-modules/gpy/default.nix b/pkgs/development/python-modules/gpy/default.nix
index 72415879b412..0b9717b3feed 100644
--- a/pkgs/development/python-modules/gpy/default.nix
+++ b/pkgs/development/python-modules/gpy/default.nix
@@ -3,12 +3,12 @@
 
 buildPythonPackage rec {
   pname = "GPy";
-  version = "1.9.2";
+  version = "1.9.5";
   name  = "${pname}-${version}";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "372e43d41df5c90e0958d3073070994b351a7409c2e5fbd349cffe13bc24c10a";
+    sha256 = "97519bea69e7d7a703d9575c31d68a7c6f974ae125ee9d4a3e1fb510eadfb97e";
   };
 
   # running tests produces "ImportError: cannot import name 'linalg_cython'"
diff --git a/pkgs/development/python-modules/graphite-web/default.nix b/pkgs/development/python-modules/graphite-web/default.nix
index 791eb1b8cf0f..51a7fd9b5d26 100644
--- a/pkgs/development/python-modules/graphite-web/default.nix
+++ b/pkgs/development/python-modules/graphite-web/default.nix
@@ -6,13 +6,13 @@ if django.version != "1.8.18"
 then throw "graphite-web should be build with django_1_8 and django_tagging_0_4_3"
 else buildPythonPackage rec {
   pname = "graphite-web";
-  version = "1.1.3";
+  version = "1.1.4";
 
   disabled = isPy3k;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0nvyq1859abdch2l90avsjk9vb03s7wgxgrjsqvjhf2b9c1ncsfh";
+    sha256 = "4430929f954998d77aa0a61246c62d64a00a2f9464320f9a462294dd3448e522";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/graphviz/default.nix b/pkgs/development/python-modules/graphviz/default.nix
new file mode 100644
index 000000000000..42a698906814
--- /dev/null
+++ b/pkgs/development/python-modules/graphviz/default.nix
@@ -0,0 +1,25 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, pkgs
+}:
+
+buildPythonPackage rec {
+  pname = "graphviz";
+  version = "0.9";
+
+  src = fetchPypi {
+    inherit pname version;
+    extension = "zip";
+    sha256 = "14r9brj4r31b3qy1nnn34v3l4h0n39bqxg9sn2fz4p3pp5mglnl6";
+  };
+
+  propagatedBuildInputs = [ pkgs.graphviz ];
+
+  meta = with stdenv.lib; {
+    description = "Simple Python interface for Graphviz";
+    homepage = https://github.com/xflr6/graphviz;
+    license = licenses.mit;
+  };
+
+}
diff --git a/pkgs/development/python-modules/grappelli_safe/default.nix b/pkgs/development/python-modules/grappelli_safe/default.nix
new file mode 100644
index 000000000000..bbba074b3f52
--- /dev/null
+++ b/pkgs/development/python-modules/grappelli_safe/default.nix
@@ -0,0 +1,34 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+}:
+
+buildPythonPackage rec {
+  version = "0.5.1";
+  pname = "grappelli_safe";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "27660faa628186d74258781edfa03ef812555d49b4925cfe19c05bcd3da85e40";
+  };
+
+  meta = with stdenv.lib; {
+    description = "A snapshot of django-grappelli for the Mezzanine CMS";
+    longDescription = ''
+      grappelli_safe was created to provide a snapshot of the
+      Grappelli admin skin for Django, to be referenced as a
+      dependency for the Mezzanine CMS for Django.
+
+      At the time of grappelli_safe's creation, Grappelli was
+      incorrectly packaged on PyPI, and had also dropped compatibility
+      with Django 1.1 - grappelli_safe was therefore created to
+      address these specific issues.
+    '';
+    homepage = https://github.com/stephenmcd/grappelli-safe;
+    downloadPage = http://pypi.python.org/pypi/grappelli_safe/;
+    license = licenses.free;
+    maintainers = with maintainers; [ prikhi ];
+    platforms = platforms.linux;
+  };
+
+}
diff --git a/pkgs/development/python-modules/greenlet/default.nix b/pkgs/development/python-modules/greenlet/default.nix
index 58b240297cfd..3754f08c28be 100644
--- a/pkgs/development/python-modules/greenlet/default.nix
+++ b/pkgs/development/python-modules/greenlet/default.nix
@@ -8,12 +8,12 @@
 
 buildPythonPackage rec {
   pname = "greenlet";
-  version = "0.4.14";
+  version = "0.4.15";
   disabled = isPyPy;  # builtin for pypy
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "f1cc268a15ade58d9a0c04569fe6613e19b8b0345b64453064e2c3c6d79051af";
+    sha256 = "9416443e219356e3c31f1f918a91badf2e37acf297e2fa13d24d1cc2380f8fbc";
   };
 
   propagatedBuildInputs = [ six ];
diff --git a/pkgs/development/python-modules/grpcio-tools/default.nix b/pkgs/development/python-modules/grpcio-tools/default.nix
index c111e5f75a73..7c58c866f52e 100644
--- a/pkgs/development/python-modules/grpcio-tools/default.nix
+++ b/pkgs/development/python-modules/grpcio-tools/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "grpcio-tools";
-  version = "1.14.1";
+  version = "1.14.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "4ce5aa660d7884f23aac1eafa93b97a4c3e2b512edff871e91fdb6ee86ebd5ea";
+    sha256 = "b3fd64a5b8c1d981f6d68a331449109633710a346051c44e0f0cca1812e2b4b0";
   };
 
   enableParallelBuilding = true;
diff --git a/pkgs/development/python-modules/gspread/default.nix b/pkgs/development/python-modules/gspread/default.nix
new file mode 100644
index 000000000000..1a07e7ecfc06
--- /dev/null
+++ b/pkgs/development/python-modules/gspread/default.nix
@@ -0,0 +1,21 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+}:
+
+buildPythonPackage rec {
+  version = "0.2.3";
+  pname = "gspread";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "dba45ef9e652dcd8cf561ae65569bd6ecd18fcc77b991521490698fb2d847106";
+  };
+
+  meta = with stdenv.lib; {
+    description = "Google Spreadsheets client library";
+    homepage = "https://github.com/burnash/gspread";
+    license = licenses.mit;
+  };
+
+}
diff --git a/pkgs/development/python-modules/gtimelog/default.nix b/pkgs/development/python-modules/gtimelog/default.nix
new file mode 100644
index 000000000000..40115f398c62
--- /dev/null
+++ b/pkgs/development/python-modules/gtimelog/default.nix
@@ -0,0 +1,44 @@
+{ stdenv
+, buildPythonPackage
+, fetchurl
+, pkgs
+, python
+, pygobject3
+}:
+
+buildPythonPackage rec {
+  pname = "gtimelog";
+  version = "0.9.1";
+
+  src = pkgs.fetchurl {
+    url = "https://github.com/gtimelog/gtimelog/archive/${version}.tar.gz";
+    sha256 = "0qk8fv8cszzqpdi3wl9vvkym1jil502ycn6sic4jrxckw5s9jsfj";
+  };
+
+  buildInputs = [ pkgs.glibcLocales ];
+
+  LC_ALL="en_US.UTF-8";
+
+  # TODO: AppIndicator
+  propagatedBuildInputs = [ pkgs.gobjectIntrospection pygobject3 pkgs.makeWrapper pkgs.gtk3 ];
+
+  checkPhase = ''
+    substituteInPlace runtests --replace "/usr/bin/env python" "${python}/bin/${python.executable}"
+    ./runtests
+  '';
+
+  preFixup = ''
+      wrapProgram $out/bin/gtimelog \
+        --prefix GI_TYPELIB_PATH : "$GI_TYPELIB_PATH" \
+        --prefix LD_LIBRARY_PATH ":" "${pkgs.gtk3.out}/lib" \
+  '';
+
+  meta = with stdenv.lib; {
+    description = "A small Gtk+ app for keeping track of your time. It's main goal is to be as unintrusive as possible";
+    homepage = https://mg.pov.lt/gtimelog/;
+    license = licenses.gpl2Plus;
+    maintainers = with maintainers; [ ocharles ];
+    platforms = platforms.unix;
+  };
+
+}
diff --git a/pkgs/development/python-modules/gyp/default.nix b/pkgs/development/python-modules/gyp/default.nix
new file mode 100644
index 000000000000..46b0dde636af
--- /dev/null
+++ b/pkgs/development/python-modules/gyp/default.nix
@@ -0,0 +1,34 @@
+{ stdenv
+, buildPythonPackage
+, fetchgit
+, isPy3k
+}:
+
+buildPythonPackage rec {
+  pname = "gyp";
+  version = "2015-06-11";
+  disabled = isPy3k;
+
+  src = fetchgit {
+    url = "https://chromium.googlesource.com/external/gyp.git";
+    rev = "fdc7b812f99e48c00e9a487bd56751bbeae07043";
+    sha256 = "1imgxsl4mr1662vsj2mlnpvvrbz71yk00w8p85vi5bkgmc6awgiz";
+  };
+
+  prePatch = stdenv.lib.optionals stdenv.isDarwin ''
+    sed -i 's/raise.*No Xcode or CLT version detected.*/version = "7.0.0"/' pylib/gyp/xcode_emulation.py
+  '';
+
+  patches = stdenv.lib.optionals stdenv.isDarwin [
+    ./no-darwin-cflags.patch
+    ./no-xcode.patch
+  ];
+
+  meta = with stdenv.lib; {
+    description = "A tool to generate native build files";
+    homepage = https://chromium.googlesource.com/external/gyp/+/master/README.md;
+    license = licenses.bsd3;
+    maintainers = with maintainers; [ codyopel ];
+  };
+
+}
diff --git a/pkgs/development/python-modules/hawkauthlib/default.nix b/pkgs/development/python-modules/hawkauthlib/default.nix
new file mode 100644
index 000000000000..46e49ba6b88b
--- /dev/null
+++ b/pkgs/development/python-modules/hawkauthlib/default.nix
@@ -0,0 +1,26 @@
+{ stdenv
+, buildPythonPackage
+, fetchgit
+, requests
+, webob
+}:
+
+buildPythonPackage rec {
+  pname = "hawkauthlib";
+  version = "0.1.1";
+
+  src = fetchgit {
+    url = https://github.com/mozilla-services/hawkauthlib.git;
+    rev = "refs/tags/v${version}";
+    sha256 = "0mr1mpx4j9q7sch9arwfvpysnpf2p7ijy7072wilxm8pnj0bwvsi";
+  };
+
+  propagatedBuildInputs = [ requests webob ];
+
+  meta = with stdenv.lib; {
+    homepage = https://github.com/mozilla-services/hawkauthlib;
+    description = "Hawk Access Authentication protocol";
+    license = licenses.mpl20;
+  };
+
+}
diff --git a/pkgs/development/python-modules/hdbscan/default.nix b/pkgs/development/python-modules/hdbscan/default.nix
index 3c86563adac2..27d83d9c6c23 100644
--- a/pkgs/development/python-modules/hdbscan/default.nix
+++ b/pkgs/development/python-modules/hdbscan/default.nix
@@ -10,11 +10,11 @@
 
 buildPythonPackage rec {
   pname = "hdbscan";
-  version = "0.8.15";
+  version = "0.8.18";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "446f98e1ea622a39c1f396d839fa2b1c35db98234e373336de61c3bd6ffaec78";
+    sha256 = "4d6782f08872f4c54983873a41759daae680d6247b0db363f3510cb001108f02";
   };
 
   checkInputs = [ nose ];
diff --git a/pkgs/development/python-modules/helper/default.nix b/pkgs/development/python-modules/helper/default.nix
index 15dadd0bf114..8aa6e1e921fb 100644
--- a/pkgs/development/python-modules/helper/default.nix
+++ b/pkgs/development/python-modules/helper/default.nix
@@ -1,21 +1,20 @@
 { stdenv, buildPythonPackage, fetchPypi, pyyaml, mock }:
- 
+
 buildPythonPackage rec {
   pname = "helper";
   version = "2.4.2";
-  name = "${pname}-${version}";
-  
+
   src = fetchPypi {
     inherit pname version;
     sha256 = "0p56dvjpaz9wnr0ik2wmvgqjf9ji180bhjky7q272l5dan94lgd6";
   };
-  
-  buildInputs = [ mock ];
+
+  checkInputs = [ mock ];
   propagatedBuildInputs = [ pyyaml ];
-  
+
   # No tests in the pypi tarball
   doCheck = false;
-  
+
   meta = with stdenv.lib; {
     description = "Development library for quickly writing configurable applications and daemons";
     homepage = https://helper.readthedocs.org/;
diff --git a/pkgs/development/python-modules/hetzner/default.nix b/pkgs/development/python-modules/hetzner/default.nix
new file mode 100644
index 000000000000..ccf4e1a5ba7f
--- /dev/null
+++ b/pkgs/development/python-modules/hetzner/default.nix
@@ -0,0 +1,24 @@
+{ stdenv
+, buildPythonPackage
+, fetchFromGitHub
+}:
+
+buildPythonPackage rec {
+  pname = "hetzner";
+  version = "0.8.1";
+
+  src = fetchFromGitHub {
+    repo = "hetzner";
+    owner = "aszlig";
+    rev = "v${version}";
+    sha256 = "1xd1klvjskv0pg8ginih597jkk491a55b8dq80dsm61m5sbsx3vq";
+  };
+
+  meta = with stdenv.lib; {
+    homepage = "https://github.com/RedMoonStudios/hetzner";
+    description = "High-level Python API for accessing the Hetzner robot";
+    license = licenses.bsd3;
+    maintainers = with maintainers; [ aszlig ];
+  };
+
+}
diff --git a/pkgs/development/python-modules/hg-git/default.nix b/pkgs/development/python-modules/hg-git/default.nix
new file mode 100644
index 000000000000..2b32afc2f824
--- /dev/null
+++ b/pkgs/development/python-modules/hg-git/default.nix
@@ -0,0 +1,27 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, dulwich
+, isPy3k
+}:
+
+buildPythonPackage rec {
+  pname = "hg-git";
+  version = "0.8.11";
+  disabled = isPy3k;
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "08kw1sj3sq1q1571hwkc51w20ks9ysmlg93pcnmd6gr66bz02dyn";
+  };
+
+  propagatedBuildInputs = [ dulwich ];
+
+  meta = with stdenv.lib; {
+    description = "Push and pull from a Git server using Mercurial";
+    homepage = http://hg-git.github.com/;
+    maintainers = with maintainers; [ koral ];
+    license = stdenv.lib.licenses.gpl2;
+  };
+
+}
diff --git a/pkgs/development/python-modules/hkdf/default.nix b/pkgs/development/python-modules/hkdf/default.nix
new file mode 100644
index 000000000000..3a159e6d3493
--- /dev/null
+++ b/pkgs/development/python-modules/hkdf/default.nix
@@ -0,0 +1,28 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, nose
+}:
+
+buildPythonPackage rec {
+  pname = "hkdf";
+  version = "0.0.3";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1jhxk5vhxmxxjp3zj526ry521v9inzzl8jqaaf0ma65w6k332ak2";
+  };
+
+  buildInputs = [ nose ];
+
+  checkPhase = ''
+    nosetests
+  '';
+
+  meta = with stdenv.lib; {
+    description = "HMAC-based Extract-and-Expand Key Derivation Function (HKDF)";
+    homepage = "https://github.com/casebeer/python-hkdf";
+    license = licenses.bsd2;
+  };
+
+}
diff --git a/pkgs/development/python-modules/hovercraft/default.nix b/pkgs/development/python-modules/hovercraft/default.nix
new file mode 100644
index 000000000000..e598fd41bab1
--- /dev/null
+++ b/pkgs/development/python-modules/hovercraft/default.nix
@@ -0,0 +1,36 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, docutils
+, lxml
+, manuel
+, pygments
+, svg-path
+, watchdog
+, isPy3k
+}:
+
+buildPythonPackage rec {
+  pname = "hovercraft";
+  version = "2.0";
+  disabled = ! isPy3k;
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "0lqxr816lymgnywln8bbv9nrmkyahjjcjkm9kjyny9bflayz4f1g";
+  };
+
+  propagatedBuildInputs = [ docutils lxml manuel pygments svg-path watchdog ];
+
+  # one test assumes we have docutils 0.12
+  # TODO: enable tests after upgrading docutils to 0.12
+  doCheck = false;
+
+  meta = with stdenv.lib; {
+    description = "A tool to make impress.js presentations from reStructuredText";
+    homepage = https://github.com/regebro/hovercraft;
+    license = licenses.mit;
+    maintainers = with maintainers; [ goibhniu ];
+  };
+
+}
diff --git a/pkgs/development/python-modules/hpack/default.nix b/pkgs/development/python-modules/hpack/default.nix
new file mode 100644
index 000000000000..5e85dd51e768
--- /dev/null
+++ b/pkgs/development/python-modules/hpack/default.nix
@@ -0,0 +1,21 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+}:
+
+buildPythonPackage rec {
+  pname = "hpack";
+  version = "2.3.0";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1ad0fx4d7a52zf441qzhjc7vwy9v3qdrk1zyf06ikz8y2nl9mgai";
+  };
+
+  meta = with stdenv.lib; {
+    description = "Pure-Python HPACK header compression";
+    homepage = "http://hyper.rtfd.org";
+    license = licenses.mit;
+  };
+
+}
diff --git a/pkgs/development/python-modules/hsaudiotag/default.nix b/pkgs/development/python-modules/hsaudiotag/default.nix
new file mode 100644
index 000000000000..d08d9e06b719
--- /dev/null
+++ b/pkgs/development/python-modules/hsaudiotag/default.nix
@@ -0,0 +1,26 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, isPy3k
+}:
+
+buildPythonPackage rec {
+  pname = "hsaudiotag";
+  version = "1.1.1";
+  disabled = isPy3k;
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "15hgm128p8nysfi0jb127awga3vlj0iw82l50swjpvdh01m7rda8";
+  };
+
+  # no tests
+  doCheck = false;
+
+  meta = with stdenv.lib; {
+    description = "A pure Python library that lets one to read metadata from media files";
+    homepage = http://hg.hardcoded.net/hsaudiotag/;
+    license = licenses.bsd3;
+  };
+
+}
diff --git a/pkgs/development/python-modules/hsaudiotag3k/default.nix b/pkgs/development/python-modules/hsaudiotag3k/default.nix
new file mode 100644
index 000000000000..06f89f733331
--- /dev/null
+++ b/pkgs/development/python-modules/hsaudiotag3k/default.nix
@@ -0,0 +1,26 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, isPy3k
+}:
+
+buildPythonPackage rec {
+  pname = "hsaudiotag3k";
+  version = "1.1.3";
+  disabled = !isPy3k;
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "0bv5k5594byr2bmhh77xv10fkdpckcmxg3w380yp30aqf83rcsx3";
+  };
+
+  # no tests
+  doCheck = false;
+
+  meta = with stdenv.lib; {
+    description = "A pure Python library that lets one to read metadata from media files";
+    homepage = http://hg.hardcoded.net/hsaudiotag/;
+    license = licenses.bsd3;
+  };
+
+}
diff --git a/pkgs/development/python-modules/htmllaundry/default.nix b/pkgs/development/python-modules/htmllaundry/default.nix
new file mode 100644
index 000000000000..787163d477e3
--- /dev/null
+++ b/pkgs/development/python-modules/htmllaundry/default.nix
@@ -0,0 +1,30 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi, nose
+, six
+, lxml
+}:
+
+buildPythonPackage rec {
+  pname = "htmllaundry";
+  version = "2.0";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "e428cba78d5a965e959f5dac2eb7d5f7d627dd889990d5efa8d4e03f3dd768d9";
+  };
+
+  buildInputs = [ nose ];
+  propagatedBuildInputs = [ six lxml ];
+
+  # some tests fail, probably because of changes in lxml
+  # not relevant for me, if releavnt for you, fix it...
+  doCheck = false;
+
+  meta = with stdenv.lib; {
+    description = "Simple HTML cleanup utilities";
+    license = licenses.bsd3;
+    homepage = https://pypi.org/project/htmllaundry/;
+  };
+
+}
diff --git a/pkgs/development/python-modules/http_signature/default.nix b/pkgs/development/python-modules/http_signature/default.nix
new file mode 100644
index 000000000000..48f06db1ba5d
--- /dev/null
+++ b/pkgs/development/python-modules/http_signature/default.nix
@@ -0,0 +1,26 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, isPy3k
+, pycrypto
+}:
+
+buildPythonPackage rec {
+  pname = "http_signature";
+  version = "0.1.4";
+  disabled = isPy3k;
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "14acc192ef20459d5e11b4e800dd3a4542f6bd2ab191bf5717c696bf30936c62";
+  };
+
+  propagatedBuildInputs = [ pycrypto ];
+
+  meta = with stdenv.lib; {
+    homepage = https://github.com/atl/py-http-signature;
+    description = "Simple secure signing for HTTP requests using http-signature";
+    license = licenses.mit;
+  };
+
+}
diff --git a/pkgs/development/python-modules/httpauth/default.nix b/pkgs/development/python-modules/httpauth/default.nix
new file mode 100644
index 000000000000..f1afd41ebed5
--- /dev/null
+++ b/pkgs/development/python-modules/httpauth/default.nix
@@ -0,0 +1,24 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+}:
+
+buildPythonPackage rec {
+  version = "0.3";
+  pname = "httpauth";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "0qas7876igyz978pgldp5r7n7pis8n4vf0v87gxr9l7p7if5lr3l";
+  };
+
+  doCheck = false;
+
+  meta = with stdenv.lib; {
+    description = "WSGI HTTP Digest Authentication middleware";
+    homepage = https://github.com/jonashaag/httpauth;
+    license = licenses.bsd2;
+    maintainers = with maintainers; [ ];
+  };
+
+}
diff --git a/pkgs/development/python-modules/httpretty/default.nix b/pkgs/development/python-modules/httpretty/default.nix
new file mode 100644
index 000000000000..1f135255bc04
--- /dev/null
+++ b/pkgs/development/python-modules/httpretty/default.nix
@@ -0,0 +1,50 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, tornado
+, requests
+, httplib2
+, sure
+, nose
+, coverage
+, certifi
+, urllib3
+, isPy3k
+}:
+
+buildPythonPackage rec {
+  pname = "httpretty";
+  version = "0.8.10";
+  doCheck = false;
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1nmdk6d89z14x3wg4yxywlxjdip16zc8bqnfb471z1365mr74jj7";
+  };
+
+  buildInputs = [ tornado requests httplib2 sure nose coverage certifi ];
+  propagatedBuildInputs = [ urllib3 ];
+
+  postPatch = ''
+    sed -i -e 's/==.*$//' *requirements.txt
+    # XXX: Drop this after version 0.8.4 is released.
+    patch httpretty/core.py <<DIFF
+    ***************
+    *** 566 ****
+    !                 'content-length': len(self.body)
+    --- 566 ----
+    !                 'content-length': str(len(self.body))
+    DIFF
+
+    # Explicit encoding flag is required with python3, unless locale is set.
+    ${if !isPy3k then "" else
+      "patch -p0 -i ${./setup.py.patch}"}
+  '';
+
+  meta = with stdenv.lib; {
+    homepage = "https://falcao.it/HTTPretty/";
+    description = "HTTP client request mocking tool";
+    license = licenses.mit;
+  };
+
+}
diff --git a/pkgs/development/python-modules/hug/default.nix b/pkgs/development/python-modules/hug/default.nix
new file mode 100644
index 000000000000..4aeffc75823b
--- /dev/null
+++ b/pkgs/development/python-modules/hug/default.nix
@@ -0,0 +1,30 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, isPy27
+, falcon
+, requests
+}:
+
+buildPythonPackage rec {
+  pname = "hug";
+  version = "2.1.2";
+  disabled = isPy27;
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "93325e13706594933a9afb0d4f0b0748134494299038f07df41152baf6f89f4c";
+  };
+
+  propagatedBuildInputs = [ falcon requests ];
+
+  # tests are not shipped in the tarball
+  doCheck = false;
+
+  meta = with stdenv.lib; {
+    description = "A Python framework that makes developing APIs as simple as possible, but no simpler";
+    homepage = https://github.com/timothycrosley/hug;
+    license = licenses.mit;
+  };
+
+}
diff --git a/pkgs/development/python-modules/humanize/default.nix b/pkgs/development/python-modules/humanize/default.nix
new file mode 100644
index 000000000000..25c335c0016f
--- /dev/null
+++ b/pkgs/development/python-modules/humanize/default.nix
@@ -0,0 +1,28 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, mock
+}:
+
+buildPythonPackage rec {
+  version = "0.5.1";
+  pname = "humanize";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "a43f57115831ac7c70de098e6ac46ac13be00d69abbf60bdcac251344785bb19";
+  };
+
+  buildInputs = [ mock ];
+
+  doCheck = false;
+
+  meta = with stdenv.lib; {
+    description = "Python humanize utilities";
+    homepage = https://github.com/jmoiron/humanize;
+    license = licenses.mit;
+    maintainers = with maintainers; [ ];
+    platforms = platforms.linux; # can only test on linux
+  };
+
+}
diff --git a/pkgs/development/python-modules/hupper/default.nix b/pkgs/development/python-modules/hupper/default.nix
index 5131e64a3c2b..5f6a4a35ce11 100644
--- a/pkgs/development/python-modules/hupper/default.nix
+++ b/pkgs/development/python-modules/hupper/default.nix
@@ -4,11 +4,11 @@
 
 buildPythonPackage rec {
   pname = "hupper";
-  version = "1.3";
+  version = "1.3.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "20387760e4d32bd4813c2cabc8e51d92b2c22c546102a0af182c33c152cd7ede";
+    sha256 = "899a1da85b71b62d903b5732703cad7454425b4ba9a6453930ad9168ec08ae0e";
   };
 
   checkPhase = ''
diff --git a/pkgs/development/python-modules/hvac/default.nix b/pkgs/development/python-modules/hvac/default.nix
index 310bd91b22bf..7bc0d9d21074 100644
--- a/pkgs/development/python-modules/hvac/default.nix
+++ b/pkgs/development/python-modules/hvac/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "hvac";
-  version = "0.6.3";
+  version = "0.6.4";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "54672a93f75453a7de13c7c10c6d8a51630e2559a8e2a563d8e272e9e188443f";
+    sha256 = "d7f23883c44458078359142608d0bc6373c4bcec107bdb609c827ee1dda61431";
   };
 
   propagatedBuildInputs = [ requests ];
diff --git a/pkgs/development/python-modules/i3-py/default.nix b/pkgs/development/python-modules/i3-py/default.nix
new file mode 100644
index 000000000000..e433cd51c20c
--- /dev/null
+++ b/pkgs/development/python-modules/i3-py/default.nix
@@ -0,0 +1,25 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+}:
+
+buildPythonPackage rec {
+  version = "0.6.4";
+  pname = "i3-py";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1sgl438jrb4cdyl7hbc3ymwsf7y3zy09g1gh7ynilxpllp37jc8y";
+  };
+
+  # no tests in tarball
+  doCheck = false;
+
+  meta = with stdenv.lib; {
+    description = "Tools for i3 users and developers";
+    homepage =  "https://github.com/ziberna/i3-py";
+    license = licenses.gpl3;
+    platforms = platforms.linux;
+  };
+
+}
diff --git a/pkgs/development/python-modules/icalendar/default.nix b/pkgs/development/python-modules/icalendar/default.nix
new file mode 100644
index 000000000000..b83785211f88
--- /dev/null
+++ b/pkgs/development/python-modules/icalendar/default.nix
@@ -0,0 +1,28 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, setuptools
+, dateutil
+, pytz
+}:
+
+buildPythonPackage rec {
+  version = "3.9.0";
+  pname = "icalendar";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "93d0b94eab23d08f62962542309916a9681f16de3d5eca1c75497f30f1b07792";
+  };
+
+  buildInputs = [ setuptools ];
+  propagatedBuildInputs = [ dateutil pytz ];
+
+  meta = with stdenv.lib; {
+    description = "A parser/generator of iCalendar files";
+    homepage = "http://icalendar.readthedocs.org/";
+    license = licenses.bsd2;
+    maintainers = with maintainers; [ olcai ];
+  };
+
+}
diff --git a/pkgs/development/python-modules/identify/default.nix b/pkgs/development/python-modules/identify/default.nix
index b4b5d9c87275..1d6b1ed0b193 100644
--- a/pkgs/development/python-modules/identify/default.nix
+++ b/pkgs/development/python-modules/identify/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "identify";
-  version = "1.1.4";
+  version = "1.1.7";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0hvwfpf6fmgn93abrvj88pi7sbcib32s4c5r99lw67kbziq5x129";
+    sha256 = "5e956558a9a1e3b3891d7c6609fc9709657a11878af288ace484d1a46a93922b";
   };
 
   # Tests not included in PyPI tarball
diff --git a/pkgs/development/python-modules/imageio/default.nix b/pkgs/development/python-modules/imageio/default.nix
new file mode 100644
index 000000000000..cdbcfee7180f
--- /dev/null
+++ b/pkgs/development/python-modules/imageio/default.nix
@@ -0,0 +1,33 @@
+{ stdenv
+, buildPythonPackage
+, fetchurl
+, pytest
+, numpy
+}:
+
+buildPythonPackage rec {
+  pname = "imageio";
+  version = "1.6";
+
+  src = fetchurl {
+    url = "https://github.com/imageio/imageio/archive/v${version}.tar.gz";
+    sha256 = "195snkk3fsbjqd5g1cfsd9alzs5q45gdbi2ka9ph4yxqb31ijrbv";
+  };
+
+  buildInputs = [ pytest ];
+  propagatedBuildInputs = [ numpy ];
+
+  checkPhase = ''
+    py.test
+  '';
+
+  # Tries to write in /var/tmp/.imageio
+  doCheck = false;
+
+  meta = with stdenv.lib; {
+    description = "Library for reading and writing a wide range of image, video, scientific, and volumetric data formats";
+    homepage = http://imageio.github.io/;
+    license = licenses.bsd2;
+  };
+
+}
diff --git a/pkgs/development/python-modules/imagesize/default.nix b/pkgs/development/python-modules/imagesize/default.nix
new file mode 100644
index 000000000000..32a8310334ae
--- /dev/null
+++ b/pkgs/development/python-modules/imagesize/default.nix
@@ -0,0 +1,21 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+}:
+
+buildPythonPackage rec {
+  pname = "imagesize";
+  version = "0.7.0";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "0msgz4ncp2nb5nbsxnf8kvxsl6nhwvc3b46ik097fvznl3y10gdv";
+  };
+
+  meta = with stdenv.lib; {
+    description = "Getting image size from png/jpeg/jpeg2000/gif file";
+    homepage = https://github.com/shibukawa/imagesize_py;
+    license = with licenses; [ mit ];
+  };
+
+}
diff --git a/pkgs/development/python-modules/imread/default.nix b/pkgs/development/python-modules/imread/default.nix
new file mode 100644
index 000000000000..9a67568d9e52
--- /dev/null
+++ b/pkgs/development/python-modules/imread/default.nix
@@ -0,0 +1,30 @@
+{ stdenv
+, buildPythonPackage
+, fetchurl
+, nose
+, pkgs
+, numpy
+}:
+
+buildPythonPackage rec {
+  pname = "python-imread";
+  version = "0.6";
+
+  src = pkgs.fetchurl {
+    url = "https://github.com/luispedro/imread/archive/release-${version}.tar.gz";
+    sha256 = "0i14bc67200zhzxc41g5dfp2m0pr1zaa2gv59p2va1xw0ji2dc0f";
+  };
+
+  nativeBuildInputs = [ pkgs.pkgconfig ];
+  buildInputs = [ nose pkgs.libjpeg pkgs.libpng pkgs.libtiff pkgs.libwebp ];
+  propagatedBuildInputs = [ numpy ];
+
+  meta = with stdenv.lib; {
+    description = "Python package to load images as numpy arrays";
+    homepage = https://imread.readthedocs.io/en/latest/;
+    maintainers = with maintainers; [ luispedro ];
+    license = licenses.mit;
+    platforms = platforms.linux;
+  };
+
+}
diff --git a/pkgs/development/python-modules/inflect/default.nix b/pkgs/development/python-modules/inflect/default.nix
index 94b0fc801fa9..8c58a4f9de76 100644
--- a/pkgs/development/python-modules/inflect/default.nix
+++ b/pkgs/development/python-modules/inflect/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "inflect";
-  version = "1.0.0";
+  version = "1.0.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0ll34l5b2wsbcw9i2hvkhmq6szxrp7fzc2hjmpz1cvny81bhg3kx";
+    sha256 = "ec42f5d5d2baa54ba6e3fa23698554c09362dd478cc66b3c28c5d0b76d7d0581";
   };
 
   buildInputs = [ setuptools_scm ];
diff --git a/pkgs/development/python-modules/influxdb/default.nix b/pkgs/development/python-modules/influxdb/default.nix
new file mode 100644
index 000000000000..100ca5b0ff9a
--- /dev/null
+++ b/pkgs/development/python-modules/influxdb/default.nix
@@ -0,0 +1,29 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, requests
+, dateutil
+, pytz
+, six
+}:
+
+buildPythonPackage rec {
+  pname = "influxdb";
+  version = "4.0.0";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "0injsml6zmb3hkgc03117fdlg573kbfgjbijpd5npf0vsy0xnpvz";
+  };
+
+  # ImportError: No module named tests
+  doCheck = false;
+  propagatedBuildInputs = [ requests dateutil pytz six ];
+
+  meta = with stdenv.lib; {
+    description = "Python client for InfluxDB";
+    homepage = https://github.com/influxdb/influxdb-python;
+    license = licenses.mit;
+  };
+
+}
diff --git a/pkgs/development/python-modules/infoqscraper/default.nix b/pkgs/development/python-modules/infoqscraper/default.nix
new file mode 100644
index 000000000000..f9ced7e63daf
--- /dev/null
+++ b/pkgs/development/python-modules/infoqscraper/default.nix
@@ -0,0 +1,34 @@
+{ stdenv
+, buildPythonPackage
+, fetchFromGitHub
+, html5lib
+, six
+, beautifulsoup4
+, pkgs
+}:
+
+buildPythonPackage rec {
+  version = "0.1.0";
+  pname = "infoqscraper";
+
+  src = pkgs.fetchFromGitHub {
+    owner = "cykl";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "07mxp4mla7fwfc032f3mxrhjarnhkjqdxxibf9ba87c93z3dq8jj";
+  };
+
+  # requires network
+  doCheck = false;
+
+  buildInputs = [ html5lib ];
+  propagatedBuildInputs = [ six beautifulsoup4 pkgs.ffmpeg pkgs.swftools pkgs.rtmpdump ];
+
+  meta = with stdenv.lib; {
+    description = "Discover presentations and/or create a movie consisting of slides and audio track from an infoq url";
+    homepage = "https://github.com/cykl/infoqscraper/wiki";
+    license = licenses.mit;
+    maintainers = with maintainers; [ edwtjo ];
+  };
+
+}
diff --git a/pkgs/development/python-modules/inifile/default.nix b/pkgs/development/python-modules/inifile/default.nix
new file mode 100644
index 000000000000..e64ef76356d1
--- /dev/null
+++ b/pkgs/development/python-modules/inifile/default.nix
@@ -0,0 +1,22 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+}:
+
+buildPythonPackage rec {
+  pname = "inifile";
+  version = "0.3";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "0zgd53czc1irwx6b5zip8xlmyfr40hz2pd498d8yv61znj6lm16h";
+  };
+
+  meta = with stdenv.lib; {
+    description = "A small INI library for Python";
+    homepage    = "https://github.com/mitsuhiko/python-inifile";
+    license     = licenses.bsd0;
+    maintainers = with maintainers; [ vozz ];
+  };
+
+}
diff --git a/pkgs/development/python-modules/iniparse/default.nix b/pkgs/development/python-modules/iniparse/default.nix
new file mode 100644
index 000000000000..e0c2fd765c98
--- /dev/null
+++ b/pkgs/development/python-modules/iniparse/default.nix
@@ -0,0 +1,30 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, python
+}:
+
+buildPythonPackage rec {
+  pname = "iniparse";
+  version = "0.4";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "0m60k46vr03x68jckachzsipav0bwhhnqb8715hm1cngs89fxhdb";
+  };
+
+  checkPhase = ''
+    ${python.interpreter} runtests.py
+  '';
+
+  # Does not install tests
+  doCheck = false;
+
+  meta = with stdenv.lib; {
+    description = "Accessing and Modifying INI files";
+    homepage = http://code.google.com/p/iniparse/;
+    license = licenses.mit;
+    maintainers = with maintainers; [ danbst ];
+  };
+
+}
diff --git a/pkgs/development/python-modules/ipaddr/default.nix b/pkgs/development/python-modules/ipaddr/default.nix
new file mode 100644
index 000000000000..4325e6ea8844
--- /dev/null
+++ b/pkgs/development/python-modules/ipaddr/default.nix
@@ -0,0 +1,23 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, isPy3k
+}:
+
+buildPythonPackage rec {
+  pname = "ipaddr";
+  version = "2.1.11";
+  disabled = isPy3k;
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1dwq3ngsapjc93fw61rp17fvzggmab5x1drjzvd4y4q0i255nm8v";
+  };
+
+  meta = with stdenv.lib; {
+    description = "Google's IP address manipulation library";
+    homepage = http://code.google.com/p/ipaddr-py/;
+    license = licenses.asl20;
+  };
+
+}
diff --git a/pkgs/development/python-modules/ipaddress/default.nix b/pkgs/development/python-modules/ipaddress/default.nix
new file mode 100644
index 000000000000..5052c3dc2f4e
--- /dev/null
+++ b/pkgs/development/python-modules/ipaddress/default.nix
@@ -0,0 +1,27 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, pythonAtLeast
+, python
+}:
+
+if (pythonAtLeast "3.3") then null else buildPythonPackage rec {
+  pname = "ipaddress";
+  version = "1.0.18";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1q8klj9d84cmxgz66073x1j35cplr3r77vx1znhxiwl5w74391ax";
+  };
+
+  checkPhase = ''
+    ${python.interpreter} test_ipaddress.py
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Port of the 3.3+ ipaddress module to 2.6, 2.7, and 3.2";
+    homepage = https://github.com/phihag/ipaddress;
+    license = licenses.psfl;
+  };
+
+}
diff --git a/pkgs/development/python-modules/ipdb/default.nix b/pkgs/development/python-modules/ipdb/default.nix
new file mode 100644
index 000000000000..3203963b29da
--- /dev/null
+++ b/pkgs/development/python-modules/ipdb/default.nix
@@ -0,0 +1,28 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, ipython
+, isPyPy
+}:
+
+buildPythonPackage rec {
+  pname = "ipdb";
+  version = "0.8.1";
+  disabled = isPyPy;  # setupterm: could not find terminfo database
+
+  src = fetchPypi {
+    inherit pname version;
+    extension = "zip";
+    sha256 = "1763d1564113f5eb89df77879a8d3213273c4d7ff93dcb37a3070cdf0c34fd7c";
+  };
+
+  propagatedBuildInputs = [ ipython ];
+
+  meta = with stdenv.lib; {
+    homepage = https://github.com/gotcha/ipdb;
+    description = "IPython-enabled pdb";
+    license = licenses.bsd0;
+    maintainers = [ maintainers.costrouc ];
+  };
+
+}
diff --git a/pkgs/development/python-modules/ipdbplugin/default.nix b/pkgs/development/python-modules/ipdbplugin/default.nix
new file mode 100644
index 000000000000..1f5435461abc
--- /dev/null
+++ b/pkgs/development/python-modules/ipdbplugin/default.nix
@@ -0,0 +1,26 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, nose
+, ipython
+}:
+
+buildPythonPackage rec {
+  pname = "ipdbplugin";
+  version = "1.4";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "4778d78b5d0af1a2a6d341aed9e72eb73b1df6b179e145b4845d3a209137029c";
+  };
+
+  propagatedBuildInputs = [ nose ipython ];
+
+  meta = with stdenv.lib; {
+    homepage = http://github.com/flavioamieiro/nose-ipdb/tree/master;
+    description = "Nose plugin to use iPdb instead of Pdb when tests fail";
+    license = licenses.lgpl2;
+    maintainers = [ maintainers.costrouc ];
+  };
+
+}
diff --git a/pkgs/development/python-modules/ipfsapi/default.nix b/pkgs/development/python-modules/ipfsapi/default.nix
new file mode 100644
index 000000000000..377ed8549cff
--- /dev/null
+++ b/pkgs/development/python-modules/ipfsapi/default.nix
@@ -0,0 +1,30 @@
+{ stdenv
+, buildPythonPackage
+, fetchFromGitHub
+, isPy27
+, six
+, requests
+}:
+
+buildPythonPackage rec {
+  pname = "ipfsapi";
+  version = "0.4.2.post1";
+  disabled = isPy27;
+
+  src = fetchFromGitHub {
+    owner = "ipfs";
+    repo = "py-ipfs-api";
+    rev = "0c485544a114f580c65e2ffbb5782efbf7fd9f61";
+    sha256 = "1v7f77cv95yv0v80gisdh71mj7jcq41xcfip6bqm57zfdbsa0xpn";
+  };
+
+  propagatedBuildInputs = [ six requests ];
+
+  meta = with stdenv.lib; {
+    description = "A python client library for the IPFS API";
+    license = licenses.mit;
+    maintainers = with maintainers; [ mguentner ];
+    homepage = "https://pypi.python.org/pypi/ipfsapi";
+  };
+
+}
diff --git a/pkgs/development/python-modules/iptools/default.nix b/pkgs/development/python-modules/iptools/default.nix
new file mode 100644
index 000000000000..e5c5d298b431
--- /dev/null
+++ b/pkgs/development/python-modules/iptools/default.nix
@@ -0,0 +1,24 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, nose
+}:
+
+buildPythonPackage rec {
+  version = "0.6.1";
+  pname = "iptools";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "0f03875a5bed740ba4bf44decb6a78679cca914a1ee8a6cc468114485c4d98e3";
+  };
+
+  buildInputs = [ nose ];
+
+  meta = with stdenv.lib; {
+    description = "Utilities for manipulating IP addresses including a class that can be used to include CIDR network blocks in Django's INTERNAL_IPS setting";
+    homepage = https://pypi.python.org/pypi/iptools;
+    license = licenses.bsd0;
+  };
+
+}
diff --git a/pkgs/development/python-modules/ipywidgets/default.nix b/pkgs/development/python-modules/ipywidgets/default.nix
index dde041140b94..b91b5d7a775b 100644
--- a/pkgs/development/python-modules/ipywidgets/default.nix
+++ b/pkgs/development/python-modules/ipywidgets/default.nix
@@ -14,11 +14,11 @@
 
 buildPythonPackage rec {
   pname = "ipywidgets";
-  version = "7.4.0";
+  version = "7.4.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "fd24a66d82f2ea49e281da7714a7c656340d3ec24dff376b17590fa59469b817";
+    sha256 = "a3e224f430163f767047ab9a042fc55adbcab0c24bbe6cf9f306c4f89fdf0ba3";
   };
 
   # Tests are not distributed
diff --git a/pkgs/development/python-modules/itsdangerous/default.nix b/pkgs/development/python-modules/itsdangerous/default.nix
new file mode 100644
index 000000000000..385708f436ec
--- /dev/null
+++ b/pkgs/development/python-modules/itsdangerous/default.nix
@@ -0,0 +1,21 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+}:
+
+buildPythonPackage rec {
+  pname = "itsdangerous";
+  version = "0.24";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "06856q6x675ly542ig0plbqcyab6ksfzijlyf1hzhgg3sgwgrcyb";
+  };
+
+  meta = with stdenv.lib; {
+    description = "Helpers to pass trusted data to untrusted environments and back";
+    homepage = "https://pypi.python.org/pypi/itsdangerous/";
+    license = licenses.bsd0;
+  };
+
+}
diff --git a/pkgs/development/python-modules/j2cli/default.nix b/pkgs/development/python-modules/j2cli/default.nix
new file mode 100644
index 000000000000..d8da0d8f1291
--- /dev/null
+++ b/pkgs/development/python-modules/j2cli/default.nix
@@ -0,0 +1,34 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, isPy3k
+, nose
+, jinja2
+, pyyaml
+}:
+
+buildPythonPackage rec {
+  pname = "j2cli";
+  version = "0.3.1-0";
+  disabled = isPy3k;
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "0y3w1x9935qzx8w6m2r6g4ghyjmxn33wryiif6xb56q7cj9w1433";
+  };
+
+  buildInputs = [ nose ];
+  propagatedBuildInputs = [ jinja2 pyyaml ];
+
+  meta = with stdenv.lib; {
+    homepage = https://github.com/kolypto/j2cli;
+    description = "Jinja2 Command-Line Tool";
+    license = licenses.bsd3;
+    longDescription = ''
+      J2Cli is a command-line tool for templating in shell-scripts,
+      leveraging the Jinja2 library.
+    '';
+    maintainers = with maintainers; [ rushmorem ];
+  };
+
+}
diff --git a/pkgs/development/python-modules/jdatetime/default.nix b/pkgs/development/python-modules/jdatetime/default.nix
index a7c362231cab..03aa9d0d0f81 100644
--- a/pkgs/development/python-modules/jdatetime/default.nix
+++ b/pkgs/development/python-modules/jdatetime/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "jdatetime";
-  version = "3.0.0";
+  version = "3.0.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "07cdb02e8d6610c38e8ae7746b12cbc39068cc5d54fb2baa915579b60d781b5b";
+    sha256 = "21824ab1e29e9ccbca85e77562a090067882976880603c41af8d9c4cffc1d4fc";
   };
 
   propagatedBuildInputs = [ six ];
diff --git a/pkgs/development/python-modules/jinja2_time/default.nix b/pkgs/development/python-modules/jinja2_time/default.nix
new file mode 100644
index 000000000000..69fbffa92b2f
--- /dev/null
+++ b/pkgs/development/python-modules/jinja2_time/default.nix
@@ -0,0 +1,25 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, arrow
+, jinja2
+}:
+
+buildPythonPackage rec {
+  version = "0.2.0";
+  pname = "jinja2-time";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "0h0dr7cfpjnjj8bgl2vk9063a53649pn37wnlkd8hxjy656slkni";
+  };
+
+  propagatedBuildInputs = [ arrow jinja2 ];
+
+  meta = with stdenv.lib; {
+    homepage = https://github.com/hackebrot/jinja2-time;
+    description = "Jinja2 Extension for Dates and Times";
+    license = licenses.mit;
+  };
+
+}
diff --git a/pkgs/development/python-modules/jmespath/default.nix b/pkgs/development/python-modules/jmespath/default.nix
new file mode 100644
index 000000000000..c4755b45eec3
--- /dev/null
+++ b/pkgs/development/python-modules/jmespath/default.nix
@@ -0,0 +1,26 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, ply
+, nose
+}:
+
+buildPythonPackage rec {
+  pname = "jmespath";
+  version = "0.9.0";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "0g9xvl69y7nr3w7ag4fsp6sm4fqf6vrqjw7504x2hzrrsh3ampq8";
+  };
+
+  buildInputs = [ nose ];
+  propagatedBuildInputs = [ ply ];
+
+  meta = with stdenv.lib; {
+    homepage = https://github.com/boto/jmespath;
+    description = "JMESPath allows you to declaratively specify how to extract elements from a JSON document";
+    license = "BSD";
+  };
+
+}
diff --git a/pkgs/development/python-modules/jsonpath_rw/default.nix b/pkgs/development/python-modules/jsonpath_rw/default.nix
new file mode 100644
index 000000000000..a109404c06f5
--- /dev/null
+++ b/pkgs/development/python-modules/jsonpath_rw/default.nix
@@ -0,0 +1,31 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, isPyPy
+, ply
+, six
+, decorator
+}:
+
+buildPythonPackage rec {
+  pname = "jsonpath-rw";
+  version = "1.4.0";
+  disabled = isPyPy;
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "05c471281c45ae113f6103d1268ec7a4831a2e96aa80de45edc89b11fac4fbec";
+  };
+
+  propagatedBuildInputs = [ ply six decorator ];
+
+  # ImportError: No module named tests
+  doCheck = false;
+
+  meta = with stdenv.lib; {
+    homepage = https://github.com/kennknowles/python-jsonpath-rw;
+    description = "A robust and significantly extended implementation of JSONPath for Python, with a clear AST for metaprogramming";
+    license = licenses.asl20;
+  };
+
+}
diff --git a/pkgs/development/python-modules/jsonpointer/default.nix b/pkgs/development/python-modules/jsonpointer/default.nix
new file mode 100644
index 000000000000..c07a4bf3a358
--- /dev/null
+++ b/pkgs/development/python-modules/jsonpointer/default.nix
@@ -0,0 +1,21 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+}:
+
+buildPythonPackage rec {
+  pname = "jsonpointer";
+  version = "1.9";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "39403b47a71aa782de6d80db3b78f8a5f68ad8dfc9e674ca3bb5b32c15ec7308";
+  };
+
+  meta = with stdenv.lib; {
+    description = "Resolve JSON Pointers in Python";
+    homepage = "https://github.com/stefankoegl/python-json-pointer";
+    license = stdenv.lib.licenses.bsd2; # "Modified BSD license, says pypi"
+  };
+
+}
diff --git a/pkgs/development/python-modules/jsonrpclib/default.nix b/pkgs/development/python-modules/jsonrpclib/default.nix
index 9f3efdf627ef..81dcdc074739 100644
--- a/pkgs/development/python-modules/jsonrpclib/default.nix
+++ b/pkgs/development/python-modules/jsonrpclib/default.nix
@@ -1,10 +1,15 @@
-{ lib, buildPythonPackage, fetchPypi, isPy27, cjson }:
+{ lib
+, buildPythonPackage
+, fetchPypi
+, cjson
+, isPy3k
+}:
 
 buildPythonPackage rec {
   pname = "jsonrpclib";
   version = "0.1.7";
 
-  disabled = !isPy27;
+  disabled = isPy3k;
 
   src = fetchPypi {
     inherit pname version;
@@ -13,7 +18,7 @@ buildPythonPackage rec {
 
   propagatedBuildInputs = [ cjson ];
 
-  meta = {
+  meta = with lib; {
     description = "JSON RPC client library";
     homepage = https://pypi.python.org/pypi/jsonrpclib/;
     license = lib.licenses.asl20;
diff --git a/pkgs/development/python-modules/jsonwatch/default.nix b/pkgs/development/python-modules/jsonwatch/default.nix
new file mode 100644
index 000000000000..177b0d4cfee9
--- /dev/null
+++ b/pkgs/development/python-modules/jsonwatch/default.nix
@@ -0,0 +1,35 @@
+{ stdenv
+, buildPythonPackage
+, fetchurl
+, six
+, isPyPy
+}:
+
+buildPythonPackage rec {
+  pname = "jsonwatch";
+  version = "0.2.0";
+  disabled = isPyPy; # doesn't find setuptools
+
+  src = fetchurl {
+    url = "https://github.com/dbohdan/jsonwatch/archive/v0.2.0.tar.gz";
+    sha256 = "04b616ef97b9d8c3887004995420e52b72a4e0480a92dbf60aa6c50317261e06";
+  };
+
+  propagatedBuildInputs = [ six ];
+
+  meta = with stdenv.lib; {
+    description = "Like watch -d but for JSON";
+    longDescription = ''
+      jsonwatch is a command line utility with which you can track
+      changes in JSON data delivered by a shell command or a web
+      (HTTP/HTTPS) API.  jsonwatch requests data from the designated
+      source repeatedly at a set interval and displays the
+      differences when the data changes. It is similar in its
+      behavior to how watch(1) with the -d switch works for
+      plain-text data.
+    '';
+    homepage = "https://github.com/dbohdan/jsonwatch";
+    license = licenses.mit;
+    platforms = platforms.all;
+  };
+}
diff --git a/pkgs/development/python-modules/jupyter/default.nix b/pkgs/development/python-modules/jupyter/default.nix
new file mode 100644
index 000000000000..14f836725536
--- /dev/null
+++ b/pkgs/development/python-modules/jupyter/default.nix
@@ -0,0 +1,34 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, notebook
+, qtconsole
+, jupyter_console
+, nbconvert
+, ipykernel
+, ipywidgets
+}:
+
+buildPythonPackage rec {
+  version = "1.0.0";
+  pname = "jupyter";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "d9dc4b3318f310e34c82951ea5d6683f67bed7def4b259fafbfe4f1beb1d8e5f";
+  };
+
+  propagatedBuildInputs = [ notebook qtconsole jupyter_console nbconvert ipykernel ipywidgets ];
+
+  # Meta-package, no tests
+  doCheck = false;
+
+  meta = with stdenv.lib; {
+    description = "Installs all the Jupyter components in one go";
+    homepage = "http://jupyter.org/";
+    license = licenses.bsd3;
+    platforms = platforms.all;
+    priority = 100; # This is a metapackage which is unimportant
+  };
+
+}
diff --git a/pkgs/development/python-modules/jupyterlab/default.nix b/pkgs/development/python-modules/jupyterlab/default.nix
index 23aaff8a7281..f0bd058271a9 100644
--- a/pkgs/development/python-modules/jupyterlab/default.nix
+++ b/pkgs/development/python-modules/jupyterlab/default.nix
@@ -1,12 +1,12 @@
 { lib, buildPythonPackage, isPy3k, fetchPypi, ipython_genutils, jupyterlab_launcher, notebook }:
 buildPythonPackage rec {
   pname = "jupyterlab";
-  version = "0.34.6";
+  version = "0.34.12";
   disabled = !isPy3k;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "d6e5a3855a0d55e6aa4ab704379da5da3db2e652442e79acfa2e9d14ef50ccb3";
+    sha256 = "7d8378d19a0ae173e91a493db996c37828b410b7ee556da21a153486168ecf87";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/kajiki/default.nix b/pkgs/development/python-modules/kajiki/default.nix
new file mode 100644
index 000000000000..2391b334d617
--- /dev/null
+++ b/pkgs/development/python-modules/kajiki/default.nix
@@ -0,0 +1,26 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, Babel
+, pytz
+, nine
+}:
+
+buildPythonPackage rec {
+  pname = "Kajiki";
+  version = "0.5.5";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "effcae388e25c3358eb0bbd733448509d11a1ec500e46c69241fc673021f0517";
+  };
+
+  propagatedBuildInputs = [ Babel pytz nine ];
+
+  meta = with stdenv.lib; {
+    description = "Kajiki provides fast well-formed XML templates";
+    homepage = "https://github.com/nandoflorestan/kajiki";
+    license = licenses.mit;
+  };
+
+}
diff --git a/pkgs/development/python-modules/kaptan/default.nix b/pkgs/development/python-modules/kaptan/default.nix
new file mode 100644
index 000000000000..af24471d68de
--- /dev/null
+++ b/pkgs/development/python-modules/kaptan/default.nix
@@ -0,0 +1,26 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, pyyaml
+}:
+
+buildPythonPackage rec {
+  pname = "kaptan";
+  version = "0.5.8";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1b8r86yyvdvyxd6f10mhkl6cr2jhxm80jjqr4zch96w9hs9rh5vq";
+  };
+
+  propagatedBuildInputs = [ pyyaml ];
+
+  meta = with stdenv.lib; {
+    description = "Configuration manager for python applications";
+    homepage = https://emre.github.io/kaptan/;
+    license = licenses.bsd3;
+    platforms = platforms.linux;
+    maintainers = with maintainers; [ jgeerds ];
+  };
+
+}
diff --git a/pkgs/development/python-modules/kazoo/default.nix b/pkgs/development/python-modules/kazoo/default.nix
new file mode 100644
index 000000000000..ae9d15dd7866
--- /dev/null
+++ b/pkgs/development/python-modules/kazoo/default.nix
@@ -0,0 +1,44 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, six
+, eventlet
+, gevent
+, nose
+, mock
+, coverage
+, pkgs
+}:
+
+buildPythonPackage rec {
+  pname = "kazoo";
+  version = "2.2.1";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "10pb864if9qi2pq9lfb9m8f7z7ss6rml80gf1d9h64lap5crjnjj";
+  };
+
+  propagatedBuildInputs = [ six ];
+  buildInputs = [ eventlet gevent nose mock coverage pkgs.openjdk8 ];
+
+  # not really needed
+  preBuild = ''
+    sed -i '/flake8/d' setup.py
+  '';
+
+  preCheck = ''
+    sed -i 's/test_unicode_auth/noop/' kazoo/tests/test_client.py
+  '';
+
+  # tests take a long time to run and leave threads hanging
+  doCheck = false;
+  #ZOOKEEPER_PATH = "${pkgs.zookeeper}";
+
+  meta = with stdenv.lib; {
+    homepage = "https://kazoo.readthedocs.org";
+    description = "Higher Level Zookeeper Client";
+    license = licenses.asl20;
+  };
+
+}
diff --git a/pkgs/development/python-modules/keepalive/default.nix b/pkgs/development/python-modules/keepalive/default.nix
new file mode 100644
index 000000000000..c53bc25d198d
--- /dev/null
+++ b/pkgs/development/python-modules/keepalive/default.nix
@@ -0,0 +1,24 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+}:
+
+buildPythonPackage rec {
+  pname = "keepalive";
+  version = "0.5";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "3c6b96f9062a5a76022f0c9d41e9ef5552d80b1cadd4fccc1bf8f183ba1d1ec1";
+  };
+
+  # No tests included
+  doCheck = false;
+
+  meta = with stdenv.lib; {
+    description = "An HTTP handler for `urllib2` that supports HTTP 1.1 and keepalive";
+    homepage = "https://github.com/wikier/keepalive";
+    license = licenses.asl20;
+  };
+
+}
diff --git a/pkgs/development/python-modules/keras-applications/default.nix b/pkgs/development/python-modules/keras-applications/default.nix
index f9617f03d8e4..a069c205144d 100644
--- a/pkgs/development/python-modules/keras-applications/default.nix
+++ b/pkgs/development/python-modules/keras-applications/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "Keras_Applications";
-  version = "1.0.5";
+  version = "1.0.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "26a7318b9d8d5be80d75ab08a1284aaf4b94125dd8271b18ca89791e16eb2cfc";
+    sha256 = "a03af60ddc9c5afdae4d5c9a8dd4ca857550e0b793733a5072e0725829b87017";
   };
 
   # Cyclic dependency: keras-applications requires keras, which requires keras-applications
diff --git a/pkgs/development/python-modules/keras-preprocessing/default.nix b/pkgs/development/python-modules/keras-preprocessing/default.nix
index 45ce1d7f61d5..a57b6f7dfa38 100644
--- a/pkgs/development/python-modules/keras-preprocessing/default.nix
+++ b/pkgs/development/python-modules/keras-preprocessing/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "Keras_Preprocessing";
-  version = "1.0.3";
+  version = "1.0.5";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "02ba0a3b31ed89c4b0c21d55ba7d87529097d56f394e3850b6d3c9e6c63ce7ae";
+    sha256 = "ef2e482c4336fcf7180244d06f4374939099daa3183816e82aee7755af35b754";
   };
 
   # Cyclic dependency: keras-preprocessing requires keras, which requires keras-preprocessing
diff --git a/pkgs/development/python-modules/keras/default.nix b/pkgs/development/python-modules/keras/default.nix
index 43f3bd935d24..83ef23282797 100644
--- a/pkgs/development/python-modules/keras/default.nix
+++ b/pkgs/development/python-modules/keras/default.nix
@@ -6,11 +6,11 @@
 
 buildPythonPackage rec {
   pname = "Keras";
-  version = "2.2.2";
+  version = "2.2.4";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "468d98da104ec5c3dbb10c2ef6bb345ab154f6ca2d722d4c250ef4d6105de17a";
+    sha256 = "90b610a3dbbf6d257b20a079eba3fdf2eed2158f64066a7c6f7227023fd60bc9";
   };
 
   checkInputs = [
diff --git a/pkgs/development/python-modules/kerberos/default.nix b/pkgs/development/python-modules/kerberos/default.nix
new file mode 100644
index 000000000000..fdaec0d817df
--- /dev/null
+++ b/pkgs/development/python-modules/kerberos/default.nix
@@ -0,0 +1,24 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, pkgs
+}:
+
+buildPythonPackage rec {
+  pname = "kerberos";
+  version = "1.2.4";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "11q9jhzdl88jh8jgn7cycq034m36g2ncxds7mr3vqkngpcirkx6n";
+  };
+
+  buildInputs = [ pkgs.kerberos ];
+
+  meta = with stdenv.lib; {
+    description = "Kerberos high-level interface";
+    homepage = https://pypi.python.org/pypi/kerberos;
+    license = licenses.asl20;
+  };
+
+}
diff --git a/pkgs/development/python-modules/lazy-object-proxy/default.nix b/pkgs/development/python-modules/lazy-object-proxy/default.nix
new file mode 100644
index 000000000000..f72e71fd4bd6
--- /dev/null
+++ b/pkgs/development/python-modules/lazy-object-proxy/default.nix
@@ -0,0 +1,30 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, pytest
+}:
+
+buildPythonPackage rec {
+  pname = "lazy-object-proxy";
+  version = "1.2.1";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "22ed751a2c63c6cf718674fd7461b1dfc45215bab4751ca32b6c9b8cb2734cb3";
+  };
+
+  buildInputs = [ pytest ];
+  checkPhase = ''
+    py.test tests
+  '';
+
+  # Broken tests. Seem to be fixed upstream according to Travis.
+  doCheck = false;
+
+  meta = with stdenv.lib; {
+    description = "A fast and thorough lazy object proxy";
+    homepage = https://github.com/ionelmc/python-lazy-object-proxy;
+    license = with licenses; [ bsd2 ];
+  };
+
+}
diff --git a/pkgs/development/python-modules/le/default.nix b/pkgs/development/python-modules/le/default.nix
new file mode 100644
index 000000000000..cb0a8bc63481
--- /dev/null
+++ b/pkgs/development/python-modules/le/default.nix
@@ -0,0 +1,30 @@
+{ stdenv
+, buildPythonPackage
+, fetchurl
+, isPy3k
+, simplejson
+, psutil
+}:
+
+buildPythonPackage rec {
+  pname = "le";
+  version = "1.4.29";
+
+  src = fetchurl {
+    url = "https://github.com/logentries/le/archive/v${version}.tar.gz";
+    sha256 = "d29738937cb6e714b6ec2ae74b66b1983482ffd54b4faa40767af18509521d4c";
+  };
+
+  disabled = isPy3k;
+
+  doCheck = false;
+
+  propagatedBuildInputs = [ simplejson psutil ];
+
+  meta = with stdenv.lib; {
+    homepage = https://github.com/rapid7/le;
+    description = "Logentries agent";
+    license = licenses.mit;
+  };
+
+}
diff --git a/pkgs/development/python-modules/ledgerblue/default.nix b/pkgs/development/python-modules/ledgerblue/default.nix
index d324afcc647a..52d7cba3f958 100644
--- a/pkgs/development/python-modules/ledgerblue/default.nix
+++ b/pkgs/development/python-modules/ledgerblue/default.nix
@@ -4,11 +4,11 @@
 
 buildPythonPackage rec {
   pname = "ledgerblue";
-  version = "0.1.19";
+  version = "0.1.20";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "3969b3c375c0f3fb60ff1645621ebf2f39fb697a53851620705f27ed7b283097";
+    sha256 = "fb7ac6389ad13d3c9baa149b527e2cb5798e749e2b6729e5fe8437092ece6164";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/lektor/default.nix b/pkgs/development/python-modules/lektor/default.nix
new file mode 100644
index 000000000000..6eb84043d784
--- /dev/null
+++ b/pkgs/development/python-modules/lektor/default.nix
@@ -0,0 +1,46 @@
+{ stdenv
+, buildPythonPackage
+, fetchgit
+, click
+, watchdog
+, exifread
+, requests
+, mistune
+, inifile
+, Babel
+, jinja2
+, flask
+, pyopenssl
+, ndg-httpsclient
+, pkgs
+}:
+
+buildPythonPackage rec {
+  pname = "lektor";
+  version = "2.3";
+
+  src = fetchgit {
+    url = "https://github.com/lektor/lektor";
+    rev = "refs/tags/${version}";
+    sha256 = "1n0ylh1sbpvi9li3g6a7j7m28njfibn10y6s2gayjxwm6fpphqxy";
+  };
+
+  buildInputs = [ pkgs.glibcLocales ];
+  propagatedBuildInputs = [
+    click watchdog exifread requests mistune inifile Babel jinja2
+    flask pyopenssl ndg-httpsclient
+  ];
+
+  LC_ALL="en_US.UTF-8";
+
+  # No tests included in archive
+  doCheck = false;
+
+  meta = with stdenv.lib; {
+    description = "A static content management system";
+    homepage    = "https://www.getlektor.com/";
+    license     = licenses.bsd0;
+    maintainers = with maintainers; [ vozz ];
+  };
+
+}
diff --git a/pkgs/development/python-modules/libcloud/default.nix b/pkgs/development/python-modules/libcloud/default.nix
new file mode 100644
index 000000000000..90688d8e4ea2
--- /dev/null
+++ b/pkgs/development/python-modules/libcloud/default.nix
@@ -0,0 +1,31 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, mock
+, pycrypto
+}:
+
+buildPythonPackage rec {
+  pname = "apache-libcloud";
+  version = "1.2.1";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "0qlhyz5f32xg8i10biyzqscks8d28vklk63hvj45vzy1amw60kqz";
+  };
+
+  buildInputs = [ mock ];
+  propagatedBuildInputs = [ pycrypto ];
+
+  preConfigure = "cp libcloud/test/secrets.py-dist libcloud/test/secrets.py";
+
+  # failing tests for 26 and 27
+  doCheck = false;
+
+  meta = with stdenv.lib; {
+    description = "A unified interface to many cloud providers";
+    homepage = http://incubator.apache.org/libcloud/;
+    license = licenses.asl20;
+  };
+
+}
diff --git a/pkgs/development/python-modules/librosa/default.nix b/pkgs/development/python-modules/librosa/default.nix
new file mode 100644
index 000000000000..adc740fbcf00
--- /dev/null
+++ b/pkgs/development/python-modules/librosa/default.nix
@@ -0,0 +1,33 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, joblib
+, matplotlib
+, six
+, scikitlearn
+, decorator
+, audioread
+, resampy
+}:
+
+buildPythonPackage rec {
+  pname = "librosa";
+  version = "0.4.3";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "209626c53556ca3922e52d2fae767bf5b398948c867fcc8898f948695dacb247";
+  };
+
+  propagatedBuildInputs = [ joblib matplotlib six scikitlearn decorator audioread resampy ];
+
+  # No tests
+  doCheck = false;
+
+  meta = with stdenv.lib; {
+    description = "Python module for audio and music processing";
+    homepage = http://librosa.github.io/;
+    license = licenses.isc;
+  };
+
+}
diff --git a/pkgs/development/python-modules/libthumbor/default.nix b/pkgs/development/python-modules/libthumbor/default.nix
new file mode 100644
index 000000000000..6c9987a5b8e8
--- /dev/null
+++ b/pkgs/development/python-modules/libthumbor/default.nix
@@ -0,0 +1,29 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, django
+, six
+, pycrypto
+}:
+
+buildPythonPackage rec {
+  pname = "libthumbor";
+  version = "1.3.2";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1vjhszsf8wl9k16wyg2rfjycjnawzl7z8j39bhiysbz5x4lqg91b";
+  };
+
+  buildInputs = [ django ];
+  propagatedBuildInputs = [ six pycrypto ];
+
+  doCheck = false;
+
+  meta = with stdenv.lib; {
+    description = "libthumbor is the python extension to thumbor";
+    homepage = https://github.com/heynemann/libthumbor;
+    license = licenses.mit;
+  };
+
+}
diff --git a/pkgs/development/python-modules/lightblue/default.nix b/pkgs/development/python-modules/lightblue/default.nix
new file mode 100644
index 000000000000..f826bbecb0a3
--- /dev/null
+++ b/pkgs/development/python-modules/lightblue/default.nix
@@ -0,0 +1,27 @@
+{ stdenv
+, buildPythonPackage
+, fetchurl
+, pkgs
+, isPy3k
+}:
+
+buildPythonPackage rec {
+  pname = "lightblue";
+  version = "0.4";
+  disabled = isPy3k; # build fails, 2018-04-11
+
+  src = fetchurl {
+    url = "mirror://sourceforge/${pname}/${pname}-${version}.tar.gz";
+    sha256 = "016h1mlhpqxjj25lcvl4fqc19k8ifmsv6df7rhr12fyfcrp5i14d";
+  };
+
+  buildInputs = [ pkgs.bluez pkgs.openobex ];
+
+  meta = with stdenv.lib; {
+    homepage = http://lightblue.sourceforge.net;
+    description = "Cross-platform Bluetooth API for Python";
+    maintainers = with maintainers; [ leenaars ];
+    license = licenses.gpl3;
+  };
+
+}
diff --git a/pkgs/development/python-modules/lightning/default.nix b/pkgs/development/python-modules/lightning/default.nix
new file mode 100644
index 000000000000..d0e1a10ae008
--- /dev/null
+++ b/pkgs/development/python-modules/lightning/default.nix
@@ -0,0 +1,30 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, pytest
+, jinja2
+, matplotlib
+, numpy
+, requests
+, six
+}:
+
+buildPythonPackage rec {
+  version = "1.2.1";
+  pname = "lightning-python";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "3987d7d4a634bdb6db9bcf212cf4d2f72bab5bc039f4f6cbc02c9d01c4ade792";
+  };
+
+  buildInputs = [ pytest ];
+  propagatedBuildInputs = [ jinja2 matplotlib numpy requests six ];
+
+  meta = with stdenv.lib; {
+    description = "A Python client library for the Lightning data visualization server";
+    homepage = http://lightning-viz.org;
+    license = licenses.mit;
+  };
+
+}
diff --git a/pkgs/development/python-modules/limnoria/default.nix b/pkgs/development/python-modules/limnoria/default.nix
new file mode 100644
index 000000000000..96490c8f0a01
--- /dev/null
+++ b/pkgs/development/python-modules/limnoria/default.nix
@@ -0,0 +1,30 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, pkgs
+}:
+
+buildPythonPackage rec {
+  pname = "limnoria";
+  version = "2016.05.06";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "09kbii5559d09jjb6cryj8rva1050r54dvb67hlcvxhy8g3gr1y3";
+  };
+
+  patchPhase = ''
+    sed -i 's/version=version/version="${version}"/' setup.py
+  '';
+  buildInputs = [ pkgs.git ];
+
+  doCheck = false;
+
+  meta = with stdenv.lib; {
+    description = "A modified version of Supybot, an IRC bot";
+    homepage = http://supybot.fr.cr;
+    license = licenses.bsd3;
+    maintainers = with maintainers; [ goibhniu ];
+  };
+
+}
diff --git a/pkgs/development/python-modules/linode/default.nix b/pkgs/development/python-modules/linode/default.nix
new file mode 100644
index 000000000000..d0c8b0ff7943
--- /dev/null
+++ b/pkgs/development/python-modules/linode/default.nix
@@ -0,0 +1,25 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, requests
+}:
+
+buildPythonPackage rec {
+  pname = "linode";
+  version = "0.4";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "db3c2a7fab8966d903a63f16c515bff241533e4ef2d746aa7aae4a49bba5e573";
+  };
+
+  propagatedBuildInputs = [ requests ];
+
+  meta = with stdenv.lib; {
+    homepage = "https://github.com/ghickman/linode";
+    description = "A thin python wrapper around Linode's API";
+    license = licenses.mit;
+    maintainers = with maintainers; [ nslqqq ];
+  };
+
+}
diff --git a/pkgs/development/python-modules/livestreamer-curses/default.nix b/pkgs/development/python-modules/livestreamer-curses/default.nix
new file mode 100644
index 000000000000..bf3b2cc1164c
--- /dev/null
+++ b/pkgs/development/python-modules/livestreamer-curses/default.nix
@@ -0,0 +1,26 @@
+{ stdenv
+, buildPythonPackage
+, fetchurl
+, isPyPy
+, livestreamer
+}:
+
+buildPythonPackage rec {
+  version = "1.5.2";
+  pname = "livestreamer-curses";
+  disabled = isPyPy;
+
+  src = fetchurl {
+    url = "https://github.com/gapato/livestreamer-curses/archive/v${version}.tar.gz";
+    sha256 = "1v49sym6mrci9dxy0a7cpbp4bv6fg2ijj6rwk4wzg18c2x4qzkhn";
+  };
+
+  propagatedBuildInputs = [ livestreamer ];
+
+  meta = with stdenv.lib; {
+    homepage = https://github.com/gapato/livestreamer-curses;
+    description = "Curses frontend for livestreamer";
+    license = licenses.mit;
+  };
+
+}
diff --git a/pkgs/development/python-modules/livestreamer/default.nix b/pkgs/development/python-modules/livestreamer/default.nix
new file mode 100644
index 000000000000..94394c11e04e
--- /dev/null
+++ b/pkgs/development/python-modules/livestreamer/default.nix
@@ -0,0 +1,44 @@
+{ stdenv
+, buildPythonPackage
+, fetchurl
+, pkgs
+, isPyPy
+, pycrypto
+, requests
+, singledispatch
+, futures
+, isPy27
+, isPy33
+}:
+
+buildPythonPackage rec {
+  version = "1.12.2";
+  pname = "livestreamer";
+  disabled = isPyPy;
+
+  src = pkgs.fetchurl {
+    url = "https://github.com/chrippa/livestreamer/archive/v${version}.tar.gz";
+    sha256 = "1fp3d3z2grb1ls97smjkraazpxnvajda2d1g1378s6gzmda2jvjd";
+  };
+
+  buildInputs = [ pkgs.makeWrapper ];
+
+  propagatedBuildInputs = [ pkgs.rtmpdump pycrypto requests ]
+    ++ stdenv.lib.optionals isPy27 [ singledispatch futures ]
+    ++ stdenv.lib.optionals isPy33 [ singledispatch ];
+
+  postInstall = ''
+    wrapProgram $out/bin/livestreamer --prefix PATH : ${pkgs.rtmpdump}/bin
+  '';
+
+  meta = with stdenv.lib; {
+    homepage = http://livestreamer.tanuki.se;
+    description = ''
+      Livestreamer is CLI program that extracts streams from various
+      services and pipes them into a video player of choice.
+    '';
+    license = licenses.bsd2;
+    maintainers = with maintainers; [ fuuzetsu ];
+  };
+
+}
diff --git a/pkgs/development/python-modules/llfuse/default.nix b/pkgs/development/python-modules/llfuse/default.nix
index 7eac54d84d87..78daa85ea806 100644
--- a/pkgs/development/python-modules/llfuse/default.nix
+++ b/pkgs/development/python-modules/llfuse/default.nix
@@ -4,12 +4,12 @@
 
 buildPythonPackage rec {
   pname = "llfuse";
-  version = "1.3.4";
+  version = "1.3.5";
   name = pname + "-" + version;
 
   src = fetchurl {
     url = "mirror://pypi/l/llfuse/${name}.tar.bz2";
-    sha256 = "50396c5f3c49c3145e696e5b62df4fcca8b66634788020fba7b6932a858c78c2";
+    sha256 = "6e412a3d9be69162d49b8a4d6fb3c343d1c1fba847f4535d229e0ece2548ead8";
   };
 
   nativeBuildInputs = [ pkgconfig ];
diff --git a/pkgs/development/python-modules/lmdb/default.nix b/pkgs/development/python-modules/lmdb/default.nix
new file mode 100644
index 000000000000..d46b51e27d3f
--- /dev/null
+++ b/pkgs/development/python-modules/lmdb/default.nix
@@ -0,0 +1,26 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, isPy3k
+}:
+
+buildPythonPackage rec {
+  pname = "lmdb";
+  version = "0.92";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "01nw6r08jkipx6v92kw49z34wmwikrpvc5j9xawdiyg1n2526wrx";
+  };
+
+  # Some sort of mysterious failure with lmdb.tool
+  doCheck = !isPy3k;
+
+  meta = with stdenv.lib; {
+    description = "Universal Python binding for the LMDB 'Lightning' Database";
+    homepage = "https://github.com/dw/py-lmdb";
+    license = licenses.openldap;
+    maintainers = with maintainers; [ copumpkin ];
+  };
+
+}
diff --git a/pkgs/development/python-modules/logilab_astng/default.nix b/pkgs/development/python-modules/logilab_astng/default.nix
new file mode 100644
index 000000000000..53284d122287
--- /dev/null
+++ b/pkgs/development/python-modules/logilab_astng/default.nix
@@ -0,0 +1,24 @@
+{ stdenv
+, buildPythonPackage
+, fetchurl
+, logilab_common
+}:
+
+buildPythonPackage rec {
+  pname = "logilab-astng";
+  version = "0.24.3";
+
+  src = fetchurl {
+    url = "http://download.logilab.org/pub/astng/${pname}-${version}.tar.gz";
+    sha256 = "0np4wpxyha7013vkkrdy54dvnil67gzi871lg60z8lap0l5h67wn";
+  };
+
+  propagatedBuildInputs = [ logilab_common ];
+
+  meta = with stdenv.lib; {
+    homepage = https://www.logilab.org/project/logilab-astng;
+    description = "Python Abstract Syntax Tree New Generation";
+    license = licenses.lgpl2;
+  };
+
+}
diff --git a/pkgs/development/python-modules/logutils/default.nix b/pkgs/development/python-modules/logutils/default.nix
new file mode 100644
index 000000000000..d6595b19db6f
--- /dev/null
+++ b/pkgs/development/python-modules/logutils/default.nix
@@ -0,0 +1,21 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+}:
+
+buildPythonPackage rec {
+  pname = "logutils";
+  version = "0.3.3";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "173w55fg3hp5dhx7xvssmgqkcv5fjlaik11w5dah2fxygkjvhhj0";
+  };
+
+  meta = with stdenv.lib; {
+    description = "Logging utilities";
+    homepage = http://code.google.com/p/logutils/;
+    license = licenses.bsd0;
+  };
+
+}
diff --git a/pkgs/development/python-modules/lpod/default.nix b/pkgs/development/python-modules/lpod/default.nix
new file mode 100644
index 000000000000..dd40ac851865
--- /dev/null
+++ b/pkgs/development/python-modules/lpod/default.nix
@@ -0,0 +1,31 @@
+{ stdenv
+, buildPythonPackage
+, fetchFromGitHub
+, lxml
+, docutils
+, pillow
+, isPy3k
+}:
+
+buildPythonPackage rec {
+  version = "1.1.7";
+  pname = "python-lpod";
+  # lpod library currently does not support Python 3.x
+  disabled = isPy3k;
+
+  propagatedBuildInputs = [ lxml docutils pillow ];
+
+  src = fetchFromGitHub {
+    owner = "lpod";
+    repo = "lpod-python";
+    rev = "dee32120ee582ff337b0c52a95a9a87cca71fd67";
+    sha256 = "1mikvzp27wxkzpr2lii4wg1hhx8h610agckqynvsrdc8v3nw9ciw";
+  };
+
+  meta = with stdenv.lib; {
+    homepage = https://github.com/lpod/lpod-python/;
+    description = "Library implementing the ISO/IEC 26300 OpenDocument Format standard (ODF) ";
+    license = licenses.gpl3;
+  };
+
+}
diff --git a/pkgs/development/python-modules/lsi/default.nix b/pkgs/development/python-modules/lsi/default.nix
new file mode 100644
index 000000000000..ebf98d9e7b26
--- /dev/null
+++ b/pkgs/development/python-modules/lsi/default.nix
@@ -0,0 +1,29 @@
+{ stdenv
+, buildPythonPackage
+, isPy3k
+, fetchPypi
+, colored
+, boto
+, pkgs
+}:
+
+buildPythonPackage rec {
+  pname = "lsi";
+  version = "0.2.2";
+  disabled = isPy3k;
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "0429iilb06yhsmvj3xp6wyhfh1rp4ndxlhwrm80r97z0w7plrk94";
+  };
+
+  propagatedBuildInputs = [ colored boto pkgs.openssh pkgs.which ];
+
+  meta = with stdenv.lib; {
+    description = "CLI for querying and SSHing onto AWS EC2 instances";
+    homepage = https://github.com/NarrativeScience/lsi;
+    maintainers = [maintainers.adnelson];
+    license = licenses.mit;
+  };
+
+}
diff --git a/pkgs/development/python-modules/lxc/default.nix b/pkgs/development/python-modules/lxc/default.nix
new file mode 100644
index 000000000000..a078d33a8895
--- /dev/null
+++ b/pkgs/development/python-modules/lxc/default.nix
@@ -0,0 +1,29 @@
+{ stdenv
+, buildPythonPackage
+, fetchFromGitHub
+, isPy3k
+, pkgs
+}:
+
+buildPythonPackage rec {
+  pname = "python-lxc-unstable";
+  version = "2016-08-25";
+  disabled = isPy3k;
+
+  src = fetchFromGitHub {
+    owner = "lxc";
+    repo = "python2-lxc";
+    rev = "0553f05d23b56b59bf3015fa5e45bfbfab9021ef";
+    sha256 = "0p9kb20xvq91gx2wfs3vppb7vsp8kmd90i3q95l4nl1y4aismdn4";
+  };
+
+  buildInputs = [ pkgs.lxc ];
+
+  meta = with stdenv.lib; {
+    description = "Out of tree python 2.7 binding for liblxc";
+    homepage = https://github.com/lxc/python2-lxc;
+    license = licenses.lgpl2;
+    maintainers = with maintainers; [ mic92 ];
+  };
+
+}
diff --git a/pkgs/development/python-modules/lxml/default.nix b/pkgs/development/python-modules/lxml/default.nix
index 3778098922a8..5672fce602e7 100644
--- a/pkgs/development/python-modules/lxml/default.nix
+++ b/pkgs/development/python-modules/lxml/default.nix
@@ -7,11 +7,11 @@
 
 buildPythonPackage rec {
   pname = "lxml";
-  version = "4.2.4";
+  version = "4.2.5";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "e2afbe403090f5893e254958d02875e0732975e73c4c0cdd33c1f009a61963ca";
+    sha256 = "36720698c29e7a9626a0dc802ef8885f8f0239bfd1689628ecd459a061f2807f";
   };
 
   buildInputs = [ libxml2 libxslt ];
diff --git a/pkgs/development/python-modules/m2crypto/default.nix b/pkgs/development/python-modules/m2crypto/default.nix
new file mode 100644
index 000000000000..87a74c79f553
--- /dev/null
+++ b/pkgs/development/python-modules/m2crypto/default.nix
@@ -0,0 +1,31 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, pkgs
+}:
+
+
+buildPythonPackage rec {
+  version = "0.24.0";
+  pname = "M2Crypto";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1s2y0pf2zg7xf4nfwrw7zhwbk615r5a7bgi5wwkwzh6jl50n99c0";
+  };
+
+  buildInputs = [ pkgs.swig2 pkgs.openssl ];
+
+  preConfigure = ''
+    substituteInPlace setup.py --replace "self.openssl = '/usr'" "self.openssl = '${pkgs.openssl.dev}'"
+  '';
+
+  doCheck = false; # another test that depends on the network.
+
+  meta = with stdenv.lib; {
+    description = "A Python crypto and SSL toolkit";
+    homepage = http://chandlerproject.org/Projects/MeTooCrypto;
+    license = licenses.mit;
+  };
+
+}
diff --git a/pkgs/development/python-modules/magic/default.nix b/pkgs/development/python-modules/magic/default.nix
new file mode 100644
index 000000000000..41c932ed1117
--- /dev/null
+++ b/pkgs/development/python-modules/magic/default.nix
@@ -0,0 +1,28 @@
+{ stdenv
+, buildPythonPackage
+, pkgs
+}:
+
+buildPythonPackage rec {
+  name = "${pkgs.file.name}";
+
+  src = pkgs.file.src;
+
+  patchPhase = ''
+    substituteInPlace python/magic.py --replace "find_library('magic')" "'${pkgs.file}/lib/libmagic${stdenv.hostPlatform.extensions.sharedLibrary}'"
+  '';
+
+  buildInputs = [ pkgs.file ];
+
+  preConfigure = "cd python";
+
+  # No test suite
+  doCheck = false;
+
+  meta = with stdenv.lib; {
+    description = "A Python wrapper around libmagic";
+    homepage = http://www.darwinsys.com/file/;
+    license = licenses.lgpl2;
+  };
+
+}
diff --git a/pkgs/development/python-modules/mailchimp/default.nix b/pkgs/development/python-modules/mailchimp/default.nix
new file mode 100644
index 000000000000..b9640a4ab5d5
--- /dev/null
+++ b/pkgs/development/python-modules/mailchimp/default.nix
@@ -0,0 +1,29 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, docopt
+, requests
+}:
+
+buildPythonPackage rec {
+  version = "2.0.9";
+  pname = "mailchimp";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "0351ai0jqv3dzx0xxm1138sa7mb42si6xfygl5ak8wnfc95ff770";
+  };
+
+  buildInputs = [ docopt ];
+  propagatedBuildInputs = [ requests ];
+  patchPhase = ''
+    sed -i 's/==/>=/' setup.py
+  '';
+
+  meta = with stdenv.lib; {
+    description = "A CLI client and Python API library for the MailChimp email platform";
+    homepage = "http://apidocs.mailchimp.com/api/2.0/";
+    license = licenses.mit;
+  };
+
+}
diff --git a/pkgs/development/python-modules/manuel/default.nix b/pkgs/development/python-modules/manuel/default.nix
new file mode 100644
index 000000000000..1030ee215562
--- /dev/null
+++ b/pkgs/development/python-modules/manuel/default.nix
@@ -0,0 +1,25 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, six
+, zope_testing
+}:
+
+buildPythonPackage rec {
+  pname = "manuel";
+  version = "1.8.0";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1diyj6a8bvz2cdf9m0g2bbx9z2yjjnn3ylbg1zinpcjj6vldfx59";
+  };
+
+  propagatedBuildInputs = [ six zope_testing ];
+
+  meta = with stdenv.lib; {
+    description = "A documentation builder";
+    homepage = https://pypi.python.org/pypi/manuel;
+    license = licenses.zpl20;
+  };
+
+}
diff --git a/pkgs/development/python-modules/mapsplotlib/default.nix b/pkgs/development/python-modules/mapsplotlib/default.nix
new file mode 100644
index 000000000000..861f3069bb02
--- /dev/null
+++ b/pkgs/development/python-modules/mapsplotlib/default.nix
@@ -0,0 +1,32 @@
+{ stdenv
+, buildPythonPackage
+, isPy3k
+, fetchPypi
+, matplotlib
+, scipy
+, pandas
+, requests
+, pillow
+}:
+
+buildPythonPackage rec {
+  pname = "mapsplotlib";
+  version = "1.0.6";
+
+  disabled = isPy3k;
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "09gpws3x0jd88n636baxx5izjffrpjy4j6jl8l7vj29yzvrdr2bp";
+  };
+
+  propagatedBuildInputs = [ matplotlib scipy pandas requests pillow ];
+
+  meta = with stdenv.lib; {
+    description = "Custom Python plots on a Google Maps background";
+    homepage = https://github.com/tcassou/mapsplotlib;
+    license = licenses.mit;
+    maintainers = [ maintainers.rob ];
+  };
+
+}
diff --git a/pkgs/development/python-modules/markdown-macros/default.nix b/pkgs/development/python-modules/markdown-macros/default.nix
new file mode 100644
index 000000000000..98dce9130464
--- /dev/null
+++ b/pkgs/development/python-modules/markdown-macros/default.nix
@@ -0,0 +1,40 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, fetchpatch
+, markdown
+}:
+
+buildPythonPackage rec {
+  pname = "markdown-macros";
+  version = "0.1.2";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1lzvrb7nci22yp21ab2qqc9p0fhkazqj29vw0wln2r4ckb2nbawv";
+  };
+
+  patches = [
+    # Fixes a bug with markdown>2.4
+    (fetchpatch {
+      url = "https://github.com/wnielson/markdown-macros/pull/1.patch";
+      sha256 = "17njbgq2srzkf03ar6yn92frnsbda3g45cdi529fdh0x8mmyxci0";
+    })
+  ];
+
+  prePatch = ''
+    substituteInPlace setup.py --replace "distribute" "setuptools"
+  '';
+
+  propagatedBuildInputs = [ markdown ];
+
+  doCheck = false;
+
+  meta = with stdenv.lib; {
+    description = "An extension for python-markdown that makes writing trac-like macros easy";
+    homepage = https://github.com/wnielson/markdown-macros;
+    license = licenses.mit;
+    maintainers = [ maintainers.abigailbuccaneer ];
+  };
+
+}
diff --git a/pkgs/development/python-modules/markdown2/default.nix b/pkgs/development/python-modules/markdown2/default.nix
index f49b2630b6c7..a07e0b14fdce 100644
--- a/pkgs/development/python-modules/markdown2/default.nix
+++ b/pkgs/development/python-modules/markdown2/default.nix
@@ -2,12 +2,12 @@
 
 buildPythonPackage rec {
   pname = "markdown2";
-  version = "2.3.5";
+  version = "2.3.6";
 
   src = fetchPypi {
     inherit pname version;
     extension = "zip";
-    sha256 = "8bb9a24eb2aa02f1427aabe46483f0f0215ab18c8a345315ae8e2ee3c3a09c03";
+    sha256 = "08a124043aa0ad36ba2136239547d5011a2b770278abb11a5609611e0040ea05";
   };
 
   meta = with stdenv.lib; {
diff --git a/pkgs/development/python-modules/markupsafe/default.nix b/pkgs/development/python-modules/markupsafe/default.nix
new file mode 100644
index 000000000000..069b71de00d3
--- /dev/null
+++ b/pkgs/development/python-modules/markupsafe/default.nix
@@ -0,0 +1,22 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+}:
+
+buildPythonPackage rec {
+  pname = "MarkupSafe";
+  version = "1.0";
+
+ src = fetchPypi {
+    inherit pname version;
+    sha256 = "0rdn1s8x9ni7ss8rfiacj7x1085lx8mh2zdwqslnw8xc3l4nkgm6";
+  };
+
+  meta = with stdenv.lib; {
+    description = "Implements a XML/HTML/XHTML Markup safe string";
+    homepage = http://dev.pocoo.org;
+    license = licenses.bsd3;
+    maintainers = with maintainers; [ domenkozar garbas ];
+  };
+
+}
diff --git a/pkgs/development/python-modules/marshmallow/default.nix b/pkgs/development/python-modules/marshmallow/default.nix
index 20543faeb16b..cd4e86d4687a 100644
--- a/pkgs/development/python-modules/marshmallow/default.nix
+++ b/pkgs/development/python-modules/marshmallow/default.nix
@@ -4,7 +4,7 @@
 
 buildPythonPackage rec {
   pname = "marshmallow";
-  version = "2.15.4";
+  version = "2.15.6";
 
   meta = {
     homepage = "https://github.com/marshmallow-code/marshmallow";
@@ -17,7 +17,7 @@ buildPythonPackage rec {
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0f3776aa5b5405f6000c9304841abe6d4d708bb08207fc89a5ecd86622ec9e54";
+    sha256 = "485ac6ed0dff5e1af6ea1e3a54425a448968f581b065424c89a5375e4d4866fd";
   };
 
   propagatedBuildInputs = [ dateutil simplejson ];
diff --git a/pkgs/development/python-modules/mathics/default.nix b/pkgs/development/python-modules/mathics/default.nix
new file mode 100644
index 000000000000..b20cc0709092
--- /dev/null
+++ b/pkgs/development/python-modules/mathics/default.nix
@@ -0,0 +1,50 @@
+{ stdenv
+, buildPythonPackage
+, fetchFromGitHub
+, django
+, python
+, cython
+, sympy
+, ply
+, mpmath
+, dateutil
+, colorama
+, six
+, pexpect
+}:
+
+if (stdenv.lib.versionOlder django.version "1.8") ||
+   (stdenv.lib.versionAtLeast django.version "1.9")
+   then throw "mathics only supports django-1.8.x"
+   else buildPythonPackage rec {
+  pname = "mathics";
+  version = "0.9";
+
+  src = fetchFromGitHub {
+    owner = "mathics";
+    repo = "Mathics";
+    rev = "v${version}";
+    sha256 = "0xzz7j8xskj5y6as178mjmm0i2xbhd4q4mwmdnvghpd2aqq3qx1c";
+  };
+
+  buildInputs = [ pexpect ];
+
+  prePatch = ''
+    substituteInPlace setup.py --replace "sympy==0.7.6" "sympy"
+  '';
+
+  postFixup = ''
+    wrapPythonProgramsIn $out/bin $out
+    patchPythonScript $out/${python.sitePackages}/mathics/manage.py
+  '';
+
+  propagatedBuildInputs = [ cython sympy django ply mpmath dateutil colorama six ];
+
+  meta = with stdenv.lib; {
+    description = "A general-purpose computer algebra system";
+    homepage = http://www.mathics.org;
+    license = licenses.gpl3;
+    maintainers = [ maintainers.benley ];
+  };
+
+}
diff --git a/pkgs/development/python-modules/mechanize/default.nix b/pkgs/development/python-modules/mechanize/default.nix
new file mode 100644
index 000000000000..d797190cb896
--- /dev/null
+++ b/pkgs/development/python-modules/mechanize/default.nix
@@ -0,0 +1,28 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, html5lib
+, isPy3k
+}:
+
+buildPythonPackage rec {
+  pname = "mechanize";
+  version = "0.3.5";
+  disabled = isPy3k;
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "0rki9nl4y42q694parafcsdcdqvkdjckrbg6n0691302lfsrkyfl";
+  };
+
+  propagatedBuildInputs = [ html5lib ];
+
+  doCheck = false;
+
+  meta = with stdenv.lib; {
+    description = "Stateful programmatic web browsing in Python";
+    homepage = http://wwwsearch.sourceforge.net/;
+    license = "BSD-style";
+  };
+
+}
diff --git a/pkgs/development/python-modules/meld3/default.nix b/pkgs/development/python-modules/meld3/default.nix
new file mode 100644
index 000000000000..12b518484bc2
--- /dev/null
+++ b/pkgs/development/python-modules/meld3/default.nix
@@ -0,0 +1,23 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+}:
+
+buildPythonPackage rec {
+  pname = "meld3";
+  version = "1.0.0";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "57b41eebbb5a82d4a928608962616442e239ec6d611fe6f46343e765e36f0b2b";
+  };
+
+  doCheck = false;
+
+  meta = with stdenv.lib; {
+    description = "An HTML/XML templating engine used by supervisor";
+    homepage = https://github.com/supervisor/meld3;
+    license = licenses.free;
+  };
+
+}
diff --git a/pkgs/development/python-modules/memcached/default.nix b/pkgs/development/python-modules/memcached/default.nix
new file mode 100644
index 000000000000..854f7440daa1
--- /dev/null
+++ b/pkgs/development/python-modules/memcached/default.nix
@@ -0,0 +1,26 @@
+{ stdenv
+, buildPythonPackage
+, fetchurl
+, fetchPypi
+, isPy3k
+}:
+
+buildPythonPackage rec {
+  pname = "memcached-1.51";
+  version = "1.51";
+
+  src = if isPy3k then fetchPypi {
+    inherit pname version;
+    sha256 = "0na8b369q8fivh3y0nvzbvhh3lgvxiyyv9xp93cnkvwfsr8mkgkw";
+  } else fetchurl {
+    url = "http://ftp.tummy.com/pub/python-memcached/old-releases/python-${pname}-${version}.tar.gz";
+    sha256 = "124s98m6hvxj6x90d7aynsjfz878zli771q96ns767r2mbqn7192";
+  };
+
+  meta = with stdenv.lib; {
+    description = "Python API for communicating with the memcached distributed memory object cache daemon";
+    homepage = http://www.tummy.com/Community/software/python-memcached/;
+    license = licenses.psfl;
+  };
+
+}
diff --git a/pkgs/development/python-modules/memory_profiler/default.nix b/pkgs/development/python-modules/memory_profiler/default.nix
new file mode 100644
index 000000000000..5f40ce0f1aad
--- /dev/null
+++ b/pkgs/development/python-modules/memory_profiler/default.nix
@@ -0,0 +1,24 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+}:
+
+buildPythonPackage rec {
+  pname = "memory_profiler";
+  version = "0.41";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "dce6e931c281662a500b142595517d095267216472c2926e5ec8edab89898d10";
+  };
+
+  # Tests don't import profile
+  doCheck = false;
+
+  meta = with stdenv.lib; {
+    description = "A module for monitoring memory usage of a python program";
+    homepage = https://pypi.python.org/pypi/memory_profiler;
+    license = licenses.bsd3;
+  };
+
+}
diff --git a/pkgs/development/python-modules/mezzanine/default.nix b/pkgs/development/python-modules/mezzanine/default.nix
new file mode 100644
index 000000000000..1a7478b266ab
--- /dev/null
+++ b/pkgs/development/python-modules/mezzanine/default.nix
@@ -0,0 +1,70 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, isPyPy
+, pyflakes
+, pep8
+, django
+, django_contrib_comments
+, filebrowser_safe
+, grappelli_safe
+, bleach
+, tzlocal
+, beautifulsoup4
+, requests
+, requests_oauthlib
+, future
+, pillow
+, chardet
+}:
+
+buildPythonPackage rec {
+  version = "4.3.1";
+  pname = "Mezzanine";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "42c7909953cc5aea91921b47d804b61e14893bf48a2a476ce49a96559a0fa1d3";
+  };
+
+  disabled = isPyPy;
+
+  buildInputs = [ pyflakes pep8 ];
+  propagatedBuildInputs = [ django django_contrib_comments filebrowser_safe grappelli_safe bleach tzlocal beautifulsoup4 requests requests_oauthlib future pillow chardet ];
+
+  # Tests Fail Due to Syntax Warning, Fixed for v3.1.11+
+  doCheck = false;
+  # sed calls will be unecessary in v3.1.11+
+  preConfigure = ''
+    sed -i 's/==/>=/' setup.py
+  '';
+
+  LC_ALL="en_US.UTF-8";
+
+  meta = with stdenv.lib; {
+    description = ''
+      A content management platform built using the Django framework
+    '';
+    longDescription = ''
+      Mezzanine is a powerful, consistent, and flexible content
+      management platform. Built using the Django framework, Mezzanine
+      provides a simple yet highly extensible architecture that
+      encourages diving in and hacking on the code. Mezzanine is BSD
+      licensed and supported by a diverse and active community.
+
+      In some ways, Mezzanine resembles tools such as Wordpress that
+      provide an intuitive interface for managing pages, blog posts,
+      form data, store products, and other types of content. But
+      Mezzanine is also different.  Unlike many other platforms that
+      make extensive use of modules or reusable applications,
+      Mezzanine provides most of its functionality by default. This
+      approach yields a more integrated and efficient platform.
+    '';
+    homepage = http://mezzanine.jupo.org/;
+    downloadPage = https://github.com/stephenmcd/mezzanine/releases;
+    license = licenses.free;
+    maintainers = with maintainers; [ prikhi ];
+    platforms = platforms.linux;
+  };
+
+}
diff --git a/pkgs/development/python-modules/mezzanine/writable_settings.patch b/pkgs/development/python-modules/mezzanine/writable_settings.patch
deleted file mode 100644
index 4b5be7b5950c..000000000000
--- a/pkgs/development/python-modules/mezzanine/writable_settings.patch
+++ /dev/null
@@ -1,21 +0,0 @@
-diff -Nur mezzanine-3.1.10/mezzanine/bin/mezzanine_project.py mezzanine-3.1.10-patched/mezzanine/bin/mezzanine_project.py
---- mezzanine-3.1.10/mezzanine/bin/mezzanine_project.py	2014-08-30 07:12:19.000000000 +0200
-+++ mezzanine-3.1.10-patched/mezzanine/bin/mezzanine_project.py	2016-10-31 14:47:30.982401818 +0100
-@@ -5,6 +5,7 @@
- from distutils.dir_util import copy_tree
- from optparse import OptionParser
- import os
-+import stat
- from shutil import move
- from uuid import uuid4
- 
-@@ -61,6 +62,9 @@
-         copy_tree(os.path.join(package_path, "project_template"), project_path)
-         move(local_settings_path + ".template", local_settings_path)
- 
-+    os.chmod(local_settings_path,
-+             os.stat(local_settings_path).st_mode | stat.S_IWRITE)
-+
-     # Generate a unique SECRET_KEY for the project's setttings module.
-     with open(local_settings_path, "r") as f:
-         data = f.read()
diff --git a/pkgs/development/python-modules/micawber/default.nix b/pkgs/development/python-modules/micawber/default.nix
index 5e3afe05ea79..3425440390dd 100644
--- a/pkgs/development/python-modules/micawber/default.nix
+++ b/pkgs/development/python-modules/micawber/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "micawber";
-  version = "0.3.5";
+  version = "0.3.8";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0pnq6j8f144virhri0drgf0058x6qcxfd5yrb0ynbwr8djh326yn";
+    sha256 = "2e128db870cf3a351f5c680b6d1ae7e097a7ff6c70c8ba78c7d3be8e3d3c20bd";
   };
 
   propagatedBuildInputs = [ beautifulsoup4 ];
diff --git a/pkgs/development/python-modules/minidb/default.nix b/pkgs/development/python-modules/minidb/default.nix
new file mode 100644
index 000000000000..209ecf998ccf
--- /dev/null
+++ b/pkgs/development/python-modules/minidb/default.nix
@@ -0,0 +1,29 @@
+{ stdenv
+, buildPythonPackage
+, fetchurl
+, nose
+}:
+
+buildPythonPackage rec {
+  pname = "minidb";
+  version = "2.0.2";
+
+  src = fetchurl {
+    url = "https://github.com/thp/minidb/archive/${version}.tar.gz";
+    sha256 = "17rvkpq8v7infvbgsi48vnxamhxb3f635nqn0sln7yyvh4i9k8a0";
+  };
+
+  checkInputs = [ nose ];
+
+  checkPhase = ''
+    nosetests test
+  '';
+
+  meta = with stdenv.lib; {
+    description = "A simple SQLite3-based store for Python objects";
+    homepage = https://thp.io/2010/minidb/;
+    license = stdenv.lib.licenses.isc;
+    maintainers = [ stdenv.lib.maintainers.tv ];
+  };
+
+}
diff --git a/pkgs/development/python-modules/minimock/default.nix b/pkgs/development/python-modules/minimock/default.nix
new file mode 100644
index 000000000000..71409785b77d
--- /dev/null
+++ b/pkgs/development/python-modules/minimock/default.nix
@@ -0,0 +1,26 @@
+{ stdenv
+, buildPythonPackage
+, fetchurl
+, nose
+}:
+
+buildPythonPackage rec {
+  version = "1.2.8";
+  pname = "minimock";
+
+  src = fetchurl {
+    url = "https://bitbucket.org/jab/minimock/get/${version}.zip";
+    sha256 = "c88fa8a7120623f23990a7f086a9657f6ced09025a55e3be8649a30b4945441a";
+  };
+
+  buildInputs = [ nose ];
+
+  checkPhase = "./test";
+
+  meta = with stdenv.lib; {
+    description = "A minimalistic mocking library for python";
+    homepage = https://pypi.python.org/pypi/MiniMock;
+    license = licenses.mit;
+  };
+
+}
diff --git a/pkgs/development/python-modules/mixpanel/default.nix b/pkgs/development/python-modules/mixpanel/default.nix
new file mode 100644
index 000000000000..6a99913c6c8b
--- /dev/null
+++ b/pkgs/development/python-modules/mixpanel/default.nix
@@ -0,0 +1,30 @@
+{ stdenv
+, buildPythonPackage
+, fetchzip
+, pytest
+, mock
+, six
+, isPy3k
+}:
+
+buildPythonPackage rec {
+  version = "4.0.2";
+  pname = "mixpanel";
+  disabled = isPy3k;
+
+  src = fetchzip {
+    url = "https://github.com/mixpanel/mixpanel-python/archive/${version}.zip";
+    sha256 = "0yq1bcsjzsz7yz4rp69izsdn47rvkld4wki2xmapp8gg2s9i8709";
+  };
+
+  buildInputs = [ pytest mock ];
+  propagatedBuildInputs = [ six ];
+  checkPhase = "py.test tests.py";
+
+  meta = with stdenv.lib; {
+    homepage = https://github.com/mixpanel/mixpanel-python;
+    description = ''This is the official Mixpanel Python library'';
+    license = licenses.asl20;
+  };
+
+}
diff --git a/pkgs/development/python-modules/mock/default.nix b/pkgs/development/python-modules/mock/default.nix
new file mode 100644
index 000000000000..142383b8db7e
--- /dev/null
+++ b/pkgs/development/python-modules/mock/default.nix
@@ -0,0 +1,33 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, unittest2
+, funcsigs
+, six
+, pbr
+, python
+}:
+
+buildPythonPackage rec {
+  pname = "mock";
+  version = "2.0.0";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1flbpksir5sqrvq2z0dp8sl4bzbadg21sj4d42w3klpdfvgvcn5i";
+  };
+
+  buildInputs = [ unittest2 ];
+  propagatedBuildInputs = [ funcsigs six pbr ];
+
+  checkPhase = ''
+    ${python.interpreter} -m unittest discover
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Mock objects for Python";
+    homepage = http://python-mock.sourceforge.net/;
+    license = stdenv.lib.licenses.bsd2;
+  };
+
+}
diff --git a/pkgs/development/python-modules/modestmaps/default.nix b/pkgs/development/python-modules/modestmaps/default.nix
new file mode 100644
index 000000000000..f0918e4bdb6f
--- /dev/null
+++ b/pkgs/development/python-modules/modestmaps/default.nix
@@ -0,0 +1,26 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, pillow
+, isPy27
+}:
+
+buildPythonPackage rec {
+  pname = "ModestMaps";
+  version = "1.4.6";
+  disabled = !isPy27;
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "0vyi1m9q4pc34i6rq5agb4x3qicx5sjlbxwmxfk70k2l5mnbjca3";
+  };
+
+  propagatedBuildInputs = [ pillow ];
+
+  meta = with stdenv.lib; {
+    description = "A library for building interactive maps";
+    homepage = http://modestmaps.com;
+    license = stdenv.lib.licenses.bsd3;
+  };
+
+}
diff --git a/pkgs/development/python-modules/monotonic/default.nix b/pkgs/development/python-modules/monotonic/default.nix
new file mode 100644
index 000000000000..b736301e5efb
--- /dev/null
+++ b/pkgs/development/python-modules/monotonic/default.nix
@@ -0,0 +1,28 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+}:
+
+buildPythonPackage rec {
+  pname = "monotonic";
+  version = "1.3";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "06vw7jwq96106plhlc5vz1v1xvjismdgw9wjyzvzf0ylglnrwiib";
+  };
+
+  __propagatedImpureHostDeps = stdenv.lib.optional stdenv.isDarwin "/usr/lib/libc.dylib";
+
+  patchPhase = stdenv.lib.optionalString stdenv.isLinux ''
+    substituteInPlace monotonic.py --replace \
+      "ctypes.util.find_library('c')" "'${stdenv.glibc.out}/lib/libc.so.6'"
+  '';
+
+  meta = with stdenv.lib; {
+    description = "An implementation of time.monotonic() for Python 2 & < 3.3";
+    homepage = https://github.com/atdt/monotonic;
+    license = licenses.asl20;
+  };
+
+}
diff --git a/pkgs/development/python-modules/moto/default.nix b/pkgs/development/python-modules/moto/default.nix
index f9d1fee8973b..4a32c5e3e373 100644
--- a/pkgs/development/python-modules/moto/default.nix
+++ b/pkgs/development/python-modules/moto/default.nix
@@ -4,11 +4,11 @@
 
 buildPythonPackage rec {
   pname = "moto";
-  version = "1.3.5";
+  version = "1.3.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "52426f2567e51ba73fdc7c7d617236b7e7918dca2421caabe13e5290942b53d8";
+    sha256 = "58fe0a0d55cbd9a001c02c146c15790cfcebf010c6648cb9990e6c3204709cbb";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/moviepy/default.nix b/pkgs/development/python-modules/moviepy/default.nix
new file mode 100644
index 000000000000..63613b516868
--- /dev/null
+++ b/pkgs/development/python-modules/moviepy/default.nix
@@ -0,0 +1,29 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, numpy
+, decorator
+, imageio
+, tqdm
+}:
+
+buildPythonPackage rec {
+  pname = "moviepy";
+  version = "0.2.2.11";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "d937d817e534efc54eaee2fc4c0e70b48fcd81e1528cd6425f22178704681dc3";
+  };
+
+  # No tests
+  doCheck = false;
+  propagatedBuildInputs = [ numpy decorator imageio tqdm ];
+
+  meta = with stdenv.lib; {
+    description = "Video editing with Python";
+    homepage = http://zulko.github.io/moviepy/;
+    license = licenses.mit;
+  };
+
+}
diff --git a/pkgs/development/python-modules/mox/default.nix b/pkgs/development/python-modules/mox/default.nix
new file mode 100644
index 000000000000..d9b5a5aa111e
--- /dev/null
+++ b/pkgs/development/python-modules/mox/default.nix
@@ -0,0 +1,24 @@
+{ stdenv
+, buildPythonPackage
+, fetchurl
+}:
+
+buildPythonPackage rec {
+  pname = "mox";
+  version = "0.5.3";
+
+  src = fetchurl {
+    url = "http://pymox.googlecode.com/files/${pname}-${version}.tar.gz";
+    sha256 = "4d18a4577d14da13d032be21cbdfceed302171c275b72adaa4c5997d589a5030";
+  };
+
+  # error: invalid command 'test'
+  doCheck = false;
+
+  meta = with stdenv.lib; {
+    homepage = http://code.google.com/p/pymox/;
+    description = "A mock object framework for Python";
+    license = licenses.asl20;
+  };
+
+}
diff --git a/pkgs/development/python-modules/mozsvc/default.nix b/pkgs/development/python-modules/mozsvc/default.nix
new file mode 100644
index 000000000000..b7fed9e6ad98
--- /dev/null
+++ b/pkgs/development/python-modules/mozsvc/default.nix
@@ -0,0 +1,34 @@
+{ stdenv
+, buildPythonPackage
+, fetchgit
+, fetchurl
+, pyramid
+, simplejson
+, konfig
+}:
+
+buildPythonPackage rec {
+  pname = "mozsvc";
+  version = "0.8";
+
+  src = fetchgit {
+    url = https://github.com/mozilla-services/mozservices.git;
+    rev = "refs/tags/${version}";
+    sha256 = "1zci2ikk83mf7va88c83dr6snfh4ddjqw0lsg3y29qk5nxf80vx2";
+  };
+
+  patches = stdenv.lib.singleton (fetchurl {
+    url = https://github.com/nbp/mozservices/commit/f86c0b0b870cd8f80ce90accde9e16ecb2e88863.diff;
+    sha256 = "1lnghx821f6dqp3pa382ka07cncdz7hq0mkrh44d0q3grvrlrp9n";
+  });
+
+  doCheck = false; # lazy packager
+  propagatedBuildInputs = [ pyramid simplejson konfig ];
+
+  meta = with stdenv.lib; {
+    homepage = https://github.com/mozilla-services/mozservices;
+    description = "Various utilities for Mozilla apps";
+    license = licenses.mpl20;
+  };
+
+}
diff --git a/pkgs/development/python-modules/mpd/default.nix b/pkgs/development/python-modules/mpd/default.nix
new file mode 100644
index 000000000000..48693293458e
--- /dev/null
+++ b/pkgs/development/python-modules/mpd/default.nix
@@ -0,0 +1,23 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, isPy3k
+}:
+
+buildPythonPackage rec {
+  pname = "python-mpd";
+  version = "0.3.0";
+  disabled = isPy3k;
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "02812eba1d2e0f46e37457f5a6fa23ba203622e4bcab0a19b265e66b08cd21b4";
+  };
+
+  meta = with stdenv.lib; {
+    description = "An MPD (Music Player Daemon) client library written in pure Python";
+    homepage = http://jatreuman.indefero.net/p/python-mpd/;
+    license = licenses.gpl3;
+  };
+
+}
diff --git a/pkgs/development/python-modules/mpd2/default.nix b/pkgs/development/python-modules/mpd2/default.nix
new file mode 100644
index 000000000000..3669b8dddbf8
--- /dev/null
+++ b/pkgs/development/python-modules/mpd2/default.nix
@@ -0,0 +1,29 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, mock
+}:
+
+buildPythonPackage rec {
+  pname = "mpd2";
+  version = "0.5.5";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1gfrxf71xll1w6zb69znqg5c9j0g7036fsalkvqprh2id640cl3a";
+  };
+
+  buildInputs = [ mock ];
+  patchPhase = ''
+    sed -i -e '/tests_require/d' \
+        -e 's/cmdclass.*/test_suite="mpd_test",/' setup.py
+  '';
+
+  meta = with stdenv.lib; {
+    description = "A Python client module for the Music Player Daemon";
+    homepage = "https://github.com/Mic92/python-mpd2";
+    license = licenses.lgpl3Plus;
+    maintainers = with maintainers; [ rvl mic92 ];
+  };
+
+}
diff --git a/pkgs/development/python-modules/mpmath/default.nix b/pkgs/development/python-modules/mpmath/default.nix
new file mode 100644
index 000000000000..50e68352e782
--- /dev/null
+++ b/pkgs/development/python-modules/mpmath/default.nix
@@ -0,0 +1,26 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+}:
+
+buildPythonPackage rec {
+  pname = "mpmath";
+  version = "0.19";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "08ijsr4ifrqv3cjc26mkw0dbvyygsa99in376hr4b96ddm1gdpb8";
+  };
+
+  # error: invalid command 'test'
+  doCheck = false;
+
+  meta = with stdenv.lib; {
+    homepage    = http://mpmath.googlecode.com;
+    description = "A pure-Python library for multiprecision floating arithmetic";
+    license     = licenses.bsd3;
+    maintainers = with maintainers; [ lovek323 ];
+    platforms   = platforms.unix;
+  };
+
+}
diff --git a/pkgs/development/python-modules/mpv/default.nix b/pkgs/development/python-modules/mpv/default.nix
new file mode 100644
index 000000000000..cd9ca9451b8b
--- /dev/null
+++ b/pkgs/development/python-modules/mpv/default.nix
@@ -0,0 +1,25 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, pkgs
+}:
+
+buildPythonPackage rec {
+  pname = "mpv";
+  version = "0.1";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "0b9kd70mshdr713f3l1lbnz1q0vlg2y76h5d8liy1bzqm7hjcgfw";
+  };
+
+  buildInputs = [ pkgs.mpv ];
+  patchPhase = "substituteInPlace mpv.py --replace libmpv.so ${pkgs.mpv}/lib/libmpv.so";
+
+  meta = with stdenv.lib; {
+    description = "A python interface to the mpv media player";
+    homepage = "https://github.com/jaseg/python-mpv";
+    license = licenses.agpl3;
+  };
+
+}
diff --git a/pkgs/development/python-modules/msgpack-numpy/default.nix b/pkgs/development/python-modules/msgpack-numpy/default.nix
index e04e9d1e802d..06063fd8b998 100644
--- a/pkgs/development/python-modules/msgpack-numpy/default.nix
+++ b/pkgs/development/python-modules/msgpack-numpy/default.nix
@@ -9,11 +9,11 @@
 
 buildPythonPackage rec {
   pname = "msgpack-numpy";
-  version = "0.4.3.1";
+  version = "0.4.4.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "31fd5dd009bbee7f8b107db8c859e3a0a2793acc196f25ffbbae1e71b4c63ca5";
+    sha256 = "ac15d3a7b9e29d3e10a2683dc00ea495891b9b4cbb502ab0b0d2e516bd0b2eab";
   };
 
   buildInputs = [
diff --git a/pkgs/development/python-modules/msrplib/default.nix b/pkgs/development/python-modules/msrplib/default.nix
new file mode 100644
index 000000000000..32a759a6a49e
--- /dev/null
+++ b/pkgs/development/python-modules/msrplib/default.nix
@@ -0,0 +1,27 @@
+{ stdenv
+, buildPythonPackage
+, fetchdarcs
+, eventlib
+, application
+, gnutls
+}:
+
+buildPythonPackage rec {
+  pname = "python-msrplib";
+  version = "0.19";
+
+  src = fetchdarcs {
+    url = "http://devel.ag-projects.com/repositories/${pname}";
+    rev = "release-${version}";
+    sha256 = "0jqvvssbwzq7bwqn3wrjfnpj8zb558mynn2visnlrcma6b57yhwd";
+  };
+
+  propagatedBuildInputs = [ eventlib application gnutls ];
+
+  meta = with stdenv.lib; {
+    homepage = https://github.com/AGProjects/python-msrplib;
+    description = "Client library for MSRP protocol and its relay extension (RFC 4975 and RFC4976)";
+    license = licenses.lgpl3;
+  };
+
+}
diff --git a/pkgs/development/python-modules/multi_key_dict/default.nix b/pkgs/development/python-modules/multi_key_dict/default.nix
new file mode 100644
index 000000000000..a094b373f8f3
--- /dev/null
+++ b/pkgs/development/python-modules/multi_key_dict/default.nix
@@ -0,0 +1,21 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+}:
+
+buildPythonPackage rec {
+  pname = "multi_key_dict";
+  version = "2.0.3";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "17lkx4rf4waglwbhc31aak0f28c63zl3gx5k5i1iq2m3gb0xxsyy";
+  };
+
+  meta = with stdenv.lib; {
+    description = "multi_key_dict";
+    homepage = "https://github.com/formiaczek/multi_key_dict";
+    license = licenses.mit;
+  };
+
+}
diff --git a/pkgs/development/python-modules/munch/default.nix b/pkgs/development/python-modules/munch/default.nix
new file mode 100644
index 000000000000..490ff9033ed1
--- /dev/null
+++ b/pkgs/development/python-modules/munch/default.nix
@@ -0,0 +1,21 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+}:
+
+buildPythonPackage rec {
+  pname = "munch";
+  version = "2.0.4";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1420683a94f3a2ffc77935ddd28aa9ccb540dd02b75e02ed7ea863db437ab8b2";
+  };
+
+  meta = with stdenv.lib; {
+    description = "A dot-accessible dictionary (a la JavaScript objects)";
+    license = licenses.mit;
+    homepage = https://github.com/Infinidat/munch;
+  };
+
+}
diff --git a/pkgs/development/python-modules/munkres/default.nix b/pkgs/development/python-modules/munkres/default.nix
new file mode 100644
index 000000000000..af69834dd6f6
--- /dev/null
+++ b/pkgs/development/python-modules/munkres/default.nix
@@ -0,0 +1,25 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+}:
+
+buildPythonPackage rec {
+  pname = "munkres";
+  version = "1.0.6";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "c78f803b9b776bfb20a25c9c7bb44adbf0f9202c2024d51aa5969d21e560208d";
+  };
+
+  # error: invalid command 'test'
+  doCheck = false;
+
+  meta = with stdenv.lib; {
+    homepage = http://bmc.github.com/munkres/;
+    description = "Munkres algorithm for the Assignment Problem";
+    license = licenses.bsd3;
+    maintainers = with maintainers; [ domenkozar ];
+  };
+
+}
diff --git a/pkgs/development/python-modules/musicbrainzngs/default.nix b/pkgs/development/python-modules/musicbrainzngs/default.nix
new file mode 100644
index 000000000000..fd8cd516a922
--- /dev/null
+++ b/pkgs/development/python-modules/musicbrainzngs/default.nix
@@ -0,0 +1,27 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, pkgs
+}:
+
+buildPythonPackage rec {
+  pname = "musicbrainzngs";
+  version = "0.5";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "281388ab750d2996e9feca4580fd4215d616a698e02cd6719cb9b8562945c489";
+  };
+
+  buildInputs = [ pkgs.glibcLocales ];
+
+  LC_ALL="en_US.UTF-8";
+
+  meta = with stdenv.lib; {
+    homepage = http://alastair/python-musicbrainz-ngs;
+    description = "Python bindings for musicbrainz NGS webservice";
+    license = licenses.bsd2;
+    maintainers = with maintainers; [ domenkozar ];
+  };
+
+}
diff --git a/pkgs/development/python-modules/mutag/default.nix b/pkgs/development/python-modules/mutag/default.nix
new file mode 100644
index 000000000000..3fbb36a37188
--- /dev/null
+++ b/pkgs/development/python-modules/mutag/default.nix
@@ -0,0 +1,27 @@
+{ stdenv
+, buildPythonPackage
+, fetchgit
+, isPy3k
+, pyparsing
+}:
+
+buildPythonPackage rec {
+  name = "mutag-0.0.2-2ffa0258ca";
+  disabled = ! isPy3k;
+
+  src = fetchgit {
+    url = "https://github.com/aroig/mutag.git";
+    sha256 = "0axdnwdypfd74a9dnw0g25m16xx1yygyl828xy0kpj8gyqdc6gb1";
+    rev = "2ffa0258cadaf79313241f43bf2c1caaf197d9c2";
+  };
+
+  propagatedBuildInputs = [ pyparsing ];
+
+  meta = with stdenv.lib; {
+    homepage = https://github.com/aroig/mutag;
+    description = "A script to change email tags in a mu indexed maildir";
+    license = licenses.gpl3;
+    maintainers = with maintainers; [ ];
+  };
+
+}
diff --git a/pkgs/development/python-modules/muttils/default.nix b/pkgs/development/python-modules/muttils/default.nix
new file mode 100644
index 000000000000..904284e5b332
--- /dev/null
+++ b/pkgs/development/python-modules/muttils/default.nix
@@ -0,0 +1,26 @@
+{ stdenv
+, buildPythonPackage
+, fetchurl
+, isPy3k
+}:
+
+buildPythonPackage rec {
+  pname = "muttils";
+  version = "1.3";
+  disabled = isPy3k;
+
+  src = fetchurl {
+    url = https://www.blacktrash.org/hg/muttils/archive/8bb26094df06.tar.bz2;
+    sha256 = "1a4kxa0fpgg6rdj5p4kggfn8xpniqh8v5kbiaqc6wids02m7kag6";
+  };
+
+  # Tests don't work
+  doCheck = false;
+
+  meta = with stdenv.lib; {
+    description = "Utilities for use with console mail clients, like mutt";
+    homepage = https://www.blacktrash.org/hg/muttils;
+    license = licenses.gpl2Plus;
+  };
+
+}
diff --git a/pkgs/development/python-modules/mwclient/default.nix b/pkgs/development/python-modules/mwclient/default.nix
index 186bc26f002f..3544bd631a54 100644
--- a/pkgs/development/python-modules/mwclient/default.nix
+++ b/pkgs/development/python-modules/mwclient/default.nix
@@ -23,8 +23,7 @@ buildPythonPackage rec {
 
   meta = with stdenv.lib; {
     description = "Python client library to the MediaWiki API";
-    maintainers = with maintainers; [ ];
     license = licenses.mit;
     homepage = https://github.com/mwclient/mwclient;
   };
-}
\ No newline at end of file
+}
diff --git a/pkgs/development/python-modules/mwlib-ext/default.nix b/pkgs/development/python-modules/mwlib-ext/default.nix
new file mode 100644
index 000000000000..cfcbdc2d0ac3
--- /dev/null
+++ b/pkgs/development/python-modules/mwlib-ext/default.nix
@@ -0,0 +1,24 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, isPy3k
+}:
+
+buildPythonPackage rec {
+  version = "0.13.2";
+  pname = "mwlib.ext";
+  disabled = isPy3k;
+
+  src = fetchPypi {
+    inherit pname version;
+    extension = "zip";
+    sha256 = "9229193ee719568d482192d9d913b3c4bb96af7c589d6c31ed4a62caf5054278";
+  };
+
+  meta = with stdenv.lib; {
+    description = "Dependencies for mwlib markup";
+    homepage = "http://pediapress.com/code/";
+    license = licenses.bsd3;
+  };
+
+}
diff --git a/pkgs/development/python-modules/mwlib-rl/default.nix b/pkgs/development/python-modules/mwlib-rl/default.nix
new file mode 100644
index 000000000000..21820d95c7fa
--- /dev/null
+++ b/pkgs/development/python-modules/mwlib-rl/default.nix
@@ -0,0 +1,27 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, mwlib
+, mwlib-ext
+, pygments
+}:
+
+buildPythonPackage rec {
+  version = "0.14.5";
+  pname = "mwlib.rl";
+
+  src = fetchPypi {
+    inherit pname version;
+    extension = "zip";
+    sha256 = "dddf9603ea0ca5aa87890217709eb5a5b16baeca547db3daad43c3ace73b6bc1";
+  };
+
+  buildInputs = [ mwlib mwlib-ext pygments ];
+
+  meta = with stdenv.lib; {
+    description = "Generate pdfs from mediawiki markup";
+    homepage = "http://pediapress.com/code/";
+    license = licenses.bsd3;
+  };
+
+}
diff --git a/pkgs/development/python-modules/mwlib/default.nix b/pkgs/development/python-modules/mwlib/default.nix
new file mode 100644
index 000000000000..55a19e1a6da3
--- /dev/null
+++ b/pkgs/development/python-modules/mwlib/default.nix
@@ -0,0 +1,55 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, isPy3k
+, apipkg
+, bottle
+, gevent
+, lxml
+, odfpy
+, pillow
+, py
+, pyPdf
+, pyparsing
+, qserve
+, roman
+, simplejson
+, sqlite3dbm
+, timelib
+, pytest
+}:
+
+buildPythonPackage rec {
+  version = "0.16.1";
+  pname = "mwlib";
+  disabled = isPy3k;
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1dnmnkc21zdfaypskbpvkwl0wpkpn0nagj1fc338w64mbxrk8ny7";
+  };
+
+  propagatedBuildInputs = [ apipkg bottle gevent lxml odfpy pillow py pyPdf pyparsing qserve roman simplejson sqlite3dbm timelib ];
+
+  checkInputs = [ pytest ];
+
+  postPatch = ''
+    sed -i "s/odfpy>=0.9, <0.10/odfpy/" setup.py
+    sed -i "s/pyparsing>=1.4.11,<1.6/pyparsing/" setup.py
+  '';
+
+  checkPhase = ''
+    py.test
+  '';
+
+  # Tests are in build directory but we need extension modules that are in $out
+  doCheck = false;
+
+  meta = with stdenv.lib; {
+    description = "Library for parsing MediaWiki articles and converting them to different output formats";
+    homepage = "http://pediapress.com/code/";
+    license = licenses.bsd3;
+    # broken = true; # Requires different versions of packages
+  };
+
+}
diff --git a/pkgs/development/python-modules/mxnet/default.nix b/pkgs/development/python-modules/mxnet/default.nix
new file mode 100644
index 000000000000..317f79ebe081
--- /dev/null
+++ b/pkgs/development/python-modules/mxnet/default.nix
@@ -0,0 +1,37 @@
+{ stdenv
+, buildPythonPackage
+, pkgs
+, requests
+, numpy
+, graphviz
+, python
+, isPy3k
+}:
+
+buildPythonPackage rec {
+  inherit (pkgs.mxnet) name version src meta;
+
+  buildInputs = [ pkgs.mxnet ];
+  propagatedBuildInputs = [ requests numpy graphviz ];
+
+  LD_LIBRARY_PATH = stdenv.lib.makeLibraryPath [ pkgs.mxnet ];
+
+  doCheck = !isPy3k;
+
+  postPatch = ''
+    substituteInPlace python/setup.py \
+    --replace "graphviz<0.9.0" "graphviz<0.10.0" \
+    --replace "numpy<=1.15.0" "numpy<1.16.0" \
+    --replace "requests<2.19.0" "requests<2.20.0"
+  '';
+
+  preConfigure = ''
+    cd python
+  '';
+
+  postInstall = ''
+    rm -rf $out/mxnet
+    ln -s ${pkgs.mxnet}/lib/libmxnet.so $out/${python.sitePackages}/mxnet
+  '';
+
+}
diff --git a/pkgs/development/python-modules/mysql_python/default.nix b/pkgs/development/python-modules/mysql_python/default.nix
new file mode 100644
index 000000000000..a38f7e02e1cd
--- /dev/null
+++ b/pkgs/development/python-modules/mysql_python/default.nix
@@ -0,0 +1,32 @@
+{ stdenv
+, buildPythonPackage
+, isPy3k
+, fetchPypi
+, nose
+, pkgs
+}:
+
+buildPythonPackage rec {
+  pname = "MySQL-python";
+  version = "1.2.5";
+  disabled = isPy3k;
+
+  src = fetchPypi {
+    inherit pname version;
+    extension = "zip";
+    sha256 = "0x0c2jg0bb3pp84njaqiic050qkyd7ymwhfvhipnimg58yv40441";
+  };
+
+  buildInputs = [ nose ];
+  propagatedBuildInputs = [ pkgs.mysql.connector-c ];
+
+  # plenty of failing tests
+  doCheck = false;
+
+  meta = with stdenv.lib; {
+    description = "MySQL database binding for Python";
+    homepage = https://sourceforge.net/projects/mysql-python;
+    license = licenses.gpl3;
+  };
+
+}
diff --git a/pkgs/development/python-modules/namebench/default.nix b/pkgs/development/python-modules/namebench/default.nix
new file mode 100644
index 000000000000..a930f250d80c
--- /dev/null
+++ b/pkgs/development/python-modules/namebench/default.nix
@@ -0,0 +1,50 @@
+{ stdenv
+, buildPythonPackage
+, isPy3k
+, isPyPy
+, fetchurl
+, tkinter
+}:
+
+buildPythonPackage rec {
+  pname = "namebench";
+  version = "1.3.1";
+  disabled = isPy3k || isPyPy;
+
+  src = fetchurl {
+    url = "http://namebench.googlecode.com/files/${pname}-${version}-source.tgz";
+    sha256 = "09clbcd6wxgk4r6qw7hb78h818mvca7lijigy1mlq5y1f3lgkk1h";
+  };
+
+  # error: invalid command 'test'
+  doCheck = false;
+
+  propagatedBuildInputs = [ tkinter ];
+
+  # namebench expects to be run from its own source tree (it uses relative
+  # paths to various resources), make it work.
+  postInstall = ''
+    sed -i "s|import os|import os; os.chdir(\"$out/namebench\")|" "$out/bin/namebench.py"
+  '';
+
+  meta = with stdenv.lib; {
+    homepage = http://namebench.googlecode.com/;
+    description = "Find fastest DNS servers available";
+    license = with licenses; [
+      asl20
+      # third-party program licenses (embedded in the sources)
+      "LGPL" # Crystal_Clear
+      free # dns
+      asl20 # graphy
+      "BSD" # jinja2
+    ];
+    longDescription = ''
+      It hunts down the fastest DNS servers available for your computer to
+      use. namebench runs a fair and thorough benchmark using your web
+      browser history, tcpdump output, or standardized datasets in order
+      to provide an individualized recommendation. namebench is completely
+      free and does not modify your system in any way.
+    '';
+  };
+
+}
diff --git a/pkgs/development/python-modules/nameparser/default.nix b/pkgs/development/python-modules/nameparser/default.nix
new file mode 100644
index 000000000000..a3e67fa7b985
--- /dev/null
+++ b/pkgs/development/python-modules/nameparser/default.nix
@@ -0,0 +1,21 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+}:
+
+buildPythonPackage rec {
+  pname = "nameparser";
+  version = "0.3.4";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1zi94m99ziwwd6kkip3w2xpnl05r2cfv9iq68inz7np81c3g8vag";
+  };
+
+  meta = with stdenv.lib; {
+    description = "A simple Python module for parsing human names into their individual components";
+    homepage = https://github.com/derek73/python-nameparser;
+    license = licenses.lgpl21Plus;
+  };
+
+}
diff --git a/pkgs/development/python-modules/ncclient/default.nix b/pkgs/development/python-modules/ncclient/default.nix
index 9933e849d0be..24016ef8b104 100644
--- a/pkgs/development/python-modules/ncclient/default.nix
+++ b/pkgs/development/python-modules/ncclient/default.nix
@@ -12,11 +12,11 @@
 
 buildPythonPackage rec {
   pname = "ncclient";
-  version = "0.6.2";
+  version = "0.6.3";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "6616828f9c5d318906dae22378a78342bbfa5983f1775c1af8bfecc779434c38";
+    sha256 = "3ab58ee0d71069cb5b0e2f29a4e605d1d8417bd10af45b73ee3e817fe389fadc";
   };
 
   checkInputs = [ nose rednose ];
diff --git a/pkgs/development/python-modules/ndg-httpsclient/default.nix b/pkgs/development/python-modules/ndg-httpsclient/default.nix
new file mode 100644
index 000000000000..780f2c330860
--- /dev/null
+++ b/pkgs/development/python-modules/ndg-httpsclient/default.nix
@@ -0,0 +1,30 @@
+{ stdenv
+, buildPythonPackage
+, fetchFromGitHub
+, pyopenssl
+}:
+
+buildPythonPackage rec {
+  version = "0.4.2";
+  pname = "ndg-httpsclient";
+
+  propagatedBuildInputs = [ pyopenssl ];
+
+  src = fetchFromGitHub {
+    owner = "cedadev";
+    repo = "ndg_httpsclient";
+    rev = version;
+    sha256 = "1kk4knv029j0cicfiv23c1rayc1n3f1j3rhl0527gxiv0qv4jw8h";
+  };
+
+  # uses networking
+  doCheck = false;
+
+  meta = with stdenv.lib; {
+    homepage = https://github.com/cedadev/ndg_httpsclient/;
+    description = "Provide enhanced HTTPS support for httplib and urllib2 using PyOpenSSL";
+    license = licenses.bsd2;
+    maintainers = with maintainers; [ ];
+  };
+
+}
diff --git a/pkgs/development/python-modules/netaddr/default.nix b/pkgs/development/python-modules/netaddr/default.nix
new file mode 100644
index 000000000000..eed3d758054b
--- /dev/null
+++ b/pkgs/development/python-modules/netaddr/default.nix
@@ -0,0 +1,37 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, pytest
+, pkgs
+}:
+
+buildPythonPackage rec {
+  pname = "netaddr";
+  version = "0.7.19";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "38aeec7cdd035081d3a4c306394b19d677623bf76fa0913f6695127c7753aefd";
+  };
+
+  LC_ALL = "en_US.UTF-8";
+  buildInputs = [ pkgs.glibcLocales pytest ];
+
+  checkPhase = ''
+    py.test netaddr/tests
+  '';
+
+  patches = [
+    (pkgs.fetchpatch {
+      url = https://github.com/drkjam/netaddr/commit/2ab73f10be7069c9412e853d2d0caf29bd624012.patch;
+      sha256 = "0s1cdn9v5alpviabhcjmzc0m2pnpq9dh2fnnk2x96dnry1pshg39";
+    })
+  ];
+
+  meta = with stdenv.lib; {
+    homepage = https://github.com/drkjam/netaddr/;
+    description = "A network address manipulation library for Python";
+    license = licenses.mit;
+  };
+
+}
diff --git a/pkgs/development/python-modules/netifaces/default.nix b/pkgs/development/python-modules/netifaces/default.nix
new file mode 100644
index 000000000000..8f762fb0c3d5
--- /dev/null
+++ b/pkgs/development/python-modules/netifaces/default.nix
@@ -0,0 +1,21 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+}:
+
+buildPythonPackage rec {
+  version = "0.10.6";
+  pname = "netifaces";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1q7bi5k2r955rlcpspx4salvkkpk28jky67fjbpz2dkdycisak8c";
+  };
+
+  meta = with stdenv.lib; {
+    homepage = https://alastairs-place.net/projects/netifaces/;
+    description = "Portable access to network interfaces from Python";
+    license = licenses.mit;
+  };
+
+}
diff --git a/pkgs/development/python-modules/neuronpy/default.nix b/pkgs/development/python-modules/neuronpy/default.nix
new file mode 100644
index 000000000000..1d258effda7d
--- /dev/null
+++ b/pkgs/development/python-modules/neuronpy/default.nix
@@ -0,0 +1,31 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, numpy
+, matplotlib
+, scipy
+, isPy27
+}:
+
+buildPythonPackage rec {
+  pname = "neuronpy";
+  version = "0.1.6";
+  disabled = !isPy27;
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1clhc2b5fy2l8nfrji4dagmj9419nj6kam090yqxhq5c28sngk25";
+  };
+
+  propagatedBuildInputs = [ numpy matplotlib scipy ];
+
+  #No tests included
+  doCheck = false;
+
+  meta = with stdenv.lib; {
+    description = "Interfaces and utilities for the NEURON simulator and analysis of neural data";
+    maintainers = [ maintainers.nico202 ];
+    license = licenses.mit;
+  };
+
+}
diff --git a/pkgs/development/python-modules/nine/default.nix b/pkgs/development/python-modules/nine/default.nix
new file mode 100644
index 000000000000..a6b163ed456f
--- /dev/null
+++ b/pkgs/development/python-modules/nine/default.nix
@@ -0,0 +1,21 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+}:
+
+buildPythonPackage rec {
+  pname = "nine";
+  version = "0.3.4";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1zrsbm0hajfvklkhgysp81hy632a3bdakp31m0lcpd9xbp5265zy";
+  };
+
+  meta = with stdenv.lib; {
+    description = "Let's write Python 3 right now!";
+    homepage = "https://github.com/nandoflorestan/nine";
+    license = licenses.free;
+  };
+
+}
diff --git a/pkgs/development/python-modules/nipy/default.nix b/pkgs/development/python-modules/nipy/default.nix
new file mode 100644
index 000000000000..8ff7bbe24167
--- /dev/null
+++ b/pkgs/development/python-modules/nipy/default.nix
@@ -0,0 +1,49 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, pythonOlder
+, nose
+, matplotlib
+, nibabel
+, numpy
+, scipy
+, sympy
+, python
+}:
+
+buildPythonPackage rec {
+  version = "0.4.0";
+  pname = "nipy";
+  disabled = pythonOlder "2.6";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1hnbn2i4fjxflaaz082s2c57hfp59jfra1zayz1iras5p2dy21nr";
+  };
+
+  buildInputs = stdenv.lib.optional doCheck [ nose ];
+  propagatedBuildInputs = [ matplotlib nibabel numpy scipy sympy ];
+
+  checkPhase = ''    # wants to be run in a different directory
+    mkdir nosetests
+    cd nosetests
+    ${python.interpreter} -c "import nipy; nipy.test()"
+    rm -rf .
+  '';
+
+  # failing test:
+  # nipy.algorithms.statistics.models.tests.test_olsR.test_results(11.593139639404727, 11.593140144880794, 6)  # disagrees by 1 at 6th decimal place
+  # erroring tests:
+  # nipy.modalities.fmri.fmristat.tests.test_FIAC.test_altprotocol
+  # nipy.modalities.fmri.fmristat.tests.test_FIAC.test_agreement
+  # nipy.tests.test_scripts.test_nipy_4d_realign   # because `nipy_4d_realign` script isn't found at test time; works from nix-shell, so could be patched
+  # nipy.tests.test_scripts.test_nipy_3_4d         # ditto re.: `nipy_3_4d` script
+  doCheck = false;
+
+  meta = with stdenv.lib; {
+    homepage = http://nipy.org/nipy/;
+    description = "Software for structural and functional neuroimaging analysis";
+    license = licenses.bsd3;
+  };
+
+}
diff --git a/pkgs/development/python-modules/nipype/default.nix b/pkgs/development/python-modules/nipype/default.nix
index a092123da826..3d8258aeb7bb 100644
--- a/pkgs/development/python-modules/nipype/default.nix
+++ b/pkgs/development/python-modules/nipype/default.nix
@@ -36,11 +36,11 @@ assert !isPy3k -> configparser != null;
 
 buildPythonPackage rec {
   pname = "nipype";
-  version = "1.1.2";
+  version = "1.1.3";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "f2fe29bf863cb643bd5c8d2bdeaaf488308c293c9fb9913bc7a9504dc3bf8db6";
+    sha256 = "c14856f3d4823aa5d63d0c19e8f04d70c74e156361ce607d86694046bab06806";
   };
 
   # see https://github.com/nipy/nipype/issues/2240
diff --git a/pkgs/development/python-modules/nixpkgs/default.nix b/pkgs/development/python-modules/nixpkgs/default.nix
new file mode 100644
index 000000000000..71c142436d9f
--- /dev/null
+++ b/pkgs/development/python-modules/nixpkgs/default.nix
@@ -0,0 +1,29 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, pbr
+, pythonix
+, pythonAtLeast
+}:
+
+buildPythonPackage rec {
+  pname = "nixpkgs";
+  version = "0.2.2";
+  disabled = ! pythonAtLeast "3.5";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "0gsrd99kkv99jsrh3hckz7ns1zwndi9vvh4465v4gnpz723dd6fj";
+  };
+
+  buildInputs = [ pbr ];
+  propagatedBuildInputs = [ pythonix ];
+
+  meta = with stdenv.lib; {
+    description = "Allows to `from nixpkgs import` stuff in interactive Python sessions";
+    homepage = http://github.com/t184256/nixpkgs-python-importer;
+    license = licenses.mit;
+    maintainers = with maintainers; [ t184256 ];
+  };
+
+}
diff --git a/pkgs/development/python-modules/nose-cover3/default.nix b/pkgs/development/python-modules/nose-cover3/default.nix
new file mode 100644
index 000000000000..273c0ab042f9
--- /dev/null
+++ b/pkgs/development/python-modules/nose-cover3/default.nix
@@ -0,0 +1,27 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, nose
+}:
+
+buildPythonPackage rec {
+  pname = "nose-cover3";
+  version = "0.1.0";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1la4hhc1yszjpcchvkqk5xmzlb2g1b3fgxj9wwc58qc549whlcc1";
+  };
+
+  propagatedBuildInputs = [ nose ];
+
+  # No tests included
+  doCheck = false;
+
+  meta = with stdenv.lib; {
+    description = "Coverage 3.x support for Nose";
+    homepage = https://github.com/ask/nosecover3;
+    license = licenses.lgpl21;
+  };
+
+}
diff --git a/pkgs/development/python-modules/nose-cprof/default.nix b/pkgs/development/python-modules/nose-cprof/default.nix
new file mode 100644
index 000000000000..efafd6333dbb
--- /dev/null
+++ b/pkgs/development/python-modules/nose-cprof/default.nix
@@ -0,0 +1,25 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, nose
+}:
+
+
+buildPythonPackage rec {
+  pname = "nose-cprof";
+  version = "0.1.4";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "0ayy5mbjly9aa9dkgpz0l06flspnxmnj6wxdl6zr59byrrr8fqhw";
+  };
+
+  buildInputs = [ nose ];
+
+  meta = with stdenv.lib; {
+    description = "A python nose plugin to profile using cProfile rather than the default Hotshot profiler";
+    homepage = https://github.com/msherry/nose-cprof;
+    license = licenses.bsd0;
+  };
+
+}
diff --git a/pkgs/development/python-modules/nose/default.nix b/pkgs/development/python-modules/nose/default.nix
new file mode 100644
index 000000000000..bec5156d22e0
--- /dev/null
+++ b/pkgs/development/python-modules/nose/default.nix
@@ -0,0 +1,33 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, python
+, coverage
+}:
+
+buildPythonPackage rec {
+  version = "1.3.7";
+  pname = "nose";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "f1bffef9cbc82628f6e7d7b40d7e255aefaa1adb6a1b1d26c69a8b79e6208a98";
+  };
+
+  propagatedBuildInputs = [ coverage ];
+
+  doCheck = false;  # lot's of transient errors, too much hassle
+  checkPhase = if python.is_py3k or false then ''
+    ${python}/bin/${python.executable} setup.py build_tests
+  '' else "" + ''
+    rm functional_tests/test_multiprocessing/test_concurrent_shared.py* # see https://github.com/nose-devs/nose/commit/226bc671c73643887b36b8467b34ad485c2df062
+    ${python}/bin/${python.executable} selftest.py
+  '';
+
+  meta = with stdenv.lib; {
+    description = "A unittest-based testing framework for python that makes writing and running tests easier";
+    homepage = http://readthedocs.org/docs/nose/;
+    license = licenses.lgpl3;
+  };
+
+}
diff --git a/pkgs/development/python-modules/nose2/default.nix b/pkgs/development/python-modules/nose2/default.nix
new file mode 100644
index 000000000000..9d5c1675359e
--- /dev/null
+++ b/pkgs/development/python-modules/nose2/default.nix
@@ -0,0 +1,26 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, six
+}:
+
+buildPythonPackage rec {
+  pname = "nose2";
+  version = "0.5.0";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "0595rh6b6dncbj0jigsyrgrh6h8fsl6w1fr69h76mxv9nllv0rlr";
+  };
+
+  propagatedBuildInputs = [ six ];
+  # AttributeError: 'module' object has no attribute 'collector'
+  doCheck = false;
+
+  meta = with stdenv.lib; {
+    description = "nose2 is the next generation of nicer testing for Python";
+    homepage = https://github.com/nose-devs/nose2;
+    license = licenses.bsd0;
+  };
+
+}
diff --git a/pkgs/development/python-modules/nosejs/default.nix b/pkgs/development/python-modules/nosejs/default.nix
new file mode 100644
index 000000000000..82c01e8643f9
--- /dev/null
+++ b/pkgs/development/python-modules/nosejs/default.nix
@@ -0,0 +1,28 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, nose
+}:
+
+buildPythonPackage rec {
+  pname = "NoseJS";
+  version = "0.9.4";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "0qrhkd3sga56qf6k0sqyhwfcladwi05gl6aqmr0xriiq1sgva5dy";
+  };
+
+  buildInputs = [ nose ];
+
+  checkPhase = ''
+    nosetests -v
+  '';
+
+  meta = with stdenv.lib; {
+    homepage = https://pypi.org/project/NoseJS/;
+    description = "A Nose plugin for integrating JavaScript tests into a Python test suite";
+    license = licenses.free;
+  };
+
+}
diff --git a/pkgs/development/python-modules/nosexcover/default.nix b/pkgs/development/python-modules/nosexcover/default.nix
new file mode 100644
index 000000000000..aa238bce79ad
--- /dev/null
+++ b/pkgs/development/python-modules/nosexcover/default.nix
@@ -0,0 +1,25 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, coverage
+, nose
+}:
+
+buildPythonPackage rec {
+  pname = "nosexcover";
+  version = "1.0.10";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "f5b3a7c936c4f703f15418c1f325775098184b69fa572f868edb8a99f8f144a8";
+  };
+
+  propagatedBuildInputs = [ coverage nose ];
+
+  meta = with stdenv.lib; {
+    description = "Extends nose.plugins.cover to add Cobertura-style XML reports";
+    homepage = https://github.com/cmheisel/nose-xcover/;
+    license = licenses.bsd3;
+  };
+
+}
diff --git a/pkgs/development/python-modules/notify/default.nix b/pkgs/development/python-modules/notify/default.nix
new file mode 100644
index 000000000000..f87424b439c6
--- /dev/null
+++ b/pkgs/development/python-modules/notify/default.nix
@@ -0,0 +1,41 @@
+{ stdenv
+, fetchurl
+, python
+, pygobject2
+, pygtk
+, pkgs
+}:
+
+stdenv.mkDerivation rec {
+  name = "python-notify-${version}";
+  version = "0.1.1";
+
+  src = fetchurl {
+    url = http://www.galago-project.org/files/releases/source/notify-python/notify-python-0.1.1.tar.bz2;
+    sha256 = "1kh4spwgqxm534qlzzf2ijchckvs0pwjxl1irhicjmlg7mybnfvx";
+  };
+
+  patches = stdenv.lib.singleton (fetchurl {
+    name = "libnotify07.patch";
+    url = "http://src.fedoraproject.org/cgit/notify-python.git/plain/"
+        + "libnotify07.patch?id2=289573d50ae4838a1658d573d2c9f4c75e86db0c";
+    sha256 = "1lqdli13mfb59xxbq4rbq1f0znh6xr17ljjhwmzqb79jl3dig12z";
+  });
+
+  postPatch = ''
+    sed -i -e '/^PYGTK_CODEGEN/s|=.*|="${pygtk}/bin/pygtk-codegen-2.0"|' \
+      configure
+  '';
+
+  nativeBuildInputs = [ pkgs.pkgconfig ];
+  buildInputs = [ python pygobject2 pygtk pkgs.libnotify pkgs.glib pkgs.gtk2 pkgs.dbus-glib ];
+
+  postInstall = "cd $out/lib/python*/site-packages && ln -s gtk-*/pynotify .";
+
+  meta = with stdenv.lib; {
+    description = "Python bindings for libnotify";
+    homepage = http://www.galago-project.org/;
+    license = licenses.lgpl3;
+  };
+
+}
diff --git a/pkgs/development/python-modules/notmuch/default.nix b/pkgs/development/python-modules/notmuch/default.nix
new file mode 100644
index 000000000000..207e59b85011
--- /dev/null
+++ b/pkgs/development/python-modules/notmuch/default.nix
@@ -0,0 +1,28 @@
+{ stdenv
+, buildPythonPackage
+, pkgs
+, python
+}:
+
+buildPythonPackage rec {
+  name = "python-${pkgs.notmuch.name}";
+
+  src = pkgs.notmuch.src;
+
+  sourceRoot = pkgs.notmuch.pythonSourceRoot;
+
+  buildInputs = [ python pkgs.notmuch ];
+
+  postPatch = ''
+    sed -i -e '/CDLL/s@"libnotmuch\.@"${pkgs.notmuch}/lib/libnotmuch.@' \
+      notmuch/globals.py
+  '';
+
+  meta = with stdenv.lib; {
+    description = "A Python wrapper around notmuch";
+    homepage = https://notmuchmail.org/;
+    license = licenses.gpl3;
+    maintainers = with maintainers; [ garbas ];
+  };
+
+}
diff --git a/pkgs/development/python-modules/ntfy/default.nix b/pkgs/development/python-modules/ntfy/default.nix
new file mode 100644
index 000000000000..5d54b0928b6f
--- /dev/null
+++ b/pkgs/development/python-modules/ntfy/default.nix
@@ -0,0 +1,33 @@
+{ stdenv
+, buildPythonPackage
+, fetchFromGitHub
+, appdirs
+, pyyaml
+, requests
+, dbus-python
+, emoji
+, sleekxmpp
+, mock
+}:
+
+buildPythonPackage rec {
+  version = "1.2.0";
+  pname = "ntfy";
+
+  src = fetchFromGitHub {
+    owner = "dschep";
+    repo = "ntfy";
+    rev = "v${version}";
+    sha256 = "0yjxwisxpxy3vpnqk9nw5k3db3xx6wyf6sk1px9m94s30glcq2cc";
+  };
+
+  propagatedBuildInputs = [ appdirs pyyaml requests dbus-python emoji sleekxmpp mock ];
+
+  meta = with stdenv.lib; {
+    description = "A utility for sending notifications, on demand and when commands finish";
+    homepage = http://ntfy.rtfd.org/;
+    license = licenses.gpl3;
+    maintainers = with maintainers; [ kamilchm ];
+  };
+
+}
diff --git a/pkgs/development/python-modules/ntplib/default.nix b/pkgs/development/python-modules/ntplib/default.nix
new file mode 100644
index 000000000000..d6506ae4b4ad
--- /dev/null
+++ b/pkgs/development/python-modules/ntplib/default.nix
@@ -0,0 +1,24 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+}:
+
+buildPythonPackage rec {
+  pname = "ntplib";
+  version = "0.3.3";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "c4621b64d50be9461d9bd9a71ba0b4af06fbbf818bbd483752d95c1a4e273ede";
+  };
+
+  # Require networking
+  doCheck = false;
+
+  meta = with stdenv.lib; {
+    description = "Python NTP library";
+    homepage = http://code.google.com/p/ntplib/;
+    license = licenses.mit;
+  };
+
+}
diff --git a/pkgs/development/python-modules/nuitka/default.nix b/pkgs/development/python-modules/nuitka/default.nix
new file mode 100644
index 000000000000..55eb4e7c97eb
--- /dev/null
+++ b/pkgs/development/python-modules/nuitka/default.nix
@@ -0,0 +1,54 @@
+{ stdenv
+, buildPythonPackage
+, fetchurl
+, vmprof
+, pyqt4
+, scons
+, isPyPy
+, pkgs
+}:
+
+let
+  # scons is needed but using it requires Python 2.7
+  # Therefore we create a separate env for it.
+  scons = pkgs.python27.withPackages(ps: [ pkgs.scons ]);
+in buildPythonPackage rec {
+  version = "0.5.25";
+  pname = "Nuitka";
+
+  # Latest version is not yet on PyPi
+  src = fetchurl {
+    url = "https://github.com/kayhayen/Nuitka/archive/${version}.tar.gz";
+    sha256 = "11psz0pyj56adv4b3f47hl8jakvp2mc2c85s092a5rsv1la1a0aa";
+  };
+
+  buildInputs = stdenv.lib.optionals doCheck [ vmprof pyqt4 ];
+
+  propagatedBuildInputs = [ scons ];
+
+  postPatch = ''
+    patchShebangs tests/run-tests
+  '' + stdenv.lib.optionalString stdenv.isLinux ''
+    substituteInPlace nuitka/plugins/standard/ImplicitImports.py --replace 'locateDLL("uuid")' '"${pkgs.utillinux.out}/lib/libuuid.so"'
+  '';
+
+  # We do not want any wrappers here.
+  postFixup = '''';
+
+  checkPhase = ''
+    tests/run-tests
+  '';
+
+  # Problem with a subprocess (parts)
+  doCheck = false;
+
+  # Requires CPython
+  disabled = isPyPy;
+
+  meta = with stdenv.lib; {
+    description = "Python compiler with full language support and CPython compatibility";
+    license = licenses.asl20;
+    homepage = http://nuitka.net/;
+  };
+
+}
diff --git a/pkgs/development/python-modules/numpy/default.nix b/pkgs/development/python-modules/numpy/default.nix
index c66650c0abf2..87428f4563d9 100644
--- a/pkgs/development/python-modules/numpy/default.nix
+++ b/pkgs/development/python-modules/numpy/default.nix
@@ -2,12 +2,12 @@
 
 buildPythonPackage rec {
   pname = "numpy";
-  version = "1.15.1";
+  version = "1.15.2";
 
   src = fetchPypi {
     inherit pname version;
     extension = "zip";
-    sha256 = "7b9e37f194f8bcdca8e9e6af92e2cbad79e360542effc2dd6b98d63955d8d8a3";
+    sha256 = "27a0d018f608a3fe34ac5e2b876f4c23c47e38295c47dd0775cc294cd2614bc1";
   };
 
   disabled = isPyPy;
diff --git a/pkgs/development/python-modules/nxt-python/default.nix b/pkgs/development/python-modules/nxt-python/default.nix
new file mode 100644
index 000000000000..c9b523a266b9
--- /dev/null
+++ b/pkgs/development/python-modules/nxt-python/default.nix
@@ -0,0 +1,36 @@
+{ stdenv
+, buildPythonPackage
+, fetchgit
+, isPy3k
+, pyusb
+, pybluez
+, pyfantom
+, git
+}:
+
+buildPythonPackage rec {
+  version = "unstable-20160819";
+  pname = "nxt-python";
+  disabled = isPy3k;
+
+  src = fetchgit {
+    url = "http://github.com/Eelviny/nxt-python";
+    rev = "479e20b7491b28567035f4cee294c4a2af629297";
+    sha256 = "0mcsajhgm2wy4iy2lhmyi3xibgmbixbchanzmlhsxk6qyjccn9r9";
+    branchName= "pyusb";
+  };
+
+  propagatedBuildInputs = [ pyusb pybluez pyfantom git ];
+
+  # Tests fail on Mac dependency
+  doCheck = false;
+
+  meta = with stdenv.lib; {
+    description = "Python driver/interface for Lego Mindstorms NXT robot";
+    homepage = https://github.com/Eelviny/nxt-python;
+    license = licenses.gpl3;
+    platforms = platforms.linux;
+    maintainers = with maintainers; [ leenaars ];
+  };
+
+}
diff --git a/pkgs/development/python-modules/oauth/default.nix b/pkgs/development/python-modules/oauth/default.nix
new file mode 100644
index 000000000000..a8e5c8bf53d2
--- /dev/null
+++ b/pkgs/development/python-modules/oauth/default.nix
@@ -0,0 +1,24 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+}:
+
+buildPythonPackage rec {
+  pname = "oauth";
+  version = "1.0.1";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "0pdgi35hczsslil4890xqawnbpdazkgf2v1443847h5hy2gq2sg7";
+  };
+
+  # No tests included in archive
+  doCheck = false;
+
+  meta = with stdenv.lib; {
+    homepage = http://code.google.com/p/oauth;
+    description = "Library for OAuth version 1.0a";
+    license = licenses.mit;
+  };
+
+}
diff --git a/pkgs/development/python-modules/oauth2/default.nix b/pkgs/development/python-modules/oauth2/default.nix
new file mode 100644
index 000000000000..e01ef7c902d9
--- /dev/null
+++ b/pkgs/development/python-modules/oauth2/default.nix
@@ -0,0 +1,32 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, httplib2
+, mock
+, coverage
+}:
+
+buildPythonPackage rec {
+  pname = "oauth2";
+  version = "1.9.0.post1";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "c006a85e7c60107c7cc6da1b184b5c719f6dd7202098196dfa6e55df669b59bf";
+  };
+
+  propagatedBuildInputs = [ httplib2 ];
+  buildInputs = [ mock coverage ];
+
+  # ServerNotFoundError: Unable to find the server at oauth-sandbox.sevengoslings.net
+  doCheck = false;
+
+  meta = with stdenv.lib; {
+    homepage = "https://github.com/simplegeo/python-oauth2";
+    description = "Library for OAuth version 1.0";
+    license = licenses.mit;
+    maintainers = with maintainers; [ garbas ];
+    platforms = platforms.linux;
+  };
+
+}
diff --git a/pkgs/development/python-modules/oauth2client/default.nix b/pkgs/development/python-modules/oauth2client/default.nix
index 81742a99da8d..8500b53b244c 100644
--- a/pkgs/development/python-modules/oauth2client/default.nix
+++ b/pkgs/development/python-modules/oauth2client/default.nix
@@ -3,11 +3,11 @@
 
 buildPythonPackage rec {
   pname = "oauth2client";
-  version = "4.1.2";
+  version = "4.1.3";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "bd3062c06f8b10c6ef7a890b22c2740e5f87d61b6e1f4b1c90d069cdfc9dadb5";
+    sha256 = "d486741e451287f69568a4d26d70d9acd73a2bbfa275746c535b4209891cccc6";
   };
 
   propagatedBuildInputs = [ six httplib2 pyasn1-modules rsa ];
diff --git a/pkgs/development/python-modules/oauthlib/default.nix b/pkgs/development/python-modules/oauthlib/default.nix
new file mode 100644
index 000000000000..61259764becf
--- /dev/null
+++ b/pkgs/development/python-modules/oauthlib/default.nix
@@ -0,0 +1,31 @@
+{ stdenv
+, buildPythonPackage
+, fetchurl
+, mock
+, nose
+, unittest2
+, cryptography
+, blinker
+, pyjwt
+}:
+
+buildPythonPackage rec {
+  version = "2.0.0";
+  pname = "oauthlib";
+
+  src = fetchurl {
+    url = "https://github.com/idan/oauthlib/archive/v${version}.tar.gz";
+    sha256 = "02b645a8rqh4xfs1cmj8sss8wqppiadd1ndq3av1cdjz2frfqcjf";
+  };
+
+  buildInputs = [ mock nose unittest2 ];
+  propagatedBuildInputs = [ cryptography blinker pyjwt ];
+
+  meta = with stdenv.lib; {
+    homepage = https://github.com/idan/oauthlib;
+    downloadPage = https://github.com/idan/oauthlib/releases;
+    description = "A generic, spec-compliant, thorough implementation of the OAuth request-signing logic";
+    maintainers = with maintainers; [ prikhi ];
+  };
+
+}
diff --git a/pkgs/development/python-modules/obfsproxy/default.nix b/pkgs/development/python-modules/obfsproxy/default.nix
new file mode 100644
index 000000000000..2f435201d21d
--- /dev/null
+++ b/pkgs/development/python-modules/obfsproxy/default.nix
@@ -0,0 +1,38 @@
+{ stdenv
+, buildPythonPackage
+, fetchgit
+, pyptlib
+, argparse
+, twisted
+, pycrypto
+, pyyaml
+}:
+
+buildPythonPackage rec {
+  pname = "obfsproxy";
+  version = "0.2.13";
+
+  src = fetchgit {
+    url = meta.repositories.git;
+    rev = "refs/tags/${pname}-${version}";
+    sha256 = "04ja1cl8xzqnwrd2gi6nlnxbmjri141bzwa5gybvr44d8h3k2nfa";
+  };
+
+  postPatch = ''
+    substituteInPlace setup.py --replace "version=versioneer.get_version()" "version='${version}'"
+    substituteInPlace setup.py --replace "argparse" ""
+  '';
+
+  propagatedBuildInputs = [ pyptlib argparse twisted pycrypto pyyaml ];
+
+  # No tests in archive
+  doCheck = false;
+
+  meta = with stdenv.lib; {
+    description = "A pluggable transport proxy";
+    homepage = https://www.torproject.org/projects/obfsproxy;
+    repositories.git = https://git.torproject.org/pluggable-transports/obfsproxy.git;
+    maintainers = with maintainers; [ phreedom thoughtpolice ];
+  };
+
+}
diff --git a/pkgs/development/python-modules/objgraph/default.nix b/pkgs/development/python-modules/objgraph/default.nix
new file mode 100644
index 000000000000..6d26d71141dc
--- /dev/null
+++ b/pkgs/development/python-modules/objgraph/default.nix
@@ -0,0 +1,28 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, pkgs
+, isPyPy
+}:
+
+buildPythonPackage rec {
+  pname = "objgraph";
+  version = "2.0.1";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "841de52715774ec1d0e97d9b4462d6e3e10406155f9b61f54ba7db984c45442a";
+  };
+
+  # Tests fail with PyPy.
+  disabled = isPyPy;
+
+  propagatedBuildInputs = [pkgs.graphviz];
+
+  meta = with stdenv.lib; {
+    description = "Draws Python object reference graphs with graphviz";
+    homepage = https://mg.pov.lt/objgraph/;
+    license = licenses.mit;
+  };
+
+}
diff --git a/pkgs/development/python-modules/offtrac/default.nix b/pkgs/development/python-modules/offtrac/default.nix
new file mode 100644
index 000000000000..e098ecc8c31d
--- /dev/null
+++ b/pkgs/development/python-modules/offtrac/default.nix
@@ -0,0 +1,23 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+}:
+
+buildPythonPackage rec {
+  pname = "offtrac";
+  version = "0.1.0";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "06vd010pa1z7lyfj1na30iqzffr4kzj2k2sba09spik7drlvvl56";
+  };
+
+  doCheck = false;
+
+  meta = with stdenv.lib; {
+    homepage = http://fedorahosted.org/offtrac;
+    description = "Trac xmlrpc library";
+    license = licenses.gpl2;
+  };
+
+}
diff --git a/pkgs/development/python-modules/openant/default.nix b/pkgs/development/python-modules/openant/default.nix
new file mode 100644
index 000000000000..9b88a71c5cc0
--- /dev/null
+++ b/pkgs/development/python-modules/openant/default.nix
@@ -0,0 +1,38 @@
+{ stdenv
+, buildPythonPackage
+, fetchFromGitHub
+, pyusb
+}:
+
+buildPythonPackage rec {
+  pname = "openant-unstable";
+  version = "2017-02-11";
+
+  src = fetchFromGitHub {
+    owner = "Tigge";
+    repo = "openant";
+    rev = "ed89281e37f65d768641e87356cef38877952397";
+    sha256 = "1g81l9arqdy09ijswn3sp4d6i3z18d44lzyb78bwnvdb14q22k19";
+  };
+
+  # Removes some setup.py hacks intended to install udev rules.
+  # We do the job ourselves in postInstall below.
+  postPatch = ''
+    sed -i -e '/cmdclass=.*/d' setup.py
+  '';
+
+  postInstall = ''
+    install -dm755 "$out/etc/udev/rules.d"
+    install -m644 resources/ant-usb-sticks.rules "$out/etc/udev/rules.d/99-ant-usb-sticks.rules"
+  '';
+
+  propagatedBuildInputs = [ pyusb ];
+
+  meta = with stdenv.lib; {
+    homepage = "https://github.com/Tigge/openant";
+    description = "ANT and ANT-FS Python Library";
+    license = licenses.mit;
+    platforms = platforms.linux;
+  };
+
+}
diff --git a/pkgs/development/python-modules/openpyxl/default.nix b/pkgs/development/python-modules/openpyxl/default.nix
index 6445201c40b4..034fa8e67917 100644
--- a/pkgs/development/python-modules/openpyxl/default.nix
+++ b/pkgs/development/python-modules/openpyxl/default.nix
@@ -9,11 +9,11 @@
 
 buildPythonPackage rec {
   pname = "openpyxl";
-  version = "2.5.6";
+  version = "2.5.8";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "04091e034911a0afc531c3a15e5ae0b1b6a43654dbf63c187f47d20cdfefac1c";
+    sha256 = "22904d7bdfaaab33d65d50a0915a65eeb2f29c85d9ec53081563850678a29927";
   };
 
   checkInputs = [ pytest ];
diff --git a/pkgs/development/python-modules/ordered-set/default.nix b/pkgs/development/python-modules/ordered-set/default.nix
index 4044ad3f2fd1..233a4d44c437 100644
--- a/pkgs/development/python-modules/ordered-set/default.nix
+++ b/pkgs/development/python-modules/ordered-set/default.nix
@@ -2,13 +2,13 @@
 
 buildPythonPackage rec {
   pname = "ordered-set";
-  version = "3.0.1";
+  version = "3.0.2";
 
   buildInputs = [ pytest pytestrunner ];
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0yyfkkfzpwlx4jlfqzb7p1xpzmn2jyzq2qlakqx62pxizfzxfvrx";
+    sha256 = "7d292b866fa44f339ac6e624e3d338accfb415ce0a8431595d51990fbdf61d3b";
   };
 
   checkPhase = ''
diff --git a/pkgs/development/python-modules/ordereddict/default.nix b/pkgs/development/python-modules/ordereddict/default.nix
new file mode 100644
index 000000000000..27bdd728bbe6
--- /dev/null
+++ b/pkgs/development/python-modules/ordereddict/default.nix
@@ -0,0 +1,21 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+}:
+
+buildPythonPackage rec {
+  pname = "ordereddict";
+  version = "1.1";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "07qvy11nvgxpzarrni3wrww3vpc9yafgi2bch4j2vvvc42nb8d8w";
+  };
+
+  meta = with stdenv.lib; {
+    description = "A drop-in substitute for Py2.7's new collections.OrderedDict that works in Python 2.4-2.6";
+    license = licenses.bsd3;
+    maintainers = with maintainers; [ garbas ];
+  };
+
+}
diff --git a/pkgs/development/python-modules/osc/default.nix b/pkgs/development/python-modules/osc/default.nix
new file mode 100644
index 000000000000..87bd6ee258c0
--- /dev/null
+++ b/pkgs/development/python-modules/osc/default.nix
@@ -0,0 +1,46 @@
+{ stdenv
+, buildPythonPackage
+, fetchFromGitHub
+, isPy3k
+, pkgs
+, urlgrabber
+, m2crypto
+, pyyaml
+, lxml
+}:
+
+buildPythonPackage {
+  pname = "osc";
+  version = "0.162.0-55-gb730f88";
+  disabled = isPy3k;
+
+  src = fetchFromGitHub {
+    owner = "openSUSE";
+    repo = "osc";
+    rev = "b730f880cfe85a8547f569355a21706f27ebfa78";
+    sha256 = "0hh9j5zd2kc0804d2jmf1q3w5xm9l9s69hhgysbncrv5fw0414lh";
+  };
+
+  buildInputs = [ pkgs.bashInteractive ]; # needed for bash-completion helper
+  propagatedBuildInputs = [ urlgrabber m2crypto pyyaml lxml ];
+
+  postInstall = ''
+    ln -s $out/bin/osc-wrapper.py $out/bin/osc
+    install -D -m444 osc.fish $out/etc/fish/completions/osc.fish
+    install -D -m555 dist/osc.complete $out/share/bash-completion/helpers/osc-helper
+    mkdir -p $out/share/bash-completion/completions
+    cat >>$out/share/bash-completion/completions/osc <<EOF
+    test -z "\$BASH_VERSION" && return
+    complete -o default _nullcommand >/dev/null 2>&1 || return
+    complete -r _nullcommand >/dev/null 2>&1         || return
+    complete -o default -C $out/share/bash-completion/helpers/osc-helper osc
+    EOF
+  '';
+
+  meta = with stdenv.lib; {
+    description = "opensuse-commander with svn like handling";
+    maintainers = [ maintainers.peti ];
+    license = licenses.gpl2;
+  };
+
+}
diff --git a/pkgs/development/python-modules/pamela/default.nix b/pkgs/development/python-modules/pamela/default.nix
new file mode 100644
index 000000000000..05254e4fd43e
--- /dev/null
+++ b/pkgs/development/python-modules/pamela/default.nix
@@ -0,0 +1,30 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, pkgs
+}:
+
+buildPythonPackage rec {
+  pname = "pamela";
+  version = "0.3.0";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "0ssxbqsshrm8p642g3h6wsq20z1fsqhpdvqdm827gn6dlr38868y";
+  };
+
+  postUnpack = ''
+    substituteInPlace $sourceRoot/pamela.py --replace \
+      'find_library("pam")' \
+      '"${stdenv.lib.getLib pkgs.pam}/lib/libpam.so"'
+  '';
+
+  doCheck = false;
+
+  meta = with stdenv.lib; {
+    description = "PAM interface using ctypes";
+    homepage = "https://github.com/minrk/pamela";
+    license = licenses.mit;
+  };
+
+}
diff --git a/pkgs/development/python-modules/paramiko/default.nix b/pkgs/development/python-modules/paramiko/default.nix
new file mode 100644
index 000000000000..e41ec9689d28
--- /dev/null
+++ b/pkgs/development/python-modules/paramiko/default.nix
@@ -0,0 +1,48 @@
+{ pkgs
+, buildPythonPackage
+, fetchPypi
+, cryptography
+, bcrypt
+, pynacl
+, pyasn1
+, python
+, pytest
+, pytest-relaxed
+, mock
+, isPyPy
+, isPy33
+}:
+
+buildPythonPackage rec {
+  pname = "paramiko";
+  version = "2.4.2";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "a8975a7df3560c9f1e2b43dc54ebd40fd00a7017392ca5445ce7df409f900fcb";
+  };
+
+  checkInputs = [ pytest mock pytest-relaxed ];
+  propagatedBuildInputs = [ bcrypt cryptography pynacl pyasn1 ];
+
+  __darwinAllowLocalNetworking = true;
+
+  # 2 sftp tests fail (skip for now)
+  checkPhase = ''
+    pytest tests --ignore=tests/test_sftp.py
+  '';
+
+  meta = with pkgs.lib; {
+    homepage = "https://github.com/paramiko/paramiko/";
+    description = "Native Python SSHv2 protocol library";
+    license = licenses.lgpl21Plus;
+    maintainers = with maintainers; [ aszlig ];
+
+    longDescription = ''
+      This is a library for making SSH2 connections (client or server).
+      Emphasis is on using SSH2 as an alternative to SSL for making secure
+      connections between python scripts. All major ciphers and hash methods
+      are supported. SFTP client and server mode are both supported too.
+    '';
+  };
+}
diff --git a/pkgs/development/python-modules/paramz/default.nix b/pkgs/development/python-modules/paramz/default.nix
index 718393b5e1e1..f537b8d8e314 100644
--- a/pkgs/development/python-modules/paramz/default.nix
+++ b/pkgs/development/python-modules/paramz/default.nix
@@ -2,12 +2,12 @@
 
 buildPythonPackage rec {
   pname = "paramz";
-  version = "0.9.2";
+  version = "0.9.4";
   name  = "${pname}-${version}";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "7b38c2487602c423ac402214c3b3fa6bbe22b294e2f9e5f9f3842182e1541599";
+    sha256 = "179ca77a965e6e724217257793e3c8c022285ea2190a85e0826ac98dea316219";
   };
 
   propagatedBuildInputs = [ numpy scipy six decorator ];
diff --git a/pkgs/development/python-modules/path-and-address/default.nix b/pkgs/development/python-modules/path-and-address/default.nix
new file mode 100644
index 000000000000..55d7afd9fa46
--- /dev/null
+++ b/pkgs/development/python-modules/path-and-address/default.nix
@@ -0,0 +1,31 @@
+{ stdenv
+, buildPythonPackage
+, fetchFromGitHub
+, pytest
+}:
+
+buildPythonPackage rec {
+  version = "2.0.1";
+  pname = "path-and-address";
+
+  src = fetchFromGitHub {
+    owner = "joeyespo";
+    repo = "path-and-address";
+    rev = "v${version}";
+    sha256 = "0b0afpsaim06mv3lhbpm8fmawcraggc11jhzr6h72kdj1cqjk5h6";
+  };
+
+  checkInputs = [ pytest ];
+
+  checkPhase = ''
+    py.test
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Functions for server CLI applications used by humans";
+    homepage = https://github.com/joeyespo/path-and-address;
+    license = licenses.mit;
+    maintainers = with maintainers; [ koral];
+  };
+
+}
diff --git a/pkgs/development/python-modules/pathspec/default.nix b/pkgs/development/python-modules/pathspec/default.nix
index 15ff1b322415..39a2789a360f 100644
--- a/pkgs/development/python-modules/pathspec/default.nix
+++ b/pkgs/development/python-modules/pathspec/default.nix
@@ -5,12 +5,12 @@
 
 buildPythonPackage rec {
   pname   = "pathspec";
-  version = "0.5.7";
+  version = "0.5.9";
   name    = "${pname}-${version}";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "69ac7869c9ce308cfe631e29c09f9da60fae02baf31418885bbbb0c75adcd8c5";
+    sha256 = "54a5eab895d89f342b52ba2bffe70930ef9f8d96e398cccf530d21fa0516a873";
   };
 
   meta = {
diff --git a/pkgs/development/python-modules/pathtools/default.nix b/pkgs/development/python-modules/pathtools/default.nix
new file mode 100644
index 000000000000..8709662e6a18
--- /dev/null
+++ b/pkgs/development/python-modules/pathtools/default.nix
@@ -0,0 +1,22 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+}:
+
+buildPythonPackage rec {
+  pname = "pathtools";
+  version = "0.1.2";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1h7iam33vwxk8bvslfj4qlsdprdnwf8bvzhqh3jq5frr391cadbw";
+  };
+
+  meta = with stdenv.lib; {
+    description = "Pattern matching and various utilities for file systems paths";
+    homepage = https://github.com/gorakhargosh/pathtools;
+    license = licenses.mit;
+    maintainers = with maintainers; [ goibhniu ];
+  };
+
+}
diff --git a/pkgs/development/python-modules/paver/default.nix b/pkgs/development/python-modules/paver/default.nix
new file mode 100644
index 000000000000..acdb68c0281d
--- /dev/null
+++ b/pkgs/development/python-modules/paver/default.nix
@@ -0,0 +1,33 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, nose
+, cogapp
+, mock
+, virtualenv
+}:
+
+buildPythonPackage rec {
+  version = "1.2.2";
+  pname   = "Paver";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "0lix9d33ndb3yk56sm1zlj80fbmxp0w60yk0d9pr2xqxiwi88sqy";
+  };
+
+  buildInputs = [ cogapp mock virtualenv ];
+
+  propagatedBuildInputs = [ nose ];
+
+  # the tests do not pass
+  doCheck = false;
+
+  meta = with stdenv.lib; {
+    description = "A Python-based build/distribution/deployment scripting tool";
+    homepage    = https://github.com/paver/paver;
+    maintainers = with maintainers; [ lovek323 ];
+    platforms   = platforms.unix;
+  };
+
+}
diff --git a/pkgs/development/python-modules/peppercorn/default.nix b/pkgs/development/python-modules/peppercorn/default.nix
new file mode 100644
index 000000000000..5a07fc217a95
--- /dev/null
+++ b/pkgs/development/python-modules/peppercorn/default.nix
@@ -0,0 +1,22 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+}:
+
+buildPythonPackage rec {
+  pname = "peppercorn";
+  version = "0.5";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "921cba5d51fa211e6da0fbd2120b9a98d663422a80f5bb669ad81ffb0909774b";
+  };
+
+  meta = with stdenv.lib; {
+    description = "A library for converting a token stream into a data structure for use in web form posts";
+    homepage = https://docs.pylonsproject.org/projects/peppercorn/en/latest/;
+    maintainers = with maintainers; [ garbas domenkozar ];
+    platforms = platforms.all;
+  };
+
+}
diff --git a/pkgs/development/python-modules/pex/default.nix b/pkgs/development/python-modules/pex/default.nix
new file mode 100644
index 000000000000..f7efec5c70ef
--- /dev/null
+++ b/pkgs/development/python-modules/pex/default.nix
@@ -0,0 +1,29 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+}:
+
+buildPythonPackage rec {
+  pname = "pex";
+  version = "1.2.7";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1m0gx9182w1dybkyjwwjyd6i87x2dzv252ks2fj8yn6avlcp5z4q";
+  };
+
+  prePatch = ''
+    substituteInPlace setup.py --replace 'SETUPTOOLS_REQUIREMENT,' '"setuptools"'
+  '';
+
+  # A few more dependencies I don't want to handle right now...
+  doCheck = false;
+
+  meta = with stdenv.lib; {
+    description = "A library and tool for generating .pex (Python EXecutable) files";
+    homepage = "https://github.com/pantsbuild/pex";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ copumpkin ];
+  };
+
+}
diff --git a/pkgs/development/python-modules/phonenumbers/default.nix b/pkgs/development/python-modules/phonenumbers/default.nix
index a6ca8fae7cbd..01c387928f59 100644
--- a/pkgs/development/python-modules/phonenumbers/default.nix
+++ b/pkgs/development/python-modules/phonenumbers/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "phonenumbers";
-  version = "8.9.12";
+  version = "8.9.15";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "39cd0c67a17a9ca4c2851ab8fad5272948d811ccd2a8e52ddcc8d275a802af70";
+    sha256 = "8e9664ce0a838c81f4fb3e4d271c76859d26bde57242d64fe1632ab636f5319f";
   };
 
   meta = {
diff --git a/pkgs/development/python-modules/pillowfight/default.nix b/pkgs/development/python-modules/pillowfight/default.nix
new file mode 100644
index 000000000000..e32051bc26f9
--- /dev/null
+++ b/pkgs/development/python-modules/pillowfight/default.nix
@@ -0,0 +1,24 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, pillow
+}:
+
+buildPythonPackage rec {
+  pname = "pillowfight";
+  version = "0.2";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1mh1nhcjjgv7x134sv0krri59ng8bp2w6cwsxc698rixba9f3g0m";
+  };
+
+  propagatedBuildInputs = [ pillow ];
+
+  meta = with stdenv.lib; {
+    description = "Pillow Fight";
+    homepage = "https://github.com/beanbaginc/pillowfight";
+    license = licenses.mit;
+  };
+
+}
diff --git a/pkgs/development/python-modules/pint/default.nix b/pkgs/development/python-modules/pint/default.nix
new file mode 100644
index 000000000000..74b6dd78bb35
--- /dev/null
+++ b/pkgs/development/python-modules/pint/default.nix
@@ -0,0 +1,21 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+}:
+
+buildPythonPackage rec {
+  pname = "pint";
+  version = "0.7.2";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1bbp5s34gcb9il2wyz4spznshahwbjvwi5bhjm7bnxk358spvf9q";
+  };
+
+  meta = with stdenv.lib; {
+    description = "Physical quantities module";
+    license = licenses.bsd3;
+    homepage = "https://github.com/hgrecco/pint/";
+  };
+
+}
diff --git a/pkgs/development/python-modules/pip/default.nix b/pkgs/development/python-modules/pip/default.nix
index f5732d2cb953..7fc5adee7fbc 100644
--- a/pkgs/development/python-modules/pip/default.nix
+++ b/pkgs/development/python-modules/pip/default.nix
@@ -10,11 +10,11 @@
 
 buildPythonPackage rec {
   pname = "pip";
-  version = "18.0";
+  version = "18.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "a0e11645ee37c90b40c46d607070c4fd583e2cd46231b1c06e389c5e814eed76";
+    sha256 = "c0a292bd977ef590379a3f05d7b7f65135487b67470f6281289a94e015650ea1";
   };
 
   # pip detects that we already have bootstrapped_pip "installed", so we need
diff --git a/pkgs/development/python-modules/plyvel/default.nix b/pkgs/development/python-modules/plyvel/default.nix
new file mode 100644
index 000000000000..21561fab0351
--- /dev/null
+++ b/pkgs/development/python-modules/plyvel/default.nix
@@ -0,0 +1,29 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, pkgs
+, pytest
+, isPy3k
+}:
+
+buildPythonPackage rec {
+  pname = "plyvel";
+  version = "0.9";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1scq75qyks9vmjd19bx57f2y60mkdr44ajvb12p3cjg439l96zaq";
+  };
+
+  buildInputs = [ pkgs.leveldb ] ++ stdenv.lib.optional isPy3k pytest;
+
+  # no tests for python2
+  doCheck = isPy3k;
+
+  meta = with stdenv.lib; {
+    description = "Fast and feature-rich Python interface to LevelDB";
+    homepage = https://github.com/wbolster/plyvel;
+    license = licenses.bsd3;
+  };
+
+}
diff --git a/pkgs/development/python-modules/pocket/default.nix b/pkgs/development/python-modules/pocket/default.nix
new file mode 100644
index 000000000000..e351d26ca481
--- /dev/null
+++ b/pkgs/development/python-modules/pocket/default.nix
@@ -0,0 +1,25 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, requests
+}:
+
+buildPythonPackage rec {
+  pname = "pocket";
+  version = "0.3.6";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1fc9vc5nyzf1kzmnrs18dmns7nn8wjfrg7br1w4c5sgs35mg2ywh";
+  };
+
+  buildInputs = [ requests ];
+
+  meta = with stdenv.lib; {
+    description = "Wrapper for the pocket API";
+    homepage    = "https://github.com/tapanpandita/pocket";
+    license     = licenses.bsd3;
+    maintainers = with maintainers; [ ericsagnes ];
+  };
+
+}
diff --git a/pkgs/development/python-modules/poezio/fix_gnupg_import.patch b/pkgs/development/python-modules/poezio/fix_gnupg_import.patch
deleted file mode 100644
index d75e09b722bf..000000000000
--- a/pkgs/development/python-modules/poezio/fix_gnupg_import.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff -Nur poezio-0.10.orig/plugins/gpg/__init__.py poezio-0.10/plugins/gpg/__init__.py
---- poezio-0.10.orig/plugins/gpg/__init__.py	2016-07-27 19:02:41.000000000 +0200
-+++ poezio-0.10/plugins/gpg/__init__.py	2016-11-16 14:17:06.011128631 +0100
-@@ -105,7 +105,7 @@
- .. _XEP-0027: http://xmpp.org/extensions/xep-0027.html
- 
- """
--from gpg import gnupg
-+import slixmpp.thirdparty.gnupg as gnupg
- from slixmpp.xmlstream.stanzabase import JID
- 
- from xml.etree import cElementTree as ET
diff --git a/pkgs/development/python-modules/poyo/default.nix b/pkgs/development/python-modules/poyo/default.nix
new file mode 100644
index 000000000000..5a05f2dcafa4
--- /dev/null
+++ b/pkgs/development/python-modules/poyo/default.nix
@@ -0,0 +1,21 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+}:
+
+buildPythonPackage rec {
+  version = "0.4.0";
+  pname = "poyo";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1f48ffl0j1f2lmgabajps7v8w90ppxbp5168gh8kh27bjd8xk5ca";
+  };
+
+  meta = with stdenv.lib; {
+    homepage = https://github.com/hackebrot/poyo;
+    description = "A lightweight YAML Parser for Python";
+    license = licenses.mit;
+  };
+
+}
diff --git a/pkgs/development/python-modules/pudb/default.nix b/pkgs/development/python-modules/pudb/default.nix
new file mode 100644
index 000000000000..0c76974e5d99
--- /dev/null
+++ b/pkgs/development/python-modules/pudb/default.nix
@@ -0,0 +1,29 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, pygments
+, urwid
+, isPy3k
+}:
+
+buildPythonPackage rec {
+  pname = "pudb";
+  version = "2016.2";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "0njhi49d9fxbwh5p8yjx8m3jlfyzfm00b5aff6bz473pn7vxfn79";
+  };
+
+  propagatedBuildInputs = [ pygments urwid ];
+
+  # Tests fail on python 3 due to writes to the read-only home directory
+  doCheck = !isPy3k;
+
+  meta = with stdenv.lib; {
+    description = "A full-screen, console-based Python debugger";
+    license = licenses.mit;
+    platforms = platforms.all;
+  };
+
+}
diff --git a/pkgs/development/python-modules/pyaxmlparser/default.nix b/pkgs/development/python-modules/pyaxmlparser/default.nix
index 7f9cbf9518e3..9f4f6627e2c8 100644
--- a/pkgs/development/python-modules/pyaxmlparser/default.nix
+++ b/pkgs/development/python-modules/pyaxmlparser/default.nix
@@ -1,12 +1,12 @@
 { buildPythonPackage, stdenv, lxml, click, fetchPypi }:
 
 buildPythonPackage rec {
-  version = "0.3.10";
+  version = "0.3.11";
   pname = "pyaxmlparser";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "5c1f569f4dc2232d7f146eb190bc513373ff6555f97ae904740f966f0fb2dd77";
+    sha256 = "dbe5ca9ddcf2f5041f6e5e3acc81d2940c696db89de4f840535a256e78f5e489";
   };
 
   propagatedBuildInputs = [ lxml click ];
diff --git a/pkgs/development/python-modules/pybluez/default.nix b/pkgs/development/python-modules/pybluez/default.nix
new file mode 100644
index 000000000000..6ceca20fdd17
--- /dev/null
+++ b/pkgs/development/python-modules/pybluez/default.nix
@@ -0,0 +1,29 @@
+{ stdenv
+, buildPythonPackage
+, fetchFromGitHub
+, pkgs
+}:
+
+buildPythonPackage rec {
+  version = "unstable-20160819";
+  pname = "pybluez";
+
+  propagatedBuildInputs = [ pkgs.bluez ];
+
+  src = fetchFromGitHub {
+    owner = "karulis";
+    repo = "${pname}";
+    rev = "a0b226a61b166e170d48539778525b31e47a4731";
+    sha256 = "104dm5ngfhqisv1aszdlr3szcav2g3bhsgzmg4qfs09b3i5zj047";
+  };
+
+  # the tests do not pass
+  doCheck = false;
+
+  meta = with stdenv.lib; {
+    description = "Bluetooth Python extension module";
+    license = licenses.gpl2;
+    maintainers = with maintainers; [ leenaars ];
+  };
+
+}
diff --git a/pkgs/development/python-modules/pycallgraph/default.nix b/pkgs/development/python-modules/pycallgraph/default.nix
new file mode 100644
index 000000000000..9a6a3f4be2e9
--- /dev/null
+++ b/pkgs/development/python-modules/pycallgraph/default.nix
@@ -0,0 +1,28 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, pytest
+}:
+
+buildPythonPackage rec {
+  pname = "pycallgraph";
+  version = "1.0.1";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "0w8yr43scnckqcv5nbyd2dq4kpv74ai856lsdsf8iniik07jn9mi";
+  };
+
+  buildInputs = [ pytest ];
+
+  # Tests do not work due to this bug: https://github.com/gak/pycallgraph/issues/118
+  doCheck = false;
+
+  meta = with stdenv.lib; {
+    homepage = http://pycallgraph.slowchop.com;
+    description = "Call graph visualizations for Python applications";
+    maintainers = with maintainers; [ auntie ];
+    license = licenses.gpl2;
+  };
+
+}
diff --git a/pkgs/development/python-modules/pycares/default.nix b/pkgs/development/python-modules/pycares/default.nix
new file mode 100644
index 000000000000..bf863fae57b9
--- /dev/null
+++ b/pkgs/development/python-modules/pycares/default.nix
@@ -0,0 +1,27 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, pkgs
+}:
+
+buildPythonPackage rec {
+  pname = "pycares";
+  version = "1.0.0";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "a18341ea030e2cc0743acdf4aa72302bdf6b820938b36ce4bd76e43faa2276a3";
+  };
+
+  propagatedBuildInputs = [ pkgs.c-ares ];
+
+  # No tests included
+  doCheck = false;
+
+  meta = with stdenv.lib; {
+    homepage = https://github.com/saghul/pycares;
+    description = "Interface for c-ares";
+    license = licenses.mit;
+  };
+
+}
diff --git a/pkgs/development/python-modules/pycountry/default.nix b/pkgs/development/python-modules/pycountry/default.nix
new file mode 100644
index 000000000000..90d573aaaa77
--- /dev/null
+++ b/pkgs/development/python-modules/pycountry/default.nix
@@ -0,0 +1,22 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+,
+}:
+
+buildPythonPackage rec {
+  pname = "pycountry";
+  version = "1.17";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1qvhq0c9xsh6d4apcvjphfzl6xnwhnk4jvhr8x2fdfnmb034lc26";
+  };
+
+  meta = with stdenv.lib; {
+    homepage = https://bitbucket.org/flyingcircus/pycountry;
+    description = "ISO country, subdivision, language, currency and script definitions and their translations";
+    license = licenses.lgpl2;
+  };
+
+}
diff --git a/pkgs/development/python-modules/pycuda/default.nix b/pkgs/development/python-modules/pycuda/default.nix
index 2d1da5339af5..5f58101a8b53 100644
--- a/pkgs/development/python-modules/pycuda/default.nix
+++ b/pkgs/development/python-modules/pycuda/default.nix
@@ -22,11 +22,11 @@ let
 in
 buildPythonPackage rec {
   pname = "pycuda";
-  version = "2018.1";
+  version = "2018.1.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "7079f7738e83ee79ae26f0827ada29fe55921fec9760201199cc2bfb69446c92";
+    sha256 = "49d575fca3fd3c95467c3b0fb51967ad17d0c4cc18e078a6748309af4de36a8d";
   };
 
   preConfigure = ''
diff --git a/pkgs/development/python-modules/pyfribidi/default.nix b/pkgs/development/python-modules/pyfribidi/default.nix
new file mode 100644
index 000000000000..a5caca40650d
--- /dev/null
+++ b/pkgs/development/python-modules/pyfribidi/default.nix
@@ -0,0 +1,25 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, isPy3k
+, isPyPy
+}:
+
+buildPythonPackage rec {
+  version = "0.11.0";
+  pname = "pyfribidi";
+  disabled = isPy3k || isPyPy;
+
+  src = fetchPypi {
+    inherit pname version;
+    extension = "zip";
+    sha256 = "6f7d83c09eae0cb98a40b85ba3dedc31af4dbff8fc4425f244c1e9f44392fded";
+  };
+
+  meta = with stdenv.lib; {
+    description = "A simple wrapper around fribidi";
+    homepage = https://github.com/pediapress/pyfribidi;
+    license = stdenv.lib.licenses.gpl2;
+  };
+
+}
diff --git a/pkgs/development/python-modules/pygal/default.nix b/pkgs/development/python-modules/pygal/default.nix
new file mode 100644
index 000000000000..d1a25caabbee
--- /dev/null
+++ b/pkgs/development/python-modules/pygal/default.nix
@@ -0,0 +1,36 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, isPyPy
+, flask
+, pyquery
+, pytest
+, cairosvg
+, tinycss
+, cssselect
+, lxml
+}:
+
+buildPythonPackage rec {
+  pname = "pygal";
+  version = "2.3.1";
+
+  doCheck = !isPyPy;  # one check fails with pypy
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "7ba5a191233d0c2d8bf4b4d26b06e42bd77483a59ba7d3e5b884d81d1a870667";
+  };
+
+  buildInputs = [ flask pyquery pytest ];
+  propagatedBuildInputs = [ cairosvg tinycss cssselect ]
+    ++ stdenv.lib.optionals (!isPyPy) [ lxml ];
+
+  meta = with stdenv.lib; {
+    description = "Sexy and simple python charting";
+    homepage = http://www.pygal.org;
+    license = licenses.lgpl3;
+    maintainers = with maintainers; [ sjourdois ];
+  };
+
+}
diff --git a/pkgs/development/python-modules/pyhepmc/default.nix b/pkgs/development/python-modules/pyhepmc/default.nix
new file mode 100644
index 000000000000..e776749dd7ef
--- /dev/null
+++ b/pkgs/development/python-modules/pyhepmc/default.nix
@@ -0,0 +1,47 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, isPy3k
+, fetchurl
+, pkgs
+, python
+}:
+
+buildPythonPackage rec {
+  pname = "pyhepmc";
+  version = "0.5.0";
+  disabled = isPy3k;
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1rbi8gqgclfvaibv9kzhfis11gw101x8amc93qf9y08ny4jfyr1d";
+  };
+
+  patches = [
+    # merge PR https://bitbucket.org/andybuckley/pyhepmc/pull-requests/1/add-incoming-outgoing-generators-for/diff
+    ./pyhepmc_export_edges.patch
+    # add bindings to Flow class
+    ./pyhepmc_export_flow.patch
+  ];
+
+  # regenerate python wrapper
+  preConfigure = ''
+    rm hepmc/hepmcwrap.py
+    swig -c++ -I${pkgs.hepmc}/include -python hepmc/hepmcwrap.i
+  '';
+
+  buildInputs = [ pkgs.swig pkgs.hepmc ];
+
+  HEPMCPATH = pkgs.hepmc;
+
+  checkPhase = ''
+    ${python.interpreter} test/test1.py
+  '';
+
+  meta = with stdenv.lib; {
+    description = "A simple wrapper on the main classes of the HepMC event simulation representation, making it possible to create, read and manipulate HepMC events from Python code";
+    license     = licenses.gpl2;
+    maintainers = with maintainers; [ veprbl ];
+  };
+
+}
diff --git a/pkgs/development/python-modules/pyhepmc_export_edges.patch b/pkgs/development/python-modules/pyhepmc/pyhepmc_export_edges.patch
index 5c6e56566a34..5c6e56566a34 100644
--- a/pkgs/development/python-modules/pyhepmc_export_edges.patch
+++ b/pkgs/development/python-modules/pyhepmc/pyhepmc_export_edges.patch
diff --git a/pkgs/development/python-modules/pyhepmc_export_flow.patch b/pkgs/development/python-modules/pyhepmc/pyhepmc_export_flow.patch
index 85e26a1a1607..85e26a1a1607 100644
--- a/pkgs/development/python-modules/pyhepmc_export_flow.patch
+++ b/pkgs/development/python-modules/pyhepmc/pyhepmc_export_flow.patch
diff --git a/pkgs/development/python-modules/pyhomematic/default.nix b/pkgs/development/python-modules/pyhomematic/default.nix
index cd10edd2b64c..95dc4798357f 100644
--- a/pkgs/development/python-modules/pyhomematic/default.nix
+++ b/pkgs/development/python-modules/pyhomematic/default.nix
@@ -2,13 +2,13 @@
 
 buildPythonPackage rec {
   pname = "pyhomematic";
-  version = "0.1.47";
+  version = "0.1.50";
 
   disabled = !isPy3k;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "bdac91dc6810b3d9f53d26daf6e6f26480c556fc3b43890e376aa23c17afd60b";
+    sha256 = "d1b13b2786784b197e279e82fb0fbdb11cb55df91b48c12160d85de435fd4046";
   };
 
   # PyPI tarball does not include tests/ directory
diff --git a/pkgs/development/python-modules/pymatgen/default.nix b/pkgs/development/python-modules/pymatgen/default.nix
index 523e7f808064..1365cc4aeb64 100644
--- a/pkgs/development/python-modules/pymatgen/default.nix
+++ b/pkgs/development/python-modules/pymatgen/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "pymatgen";
-  version = "2018.9.1";
+  version = "2018.9.30";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "dee5dbd8008081de9f27759c20c550d09a07136eeebfe941e3d05fd88ccace18";
+    sha256 = "08c8da84beec153c0ad7acc47e67245e2d6598169e9803b82bd53131a67293be";
   };
 
   nativeBuildInputs = [ glibcLocales ];
diff --git a/pkgs/development/python-modules/pympler/default.nix b/pkgs/development/python-modules/pympler/default.nix
new file mode 100644
index 000000000000..1a3eb0475105
--- /dev/null
+++ b/pkgs/development/python-modules/pympler/default.nix
@@ -0,0 +1,31 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+}:
+
+buildPythonPackage rec {
+  pname = "Pympler";
+  version = "0.4.3";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "0mhyxqlkha98y8mi5zqcjg23r30mgdjdzs05lghbmqfdyvzjh1a3";
+  };
+
+ # Remove test asizeof.flatsize(), broken and can be missed as
+ # test is only useful on python 2.5, see https://github.com/pympler/pympler/issues/22
+ patchPhase = ''
+   substituteInPlace ./test/asizeof/test_asizeof.py --replace "n, e = test_flatsize" "#n, e = test_flatsize"
+   substituteInPlace ./test/asizeof/test_asizeof.py --replace "self.assert_(n," "#self.assert_(n,"
+   substituteInPlace ./test/asizeof/test_asizeof.py --replace "self.assert_(not e" "#self.assert_(not e"
+  '';
+
+  doCheck = stdenv.hostPlatform.isLinux;
+
+  meta = with stdenv.lib; {
+    description = "Tool to measure, monitor and analyze memory behavior";
+    homepage = https://pythonhosted.org/Pympler/;
+    license = licenses.asl20;
+  };
+
+}
diff --git a/pkgs/development/python-modules/pymysqlsa/default.nix b/pkgs/development/python-modules/pymysqlsa/default.nix
new file mode 100644
index 000000000000..0167fe00ea7c
--- /dev/null
+++ b/pkgs/development/python-modules/pymysqlsa/default.nix
@@ -0,0 +1,25 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, pymysql
+, sqlalchemy
+}:
+
+buildPythonPackage rec {
+  pname = "pymysqlsa";
+  version = "1.0";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "a2676bce514a29b2d6ab418812259b0c2f7564150ac53455420a20bd7935314a";
+  };
+
+  propagatedBuildInputs = [ pymysql sqlalchemy ];
+
+  meta = with stdenv.lib; {
+    description = "PyMySQL dialect for SQL Alchemy";
+    homepage = https://pypi.python.org/pypi/pymysql_sa;
+    license = licenses.mit;
+  };
+
+}
diff --git a/pkgs/development/python-modules/pyparsing/default.nix b/pkgs/development/python-modules/pyparsing/default.nix
index 51500281abb6..5861288926f0 100644
--- a/pkgs/development/python-modules/pyparsing/default.nix
+++ b/pkgs/development/python-modules/pyparsing/default.nix
@@ -1,11 +1,11 @@
 { stdenv, buildPythonPackage, fetchPypi }:
 buildPythonPackage rec {
     pname = "pyparsing";
-    version = "2.2.0";
+    version = "2.2.2";
 
     src = fetchPypi {
       inherit pname version;
-      sha256 = "016b9gh606aa44sq92jslm89bg874ia0yyiyb643fa6dgbsbqch8";
+      sha256 = "bc6c7146b91af3f567cf6daeaec360bc07d45ffec4cf5353f4d7a208ce7ca30a";
     };
 
     # Not everything necessary to run the tests is included in the distribution
diff --git a/pkgs/development/python-modules/pyperclip/default.nix b/pkgs/development/python-modules/pyperclip/default.nix
index 0b0737992547..762603315216 100644
--- a/pkgs/development/python-modules/pyperclip/default.nix
+++ b/pkgs/development/python-modules/pyperclip/default.nix
@@ -1,12 +1,12 @@
 { lib, buildPythonPackage, fetchPypi }:
 
 buildPythonPackage rec {
-  version = "1.6.4";
+  version = "1.6.5";
   pname = "pyperclip";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "f70e83d27c445795b6bf98c2bc826bbf2d0d63d4c7f83091c8064439042ba0dc";
+    sha256 = "406bc020d4b8e60d8673876271b815befc4c02fd8d919e4aacc667d69fab99ea";
   };
 
   doCheck = false;
diff --git a/pkgs/development/python-modules/pypoppler/default.nix b/pkgs/development/python-modules/pypoppler/default.nix
new file mode 100644
index 000000000000..ccda4f2631d2
--- /dev/null
+++ b/pkgs/development/python-modules/pypoppler/default.nix
@@ -0,0 +1,41 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, isPy3k
+, pycairo
+, pygobject2
+, pkgs
+}:
+
+buildPythonPackage rec {
+  pname = "pypoppler";
+  version = "0.12.2";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "47e6ac99e5b114b9abf2d1dd1bca06f22c028d025432512989f659142470810f";
+  };
+
+  NIX_CFLAGS_COMPILE="-I${pkgs.poppler.dev}/include/poppler/";
+  nativeBuildInputs = [ pkgs.pkgconfig ];
+  buildInputs = [ pkgs.poppler.dev ];
+  propagatedBuildInputs = [ pycairo pygobject2 ];
+
+  patches = [
+    ./pypoppler-0.39.0.patch
+    ./pypoppler-poppler.c.patch
+  ];
+
+  # Not supported.
+  disabled = isPy3k;
+
+  # No tests in archive
+  doCheck = false;
+
+  meta = with stdenv.lib; {
+    homepage = https://code.launchpad.net/~mriedesel/poppler-python/main;
+    description = "Python bindings for poppler-glib, unofficial branch including bug fixes, and removal of gtk dependencies";
+    license = licenses.gpl2;
+  };
+
+}
diff --git a/pkgs/development/python-modules/pypoppler-0.39.0.patch b/pkgs/development/python-modules/pypoppler/pypoppler-0.39.0.patch
index b9e02242e003..b9e02242e003 100644
--- a/pkgs/development/python-modules/pypoppler-0.39.0.patch
+++ b/pkgs/development/python-modules/pypoppler/pypoppler-0.39.0.patch
diff --git a/pkgs/development/python-modules/pypoppler-poppler.c.patch b/pkgs/development/python-modules/pypoppler/pypoppler-poppler.c.patch
index 1104097cd3e7..1104097cd3e7 100644
--- a/pkgs/development/python-modules/pypoppler-poppler.c.patch
+++ b/pkgs/development/python-modules/pypoppler/pypoppler-poppler.c.patch
diff --git a/pkgs/development/python-modules/pyramid/default.nix b/pkgs/development/python-modules/pyramid/default.nix
new file mode 100644
index 000000000000..060b6b77f870
--- /dev/null
+++ b/pkgs/development/python-modules/pyramid/default.nix
@@ -0,0 +1,46 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, docutils
+, virtualenv
+, webtest
+, zope_component
+, hupper
+, PasteDeploy
+, plaster
+, plaster-pastedeploy
+, repoze_lru
+, repoze_sphinx_autointerface
+, translationstring
+, venusian
+, webob
+, zope_deprecation
+, zope_interface
+, isPy35
+}:
+
+buildPythonPackage rec {
+  pname = "pyramid";
+  version = "1.9.1";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "0dhbzc4q0vsnv3aihy728aczg56xs6h9s1rmvr096q4lb6yln3w4";
+  };
+
+  checkInputs = [ docutils virtualenv webtest zope_component ];
+
+  propagatedBuildInputs = [ hupper PasteDeploy plaster plaster-pastedeploy repoze_lru repoze_sphinx_autointerface translationstring venusian webob zope_deprecation zope_interface ];
+
+  # Failing tests
+  # https://github.com/Pylons/pyramid/issues/1899
+  doCheck = !isPy35;
+
+  meta = with stdenv.lib; {
+    description = "The Pyramid Web Framework, a Pylons project";
+    homepage = https://trypyramid.com/;
+    license = licenses.bsd0;
+    maintainers = with maintainers; [ garbas domenkozar ];
+  };
+
+}
diff --git a/pkgs/development/python-modules/pyramid_chameleon/default.nix b/pkgs/development/python-modules/pyramid_chameleon/default.nix
new file mode 100644
index 000000000000..257be31f32d9
--- /dev/null
+++ b/pkgs/development/python-modules/pyramid_chameleon/default.nix
@@ -0,0 +1,28 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, chameleon
+, pyramid
+, zope_interface
+, setuptools
+}:
+
+buildPythonPackage rec {
+  pname = "pyramid_chameleon";
+  version = "0.3";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "d176792a50eb015d7865b44bd9b24a7bd0489fa9a5cebbd17b9e05048cef9017";
+  };
+
+  propagatedBuildInputs = [ chameleon pyramid zope_interface setuptools ];
+
+  meta = with stdenv.lib; {
+    description = "Chameleon template compiler for pyramid";
+    homepage = https://github.com/Pylons/pyramid_chameleon;
+    license = licenses.bsd0;
+    maintainers = with maintainers; [ domenkozar ];
+  };
+
+}
diff --git a/pkgs/development/python-modules/pyramid_exclog/default.nix b/pkgs/development/python-modules/pyramid_exclog/default.nix
new file mode 100644
index 000000000000..dfdea42b02c4
--- /dev/null
+++ b/pkgs/development/python-modules/pyramid_exclog/default.nix
@@ -0,0 +1,25 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, pyramid
+}:
+
+buildPythonPackage rec {
+  pname = "pyramid_exclog";
+  version = "0.7";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "a58c82866c3e1a350684e6b83b440d5dc5e92ca5d23794b56d53aac06fb65a2c";
+  };
+
+  propagatedBuildInputs = [ pyramid ];
+
+  meta = with stdenv.lib; {
+    description = "A package which logs to a Python logger when an exception is raised by a Pyramid application";
+    homepage = http://docs.pylonsproject.org/;
+    license = licenses.bsd0;
+    maintainers = with maintainers; [ garbas domenkozar ];
+  };
+
+}
diff --git a/pkgs/development/python-modules/pyramid_hawkauth/default.nix b/pkgs/development/python-modules/pyramid_hawkauth/default.nix
new file mode 100644
index 000000000000..a27232550571
--- /dev/null
+++ b/pkgs/development/python-modules/pyramid_hawkauth/default.nix
@@ -0,0 +1,29 @@
+{ stdenv
+, buildPythonPackage
+, fetchgit
+, pyramid
+, hawkauthlib
+, tokenlib
+, webtest
+}:
+
+buildPythonPackage rec {
+  pname = "pyramidhawkauth";
+  version = "0.1.0";
+
+  src = fetchgit {
+    url = https://github.com/mozilla-services/pyramid_hawkauth.git;
+    rev = "refs/tags/v${version}";
+    sha256 = "038ign7qlavlmvrhb2y8bygbxvy4j7bx2k1zg0i3wblg2ja50w7h";
+  };
+
+  propagatedBuildInputs = [ pyramid hawkauthlib tokenlib ];
+  buildInputs = [ webtest ];
+
+  meta = with stdenv.lib; {
+    homepage = https://github.com/mozilla-services/pyramid_hawkauth;
+    description = "A Pyramid authentication plugin for HAWK";
+    license = licenses.mpl20;
+  };
+
+}
diff --git a/pkgs/development/python-modules/pyramid_jinja2/default.nix b/pkgs/development/python-modules/pyramid_jinja2/default.nix
new file mode 100644
index 000000000000..d211b9daf334
--- /dev/null
+++ b/pkgs/development/python-modules/pyramid_jinja2/default.nix
@@ -0,0 +1,28 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, webtest
+, jinja2
+, pyramid
+}:
+
+buildPythonPackage rec {
+  pname = "pyramid_jinja2";
+  version = "2.5";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "93c86e3103b454301f4d66640191aba047f2ab85ba75647aa18667b7448396bd";
+  };
+
+  buildInputs = [ webtest ];
+  propagatedBuildInputs = [ jinja2 pyramid ];
+
+  meta = with stdenv.lib; {
+    description = "Jinja2 template bindings for the Pyramid web framework";
+    homepage = https://github.com/Pylons/pyramid_jinja2;
+    license = licenses.bsd0;
+    maintainers = with maintainers; [ domenkozar ];
+  };
+
+}
diff --git a/pkgs/development/python-modules/pyramid_mako/default.nix b/pkgs/development/python-modules/pyramid_mako/default.nix
new file mode 100644
index 000000000000..2752ba7641eb
--- /dev/null
+++ b/pkgs/development/python-modules/pyramid_mako/default.nix
@@ -0,0 +1,27 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, webtest
+, pyramid
+, Mako
+}:
+
+buildPythonPackage rec {
+  pname = "pyramid_mako";
+  version = "0.3.1";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "00811djmsc4rz20kpy2paam05fbx6dmrv2i5jf90f6xp6zw4isy6";
+  };
+
+  buildInputs = [ webtest ];
+  propagatedBuildInputs = [ pyramid Mako ];
+
+  meta = with stdenv.lib; {
+    homepage = https://github.com/Pylons/pyramid_mako;
+    description = "Mako template bindings for the Pyramid web framework";
+    license = licenses.bsd0;
+  };
+
+}
diff --git a/pkgs/development/python-modules/pyramid_multiauth/default.nix b/pkgs/development/python-modules/pyramid_multiauth/default.nix
new file mode 100644
index 000000000000..7130e8b499f3
--- /dev/null
+++ b/pkgs/development/python-modules/pyramid_multiauth/default.nix
@@ -0,0 +1,24 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, pyramid
+}:
+
+buildPythonPackage rec {
+  pname = "pyramid_multiauth";
+  version = "0.8.0";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1lq292qakrm4ixi4vaif8dqywzj08pn6qy0wi4gw28blh39p0msk";
+  };
+
+  propagatedBuildInputs = [ pyramid ];
+
+  meta = with stdenv.lib; {
+    description = "Authentication policy for Pyramid that proxies to a stack of other authentication policies";
+    homepage = https://github.com/mozilla-services/pyramid_multiauth;
+    license = licenses.mpl20;
+  };
+
+}
diff --git a/pkgs/development/python-modules/pyrfc3339/default.nix b/pkgs/development/python-modules/pyrfc3339/default.nix
new file mode 100644
index 000000000000..ddc47dfc2959
--- /dev/null
+++ b/pkgs/development/python-modules/pyrfc3339/default.nix
@@ -0,0 +1,26 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, pytz
+, nose
+}:
+
+buildPythonPackage rec {
+  pname = "pyRFC3339";
+  version = "0.2";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1pp648xsjaw9h1xq2mgwzda5wis2ypjmzxlksc1a8grnrdmzy155";
+  };
+
+  propagatedBuildInputs = [ pytz ];
+  buildInputs = [ nose ];
+
+  meta = with stdenv.lib; {
+    description = "Generate and parse RFC 3339 timestamps";
+    homepage = https://github.com/kurtraschke/pyRFC3339;
+    license = licenses.mit;
+  };
+
+}
diff --git a/pkgs/development/python-modules/pyroute2/default.nix b/pkgs/development/python-modules/pyroute2/default.nix
index e9c48cbb8b40..16805ac58c04 100644
--- a/pkgs/development/python-modules/pyroute2/default.nix
+++ b/pkgs/development/python-modules/pyroute2/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "pyroute2";
-  version = "0.5.2";
+  version = "0.5.3";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "42bf74495d95a0196a74dd171357f660175aba2bfc23f9b5f63e3830ccbef9ac";
+    sha256 = "79f7b4286be773c46914df0201dabaf92717a9c06e341e0c420603b2dd31c6bf";
   };
 
   # requires root priviledges
diff --git a/pkgs/development/python-modules/pyspark/default.nix b/pkgs/development/python-modules/pyspark/default.nix
index b333ca27143c..29dd344a34cb 100644
--- a/pkgs/development/python-modules/pyspark/default.nix
+++ b/pkgs/development/python-modules/pyspark/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "pyspark";
-  version = "2.3.1";
+  version = "2.3.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "52d77a7ef43088b0235742cfcafc83435d0d98c5fdded1d8c600f1887e9e0213";
+    sha256 = "7fb3b4fe47edb0fb78cecec37e0f2a728590f17ef6a49eae55141a7a374c07c8";
   };
 
   # pypandoc is broken with pandoc2, so we just lose docs.
diff --git a/pkgs/development/python-modules/pysrim/default.nix b/pkgs/development/python-modules/pysrim/default.nix
index 90dfc1f56045..dc6c09f7b703 100644
--- a/pkgs/development/python-modules/pysrim/default.nix
+++ b/pkgs/development/python-modules/pysrim/default.nix
@@ -8,11 +8,11 @@
 
 buildPythonPackage rec {
   pname = "pysrim";
-  version = "0.5.8";
+  version = "0.5.9";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "6c297b4ea6f037946c72e94ddd9a7624cf2fd97c488acbee9409001c970754f1";
+    sha256 = "071c5be48e58fa019f7848588f88ce0a09bfe6493c9ff5987829d162c0f4a497";
   };
 
   buildInputs = [ pytestrunner ];
diff --git a/pkgs/development/python-modules/pytest-isort/default.nix b/pkgs/development/python-modules/pytest-isort/default.nix
index 758a2f194b25..23cd76679925 100644
--- a/pkgs/development/python-modules/pytest-isort/default.nix
+++ b/pkgs/development/python-modules/pytest-isort/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "pytest-isort";
-  version = "0.2.0";
+  version = "0.2.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "d4d195ecfe33d81e258d251b2679b32216bad84131fb41984da22d9d0328a6fe";
+    sha256 = "c70d0f900f4647bb714f0843dd82d7f7b759904006de31254efdb72ce88e0c0e";
   };
 
   propagatedBuildInputs = [ pytestcache pytest isort ];
diff --git a/pkgs/development/python-modules/pytest-relaxed/default.nix b/pkgs/development/python-modules/pytest-relaxed/default.nix
new file mode 100644
index 000000000000..bd92577d5bac
--- /dev/null
+++ b/pkgs/development/python-modules/pytest-relaxed/default.nix
@@ -0,0 +1,37 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, pytest
+, six
+, decorator
+}:
+
+buildPythonPackage rec {
+  version = "1.1.4";
+  pname = "pytest-relaxed";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "511ac473252baa67d5451f7864516e2e8f1acedf0cef71f79d2ed916ee04e146";
+  };
+
+  propagatedBuildInputs = [ pytest six decorator ];
+
+  patchPhase = ''
+    sed -i "s/pytest>=3,<3.3/pytest/g" setup.py
+  '';
+
+  # skip tests due to dir requirements
+  doCheck = false;
+
+  checkPhase = ''
+    pytest tests
+  '';
+
+  meta = with stdenv.lib; {
+    homepage = https://pytest-relaxed.readthedocs.io/;
+    description = "Relaxed test discovery/organization for pytest";
+    license = licenses.bsd0;
+    maintainers = [ maintainers.costrouc ];
+  };
+}
diff --git a/pkgs/development/python-modules/pytest-xdist/default.nix b/pkgs/development/python-modules/pytest-xdist/default.nix
index 46d505b3801b..71d4df4a0c55 100644
--- a/pkgs/development/python-modules/pytest-xdist/default.nix
+++ b/pkgs/development/python-modules/pytest-xdist/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "pytest-xdist";
-  version = "1.23.0";
+  version = "1.23.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "28e25e79698b2662b648319d3971c0f9ae0e6500f88258ccb9b153c31110ba9b";
+    sha256 = "1ef0d05c905cfa0c5442c90e9e350e65c6ada120e33a00a066ca51c89f5f869a";
   };
 
   nativeBuildInputs = [ setuptools_scm ];
diff --git a/pkgs/development/python-modules/python-levenshtein/default.nix b/pkgs/development/python-modules/python-levenshtein/default.nix
new file mode 100644
index 000000000000..7a16621da0a5
--- /dev/null
+++ b/pkgs/development/python-modules/python-levenshtein/default.nix
@@ -0,0 +1,25 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+}:
+
+buildPythonPackage rec {
+  pname = "python-Levenshtein";
+  version = "0.12.0";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1c9ybqcja31nghfcc8xxbbz9h60s9qi12b9hr4jyl69xbvg12fh3";
+  };
+
+  # No tests included in archive
+  doCheck = false;
+
+  meta = with stdenv.lib; {
+    description = "Functions for fast computation of Levenshtein distance and string similarity";
+    homepage    = "https://github.com/ztane/python-Levenshtein";
+    license     = licenses.gpl2;
+    maintainers = with maintainers; [ aske ];
+  };
+
+}
diff --git a/pkgs/development/python-modules/python-mapnik/default.nix b/pkgs/development/python-modules/python-mapnik/default.nix
new file mode 100644
index 000000000000..692bbe4bcd89
--- /dev/null
+++ b/pkgs/development/python-modules/python-mapnik/default.nix
@@ -0,0 +1,58 @@
+{ stdenv
+, buildPythonPackage
+, fetchFromGitHub
+, isPyPy
+, python
+, pkgs
+, pillow
+, pycairo
+}:
+
+buildPythonPackage rec {
+  pname = "python-mapnik";
+  version = "3.0.16";
+
+  src = pkgs.fetchFromGitHub {
+    owner = "mapnik";
+    repo = "python-mapnik";
+    rev = "v${version}";
+    sha256 = "1gqs4kvmjawdgl80j0ab5r8y0va9kw0rvwix3093xsv4hwd00lcc";
+  };
+
+  disabled = isPyPy;
+  doCheck = false; # doesn't find needed test data files
+  preBuild = let
+    pythonVersion = with stdenv.lib.versions; "${major python.version}${minor python.version}";
+  in ''
+    export BOOST_PYTHON_LIB="boost_python${pythonVersion}"
+    export BOOST_THREAD_LIB="boost_thread"
+    export BOOST_SYSTEM_LIB="boost_system"
+  '';
+  buildInputs = with pkgs; [
+      (boost.override {
+        enablePython = true;
+        inherit python;
+      })
+      (mapnik.override {
+        inherit python;
+        boost = (boost.override { enablePython = true; inherit python; });
+      })
+      cairo
+      harfbuzz
+      icu
+      libjpeg
+      libpng
+      libtiff
+      libwebp
+      proj
+      zlib
+    ];
+  propagatedBuildInputs = [ pillow pycairo ];
+
+  meta = with stdenv.lib; {
+    description = "Python bindings for Mapnik";
+    homepage = http://mapnik.org;
+    license  = licenses.lgpl21;
+  };
+
+}
diff --git a/pkgs/development/python-modules/python-otr/default.nix b/pkgs/development/python-modules/python-otr/default.nix
new file mode 100644
index 000000000000..2b08bbffa450
--- /dev/null
+++ b/pkgs/development/python-modules/python-otr/default.nix
@@ -0,0 +1,33 @@
+{ stdenv
+, buildPythonPackage
+, fetchFromGitHub
+, isPy3k
+, zope_interface
+, cryptography
+, application
+, gmpy2
+}:
+
+buildPythonPackage rec {
+  pname = "python-otr";
+  version = "1.2.0";
+  disabled = isPy3k;
+
+  src = fetchFromGitHub {
+    owner = "AGProjects";
+    repo = pname;
+    rev = "release-${version}";
+    sha256 = "0p3b1n8jlxwd65gbk2k5007fkhdyjwcvr4982s42hncivxvabzzy";
+  };
+
+  propagatedBuildInputs = [ zope_interface cryptography application gmpy2 ];
+
+  meta = with stdenv.lib; {
+    description = "A pure python implementation of OTR";
+    homepage = https://github.com/AGProjects/otr;
+    license = licenses.lgpl21Plus;
+    platforms = platforms.linux;
+    maintainers = with maintainers; [ edwtjo ];
+  };
+
+}
diff --git a/pkgs/development/python-modules/python-slugify/default.nix b/pkgs/development/python-modules/python-slugify/default.nix
index 9c8cc68af3d0..b3e3de0285a9 100644
--- a/pkgs/development/python-modules/python-slugify/default.nix
+++ b/pkgs/development/python-modules/python-slugify/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
     pname = "python-slugify";
-    version = "1.2.5";
+    version = "1.2.6";
 
     src = fetchPypi {
       inherit pname version;
-      sha256 = "5dbb360b882b2dabe0471a1a92f604504d83c2a73c71f2098d004ab62e695534";
+      sha256 = "7723daf30996db26573176bddcdf5fcb98f66dc70df05c9cb29f2c79b8193245";
     };
     doCheck = !isPy3k;
     # (only) on python3 unittest loader (loadTestsFromModule) fails
diff --git a/pkgs/development/python-modules/python2-pythondialog/default.nix b/pkgs/development/python-modules/python2-pythondialog/default.nix
new file mode 100644
index 000000000000..33e63460d874
--- /dev/null
+++ b/pkgs/development/python-modules/python2-pythondialog/default.nix
@@ -0,0 +1,27 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, isPy3k
+}:
+
+buildPythonPackage rec {
+  pname = "python2-pythondialog";
+  version = "3.3.0";
+  disabled = isPy3k;
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1yhkagsh99bfi592ymczf8rnw8rk6n9hdqy3dd98m3yrx8zmjvry";
+  };
+
+  patchPhase = ''
+    substituteInPlace dialog.py --replace ":/bin:/usr/bin" ":$out/bin"
+  '';
+
+  meta = with stdenv.lib; {
+    description = "A Python interface to the UNIX dialog utility and mostly-compatible programs (Python 2 backport)";
+    homepage = "http://pythondialog.sourceforge.net/";
+    license = licenses.lgpl3;
+  };
+
+}
diff --git a/pkgs/development/python-modules/python_openzwave/default.nix b/pkgs/development/python-modules/python_openzwave/default.nix
index e04915a503db..a7973501bf74 100644
--- a/pkgs/development/python-modules/python_openzwave/default.nix
+++ b/pkgs/development/python-modules/python_openzwave/default.nix
@@ -5,13 +5,13 @@
 
 buildPythonPackage rec {
   pname = "python_openzwave";
-  version = "0.4.9";
+  version = "0.4.10";
 
   disabled = !isPy3k;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "97ddd104f52e3a4d7115c3de5d2136631d1f66627fc9b45d56956c3f2b6e0cdb";
+    sha256 = "4bde7afd6c97637b59ee37a1c432c285daf179e535eb9a0d5dd95a65600b0cc8";
     extension = "zip";
   };
 
diff --git a/pkgs/development/python-modules/pythonirclib/default.nix b/pkgs/development/python-modules/pythonirclib/default.nix
new file mode 100644
index 000000000000..35873d301be4
--- /dev/null
+++ b/pkgs/development/python-modules/pythonirclib/default.nix
@@ -0,0 +1,34 @@
+{ stdenv
+, buildPythonPackage
+, fetchurl
+, paver
+, isPy3k
+}:
+
+buildPythonPackage rec {
+  pname = "irclib";
+  version = "0.4.8";
+  disabled = isPy3k;
+
+  src = fetchurl {
+    url = "mirror://sourceforge/python-irclib/python-irclib-${version}.tar.gz";
+    sha256 = "1x5456y4rbxmnw4yblhb4as5791glcw394bm36px3x6l05j3mvl1";
+  };
+
+  patches = [(fetchurl {
+    url = "http://trac.uwc.ac.za/trac/python_tools/browser/xmpp/resources/irc-transport/irclib.py.diff?rev=387&format=raw";
+    name = "irclib.py.diff";
+    sha256 = "5fb8d95d6c95c93eaa400b38447c63e7a176b9502bc49b2f9b788c9905f4ec5e";
+  })];
+
+  patchFlags = "irclib.py";
+
+  propagatedBuildInputs = [ paver ];
+
+  meta = with stdenv.lib; {
+    description = "Python IRC library";
+    homepage = https://bitbucket.org/jaraco/irc;
+    license = with licenses; [ lgpl21 ];
+  };
+
+}
diff --git a/pkgs/development/python-modules/pytun/default.nix b/pkgs/development/python-modules/pytun/default.nix
new file mode 100644
index 000000000000..32e3b683e410
--- /dev/null
+++ b/pkgs/development/python-modules/pytun/default.nix
@@ -0,0 +1,27 @@
+{ stdenv
+, buildPythonPackage
+, fetchFromGitHub
+}:
+
+buildPythonPackage rec {
+  pname = "pytun";
+  version = "2.2.1";
+
+  src = fetchFromGitHub {
+    rev = "v${version}";
+    owner = "montag451";
+    repo = "pytun";
+    sha256 = "1bxk0z0v8m0b01xg94f039j3bsclkshb7girvjqfzk5whbd2nryh";
+  };
+
+  doCheck = false;
+
+  meta = with stdenv.lib; {
+    homepage = https://github.com/montag451/pytun;
+    description = "Linux TUN/TAP wrapper for Python";
+    license = licenses.mit;
+    maintainers = with maintainers; [ montag451 ];
+    platforms = platforms.linux;
+  };
+
+}
diff --git a/pkgs/development/python-modules/pyxdg/default.nix b/pkgs/development/python-modules/pyxdg/default.nix
new file mode 100644
index 000000000000..31b2ff4e9883
--- /dev/null
+++ b/pkgs/development/python-modules/pyxdg/default.nix
@@ -0,0 +1,25 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+}:
+
+buildPythonPackage rec {
+  pname = "pyxdg";
+  version = "0.25";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "81e883e0b9517d624e8b0499eb267b82a815c0b7146d5269f364988ae031279d";
+  };
+
+  # error: invalid command 'test'
+  doCheck = false;
+
+  meta = with stdenv.lib; {
+    homepage = http://freedesktop.org/wiki/Software/pyxdg;
+    description = "Contains implementations of freedesktop.org standards";
+    license = licenses.lgpl2;
+    maintainers = with maintainers; [ domenkozar ];
+  };
+
+}
diff --git a/pkgs/development/python-modules/rainbowstream/default.nix b/pkgs/development/python-modules/rainbowstream/default.nix
new file mode 100644
index 000000000000..53c0c148eea4
--- /dev/null
+++ b/pkgs/development/python-modules/rainbowstream/default.nix
@@ -0,0 +1,54 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, python
+, pkgs
+, pillow
+, twitter
+, pyfiglet
+, requests
+, arrow
+, dateutil
+, pysocks
+, pocket
+}:
+
+buildPythonPackage rec {
+  pname = "rainbowstream";
+  version = "1.3.7";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "0zpi1x3b535pwx8rkq57nnrb5d5ma65vvlalar9vi6ilp124x1w2";
+  };
+
+  patches = [ ./image.patch ];
+
+  postPatch = ''
+    clib=$out/${python.sitePackages}/rainbowstream/image.so
+    substituteInPlace rainbowstream/c_image.py \
+      --replace @CLIB@ $clib
+    sed -i 's/requests.*"/requests"/' setup.py
+  '';
+
+  LC_ALL="en_US.UTF-8";
+
+  postInstall = ''
+    mkdir -p $out/lib
+    cc -fPIC -shared -o $clib rainbowstream/image.c
+    for prog in "$out/bin/"*; do
+      wrapProgram "$prog" \
+        --prefix PYTHONPATH : "$PYTHONPATH"
+    done
+  '';
+
+  buildInputs =  [ pkgs.libjpeg pkgs.freetype pkgs.zlib pkgs.glibcLocales pillow twitter pyfiglet requests arrow dateutil pysocks pocket ];
+
+  meta = with stdenv.lib; {
+    description = "Streaming command-line twitter client";
+    homepage    = "http://www.rainbowstream.org/";
+    license     = licenses.mit;
+    maintainers = with maintainers; [ thoughtpolice ];
+  };
+
+}
diff --git a/pkgs/development/python-modules/random2/default.nix b/pkgs/development/python-modules/random2/default.nix
new file mode 100644
index 000000000000..ecc049b34f46
--- /dev/null
+++ b/pkgs/development/python-modules/random2/default.nix
@@ -0,0 +1,24 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, isPyPy
+}:
+
+buildPythonPackage rec {
+  pname = "random2";
+  version = "1.0.1";
+  doCheck = !isPyPy;
+
+  src = fetchPypi {
+    inherit pname version;
+    extension = "zip";
+    sha256 = "34ad30aac341039872401595df9ab2c9dc36d0b7c077db1cea9ade430ed1c007";
+  };
+
+  meta = with stdenv.lib; {
+    homepage = http://pypi.python.org/pypi/random2;
+    description = "Python 3 compatible Python 2 `random` Module";
+    license = licenses.psfl;
+  };
+
+}
diff --git a/pkgs/development/python-modules/reikna/default.nix b/pkgs/development/python-modules/reikna/default.nix
index 760ca0056ff6..2e828a2a8e82 100644
--- a/pkgs/development/python-modules/reikna/default.nix
+++ b/pkgs/development/python-modules/reikna/default.nix
@@ -13,11 +13,11 @@
 
 buildPythonPackage rec {
   pname = "reikna";
-  version = "0.7.1";
+  version = "0.7.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0afc5d502cc9ba0dadd88c15d72e2fdaa09fee31faaae5064889732de7940953";
+    sha256 = "c52f5ae13e35284feda8f6b67c0d6223c02c0292b1495969cf7a42f547b3fc18";
   };
 
   checkInputs = [ sphinx pytestcov pytest ];
diff --git a/pkgs/development/python-modules/relatorio/default.nix b/pkgs/development/python-modules/relatorio/default.nix
index dbc28263b06d..e9f4b8e2bd6c 100644
--- a/pkgs/development/python-modules/relatorio/default.nix
+++ b/pkgs/development/python-modules/relatorio/default.nix
@@ -2,10 +2,10 @@
 
 buildPythonPackage rec {
   pname = "relatorio";
-  version = "0.8.0";
+  version = "0.8.1";
   src = fetchPypi {
     inherit pname version;
-    sha256 = "bddf85d029c5c85a0f976d73907e14e4c3093065fe8527170c91abf0218546d9";
+    sha256 = "149a1c4c2a35d9b9e634fe80cac405bc9b4c03a42f818302362183515e7e835d";
   };
   propagatedBuildInputs = [
     genshi
diff --git a/pkgs/development/python-modules/reportlab/default.nix b/pkgs/development/python-modules/reportlab/default.nix
index e2f2a7814aa5..82d2889364f1 100644
--- a/pkgs/development/python-modules/reportlab/default.nix
+++ b/pkgs/development/python-modules/reportlab/default.nix
@@ -11,11 +11,11 @@ let
   ft = freetype.overrideAttrs (oldArgs: { dontDisableStatic = true; });
 in buildPythonPackage rec {
   pname = "reportlab";
-  version = "3.5.6";
+  version = "3.5.9";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "3836a49e7ea7bce458f437cbc094633c7fd4ac027180565875c18ecc726f261e";
+    sha256 = "f92f81314807cd860f29fe07a1a4100b03910ae6bbfca20a07e02c3b460f4f20";
   };
 
   checkInputs = [ glibcLocales ];
diff --git a/pkgs/development/python-modules/repoze_lru/default.nix b/pkgs/development/python-modules/repoze_lru/default.nix
new file mode 100644
index 000000000000..c08120d24128
--- /dev/null
+++ b/pkgs/development/python-modules/repoze_lru/default.nix
@@ -0,0 +1,22 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+}:
+
+buildPythonPackage rec {
+  pname = "repoze.lru";
+  version = "0.6";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "0f7a323bf716d3cb6cb3910cd4fccbee0b3d3793322738566ecce163b01bbd31";
+  };
+
+  meta = with stdenv.lib; {
+    description = "A tiny LRU cache implementation and decorator";
+    homepage = http://www.repoze.org/;
+    license = licenses.bsd0;
+    maintainers = with maintainers; [ garbas domenkozar ];
+  };
+
+}
diff --git a/pkgs/development/python-modules/repoze_sphinx_autointerface/default.nix b/pkgs/development/python-modules/repoze_sphinx_autointerface/default.nix
new file mode 100644
index 000000000000..96a893edd7c0
--- /dev/null
+++ b/pkgs/development/python-modules/repoze_sphinx_autointerface/default.nix
@@ -0,0 +1,25 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, zope_interface
+, sphinx
+}:
+
+buildPythonPackage rec {
+  pname = "repoze.sphinx.autointerface";
+  version = "0.7.1";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "97ef5fac0ab0a96f1578017f04aea448651fa9f063fc43393a8253bff8d8d504";
+  };
+
+  propagatedBuildInputs = [ zope_interface sphinx ];
+
+  meta = with stdenv.lib; {
+    homepage = https://github.com/repoze/repoze.sphinx.autointerface;
+    description = "Auto-generate Sphinx API docs from Zope interfaces";
+    license = licenses.bsd0;
+    maintainers = with maintainers; [ domenkozar ];
+  };
+}
diff --git a/pkgs/development/python-modules/rethinkdb/default.nix b/pkgs/development/python-modules/rethinkdb/default.nix
new file mode 100644
index 000000000000..f6d816d37c0e
--- /dev/null
+++ b/pkgs/development/python-modules/rethinkdb/default.nix
@@ -0,0 +1,23 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+}:
+
+buildPythonPackage rec {
+  pname = "rethinkdb";
+  version = "2.3.0.post6";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "05qwkmq6kn437ywyjs02jxbry720gw39q4z4jdb0cnbbi76lwddm";
+  };
+
+  doCheck = false;
+
+  meta = with stdenv.lib; {
+    description = "Python driver library for the RethinkDB database server";
+    homepage = "https://pypi.python.org/pypi/rethinkdb";
+    license = licenses.agpl3;
+  };
+
+}
diff --git a/pkgs/development/python-modules/rlp/default.nix b/pkgs/development/python-modules/rlp/default.nix
index 150234a3dd29..d9b55c852192 100644
--- a/pkgs/development/python-modules/rlp/default.nix
+++ b/pkgs/development/python-modules/rlp/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "rlp";
-  version = "1.0.2";
+  version = "1.0.3";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "040fb5172fa23d27953a886c40cac989fc031d0629db934b5a9edcd2fb28df1e";
+    sha256 = "b0ad3f3173dedf416565299f684717d4ae7620207d562d3ef94b818a40a48781";
   };
 
   checkInputs = [ pytest hypothesis ];
diff --git a/pkgs/development/python-modules/roman/default.nix b/pkgs/development/python-modules/roman/default.nix
new file mode 100644
index 000000000000..52d45d728752
--- /dev/null
+++ b/pkgs/development/python-modules/roman/default.nix
@@ -0,0 +1,22 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+}:
+
+buildPythonPackage rec {
+  version = "2.0.0";
+  pname = "roman";
+
+  src = fetchPypi {
+    inherit pname version;
+    extension = "zip";
+    sha256 = "90e83b512b44dd7fc83d67eb45aa5eb707df623e6fc6e66e7f273abd4b2613ae";
+  };
+
+  meta = with stdenv.lib; {
+    description = "Integer to Roman numerals converter";
+    homepage = "https://pypi.python.org/pypi/roman";
+    license = licenses.psfl;
+  };
+
+}
diff --git a/pkgs/development/python-modules/safe/default.nix b/pkgs/development/python-modules/safe/default.nix
new file mode 100644
index 000000000000..f7f6f7eabf91
--- /dev/null
+++ b/pkgs/development/python-modules/safe/default.nix
@@ -0,0 +1,24 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, nose
+}:
+
+buildPythonPackage rec {
+  version = "0.4";
+  pname = "Safe";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "a2fdac9fe8a9dcf02b438201d6ce0b7be78f85dc6492d03edfb89be2adf489de";
+  };
+
+  buildInputs = [ nose ];
+
+  meta = with stdenv.lib; {
+    homepage = "https://github.com/lepture/safe";
+    license = licenses.bsd3;
+    description = "Check password strength";
+  };
+
+}
diff --git a/pkgs/development/python-modules/samplerate/default.nix b/pkgs/development/python-modules/samplerate/default.nix
new file mode 100644
index 000000000000..432e2194b098
--- /dev/null
+++ b/pkgs/development/python-modules/samplerate/default.nix
@@ -0,0 +1,37 @@
+{ stdenv
+, buildPythonPackage
+, fetchgit
+, numpy
+, pkgs
+}:
+
+buildPythonPackage rec {
+  pname = "scikits.samplerate";
+  version = "0.3.3";
+
+  src = pkgs.fetchgit {
+    url = https://github.com/cournape/samplerate;
+    rev = "a536c97eb2d6195b5f266ea3cc3a35364c4c2210";
+    sha256 = "0mgic7bs5zv5ji05vr527jlxxlb70f9dg93hy1lzyz2plm1kf7gg";
+  };
+
+  buildInputs =  [ pkgs.libsamplerate ];
+  propagatedBuildInputs = [ numpy ];
+
+  preConfigure = ''
+     cat > site.cfg << END
+     [samplerate]
+     library_dirs=${pkgs.libsamplerate.out}/lib
+     include_dirs=${pkgs.libsamplerate.dev}/include
+     END
+  '';
+
+  doCheck = false;
+
+  meta = with stdenv.lib; {
+    homepage = https://github.com/cournape/samplerate;
+    description = "High quality sampling rate convertion from audio data in numpy arrays";
+    license = licenses.gpl2;
+  };
+
+}
diff --git a/pkgs/development/python-modules/schedule/default.nix b/pkgs/development/python-modules/schedule/default.nix
new file mode 100644
index 000000000000..79ad778e048a
--- /dev/null
+++ b/pkgs/development/python-modules/schedule/default.nix
@@ -0,0 +1,24 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, mock
+}:
+
+buildPythonPackage rec {
+  pname = "schedule";
+  version = "0.3.2";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1h0waw4jd5ql68y5kxb9irwapkbkwfs1w0asvbl24fq5f8czdijm";
+  };
+
+  buildInputs = [ mock ];
+
+  meta = with stdenv.lib; {
+    description = "Python job scheduling for humans";
+    homepage = https://github.com/dbader/schedule;
+    license = licenses.mit;
+  };
+
+}
diff --git a/pkgs/development/python-modules/scikit-image/default.nix b/pkgs/development/python-modules/scikit-image/default.nix
index 1a07e001caec..5d8399d6267c 100644
--- a/pkgs/development/python-modules/scikit-image/default.nix
+++ b/pkgs/development/python-modules/scikit-image/default.nix
@@ -16,11 +16,11 @@
 
 buildPythonPackage rec {
   pname = "scikit-image";
-  version = "0.14.0";
+  version = "0.14.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "325f75eb80fbc5371136e37f323445309ca9f65b6c6f718d0d0e2189e5de1224";
+    sha256 = "86a9b3b4f74f231e0a6bcfd3235dcf3f0118df25dac21201da5e064d681e2c50";
   };
 
   buildInputs = [ cython ];
diff --git a/pkgs/development/python-modules/seekpath/default.nix b/pkgs/development/python-modules/seekpath/default.nix
index dfca0a5fa2ea..5aa34a442059 100644
--- a/pkgs/development/python-modules/seekpath/default.nix
+++ b/pkgs/development/python-modules/seekpath/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "seekpath";
-  version = "1.8.2";
+  version = "1.8.4";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "8fb22231ed6fc6aa12e2f2cc6c8ca67b82648e16c1c85ddac2e2237ac4553d83";
+    sha256 = "b61dadba82acc0838402981b7944155adc092b114ca81f53f61b1d498a512e3a";
   };  
 
   LC_ALL = "en_US.utf-8";
diff --git a/pkgs/development/python-modules/setuptools-git/default.nix b/pkgs/development/python-modules/setuptools-git/default.nix
new file mode 100644
index 000000000000..c68ba10a3209
--- /dev/null
+++ b/pkgs/development/python-modules/setuptools-git/default.nix
@@ -0,0 +1,25 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, pkgs
+}:
+
+buildPythonPackage rec {
+  pname = "setuptools-git";
+  version = "1.1";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "047d7595546635edebef226bc566579d422ccc48a8a91c7d32d8bd174f68f831";
+  };
+
+  propagatedBuildInputs = [ pkgs.git ];
+  doCheck = false;
+
+  meta = with stdenv.lib; {
+    description = "Setuptools revision control system plugin for Git";
+    homepage = https://pypi.python.org/pypi/setuptools-git;
+    license = licenses.bsd3;
+  };
+
+}
diff --git a/pkgs/development/python-modules/shippai/default.nix b/pkgs/development/python-modules/shippai/default.nix
index ac035061692b..ffb221ffdc51 100644
--- a/pkgs/development/python-modules/shippai/default.nix
+++ b/pkgs/development/python-modules/shippai/default.nix
@@ -3,11 +3,11 @@
 buildPythonPackage rec {
   pname = "shippai";
   # Please make sure that vdirsyncer still builds if you update this package.
-  version = "0.2.3";
+  version = "0.2.4";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1ppwywzg4d12h658682ssmingm6ls6a96p4ak26i2w9d4lf8pfsc";
+    sha256 = "87cc9899212d917031853becd7cb14808181289c3c329b1418e9b4b6aae93c80";
   };
 
   meta = with stdenv.lib; {
diff --git a/pkgs/development/python-modules/sleekxmpp/default.nix b/pkgs/development/python-modules/sleekxmpp/default.nix
index 37ecc8bbb1c4..426019fc8a97 100644
--- a/pkgs/development/python-modules/sleekxmpp/default.nix
+++ b/pkgs/development/python-modules/sleekxmpp/default.nix
@@ -20,4 +20,5 @@ buildPythonPackage rec {
     license = licenses.mit;
     homepage = "http://sleekxmpp.com/";
   };
+
 }
diff --git a/pkgs/development/python-modules/slixmpp/default.nix b/pkgs/development/python-modules/slixmpp/default.nix
new file mode 100644
index 000000000000..88c43bce2970
--- /dev/null
+++ b/pkgs/development/python-modules/slixmpp/default.nix
@@ -0,0 +1,26 @@
+{ lib, buildPythonPackage, fetchPypi, pythonOlder, fetchurl, aiodns, pyasn1, pyasn1-modules, gnupg }:
+
+buildPythonPackage rec {
+  pname = "slixmpp";
+  version = "1.4.0";
+
+  disabled = pythonOlder "3.4";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "155qxx4xlkkjb4hphc09nsi2mi4xi3m2akg0z7064kj3nbzkwjn2";
+  };
+
+  patchPhase = ''
+    substituteInPlace slixmpp/thirdparty/gnupg.py \
+      --replace "gpgbinary='gpg'" "gpgbinary='${gnupg}/bin/gpg'"
+  '';
+
+  propagatedBuildInputs = [ aiodns pyasn1 pyasn1-modules gnupg ];
+
+  meta = {
+    description = "Elegant Python library for XMPP";
+    license = lib.licenses.mit;
+    homepage = https://dev.louiz.org/projects/slixmpp;
+  };
+}
diff --git a/pkgs/development/python-modules/sortedcollections/default.nix b/pkgs/development/python-modules/sortedcollections/default.nix
new file mode 100644
index 000000000000..b80e5655ff99
--- /dev/null
+++ b/pkgs/development/python-modules/sortedcollections/default.nix
@@ -0,0 +1,27 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, sortedcontainers
+}:
+
+buildPythonPackage rec {
+  pname = "sortedcollections";
+  version = "0.4.2";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "12dlzln9gyv8smsy2k6d6dmr0ywrpwyrr1cjy649ia5h1g7xdvwa";
+  };
+
+  buildInputs = [ sortedcontainers ];
+
+  # wants to test all python versions with tox:
+  doCheck = false;
+
+  meta = with stdenv.lib; {
+    description = "Python Sorted Collections";
+    homepage = http://www.grantjenks.com/docs/sortedcollections/;
+    license = licenses.asl20;
+  };
+
+}
diff --git a/pkgs/development/python-modules/sortedcontainers/default.nix b/pkgs/development/python-modules/sortedcontainers/default.nix
index 1252c676646d..5362e0b00375 100644
--- a/pkgs/development/python-modules/sortedcontainers/default.nix
+++ b/pkgs/development/python-modules/sortedcontainers/default.nix
@@ -5,11 +5,11 @@
 
 buildPythonPackage rec {
   pname = "sortedcontainers";
-  version = "2.0.4";
+  version = "2.0.5";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "607294c6e291a270948420f7ffa1fb3ed47384a4c08db6d1e9c92d08a6981982";
+    sha256 = "b74f2756fb5e23512572cc76f0fe0832fd86310f77dfee54335a35fb33f6b950";
   };
 
   # pypi tarball does not come with tests
diff --git a/pkgs/development/python-modules/sounddevice/default.nix b/pkgs/development/python-modules/sounddevice/default.nix
index 5b8c4a46b2be..bdb003467f56 100644
--- a/pkgs/development/python-modules/sounddevice/default.nix
+++ b/pkgs/development/python-modules/sounddevice/default.nix
@@ -9,11 +9,11 @@
 
 buildPythonPackage rec {
   pname = "sounddevice";
-  version = "0.3.11";
+  version = "0.3.12";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0pfcbgbl77nggchxb2i5rb78m7hpgn65aqpz99yfx1fgfbmy9yg1";
+    sha256 = "f59ae4e2ec12cb1e5940f06f08804ecca855d959de25ca45a3938de45d0f81a2";
   };
 
   propagatedBuildInputs = [ cffi numpy portaudio ];
diff --git a/pkgs/development/python-modules/sparqlwrapper/default.nix b/pkgs/development/python-modules/sparqlwrapper/default.nix
new file mode 100644
index 000000000000..44f16fbdfc6c
--- /dev/null
+++ b/pkgs/development/python-modules/sparqlwrapper/default.nix
@@ -0,0 +1,35 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, six
+, isodate
+, pyparsing
+, html5lib
+, keepalive
+}:
+
+buildPythonPackage rec {
+  pname = "SPARQLWrapper";
+  version = "1.7.6";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1y12hpsfjd779yi29bhvl6g4vszadjvd8jw38z5rg77b034vxjnw";
+  };
+
+  # break circular dependency loop
+  patchPhase = ''
+    sed -i '/rdflib/d' requirements.txt
+  '';
+
+  # Doesn't actually run tests
+  doCheck = false;
+
+  propagatedBuildInputs = [ six isodate pyparsing html5lib keepalive ];
+
+  meta = with stdenv.lib; {
+    description = "This is a wrapper around a SPARQL service. It helps in creating the query URI and, possibly, convert the result into a more manageable format";
+    homepage = "http://rdflib.github.io/sparqlwrapper";
+    license = licenses.w3c;
+  };
+}
diff --git a/pkgs/development/python-modules/sphfile/default.nix b/pkgs/development/python-modules/sphfile/default.nix
index 8ee4ce76069f..3309f1e9978f 100644
--- a/pkgs/development/python-modules/sphfile/default.nix
+++ b/pkgs/development/python-modules/sphfile/default.nix
@@ -2,12 +2,12 @@
 
 buildPythonPackage rec {
   pname = "sphfile";
-  version = "1.0.0";
+  version = "1.0.1";
   name = pname + "-" + version;
 
   src = fetchurl {
     url = "mirror://pypi/s/sphfile/${name}.tar.gz";
-    sha256 = "1ly9746xrzbiax9cxr5sxlg0wvf6fdxcrgwsqqxckk3wnqfypfrd";
+    sha256 = "422b0704107b02ef3ca10e55ccdc80b0bb5ad8e2613b6442f8e2ea372c7cf5d8";
   };
 
   propagatedBuildInputs = [ numpy ];
diff --git a/pkgs/development/python-modules/sphinx/default.nix b/pkgs/development/python-modules/sphinx/default.nix
index 9e71766065c5..e4e9bfaba1cf 100644
--- a/pkgs/development/python-modules/sphinx/default.nix
+++ b/pkgs/development/python-modules/sphinx/default.nix
@@ -26,10 +26,10 @@
 
 buildPythonPackage rec {
   pname = "Sphinx";
-  version = "1.7.8";
+  version = "1.7.9";
   src = fetchPypi {
     inherit pname version;
-    sha256 = "a07050845cc9a2f4026a6035cc8ed795a5ce7be6528bbc82032385c10807dfe7";
+    sha256 = "217a7705adcb573da5bbe1e0f5cab4fa0bd89fd9342c9159121746f593c2d5a4";
   };
   LC_ALL = "en_US.UTF-8";
 
diff --git a/pkgs/development/python-modules/sqlalchemy/default.nix b/pkgs/development/python-modules/sqlalchemy/default.nix
index 2f755869d796..e1c576f94276 100644
--- a/pkgs/development/python-modules/sqlalchemy/default.nix
+++ b/pkgs/development/python-modules/sqlalchemy/default.nix
@@ -9,11 +9,11 @@
 
 buildPythonPackage rec {
   pname = "SQLAlchemy";
-  version = "1.2.11";
+  version = "1.2.12";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "ef6569ad403520ee13e180e1bfd6ed71a0254192a934ec1dbd3dbf48f4aa9524";
+    sha256 = "c5951d9ef1d5404ed04bae5a16b60a0779087378928f997a294d1229c6ca4d3e";
   };
 
   checkInputs = [
diff --git a/pkgs/development/python-modules/sqlmap/default.nix b/pkgs/development/python-modules/sqlmap/default.nix
index 5713d7591dc6..2aeaa068a43b 100644
--- a/pkgs/development/python-modules/sqlmap/default.nix
+++ b/pkgs/development/python-modules/sqlmap/default.nix
@@ -5,11 +5,11 @@
 
 buildPythonPackage rec {
   pname = "sqlmap";
-  version = "1.2.8";
+  version = "1.2.10";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "d261d93e7abed20543c261327d30b9f9936f0bed3c1a595f39218eeb66094526";
+    sha256 = "e64efce7f3b50cab02c8da968e00c1b456f59aff193d3dae2446d7c117723d53";
   };
 
   # No tests in archive
diff --git a/pkgs/development/python-modules/ssdeep/default.nix b/pkgs/development/python-modules/ssdeep/default.nix
new file mode 100644
index 000000000000..f06138b4c255
--- /dev/null
+++ b/pkgs/development/python-modules/ssdeep/default.nix
@@ -0,0 +1,33 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, pkgs
+, cffi
+, six
+, pytest
+, pytestrunner
+}:
+
+buildPythonPackage rec {
+  pname = "ssdeep";
+  version = "3.3";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "255de1f034652b3ed21920221017e70e570b1644f9436fea120ae416175f4ef5";
+  };
+
+  buildInputs = [ pkgs.ssdeep pytestrunner ];
+  checkInputs = [ pytest ];
+  propagatedBuildInputs = [ cffi six ];
+
+  # tests repository does not include required files
+  doCheck = false;
+
+  meta = with stdenv.lib; {
+    homepage = http://github.com/DinoTools/python-ssdeep;
+    description = "Python wrapper for the ssdeep library";
+    license = licenses.lgpl3;
+  };
+
+}
diff --git a/pkgs/development/python-modules/statsd/default.nix b/pkgs/development/python-modules/statsd/default.nix
new file mode 100644
index 000000000000..6d5d9df0a6fb
--- /dev/null
+++ b/pkgs/development/python-modules/statsd/default.nix
@@ -0,0 +1,33 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, nose
+, mock
+}:
+
+buildPythonPackage rec {
+  pname = "statsd";
+  version = "3.2.1";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "3fa92bf0192af926f7a0d9be031fe3fd0fbaa1992d42cf2f07e68f76ac18288e";
+  };
+
+  buildInputs = [ nose mock ];
+
+  patchPhase = ''
+    # Failing test: ERROR: statsd.tests.test_ipv6_resolution_udp
+    sed -i 's/test_ipv6_resolution_udp/noop/' statsd/tests.py
+    # well this is a noop, but so it was before
+    sed -i 's/assert_called_once()/called/' statsd/tests.py
+  '';
+
+  meta = with stdenv.lib; {
+    maintainers = with maintainers; [ domenkozar ];
+    description = "A simple statsd client";
+    license = licenses.mit;
+    homepage = https://github.com/jsocol/pystatsd;
+  };
+
+}
diff --git a/pkgs/development/python-modules/toml/default.nix b/pkgs/development/python-modules/toml/default.nix
index a80657dc4b45..9e408f2cb169 100644
--- a/pkgs/development/python-modules/toml/default.nix
+++ b/pkgs/development/python-modules/toml/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "toml";
-  version = "0.9.4";
+  version = "0.9.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0bdbpbip67wdm6c7xwc6mmbmskyradj4cdxn1iibj4fcx1nbv1lf";
+    sha256 = "380178cde50a6a79f9d2cf6f42a62a5174febe5eea4126fe4038785f1d888d42";
   };
 
   # This package has a test script (built for Travis) that involves a)
diff --git a/pkgs/development/python-modules/uncompyle6/default.nix b/pkgs/development/python-modules/uncompyle6/default.nix
new file mode 100644
index 000000000000..89edc8f184ca
--- /dev/null
+++ b/pkgs/development/python-modules/uncompyle6/default.nix
@@ -0,0 +1,25 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, spark_parser
+, xdis
+}:
+
+buildPythonPackage rec {
+  pname = "uncompyle6";
+  version = "2.8.3";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "0hx5sji6qjvnq1p0zhvyk5hgracpv2w6iar1j59qwllxv115ffi1";
+  };
+
+  propagatedBuildInputs = [ spark_parser xdis ];
+
+  meta = with stdenv.lib; {
+    description = "Python cross-version byte-code deparser";
+    homepage = https://github.com/rocky/python-uncompyle6/;
+    license = licenses.mit;
+  };
+
+}
diff --git a/pkgs/development/python-modules/validictory/default.nix b/pkgs/development/python-modules/validictory/default.nix
new file mode 100644
index 000000000000..10808bffaab2
--- /dev/null
+++ b/pkgs/development/python-modules/validictory/default.nix
@@ -0,0 +1,23 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+}:
+
+buildPythonPackage rec {
+  pname = "validictory";
+  version = "1.0.0a2";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "c02388a70f5b854e71e2e09bd6d762a2d8c2a017557562e866d8ffafb0934b07";
+  };
+
+  doCheck = false;
+
+  meta = with stdenv.lib; {
+    description = "Validate dicts against a schema";
+    homepage = https://github.com/sunlightlabs/validictory;
+    license = licenses.mit;
+  };
+
+}
diff --git a/pkgs/development/python-modules/venusian/default.nix b/pkgs/development/python-modules/venusian/default.nix
new file mode 100644
index 000000000000..14d678be892d
--- /dev/null
+++ b/pkgs/development/python-modules/venusian/default.nix
@@ -0,0 +1,28 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, pytest
+}:
+
+buildPythonPackage rec {
+  pname = "venusian";
+  version = "1.1.0";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "9902e492c71a89a241a18b2f9950bea7e41d025cc8f3af1ea8d8201346f8577d";
+  };
+
+  checkInputs = [ pytest ];
+
+  checkPhase = ''
+    pytest
+  '';
+
+  meta = with stdenv.lib; {
+    description = "A library for deferring decorator actions";
+    homepage = http://pylonsproject.org/;
+    license = licenses.bsd0;
+    maintainers = with maintainers; [ garbas domenkozar ];
+  };
+}
diff --git a/pkgs/development/python-modules/warlock/default.nix b/pkgs/development/python-modules/warlock/default.nix
new file mode 100644
index 000000000000..0f75be8be177
--- /dev/null
+++ b/pkgs/development/python-modules/warlock/default.nix
@@ -0,0 +1,27 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, six
+, jsonpatch
+, jsonschema
+, jsonpointer
+}:
+
+buildPythonPackage rec {
+  pname = "warlock";
+  version = "1.2.0";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "0npgi4ks0nww2d6ci791iayab0j6kz6dx3jr7bhpgkql3s4if3bw";
+  };
+
+  propagatedBuildInputs = [ six jsonpatch jsonschema jsonpointer ];
+
+  meta = with stdenv.lib; {
+    homepage = https://github.com/bcwaldon/warlock;
+    description = "Python object model built on JSON schema and JSON patch";
+    license = licenses.asl20;
+  };
+
+}
diff --git a/pkgs/development/python-modules/watchdog/default.nix b/pkgs/development/python-modules/watchdog/default.nix
new file mode 100644
index 000000000000..1e5e5653b9d8
--- /dev/null
+++ b/pkgs/development/python-modules/watchdog/default.nix
@@ -0,0 +1,32 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, argh
+, pathtools
+, pyyaml
+, pkgs
+}:
+
+buildPythonPackage rec {
+  pname = "watchdog";
+  version = "0.8.3";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "0qj1vqszxwfx6d1s66s96jmfmy2j94bywxiqdydh6ikpvcm8hrby";
+  };
+
+  buildInputs = stdenv.lib.optionals stdenv.isDarwin
+    [ pkgs.darwin.apple_sdk.frameworks.CoreServices pkgs.darwin.cf-private ];
+  propagatedBuildInputs = [ argh pathtools pyyaml ];
+
+  doCheck = false;
+
+  meta = with stdenv.lib; {
+    description = "Python API and shell utilities to monitor file system events";
+    homepage = https://github.com/gorakhargosh/watchdog;
+    license = licenses.asl20;
+    maintainers = with maintainers; [ goibhniu ];
+  };
+
+}
diff --git a/pkgs/development/python-modules/whisper/default.nix b/pkgs/development/python-modules/whisper/default.nix
index 4d48b63da54a..1fb9dd6da16a 100644
--- a/pkgs/development/python-modules/whisper/default.nix
+++ b/pkgs/development/python-modules/whisper/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "whisper";
-  version = "1.1.3";
+  version = "1.1.4";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1ahzsxk52ws8k3kdq52qbsbsx2r9z350j8gg9adw4x5fjwksz4r8";
+    sha256 = "ee9128873b5f9c97d258d35d0a32ef8e62c9da473fbbd056982df1f36f0b37aa";
   };
 
   propagatedBuildInputs = [ six ];
diff --git a/pkgs/development/python-modules/widgetsnbextension/default.nix b/pkgs/development/python-modules/widgetsnbextension/default.nix
index db992c7b932c..ab2bd9c4eb18 100644
--- a/pkgs/development/python-modules/widgetsnbextension/default.nix
+++ b/pkgs/development/python-modules/widgetsnbextension/default.nix
@@ -7,11 +7,11 @@
 
 buildPythonPackage rec {
   pname = "widgetsnbextension";
-  version = "3.4.0";
+  version = "3.4.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "c9d6e426a1d79d132b57b93b368feba2c66eb7b0fd34bdb901716b4b88e94497";
+    sha256 = "fa618be8435447a017fd1bf2c7ae922d0428056cfc7449f7a8641edf76b48265";
   };
 
   propagatedBuildInputs = [ notebook ];
diff --git a/pkgs/development/python-modules/wtforms/default.nix b/pkgs/development/python-modules/wtforms/default.nix
new file mode 100644
index 000000000000..40f0b6554515
--- /dev/null
+++ b/pkgs/development/python-modules/wtforms/default.nix
@@ -0,0 +1,29 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, Babel
+}:
+
+buildPythonPackage rec {
+  version = "2.1";
+  pname = "wtforms";
+
+  src = fetchPypi {
+    inherit pname version;
+    extension = "zip";
+    sha256 = "0vyl26y9cg409cfyj8rhqxazsdnd0jipgjw06civhrd53yyi1pzz";
+  };
+
+  # Django tests are broken "django.core.exceptions.AppRegistryNotReady: Apps aren't loaded yet."
+  # This is fixed in master I believe but not yet in 2.1;
+  doCheck = false;
+
+  propagatedBuildInputs = [ Babel ];
+
+  meta = with stdenv.lib; {
+    homepage = https://github.com/wtforms/wtforms;
+    description = "A flexible forms validation and rendering library for Python";
+    license = licenses.bsd3;
+  };
+
+}
diff --git a/pkgs/development/python-modules/xarray/default.nix b/pkgs/development/python-modules/xarray/default.nix
index c443c8fc880a..7a54b1f33ed1 100644
--- a/pkgs/development/python-modules/xarray/default.nix
+++ b/pkgs/development/python-modules/xarray/default.nix
@@ -9,11 +9,11 @@
 
 buildPythonPackage rec {
   pname = "xarray";
-  version = "0.10.8";
+  version = "0.10.9";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "6a1f2c5dc5f639f8343f70ed08d0afbb477a3867298ef38f0d9bf4aafa0fb750";
+    sha256 = "cb3028ba157e1953fd279bbe17c07bb5faa459ddf555bbe687c927e4cdfeecc3";
   };
 
   checkInputs = [ pytest ];
diff --git a/pkgs/development/python-modules/xdis/default.nix b/pkgs/development/python-modules/xdis/default.nix
new file mode 100644
index 000000000000..5973414f8dc5
--- /dev/null
+++ b/pkgs/development/python-modules/xdis/default.nix
@@ -0,0 +1,25 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, nose
+, six
+}:
+
+buildPythonPackage rec {
+  pname = "xdis";
+  version = "3.2.4";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "0g2lh70837vigcbc1i58349wp2xzrhlsg2ahc92sn8d3jwxja4dk";
+  };
+
+  propagatedBuildInputs = [ nose six ];
+
+  meta = with stdenv.lib; {
+    description = "Python cross-version byte-code disassembler and marshal routines";
+    homepage = https://github.com/rocky/python-xdis/;
+    license = licenses.mit;
+  };
+
+}
diff --git a/pkgs/development/python-modules/xml2rfc/default.nix b/pkgs/development/python-modules/xml2rfc/default.nix
index 291b981bf475..1338de7e67cd 100644
--- a/pkgs/development/python-modules/xml2rfc/default.nix
+++ b/pkgs/development/python-modules/xml2rfc/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "xml2rfc";
-  version = "2.10.0";
+  version = "2.10.3";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "dc62e1d2fea896855ee0681f02bcb7596e3b6b5aa559348b8520a4eb0c793282";
+    sha256 = "ace45039e9d71713b4bb09ea199644797a7d884fbdd940e4c02559b4bccb01a1";
   };
 
   propagatedBuildInputs = [ intervaltree pyflakes requests lxml ];
diff --git a/pkgs/development/python-modules/xstatic-bootstrap/default.nix b/pkgs/development/python-modules/xstatic-bootstrap/default.nix
index f648df6c570e..a474bf84d0fd 100644
--- a/pkgs/development/python-modules/xstatic-bootstrap/default.nix
+++ b/pkgs/development/python-modules/xstatic-bootstrap/default.nix
@@ -9,7 +9,7 @@ buildPythonPackage rec {
 
   src = fetchPypi {
     inherit version pname;
-    sha256 = "0cgihyjb9rg6r2ddpzbjm31y0901vyc8m9h3v0zrhxydx1w9x50c";
+    sha256 = "0c949e78e8cd77983fd803a68a98df0124e0c3a872fddb9ac8e6e5b4a487f131";
   };
 
   # no tests implemented
diff --git a/pkgs/development/python-modules/xstatic-jquery-ui/default.nix b/pkgs/development/python-modules/xstatic-jquery-ui/default.nix
index d411119bbfa2..3424c8fcf6f2 100644
--- a/pkgs/development/python-modules/xstatic-jquery-ui/default.nix
+++ b/pkgs/development/python-modules/xstatic-jquery-ui/default.nix
@@ -10,7 +10,7 @@ buildPythonPackage rec {
 
   src = fetchPypi {
     inherit version pname;
-    sha256 = "0449rkjcksq49yjyyszz9v11wa4nmvvfw0mynayah8248yxlifnn";
+    sha256 = "d6ba48bb474420a8bcb2be02eef6ae96281ec24eff6befa54f04ebc9e4cc8910";
   };
 
   # no tests implemented
diff --git a/pkgs/development/python-modules/xstatic/default.nix b/pkgs/development/python-modules/xstatic/default.nix
index 4410525a3d4d..bbfcce54d890 100644
--- a/pkgs/development/python-modules/xstatic/default.nix
+++ b/pkgs/development/python-modules/xstatic/default.nix
@@ -9,7 +9,7 @@ buildPythonPackage rec {
 
   src = fetchPypi {
     inherit version pname;
-    sha256 = "1a13i9b62qfmqz04gpa6kcwwy2x8fm9wcr1x6kjdxrmw6zz8vdw0";
+    sha256 = "80b78dfe37bce6dee4343d64c65375a80bcf399b46dd47c0c7d56161568a23a8";
   };
 
   # no tests implemented
diff --git a/pkgs/development/python-modules/zake/default.nix b/pkgs/development/python-modules/zake/default.nix
new file mode 100644
index 000000000000..143f609d8338
--- /dev/null
+++ b/pkgs/development/python-modules/zake/default.nix
@@ -0,0 +1,31 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, kazoo
+, six
+, testtools
+, python
+}:
+
+buildPythonPackage rec {
+  pname = "zake";
+  version = "0.2.2";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1rp4xxy7qp0s0wnq3ig4ji8xsl31g901qkdp339ndxn466cqal2s";
+  };
+
+  propagatedBuildInputs = [ kazoo six ];
+  buildInputs = [ testtools ];
+  checkPhase = ''
+    ${python.interpreter} -m unittest discover zake/tests
+  '';
+
+  meta = with stdenv.lib; {
+    homepage = "https://github.com/yahoo/Zake";
+    description = "A python package that works to provide a nice set of testing utilities for the kazoo library";
+    license = licenses.asl20;
+  };
+
+}
diff --git a/pkgs/development/python-modules/zetup/default.nix b/pkgs/development/python-modules/zetup/default.nix
index 8fc15c5da6fa..99d05a359631 100644
--- a/pkgs/development/python-modules/zetup/default.nix
+++ b/pkgs/development/python-modules/zetup/default.nix
@@ -4,11 +4,11 @@
 
 buildPythonPackage rec {
   pname = "zetup";
-  version = "0.2.43";
+  version = "0.2.45";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "ee92ba93a03336962525536f237ae0decf99a9b5d484ba34a3cf06ef017dae8e";
+    sha256 = "f1cde33d0ef3bedaf697e432201fa86da698dadd3445c0efd2a114753853c675";
   };
 
   checkPhase = ''
diff --git a/pkgs/development/python-modules/zope_deprecation/default.nix b/pkgs/development/python-modules/zope_deprecation/default.nix
new file mode 100644
index 000000000000..ddc486918fb2
--- /dev/null
+++ b/pkgs/development/python-modules/zope_deprecation/default.nix
@@ -0,0 +1,25 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, zope_testing
+}:
+
+buildPythonPackage rec {
+  pname = "zope.deprecation";
+  version = "4.1.2";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "fed622b51ffc600c13cc5a5b6916b8514c115f34f7ea2730409f30c061eb0b78";
+  };
+
+  buildInputs = [ zope_testing ];
+
+  meta = with stdenv.lib; {
+    homepage = http://github.com/zopefoundation/zope.deprecation;
+    description = "Zope Deprecation Infrastructure";
+    license = licenses.zpl20;
+    maintainers = with maintainers; [ garbas domenkozar ];
+  };
+
+}
diff --git a/pkgs/development/tools/analysis/egypt/default.nix b/pkgs/development/tools/analysis/egypt/default.nix
index 07bcd57a121a..defc39a9f749 100644
--- a/pkgs/development/tools/analysis/egypt/default.nix
+++ b/pkgs/development/tools/analysis/egypt/default.nix
@@ -1,6 +1,6 @@
-{ stdenv, fetchurl, buildPerlPackage }:
+{ stdenv, fetchurl, perlPackages }:
 
-buildPerlPackage rec {
+perlPackages.buildPerlPackage rec {
   name = "egypt-${version}";
   version = "1.10";
 
diff --git a/pkgs/development/tools/misc/intltool/default.nix b/pkgs/development/tools/misc/intltool/default.nix
index 67180b08f026..a9f451d31e7d 100644
--- a/pkgs/development/tools/misc/intltool/default.nix
+++ b/pkgs/development/tools/misc/intltool/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, fetchpatch, gettext, perl, perlXMLParser }:
+{ stdenv, fetchurl, fetchpatch, gettext, perlPackages }:
 
 stdenv.mkDerivation rec {
   name = "intltool-${version}";
@@ -17,7 +17,7 @@ stdenv.mkDerivation rec {
     sha256 = "12q2140867r5d0dysly72khi7b0mm2gd7nlm1k81iyg7fxgnyz45";
   })];
 
-  propagatedBuildInputs = [ gettext perl perlXMLParser ];
+  propagatedBuildInputs = [ gettext ] ++ (with perlPackages; [ perl XMLParser ]);
 
   meta = with stdenv.lib; {
     description = "Translation helper tool";
diff --git a/pkgs/development/tools/misc/ninka/default.nix b/pkgs/development/tools/misc/ninka/default.nix
index 9cd1a56e68fe..df793866cbb8 100644
--- a/pkgs/development/tools/misc/ninka/default.nix
+++ b/pkgs/development/tools/misc/ninka/default.nix
@@ -1,8 +1,8 @@
-{ stdenv, fetchFromGitHub, perl, perlPackages, buildPerlPackage }:
+{ stdenv, fetchFromGitHub, perl, perlPackages }:
 
 assert stdenv ? glibc;
 
-buildPerlPackage rec {
+perlPackages.buildPerlPackage rec {
   name = "ninka-${version}";
   version = "2.0-pre";
 
@@ -12,7 +12,7 @@ buildPerlPackage rec {
     rev = "b89b59ecd057dfc939d0c75acaddebb58fcd8cba";
     sha256 = "1grlis1kycbcjvjgqvn7aw81q1qx49ahvxg2k7cgyr79mvgpgi9m";
   };
-  
+
   buildInputs = with perlPackages; [ perl TestOutput DBDSQLite DBI TestPod TestPodCoverage SpreadsheetParseExcel ];
 
   doCheck = false;    # hangs