about summary refs log tree commit diff
path: root/pkgs/development/python-modules
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/development/python-modules')
-rw-r--r--pkgs/development/python-modules/Cython/default.nix11
-rw-r--r--pkgs/development/python-modules/GitPython/default.nix15
-rw-r--r--pkgs/development/python-modules/GitPython/hardcode-git-path.patch13
-rw-r--r--pkgs/development/python-modules/Logbook/default.nix4
-rw-r--r--pkgs/development/python-modules/Theano/default.nix4
-rw-r--r--pkgs/development/python-modules/Wand/default.nix33
-rw-r--r--pkgs/development/python-modules/acme/default.nix11
-rw-r--r--pkgs/development/python-modules/acoustics/default.nix21
-rw-r--r--pkgs/development/python-modules/aiohttp-socks/default.nix25
-rw-r--r--pkgs/development/python-modules/aiolifx-effects/default.nix31
-rw-r--r--pkgs/development/python-modules/aiolifx/default.nix31
-rw-r--r--pkgs/development/python-modules/aiorpcx/default.nix25
-rw-r--r--pkgs/development/python-modules/alembic/default.nix4
-rw-r--r--pkgs/development/python-modules/allpairspy/default.nix4
-rw-r--r--pkgs/development/python-modules/androguard/default.nix37
-rw-r--r--pkgs/development/python-modules/aniso8601/default.nix8
-rw-r--r--pkgs/development/python-modules/asciimatics/default.nix48
-rw-r--r--pkgs/development/python-modules/astral/default.nix6
-rw-r--r--pkgs/development/python-modules/astropy/default.nix4
-rw-r--r--pkgs/development/python-modules/audio-metadata/default.nix37
-rw-r--r--pkgs/development/python-modules/awkward/default.nix4
-rw-r--r--pkgs/development/python-modules/aws-sam-translator/default.nix4
-rw-r--r--pkgs/development/python-modules/azure-common/default.nix4
-rw-r--r--pkgs/development/python-modules/azure-mgmt-compute/default.nix4
-rw-r--r--pkgs/development/python-modules/azure-storage-blob/default.nix33
-rw-r--r--pkgs/development/python-modules/azure-storage-common/default.nix37
-rw-r--r--pkgs/development/python-modules/azure-storage-file/default.nix33
-rw-r--r--pkgs/development/python-modules/azure-storage-nspkg/default.nix29
-rw-r--r--pkgs/development/python-modules/azure-storage-queue/default.nix31
-rw-r--r--pkgs/development/python-modules/base58/default.nix14
-rw-r--r--pkgs/development/python-modules/bayespy/default.nix4
-rw-r--r--pkgs/development/python-modules/bcrypt/default.nix4
-rw-r--r--pkgs/development/python-modules/beancount/default.nix4
-rw-r--r--pkgs/development/python-modules/beanstalkc/default.nix18
-rw-r--r--pkgs/development/python-modules/beautifulsoup4/default.nix2
-rw-r--r--pkgs/development/python-modules/bibtexparser/default.nix8
-rw-r--r--pkgs/development/python-modules/bidict/default.nix42
-rw-r--r--pkgs/development/python-modules/bitstruct/default.nix18
-rw-r--r--pkgs/development/python-modules/black/default.nix13
-rw-r--r--pkgs/development/python-modules/block-io/default.nix4
-rw-r--r--pkgs/development/python-modules/bokeh/default.nix4
-rw-r--r--pkgs/development/python-modules/bootstrapped-pip/default.nix4
-rw-r--r--pkgs/development/python-modules/boto3/default.nix4
-rw-r--r--pkgs/development/python-modules/botocore/default.nix4
-rw-r--r--pkgs/development/python-modules/bottle/default.nix4
-rw-r--r--pkgs/development/python-modules/braintree/default.nix27
-rw-r--r--pkgs/development/python-modules/bugwarrior/default.nix4
-rw-r--r--pkgs/development/python-modules/buildbot/default.nix20
-rw-r--r--pkgs/development/python-modules/buildbot/pkg.nix4
-rw-r--r--pkgs/development/python-modules/buildbot/plugins.nix10
-rw-r--r--pkgs/development/python-modules/buildbot/worker.nix4
-rw-r--r--pkgs/development/python-modules/cachetools/1.nix17
-rw-r--r--pkgs/development/python-modules/carbon/default.nix4
-rw-r--r--pkgs/development/python-modules/cassandra-driver/default.nix18
-rw-r--r--pkgs/development/python-modules/celery/default.nix45
-rw-r--r--pkgs/development/python-modules/cffi/default.nix2
-rw-r--r--pkgs/development/python-modules/cfgv/default.nix4
-rw-r--r--pkgs/development/python-modules/cfn-flip/default.nix25
-rw-r--r--pkgs/development/python-modules/chalice/default.nix6
-rw-r--r--pkgs/development/python-modules/click-default-group/default.nix25
-rw-r--r--pkgs/development/python-modules/cmd2/default.nix7
-rw-r--r--pkgs/development/python-modules/configargparse/default.nix4
-rw-r--r--pkgs/development/python-modules/cornice/default.nix4
-rw-r--r--pkgs/development/python-modules/cryptography/default.nix18
-rw-r--r--pkgs/development/python-modules/cryptography_vectors/default.nix18
-rw-r--r--pkgs/development/python-modules/css-parser/default.nix22
-rw-r--r--pkgs/development/python-modules/csvkit/default.nix4
-rw-r--r--pkgs/development/python-modules/cypari2/default.nix7
-rw-r--r--pkgs/development/python-modules/cysignals/default.nix4
-rw-r--r--pkgs/development/python-modules/daphne/default.nix4
-rw-r--r--pkgs/development/python-modules/dateparser/default.nix4
-rw-r--r--pkgs/development/python-modules/debian/default.nix4
-rw-r--r--pkgs/development/python-modules/dependency-injector/default.nix4
-rw-r--r--pkgs/development/python-modules/detox/default.nix4
-rw-r--r--pkgs/development/python-modules/discogs_client/default.nix4
-rw-r--r--pkgs/development/python-modules/distributed/default.nix13
-rw-r--r--pkgs/development/python-modules/distro/default.nix2
-rw-r--r--pkgs/development/python-modules/django-compat/default.nix23
-rw-r--r--pkgs/development/python-modules/django-cors-headers/default.nix27
-rw-r--r--pkgs/development/python-modules/django-hijack-admin/default.nix14
-rw-r--r--pkgs/development/python-modules/django-hijack/default.nix7
-rw-r--r--pkgs/development/python-modules/django-rest-auth/default.nix29
-rw-r--r--pkgs/development/python-modules/django-sesame/default.nix27
-rw-r--r--pkgs/development/python-modules/django/1_11.nix6
-rw-r--r--pkgs/development/python-modules/django/1_8.nix5
-rw-r--r--pkgs/development/python-modules/django/2_0.nix43
-rw-r--r--pkgs/development/python-modules/django/2_1.nix4
-rw-r--r--pkgs/development/python-modules/django_reversion/default.nix7
-rw-r--r--pkgs/development/python-modules/djangorestframework-jwt/default.nix30
-rw-r--r--pkgs/development/python-modules/djangorestframework/default.nix4
-rw-r--r--pkgs/development/python-modules/docker-py/default.nix28
-rw-r--r--pkgs/development/python-modules/docrep/default.nix4
-rw-r--r--pkgs/development/python-modules/dogpile.cache/default.nix4
-rw-r--r--pkgs/development/python-modules/dugong/default.nix5
-rw-r--r--pkgs/development/python-modules/dulwich/default.nix4
-rw-r--r--pkgs/development/python-modules/ecdsa/default.nix2
-rw-r--r--pkgs/development/python-modules/elasticsearch-dsl/default.nix4
-rw-r--r--pkgs/development/python-modules/eradicate/default.nix4
-rw-r--r--pkgs/development/python-modules/et_xmlfile/default.nix2
-rw-r--r--pkgs/development/python-modules/execnet/default.nix3
-rw-r--r--pkgs/development/python-modules/eyed3/default.nix4
-rw-r--r--pkgs/development/python-modules/faker/default.nix5
-rw-r--r--pkgs/development/python-modules/favicon/default.nix27
-rw-r--r--pkgs/development/python-modules/fdroidserver/default.nix35
-rw-r--r--pkgs/development/python-modules/filetype/default.nix26
-rw-r--r--pkgs/development/python-modules/fiona/default.nix4
-rw-r--r--pkgs/development/python-modules/flask-socketio/default.nix4
-rw-r--r--pkgs/development/python-modules/flexmock/default.nix4
-rw-r--r--pkgs/development/python-modules/fonttools/default.nix4
-rw-r--r--pkgs/development/python-modules/fs/default.nix30
-rw-r--r--pkgs/development/python-modules/ftfy/default.nix24
-rw-r--r--pkgs/development/python-modules/future-fstrings/default.nix23
-rw-r--r--pkgs/development/python-modules/fuzzywuzzy/default.nix21
-rw-r--r--pkgs/development/python-modules/gast/default.nix4
-rw-r--r--pkgs/development/python-modules/glances/default.nix4
-rw-r--r--pkgs/development/python-modules/google-api-python-client/default.nix5
-rw-r--r--pkgs/development/python-modules/google-music-proto/default.nix37
-rw-r--r--pkgs/development/python-modules/google-music-utils/default.nix35
-rw-r--r--pkgs/development/python-modules/google-music/default.nix39
-rw-r--r--pkgs/development/python-modules/google_api_core/default.nix4
-rw-r--r--pkgs/development/python-modules/google_cloud_asset/default.nix7
-rw-r--r--pkgs/development/python-modules/google_cloud_automl/default.nix7
-rw-r--r--pkgs/development/python-modules/google_cloud_bigquery/default.nix4
-rw-r--r--pkgs/development/python-modules/google_cloud_bigquery_datatransfer/default.nix7
-rw-r--r--pkgs/development/python-modules/google_cloud_bigtable/default.nix4
-rw-r--r--pkgs/development/python-modules/google_cloud_container/default.nix7
-rw-r--r--pkgs/development/python-modules/google_cloud_core/default.nix4
-rw-r--r--pkgs/development/python-modules/google_cloud_dataproc/default.nix7
-rw-r--r--pkgs/development/python-modules/google_cloud_datastore/default.nix4
-rw-r--r--pkgs/development/python-modules/google_cloud_dlp/default.nix7
-rw-r--r--pkgs/development/python-modules/google_cloud_dns/default.nix4
-rw-r--r--pkgs/development/python-modules/google_cloud_error_reporting/default.nix4
-rw-r--r--pkgs/development/python-modules/google_cloud_firestore/default.nix4
-rw-r--r--pkgs/development/python-modules/google_cloud_iot/default.nix7
-rw-r--r--pkgs/development/python-modules/google_cloud_kms/default.nix7
-rw-r--r--pkgs/development/python-modules/google_cloud_language/default.nix7
-rw-r--r--pkgs/development/python-modules/google_cloud_logging/default.nix4
-rw-r--r--pkgs/development/python-modules/google_cloud_monitoring/default.nix4
-rw-r--r--pkgs/development/python-modules/google_cloud_pubsub/default.nix4
-rw-r--r--pkgs/development/python-modules/google_cloud_redis/default.nix7
-rw-r--r--pkgs/development/python-modules/google_cloud_resource_manager/default.nix4
-rw-r--r--pkgs/development/python-modules/google_cloud_runtimeconfig/default.nix4
-rw-r--r--pkgs/development/python-modules/google_cloud_securitycenter/default.nix7
-rw-r--r--pkgs/development/python-modules/google_cloud_spanner/default.nix4
-rw-r--r--pkgs/development/python-modules/google_cloud_speech/default.nix4
-rw-r--r--pkgs/development/python-modules/google_cloud_storage/default.nix4
-rw-r--r--pkgs/development/python-modules/google_cloud_tasks/default.nix7
-rw-r--r--pkgs/development/python-modules/google_cloud_texttospeech/default.nix7
-rw-r--r--pkgs/development/python-modules/google_cloud_trace/default.nix4
-rw-r--r--pkgs/development/python-modules/google_cloud_translate/default.nix4
-rw-r--r--pkgs/development/python-modules/google_cloud_videointelligence/default.nix7
-rw-r--r--pkgs/development/python-modules/google_cloud_vision/default.nix4
-rw-r--r--pkgs/development/python-modules/google_cloud_websecurityscanner/default.nix7
-rw-r--r--pkgs/development/python-modules/google_resumable_media/default.nix4
-rw-r--r--pkgs/development/python-modules/googleapis_common_protos/default.nix4
-rw-r--r--pkgs/development/python-modules/gprof2dot/default.nix20
-rw-r--r--pkgs/development/python-modules/grammalecte/default.nix9
-rw-r--r--pkgs/development/python-modules/grandalf/default.nix41
-rw-r--r--pkgs/development/python-modules/grandalf/no-setup-requires-pytestrunner.patch15
-rw-r--r--pkgs/development/python-modules/graphite-web/default.nix4
-rw-r--r--pkgs/development/python-modules/gsd/default.nix4
-rw-r--r--pkgs/development/python-modules/guestfs/default.nix20
-rw-r--r--pkgs/development/python-modules/homeassistant-pyozw/default.nix4
-rw-r--r--pkgs/development/python-modules/httmock/default.nix4
-rw-r--r--pkgs/development/python-modules/httpretty/default.nix11
-rw-r--r--pkgs/development/python-modules/httpsig/default.nix4
-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/identify/default.nix4
-rw-r--r--pkgs/development/python-modules/imgaug/default.nix4
-rw-r--r--pkgs/development/python-modules/immutables/default.nix4
-rw-r--r--pkgs/development/python-modules/imutils/default.nix4
-rw-r--r--pkgs/development/python-modules/iptools/default.nix4
-rw-r--r--pkgs/development/python-modules/irc/default.nix4
-rw-r--r--pkgs/development/python-modules/isbnlib/default.nix31
-rw-r--r--pkgs/development/python-modules/j2cli/default.nix4
-rw-r--r--pkgs/development/python-modules/jaraco_classes/default.nix4
-rw-r--r--pkgs/development/python-modules/jaraco_itertools/default.nix22
-rw-r--r--pkgs/development/python-modules/jaraco_logging/default.nix22
-rw-r--r--pkgs/development/python-modules/jedi/default.nix4
-rw-r--r--pkgs/development/python-modules/jellyfish/default.nix7
-rw-r--r--pkgs/development/python-modules/jenkinsapi/default.nix4
-rw-r--r--pkgs/development/python-modules/jq/default.nix27
-rw-r--r--pkgs/development/python-modules/jq/jq-py-setup.patch130
-rw-r--r--pkgs/development/python-modules/jsbeautifier/default.nix4
-rw-r--r--pkgs/development/python-modules/jsonref/default.nix2
-rw-r--r--pkgs/development/python-modules/jsonrpclib-pelix/default.nix4
-rw-r--r--pkgs/development/python-modules/jsonschema/default.nix10
-rw-r--r--pkgs/development/python-modules/jupyter_client/default.nix4
-rw-r--r--pkgs/development/python-modules/kaptan/default.nix10
-rw-r--r--pkgs/development/python-modules/keras-applications/default.nix4
-rw-r--r--pkgs/development/python-modules/keras-preprocessing/default.nix26
-rw-r--r--pkgs/development/python-modules/keras/default.nix8
-rw-r--r--pkgs/development/python-modules/kerberos/default.nix7
-rw-r--r--pkgs/development/python-modules/keyrings-alt/default.nix4
-rw-r--r--pkgs/development/python-modules/keyutils/default.nix6
-rw-r--r--pkgs/development/python-modules/kombu/default.nix4
-rw-r--r--pkgs/development/python-modules/latexcodec/default.nix4
-rw-r--r--pkgs/development/python-modules/ldap3/default.nix4
-rw-r--r--pkgs/development/python-modules/ledgerblue/default.nix4
-rw-r--r--pkgs/development/python-modules/libcloud/default.nix4
-rw-r--r--pkgs/development/python-modules/libtmux/default.nix6
-rw-r--r--pkgs/development/python-modules/libusb1/default.nix4
-rw-r--r--pkgs/development/python-modules/limitlessled/default.nix18
-rw-r--r--pkgs/development/python-modules/llfuse/default.nix14
-rw-r--r--pkgs/development/python-modules/llvmlite/default.nix3
-rw-r--r--pkgs/development/python-modules/logzero/default.nix23
-rw-r--r--pkgs/development/python-modules/lxml/default.nix5
-rw-r--r--pkgs/development/python-modules/m2crypto/default.nix10
-rw-r--r--pkgs/development/python-modules/m2r/default.nix4
-rw-r--r--pkgs/development/python-modules/mail-parser/default.nix4
-rw-r--r--pkgs/development/python-modules/mailman-rss/default.nix25
-rw-r--r--pkgs/development/python-modules/matplotlib/2.nix14
-rw-r--r--pkgs/development/python-modules/matplotlib/default.nix4
-rw-r--r--pkgs/development/python-modules/mautrix-appservice/default.nix28
-rw-r--r--pkgs/development/python-modules/mechanize/default.nix4
-rw-r--r--pkgs/development/python-modules/memory_profiler/default.nix4
-rw-r--r--pkgs/development/python-modules/minimock/default.nix6
-rw-r--r--pkgs/development/python-modules/moderngl/default.nix32
-rw-r--r--pkgs/development/python-modules/mozsvc/default.nix23
-rw-r--r--pkgs/development/python-modules/mrbob/default.nix4
-rw-r--r--pkgs/development/python-modules/munkres/default.nix19
-rw-r--r--pkgs/development/python-modules/mwoauth/default.nix4
-rw-r--r--pkgs/development/python-modules/mysql-connector/default.nix4
-rw-r--r--pkgs/development/python-modules/nanomsg-python/default.nix25
-rw-r--r--pkgs/development/python-modules/nanotime/default.nix27
-rw-r--r--pkgs/development/python-modules/nbxmpp/default.nix4
-rw-r--r--pkgs/development/python-modules/nest-asyncio/default.nix4
-rw-r--r--pkgs/development/python-modules/netaddr/default.nix7
-rw-r--r--pkgs/development/python-modules/netifaces/default.nix4
-rw-r--r--pkgs/development/python-modules/nibabel/default.nix34
-rw-r--r--pkgs/development/python-modules/nose-randomly/default.nix5
-rw-r--r--pkgs/development/python-modules/nose_progressive/default.nix4
-rw-r--r--pkgs/development/python-modules/nose_warnings_filters/default.nix1
-rw-r--r--pkgs/development/python-modules/nosejs/default.nix2
-rw-r--r--pkgs/development/python-modules/notebook/default.nix4
-rw-r--r--pkgs/development/python-modules/nuitka/default.nix4
-rw-r--r--pkgs/development/python-modules/numba/default.nix3
-rw-r--r--pkgs/development/python-modules/numexpr/default.nix4
-rw-r--r--pkgs/development/python-modules/numpy-stl/default.nix4
-rw-r--r--pkgs/development/python-modules/numpy/default.nix16
-rw-r--r--pkgs/development/python-modules/obfsproxy/default.nix3
-rw-r--r--pkgs/development/python-modules/ofxtools/default.nix4
-rw-r--r--pkgs/development/python-modules/openpyxl/default.nix4
-rw-r--r--pkgs/development/python-modules/owslib/default.nix4
-rw-r--r--pkgs/development/python-modules/pandas/0.17.1.nix76
-rw-r--r--pkgs/development/python-modules/pandas/default.nix11
-rw-r--r--pkgs/development/python-modules/paperspace/default.nix4
-rw-r--r--pkgs/development/python-modules/paste/default.nix4
-rw-r--r--pkgs/development/python-modules/pastescript/default.nix3
-rw-r--r--pkgs/development/python-modules/pathlib2/default.nix4
-rw-r--r--pkgs/development/python-modules/peewee/default.nix4
-rw-r--r--pkgs/development/python-modules/pep257/default.nix2
-rw-r--r--pkgs/development/python-modules/perf/default.nix4
-rw-r--r--pkgs/development/python-modules/pg8000/default.nix4
-rw-r--r--pkgs/development/python-modules/phonenumbers/default.nix4
-rw-r--r--pkgs/development/python-modules/pid/default.nix4
-rw-r--r--pkgs/development/python-modules/pika/default.nix4
-rw-r--r--pkgs/development/python-modules/pivy/default.nix5
-rw-r--r--pkgs/development/python-modules/pkgconfig/default.nix7
-rw-r--r--pkgs/development/python-modules/pkgconfig/executable.patch38
-rw-r--r--pkgs/development/python-modules/plotly/default.nix4
-rw-r--r--pkgs/development/python-modules/pluggy/default.nix4
-rw-r--r--pkgs/development/python-modules/podcastparser/default.nix8
-rw-r--r--pkgs/development/python-modules/pprintpp/default.nix30
-rw-r--r--pkgs/development/python-modules/prawcore/default.nix16
-rw-r--r--pkgs/development/python-modules/precis-i18n/default.nix20
-rw-r--r--pkgs/development/python-modules/process-tests/default.nix4
-rw-r--r--pkgs/development/python-modules/progressbar2/default.nix27
-rw-r--r--pkgs/development/python-modules/py3status/default.nix4
-rw-r--r--pkgs/development/python-modules/pyarrow/default.nix12
-rw-r--r--pkgs/development/python-modules/pyasn1-modules/default.nix4
-rw-r--r--pkgs/development/python-modules/pyasn1/default.nix4
-rw-r--r--pkgs/development/python-modules/pyatspi/default.nix3
-rw-r--r--pkgs/development/python-modules/pyaxmlparser/default.nix3
-rw-r--r--pkgs/development/python-modules/pybind11/default.nix26
-rw-r--r--pkgs/development/python-modules/pybotvac/default.nix4
-rw-r--r--pkgs/development/python-modules/pybtex/default.nix4
-rw-r--r--pkgs/development/python-modules/pycairo/default.nix42
-rw-r--r--pkgs/development/python-modules/pycares/default.nix4
-rw-r--r--pkgs/development/python-modules/pychromecast/default.nix17
-rw-r--r--pkgs/development/python-modules/pycontracts/default.nix4
-rw-r--r--pkgs/development/python-modules/pycryptodome/default.nix4
-rw-r--r--pkgs/development/python-modules/pycryptodomex/default.nix4
-rw-r--r--pkgs/development/python-modules/pydispatcher/default.nix2
-rw-r--r--pkgs/development/python-modules/pydub/default.nix4
-rw-r--r--pkgs/development/python-modules/pyfakefs/default.nix14
-rw-r--r--pkgs/development/python-modules/pygame/git.nix47
-rw-r--r--pkgs/development/python-modules/pygobject/3.nix2
-rw-r--r--pkgs/development/python-modules/pygobject/default.nix2
-rw-r--r--pkgs/development/python-modules/pygobject/pygobject-2.0-fix-darwin.patch88
-rw-r--r--pkgs/development/python-modules/pygraphviz/default.nix15
-rw-r--r--pkgs/development/python-modules/pygraphviz/graphviz-path.patch2
-rw-r--r--pkgs/development/python-modules/pymacaroons-pynacl/default.nix24
-rw-r--r--pkgs/development/python-modules/pymacaroons/default.nix25
-rw-r--r--pkgs/development/python-modules/pymongo/2_9_1.nix24
-rw-r--r--pkgs/development/python-modules/pymongo/default.nix8
-rw-r--r--pkgs/development/python-modules/pynvim/default.nix4
-rw-r--r--pkgs/development/python-modules/pyobjc/default.nix4
-rw-r--r--pkgs/development/python-modules/pyogg/default.nix4
-rw-r--r--pkgs/development/python-modules/pyopencl/default.nix4
-rw-r--r--pkgs/development/python-modules/pyopenssl/default.nix2
-rw-r--r--pkgs/development/python-modules/pyparsing/default.nix4
-rw-r--r--pkgs/development/python-modules/pyrsistent/default.nix4
-rw-r--r--pkgs/development/python-modules/pysam/default.nix4
-rw-r--r--pkgs/development/python-modules/pysaml2/default.nix68
-rw-r--r--pkgs/development/python-modules/pysaml2/hardcode-xmlsec1-path.patch39
-rw-r--r--pkgs/development/python-modules/pyshp/default.nix4
-rw-r--r--pkgs/development/python-modules/pyslurm/default.nix15
-rw-r--r--pkgs/development/python-modules/pysmi/default.nix4
-rw-r--r--pkgs/development/python-modules/pysnmp/default.nix8
-rw-r--r--pkgs/development/python-modules/pyspark/default.nix7
-rw-r--r--pkgs/development/python-modules/pytest-benchmark/default.nix4
-rw-r--r--pkgs/development/python-modules/pytest-cov/default.nix4
-rw-r--r--pkgs/development/python-modules/pytest-cram/default.nix2
-rw-r--r--pkgs/development/python-modules/pytest-django/default.nix8
-rw-r--r--pkgs/development/python-modules/pytest-flake8/default.nix6
-rw-r--r--pkgs/development/python-modules/pytest-rerunfailures/default.nix9
-rw-r--r--pkgs/development/python-modules/pytest/default.nix85
-rw-r--r--pkgs/development/python-modules/pytestrunner/default.nix4
-rw-r--r--pkgs/development/python-modules/python-docx/default.nix4
-rw-r--r--pkgs/development/python-modules/python-gitlab/default.nix4
-rw-r--r--pkgs/development/python-modules/python-gnupg/default.nix7
-rw-r--r--pkgs/development/python-modules/python-jenkins/default.nix23
-rw-r--r--pkgs/development/python-modules/python-socketio/default.nix4
-rw-r--r--pkgs/development/python-modules/python-utils/default.nix22
-rw-r--r--pkgs/development/python-modules/python-vagrant/default.nix21
-rw-r--r--pkgs/development/python-modules/python_openzwave/default.nix4
-rw-r--r--pkgs/development/python-modules/pyu2f/default.nix35
-rw-r--r--pkgs/development/python-modules/pyudev/default.nix2
-rw-r--r--pkgs/development/python-modules/pyutil/default.nix3
-rw-r--r--pkgs/development/python-modules/pyvcd/default.nix32
-rw-r--r--pkgs/development/python-modules/pywal/default.nix13
-rw-r--r--pkgs/development/python-modules/qrcode/default.nix5
-rw-r--r--pkgs/development/python-modules/qscintilla-qt5/default.nix41
-rw-r--r--pkgs/development/python-modules/qtawesome/default.nix4
-rw-r--r--pkgs/development/python-modules/rasterio/default.nix4
-rw-r--r--pkgs/development/python-modules/recommonmark/default.nix28
-rw-r--r--pkgs/development/python-modules/regex/default.nix4
-rw-r--r--pkgs/development/python-modules/remotecv/default.nix4
-rw-r--r--pkgs/development/python-modules/reportlab/default.nix4
-rw-r--r--pkgs/development/python-modules/responses/default.nix4
-rw-r--r--pkgs/development/python-modules/rlp/default.nix4
-rw-r--r--pkgs/development/python-modules/robomachine/default.nix4
-rw-r--r--pkgs/development/python-modules/rpmfluff/default.nix4
-rw-r--r--pkgs/development/python-modules/ruamel_yaml/default.nix4
-rw-r--r--pkgs/development/python-modules/scikit-bio/default.nix4
-rw-r--r--pkgs/development/python-modules/scikitlearn/default.nix4
-rw-r--r--pkgs/development/python-modules/scrapy/default.nix14
-rw-r--r--pkgs/development/python-modules/serversyncstorage/default.nix23
-rw-r--r--pkgs/development/python-modules/setuptools/default.nix4
-rw-r--r--pkgs/development/python-modules/shodan/default.nix35
-rw-r--r--pkgs/development/python-modules/slixmpp/default.nix26
-rw-r--r--pkgs/development/python-modules/slixmpp/hardcode-gnupg-path.patch26
-rw-r--r--pkgs/development/python-modules/sly/default.nix29
-rw-r--r--pkgs/development/python-modules/sortedcollections/default.nix8
-rw-r--r--pkgs/development/python-modules/sphinx-argparse/default.nix33
-rw-r--r--pkgs/development/python-modules/sphinx/default.nix4
-rw-r--r--pkgs/development/python-modules/sphinxcontrib-bibtex/default.nix4
-rw-r--r--pkgs/development/python-modules/sqlalchemy-migrate/default.nix4
-rw-r--r--pkgs/development/python-modules/sqlmap/default.nix4
-rw-r--r--pkgs/development/python-modules/sqlparse/default.nix2
-rw-r--r--pkgs/development/python-modules/staticjinja/default.nix4
-rw-r--r--pkgs/development/python-modules/stevedore/default.nix4
-rw-r--r--pkgs/development/python-modules/supervisor/default.nix4
-rw-r--r--pkgs/development/python-modules/syncserver/default.nix33
-rw-r--r--pkgs/development/python-modules/tableaudocumentapi/default.nix24
-rw-r--r--pkgs/development/python-modules/telethon-session-sqlalchemy/default.nix27
-rw-r--r--pkgs/development/python-modules/telethon/default.nix30
-rw-r--r--pkgs/development/python-modules/tenacity/default.nix34
-rw-r--r--pkgs/development/python-modules/textacy/default.nix5
-rw-r--r--pkgs/development/python-modules/texttable/default.nix4
-rw-r--r--pkgs/development/python-modules/thespian/default.nix4
-rw-r--r--pkgs/development/python-modules/tlsh/default.nix4
-rw-r--r--pkgs/development/python-modules/tokenserver/default.nix1
-rw-r--r--pkgs/development/python-modules/tornado/default.nix2
-rw-r--r--pkgs/development/python-modules/trezor/default.nix37
-rw-r--r--pkgs/development/python-modules/trio/default.nix4
-rw-r--r--pkgs/development/python-modules/twilio/default.nix4
-rw-r--r--pkgs/development/python-modules/typed-ast/default.nix4
-rw-r--r--pkgs/development/python-modules/typing-extensions/default.nix4
-rw-r--r--pkgs/development/python-modules/uncompyle6/default.nix4
-rw-r--r--pkgs/development/python-modules/unittest-xml-reporting/default.nix4
-rw-r--r--pkgs/development/python-modules/uproot-methods/default.nix4
-rw-r--r--pkgs/development/python-modules/uproot/default.nix11
-rw-r--r--pkgs/development/python-modules/vidstab/default.nix4
-rw-r--r--pkgs/development/python-modules/vine/default.nix4
-rw-r--r--pkgs/development/python-modules/w3lib/default.nix4
-rw-r--r--pkgs/development/python-modules/wcwidth/default.nix45
-rw-r--r--pkgs/development/python-modules/webob/default.nix4
-rw-r--r--pkgs/development/python-modules/whisper/default.nix4
-rw-r--r--pkgs/development/python-modules/whoosh/default.nix3
-rw-r--r--pkgs/development/python-modules/worldengine/default.nix3
-rw-r--r--pkgs/development/python-modules/wrf-python/default.nix41
-rw-r--r--pkgs/development/python-modules/wxPython/3.0.nix5
-rw-r--r--pkgs/development/python-modules/wxPython/4.0.nix4
-rw-r--r--pkgs/development/python-modules/xarray/default.nix4
-rw-r--r--pkgs/development/python-modules/xlrd/default.nix2
-rw-r--r--pkgs/development/python-modules/yamllint/default.nix4
-rw-r--r--pkgs/development/python-modules/yarg/default.nix27
-rw-r--r--pkgs/development/python-modules/yubico-client/default.nix24
-rw-r--r--pkgs/development/python-modules/zm-py/default.nix29
-rw-r--r--pkgs/development/python-modules/zope_testrunner/default.nix4
403 files changed, 3397 insertions, 1385 deletions
diff --git a/pkgs/development/python-modules/Cython/default.nix b/pkgs/development/python-modules/Cython/default.nix
index 223a519ec89e..90a605063b0e 100644
--- a/pkgs/development/python-modules/Cython/default.nix
+++ b/pkgs/development/python-modules/Cython/default.nix
@@ -26,11 +26,11 @@ let
 
 in buildPythonPackage rec {
   pname = "Cython";
-  version = "0.29.1";
+  version = "0.29.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "15zv9c4ami9hzya28wz1shqljbbk5sxdvqbjxqnf15ssk137daqq";
+    sha256 = "2ac187ff998a95abb7fae452b5178f91e1a713698c9ced89836c94e6b1d3f41e";
   };
 
   nativeBuildInputs = [
@@ -50,7 +50,12 @@ in buildPythonPackage rec {
         ''--exclude="(${builtins.concatStringsSep "|" excludedTests})"''}
   '';
 
-  doCheck = !stdenv.isDarwin;
+  # https://github.com/cython/cython/issues/2785
+  # Temporary solution
+  doCheck = false;
+
+#   doCheck = !stdenv.isDarwin;
+
 
   meta = {
     description = "An optimising static compiler for both the Python programming language and the extended Cython programming language";
diff --git a/pkgs/development/python-modules/GitPython/default.nix b/pkgs/development/python-modules/GitPython/default.nix
index aef59ba2ab91..24fe4a2458d6 100644
--- a/pkgs/development/python-modules/GitPython/default.nix
+++ b/pkgs/development/python-modules/GitPython/default.nix
@@ -1,4 +1,4 @@
-{ lib, buildPythonPackage, fetchPypi, git, gitdb2, mock, nose, ddt }:
+{ lib, buildPythonPackage, fetchPypi, isPy27, substituteAll, git, gitdb2, mock, nose, ddt }:
 
 buildPythonPackage rec {
   version = "2.1.11";
@@ -9,12 +9,15 @@ buildPythonPackage rec {
     sha256 = "8237dc5bfd6f1366abeee5624111b9d6879393d84745a507de0fda86043b65a8";
   };
 
-  checkInputs = [ mock nose ddt ];
-  propagatedBuildInputs = [ gitdb2 ];
+  patches = [
+    (substituteAll {
+      src = ./hardcode-git-path.patch;
+      inherit git;
+    })
+  ];
 
-  postPatch = ''
-    sed -i "s|^refresh()$|refresh(path='${git}/bin/git')|" git/__init__.py
-  '';
+  checkInputs = [ nose ] ++ lib.optional isPy27 mock;
+  propagatedBuildInputs = [ gitdb2 ddt ];
 
   # Tests require a git repo
   doCheck = false;
diff --git a/pkgs/development/python-modules/GitPython/hardcode-git-path.patch b/pkgs/development/python-modules/GitPython/hardcode-git-path.patch
new file mode 100644
index 000000000000..937479959926
--- /dev/null
+++ b/pkgs/development/python-modules/GitPython/hardcode-git-path.patch
@@ -0,0 +1,13 @@
+diff --git a/git/cmd.py b/git/cmd.py
+index a4faefe..51ad442 100644
+--- a/git/cmd.py
++++ b/git/cmd.py
+@@ -175,7 +175,7 @@ class Git(LazyMixin):
+ 
+     # CONFIGURATION
+ 
+-    git_exec_name = "git"           # default that should work on linux and windows
++    git_exec_name = "@git@/bin/git"
+ 
+     # Enables debugging of GitPython's git commands
+     GIT_PYTHON_TRACE = os.environ.get("GIT_PYTHON_TRACE", False)
diff --git a/pkgs/development/python-modules/Logbook/default.nix b/pkgs/development/python-modules/Logbook/default.nix
index 5b0e10340bd6..866c04109294 100644
--- a/pkgs/development/python-modules/Logbook/default.nix
+++ b/pkgs/development/python-modules/Logbook/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "Logbook";
-  version = "1.4.1";
+  version = "1.4.3";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1nsnz9qdcba85q57qbam6skfvq2k7savn64qdy44cjnh0vkmqdrj";
+    sha256 = "a5a96792abd8172c80d61b7530e134524f20e2841981038031e602ed5920fef5";
   };
 
   checkInputs = [ pytest ] ++ lib.optionals (!isPy3k) [ mock ];
diff --git a/pkgs/development/python-modules/Theano/default.nix b/pkgs/development/python-modules/Theano/default.nix
index a9799807a279..b2d0aaa5b6b9 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.3";
+  version = "1.0.4";
 
   disabled = isPyPy || pythonOlder "2.6" || (isPy3k && pythonOlder "3.3");
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "637f3b34d40ef5e0d54dd4c40618475aaa085c26d2491e925c98e2ad4bc2115a";
+    sha256 = "35c9bbef56b61ffa299265a42a4e8f8cb5a07b2997dabaef0f8830b397086913";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/Wand/default.nix b/pkgs/development/python-modules/Wand/default.nix
index 8108914814af..a884b9eb7fbe 100644
--- a/pkgs/development/python-modules/Wand/default.nix
+++ b/pkgs/development/python-modules/Wand/default.nix
@@ -1,46 +1,33 @@
 { stdenv
 , buildPythonPackage
 , fetchPypi
-, imagemagick
-, pytest
-, psutil
-, memory_profiler
-, pytest_xdist
+, imagemagick7Big
 }:
 
-let
-  soext = stdenv.hostPlatform.extensions.sharedLibrary;
-  magick_wand_library = "${imagemagick}/lib/libMagickWand-6.Q16${soext}";
-  imagemagick_library = "${imagemagick}/lib/libMagickCore-6.Q16${soext}";
-in buildPythonPackage rec {
+buildPythonPackage rec {
   pname = "Wand";
-  version = "0.4.5";
+  version = "0.5.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "b40a2215545e8c7193b3fccd6e7251dc556ec9b878a4f67d992b056ff396bc65";
+    sha256 = "0rp1zdp2p7qngva5amcw4jb5i8gf569v8469gf6zj36hcnzksxjj";
   };
 
-  checkInputs = [ pytest pytest_xdist memory_profiler psutil ];
-
-  buildInputs = [ imagemagick ];
-
-  inherit magick_wand_library imagemagick_library;
-
   postPatch = ''
-    substituteAllInPlace wand/api.py
+    substituteInPlace wand/api.py --replace \
+      "magick_home = os.environ.get('MAGICK_HOME')" \
+      "magick_home = '${imagemagick7Big}'"
   '';
 
   # tests not included with pypi release
   doCheck = false;
 
+  passthru.imagemagick = imagemagick7Big;
+
   meta = with stdenv.lib; {
     description = "Ctypes-based simple MagickWand API binding for Python";
     homepage = http://wand-py.org/;
     license = [ licenses.mit ];
-  };
-
-  passthru = {
-    inherit imagemagick;
+    maintainers = with maintainers; [ infinisil ];
   };
 }
diff --git a/pkgs/development/python-modules/acme/default.nix b/pkgs/development/python-modules/acme/default.nix
index 503c6f796591..e9156b5c6af1 100644
--- a/pkgs/development/python-modules/acme/default.nix
+++ b/pkgs/development/python-modules/acme/default.nix
@@ -1,6 +1,6 @@
 { buildPythonPackage
 , certbot
-, nose
+, pytest
 , cryptography
 , pyasn1
 , pyopenssl
@@ -8,6 +8,7 @@
 , josepy
 , pytz
 , requests
+, requests-toolbelt
 , six
 , werkzeug
 , mock
@@ -20,13 +21,13 @@ buildPythonPackage rec {
   pname = "acme";
 
   propagatedBuildInputs = [
-    cryptography pyasn1 pyopenssl pyRFC3339 pytz requests six werkzeug mock
-    ndg-httpsclient josepy
+    cryptography pyasn1 pyopenssl pyRFC3339 pytz requests requests-toolbelt six
+    werkzeug mock ndg-httpsclient josepy
   ];
 
-  checkInputs = [ nose ];
+  checkInputs = [ pytest ];
 
-  postUnpack = "sourceRoot=\${sourceRoot}/acme";
+  sourceRoot = "source/${pname}";
 
   meta = certbot.meta // {
     description = "ACME protocol implementation in Python";
diff --git a/pkgs/development/python-modules/acoustics/default.nix b/pkgs/development/python-modules/acoustics/default.nix
index 2b145810f1bd..7b26d5c07a5a 100644
--- a/pkgs/development/python-modules/acoustics/default.nix
+++ b/pkgs/development/python-modules/acoustics/default.nix
@@ -1,26 +1,31 @@
-{ stdenv, buildPythonPackage, fetchPypi
-, cython, pytest, numpy, scipy, matplotlib, pandas, tabulate }:
+{ lib, buildPythonPackage, fetchPypi
+, pytest, numpy, scipy, matplotlib, pandas, tabulate, pythonOlder }:
 
 buildPythonPackage rec {
   pname = "acoustics";
-  version = "0.1.2";
+  version = "0.2.0.post1";
 
-  buildInputs = [ cython pytest ];
+  checkInputs = [ pytest ];
   propagatedBuildInputs = [ numpy scipy matplotlib pandas tabulate ];
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "b75a47de700d01e704de95953a6e969922b2f510d7eefe59f7f8980ad44ad1b7";
+    sha256 = "738218db41ff1b1f932eabb700e400d84141af6f29392aab5f7be1b19758f806";
   };
 
-  # Tests not distributed
+  # Tests look in wrong place for test data
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  checkPhase = ''
+    py.test tests
+  '';
+
+  disabled = pythonOlder "3.6";
+
+  meta = with lib; {
     description = "A package for acousticians";
     maintainers = with maintainers; [ fridh ];
     license = with licenses; [ bsd3 ];
     homepage = https://github.com/python-acoustics/python-acoustics;
-    broken = true;
   };
 }
diff --git a/pkgs/development/python-modules/aiohttp-socks/default.nix b/pkgs/development/python-modules/aiohttp-socks/default.nix
new file mode 100644
index 000000000000..f898c9313e1f
--- /dev/null
+++ b/pkgs/development/python-modules/aiohttp-socks/default.nix
@@ -0,0 +1,25 @@
+{ lib, fetchPypi, buildPythonPackage, pythonOlder, aiohttp }:
+
+buildPythonPackage rec {
+  pname = "aiohttp-socks";
+  version = "0.2.2";
+
+  src = fetchPypi {
+    inherit version;
+    pname = "aiohttp_socks";
+    sha256 = "0473702jk66xrgpm28wbdgpnak4v0dh2qmdjw7ky7hf3lwwqkggf";
+  };
+
+  propagatedBuildInputs = [ aiohttp ];
+
+  # Checks needs internet access
+  doCheck = false;
+
+  disabled = pythonOlder "3.5.3";
+
+  meta = {
+    description = "SOCKS proxy connector for aiohttp";
+    license = lib.licenses.asl20;
+    homepage = https://github.com/romis2012/aiohttp-socks;
+  };
+}
diff --git a/pkgs/development/python-modules/aiolifx-effects/default.nix b/pkgs/development/python-modules/aiolifx-effects/default.nix
new file mode 100644
index 000000000000..bbe2b538ac5e
--- /dev/null
+++ b/pkgs/development/python-modules/aiolifx-effects/default.nix
@@ -0,0 +1,31 @@
+{ lib
+, fetchPypi
+, buildPythonPackage
+, isPy3k
+, aiolifx
+}:
+
+buildPythonPackage rec {
+  pname = "aiolifx-effects";
+  version = "0.2.1";
+
+  src = fetchPypi {
+    inherit version;
+    pname = "aiolifx_effects";
+    sha256 = "cb4ac52deeb220783fc6449251cf40833fcffa28648270be64b1b3e83e06b503";
+  };
+
+  # tests are not implemented
+  doCheck = false;
+
+  disabled = !isPy3k;
+
+  propagatedBuildInputs = [ aiolifx ];
+
+  meta = with lib; {
+    homepage = https://github.com/amelchio/aiolifx_effects;
+    license = licenses.mit;
+    description = "Light effects (pulse, colorloop ...) for LIFX lights running on aiolifx";
+    maintainers = with maintainers; [ netixx ];
+  };
+}
diff --git a/pkgs/development/python-modules/aiolifx/default.nix b/pkgs/development/python-modules/aiolifx/default.nix
new file mode 100644
index 000000000000..b7855bee72dc
--- /dev/null
+++ b/pkgs/development/python-modules/aiolifx/default.nix
@@ -0,0 +1,31 @@
+{ lib
+, fetchPypi
+, buildPythonPackage
+, isPy3k
+, ifaddr
+, bitstring
+}:
+
+buildPythonPackage rec {
+  pname = "aiolifx";
+  version = "0.6.7";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "cf53c9faea6eee25a466e73eef1753b82a75c7497648149c19c15342df2678f2";
+  };
+
+  # tests are not implemented
+  doCheck = false;
+
+  disabled = !isPy3k;
+
+  propagatedBuildInputs = [ bitstring ifaddr ];
+
+  meta = with lib; {
+    homepage = http://github.com/frawau/aiolifx;
+    license = licenses.mit;
+    description = "API for local communication with LIFX devices over a LAN with asyncio";
+    maintainers = with maintainers; [ netixx ];
+  };
+}
diff --git a/pkgs/development/python-modules/aiorpcx/default.nix b/pkgs/development/python-modules/aiorpcx/default.nix
new file mode 100644
index 000000000000..346e2f338930
--- /dev/null
+++ b/pkgs/development/python-modules/aiorpcx/default.nix
@@ -0,0 +1,25 @@
+{ lib, fetchPypi, buildPythonPackage, pythonOlder, attrs }:
+
+buildPythonPackage rec {
+  pname = "aiorpcx";
+  version = "0.10.4";
+
+  src = fetchPypi {
+    inherit version;
+    pname = "aiorpcX";
+    sha256 = "15jhklvl0ncy3mb2h9zkahky9fzzr1amgjylm2k3mvlpyn2dbpz6";
+  };
+
+  propagatedBuildInputs = [ attrs ];
+
+  disabled = pythonOlder "3.6";
+
+  # Checks needs internet access
+  doCheck = false;
+
+  meta = {
+    description = "Transport, protocol and framing-independent async RPC client and server implementation";
+    license = lib.licenses.mit;
+    homepage = https://github.com/kyuupichan/aiorpcX;
+  };
+}
diff --git a/pkgs/development/python-modules/alembic/default.nix b/pkgs/development/python-modules/alembic/default.nix
index cc12243ab403..b93843acea1c 100644
--- a/pkgs/development/python-modules/alembic/default.nix
+++ b/pkgs/development/python-modules/alembic/default.nix
@@ -5,11 +5,11 @@
 
 buildPythonPackage rec {
   pname = "alembic";
-  version = "1.0.3";
+  version = "1.0.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "4b6ff7433247fe80b6ef522ef3763acb959cbdef027d03f76f4cd3c7118c1872";
+    sha256 = "35660f7e6159288e2be111126be148ef04cbf7306da73c8b8bd4400837bb08e3";
   };
 
   buildInputs = [ pytest pytestcov mock coverage ];
diff --git a/pkgs/development/python-modules/allpairspy/default.nix b/pkgs/development/python-modules/allpairspy/default.nix
index d1f97d8e7c72..e64a6004b789 100644
--- a/pkgs/development/python-modules/allpairspy/default.nix
+++ b/pkgs/development/python-modules/allpairspy/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "allpairspy";
-  version = "2.4.1";
+  version = "2.4.3";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "e8b35751f91692bf0318091b3f44cdf9bbbe3f37a2ff4786eaffc09dc7114fb3";
+    sha256 = "8ce160db245375a5ccf0831be77cd98394f514c1b3501ddff5f8edb780ee1748";
   };
 
   propagatedBuildInputs = [ six ];
diff --git a/pkgs/development/python-modules/androguard/default.nix b/pkgs/development/python-modules/androguard/default.nix
new file mode 100644
index 000000000000..6cd4c030767c
--- /dev/null
+++ b/pkgs/development/python-modules/androguard/default.nix
@@ -0,0 +1,37 @@
+{ lib, buildPythonPackage, fetchPypi, future, networkx, pygments, lxml, colorama, matplotlib,
+  asn1crypto, click, pydot, ipython, pyqt5, pyperclip }:
+
+buildPythonPackage rec {
+  version = "3.3.4";
+  pname = "androguard";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1hinfbvha7f1py1jnvxih7lx0p4z2nyaiq9bvg8v3bykwrd9jff2";
+  };
+
+  propagatedBuildInputs = [
+    future
+    networkx
+    pygments
+    lxml
+    colorama
+    matplotlib
+    asn1crypto
+    click
+    pydot
+    ipython
+    pyqt5
+    pyperclip
+  ];
+
+  # Tests are not shipped on PyPI.
+  doCheck = false;
+
+  meta = {
+    description = "Tool and python library to interact with Android Files";
+    homepage = https://github.com/androguard/androguard;
+    license = lib.licenses.asl20;
+    maintainers = [ lib.maintainers.pmiddend ];
+  };
+}
diff --git a/pkgs/development/python-modules/aniso8601/default.nix b/pkgs/development/python-modules/aniso8601/default.nix
index 163e2c9b2099..4f6602395300 100644
--- a/pkgs/development/python-modules/aniso8601/default.nix
+++ b/pkgs/development/python-modules/aniso8601/default.nix
@@ -1,9 +1,9 @@
 { stdenv, buildPythonPackage, fetchPypi
-, dateutil }:
+, dateutil, mock, isPy3k }:
 
 buildPythonPackage rec {
   pname = "aniso8601";
-  version = "4.0.1";
+  version = "4.1.0";
 
   meta = with stdenv.lib; {
     description = "Parses ISO 8601 strings.";
@@ -13,8 +13,10 @@ buildPythonPackage rec {
 
   propagatedBuildInputs = [ dateutil ];
 
+  checkInputs = stdenv.lib.optional (!isPy3k) mock;
+
   src = fetchPypi {
     inherit pname version;
-    sha256 = "15cwnadw2xdczdi13k9grrgqq67hxgys4l155dqsl2zh3glhsmp7";
+    sha256 = "1x49k287ky1spv3msc9fwmc7ydyw6rlcr14nslgcmpjfn3pgzh03";
   };
 }
diff --git a/pkgs/development/python-modules/asciimatics/default.nix b/pkgs/development/python-modules/asciimatics/default.nix
new file mode 100644
index 000000000000..d83e2fdbf443
--- /dev/null
+++ b/pkgs/development/python-modules/asciimatics/default.nix
@@ -0,0 +1,48 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, setuptools_scm
+, pyfiglet
+, pillow
+, wcwidth
+, future
+, mock
+, nose
+}:
+
+buildPythonPackage rec {
+  pname = "asciimatics";
+  version = "1.10.0";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "9101b0b6885542f324980bbe13a772475cd6a12678f601228eaaea412db919ab";
+  };
+
+  nativeBuildInputs = [
+    setuptools_scm
+  ];
+
+  propagatedBuildInputs = [
+    pyfiglet
+    pillow
+    wcwidth
+    future
+  ];
+
+  checkInputs = [
+    mock
+    nose
+  ];
+
+  # tests require a pty emulator
+  # which is too complicated to setup here
+  doCheck = false;
+
+  meta = with lib; {
+    description = "Helps to create full-screen text UIs (from interactive forms to ASCII animations) on any platform";
+    homepage = https://github.com/peterbrittain/asciimatics;
+    license = licenses.asl20;
+    maintainers = with maintainers; [ cmcdragonkai ];
+  };
+}
diff --git a/pkgs/development/python-modules/astral/default.nix b/pkgs/development/python-modules/astral/default.nix
index 577a92eb8910..3c5839267bde 100644
--- a/pkgs/development/python-modules/astral/default.nix
+++ b/pkgs/development/python-modules/astral/default.nix
@@ -2,18 +2,18 @@
 
 buildPythonPackage rec {
   pname = "astral";
-  version = "1.7.1";
+  version = "1.9.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "01raz1c29v08f05l395v1hxllad35m5ld1jj51knb53c0396y248";
+    sha256 = "179f72a086cee96487e60514bab81e821966953fc2e2f7091500d3d2c314e38b";
   };
 
   propagatedBuildInputs = [ pytz requests ];
 
   checkInputs = [ pytest ];
   checkPhase = ''
-    # https://github.com/sffjunkie/astral/pull/13
+    # https://github.com/sffjunkie/astral/pull/26
     touch src/test/.api_key
     py.test -m "not webtest"
   '';
diff --git a/pkgs/development/python-modules/astropy/default.nix b/pkgs/development/python-modules/astropy/default.nix
index 1fd9b53054b5..0ba779ec93e5 100644
--- a/pkgs/development/python-modules/astropy/default.nix
+++ b/pkgs/development/python-modules/astropy/default.nix
@@ -7,7 +7,7 @@
 
 buildPythonPackage rec {
   pname = "astropy";
-  version = "3.1";
+  version = "3.1.1";
 
   disabled = !isPy3k; # according to setup.py
 
@@ -15,7 +15,7 @@ buildPythonPackage rec {
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1ldmdwfp0g8293k4gyp962nv7ik4zw83p1khkq8jqkzmk7qf040y";
+    sha256 = "0fzm2q922qi68ns5biy807dzmgz1i9gqdh73lcafs0gfk8zyc9v5";
   };
 
   propagatedBuildInputs = [ pytest numpy ]; # yes it really has pytest in install_requires
diff --git a/pkgs/development/python-modules/audio-metadata/default.nix b/pkgs/development/python-modules/audio-metadata/default.nix
new file mode 100644
index 000000000000..633daab7d4e3
--- /dev/null
+++ b/pkgs/development/python-modules/audio-metadata/default.nix
@@ -0,0 +1,37 @@
+{ lib, buildPythonPackage, fetchPypi, pythonOlder
+, attrs
+, bidict
+, bitstruct
+, more-itertools
+, pprintpp
+}:
+
+buildPythonPackage rec {
+  pname = "audio-metadata";
+  version = "0.3.0";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1jd0wzhh9as2qyiwggqmvsbsm5nlb73qnxix2mcar53cddvwrvj7";
+  };
+
+  propagatedBuildInputs = [
+    attrs
+    bidict
+    bitstruct
+    more-itertools
+    pprintpp
+  ];
+
+  # No tests
+  doCheck = false;
+
+  disabled = pythonOlder "3.6";
+
+  meta = with lib; {
+    homepage = https://github.com/thebigmunch/audio-metadata;
+    description = "A library for reading and, in the future, writing metadata from audio files";
+    license = licenses.mit;
+    maintainers = with maintainers; [ jakewaksbaum ];
+  };
+}
diff --git a/pkgs/development/python-modules/awkward/default.nix b/pkgs/development/python-modules/awkward/default.nix
index 24d74f1d44fc..d02ffc4770c1 100644
--- a/pkgs/development/python-modules/awkward/default.nix
+++ b/pkgs/development/python-modules/awkward/default.nix
@@ -9,11 +9,11 @@
 
 buildPythonPackage rec {
   pname = "awkward";
-  version = "0.5.2";
+  version = "0.5.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "bc824882f80ae07d442a011eb6d14a6fce581e022d4ff6c73d89d93c832ee3cc";
+    sha256 = "c6b84d2356c8b1af955054bbef088c61bf87f68e062e866fa8d9ea5cb871389f";
   };
 
   buildInputs = [ pytestrunner h5py ];
diff --git a/pkgs/development/python-modules/aws-sam-translator/default.nix b/pkgs/development/python-modules/aws-sam-translator/default.nix
index 307cd9b84b0a..917a93798820 100644
--- a/pkgs/development/python-modules/aws-sam-translator/default.nix
+++ b/pkgs/development/python-modules/aws-sam-translator/default.nix
@@ -10,11 +10,11 @@
 
 buildPythonPackage rec {
   pname = "aws-sam-translator";
-  version = "1.8.0";
+  version = "1.9.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "bdf9ba476a9a7726fe93746670ccae257955352d98b231f32e9529f01db7ef3b";
+    sha256 = "1334795a85077cd5741822149260f90104fb2a01699171c9e9567c0db76ed74d";
   };
 
   # Tests are not included in the PyPI package
diff --git a/pkgs/development/python-modules/azure-common/default.nix b/pkgs/development/python-modules/azure-common/default.nix
index ad2ef52224b8..5ea04cd19c87 100644
--- a/pkgs/development/python-modules/azure-common/default.nix
+++ b/pkgs/development/python-modules/azure-common/default.nix
@@ -7,14 +7,14 @@
 }:
 
 buildPythonPackage rec {
-  version = "1.1.16";
+  version = "1.1.17";
   pname = "azure-common";
   disabled = isPyPy;
 
   src = fetchPypi {
     inherit pname version;
     extension = "zip";
-    sha256 = "2606ae77ff81c0036965b92ec2efe03eaec02a66714140ca0f7aa401b8b9bbb0";
+    sha256 = "e7cd5a8ee2ec0639454c1bd0f1ea5f609d83977376abfd304527ec7343fef1be";
   };
 
   propagatedBuildInputs = [ azure-nspkg ];
diff --git a/pkgs/development/python-modules/azure-mgmt-compute/default.nix b/pkgs/development/python-modules/azure-mgmt-compute/default.nix
index 4ea60f2f29a5..462c9e615a13 100644
--- a/pkgs/development/python-modules/azure-mgmt-compute/default.nix
+++ b/pkgs/development/python-modules/azure-mgmt-compute/default.nix
@@ -6,13 +6,13 @@
 }:
 
 buildPythonPackage rec {
-  version = "0.20.0";
+  version = "0.20.1";
   pname = "azure-mgmt-compute";
 
   src = fetchPypi {
     inherit pname version;
     extension = "zip";
-    sha256 = "12hr5vxdg2sk2fzr608a37f4i8nbchca7dgdmly2w5fc7x88jx2v";
+    sha256 = "97298fc7f133f1d50a974ed6299151eda494a574b0f7fdf8192a388015c2215a";
   };
 
   preConfigure = ''
diff --git a/pkgs/development/python-modules/azure-storage-blob/default.nix b/pkgs/development/python-modules/azure-storage-blob/default.nix
new file mode 100644
index 000000000000..9a84a7326850
--- /dev/null
+++ b/pkgs/development/python-modules/azure-storage-blob/default.nix
@@ -0,0 +1,33 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, azure-common
+, azure-storage-common
+, isPy3k
+, futures
+}:
+
+buildPythonPackage rec {
+  pname = "azure-storage-blob";
+  version = "1.4.0";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "65ebe2e54460566c2077c6b3773a2a0623eabc7b95602010cb51b84077087fda";
+  };
+
+  propagatedBuildInputs = [
+    azure-common
+    azure-storage-common
+  ] ++ lib.optional (!isPy3k) futures;
+
+  # has no tests
+  doCheck = false;
+
+  meta = with lib; {
+    description = "Client library for Microsoft Azure Storage services containing the blob service APIs";
+    homepage = https://github.com/Azure/azure-storage-python/tree/master/azure-storage-blob;
+    license = licenses.mit;
+    maintainers = with maintainers; [ cmcdragonkai ];
+  };
+}
diff --git a/pkgs/development/python-modules/azure-storage-common/default.nix b/pkgs/development/python-modules/azure-storage-common/default.nix
new file mode 100644
index 000000000000..6561163c3a2b
--- /dev/null
+++ b/pkgs/development/python-modules/azure-storage-common/default.nix
@@ -0,0 +1,37 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, azure-common
+, cryptography
+, python-dateutil
+, requests
+, isPy3k
+, azure-storage-nspkg
+}:
+
+buildPythonPackage rec {
+  pname = "azure-storage-common";
+  version = "1.4.0";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "7ab607f9b8fd27b817482194b1e7d43484c65dcf2605aae21ad8706c6891934d";
+  };
+
+  propagatedBuildInputs = [
+    azure-common
+    cryptography
+    python-dateutil
+    requests
+  ] ++ lib.optional (!isPy3k) azure-storage-nspkg;
+
+  # has no tests
+  doCheck = false;
+
+  meta = with lib; {
+    description = "Client library for Microsoft Azure Storage services containing common code shared by blob, file and queue";
+    homepage = https://github.com/Azure/azure-storage-python/tree/master/azure-storage-common;
+    license = licenses.mit;
+    maintainers = with maintainers; [ cmcdragonkai ];
+  };
+}
diff --git a/pkgs/development/python-modules/azure-storage-file/default.nix b/pkgs/development/python-modules/azure-storage-file/default.nix
new file mode 100644
index 000000000000..ffdb2f656c1d
--- /dev/null
+++ b/pkgs/development/python-modules/azure-storage-file/default.nix
@@ -0,0 +1,33 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, azure-common
+, azure-storage-common
+, isPy3k
+, futures
+}:
+
+buildPythonPackage rec {
+  pname = "azure-storage-file";
+  version = "1.4.0";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "5217b0441b671246a8d5f506a459fa3af084eeb9297c5be3bbe95d75d23bac2f";
+  };
+
+  propagatedBuildInputs = [
+    azure-common
+    azure-storage-common
+  ] ++ lib.optional (!isPy3k) futures;
+
+  # has no tests
+  doCheck = false;
+
+  meta = with lib; {
+    description = "Client library for Microsoft Azure Storage services containing the file service APIs";
+    homepage = https://github.com/Azure/azure-storage-python/tree/master/azure-storage-file;
+    license = licenses.mit;
+    maintainers = with maintainers; [ cmcdragonkai ];
+  };
+}
diff --git a/pkgs/development/python-modules/azure-storage-nspkg/default.nix b/pkgs/development/python-modules/azure-storage-nspkg/default.nix
new file mode 100644
index 000000000000..5efef893a756
--- /dev/null
+++ b/pkgs/development/python-modules/azure-storage-nspkg/default.nix
@@ -0,0 +1,29 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, azure-nspkg
+}:
+
+buildPythonPackage rec {
+  pname = "azure-storage-nspkg";
+  version = "3.1.0";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "6f3bbe8652d5f542767d8433e7f96b8df7f518774055ac7c92ed7ca85f653811";
+  };
+
+  propagatedBuildInputs = [
+    azure-nspkg
+  ];
+
+  # has no tests
+  doCheck = false;
+
+  meta = with lib; {
+    description = "Client library for Microsoft Azure Storage services owning the azure.storage namespace, user should not use this directly";
+    homepage = https://github.com/Azure/azure-storage-python/tree/master/azure-storage-nspkg;
+    license = licenses.mit;
+    maintainers = with maintainers; [ cmcdragonkai ];
+  };
+}
diff --git a/pkgs/development/python-modules/azure-storage-queue/default.nix b/pkgs/development/python-modules/azure-storage-queue/default.nix
new file mode 100644
index 000000000000..1ca1288e9b44
--- /dev/null
+++ b/pkgs/development/python-modules/azure-storage-queue/default.nix
@@ -0,0 +1,31 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, azure-common
+, azure-storage-common
+}:
+
+buildPythonPackage rec {
+  pname = "azure-storage-queue";
+  version = "1.4.0";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "0bafe9e61c0ce7b3f3ecadea21e931dab3248bd4989dc327a8666c5deae7f7ed";
+  };
+
+  propagatedBuildInputs = [
+    azure-common
+    azure-storage-common
+  ];
+
+  # has no tests
+  doCheck = false;
+
+  meta = with lib; {
+    description = "Client library for Microsoft Azure Storage services containing the queue service APIs";
+    homepage = https://github.com/Azure/azure-storage-python/tree/master/azure-storage-queue;
+    license = licenses.mit;
+    maintainers = with maintainers; [ cmcdragonkai ];
+  };
+}
diff --git a/pkgs/development/python-modules/base58/default.nix b/pkgs/development/python-modules/base58/default.nix
index 43b2761f6bca..aafd73b8d8d5 100644
--- a/pkgs/development/python-modules/base58/default.nix
+++ b/pkgs/development/python-modules/base58/default.nix
@@ -1,17 +1,15 @@
-{ stdenv, fetchFromGitHub, buildPythonPackage, pytest, pyhamcrest }:
+{ stdenv, fetchPypi, buildPythonPackage, pytest, pyhamcrest }:
 
 buildPythonPackage rec {
   pname = "base58";
-  version = "1.0.0";
+  version = "1.0.3";
 
-  src = fetchFromGitHub {
-    owner = "keis";
-    repo = "base58";
-    rev = "v${version}";
-    sha256 = "0f8isdpvbgw0sqn9bj7hk47y8akpvdl8sn6rkszla0xb92ywj0f6";
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "9a793c599979c497800eb414c852b80866f28daaed5494703fc129592cc83e60";
   };
 
-  buildInputs = [ pytest pyhamcrest ];
+  checkInputs = [ pytest pyhamcrest ];
   checkPhase = ''
     pytest
   '';
diff --git a/pkgs/development/python-modules/bayespy/default.nix b/pkgs/development/python-modules/bayespy/default.nix
index ff4b7fcb5317..430e7c3da8aa 100644
--- a/pkgs/development/python-modules/bayespy/default.nix
+++ b/pkgs/development/python-modules/bayespy/default.nix
@@ -4,7 +4,7 @@
 
 buildPythonPackage rec {
   pname = "bayespy";
-  version = "0.5.17";
+  version = "0.5.18";
 
   # Python 2 not supported and not some old Python 3 because MPL doesn't support
   # them properly.
@@ -12,7 +12,7 @@ buildPythonPackage rec {
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "2e04cd9873eea6891ea8dfd5fc6d718727ea7cc416bc2ced50e00a741386925f";
+    sha256 = "86c453d827b8d6c3574ec306f6fadfc5028614e1cd46676841336e6787a7496a";
   };
 
   checkInputs = [ pytest glibcLocales ];
diff --git a/pkgs/development/python-modules/bcrypt/default.nix b/pkgs/development/python-modules/bcrypt/default.nix
index ca22fab575ca..28cd08fb0fc3 100644
--- a/pkgs/development/python-modules/bcrypt/default.nix
+++ b/pkgs/development/python-modules/bcrypt/default.nix
@@ -4,12 +4,12 @@
 with stdenv.lib;
 
 buildPythonPackage rec {
-  version = "3.1.4";
+  version = "3.1.6";
   pname = "bcrypt";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "67ed1a374c9155ec0840214ce804616de49c3df9c5bc66740687c1c9b1cd9e8d";
+    sha256 = "44636759d222baa62806bbceb20e96f75a015a6381690d1bc2eda91c01ec02ea";
   };
   buildInputs = [ pycparser mock pytest py ];
   propagatedBuildInputs = [ six ] ++ optional (!isPyPy) cffi;
diff --git a/pkgs/development/python-modules/beancount/default.nix b/pkgs/development/python-modules/beancount/default.nix
index e023c721b0e6..61080e5e4c46 100644
--- a/pkgs/development/python-modules/beancount/default.nix
+++ b/pkgs/development/python-modules/beancount/default.nix
@@ -4,14 +4,14 @@
 , pytest, requests }:
 
 buildPythonPackage rec {
-  version = "2.1.3";
+  version = "2.2.1";
   pname = "beancount";
 
   disabled = !isPy3k;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "4b7b0d3633c82ca88d3cb3d31ad2fd2e45a42401cfa94eaa1cb938ffece34f22";
+    sha256 = "0xrgmqv0wsc0makm5i6jwng99yp3rvm30v2xqmcah60fgjymkjzb";
   };
 
   # No tests in archive
diff --git a/pkgs/development/python-modules/beanstalkc/default.nix b/pkgs/development/python-modules/beanstalkc/default.nix
new file mode 100644
index 000000000000..9ac9cf831eb3
--- /dev/null
+++ b/pkgs/development/python-modules/beanstalkc/default.nix
@@ -0,0 +1,18 @@
+{ stdenv, fetchPypi, buildPythonPackage }:
+
+buildPythonPackage rec {
+  pname = "beanstalkc";
+  version = "0.4.0";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "98978e57797320146f4b233286d9a02f65d20bad0168424118839fc608085280";
+  };
+
+  meta = {
+    description = "A simple beanstalkd client library for Python";
+    maintainers = with stdenv.lib.maintainers; [ aanderse ];
+    license = with stdenv.lib.licenses; [ asl20 ];
+    homepage = https://github.com/earl/beanstalkc;
+  };
+}
diff --git a/pkgs/development/python-modules/beautifulsoup4/default.nix b/pkgs/development/python-modules/beautifulsoup4/default.nix
index 7cf4f36a2f0f..f230d5e4c05d 100644
--- a/pkgs/development/python-modules/beautifulsoup4/default.nix
+++ b/pkgs/development/python-modules/beautifulsoup4/default.nix
@@ -9,7 +9,7 @@ buildPythonPackage rec {
     sha256 = "90f8e61121d6ae58362ce3bed8cd997efb00c914eae0ff3d363c32f9a9822d10";
   };
 
-  buildInputs = [ nose ];
+  checkInputs = [ nose ];
   checkPhase = ''
     nosetests build
   '';
diff --git a/pkgs/development/python-modules/bibtexparser/default.nix b/pkgs/development/python-modules/bibtexparser/default.nix
index 05ee0ea9553b..849b6e8b240a 100644
--- a/pkgs/development/python-modules/bibtexparser/default.nix
+++ b/pkgs/development/python-modules/bibtexparser/default.nix
@@ -1,24 +1,24 @@
 { lib
 , buildPythonPackage, fetchFromGitHub
 , future, pyparsing
-, glibcLocales, nose
+, glibcLocales, nose, unittest2
 }:
 
 buildPythonPackage rec {
   pname = "bibtexparser";
-  version = "1.0.1";
+  version = "1.1.0";
 
   # PyPI tarball does not ship tests
   src = fetchFromGitHub {
     owner = "sciunto-org";
     repo = "python-${pname}";
     rev = "v${version}";
-    sha256 = "0lmlarkfbq2hp1wa04a62245jr2mqizqsdlgilj5aq6vy92gr6ai";
+    sha256 = "1yj3hqnmkjh0sjjhmlm4097mmz98kna8rn0dd9g8zaw9g1a35h8c";
   };
 
   propagatedBuildInputs = [ future pyparsing ];
 
-  checkInputs = [ nose glibcLocales ];
+  checkInputs = [ nose unittest2 glibcLocales ];
 
   checkPhase = ''
     LC_ALL="en_US.UTF-8" nosetests
diff --git a/pkgs/development/python-modules/bidict/default.nix b/pkgs/development/python-modules/bidict/default.nix
new file mode 100644
index 000000000000..ed99686ed27b
--- /dev/null
+++ b/pkgs/development/python-modules/bidict/default.nix
@@ -0,0 +1,42 @@
+{ lib, buildPythonPackage, fetchPypi
+, setuptools_scm
+, sphinx
+, hypothesis
+, py
+, pytest
+, pytest-benchmark
+, sortedcollections
+, sortedcontainers
+}:
+
+buildPythonPackage rec {
+  pname = "bidict";
+  version = "0.17.5";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1icj0fnfx47n6i33pj5gfrmd1rzpvah1jihhdhqiqx2cy9rs6x4c";
+  };
+
+  nativeBuildInputs = [ setuptools_scm ];
+  propagatedBuildInputs = [ sphinx ];
+
+  checkInputs = [
+    hypothesis
+    py
+    pytest
+    pytest-benchmark
+    sortedcollections
+    sortedcontainers
+  ];
+  checkPhase = ''
+    pytest tests
+  '';
+
+  meta = with lib; {
+    homepage = https://github.com/jab/bidict;
+    description = "Efficient, Pythonic bidirectional map data structures and related functionality";
+    license = licenses.mpl20;
+    maintainers = with maintainers; [ jakewaksbaum ];
+  };
+}
diff --git a/pkgs/development/python-modules/bitstruct/default.nix b/pkgs/development/python-modules/bitstruct/default.nix
new file mode 100644
index 000000000000..2bc4a5bbb616
--- /dev/null
+++ b/pkgs/development/python-modules/bitstruct/default.nix
@@ -0,0 +1,18 @@
+{ lib, buildPythonPackage, fetchPypi }:
+
+buildPythonPackage rec {
+  pname = "bitstruct";
+  version = "6.0.0";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1znqgy2ikdqn6n6mv1ccfbl0q7x65bh3i9ph0yjl4rihwvxyg9fg";
+  };
+
+  meta = with lib; {
+    homepage = https://github.com/eerimoq/bitstruct;
+    description = "Python bit pack/unpack package";
+    license = licenses.mit;
+    maintainers = with maintainers; [ jakewaksbaum ];
+  };
+}
diff --git a/pkgs/development/python-modules/black/default.nix b/pkgs/development/python-modules/black/default.nix
index f070ab4fd7a4..6ad124e8fd4b 100644
--- a/pkgs/development/python-modules/black/default.nix
+++ b/pkgs/development/python-modules/black/default.nix
@@ -1,5 +1,5 @@
 { stdenv, buildPythonPackage, fetchPypi, pythonOlder
-, attrs, click, toml, appdirs
+, attrs, click, toml, appdirs, aiohttp
 , glibcLocales, pytest }:
 
 buildPythonPackage rec {
@@ -15,14 +15,15 @@ buildPythonPackage rec {
 
   checkInputs =  [ pytest glibcLocales ];
 
+  # Don't know why these tests fails
   checkPhase = ''
-    # no idea, why those fail.
-    LC_ALL="en_US.UTF-8" HOME="$NIX_BUILD_TOP" \
-      pytest \
-        -k "not test_cache_multiple_files and not test_failed_formatting_does_not_get_cached"
+    LC_ALL="en_US.UTF-8" pytest \
+      --deselect tests/test_black.py::BlackTestCase::test_expression_diff \
+      --deselect tests/test_black.py::BlackTestCase::test_cache_multiple_files \
+      --deselect tests/test_black.py::BlackTestCase::test_failed_formatting_does_not_get_cached
   '';
 
-  propagatedBuildInputs = [ attrs appdirs click toml ];
+  propagatedBuildInputs = [ attrs appdirs click toml aiohttp ];
 
   meta = with stdenv.lib; {
     description = "The uncompromising Python code formatter";
diff --git a/pkgs/development/python-modules/block-io/default.nix b/pkgs/development/python-modules/block-io/default.nix
index c0df26143ec3..da06b15f5b4e 100644
--- a/pkgs/development/python-modules/block-io/default.nix
+++ b/pkgs/development/python-modules/block-io/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "block-io";
-  version = "1.1.8";
+  version = "1.1.9";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "15468pvpcp41ly7kjpmikpyi4av57d9zhf5j1v01j78r1xqqk56g";
+    sha256 = "4909d58b32ab7f93d3cd83fa4bbe4edef42ab7566f016bdb6a405a0d8b1907c9";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/bokeh/default.nix b/pkgs/development/python-modules/bokeh/default.nix
index 4d55aec60589..158a3d318822 100644
--- a/pkgs/development/python-modules/bokeh/default.nix
+++ b/pkgs/development/python-modules/bokeh/default.nix
@@ -33,11 +33,11 @@
 
 buildPythonPackage rec {
   pname = "bokeh";
-  version = "1.0.2";
+  version = "1.0.4";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "07rczl2xkkqzpm45m0rlb2hki48b6w1k912gmwacf5aisnc0a0rw";
+    sha256 = "ceeb6a75afc1b2de00c2b8b6da121dec3fb77031326897b80d4375a70e96aebf";
   };
 
   disabled = isPyPy;
diff --git a/pkgs/development/python-modules/bootstrapped-pip/default.nix b/pkgs/development/python-modules/bootstrapped-pip/default.nix
index acaa62a34abe..85b752409eac 100644
--- a/pkgs/development/python-modules/bootstrapped-pip/default.nix
+++ b/pkgs/development/python-modules/bootstrapped-pip/default.nix
@@ -9,9 +9,9 @@ let
   };
   setuptools_source = fetchPypi {
     pname = "setuptools";
-    version = "40.6.2";
+    version = "40.6.3";
     format = "wheel";
-    sha256 = "88ee6bcd5decec9bd902252e02e641851d785c6e5e75677d2744a9d13fed0b0a";
+    sha256 = "e2c1ce9a832f34cf7a31ed010aabcab5008eb65ce8f2aadc04622232c14bdd0b";
   };
 
 in stdenv.mkDerivation rec {
diff --git a/pkgs/development/python-modules/boto3/default.nix b/pkgs/development/python-modules/boto3/default.nix
index 0d78b3463ccc..ba7f4393dbd1 100644
--- a/pkgs/development/python-modules/boto3/default.nix
+++ b/pkgs/development/python-modules/boto3/default.nix
@@ -13,11 +13,11 @@
 
 buildPythonPackage rec {
   pname =  "boto3";
-  version = "1.9.62"; # N.B: if you change this, change botocore too
+  version = "1.9.80"; # N.B: if you change this, change botocore too
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0rf3ik4bqr0qab2648rcaahycr2sih257ngz8brizyfln0lk1sg9";
+    sha256 = "99ec19dc4f0aa8a8354db7baebe1ff57bd18aeb6a539b28693b2e8ca8dc3d85b";
   };
 
   propagatedBuildInputs = [ botocore jmespath s3transfer ] ++ lib.optionals (!isPy3k) [ futures ];
diff --git a/pkgs/development/python-modules/botocore/default.nix b/pkgs/development/python-modules/botocore/default.nix
index 699357437b96..7eb9f3d44af7 100644
--- a/pkgs/development/python-modules/botocore/default.nix
+++ b/pkgs/development/python-modules/botocore/default.nix
@@ -12,11 +12,11 @@
 
 buildPythonPackage rec {
   pname = "botocore";
-  version = "1.12.62"; # N.B: if you change this, change boto3 and awscli to a matching version
+  version = "1.12.80"; # N.B: if you change this, change boto3 and awscli to a matching version
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0zgq3cldrh1x65s3vy1mhp1h5nnsdxw7ig1v0di7p8yns3iazsv7";
+    sha256 = "76a2969278250e010253ddf514f4b54eaa7d2b1430f682874c3c2ab92f25a96d";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/bottle/default.nix b/pkgs/development/python-modules/bottle/default.nix
index 50df0d5842cf..6e1eb5ced000 100644
--- a/pkgs/development/python-modules/bottle/default.nix
+++ b/pkgs/development/python-modules/bottle/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "bottle";
-  version = "0.12.13";
+  version = "0.12.16";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "39b751aee0b167be8dffb63ca81b735bbf1dd0905b3bc42761efedee8f123355";
+    sha256 = "9c310da61e7df2b6ac257d8a90811899ccb3a9743e77e947101072a2e3186726";
   };
 
   propagatedBuildInputs = [ setuptools ];
diff --git a/pkgs/development/python-modules/braintree/default.nix b/pkgs/development/python-modules/braintree/default.nix
new file mode 100644
index 000000000000..5e24a880e759
--- /dev/null
+++ b/pkgs/development/python-modules/braintree/default.nix
@@ -0,0 +1,27 @@
+{ lib,
+  fetchPypi,
+  requests,
+  buildPythonPackage
+}:
+
+buildPythonPackage rec {
+  pname = "braintree";
+  version = "3.51.0";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1aavalwxcpql416f0n6wxq2h5jpvbx5jq4y4nz2wsppgjbsxylcc";
+  };
+
+  propagatedBuildInputs = [ requests ];
+
+  # pypi release does not include tests
+  doCheck = false;
+
+  meta = with lib; {
+    description = "Python library for integration with Braintree";
+    homepage = https://github.com/braintree/braintree_python;
+    license = licenses.mit;
+    maintainers = [ maintainers.ivegotasthma ];
+  };
+}
diff --git a/pkgs/development/python-modules/bugwarrior/default.nix b/pkgs/development/python-modules/bugwarrior/default.nix
index 844aebbbb965..b2b10671f2b9 100644
--- a/pkgs/development/python-modules/bugwarrior/default.nix
+++ b/pkgs/development/python-modules/bugwarrior/default.nix
@@ -1,7 +1,7 @@
 { stdenv, buildPythonPackage, fetchPypi
 , mock, unittest2, nose
 , twiggy, requests, offtrac, bugzilla, taskw, dateutil, pytz, keyring, six
-, jinja2, pycurl, dogpile_cache, lockfile, click, pyxdg, future15 }:
+, jinja2, pycurl, dogpile_cache, lockfile, click, pyxdg, future }:
 
 buildPythonPackage rec {
   pname = "bugwarrior";
@@ -15,7 +15,7 @@ buildPythonPackage rec {
   buildInputs = [ mock unittest2 nose /* jira megaplan */ ];
   propagatedBuildInputs = [
     twiggy requests offtrac bugzilla taskw dateutil pytz keyring six
-    jinja2 pycurl dogpile_cache lockfile click pyxdg future15
+    jinja2 pycurl dogpile_cache lockfile click pyxdg future
   ];
 
   # for the moment jira>=0.22 and megaplan>=1.4 are missing for running the test suite.
diff --git a/pkgs/development/python-modules/buildbot/default.nix b/pkgs/development/python-modules/buildbot/default.nix
index 011cd879b1f3..cd98a8da710a 100644
--- a/pkgs/development/python-modules/buildbot/default.nix
+++ b/pkgs/development/python-modules/buildbot/default.nix
@@ -1,8 +1,8 @@
 { stdenv, lib, buildPythonPackage, fetchPypi, makeWrapper, isPy3k,
   python, twisted, jinja2, zope_interface, future, sqlalchemy,
-  sqlalchemy_migrate, dateutil, txaio, autobahn, pyjwt, treq, txrequests,
-  txgithub, pyjade, boto3, moto, mock, python-lz4, setuptoolsTrial, isort, pylint,
-  flake8, buildbot-worker, buildbot-pkg, glibcLocales }:
+  sqlalchemy_migrate, dateutil, txaio, autobahn, pyjwt, pyyaml, treq,
+  txrequests, txgithub, pyjade, boto3, moto, mock, python-lz4, setuptoolsTrial,
+  isort, pylint, flake8, buildbot-worker, buildbot-pkg, glibcLocales }:
 
 let
   withPlugins = plugins: buildPythonPackage {
@@ -24,11 +24,11 @@ let
 
   package = buildPythonPackage rec {
     pname = "buildbot";
-    version = "1.5.0";
+    version = "1.8.1";
 
     src = fetchPypi {
       inherit pname version;
-      sha256 = "d02a717222bcdc98205624c7d6b0b2ae24653170f2971946f26bf8cadea4fd52";
+      sha256 = "1zadmyrlk7p9h1akmbzwa7p90s7jwsxvdx4xn9i54dnda450m3a7";
     };
 
     propagatedBuildInputs = [
@@ -43,6 +43,7 @@ let
       txaio
       autobahn
       pyjwt
+      pyyaml
 
       # tls
       twisted.extras.tls
@@ -71,13 +72,16 @@ let
       ./skip_test_linux_distro.patch
     ];
 
-    LC_ALL = "en_US.UTF-8";
+    postPatch = ''
+      substituteInPlace buildbot/scripts/logwatcher.py --replace '/usr/bin/tail' "$(type -P tail)"
+    '';
 
     # TimeoutErrors on slow machines -> aarch64
     doCheck = !stdenv.isAarch64;
 
-    postPatch = ''
-      substituteInPlace buildbot/scripts/logwatcher.py --replace '/usr/bin/tail' "$(type -P tail)"
+    preCheck = ''
+      export LC_ALL="en_US.UTF-8"
+      export PATH="$out/bin:$PATH"
     '';
 
     passthru = {
diff --git a/pkgs/development/python-modules/buildbot/pkg.nix b/pkgs/development/python-modules/buildbot/pkg.nix
index b9358b1c420b..480bed2805ee 100644
--- a/pkgs/development/python-modules/buildbot/pkg.nix
+++ b/pkgs/development/python-modules/buildbot/pkg.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "buildbot-pkg";
-  version = "1.4.0";
+  version = "1.8.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "06f4jvczbg9km0gfmcd1ljplf5w8za27i9ap9jnyqgh3j77smd7a";
+    sha256 = "16gjdzkris6475bvsgvb0v6rkn4xb6f55s468q37n0l1r6n8snc3";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/buildbot/plugins.nix b/pkgs/development/python-modules/buildbot/plugins.nix
index bdc67d178d44..4bcaa965d2f3 100644
--- a/pkgs/development/python-modules/buildbot/plugins.nix
+++ b/pkgs/development/python-modules/buildbot/plugins.nix
@@ -10,7 +10,7 @@
 
     src = fetchPypi {
       inherit pname version format;
-      sha256 = "1m5dsp1gn9m5vfh5hnqp8g6hmhw1f1ydnassd33nhk521f2akz0v";
+      sha256 = "03cgjhwpgbm0qgis1cdy9g4vc11hsrya9grcx4j35784rny7lbfl";
     };
 
     meta = with lib; {
@@ -27,7 +27,7 @@
 
     src = fetchPypi {
       inherit pname version;
-      sha256 = "0vblaxmihgb4w9aa5q0wcgvxs7qzajql8s22w0pl9qs494g05s9r";
+      sha256 = "0pfp2n4ys99jglshdrp2f6jm73c4ym3dfwl6qjvbc7y7nsi74824";
     };
 
     propagatedBuildInputs = [ buildbot-pkg ];
@@ -47,7 +47,7 @@
 
     src = fetchPypi {
       inherit pname version;
-      sha256 = "18v1a6dapwjc2s9hi0cv3ry3s048w84md908zwaa3033gz3zwzy7";
+      sha256 = "0gnxq9niw64q36dm917lhhcl8zp0wjwaamjp07zidnrb5c3pjbsz";
     };
 
     propagatedBuildInputs = [ buildbot-pkg ];
@@ -67,7 +67,7 @@
 
     src = fetchPypi {
       inherit pname version;
-      sha256 = "0iawsy892v6rn88hsgiiwaf689jqzhnb2wbxh6zkz3c0hvq4g0qd";
+      sha256 = "1b06aa8m1pzqq2d8imrq5mazc7llrlbgm7jzi8h6jjd2gahdjgz5";
     };
 
     propagatedBuildInputs = [ buildbot-pkg ];
@@ -87,7 +87,7 @@
 
     src = fetchPypi {
       inherit pname version;
-      sha256 = "00cpjna3bffh1qbq6a3sqffd1g7qhbrmn9gpzxf9k38jam6jgfpz";
+      sha256 = "1v8411bw0cs206vwfnqx1na7dzg77h9aff4wlm11hkbdsy9ayv2d";
     };
 
     propagatedBuildInputs = [ buildbot-pkg ];
diff --git a/pkgs/development/python-modules/buildbot/worker.nix b/pkgs/development/python-modules/buildbot/worker.nix
index 4e54276f8aed..8e49d085fbd1 100644
--- a/pkgs/development/python-modules/buildbot/worker.nix
+++ b/pkgs/development/python-modules/buildbot/worker.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage (rec {
   pname = "buildbot-worker";
-  version = "1.4.0";
+  version = "1.8.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "12zvf4c39b6s4g1f2w407q8kkw602m88rc1ggi4w9pkw3bwbxrgy";
+    sha256 = "1rh73jbyms4b9wgkkdzcn80xfd18p8rn89rw4rsi2002ydrc7n39";
   };
 
   propagatedBuildInputs = [ twisted future ];
diff --git a/pkgs/development/python-modules/cachetools/1.nix b/pkgs/development/python-modules/cachetools/1.nix
deleted file mode 100644
index 05f3afe758a6..000000000000
--- a/pkgs/development/python-modules/cachetools/1.nix
+++ /dev/null
@@ -1,17 +0,0 @@
-{ stdenv, buildPythonPackage, fetchPypi, isPyPy }:
-
-buildPythonPackage rec {
-  pname = "cachetools";
-  version = "2.1.0";
-  disabled = isPyPy;  # a test fails
-
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "90f1d559512fc073483fe573ef5ceb39bf6ad3d39edc98dc55178a2b2b176fa3";
-  };
-
-  meta = with stdenv.lib; {
-    homepage = "https://github.com/tkem/cachetools";
-    license = licenses.mit;
-  };
-}
diff --git a/pkgs/development/python-modules/carbon/default.nix b/pkgs/development/python-modules/carbon/default.nix
index 0398782900d5..755f92117469 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.4";
+  version = "1.1.5";
 
   disabled = isPy3k;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1b70e34ac0f0bd32a03ee14eaf1ed2c857e208984fc9761f59a95c21c5264513";
+    sha256 = "a88390553a9ea628fdb74b5b358ed83a657e058bcc811e5819d9db856b4fcf5b";
   };
 
   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
index c445c21478b0..9a89fff08f8a 100644
--- a/pkgs/development/python-modules/cassandra-driver/default.nix
+++ b/pkgs/development/python-modules/cassandra-driver/default.nix
@@ -20,14 +20,26 @@
 
 buildPythonPackage rec {
   pname = "cassandra-driver";
-  version = "3.15.1";
+  version = "3.16.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1xcirbvlj00id8269akhk8gy2sv0mlnbgy3nagi32648jwsrcadg";
+    sha256 = "1gjs2lqy0ba6zhh13a1dhirk59i7lc4zcbl7h50619hdm5kv3g22";
   };
 
-  buildInputs = [ pkgs.libev cython ];
+  buildInputs = [
+    pkgs.libev
+    # NOTE: next version will work with cython 0.29
+    # Requires 'Cython!=0.25,<0.29,>=0.20'
+    (cython.overridePythonAttrs(old: rec {
+      pname = "Cython";
+      version = "0.28.3";
+      src = fetchPypi {
+        inherit pname version;
+        sha256 = "1aae6d6e9858888144cea147eb5e677830f45faaff3d305d77378c3cba55f526";
+      };
+    }))
+  ];
 
   propagatedBuildInputs = [ six ]
     ++ stdenv.lib.optionals (pythonOlder "3.4") [ futures ];
diff --git a/pkgs/development/python-modules/celery/default.nix b/pkgs/development/python-modules/celery/default.nix
index 13038c5803cc..498729bb1325 100644
--- a/pkgs/development/python-modules/celery/default.nix
+++ b/pkgs/development/python-modules/celery/default.nix
@@ -1,19 +1,8 @@
-{ stdenv, buildPythonPackage, fetchPypi, fetchpatch, iana-etc, libredirect,
+{ stdenv, buildPythonPackage, fetchPypi, isPy37, fetchpatch, iana-etc, libredirect,
   pytest, case, kombu, billiard, pytz, anyjson, amqp, eventlet
 }:
 
-let
-
-  # Needed for celery
-  pytest_32 = pytest.overridePythonAttrs( oldAttrs: rec {
-    version = "3.2.5";
-    src = oldAttrs.src.override {
-      inherit version;
-      sha256 = "6d5bd4f7113b444c55a3bbb5c738a3dd80d43563d063fc42dcb0aaefbdd78b81";
-    };
-  });
-
-in buildPythonPackage rec {
+buildPythonPackage rec {
   pname = "celery";
   version = "4.2.1";
 
@@ -22,12 +11,28 @@ in buildPythonPackage rec {
     sha256 = "0y66rz7z8dfcgs3s0qxmdddlaq57bzbgxgfz896nbp14grkv9nkp";
   };
 
-  # Skip test_RedisBackend.test_timeouts_in_url_coerced
-  # See https://github.com/celery/celery/pull/4847
-  patches = fetchpatch {
-    url = https://github.com/celery/celery/commit/b2668607c909c61becd151905b4525190c19ff4a.patch;
-    sha256 = "11w0z2ycyh8kccj4y69zb7bxppiipcwwigg6jn1q9yrcsvz170jq";
-  };
+  # See https://github.com/celery/celery/issues/4500
+  # TODO: Remove once upgraded to 4.3
+  disabled = isPy37;
+
+  patches = [
+    # Skip test_RedisBackend.test_timeouts_in_url_coerced
+    # See https://github.com/celery/celery/pull/4847
+    (fetchpatch {
+      url = https://github.com/celery/celery/commit/b2668607c909c61becd151905b4525190c19ff4a.patch;
+      sha256 = "11w0z2ycyh8kccj4y69zb7bxppiipcwwigg6jn1q9yrcsvz170jq";
+    })
+    # Allow usage of a newer pytest version
+    # See https://github.com/celery/celery/pull/4912
+    (fetchpatch {
+      url = https://github.com/celery/celery/commit/16f56fe6f84cac9f92affac3ad06a1f168a19798.patch;
+      sha256 = "0vz68rl32m34k51nhs898jcfdbj5m7cszzxx0w0j3j1fhn1wq594";
+    })
+  ];
+
+  postPatch = ''
+    substituteInPlace requirements/test.txt --replace ",<3.9" ""
+  '';
 
   # make /etc/protocols accessible to fix socket.getprotobyname('tcp') in sandbox
   preCheck = stdenv.lib.optionalString stdenv.isLinux ''
@@ -38,7 +43,7 @@ in buildPythonPackage rec {
     unset NIX_REDIRECTS LD_PRELOAD
   '';
 
-  checkInputs = [ pytest_32 case ];
+  checkInputs = [ pytest case ];
   propagatedBuildInputs = [ kombu billiard pytz anyjson amqp eventlet ];
 
   meta = with stdenv.lib; {
diff --git a/pkgs/development/python-modules/cffi/default.nix b/pkgs/development/python-modules/cffi/default.nix
index 18826d46b860..2f634bf21e50 100644
--- a/pkgs/development/python-modules/cffi/default.nix
+++ b/pkgs/development/python-modules/cffi/default.nix
@@ -12,7 +12,7 @@ if isPyPy then null else buildPythonPackage rec {
   outputs = [ "out" "dev" ];
 
   propagatedBuildInputs = [ libffi pycparser ];
-  buildInputs = [ pytest ];
+  checkInputs = [ pytest ];
 
   # On Darwin, the cffi tests want to hit libm a lot, and look for it in a global
   # impure search path. It's obnoxious how much repetition there is, and how difficult
diff --git a/pkgs/development/python-modules/cfgv/default.nix b/pkgs/development/python-modules/cfgv/default.nix
index 2212486978de..181d4e79b106 100644
--- a/pkgs/development/python-modules/cfgv/default.nix
+++ b/pkgs/development/python-modules/cfgv/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "cfgv";
-  version = "1.1.0";
+  version = "1.4.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1akm5xdbi5kckgnhhfj6qavjwakm44cwqzhfx2ycgh7mkym1qyfi";
+    sha256 = "01mpw8kx0f2py2jwf0fv60k01p11gs0dbar5zq42k4z38xf0bn9r";
   };
 
   propagatedBuildInputs = [ six ];
diff --git a/pkgs/development/python-modules/cfn-flip/default.nix b/pkgs/development/python-modules/cfn-flip/default.nix
new file mode 100644
index 000000000000..ab6abc4cd6f6
--- /dev/null
+++ b/pkgs/development/python-modules/cfn-flip/default.nix
@@ -0,0 +1,25 @@
+{ lib, buildPythonPackage, fetchPypi, six, pyyaml, click, pytestrunner }:
+
+buildPythonPackage rec {
+  pname = "cfn-flip";
+  version = "1.1.0.post1";
+
+  src = fetchPypi {
+    pname = "cfn_flip";
+    inherit version;
+    sha256 = "16r01ijjwnq06ax5xrv6mq9l00f6sgzw776kr43zjai09xsbwwck";
+  };
+
+  propagatedBuildInputs = [ six pyyaml click ];
+  nativeBuildInputs = [ pytestrunner ];
+
+  # No tests in Pypi
+  doCheck = false;
+
+  meta = with lib; {
+    description = "Tool for converting AWS CloudFormation templates between JSON and YAML formats";
+    homepage = https://github.com/awslabs/aws-cfn-template-flip;
+    license = licenses.asl20;
+    maintainers = with maintainers; [ psyanticy ];
+  };
+}
diff --git a/pkgs/development/python-modules/chalice/default.nix b/pkgs/development/python-modules/chalice/default.nix
index 70e9744058c1..a3e945bc9168 100644
--- a/pkgs/development/python-modules/chalice/default.nix
+++ b/pkgs/development/python-modules/chalice/default.nix
@@ -20,11 +20,11 @@
 
 buildPythonPackage rec {
   pname = "chalice";
-  version = "1.6.1";
+  version = "1.6.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "783ba3c603b944ba32f0ee39f272dc192f2097cfc520692f4dcb718bebdf940e";
+    sha256 = "96c22f95ccc91ed3e79cc4a9a88bf27f95a13a2caf5a55137ab081d371258f0f";
   };
 
   checkInputs = [ watchdog pytest hypothesis mock ];
@@ -46,7 +46,7 @@ buildPythonPackage rec {
 
   postPatch = ''
     substituteInPlace setup.py \
-      --replace 'pip>=9,<=18' 'pip' \
+      --replace 'pip>=9,<=18.1' 'pip' \
       --replace 'typing==3.6.4' 'typing' \
       --replace 'attrs==17.4.0' 'attrs' \
       --replace 'click>=6.6,<7.0' 'click'
diff --git a/pkgs/development/python-modules/click-default-group/default.nix b/pkgs/development/python-modules/click-default-group/default.nix
new file mode 100644
index 000000000000..673a570c61f0
--- /dev/null
+++ b/pkgs/development/python-modules/click-default-group/default.nix
@@ -0,0 +1,25 @@
+{ lib, buildPythonPackage, fetchFromGitHub, click, pytest }:
+
+buildPythonPackage rec {
+  pname = "click-default-group";
+  version = "1.2";
+
+  # No tests in Pypi tarball
+  src = fetchFromGitHub {
+    owner = "click-contrib";
+    repo = "click-default-group";
+    rev = "v${version}";
+    sha256 = "0lm2k4jvy4ilvv91niawklfnp5mp7wa8c1bicsqdfzrxmw7jliwp";
+  };
+
+  propagatedBuildInputs = [ click ];
+
+  checkInputs = [ pytest ];
+
+  meta = with lib; {
+    homepage = https://github.com/click-contrib/click-default-group;
+    description = "Group to invoke a command without explicit subcommand name";
+    license = licenses.bsd3;
+    maintainers = with maintainers; [ jakewaksbaum ];
+  };
+}
diff --git a/pkgs/development/python-modules/cmd2/default.nix b/pkgs/development/python-modules/cmd2/default.nix
index 019ab4e6cdd8..66626cb76f43 100644
--- a/pkgs/development/python-modules/cmd2/default.nix
+++ b/pkgs/development/python-modules/cmd2/default.nix
@@ -1,16 +1,16 @@
 { stdenv, fetchPypi, buildPythonPackage, pythonOlder, isPy3k
-, pyperclip, six, pyparsing, vim, wcwidth, colorama
+, pyperclip, six, pyparsing, vim, wcwidth, colorama, attrs
 , contextlib2 ? null, typing ? null, setuptools_scm
 , pytest, mock ? null, pytest-mock
 , which, glibcLocales
 }:
 buildPythonPackage rec {
   pname = "cmd2";
-  version = "0.9.6";
+  version = "0.9.7";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0279p76n6yny6psys9fc6yjdrqiisbpmrl59a2vxy56hi7094kaw";
+    sha256 = "b04a3421be2ae35e7e8347e29c2f3960eed38d0163e312845147d5d828a09379";
   };
 
   LC_ALL="en_US.UTF-8";
@@ -36,6 +36,7 @@ buildPythonPackage rec {
     six
     pyparsing
     wcwidth
+    attrs
   ]
   ++ stdenv.lib.optionals (pythonOlder "3.5") [contextlib2 typing]
   ;
diff --git a/pkgs/development/python-modules/configargparse/default.nix b/pkgs/development/python-modules/configargparse/default.nix
index 62e63a8e5b31..7d53f56a5a0a 100644
--- a/pkgs/development/python-modules/configargparse/default.nix
+++ b/pkgs/development/python-modules/configargparse/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "ConfigArgParse";
-  version = "0.13.0";
+  version = "0.14.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "e6441aa58e23d3d122055808e5e2220fd742dff6e1e51082d2a4e4ed145dd788";
+    sha256 = "149fy4zya0rsnlkvxbbq43cyr8lscb5k4pj1m6n7f1grwcmzwbif";
   };
 
   # no tests in tarball
diff --git a/pkgs/development/python-modules/cornice/default.nix b/pkgs/development/python-modules/cornice/default.nix
index 2c7660807d69..5a341168e8d6 100644
--- a/pkgs/development/python-modules/cornice/default.nix
+++ b/pkgs/development/python-modules/cornice/default.nix
@@ -9,11 +9,11 @@
 
 buildPythonPackage rec {
   pname = "cornice";
-  version = "3.4.2";
+  version = "3.4.4";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "c88f246aa6a84a0cdbaa8231a062c60e18ad9c0a65dc178f536ce5eb3a831418";
+    sha256 = "1355f998ac6af53bda985e13ed0695cd206b0a3f14657b83979b31bbc72f1acb";
   };
 
   propagatedBuildInputs = [ pyramid simplejson six venusian ];
diff --git a/pkgs/development/python-modules/cryptography/default.nix b/pkgs/development/python-modules/cryptography/default.nix
index 603f92336c05..a58591f4b05f 100644
--- a/pkgs/development/python-modules/cryptography/default.nix
+++ b/pkgs/development/python-modules/cryptography/default.nix
@@ -23,11 +23,11 @@
 buildPythonPackage rec {
   # also bump cryptography_vectors
   pname = "cryptography";
-  version = "2.3.1";
+  version = "2.4.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "8d10113ca826a4c29d5b85b2c4e045ffa8bad74fb525ee0eceb1d38d4c70dfd6";
+    sha256 = "1pc60dksi9w9mshl6cvn7gdjazbp3pmydy3qp9wgy5wzd8n0b9h5";
   };
 
   outputs = [ "out" "dev" ];
@@ -66,4 +66,18 @@ buildPythonPackage rec {
   # IOKit's dependencies are inconsistent between OSX versions, so this is the best we
   # can do until nix 1.11's release
   __impureHostDeps = [ "/usr/lib" ];
+
+  meta = with stdenv.lib; {
+    description = "A package which provides cryptographic recipes and primitives";
+    longDescription = ''
+      Cryptography includes both high level recipes and low level interfaces to
+      common cryptographic algorithms such as symmetric ciphers, message
+      digests, and key derivation functions.
+      Our goal is for it to be your "cryptographic standard library". It
+      supports Python 2.7, Python 3.4+, and PyPy 5.3+.
+    '';
+    homepage = https://github.com/pyca/cryptography;
+    license = with licenses; [ asl20 bsd3 psfl ];
+    maintainers = with maintainers; [ primeos ];
+  };
 }
diff --git a/pkgs/development/python-modules/cryptography_vectors/default.nix b/pkgs/development/python-modules/cryptography_vectors/default.nix
index bcb60eb0d8dd..00c726cee899 100644
--- a/pkgs/development/python-modules/cryptography_vectors/default.nix
+++ b/pkgs/development/python-modules/cryptography_vectors/default.nix
@@ -1,17 +1,23 @@
-{ buildPythonPackage
-, fetchPypi
-}:
+{ buildPythonPackage, fetchPypi, lib }:
 
 buildPythonPackage rec {
   # also bump cryptography
   pname = "cryptography_vectors";
-  version = "2.3.1";
+  version = "2.4.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "bf4d9b61dce69c49e830950aa36fad194706463b0b6dfe81425b9e0bc6644d46";
+    sha256 = "013qx2hz0jv79yzfzpn0r2kk33i5qy3sdnzgwiv5779d18snblwi";
   };
 
   # No tests included
   doCheck = false;
-}
\ No newline at end of file
+
+  meta = with lib; {
+    description = "Test vectors for the cryptography package";
+    homepage = https://cryptography.io/en/latest/development/test-vectors/;
+    # Source: https://github.com/pyca/cryptography/tree/master/vectors;
+    license = with licenses; [ asl20 bsd3 ];
+    maintainers = with maintainers; [ primeos ];
+  };
+}
diff --git a/pkgs/development/python-modules/css-parser/default.nix b/pkgs/development/python-modules/css-parser/default.nix
new file mode 100644
index 000000000000..8b2fe0929c7b
--- /dev/null
+++ b/pkgs/development/python-modules/css-parser/default.nix
@@ -0,0 +1,22 @@
+{ lib, buildPythonPackage, fetchPypi }:
+
+buildPythonPackage rec {
+  pname = "css-parser";
+  version = "1.0.4";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "c7ab355512ae51334ba6791a7e4d553f87bef17ba2026f1cc9bf3b17a7779d44";
+  };
+
+  # Test suite not included in tarball yet
+  # See https://github.com/ebook-utils/css-parser/pull/2
+  doCheck = false;
+
+  meta = with lib; {
+    description = "A CSS Cascading Style Sheets library for Python";
+    homepage = https://github.com/ebook-utils/css-parser;
+    license = licenses.lgpl3Plus;
+    maintainers = with maintainers; [ jethro ];
+  };
+}
diff --git a/pkgs/development/python-modules/csvkit/default.nix b/pkgs/development/python-modules/csvkit/default.nix
index 7fbdaa8909d6..48f932086cc6 100644
--- a/pkgs/development/python-modules/csvkit/default.nix
+++ b/pkgs/development/python-modules/csvkit/default.nix
@@ -1,6 +1,6 @@
 { lib, fetchPypi, buildPythonPackage, isPy3k
 , agate, agate-excel, agate-dbf, agate-sql, six
-, argparse, ordereddict, simplejson
+, ordereddict, simplejson
 , glibcLocales, nose, mock, unittest2
 }:
 
@@ -16,7 +16,7 @@ buildPythonPackage rec {
   propagatedBuildInputs = [
     agate agate-excel agate-dbf agate-sql six
   ] ++ lib.optionals (!isPy3k) [
-    argparse ordereddict simplejson
+    ordereddict simplejson
   ];
 
   checkInputs = [
diff --git a/pkgs/development/python-modules/cypari2/default.nix b/pkgs/development/python-modules/cypari2/default.nix
index 09326ad1a0bc..bf46bf9a182b 100644
--- a/pkgs/development/python-modules/cypari2/default.nix
+++ b/pkgs/development/python-modules/cypari2/default.nix
@@ -11,11 +11,11 @@
 buildPythonPackage rec {
   pname = "cypari2";
   # upgrade may break sage, please test the sage build or ping @timokau on upgrade
-  version = "1.3.1";
+  version = "2.0.3";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "04f00xp8aaz37v00iqg1mv5wjq00a5qhk8cqa93s13009s9x984r";
+    sha256 = "0mghbmilmy34xp1d50xdx76sijqxmpkm2bcgx2v1mdji2ff7n0yc";
   };
 
   # This differs slightly from the default python installPhase in that it pip-installs
@@ -23,8 +23,7 @@ buildPythonPackage rec {
   # That is because while the default install phase succeeds to build the package,
   # it fails to generate the file "auto_paridecl.pxd".
   installPhase = ''
-    mkdir -p "$out/lib/${python.sitePackages}"
-    export PYTHONPATH="$out/lib/${python.sitePackages}:$PYTHONPATH"
+    export PYTHONPATH="$out/${python.sitePackages}:$PYTHONPATH"
 
     # install "." instead of "*.whl"
     ${python.pythonForBuild.pkgs.bootstrapped-pip}/bin/pip install --no-index --prefix=$out --no-cache --build=tmpdir .
diff --git a/pkgs/development/python-modules/cysignals/default.nix b/pkgs/development/python-modules/cysignals/default.nix
index f9d7ba8a8513..c1f85ce75ac4 100644
--- a/pkgs/development/python-modules/cysignals/default.nix
+++ b/pkgs/development/python-modules/cysignals/default.nix
@@ -9,11 +9,11 @@ assert pariSupport -> pari != null;
 
 buildPythonPackage rec {
   pname = "cysignals";
-  version = "1.8.1";
+  version = "1.9.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1hnkcrrxgh6g8a197v2yw61xz43iyv81jbl6jpy19ql3k66w81zx";
+    sha256 = "15ix8crpad26cfl1skyg7qajqqfdrm8q5ahhmlfmqi1aw0jqj2g2";
   };
 
   # explicit check:
diff --git a/pkgs/development/python-modules/daphne/default.nix b/pkgs/development/python-modules/daphne/default.nix
index 772ca350f132..da85fbb1d9b7 100644
--- a/pkgs/development/python-modules/daphne/default.nix
+++ b/pkgs/development/python-modules/daphne/default.nix
@@ -4,7 +4,7 @@
 }:
 buildPythonPackage rec {
   pname = "daphne";
-  version = "2.2.4";
+  version = "2.2.5";
 
   disabled = !isPy3k;
 
@@ -12,7 +12,7 @@ buildPythonPackage rec {
     owner = "django";
     repo = pname;
     rev = version;
-    sha256 = "0mpn2xbpx2r67bj5crfvxfwlznxlp7rcfbb2xly6ad3d0c7djkdi";
+    sha256 = "0ixgq1rr3s60bmrwx8qwvlvs3lag1c2nrmg4iy7wcmb8i1ddylqr";
   };
 
   nativeBuildInputs = [ pytestrunner ];
diff --git a/pkgs/development/python-modules/dateparser/default.nix b/pkgs/development/python-modules/dateparser/default.nix
index f6af0855b9f5..22787df8bb64 100644
--- a/pkgs/development/python-modules/dateparser/default.nix
+++ b/pkgs/development/python-modules/dateparser/default.nix
@@ -14,11 +14,11 @@
 
 buildPythonPackage rec {
   pname = "dateparser";
-  version = "0.7.0";
+  version = "0.7.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "940828183c937bcec530753211b70f673c0a9aab831e43273489b310538dff86";
+    sha256 = "42d51be54e74a8e80a4d76d1fa6e4edd997098fce24ad2d94a2eab5ef247193e";
   };
 
   checkInputs = [ nose mock parameterized six glibcLocales ];
diff --git a/pkgs/development/python-modules/debian/default.nix b/pkgs/development/python-modules/debian/default.nix
index f09195b6dc53..fc9b9017cc99 100644
--- a/pkgs/development/python-modules/debian/default.nix
+++ b/pkgs/development/python-modules/debian/default.nix
@@ -3,11 +3,11 @@
 
 buildPythonPackage rec {
   pname = "python-debian";
-  version = "0.1.33";
+  version = "0.1.34";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "06e91d45019fe5f2e111ba827ea77730d6ce2fea698ada4e5b0b70b5fdbc18c5";
+    sha256 = "a02e073214e9f3a371f7ec0ff8b34dd82bd4941194dd69c49ad80b321b9d887e";
   };
 
   propagatedBuildInputs = [ chardet six ];
diff --git a/pkgs/development/python-modules/dependency-injector/default.nix b/pkgs/development/python-modules/dependency-injector/default.nix
index ec55fed377bb..16a5088c33d9 100644
--- a/pkgs/development/python-modules/dependency-injector/default.nix
+++ b/pkgs/development/python-modules/dependency-injector/default.nix
@@ -9,11 +9,11 @@ in
 
 buildPythonPackage rec {
   pname = "dependency-injector";
-  version = "3.14.3";
+  version = "3.14.4";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "07366palyav9bawyq2b1gi76iamjkq6r5akzzbqv8s930sxq6yim";
+    sha256 = "ecac135cc4e5824b6bf8242679fc7225f44885877677701da6de7703f060f518";
   };
 
   propagatedBuildInputs = [ six ];
diff --git a/pkgs/development/python-modules/detox/default.nix b/pkgs/development/python-modules/detox/default.nix
index 6f7688ad35e5..00cea5180cd5 100644
--- a/pkgs/development/python-modules/detox/default.nix
+++ b/pkgs/development/python-modules/detox/default.nix
@@ -3,11 +3,11 @@
 
 buildPythonPackage rec {
   pname = "detox";
-  version = "0.15";
+  version = "0.18";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "accde1a79b621df9dfd55b97460e80743a771a3d9a1acd900489a4355f0cc8c7";
+    sha256 = "1yvfhnkw6zpm11yrl2shl794yi68jcfqj8m5n596gqxxbiq6gp90";
   };
 
   buildInputs = [ pytest ];
diff --git a/pkgs/development/python-modules/discogs_client/default.nix b/pkgs/development/python-modules/discogs_client/default.nix
index ce414a09806a..c39bede9e093 100644
--- a/pkgs/development/python-modules/discogs_client/default.nix
+++ b/pkgs/development/python-modules/discogs_client/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "discogs-client";
-  version = "2.2.1";
+  version = "2.2.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "9e32b5e45cff41af8025891c71aa3025b3e1895de59b37c11fd203a8af687414";
+    sha256 = "1n23xy33fdp3dq0hhfdg0lx4z7rhdi74ik8v1mc7rql1jbxl7bmf";
   };
 
   propagatedBuildInputs = [ requests oauthlib ];
diff --git a/pkgs/development/python-modules/distributed/default.nix b/pkgs/development/python-modules/distributed/default.nix
index 5c39811516ce..29460f14eab3 100644
--- a/pkgs/development/python-modules/distributed/default.nix
+++ b/pkgs/development/python-modules/distributed/default.nix
@@ -19,27 +19,28 @@
 , tornado
 , zict
 , pyyaml
-, pythonOlder
+, isPy3k
 , futures
 , singledispatch
+, mpi4py
+, bokeh
 }:
 
 buildPythonPackage rec {
   pname = "distributed";
-  version = "1.25.1";
+  version = "1.25.3";
 
   # get full repository need conftest.py to run tests
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1qay94amxs0k6lmwhy07bq54m5zms0rjmnp7a66fldipjla6w8lg";
+    sha256 = "0bvjlw74n0l4rgzhm876f66f7y6j09744i5h3iwlng2jwzyw97gs";
   };
 
   checkInputs = [ pytest pytest-repeat pytest-faulthandler pytest-timeout mock joblib ];
   propagatedBuildInputs = [
       click cloudpickle dask msgpack psutil six
-      sortedcontainers tblib toolz tornado zict pyyaml
-  ] ++ lib.optional (pythonOlder "3.2") [ futures ]
-    ++ lib.optional (pythonOlder "3.4") [ singledispatch ];
+      sortedcontainers tblib toolz tornado zict pyyaml mpi4py bokeh
+  ] ++ lib.optionals (!isPy3k) [ futures singledispatch ];
 
   # tests take about 10-15 minutes
   # ignore 5 cli tests out of 1000 total tests that fail due to subprocesses
diff --git a/pkgs/development/python-modules/distro/default.nix b/pkgs/development/python-modules/distro/default.nix
index 4029eb891395..e69b6366a80d 100644
--- a/pkgs/development/python-modules/distro/default.nix
+++ b/pkgs/development/python-modules/distro/default.nix
@@ -4,7 +4,7 @@ buildPythonPackage rec {
   pname = "distro";
   version = "1.3.0";
 
-  buildInputs = [ pytest pytestcov tox];
+  checkInputs = [ pytest pytestcov tox];
 
   checkPhase = ''
     touch tox.ini
diff --git a/pkgs/development/python-modules/django-compat/default.nix b/pkgs/development/python-modules/django-compat/default.nix
index d575c1b674b0..32d85cfadd71 100644
--- a/pkgs/development/python-modules/django-compat/default.nix
+++ b/pkgs/development/python-modules/django-compat/default.nix
@@ -1,36 +1,31 @@
 { stdenv, buildPythonPackage, fetchFromGitHub, python,
-  django, django_nose, six
+  django, six
 }:
 buildPythonPackage rec {
   pname = "django-compat";
-  version = "1.0.14";
+  version = "1.0.15";
 
   # the pypi packages don't include everything required for the tests
   src = fetchFromGitHub {
     owner = "arteria";
     repo = "django-compat";
     rev = "v${version}";
-    sha256 = "11g6ra6djkchqk44v8k7biaxd1v69qyyyask5l92vmrvb0qiwvm8";
+    sha256 = "1pr6v38ahrsvxlgmcx69s4b5q5082f44gzi4h3c32sccdc4pwqxp";
   };
 
   checkPhase = ''
     runHook preCheck
 
-    # we have to do a little bit of tinkering to convince the tests to run against the installed package, not the
-    # source directory
-    mkdir -p testbase/compat
-    pushd testbase
-    # note we're not copying the direct contents of compat/ (notably __init__.py) so python won't recognize this as a
-    # package, but the tests need to be in a specific path for the test templates to get picked up.
-    cp -r ../compat/tests compat/
-    cp ../runtests.py .
-    ${python.interpreter} runtests.py compat/tests
-    popd
+    # to convince the tests to run against the installed package, not the source directory, we extract the
+    # tests directory from it then dispose of the actual source
+    mv compat/tests .
+    rm -r compat
+    substituteInPlace runtests.py --replace compat.tests tests
+    ${python.interpreter} runtests.py
 
     runHook postCheck
   '';
 
-  checkInputs = [ django_nose ];
   propagatedBuildInputs = [ django six ];
 
   meta = with stdenv.lib; {
diff --git a/pkgs/development/python-modules/django-cors-headers/default.nix b/pkgs/development/python-modules/django-cors-headers/default.nix
new file mode 100644
index 000000000000..21f5b841adb8
--- /dev/null
+++ b/pkgs/development/python-modules/django-cors-headers/default.nix
@@ -0,0 +1,27 @@
+{ lib,
+  fetchPypi,
+  django,
+  buildPythonPackage
+}:
+
+buildPythonPackage rec {
+  pname = "django-cors-headers";
+  version = "2.4.0";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1qfa9awsj3f0nwygb0vdh4ilcsfi6zinzng73cd5864x2fbyxhn4";
+  };
+
+  propagatedBuildInputs = [ django ];
+
+  # pypi release does not include tests
+  doCheck = false;
+
+  meta = with lib; {
+    description = "Django app for handling server Cross-Origin Resource Sharing (CORS) headers";
+    homepage = https://github.com/OttoYiu/django-cors-headers;
+    license = licenses.mit;
+    maintainers = [ maintainers.ivegotasthma ];
+  };
+}
diff --git a/pkgs/development/python-modules/django-hijack-admin/default.nix b/pkgs/development/python-modules/django-hijack-admin/default.nix
index e6cd5a3482fe..005d61acab9b 100644
--- a/pkgs/development/python-modules/django-hijack-admin/default.nix
+++ b/pkgs/development/python-modules/django-hijack-admin/default.nix
@@ -2,14 +2,14 @@
   django_hijack, django_nose }:
 buildPythonPackage rec {
   pname = "django-hijack-admin";
-  version = "2.1.5";
+  version = "2.1.10";
 
   # the pypi packages don't include everything required for the tests
   src = fetchFromGitHub {
     owner = "arteria";
     repo = "django-hijack-admin";
     rev = "v${version}";
-    sha256 = "02j75blvkjiz5mv5wc4jxl27rgmjsrl6l67a3p8342jwazzsm6jg";
+    sha256 = "0m98lchp2y43886n67j4s7miyd50pg2r5r966vjnxmd7nx7qkihf";
   };
 
   checkInputs = [ django_nose ];
@@ -17,13 +17,21 @@ buildPythonPackage rec {
 
   checkPhase = ''
     runHook preCheck
+
+    # we have to do a little bit of tinkering to convince the tests to run against the installed package, not the
+    # source directory
+    mkdir testbase
+    pushd testbase
+    mv ../runtests.py .
     ${python.interpreter} runtests.py hijack_admin
+    popd
+
     runHook postCheck
   '';
 
   meta = with stdenv.lib; {
     description = "Admin integration for django-hijack";
-    homepage = https://github.com/arteria/django-hijack;
+    homepage = https://github.com/arteria/django-hijack-admin;
     license = licenses.mit;
     maintainers = with maintainers; [ lsix ];
   };
diff --git a/pkgs/development/python-modules/django-hijack/default.nix b/pkgs/development/python-modules/django-hijack/default.nix
index bdf503cd8492..f41e7d146c97 100644
--- a/pkgs/development/python-modules/django-hijack/default.nix
+++ b/pkgs/development/python-modules/django-hijack/default.nix
@@ -3,15 +3,14 @@
 }:
 buildPythonPackage rec {
   pname = "django-hijack";
-  version = "2.1.9";
-  name = pname + "-" + version;
+  version = "2.1.10";
 
   # the pypi packages don't include everything required for the tests
   src = fetchFromGitHub {
     owner = "arteria";
     repo = "django-hijack";
     rev = "v${version}";
-    sha256 = "109xi93xj37ycdsvainybhg89pcb5sawv6w80px4r6fjvaq4732c";
+    sha256 = "01fwkjdzvw0yx2spwi7zc1yy64ndq1y72bfmk7kxnq5x803m2ak6";
   };
 
   checkInputs = [ django_nose ];
@@ -24,7 +23,7 @@ buildPythonPackage rec {
     # source directory
     mkdir testbase
     pushd testbase
-    cp ../runtests.py .
+    mv ../runtests.py .
     ${python.interpreter} runtests.py hijack
     popd
 
diff --git a/pkgs/development/python-modules/django-rest-auth/default.nix b/pkgs/development/python-modules/django-rest-auth/default.nix
new file mode 100644
index 000000000000..696376b3e4bd
--- /dev/null
+++ b/pkgs/development/python-modules/django-rest-auth/default.nix
@@ -0,0 +1,29 @@
+{ lib,
+  fetchPypi,
+  django,
+  djangorestframework,
+  six,
+  buildPythonPackage
+}:
+
+buildPythonPackage rec {
+  pname = "django-rest-auth";
+  version = "0.9.3";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "ad155a0ed1061b32e3e46c9b25686e397644fd6acfd35d5c03bc6b9d2fc6c82a";
+  };
+
+  propagatedBuildInputs = [ django djangorestframework six ];
+
+  # pypi release does not include tests
+  doCheck = false;
+
+  meta = with lib; {
+    description = "Django app that makes registration and authentication easy";
+    homepage = https://github.com/Tivix/django-rest-auth;
+    license = licenses.mit;
+    maintainers = [ maintainers.ivegotasthma ];
+  };
+}
diff --git a/pkgs/development/python-modules/django-sesame/default.nix b/pkgs/development/python-modules/django-sesame/default.nix
new file mode 100644
index 000000000000..9887580b0fdd
--- /dev/null
+++ b/pkgs/development/python-modules/django-sesame/default.nix
@@ -0,0 +1,27 @@
+{ lib, buildPythonPackage, fetchPypi
+, django }:
+
+buildPythonPackage rec {
+  pname = "django-sesame";
+  version = "1.4";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "081q3vd9waiajiipg99flw0vlzk920sz07067v3n5774gx0qhbaa";
+  };
+
+  checkInputs = [ django ];
+
+  checkPhase = ''
+    PYTHONPATH="$(pwd):$PYTHONPATH" \
+    DJANGO_SETTINGS_MODULE=sesame.test_settings \
+      django-admin test sesame
+  '';
+
+  meta = with lib; {
+    description = "URLs with authentication tokens for automatic login";
+    homepage = http://github.com/aaugustin/django-sesame;
+    license = licenses.bsd3;
+    maintainers = with maintainers; [ elohmeier ];
+  };
+}
diff --git a/pkgs/development/python-modules/django/1_11.nix b/pkgs/development/python-modules/django/1_11.nix
index 131c6b3ef1bf..6e2bbd9fd5d3 100644
--- a/pkgs/development/python-modules/django/1_11.nix
+++ b/pkgs/development/python-modules/django/1_11.nix
@@ -6,13 +6,11 @@
 
 buildPythonPackage rec {
   pname = "Django";
-  version = "1.11.17";
-
-  disabled = pythonOlder "2.7";
+  version = "1.11.18";
 
   src = fetchurl {
     url = "https://www.djangoproject.com/m/releases/1.11/${pname}-${version}.tar.gz";
-    sha256 = "10xlpm21ll8mgz5py41sz9vrd603qv7an736agbqxkxlyikfx1x7";
+    sha256 = "19b6f020als9hr4q1im5282yn2b1hzf586n9kjrlkrslq7da3k3k";
   };
 
   patches = stdenv.lib.optionals withGdal [
diff --git a/pkgs/development/python-modules/django/1_8.nix b/pkgs/development/python-modules/django/1_8.nix
index 30d75e73c68d..ee2408f73405 100644
--- a/pkgs/development/python-modules/django/1_8.nix
+++ b/pkgs/development/python-modules/django/1_8.nix
@@ -25,6 +25,11 @@ buildPythonPackage rec {
     description = "A high-level Python Web framework";
     homepage = https://www.djangoproject.com/;
     license = licenses.bsd0;
+    knownVulnerabilities = [
+      # The patches were not backported due to Django 1.8 having reached EOL
+      https://www.djangoproject.com/weblog/2018/aug/01/security-releases/
+      https://www.djangoproject.com/weblog/2019/jan/04/security-releases/
+    ];
   };
 
 }
diff --git a/pkgs/development/python-modules/django/2_0.nix b/pkgs/development/python-modules/django/2_0.nix
deleted file mode 100644
index bf04f5e61197..000000000000
--- a/pkgs/development/python-modules/django/2_0.nix
+++ /dev/null
@@ -1,43 +0,0 @@
-{ stdenv, buildPythonPackage, fetchPypi, substituteAll,
-  isPy3k,
-  geos, gdal, pytz,
-  withGdal ? false
-}:
-
-buildPythonPackage rec {
-  pname = "Django";
-  version = "2.0.9";
-
-  disabled = !isPy3k;
-
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "0sgx548zp5xf8dajiamdskbrphssiyajhgbw8iza6b68mda4bnfn";
-  };
-
-  patches = stdenv.lib.optionals withGdal [
-    (substituteAll {
-      src = ./1.10-gis-libs.template.patch;
-      geos = geos;
-      gdal = gdal;
-      extension = stdenv.hostPlatform.extensions.sharedLibrary;
-    })
-  ];
-
-  # patch only $out/bin to avoid problems with starter templates (see #3134)
-  postFixup = ''
-    wrapPythonProgramsIn $out/bin "$out $pythonPath"
-  '';
-
-  propagatedBuildInputs = [ pytz ];
-
-  # too complicated to setup
-  doCheck = false;
-
-  meta = with stdenv.lib; {
-    description = "A high-level Python Web framework";
-    homepage = https://www.djangoproject.com/;
-    license = licenses.bsd3;
-    maintainers = with maintainers; [ georgewhewell ];
-  };
-}
diff --git a/pkgs/development/python-modules/django/2_1.nix b/pkgs/development/python-modules/django/2_1.nix
index 57a3198b4d1f..ab2e83e33705 100644
--- a/pkgs/development/python-modules/django/2_1.nix
+++ b/pkgs/development/python-modules/django/2_1.nix
@@ -6,13 +6,13 @@
 
 buildPythonPackage rec {
   pname = "Django";
-  version = "2.1.4";
+  version = "2.1.5";
 
   disabled = !isPy3k;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1mxbrqdzim3xcy18dmd08xh2am0q7whbf0nf6bmnrl43802m3386";
+    sha256 = "1hwqqsfg8jgnn039yxrq6xrksk11y7vwpfvba6lk01c3v8c3jffn";
   };
 
   patches = stdenv.lib.optionals withGdal [
diff --git a/pkgs/development/python-modules/django_reversion/default.nix b/pkgs/development/python-modules/django_reversion/default.nix
index 18fbbe2da311..9dfdf51186fc 100644
--- a/pkgs/development/python-modules/django_reversion/default.nix
+++ b/pkgs/development/python-modules/django_reversion/default.nix
@@ -6,13 +6,16 @@
 
 buildPythonPackage rec {
   pname = "django-reversion";
-  version = "3.0.2";
+  version = "3.0.3";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "9b8a245917e1bae131d3210c9ca7efbc066e60f32efa436e391c9803c3f4b61b";
+    sha256 = "0xjs803r5fxaqpkjbpsb17j8racxa4q1nvjjaj1akkgkgw9dj343";
   };
 
+  # tests assume the availability of a mysql/postgresql database
+  doCheck = false;
+
   propagatedBuildInputs = [ django ];
 
   meta = with stdenv.lib; {
diff --git a/pkgs/development/python-modules/djangorestframework-jwt/default.nix b/pkgs/development/python-modules/djangorestframework-jwt/default.nix
new file mode 100644
index 000000000000..f50fd3ff9b61
--- /dev/null
+++ b/pkgs/development/python-modules/djangorestframework-jwt/default.nix
@@ -0,0 +1,30 @@
+{ lib
+, fetchPypi
+, django
+, pyjwt
+, djangorestframework
+, buildPythonPackage
+}:
+
+buildPythonPackage rec {
+  pname = "djangorestframework-jwt";
+  version = "1.11.0";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "19rng6v1sw14mbjp5cplnrgxjnhlj8faalfw02iihi9s5w1k7zjy";
+  };
+
+  propagatedBuildInputs = [ pyjwt django djangorestframework ];
+
+  # ./runtests.py fails because the project must be tested against a django
+  # installation, there are missing database tables for User, that don't exist.
+  doCheck = false;
+
+  meta = with lib; {
+    description = "JSON Web Token Authentication support for Django REST Framework";
+    homepage = https://github.com/GetBlimp/django-rest-framework-jwt;
+    license = licenses.mit;
+    maintainers = [ maintainers.ivegotasthma ];
+  };
+}
diff --git a/pkgs/development/python-modules/djangorestframework/default.nix b/pkgs/development/python-modules/djangorestframework/default.nix
index d75fc90eda77..f227ed99bc9a 100644
--- a/pkgs/development/python-modules/djangorestframework/default.nix
+++ b/pkgs/development/python-modules/djangorestframework/default.nix
@@ -1,11 +1,11 @@
 { stdenv, buildPythonPackage, fetchPypi, django }:
 buildPythonPackage rec {
-  version = "3.9.0";
+  version = "3.9.1";
   pname = "djangorestframework";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0dk1r2qiifws4bb2pq8xk5dbsrhli0fi14iqg59v360mpfq6ay30";
+    sha256 = "79c6efbb2514bc50cf25906d7c0a5cfead714c7af667ff4bd110312cd380ae66";
   };
 
   # Test settings are missing
diff --git a/pkgs/development/python-modules/docker-py/default.nix b/pkgs/development/python-modules/docker-py/default.nix
new file mode 100644
index 000000000000..84dba75e404a
--- /dev/null
+++ b/pkgs/development/python-modules/docker-py/default.nix
@@ -0,0 +1,28 @@
+{ lib, buildPythonPackage, fetchPypi, six, requests, websocket_client, docker_pycreds }:
+
+buildPythonPackage rec {
+  version = "1.10.6";
+  pname = "docker-py";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "05f49f6hnl7npmi7kigg0ibqk8s3fhzx1ivvz1kqvlv4ay3paajc";
+  };
+
+  # The tests access the network.
+  doCheck = false;
+
+  propagatedBuildInputs = [
+    six
+    requests
+    websocket_client
+    docker_pycreds
+  ];
+
+  meta = {
+    description = "Python library for the Docker Remote API";
+    homepage = https://github.com/docker/docker-py/;
+    license = lib.licenses.asl20;
+    maintainers = [ lib.maintainers.pmiddend ];
+  };
+}
diff --git a/pkgs/development/python-modules/docrep/default.nix b/pkgs/development/python-modules/docrep/default.nix
index fb2f84cbfe43..46106971b6e7 100644
--- a/pkgs/development/python-modules/docrep/default.nix
+++ b/pkgs/development/python-modules/docrep/default.nix
@@ -7,11 +7,11 @@
 
 buildPythonPackage rec {
   pname = "docrep";
-  version = "0.2.4";
+  version = "0.2.5";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "ec7598fc2497a50f2c6882803d78e3c3cc4f1a554645d2c43c58d53653a1be01";
+    sha256 = "a67c34d3a44892d3e2a0af0ac55c02b949a37ced9d55c0d7ade76362ba6692d7";
   };
 
   checkInputs = [ pytest ];
diff --git a/pkgs/development/python-modules/dogpile.cache/default.nix b/pkgs/development/python-modules/dogpile.cache/default.nix
index b830d34589bb..9f739aae4ba5 100644
--- a/pkgs/development/python-modules/dogpile.cache/default.nix
+++ b/pkgs/development/python-modules/dogpile.cache/default.nix
@@ -4,11 +4,11 @@
 
 buildPythonPackage rec {
   pname = "dogpile.cache";
-  version = "0.6.7";
+  version = "0.6.8";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "fca7deb7c276b879b01c15c5d39b3c05701dc43b263ec3fef1e52cb851cf88ab";
+    sha256 = "e2fbe5d95e6df3fcfff2b666c69f3c06a4a3f77296142ae2bca523a176f88fa0";
   };
 
   # Disable concurrency tests that often fail,
diff --git a/pkgs/development/python-modules/dugong/default.nix b/pkgs/development/python-modules/dugong/default.nix
index 20f4bc7e0c33..09faabb98cc6 100644
--- a/pkgs/development/python-modules/dugong/default.nix
+++ b/pkgs/development/python-modules/dugong/default.nix
@@ -2,12 +2,13 @@
 
 buildPythonPackage rec {
   pname = "dugong";
-  version = "3.5";
+  version = "3.7.4";
 
   disabled = pythonOlder "3.3"; # Library does not support versions older than 3.3
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0y0rdxbiwm03zv6vpvapqilrird3h8ijz7xmb0j7ds5j4p6q3g24";
+    extension = "tar.bz2";
+    sha256 = "1fb9kwib6jsd09bxiz70av6g0blscygkx7xzaz1b7ibd28ms77zd";
   };
 }
diff --git a/pkgs/development/python-modules/dulwich/default.nix b/pkgs/development/python-modules/dulwich/default.nix
index ca0c2b8e3d37..e852076d8a2c 100644
--- a/pkgs/development/python-modules/dulwich/default.nix
+++ b/pkgs/development/python-modules/dulwich/default.nix
@@ -4,12 +4,12 @@
 , git, glibcLocales }:
 
 buildPythonPackage rec {
-  version = "0.19.9";
+  version = "0.19.10";
   pname = "dulwich";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "5e1e39555f594939a8aff1ca08b3bdf6c7efd4b941c2850760983a0197240974";
+    sha256 = "0330787f28c5252f12040b9a1c0f5990f19f806c12b3d510ee7ea1fa53a6f3b4";
   };
 
   LC_ALL = "en_US.UTF-8";
diff --git a/pkgs/development/python-modules/ecdsa/default.nix b/pkgs/development/python-modules/ecdsa/default.nix
index e9fdc71cd64a..9b12119b9e9a 100644
--- a/pkgs/development/python-modules/ecdsa/default.nix
+++ b/pkgs/development/python-modules/ecdsa/default.nix
@@ -14,7 +14,7 @@ buildPythonPackage rec {
   };
 
   # Only needed for tests
-  buildInputs = [ pkgs.openssl ];
+  checkInputs = [ pkgs.openssl ];
 
   meta = with stdenv.lib; {
     description = "ECDSA cryptographic signature library";
diff --git a/pkgs/development/python-modules/elasticsearch-dsl/default.nix b/pkgs/development/python-modules/elasticsearch-dsl/default.nix
index 94d47073764e..805bacbd716a 100644
--- a/pkgs/development/python-modules/elasticsearch-dsl/default.nix
+++ b/pkgs/development/python-modules/elasticsearch-dsl/default.nix
@@ -11,11 +11,11 @@
 
 buildPythonPackage rec {
   pname = "elasticsearch-dsl";
-  version = "6.2.1";
+  version = "6.3.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0f0w23kzyym0fkzisdkcl4xpnm8fsi97v1kskyvfrhj3mxy179fh";
+    sha256 = "1gh8a0shqi105k325hgwb9avrpdjh0mc6mxwfg9ba7g6lssb702z";
   };
 
   propagatedBuildInputs = [ elasticsearch python-dateutil six ]
diff --git a/pkgs/development/python-modules/eradicate/default.nix b/pkgs/development/python-modules/eradicate/default.nix
index 7c071a5cee6b..6b3909a5b458 100644
--- a/pkgs/development/python-modules/eradicate/default.nix
+++ b/pkgs/development/python-modules/eradicate/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "eradicate";
-  version = "0.2.1";
+  version = "1.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "092zmck919bn6sl31ixrzhn88g9nvhwzmwzpq8dzgn6c8k2h3bzr";
+    sha256 = "06nhs8wml5f5k96gbq7jl417bmsqnxy8aykpzbzrvm3gmqmaizag";
   };
 
   meta = with lib; {
diff --git a/pkgs/development/python-modules/et_xmlfile/default.nix b/pkgs/development/python-modules/et_xmlfile/default.nix
index 619b0e0c77c8..09475329c1bb 100644
--- a/pkgs/development/python-modules/et_xmlfile/default.nix
+++ b/pkgs/development/python-modules/et_xmlfile/default.nix
@@ -14,7 +14,7 @@ buildPythonPackage rec {
     sha256="0nrkhcb6jdrlb6pwkvd4rycw34y3s931hjf409ij9xkjsli9fkb1";
   };
 
-  buildInputs = [ lxml pytest ];
+  checkInputs = [ lxml pytest ];
   checkPhase = ''
     py.test $out
   '';
diff --git a/pkgs/development/python-modules/execnet/default.nix b/pkgs/development/python-modules/execnet/default.nix
index f38fbf25c598..6f97a2cb6bf3 100644
--- a/pkgs/development/python-modules/execnet/default.nix
+++ b/pkgs/development/python-modules/execnet/default.nix
@@ -15,7 +15,8 @@ buildPythonPackage rec {
     sha256 = "a7a84d5fa07a089186a329528f127c9d73b9de57f1a1131b82bb5320ee651f6a";
   };
 
-  buildInputs = [ pytest setuptools_scm ];
+  checkInputs = [ pytest  ];
+  nativeBuildInputs = [ setuptools_scm ];
   propagatedBuildInputs = [ apipkg ];
 
   # remove vbox tests
diff --git a/pkgs/development/python-modules/eyed3/default.nix b/pkgs/development/python-modules/eyed3/default.nix
index b2394f0a0c3c..6f10e69c0ec7 100644
--- a/pkgs/development/python-modules/eyed3/default.nix
+++ b/pkgs/development/python-modules/eyed3/default.nix
@@ -14,13 +14,13 @@
 }:
 
 buildPythonPackage rec {
-  version = "0.8.8";
+  version = "0.8.9";
   pname    = "eyeD3";
   disabled = isPyPy;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "197lszkyzm377ym5r0ssryfsiz20yjx8y4rii3wc81n92d1qzlaq";
+    sha256 = "b6bb626566f2949da409d7a871576271e2d6254dfb3d416b21713dabc4b6b00f";
   };
 
   # https://github.com/nicfit/eyeD3/pull/284
diff --git a/pkgs/development/python-modules/faker/default.nix b/pkgs/development/python-modules/faker/default.nix
index 9a46d9611e08..548c7a59bc6f 100644
--- a/pkgs/development/python-modules/faker/default.nix
+++ b/pkgs/development/python-modules/faker/default.nix
@@ -8,11 +8,11 @@ assert pythonOlder "3.3" -> ipaddress != null;
 
 buildPythonPackage rec {
   pname = "Faker";
-  version = "1.0.1";
+  version = "1.0.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "067mdy9p1vbkypr3vazmrb0sga6maqbk542hr7hmzcb5lp3dr8sj";
+    sha256 = "0v1pjzn9z20ckgv3kji7c8nwcsm7670z4i43ic9skjrdbcqylwfq";
   };
 
   buildInputs = [ pytestrunner ];
@@ -30,6 +30,7 @@ buildPythonPackage rec {
   ] ++ lib.optional (pythonOlder "3.3") ipaddress;
 
   postPatch = ''
+    find tests -type d -name "__pycache__" | xargs rm -r
     substituteInPlace setup.py --replace "pytest>=3.8.0,<3.9" "pytest"
   '';
 
diff --git a/pkgs/development/python-modules/favicon/default.nix b/pkgs/development/python-modules/favicon/default.nix
new file mode 100644
index 000000000000..e4675274c09f
--- /dev/null
+++ b/pkgs/development/python-modules/favicon/default.nix
@@ -0,0 +1,27 @@
+{ lib, buildPythonPackage, fetchPypi, requests, beautifulsoup4, pytest, requests-mock,
+  pytestrunner }:
+
+buildPythonPackage rec {
+  pname = "favicon";
+  version = "0.5.1";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "01jhb66nrqbf22z6ybpi8ndw6zifgysdmnh547027g96nz51669y";
+  };
+
+  buildInputs = [ pytestrunner ];
+  checkInputs = [ pytest requests-mock ];
+  propagatedBuildInputs = [ requests beautifulsoup4 ];
+
+  checkPhase = ''
+    pytest
+  '';
+
+  meta = with lib; {
+    description = "Find a website's favicon";
+    homepage = http://github.com/scottwernervt/favicon;
+    license = licenses.mit;
+    maintainers = with maintainers; [ elohmeier ];
+  };
+}
diff --git a/pkgs/development/python-modules/fdroidserver/default.nix b/pkgs/development/python-modules/fdroidserver/default.nix
deleted file mode 100644
index b9b936ae83e8..000000000000
--- a/pkgs/development/python-modules/fdroidserver/default.nix
+++ /dev/null
@@ -1,35 +0,0 @@
-{ 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/filetype/default.nix b/pkgs/development/python-modules/filetype/default.nix
new file mode 100644
index 000000000000..c83593227524
--- /dev/null
+++ b/pkgs/development/python-modules/filetype/default.nix
@@ -0,0 +1,26 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, python
+}:
+
+buildPythonPackage rec {
+  pname = "filetype";
+  version = "1.0.4";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "366c50d0211798e696626f125134163ac2fff25a70131eec80a1d1a6196c1027";
+  };
+
+  checkPhase = ''
+    ${python.interpreter} -m unittest discover
+  '';
+
+  meta = with lib; {
+    description = "Infer file type and MIME type of any file/buffer";
+    homepage = https://github.com/h2non/filetype.py;
+    license = licenses.mit;
+    maintainers = with maintainers; [ dotlambda ];
+  };
+}
diff --git a/pkgs/development/python-modules/fiona/default.nix b/pkgs/development/python-modules/fiona/default.nix
index d7586fd99555..c5505efc1689 100644
--- a/pkgs/development/python-modules/fiona/default.nix
+++ b/pkgs/development/python-modules/fiona/default.nix
@@ -5,11 +5,11 @@
 
 buildPythonPackage rec {
   pname = "Fiona";
-  version = "1.8.2";
+  version = "1.8.4";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "4c6419b7ac29136708029f6a44b4ccd458735a4d241016c7b1bab41685c08d8f";
+    sha256 = "aec9ab2e3513c9503ec123b1a8573bee55fc6a66e2ac07088c3376bf6738a424";
   };
 
   CXXFLAGS = stdenv.lib.optionalString stdenv.cc.isClang "-std=c++11";
diff --git a/pkgs/development/python-modules/flask-socketio/default.nix b/pkgs/development/python-modules/flask-socketio/default.nix
index d722ce03417a..f9f23859748a 100644
--- a/pkgs/development/python-modules/flask-socketio/default.nix
+++ b/pkgs/development/python-modules/flask-socketio/default.nix
@@ -8,11 +8,11 @@
 
 buildPythonPackage rec {
   pname = "Flask-SocketIO";
-  version = "3.1.0";
+  version = "3.1.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "a7188b35f7874903f554b3a1a3a4465213e765c4f17182fa5cb3d9f6915da4c1";
+    sha256 = "1hcl0qnhfqc9x4y6fnvsrablim8yfqfg2i097b2v3srlz69vdyr6";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/flexmock/default.nix b/pkgs/development/python-modules/flexmock/default.nix
index b80aafe3bf2c..f1a0efc07139 100644
--- a/pkgs/development/python-modules/flexmock/default.nix
+++ b/pkgs/development/python-modules/flexmock/default.nix
@@ -6,11 +6,11 @@
 
 buildPythonPackage rec {
   pname = "flexmock";
-  version = "0.10.2";
+  version = "0.10.3";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "fe95c8727f4db73dc8f2f7b4548bffe7992440a965fefd60da291abda5352c2b";
+    sha256 = "031c624pdqm7cc0xh4yz5k69gqxn2bbrjz13s17684q5shn0ik21";
   };
 
   checkInputs = [ pytest ];
diff --git a/pkgs/development/python-modules/fonttools/default.nix b/pkgs/development/python-modules/fonttools/default.nix
index 4fd2db014bab..58df04c17c80 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.34.2";
+  version = "3.37.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1ahs82jnc8f7gksh51asg9dcifhslyfdz9dry9sxq424q1p5k9lz";
+    sha256 = "1bf7k6qdvi2ycw87g8iqy0rwl3ms25k3zz6ix1fpsk8qx36gk9x1";
     extension = "zip";
   };
 
diff --git a/pkgs/development/python-modules/fs/default.nix b/pkgs/development/python-modules/fs/default.nix
index 5b120c6af37c..1ab01cf7d896 100644
--- a/pkgs/development/python-modules/fs/default.nix
+++ b/pkgs/development/python-modules/fs/default.nix
@@ -1,4 +1,5 @@
-{ pkgs
+{ lib
+, glibcLocales
 , buildPythonPackage
 , fetchPypi
 , six
@@ -18,31 +19,28 @@
 
 buildPythonPackage rec {
   pname = "fs";
-  version = "2.1.2";
+  version = "2.1.3";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "6f7e36b6381f353339957784a67bd9d440482b7eaeaff7b1f97249ceb7223f63";
+    sha256 = "87e8d4e93040779a407c92b7f2f27117038927b4b1da41bdce23ce226557327d";
   };
 
-  buildInputs = [ pkgs.glibcLocales ];
+  buildInputs = [ glibcLocales ];
   checkInputs = [ nose pyftpdlib mock psutil ];
   propagatedBuildInputs = [ six appdirs pytz ]
-    ++ pkgs.lib.optionals (!isPy3k) [ backports_os ]
-    ++ pkgs.lib.optionals (!pythonAtLeast "3.6") [ typing ]
-    ++ pkgs.lib.optionals (!pythonAtLeast "3.5") [ scandir ]
-    ++ pkgs.lib.optionals (!pythonAtLeast "3.5") [ enum34 ];
-
-  postPatch = ''
-    # required for installation
-    touch LICENSE
-    # tests modify home directory results in (4 tests failing) / 1600
-    rm tests/test_appfs.py tests/test_opener.py
-  '';
+    ++ lib.optionals (!isPy3k) [ backports_os ]
+    ++ lib.optionals (!pythonAtLeast "3.6") [ typing ]
+    ++ lib.optionals (!pythonAtLeast "3.5") [ scandir ]
+    ++ lib.optionals (!pythonAtLeast "3.5") [ enum34 ];
 
   LC_ALL="en_US.utf-8";
 
-  meta = with pkgs.lib; {
+  checkPhase = ''
+    HOME=$(mktemp -d) nosetests tests []
+  '';
+
+  meta = with lib; {
     description = "Filesystem abstraction";
     homepage    = https://github.com/PyFilesystem/pyfilesystem2;
     license     = licenses.bsd3;
diff --git a/pkgs/development/python-modules/ftfy/default.nix b/pkgs/development/python-modules/ftfy/default.nix
index 38457caabbf5..f6fa41e33f83 100644
--- a/pkgs/development/python-modules/ftfy/default.nix
+++ b/pkgs/development/python-modules/ftfy/default.nix
@@ -4,13 +4,13 @@
 , fetchPypi
 , html5lib
 , wcwidth
-, nose
+, pytest
 }:
 
 buildPythonPackage rec {
   pname = "ftfy";
 
-  version = "5.5.0";
+  version = "5.5.1";
   # ftfy v5 only supports python3. Since at the moment the only
   # packages that use ftfy are spacy and textacy which both support
   # python 2 and 3, they have pinned ftfy to the v4 branch.
@@ -20,26 +20,26 @@ buildPythonPackage rec {
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "525ea45a871f52ddb170e66b01f35f1b3022995016c81efa305e628937b85443";
+    sha256 = "1ci6xrj4g01a97nymxpv9nj820nlmgzc4ybaz9k46i6bnxzpax7s";
   };
 
-  propagatedBuildInputs = [ html5lib wcwidth ];
+  propagatedBuildInputs = [
+    html5lib
+    wcwidth
+  ];
 
   checkInputs = [
-    nose
+    pytest
   ];
 
+  # We suffix PATH like this because the tests want the ftfy executable
   checkPhase = ''
-    nosetests -v tests
+    PATH=$out/bin:$PATH pytest
   '';
 
-  # Several tests fail with
-  # FileNotFoundError: [Errno 2] No such file or directory: 'ftfy'
-  doCheck = false;
-
   meta = with stdenv.lib; {
-    description = "Given Unicode text, make its representation consistent and possibly less broken.";
-    homepage = https://github.com/LuminosoInsight/python-ftfy/tree/master/tests;
+    description = "Given Unicode text, make its representation consistent and possibly less broken";
+    homepage = https://github.com/LuminosoInsight/python-ftfy;
     license = licenses.mit;
     maintainers = with maintainers; [ sdll aborsu ];
   };
diff --git a/pkgs/development/python-modules/future-fstrings/default.nix b/pkgs/development/python-modules/future-fstrings/default.nix
new file mode 100644
index 000000000000..9e49147315b5
--- /dev/null
+++ b/pkgs/development/python-modules/future-fstrings/default.nix
@@ -0,0 +1,23 @@
+{ lib, buildPythonPackage, fetchPypi, pythonOlder }:
+
+buildPythonPackage rec {
+  pname = "future-fstrings";
+  version = "0.4.5";
+
+  src = fetchPypi {
+    inherit version;
+    pname = "future_fstrings";
+    sha256 = "891c5d5f073b3e3ff686bebde0a4c45c479065f45c8cbd6de19323d5a50738a8";
+  };
+
+  # No tests included in Pypi archive
+  doCheck = false;
+
+  meta = with lib; {
+    homepage = https://github.com/asottile/future-fstrings;
+    description = "A backport of fstrings to python<3.6";
+    license = licenses.mit;
+    maintainers = with maintainers; [ nyanloutre ];
+    broken = pythonOlder "3.6"; # dependency tokenize-rt not packaged
+  };
+}
diff --git a/pkgs/development/python-modules/fuzzywuzzy/default.nix b/pkgs/development/python-modules/fuzzywuzzy/default.nix
new file mode 100644
index 000000000000..7091799decab
--- /dev/null
+++ b/pkgs/development/python-modules/fuzzywuzzy/default.nix
@@ -0,0 +1,21 @@
+{ stdenv, buildPythonPackage, fetchPypi, python-Levenshtein, pycodestyle, hypothesis, pytest }:
+
+buildPythonPackage rec {
+  pname = "fuzzywuzzy";
+  version = "0.17.0";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "6f49de47db00e1c71d40ad16da42284ac357936fa9b66bea1df63fed07122d62";
+  };
+
+  propagatedBuildInputs = [ python-Levenshtein ];
+  checkInputs = [ pycodestyle hypothesis pytest ];
+
+  meta = with stdenv.lib; {
+    description = "Fuzzy string matching for Python";
+    homepage = https://github.com/seatgeek/fuzzywuzzy;
+    license = licenses.gpl2;
+    maintainers = with maintainers; [ earvstedt ];
+  };
+}
diff --git a/pkgs/development/python-modules/gast/default.nix b/pkgs/development/python-modules/gast/default.nix
index 036bed9dd792..a85f78dccb28 100644
--- a/pkgs/development/python-modules/gast/default.nix
+++ b/pkgs/development/python-modules/gast/default.nix
@@ -2,10 +2,10 @@
 
 buildPythonPackage rec {
   pname = "gast";
-  version =  "0.2.0";
+  version =  "0.2.2";
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0c296xm1vz9x4w4inmdl0k8mnc0i9arw94si2i7pglpc461r0s3h";
+    sha256 = "1w5dzdb3gpcfmd2s0b93d8gff40a1s41rv31458z14inb3s9v4zy";
   };
   checkInputs = [ astunparse ] ;
   meta = with stdenv.lib; {
diff --git a/pkgs/development/python-modules/glances/default.nix b/pkgs/development/python-modules/glances/default.nix
index f25723e7ec72..9670428a3e5f 100644
--- a/pkgs/development/python-modules/glances/default.nix
+++ b/pkgs/development/python-modules/glances/default.nix
@@ -6,14 +6,14 @@
 
 buildPythonPackage rec {
   name = "glances-${version}";
-  version = "3.0.2";
+  version = "3.1.0";
   disabled = isPyPy;
 
   src = fetchFromGitHub {
     owner = "nicolargo";
     repo = "glances";
     rev = "v${version}";
-    sha256 = "1jkjblfk4gbr00j7lny7ajiizzqnp0p1yhzfi14074gwk38z0q14";
+    sha256 = "0zjpp017i8b8bijdaj85rya7rmdqh4g8vkb42q14q2sw6agxz3zi";
   };
 
   patches = lib.optional doCheck ./skip-failing-tests.patch;
diff --git a/pkgs/development/python-modules/google-api-python-client/default.nix b/pkgs/development/python-modules/google-api-python-client/default.nix
index 1a335ad6bb1c..89c7c6b8df80 100644
--- a/pkgs/development/python-modules/google-api-python-client/default.nix
+++ b/pkgs/development/python-modules/google-api-python-client/default.nix
@@ -3,12 +3,12 @@
 
 buildPythonPackage rec {
   pname = "google-api-python-client";
-  version = "1.7.7";
+  version = "1.7.8";
   #disabled = !isPy3k; # TODO: Python 2.7 was deprecated but weboob still depends on it.
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1nlsp8cll6v9w4649j98xw545bfnqa2xs7m9faa9mxc0kp8ff1li";
+    sha256 = "0n18frf0ghmwf5lxmkyski4b5h1rsx93ibq3iw0k3s2wxl371406";
   };
 
   # No tests included in archive
@@ -20,5 +20,6 @@ buildPythonPackage rec {
     description = "The core Python library for accessing Google APIs";
     homepage = https://github.com/google/google-api-python-client;
     license = licenses.asl20;
+    maintainers = with maintainers; [ primeos ];
   };
 }
diff --git a/pkgs/development/python-modules/google-music-proto/default.nix b/pkgs/development/python-modules/google-music-proto/default.nix
new file mode 100644
index 000000000000..b2196c8748ce
--- /dev/null
+++ b/pkgs/development/python-modules/google-music-proto/default.nix
@@ -0,0 +1,37 @@
+{ lib, buildPythonPackage, fetchPypi, pythonOlder
+, attrs
+, audio-metadata
+, marshmallow
+, pendulum
+, protobuf
+}:
+
+buildPythonPackage rec {
+  pname = "google-music-proto";
+  version = "2.2.0";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "008nap32hcrlnkkqkf462vwnm6xzrn6fj71lbryfmrakad7rz7bc";
+  };
+
+  propagatedBuildInputs = [
+    attrs
+    audio-metadata
+    marshmallow
+    pendulum
+    protobuf
+  ];
+
+  # No tests
+  doCheck = false;
+
+  disabled = pythonOlder "3.6";
+
+  meta = with lib; {
+    homepage = https://github.com/thebigmunch/google-music-proto;
+    description = "Sans-I/O wrapper of Google Music API calls";
+    license = licenses.mit;
+    maintainers = with maintainers; [ jakewaksbaum ];
+  };
+}
diff --git a/pkgs/development/python-modules/google-music-utils/default.nix b/pkgs/development/python-modules/google-music-utils/default.nix
new file mode 100644
index 000000000000..d7fb8a917076
--- /dev/null
+++ b/pkgs/development/python-modules/google-music-utils/default.nix
@@ -0,0 +1,35 @@
+{ lib, buildPythonPackage, fetchFromGitHub, pythonOlder
+, audio-metadata, multidict, wrapt
+, pytest
+}:
+
+buildPythonPackage rec {
+  pname = "google-music-utils";
+  version = "2.0.0";
+
+  # Pypi tarball doesn't contain tests
+  src = fetchFromGitHub {
+    owner = "thebigmunch";
+    repo = "google-music-utils";
+    rev = version;
+    sha256 = "0i5zcr1ypnxizi41s3lrplz9m9rmb56s5iihjx61kbybxcq2b6gk";
+  };
+
+  propagatedBuildInputs = [
+    audio-metadata multidict wrapt
+  ];
+
+  checkInputs = [ pytest ];
+  checkPhase = ''
+    pytest
+  '';
+
+  disabled = pythonOlder "3.6";
+
+  meta = with lib; {
+    homepage = https://github.com/thebigmunch/google-music-utils;
+    description = "A set of utility functionality for google-music and related projects";
+    license = licenses.mit;
+    maintainers = with maintainers; [ jakewaksbaum ];
+  };
+}
diff --git a/pkgs/development/python-modules/google-music/default.nix b/pkgs/development/python-modules/google-music/default.nix
new file mode 100644
index 000000000000..b0fe0f8a2544
--- /dev/null
+++ b/pkgs/development/python-modules/google-music/default.nix
@@ -0,0 +1,39 @@
+{ lib, buildPythonPackage, fetchPypi, pythonOlder
+, appdirs
+, audio-metadata
+, google-music-proto
+, protobuf
+, requests_oauthlib
+, tenacity
+}:
+
+buildPythonPackage rec {
+  pname = "google-music";
+  version = "3.0.1";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "13i9nd62wqfg0f5r7ykr15q83397vdpw0js50fy5nbgs33sbf6b7";
+  };
+
+  propagatedBuildInputs = [
+    appdirs
+    audio-metadata
+    google-music-proto
+    protobuf
+    requests_oauthlib
+    tenacity
+  ];
+
+  # No tests
+  doCheck = false;
+
+  disabled = pythonOlder "3.6";
+
+  meta = with lib; {
+    homepage = https://github.com/thebigmunch/google-music;
+    description = "A Google Music API wrapper";
+    license = licenses.mit;
+    maintainers = with maintainers; [ jakewaksbaum ];
+  };
+}
diff --git a/pkgs/development/python-modules/google_api_core/default.nix b/pkgs/development/python-modules/google_api_core/default.nix
index 4ef3c4ebb4fe..5cb027eef460 100644
--- a/pkgs/development/python-modules/google_api_core/default.nix
+++ b/pkgs/development/python-modules/google_api_core/default.nix
@@ -3,11 +3,11 @@
 
 buildPythonPackage rec {
   pname = "google-api-core";
-  version = "1.5.2";
+  version = "1.7.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "16knimv41rjhrqkibm1p8f5ssmbbcjn7njc71lpr8v03l7mr6f9q";
+    sha256 = "85693e163a1a6faea69a74f8feaf35d54dfa2559fbdbbe389c93ffb3bb4c9a79";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/google_cloud_asset/default.nix b/pkgs/development/python-modules/google_cloud_asset/default.nix
index f6ad7e60a5c9..90c8e752d412 100644
--- a/pkgs/development/python-modules/google_cloud_asset/default.nix
+++ b/pkgs/development/python-modules/google_cloud_asset/default.nix
@@ -5,18 +5,19 @@
 , grpc_google_iam_v1
 , google_api_core
 , pytest
+, mock
 }:
 
 buildPythonPackage rec {
   pname = "google-cloud-asset";
-  version = "0.1.1";
+  version = "0.1.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "cec2f44a670371e24e6140c454fdac3ed06be0a021042c6756a3284b505335c7";
+    sha256 = "233157c5d902a084477fb5fe6ca1f946d6fe7911577d4a36aee0227777db61b7";
   };
 
-  checkInputs = [ pytest ];
+  checkInputs = [ pytest mock ];
   propagatedBuildInputs = [ enum34 grpc_google_iam_v1 google_api_core ];
 
   checkPhase = ''
diff --git a/pkgs/development/python-modules/google_cloud_automl/default.nix b/pkgs/development/python-modules/google_cloud_automl/default.nix
index c7775aac2932..7f605d73c97a 100644
--- a/pkgs/development/python-modules/google_cloud_automl/default.nix
+++ b/pkgs/development/python-modules/google_cloud_automl/default.nix
@@ -4,18 +4,19 @@
 , enum34
 , google_api_core
 , pytest
+, mock
 }:
 
 buildPythonPackage rec {
   pname = "google-cloud-automl";
-  version = "0.1.1";
+  version = "0.1.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "793d463f78d22a822196cb3e34b247fbdba07eeae15ceadb911f5ccecd843f87";
+    sha256 = "32890d1e043eb09a86ff1839096dfb49051cd436bdf1a1708299484cfd06db1a";
   };
 
-  checkInputs = [ pytest ];
+  checkInputs = [ pytest mock ];
   propagatedBuildInputs = [ enum34 google_api_core ];
 
   checkPhase = ''
diff --git a/pkgs/development/python-modules/google_cloud_bigquery/default.nix b/pkgs/development/python-modules/google_cloud_bigquery/default.nix
index 18f2087df17c..5e33b1b51eaa 100644
--- a/pkgs/development/python-modules/google_cloud_bigquery/default.nix
+++ b/pkgs/development/python-modules/google_cloud_bigquery/default.nix
@@ -13,11 +13,11 @@
 
 buildPythonPackage rec {
   pname = "google-cloud-bigquery";
-  version = "1.6.0";
+  version = "1.8.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "d559ba1e05cf6a960e09bb5aab3aeb4d50ad9e08c77a20a17c01c9b2bd8d6cb7";
+    sha256 = "621e05321d7a26b87fa2d4f8dd24f963d3424d7566a6454d65c4427b9d8552e2";
   };
 
   checkInputs = [ pytest mock ipython ];
diff --git a/pkgs/development/python-modules/google_cloud_bigquery_datatransfer/default.nix b/pkgs/development/python-modules/google_cloud_bigquery_datatransfer/default.nix
index 64deae6de367..23f08f3bbef0 100644
--- a/pkgs/development/python-modules/google_cloud_bigquery_datatransfer/default.nix
+++ b/pkgs/development/python-modules/google_cloud_bigquery_datatransfer/default.nix
@@ -3,18 +3,19 @@
 , fetchPypi
 , google_api_core
 , pytest
+, mock
 }:
 
 buildPythonPackage rec {
   pname = "google-cloud-bigquery-datatransfer";
-  version = "0.1.1";
+  version = "0.3.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "f5b5d0de43805fa9ebb620c58e1d27e6d32d2fc8e9a2f954ee170f7a026c8757";
+    sha256 = "02bf1a508ffbc730904fd8a5e7d7c33946f0aa539127c1b1e235dfdedd7bc9a5";
   };
 
-  checkInputs = [ pytest ];
+  checkInputs = [ pytest mock ];
   propagatedBuildInputs = [ google_api_core ];
 
   checkPhase = ''
diff --git a/pkgs/development/python-modules/google_cloud_bigtable/default.nix b/pkgs/development/python-modules/google_cloud_bigtable/default.nix
index 7eeb41c56de7..c39d14fcf5eb 100644
--- a/pkgs/development/python-modules/google_cloud_bigtable/default.nix
+++ b/pkgs/development/python-modules/google_cloud_bigtable/default.nix
@@ -10,11 +10,11 @@
 
 buildPythonPackage rec {
   pname = "google-cloud-bigtable";
-  version = "0.31.0";
+  version = "0.32.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "b6c8572697b5fdc7fcb95d88f87b8c84cea5a7aef2d57d3de0d6a9e2b0e8424f";
+    sha256 = "bb113894e1322102d4917740be4870798cad76aa4291ff742ada5548988b2223";
   };
 
   checkInputs = [ pytest mock ];
diff --git a/pkgs/development/python-modules/google_cloud_container/default.nix b/pkgs/development/python-modules/google_cloud_container/default.nix
index 14ed41a3ea4a..f0a47d7c30ff 100644
--- a/pkgs/development/python-modules/google_cloud_container/default.nix
+++ b/pkgs/development/python-modules/google_cloud_container/default.nix
@@ -3,18 +3,19 @@
 , fetchPypi
 , google_api_core
 , pytest
+, mock
 }:
 
 buildPythonPackage rec {
   pname = "google-cloud-container";
-  version = "0.1.1";
+  version = "0.2.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "a89afcb1fe96bc9361c231c223c3bbe19fa3787caeb4697cd5778990e1077270";
+    sha256 = "566834ef43e79917b112e3bd2848e84cfb0f4d7b565581607e2548f5c8e5d87a";
   };
 
-  checkInputs = [ pytest ];
+  checkInputs = [ pytest mock ];
   propagatedBuildInputs = [ google_api_core ];
 
   checkPhase = ''
diff --git a/pkgs/development/python-modules/google_cloud_core/default.nix b/pkgs/development/python-modules/google_cloud_core/default.nix
index d9111ac89159..c57433a3ebd8 100644
--- a/pkgs/development/python-modules/google_cloud_core/default.nix
+++ b/pkgs/development/python-modules/google_cloud_core/default.nix
@@ -3,11 +3,11 @@
 
 buildPythonPackage rec {
   pname = "google-cloud-core";
-  version = "0.28.1";
+  version = "0.29.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "89e8140a288acec20c5e56159461d3afa4073570c9758c05d4e6cb7f2f8cc440";
+    sha256 = "d85b1aaaf3bad9415ad1d8ee5eadce96d7007a82f13ce0a0629a003a11e83f29";
   };
 
   propagatedBuildInputs = [ google_api_core grpcio ];
diff --git a/pkgs/development/python-modules/google_cloud_dataproc/default.nix b/pkgs/development/python-modules/google_cloud_dataproc/default.nix
index 6db5f4a52321..b36f651e2f77 100644
--- a/pkgs/development/python-modules/google_cloud_dataproc/default.nix
+++ b/pkgs/development/python-modules/google_cloud_dataproc/default.nix
@@ -3,18 +3,19 @@
 , fetchPypi
 , google_api_core
 , pytest
+, mock
 }:
 
 buildPythonPackage rec {
   pname = "google-cloud-dataproc";
-  version = "0.2.0";
+  version = "0.3.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "531dbd3e5862df5e67751efdcd89f00d0ded35f3a87a18fd3245e1c365080720";
+    sha256 = "3acbb1bd9e25fd233ae321c137a58306d5d0ef262e3cbe825c511c8ef55b33a2";
   };
 
-  checkInputs = [ pytest ];
+  checkInputs = [ pytest mock ];
   propagatedBuildInputs = [ google_api_core ];
 
   checkPhase = ''
diff --git a/pkgs/development/python-modules/google_cloud_datastore/default.nix b/pkgs/development/python-modules/google_cloud_datastore/default.nix
index f0754b230f08..54d772d7e9c3 100644
--- a/pkgs/development/python-modules/google_cloud_datastore/default.nix
+++ b/pkgs/development/python-modules/google_cloud_datastore/default.nix
@@ -9,11 +9,11 @@
 
 buildPythonPackage rec {
   pname = "google-cloud-datastore";
-  version = "1.7.1";
+  version = "1.7.3";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "03c1a06b0d94ac2f801513c9255bd5fc8773d036f0e59d63ffe1152cfe4320de";
+    sha256 = "e00bddc03670be206ddcbc5c1cbda0acc51db963f0ff54189bd6710f8e93a4c9";
   };
 
   checkInputs = [ pytest mock ];
diff --git a/pkgs/development/python-modules/google_cloud_dlp/default.nix b/pkgs/development/python-modules/google_cloud_dlp/default.nix
index 37ebd95faa5b..0f46ff36a39f 100644
--- a/pkgs/development/python-modules/google_cloud_dlp/default.nix
+++ b/pkgs/development/python-modules/google_cloud_dlp/default.nix
@@ -4,18 +4,19 @@
 , enum34
 , google_api_core
 , pytest
+, mock
 }:
 
 buildPythonPackage rec {
   pname = "google-cloud-dlp";
-  version = "0.9.0";
+  version = "0.10.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "408e5c6820dc53dd589a7bc378d25c2cf5817c448b7c7b1268bc745ecbe04ec3";
+    sha256 = "5cc7e40842b6c3dc586d04e3d2b2326b44afbe3896da6a30032d64650a7c6b00";
   };
 
-  checkInputs = [ pytest ];
+  checkInputs = [ pytest mock ];
   propagatedBuildInputs = [ enum34 google_api_core ];
 
   checkPhase = ''
diff --git a/pkgs/development/python-modules/google_cloud_dns/default.nix b/pkgs/development/python-modules/google_cloud_dns/default.nix
index 48d0c7429465..e9ff0b81ec70 100644
--- a/pkgs/development/python-modules/google_cloud_dns/default.nix
+++ b/pkgs/development/python-modules/google_cloud_dns/default.nix
@@ -9,11 +9,11 @@
 
 buildPythonPackage rec {
   pname = "google-cloud-dns";
-  version = "0.29.0";
+  version = "0.29.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "f6ea35676c59b6bfd4a2e6aa42670c6ed3505ba46f7117cdc953094e568f404e";
+    sha256 = "d1476115c983094f124fe8b7a1350414072c048bf236336f3ab0816912e6e6bf";
   };
 
   checkInputs = [ pytest mock ];
diff --git a/pkgs/development/python-modules/google_cloud_error_reporting/default.nix b/pkgs/development/python-modules/google_cloud_error_reporting/default.nix
index 3ddf022d6646..d6f89aefc5fa 100644
--- a/pkgs/development/python-modules/google_cloud_error_reporting/default.nix
+++ b/pkgs/development/python-modules/google_cloud_error_reporting/default.nix
@@ -8,11 +8,11 @@
 
 buildPythonPackage rec {
   pname = "google-cloud-error-reporting";
-  version = "0.30.0";
+  version = "0.30.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "768a5c3ed7a96b60f051717c1138e561493ab0ef4dd4acbcf9e2b1cc2d09e06a";
+    sha256 = "29d04cb6cc2053468addb78351b841df00cb56066e89b6aec0970cb003dd2fab";
   };
 
   checkInputs = [ pytest mock ];
diff --git a/pkgs/development/python-modules/google_cloud_firestore/default.nix b/pkgs/development/python-modules/google_cloud_firestore/default.nix
index 6cc42805d4e2..98778ddf3215 100644
--- a/pkgs/development/python-modules/google_cloud_firestore/default.nix
+++ b/pkgs/development/python-modules/google_cloud_firestore/default.nix
@@ -8,11 +8,11 @@
 
 buildPythonPackage rec {
   pname = "google-cloud-firestore";
-  version = "0.30.0";
+  version = "0.31.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "7f990572ace890867bbbc63c9d700c1d2635ba4c799e05f30b6fdca490021243";
+    sha256 = "5349d1a112dc8ff1b96d400a04ab18949503b542c72f526847e2066eef6cbc25";
   };
 
   checkInputs = [ pytest ];
diff --git a/pkgs/development/python-modules/google_cloud_iot/default.nix b/pkgs/development/python-modules/google_cloud_iot/default.nix
index cb46f6e764a7..1e103ab14250 100644
--- a/pkgs/development/python-modules/google_cloud_iot/default.nix
+++ b/pkgs/development/python-modules/google_cloud_iot/default.nix
@@ -5,18 +5,19 @@
 , grpc_google_iam_v1
 , google_api_core
 , pytest
+, mock
 }:
 
 buildPythonPackage rec {
   pname = "google-cloud-iot";
-  version = "0.1.0";
+  version = "0.2.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1502fa6d64f8f0f7c0e34e71c82c5daacc8fd8f78256cfadef5ae06c5efcc3b4";
+    sha256 = "b274fb5d38cfaa556a07943d9c9a23ca4aa3ecca51135a70325e1c95fa699474";
   };
 
-  checkInputs = [ pytest ];
+  checkInputs = [ pytest mock ];
   propagatedBuildInputs = [ enum34 grpc_google_iam_v1 google_api_core ];
 
   checkPhase = ''
diff --git a/pkgs/development/python-modules/google_cloud_kms/default.nix b/pkgs/development/python-modules/google_cloud_kms/default.nix
index d5db318cef32..cf5476f7d1d8 100644
--- a/pkgs/development/python-modules/google_cloud_kms/default.nix
+++ b/pkgs/development/python-modules/google_cloud_kms/default.nix
@@ -5,18 +5,19 @@
 , grpc_google_iam_v1
 , google_api_core
 , pytest
+, mock
 }:
 
 buildPythonPackage rec {
   pname = "google-cloud-kms";
-  version = "0.2.0";
+  version = "0.2.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "add648f9185a8724f8632b3a006ee0af4847a5ab4ca085954ff1d00a8cd2d54c";
+    sha256 = "3e9d9e07af8651826db5997ca0f11f02401cef42eb822d416a19df05b17c5a45";
   };
 
-  checkInputs = [ pytest ];
+  checkInputs = [ pytest mock ];
   propagatedBuildInputs = [ enum34 grpc_google_iam_v1 google_api_core ];
 
   checkPhase = ''
diff --git a/pkgs/development/python-modules/google_cloud_language/default.nix b/pkgs/development/python-modules/google_cloud_language/default.nix
index adf354f3bff5..c48c0c7b16ce 100644
--- a/pkgs/development/python-modules/google_cloud_language/default.nix
+++ b/pkgs/development/python-modules/google_cloud_language/default.nix
@@ -4,18 +4,19 @@
 , enum34
 , google_api_core
 , pytest
+, mock
 }:
 
 buildPythonPackage rec {
   pname = "google-cloud-language";
-  version = "1.1.0";
+  version = "1.1.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "2450e3265df129241cb21badb9d4ce2089d2652581df38e03c14a7ec85679ecb";
+    sha256 = "e4742b98e2d69ca21864e3218805a9db7e04e06f0672f2385cf6b5361ee35605";
   };
 
-  checkInputs = [ pytest ];
+  checkInputs = [ pytest mock ];
   propagatedBuildInputs = [ enum34 google_api_core ];
 
   checkPhase = ''
diff --git a/pkgs/development/python-modules/google_cloud_logging/default.nix b/pkgs/development/python-modules/google_cloud_logging/default.nix
index 6c73b67b3dbc..d6a6ede039de 100644
--- a/pkgs/development/python-modules/google_cloud_logging/default.nix
+++ b/pkgs/development/python-modules/google_cloud_logging/default.nix
@@ -12,11 +12,11 @@
 
 buildPythonPackage rec {
   pname = "google-cloud-logging";
-  version = "1.8.0";
+  version = "1.10.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "418ae534a8044ea5fd385fc4958763d76b8f315785d7a61f264c5a04035d02d5";
+    sha256 = "13ac67399289b202b409e6cef7a87dea32ddabf902f69a677bd05554f6aecf0b";
   };
 
   checkInputs = [ pytest mock webapp2 django flask ];
diff --git a/pkgs/development/python-modules/google_cloud_monitoring/default.nix b/pkgs/development/python-modules/google_cloud_monitoring/default.nix
index 5d78bd22b010..da5f06da82a5 100644
--- a/pkgs/development/python-modules/google_cloud_monitoring/default.nix
+++ b/pkgs/development/python-modules/google_cloud_monitoring/default.nix
@@ -9,11 +9,11 @@
 
 buildPythonPackage rec {
   pname = "google-cloud-monitoring";
-  version = "0.30.1";
+  version = "0.31.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "6b26d659360306d51b9fb88c5b1eb77bf49967a37b6348ae9568c083e466274d";
+    sha256 = "ac0a7657a11459894abf35d3e35e804df0fb81ef35bc18f80199d4ce02440c2d";
   };
 
   checkInputs = [ pytest mock ];
diff --git a/pkgs/development/python-modules/google_cloud_pubsub/default.nix b/pkgs/development/python-modules/google_cloud_pubsub/default.nix
index 54221f821dc9..774d494e71aa 100644
--- a/pkgs/development/python-modules/google_cloud_pubsub/default.nix
+++ b/pkgs/development/python-modules/google_cloud_pubsub/default.nix
@@ -10,11 +10,11 @@
 
 buildPythonPackage rec {
   pname = "google-cloud-pubsub";
-  version = "0.38.0";
+  version = "0.39.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0b0481fa61faf8143c3cffc9d3fbe757423a200fbddddcf27feb2c49e3c35e58";
+    sha256 = "4186386aec02752e982eeb1e399d76f1cf70eed56312934df04bfa68d8cfabf0";
   };
 
   checkInputs = [ pytest mock ];
diff --git a/pkgs/development/python-modules/google_cloud_redis/default.nix b/pkgs/development/python-modules/google_cloud_redis/default.nix
index 85aff0b19de4..4b574b859237 100644
--- a/pkgs/development/python-modules/google_cloud_redis/default.nix
+++ b/pkgs/development/python-modules/google_cloud_redis/default.nix
@@ -4,18 +4,19 @@
 , enum34
 , google_api_core
 , pytest
+, mock
 }:
 
 buildPythonPackage rec {
   pname = "google-cloud-redis";
-  version = "0.2.0";
+  version = "0.2.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "c0fa00cafbce3e9a0e35fb7f9d754ac70b450b6496c62c20bb3a1f500aeca9e4";
+    sha256 = "449fd11699f9ae23ec2ccf1b06681bb90b4c1788f82fbbf1ce1c1d2e77833eb1";
   };
 
-  checkInputs = [ pytest ];
+  checkInputs = [ pytest mock ];
   propagatedBuildInputs = [ enum34 google_api_core ];
 
   # requires old version of google-api-core (override)
diff --git a/pkgs/development/python-modules/google_cloud_resource_manager/default.nix b/pkgs/development/python-modules/google_cloud_resource_manager/default.nix
index a8182c5794db..fd67709dd375 100644
--- a/pkgs/development/python-modules/google_cloud_resource_manager/default.nix
+++ b/pkgs/development/python-modules/google_cloud_resource_manager/default.nix
@@ -9,11 +9,11 @@
 
 buildPythonPackage rec {
   pname = "google-cloud-resource-manager";
-  version = "0.28.1";
+  version = "0.28.3";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "fc29c11dcbe9208261d377185a1ae5331bab43f2a592222a25c8aca9c8031308";
+    sha256 = "5999f327bfa6692679e82690c3e61f11097bbbe3ecee370210625676bac605e6";
   };
 
   checkInputs = [ pytest mock ];
diff --git a/pkgs/development/python-modules/google_cloud_runtimeconfig/default.nix b/pkgs/development/python-modules/google_cloud_runtimeconfig/default.nix
index ef95391ebe01..c52440e0ee14 100644
--- a/pkgs/development/python-modules/google_cloud_runtimeconfig/default.nix
+++ b/pkgs/development/python-modules/google_cloud_runtimeconfig/default.nix
@@ -9,11 +9,11 @@
 
 buildPythonPackage rec {
   pname = "google-cloud-runtimeconfig";
-  version = "0.28.1";
+  version = "0.28.3";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "f441fbc22e2d0871ecb390854aa352cf467d2751cbc0dac7578274ead813519e";
+    sha256 = "8188a098c2c6603aa0cad50f8778a84a0f36a62062309a331a41271372fac798";
   };
 
   checkInputs = [ pytest mock ];
diff --git a/pkgs/development/python-modules/google_cloud_securitycenter/default.nix b/pkgs/development/python-modules/google_cloud_securitycenter/default.nix
index d1e03c40bce0..f9e4161d80d7 100644
--- a/pkgs/development/python-modules/google_cloud_securitycenter/default.nix
+++ b/pkgs/development/python-modules/google_cloud_securitycenter/default.nix
@@ -5,18 +5,19 @@
 , grpc_google_iam_v1
 , google_api_core
 , pytest
+, mock
 }:
 
 buildPythonPackage rec {
   pname = "google-cloud-securitycenter";
-  version = "0.1.0";
+  version = "0.1.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "6ef386ba065a167670ad1b67f15fb7ba9e21ce33579fa6d7fafafd5b970b3e8a";
+    sha256 = "11d19052c84dd8e5bc936f5276443e14c2a5ccaae031b2a39415a9f3832a1029";
   };
 
-  checkInputs = [ pytest ];
+  checkInputs = [ pytest mock ];
   propagatedBuildInputs = [ enum34 grpc_google_iam_v1 google_api_core ];
 
   checkPhase = ''
diff --git a/pkgs/development/python-modules/google_cloud_spanner/default.nix b/pkgs/development/python-modules/google_cloud_spanner/default.nix
index a4b72d0e4963..87f2915d6c50 100644
--- a/pkgs/development/python-modules/google_cloud_spanner/default.nix
+++ b/pkgs/development/python-modules/google_cloud_spanner/default.nix
@@ -11,11 +11,11 @@
 
 buildPythonPackage rec {
   pname = "google-cloud-spanner";
-  version = "1.6.0";
+  version = "1.7.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "f7140e1cb43fbf670521112f03822b63d15fbcbd2830c7cfa1b868836e04b6b4";
+    sha256 = "422a1bd5bded723151faeb4d1b1711f5776d2cc23d5c192cf53634eaf55c74aa";
   };
 
   checkInputs = [ pytest mock ];
diff --git a/pkgs/development/python-modules/google_cloud_speech/default.nix b/pkgs/development/python-modules/google_cloud_speech/default.nix
index 3054f618784b..81576ad8cc12 100644
--- a/pkgs/development/python-modules/google_cloud_speech/default.nix
+++ b/pkgs/development/python-modules/google_cloud_speech/default.nix
@@ -3,11 +3,11 @@
 
 buildPythonPackage rec {
   pname = "google-cloud-speech";
-  version = "0.36.0";
+  version = "0.36.3";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1jjicvf5r20ibhkkay0p6av8jifvp2wkdd8bs9vmhm4rwvcnlxbf";
+    sha256 = "3d77da6086c01375908c8b800808ff83748a34b98313f885bd86df95448304fc";
   };
 
   propagatedBuildInputs = [ google_api_core ];
diff --git a/pkgs/development/python-modules/google_cloud_storage/default.nix b/pkgs/development/python-modules/google_cloud_storage/default.nix
index 5784a641290d..d59f281c59ad 100644
--- a/pkgs/development/python-modules/google_cloud_storage/default.nix
+++ b/pkgs/development/python-modules/google_cloud_storage/default.nix
@@ -10,11 +10,11 @@
 
 buildPythonPackage rec {
   pname = "google-cloud-storage";
-  version = "1.13.0";
+  version = "1.13.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "fc32b9be41a45016ba2387e3ad23e70ccba399d626ef596409316f7cee477956";
+    sha256 = "f8884619fed4c77234c7293939be5a696869f61a5dc2ca47193cff630cee179f";
   };
 
   checkInputs = [ pytest mock ];
diff --git a/pkgs/development/python-modules/google_cloud_tasks/default.nix b/pkgs/development/python-modules/google_cloud_tasks/default.nix
index 5981dc7d0d3a..2036b9aea97a 100644
--- a/pkgs/development/python-modules/google_cloud_tasks/default.nix
+++ b/pkgs/development/python-modules/google_cloud_tasks/default.nix
@@ -5,18 +5,19 @@
 , grpc_google_iam_v1
 , google_api_core
 , pytest
+, mock
 }:
 
 buildPythonPackage rec {
   pname = "google-cloud-tasks";
-  version = "0.3.0";
+  version = "0.4.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "f874a7aabad225588263c6cbcd4d67455cc682ebb6d9f00bd06c8d2d5673b4db";
+    sha256 = "3c5f26dd3750f9b222a69c37e85ee1acf198456dfebe1e0058f366dd27729559";
   };
 
-  checkInputs = [ pytest ];
+  checkInputs = [ pytest mock ];
   propagatedBuildInputs = [ enum34 grpc_google_iam_v1 google_api_core ];
 
   checkPhase = ''
diff --git a/pkgs/development/python-modules/google_cloud_texttospeech/default.nix b/pkgs/development/python-modules/google_cloud_texttospeech/default.nix
index d3249d9d344d..c2bf189c2375 100644
--- a/pkgs/development/python-modules/google_cloud_texttospeech/default.nix
+++ b/pkgs/development/python-modules/google_cloud_texttospeech/default.nix
@@ -3,18 +3,19 @@
 , fetchPypi
 , google_api_core
 , pytest
+, mock
 }:
 
 buildPythonPackage rec {
   pname = "google-cloud-texttospeech";
-  version = "0.2.0";
+  version = "0.3.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "6064bc6e2761694b708878ff3d5902c6ce5eb44a770a921e7a99caf6c2533ae3";
+    sha256 = "39d2c83ee198ec1995c03faf5d557089e7027a8356802302dee08b18380c8250";
   };
 
-  checkInputs = [ pytest ];
+  checkInputs = [ pytest mock ];
   propagatedBuildInputs = [ google_api_core ];
 
   checkPhase = ''
diff --git a/pkgs/development/python-modules/google_cloud_trace/default.nix b/pkgs/development/python-modules/google_cloud_trace/default.nix
index cc8829ebfb3b..99fed298c1d3 100644
--- a/pkgs/development/python-modules/google_cloud_trace/default.nix
+++ b/pkgs/development/python-modules/google_cloud_trace/default.nix
@@ -9,11 +9,11 @@
 
 buildPythonPackage rec {
   pname = "google-cloud-trace";
-  version = "0.19.0";
+  version = "0.20.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "2cb774498e90143a9565dd50e2814b6b0292242a53b8804a1a529989e18b7461";
+    sha256 = "2129e736d5a21242a4840dc4b494720feb51edd6fafdc12cd6da4b0cb24e5295";
   };
 
   checkInputs = [ pytest mock ];
diff --git a/pkgs/development/python-modules/google_cloud_translate/default.nix b/pkgs/development/python-modules/google_cloud_translate/default.nix
index 842a145a3f4c..01caeed4866a 100644
--- a/pkgs/development/python-modules/google_cloud_translate/default.nix
+++ b/pkgs/development/python-modules/google_cloud_translate/default.nix
@@ -9,11 +9,11 @@
 
 buildPythonPackage rec {
   pname = "google-cloud-translate";
-  version = "1.3.1";
+  version = "1.3.3";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "4420f5b320145bf097ca9a12b18ec27c067886e2832d181f268c46c3bcb0d2e4";
+    sha256 = "0f204a1cc95bcd708102ad86665da2dff53c1b9f47d490506e45cc96c93978ad";
   };
 
   checkInputs = [ pytest mock ];
diff --git a/pkgs/development/python-modules/google_cloud_videointelligence/default.nix b/pkgs/development/python-modules/google_cloud_videointelligence/default.nix
index 056dd8991ef1..2da82fc4933b 100644
--- a/pkgs/development/python-modules/google_cloud_videointelligence/default.nix
+++ b/pkgs/development/python-modules/google_cloud_videointelligence/default.nix
@@ -3,18 +3,19 @@
 , fetchPypi
 , google_api_core
 , pytest
+, mock
 }:
 
 buildPythonPackage rec {
   pname = "google-cloud-videointelligence";
-  version = "1.5.0";
+  version = "1.6.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "bd0abc18070520fd5757b15356e8483149e1caebbe43019257ccb2c43cddbbbe";
+    sha256 = "382ec37eab72b37571a2a76ad25c9dda51744dbff76ad9a85cc3791fee0c96ef";
   };
 
-  checkInputs = [ pytest ];
+  checkInputs = [ pytest mock ];
   propagatedBuildInputs = [ google_api_core ];
 
   checkPhase = ''
diff --git a/pkgs/development/python-modules/google_cloud_vision/default.nix b/pkgs/development/python-modules/google_cloud_vision/default.nix
index da01147f6451..aabc73f571c0 100644
--- a/pkgs/development/python-modules/google_cloud_vision/default.nix
+++ b/pkgs/development/python-modules/google_cloud_vision/default.nix
@@ -9,11 +9,11 @@
 
 buildPythonPackage rec {
   pname = "google-cloud-vision";
-  version = "0.35.1";
+  version = "0.35.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0hx80q8rcgs0kvhv0xix2dhr3n19abac4sj4k5pfqxh6qzdxm3d8";
+    sha256 = "25b537d4b76305e9758fe2f57fd5929a04bf3a46cb4e8d0f731e984f46405be8";
   };
 
   checkInputs = [ pytest mock ];
diff --git a/pkgs/development/python-modules/google_cloud_websecurityscanner/default.nix b/pkgs/development/python-modules/google_cloud_websecurityscanner/default.nix
index 5a12be2ae557..afe1f1db11ac 100644
--- a/pkgs/development/python-modules/google_cloud_websecurityscanner/default.nix
+++ b/pkgs/development/python-modules/google_cloud_websecurityscanner/default.nix
@@ -3,18 +3,19 @@
 , fetchPypi
 , google_api_core
 , pytest
+, mock
 }:
 
 buildPythonPackage rec {
   pname = "google-cloud-websecurityscanner";
-  version = "0.1.0";
+  version = "0.1.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "d41a9e1a093862aa1b181fa7fdc2a94e185eb4a8f290dbdb928bc9ebd253a95f";
+    sha256 = "d965d986053b49e4005b6b6cdf035d7dd4a3b64dcfb6325050b70c97831f8d6f";
   };
 
-  checkInputs = [ pytest ];
+  checkInputs = [ pytest mock ];
   propagatedBuildInputs = [ google_api_core ];
 
   checkPhase = ''
diff --git a/pkgs/development/python-modules/google_resumable_media/default.nix b/pkgs/development/python-modules/google_resumable_media/default.nix
index 430945e6dfdb..096f93b017f4 100644
--- a/pkgs/development/python-modules/google_resumable_media/default.nix
+++ b/pkgs/development/python-modules/google_resumable_media/default.nix
@@ -9,11 +9,11 @@
 
 buildPythonPackage rec {
   pname = "google-resumable-media";
-  version = "0.3.1";
+  version = "0.3.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "97de518f8166d442cc0b61fab308bcd319dbb970981e667ec8ded44f5ce49836";
+    sha256 = "3e38923493ca0d7de0ad91c31acfefc393c78586db89364e91cb4f11990e51ba";
   };
 
   checkInputs = [ pytest mock ];
diff --git a/pkgs/development/python-modules/googleapis_common_protos/default.nix b/pkgs/development/python-modules/googleapis_common_protos/default.nix
index 51e3810cc7ff..cc689acc48fb 100644
--- a/pkgs/development/python-modules/googleapis_common_protos/default.nix
+++ b/pkgs/development/python-modules/googleapis_common_protos/default.nix
@@ -3,11 +3,11 @@
 
 buildPythonPackage rec {
   pname = "googleapis-common-protos";
-  version = "1.5.5";
+  version = "1.5.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0946967c4c29b1339bb211949e1e17dbe0ae9ff8265fafa7bf4cf2164ef5a3b1";
+    sha256 = "6de6de98e895f4266caefa768778533bdea98abbead6972d35c8a0f57409eea2";
   };
 
   propagatedBuildInputs = [ protobuf ];
diff --git a/pkgs/development/python-modules/gprof2dot/default.nix b/pkgs/development/python-modules/gprof2dot/default.nix
new file mode 100644
index 000000000000..ed48842496c0
--- /dev/null
+++ b/pkgs/development/python-modules/gprof2dot/default.nix
@@ -0,0 +1,20 @@
+{ lib, fetchFromGitHub, buildPythonApplication }:
+
+buildPythonApplication {
+  name = "gprof2dot-2017-09-19";
+
+  src = fetchFromGitHub {
+    owner = "jrfonseca";
+    repo = "gprof2dot";
+    rev = "2017.09.19";
+    sha256 = "1b5wvjv5ykbhz7aix7l3y7mg1hxi0vgak4a49gr92sdlz8blj51v";
+  };
+
+  meta = with lib; {
+    homepage = https://github.com/jrfonseca/gprof2dot;
+    description = "Python script to convert the output from many profilers into a dot graph";
+    license = licenses.lgpl3Plus;
+    platforms = platforms.linux;
+    maintainers = [ maintainers.pmiddend ];
+  };
+}
diff --git a/pkgs/development/python-modules/grammalecte/default.nix b/pkgs/development/python-modules/grammalecte/default.nix
index 67f2e0bb1852..01c052bfdce8 100644
--- a/pkgs/development/python-modules/grammalecte/default.nix
+++ b/pkgs/development/python-modules/grammalecte/default.nix
@@ -7,25 +7,22 @@
 
 buildPythonPackage rec {
   pname = "grammalecte";
-  version = "0.6.1";
+  version = "0.6.5";
 
   src = fetchurl {
     url = "http://www.dicollecte.org/grammalecte/zip/Grammalecte-fr-v${version}.zip";
-    sha256 = "0y2ck6pkd2p3cbjlxxvz3x5rnbg3ghfx97n13302rnab66cy4zkh";
+    sha256 = "11byjs3ggdhia5f4vyfqfvbbczsfqimll98h98g7hlsrm7vrifb0";
   };
 
   propagatedBuildInputs = [ bottle ];
 
   preBuild = "cd ..";
-  postInstall = ''
-    rm $out/bin/bottle.py
-  '';
 
   disabled = !isPy3k;
 
   meta = {
     description = "Grammalecte is an open source grammar checker for the French language";
-    homepage = https://dicollecte.org/grammalecte/;
+    homepage = https://grammalecte.net;
     license = with lib.licenses; [ gpl3 ];
     maintainers = with lib.maintainers; [ apeyroux ];
   };
diff --git a/pkgs/development/python-modules/grandalf/default.nix b/pkgs/development/python-modules/grandalf/default.nix
new file mode 100644
index 000000000000..79413b26544f
--- /dev/null
+++ b/pkgs/development/python-modules/grandalf/default.nix
@@ -0,0 +1,41 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, pyparsing
+, future
+, pytest
+, pytestrunner
+}:
+
+buildPythonPackage rec {
+  pname = "grandalf";
+  version = "0.6";
+
+  # fetch from github to acquire tests
+  src = fetchFromGitHub {
+    owner = "bdcht";
+    repo = "grandalf";
+    rev = "v${version}";
+    sha256 = "1f1l288sqna0bca7dwwvyw7wzg9b2613g6vc0g0vfngm7k75b2jg";
+  };
+
+  propagatedBuildInputs = [
+    pyparsing
+    future
+  ];
+
+  checkInputs = [ pytest pytestrunner ];
+
+  patches = [ ./no-setup-requires-pytestrunner.patch ];
+
+  checkPhase = ''
+    pytest tests
+  '';
+
+  meta = with lib; {
+    description = "A python package made for experimentations with graphs and drawing algorithms";
+    homepage = https://github.com/bdcht/grandalf;
+    license = licenses.gpl2;
+    maintainers = with maintainers; [ cmcdragonkai ];
+  };
+}
diff --git a/pkgs/development/python-modules/grandalf/no-setup-requires-pytestrunner.patch b/pkgs/development/python-modules/grandalf/no-setup-requires-pytestrunner.patch
new file mode 100644
index 000000000000..80e12e246ebb
--- /dev/null
+++ b/pkgs/development/python-modules/grandalf/no-setup-requires-pytestrunner.patch
@@ -0,0 +1,15 @@
+diff --git a/setup.py b/setup.py
+index 0470622..d574ceb 100755
+--- a/setup.py
++++ b/setup.py
+@@ -75,8 +75,8 @@ setup(
+     # your project is installed. For an analysis of "install_requires" vs pip's
+     # requirements files see:
+     # https://packaging.python.org/en/latest/requirements.html
+-    setup_requires=['pytest-runner',],
+-    tests_require=['pytest',],
++    setup_requires=[],
++    tests_require=['pytest','pytest-runner',],
+ 
+     install_requires=['pyparsing','future'],
+ 
diff --git a/pkgs/development/python-modules/graphite-web/default.nix b/pkgs/development/python-modules/graphite-web/default.nix
index 229e35b6ca47..f49ebc3fb5d9 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.19"
 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.4";
+  version = "1.1.5";
 
   disabled = isPy3k;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "4430929f954998d77aa0a61246c62d64a00a2f9464320f9a462294dd3448e522";
+    sha256 = "d43945d190f2b3a6d18daa6ace9a1bd3695e93dc593f50cd72c2af420883b99d";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/gsd/default.nix b/pkgs/development/python-modules/gsd/default.nix
index 6f07725520fa..04dc793a7175 100644
--- a/pkgs/development/python-modules/gsd/default.nix
+++ b/pkgs/development/python-modules/gsd/default.nix
@@ -5,12 +5,12 @@
 }:
 
 buildPythonPackage rec {
-  version = "1.5.4";
+  version = "1.5.5";
   pname = "gsd";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1p1akwirxq809apxia6b9ndalpdfgv340ssnli78h74bkqnw1376";
+    sha256 = "b80487a8269ba55201390353fd46d1904ec16f5488c8daaf7ff87154e09cca42";
   };
 
   propagatedBuildInputs = [ numpy ];
diff --git a/pkgs/development/python-modules/guestfs/default.nix b/pkgs/development/python-modules/guestfs/default.nix
new file mode 100644
index 000000000000..238a1e9980bd
--- /dev/null
+++ b/pkgs/development/python-modules/guestfs/default.nix
@@ -0,0 +1,20 @@
+{ stdenv, buildPythonPackage, fetchurl, libguestfs, qemu }:
+
+buildPythonPackage rec {
+  pname = "guestfs";
+  version = "1.40.1";
+
+  src = fetchurl {
+    url = "http://download.libguestfs.org/python/guestfs-${version}.tar.gz";
+    sha256 = "06a4b5xf1rkhnzfvck91n0z9mlkrgy90s9na5a8da2g4p776lhkf";
+  };
+
+  propagatedBuildInputs = [ libguestfs qemu ];
+
+  meta = with stdenv.lib; {
+    homepage = "http://libguestfs.org/guestfs-python.3.html";
+    description = "Use libguestfs from Python";
+    license = licenses.lgpl2Plus;
+    maintainers = with maintainers; [ grahamc ];
+  };
+}
diff --git a/pkgs/development/python-modules/homeassistant-pyozw/default.nix b/pkgs/development/python-modules/homeassistant-pyozw/default.nix
index a0861b0cffd9..3292770a661e 100644
--- a/pkgs/development/python-modules/homeassistant-pyozw/default.nix
+++ b/pkgs/development/python-modules/homeassistant-pyozw/default.nix
@@ -2,12 +2,12 @@
 
 python_openzwave.overridePythonAttrs (oldAttrs: rec {
   pname = "homeassistant_pyozw";
-  version = "0.1.1";
+  version = "0.1.2";
 
   src = fetchPypi {
     inherit pname version;
     extension = "zip";
-    sha256 = "136582d1b948168991af8ba1011304684834a4a61a6588e1c1f70b439b6f2483";
+    sha256 = "d64389f294b1fdee57adf78cd25ba45c9095facec3d80120182bbf8ba1fcdf05";
   };
 
   meta.homepage = https://github.com/home-assistant/python-openzwave;
diff --git a/pkgs/development/python-modules/httmock/default.nix b/pkgs/development/python-modules/httmock/default.nix
index b50753c55864..53447544ca92 100644
--- a/pkgs/development/python-modules/httmock/default.nix
+++ b/pkgs/development/python-modules/httmock/default.nix
@@ -2,13 +2,13 @@
 
 buildPythonPackage rec {
   pname   = "httmock";
-  version = "1.2.6";
+  version = "1.3.0";
 
   src = fetchFromGitHub {
     owner = "patrys";
     repo = "httmock";
     rev = version;
-    sha256 = "0iya8qsb2jm03s9p6sf1yzgm1irxl3dcq0k0a9ygl0skzjz5pvab";
+    sha256 = "1dy7pjq4gz476jcnbbpzk8w8qxr9l8wwgw9x2c7lf6fzsgnf404q";
   };
 
   checkInputs = [ requests ];
diff --git a/pkgs/development/python-modules/httpretty/default.nix b/pkgs/development/python-modules/httpretty/default.nix
index 56898b3bf874..1bcf892cbf47 100644
--- a/pkgs/development/python-modules/httpretty/default.nix
+++ b/pkgs/development/python-modules/httpretty/default.nix
@@ -11,6 +11,8 @@
 , urllib3
 , rednose
 , nose-randomly
+, six
+, mock
 }:
 
 buildPythonPackage rec {
@@ -22,8 +24,13 @@ buildPythonPackage rec {
     sha256 = "01b52d45077e702eda491f4fe75328d3468fd886aed5dcc530003e7b2b5939dc";
   };
 
-  checkInputs = [ tornado requests httplib2 sure nose nose-randomly rednose coverage certifi ];
-  propagatedBuildInputs = [ urllib3 ];
+  checkInputs = [ nose sure coverage mock rednose
+  # Following not declared in setup.py
+    nose-randomly requests tornado httplib2
+  ];
+  propagatedBuildInputs = [ six ];
+
+  __darwinAllowLocalNetworking = true;
 
   meta = with stdenv.lib; {
     homepage = "https://falcao.it/HTTPretty/";
diff --git a/pkgs/development/python-modules/httpsig/default.nix b/pkgs/development/python-modules/httpsig/default.nix
index cff72de36077..24ba9be13822 100644
--- a/pkgs/development/python-modules/httpsig/default.nix
+++ b/pkgs/development/python-modules/httpsig/default.nix
@@ -8,11 +8,11 @@
 
 buildPythonPackage rec {
   pname = "httpsig";
-  version = "1.2.0";
+  version = "1.3.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "19ng7y7blp13z081z5a6dxng1p8xlih7g6frmsg3q5ri8lvpybc7";
+    sha256 = "1rkc3zwsq53rjsmc47335m4viljiwdbmw3y2zry4z70j8q1dbmki";
   };
 
   buildInputs = [ setuptools_scm ];
diff --git a/pkgs/development/python-modules/hupper/default.nix b/pkgs/development/python-modules/hupper/default.nix
index 1715e6eeb453..c0e4c4ec9e85 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.4.1";
+  version = "1.4.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "17dd6f59e7cd52166302b2a6a3112e03fb4612eaff9bb19cd0603cf67e03c5cf";
+    sha256 = "eb3778398658a011c96e620adcd73175f306f880a6d86b2ebb6d2a15a74b6b9b";
   };
 
   checkPhase = ''
diff --git a/pkgs/development/python-modules/hvac/default.nix b/pkgs/development/python-modules/hvac/default.nix
index 340ba83567c2..4eda2d864c83 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.7.0";
+  version = "0.7.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "4fc3ca6b463200da5186a520ba7f6ce6d2873f9df0139e326665e9ea22514db3";
+    sha256 = "773775fa827c74299abd96079eeeeb0cefbb23b484195c03cff27d04716539ba";
   };
 
   propagatedBuildInputs = [ requests ];
diff --git a/pkgs/development/python-modules/identify/default.nix b/pkgs/development/python-modules/identify/default.nix
index 1d6b1ed0b193..991edee90e55 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.7";
+  version = "1.1.8";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "5e956558a9a1e3b3891d7c6609fc9709657a11878af288ace484d1a46a93922b";
+    sha256 = "08826e68e39e7de53cc2ddd8f6228a4e463b4bacb20565e5301c3ec690e68d27";
   };
 
   # Tests not included in PyPI tarball
diff --git a/pkgs/development/python-modules/imgaug/default.nix b/pkgs/development/python-modules/imgaug/default.nix
index 08f1d49d8c6c..678614912a80 100644
--- a/pkgs/development/python-modules/imgaug/default.nix
+++ b/pkgs/development/python-modules/imgaug/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "imgaug";
-  version = "0.2.6";
+  version = "0.2.7";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1wy8ydkqq0jrwxwdv04q89n3gwsr9pjaspsbw26ipg5a5lnhb9c2";
+    sha256 = "7ca6bce4dcfd3e40330b593fe8e55018bf475983cc6777f8ebf5422c722fffb8";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/immutables/default.nix b/pkgs/development/python-modules/immutables/default.nix
index 64fc707b8fd8..5662f8896cc3 100644
--- a/pkgs/development/python-modules/immutables/default.nix
+++ b/pkgs/development/python-modules/immutables/default.nix
@@ -2,12 +2,12 @@
 
 buildPythonPackage rec {
   pname = "immutables";
-  version = "0.6";
+  version = "0.9";
   disabled = pythonOlder "3.5";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "63023fa0cceedc62e0d1535cd4ca7a1f6df3120a6d8e5c34e89037402a6fd809";
+    sha256 = "1h7i00x6sdbw62rdipp0kaw1mcrvfipxv0054x1n2r4q4j11q7fp";
   };
 
   meta = {
diff --git a/pkgs/development/python-modules/imutils/default.nix b/pkgs/development/python-modules/imutils/default.nix
index 4afdb1a1dc9c..c5530d7c1d09 100644
--- a/pkgs/development/python-modules/imutils/default.nix
+++ b/pkgs/development/python-modules/imutils/default.nix
@@ -5,12 +5,12 @@
 }:
 
 buildPythonPackage rec {
-  version = "0.5.1";
+  version = "0.5.2";
   pname = "imutils";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "37d17adc9e71386c59b28f4ef5972ef6fe0023714fa1a652b8edc83f7ce0654c";
+    sha256 = "1d2bdf373e3e6cfbdc113d4e91547d3add3774d8722c8d4f225fa39586fb8076";
   };
 
   propagatedBuildInputs = [ opencv3 ];
diff --git a/pkgs/development/python-modules/iptools/default.nix b/pkgs/development/python-modules/iptools/default.nix
index e5c5d298b431..6b33edfca3c7 100644
--- a/pkgs/development/python-modules/iptools/default.nix
+++ b/pkgs/development/python-modules/iptools/default.nix
@@ -5,12 +5,12 @@
 }:
 
 buildPythonPackage rec {
-  version = "0.6.1";
+  version = "0.7.0";
   pname = "iptools";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0f03875a5bed740ba4bf44decb6a78679cca914a1ee8a6cc468114485c4d98e3";
+    sha256 = "1sp2v76qqsgqjk0vqfbm2s4sc4mi0gkkpzjnvwih3ymmidilz2hi";
   };
 
   buildInputs = [ nose ];
diff --git a/pkgs/development/python-modules/irc/default.nix b/pkgs/development/python-modules/irc/default.nix
index 99f8d19b350b..672704249dc9 100644
--- a/pkgs/development/python-modules/irc/default.nix
+++ b/pkgs/development/python-modules/irc/default.nix
@@ -1,4 +1,4 @@
-{ buildPythonPackage, fetchPypi
+{ buildPythonPackage, fetchPypi, isPy3k
 , six, jaraco_logging, jaraco_text, jaraco_stream, pytz, jaraco_itertools
 , setuptools_scm }:
 
@@ -6,6 +6,8 @@ buildPythonPackage rec {
   pname = "irc";
   version = "17.0";
 
+  disabled = !isPy3k;
+
   src = fetchPypi {
     inherit pname version;
     sha256 = "f9c5fcb72dd230e1387fd4a0114a1935605e0f59ac09dec962313baed74e1365";
diff --git a/pkgs/development/python-modules/isbnlib/default.nix b/pkgs/development/python-modules/isbnlib/default.nix
new file mode 100644
index 000000000000..012bab56ab6e
--- /dev/null
+++ b/pkgs/development/python-modules/isbnlib/default.nix
@@ -0,0 +1,31 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, nose
+, coverage
+}:
+
+buildPythonPackage rec {
+  pname = "isbnlib";
+  version = "3.9.5";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "f500a0561b83a2982d3424d640243d05bda9716f4fe9a655e331f3a07ca02710";
+  };
+
+  checkInputs = [
+    nose
+    coverage
+  ];
+
+  # requires network connection
+  doCheck = false;
+
+  meta = with lib; {
+    description = "Extract, clean, transform, hyphenate and metadata for ISBNs";
+    homepage = https://github.com/xlcnd/isbnlib;
+    license = licenses.lgpl3;
+    maintainers = with maintainers; [ dotlambda ];
+  };
+}
diff --git a/pkgs/development/python-modules/j2cli/default.nix b/pkgs/development/python-modules/j2cli/default.nix
index d8da0d8f1291..13af20ba79b9 100644
--- a/pkgs/development/python-modules/j2cli/default.nix
+++ b/pkgs/development/python-modules/j2cli/default.nix
@@ -9,12 +9,12 @@
 
 buildPythonPackage rec {
   pname = "j2cli";
-  version = "0.3.1-0";
+  version = "0.3.5.post1";
   disabled = isPy3k;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0y3w1x9935qzx8w6m2r6g4ghyjmxn33wryiif6xb56q7cj9w1433";
+    sha256 = "c0439a79308aae320bfd01d82b56893b02fe461195d8b69b438ba9b333075642";
   };
 
   buildInputs = [ nose ];
diff --git a/pkgs/development/python-modules/jaraco_classes/default.nix b/pkgs/development/python-modules/jaraco_classes/default.nix
index 35c70c3c0330..dadbb8104659 100644
--- a/pkgs/development/python-modules/jaraco_classes/default.nix
+++ b/pkgs/development/python-modules/jaraco_classes/default.nix
@@ -2,10 +2,10 @@
 
 buildPythonPackage rec {
   pname = "jaraco.classes";
-  version = "1.5";
+  version = "2.0";
   src = fetchPypi {
     inherit pname version;
-    sha256 = "002zsifikv6qwigkjlij7jhyvbwv6793m8h9ckbkx2jizmgc80fi";
+    sha256 = "1xfal9085bjh4fv57d6v9ibr5wf4llj73gp1ybdlqd2bralc9hnw";
   };
   doCheck = false;
   buildInputs = [ setuptools_scm ];
diff --git a/pkgs/development/python-modules/jaraco_itertools/default.nix b/pkgs/development/python-modules/jaraco_itertools/default.nix
index 22376b7e0cfc..249054581fab 100644
--- a/pkgs/development/python-modules/jaraco_itertools/default.nix
+++ b/pkgs/development/python-modules/jaraco_itertools/default.nix
@@ -1,14 +1,26 @@
-{ buildPythonPackage, fetchPypi, setuptools_scm
-, inflect, more-itertools, six }:
+{ lib, buildPythonPackage, fetchPypi, setuptools_scm
+, inflect, more-itertools, six, pytest, pytest-flake8 }:
 
 buildPythonPackage rec {
   pname = "jaraco.itertools";
-  version = "3.0.0";
+  version = "4.0.0";
+
   src = fetchPypi {
     inherit pname version;
-    sha256 = "19d8557a25c08f7a7b8f1cfa456ebfd615bafa0f045f89bbda55f99661b0626d";
+    sha256 = "1d09zpi593bhr56rwm41kzffr18wif98plgy6xdy0zrbdwfarrxl";
   };
-  doCheck = false;
+
   buildInputs = [ setuptools_scm ];
   propagatedBuildInputs = [ inflect more-itertools six ];
+  checkInputs = [ pytest pytest-flake8 ];
+
+  checkPhase = ''
+    pytest
+  '';
+
+  meta = with lib; {
+    description = "Tools for working with iterables";
+    homepage = https://github.com/jaraco/jaraco.itertools;
+    license = licenses.mit;
+  };
 }
diff --git a/pkgs/development/python-modules/jaraco_logging/default.nix b/pkgs/development/python-modules/jaraco_logging/default.nix
index 2aeb0dc3fa40..68fba6bfb5fb 100644
--- a/pkgs/development/python-modules/jaraco_logging/default.nix
+++ b/pkgs/development/python-modules/jaraco_logging/default.nix
@@ -1,14 +1,26 @@
-{ buildPythonPackage, fetchPypi, setuptools_scm
-, tempora, six }:
+{ lib, buildPythonPackage, fetchPypi, setuptools_scm
+, tempora, six, pytest, pytest-flake8 }:
 
 buildPythonPackage rec {
   pname = "jaraco.logging";
-  version = "1.5.2";
+  version = "2.0";
+
   src = fetchPypi {
     inherit pname version;
-    sha256 = "199pgwx9ziab3gxg6p0c24z8dp3bjpsvvshnmlph9zjsssq0xc93";
+    sha256 = "1lb846j7qs1hgqwkyifv51nhl3f8jimbc4lk8yn9nkaynw0vyzcg";
   };
-  doCheck = false;
+
   buildInputs = [ setuptools_scm ];
   propagatedBuildInputs = [ tempora six ];
+  checkInputs = [ pytest pytest-flake8 ];
+
+  checkPhase = ''
+    PYTHONPATH=".:$PYTHONPATH" pytest
+  '';
+
+  meta = with lib; {
+    description = "Support for Python logging facility";
+    homepage = https://github.com/jaraco/jaraco.logging;
+    license = licenses.mit;
+  };
 }
diff --git a/pkgs/development/python-modules/jedi/default.nix b/pkgs/development/python-modules/jedi/default.nix
index 1518bd1d9021..4f713e212f47 100644
--- a/pkgs/development/python-modules/jedi/default.nix
+++ b/pkgs/development/python-modules/jedi/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "jedi";
-  version = "0.13.1";
+  version = "0.13.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "b7493f73a2febe0dc33d51c99b474547f7f6c0b2c8fb2b21f453eef204c12148";
+    sha256 = "571702b5bd167911fe9036e5039ba67f820d6502832285cde8c881ab2b2149fd";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/jellyfish/default.nix b/pkgs/development/python-modules/jellyfish/default.nix
index c18b6c5cac47..5daa3c214964 100644
--- a/pkgs/development/python-modules/jellyfish/default.nix
+++ b/pkgs/development/python-modules/jellyfish/default.nix
@@ -1,17 +1,20 @@
 { lib
 , buildPythonPackage
 , fetchPypi
+, isPy3k
 , pytest
 , unicodecsv
 }:
 
 buildPythonPackage rec {
   pname = "jellyfish";
-  version = "0.6.1";
+  version = "0.7.1";
+
+  disabled = !isPy3k;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "5104e45a2b804b48a46a92a5e6d6e86830fe60ae83b1da32c867402c8f4c2094";
+    sha256 = "1hd1xzw22g1cp2dpf5bbpg8a7iac2v9hw0xrj5n5j83inh5n99br";
   };
 
   checkInputs = [ pytest unicodecsv ];
diff --git a/pkgs/development/python-modules/jenkinsapi/default.nix b/pkgs/development/python-modules/jenkinsapi/default.nix
index c45612adc0ed..70bf12a8f0cf 100644
--- a/pkgs/development/python-modules/jenkinsapi/default.nix
+++ b/pkgs/development/python-modules/jenkinsapi/default.nix
@@ -11,11 +11,11 @@
 
 buildPythonPackage rec {
   pname = "jenkinsapi";
-  version = "0.3.6";
+  version = "0.3.8";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "c46d231111fd661b733d417976e30a69f4e7fe6a8499bd59b4b3ea2a2504898c";
+    sha256 = "120adfc9cea83fb890744b5049c5bb7edc77699059f0da62db66354ec27c54e2";
   };
 
   propagatedBuildInputs = [ pytz requests ];
diff --git a/pkgs/development/python-modules/jq/default.nix b/pkgs/development/python-modules/jq/default.nix
new file mode 100644
index 000000000000..adcdd2b9d823
--- /dev/null
+++ b/pkgs/development/python-modules/jq/default.nix
@@ -0,0 +1,27 @@
+{ buildPythonPackage, fetchPypi, lib, cython, jq }:
+
+buildPythonPackage rec {
+  pname = "jq";
+  version = "0.1.6";
+
+  srcs = fetchPypi {
+    inherit pname version;
+    sha256 = "34bdf9f9e49e522e1790afc03f3584c6b57329215ea0567fb2157867d6d6f602";
+  };
+  patches = [ ./jq-py-setup.patch ];
+
+  nativeBuildInputs = [ cython ];
+
+  preBuild = ''
+    cython jq.pyx
+  '';
+
+  buildInputs = [ jq ];
+
+  meta = {
+    description = "Python bindings for jq, the flexible JSON processor";
+    homepage = "https://github.com/mwilliamson/jq.py";
+    license = lib.licenses.bsd2;
+    maintainers = with lib.maintainers; [ benley ];
+  };
+}
diff --git a/pkgs/development/python-modules/jq/jq-py-setup.patch b/pkgs/development/python-modules/jq/jq-py-setup.patch
new file mode 100644
index 000000000000..7d7d825e9f18
--- /dev/null
+++ b/pkgs/development/python-modules/jq/jq-py-setup.patch
@@ -0,0 +1,130 @@
+From 3f369cf8b9f7134d0792f6b141d39b5342a8274f Mon Sep 17 00:00:00 2001
+From: Benjamin Staffin <benley@gmail.com>
+Date: Mon, 14 Jan 2019 17:27:06 -0500
+Subject: [PATCH] Vastly simplify setup.py for distro compatibility
+
+---
+ setup.py | 81 +-------------------------------------------------------
+ 1 file changed, 1 insertion(+), 80 deletions(-)
+
+diff --git a/setup.py b/setup.py
+index 77933f2..2b71e25 100644
+--- a/setup.py
++++ b/setup.py
+@@ -1,10 +1,6 @@
+ #!/usr/bin/env python
+ 
+ import os
+-import platform
+-import subprocess
+-import tarfile
+-import shutil
+ 
+ try:
+     import sysconfig
+@@ -14,88 +10,15 @@ except ImportError:
+ 
+ from setuptools import setup
+ from distutils.extension import Extension
+-from distutils.command.build_ext import build_ext
+-
+-try:
+-    from urllib import urlretrieve
+-except ImportError:
+-    from urllib.request import urlretrieve
+-
+-def path_in_dir(relative_path):
+-    return os.path.abspath(os.path.join(os.path.dirname(__file__), relative_path))
+ 
+ def read(fname):
+     return open(os.path.join(os.path.dirname(__file__), fname)).read()
+ 
+ 
+-jq_lib_tarball_path = path_in_dir("_jq-lib-1.5.tar.gz")
+-jq_lib_dir = path_in_dir("jq-jq-1.5")
+-
+-oniguruma_lib_tarball_path = path_in_dir("_onig-5.9.6.tar.gz")
+-oniguruma_lib_build_dir = path_in_dir("onig-5.9.6")
+-oniguruma_lib_install_dir = path_in_dir("onig-install-5.9.6")
+-
+-class jq_build_ext(build_ext):
+-    def run(self):
+-        self._build_oniguruma()
+-        self._build_libjq()
+-        build_ext.run(self)
+-    
+-    def _build_oniguruma(self):
+-        self._build_lib(
+-            source_url="https://github.com/kkos/oniguruma/releases/download/v5.9.6/onig-5.9.6.tar.gz",
+-            tarball_path=oniguruma_lib_tarball_path,
+-            lib_dir=oniguruma_lib_build_dir,
+-            commands=[
+-                ["./configure", "CFLAGS=-fPIC", "--prefix=" + oniguruma_lib_install_dir],
+-                ["make"],
+-                ["make", "install"],
+-            ])
+-        
+-    
+-    def _build_libjq(self):
+-        self._build_lib(
+-            source_url="https://github.com/stedolan/jq/archive/jq-1.5.tar.gz",
+-            tarball_path=jq_lib_tarball_path,
+-            lib_dir=jq_lib_dir,
+-            commands=[
+-                ["autoreconf", "-i"],
+-                ["./configure", "CFLAGS=-fPIC", "--disable-maintainer-mode", "--with-oniguruma=" + oniguruma_lib_install_dir],
+-                ["make"],
+-            ])
+-        
+-    def _build_lib(self, source_url, tarball_path, lib_dir, commands):
+-        self._download_tarball(source_url, tarball_path)
+-
+-        macosx_deployment_target = sysconfig.get_config_var("MACOSX_DEPLOYMENT_TARGET")
+-        if macosx_deployment_target:
+-            os.environ['MACOSX_DEPLOYMENT_TARGET'] = macosx_deployment_target
+-
+-        def run_command(args):
+-            print("Executing: %s" % ' '.join(args))
+-            subprocess.check_call(args, cwd=lib_dir)
+-            
+-        for command in commands:
+-            run_command(command)
+-    
+-    def _download_tarball(self, source_url, tarball_path):
+-        if os.path.exists(tarball_path):
+-            os.unlink(tarball_path)
+-        urlretrieve(source_url, tarball_path)
+-        
+-        if os.path.exists(jq_lib_dir):
+-            shutil.rmtree(jq_lib_dir)
+-        tarfile.open(tarball_path, "r:gz").extractall(path_in_dir("."))
+-
+-
+ jq_extension = Extension(
+     "jq",
+     sources=["jq.c"],
+-    include_dirs=[jq_lib_dir],
+-    extra_objects=[
+-        os.path.join(jq_lib_dir, ".libs/libjq.a"),
+-        os.path.join(oniguruma_lib_install_dir, "lib/libonig.a"),
+-    ],
++    libraries=["jq"],
+ )
+ 
+ setup(
+@@ -107,7 +30,6 @@ setup(
+     url='http://github.com/mwilliamson/jq.py',
+     license='BSD 2-Clause',
+     ext_modules = [jq_extension],
+-    cmdclass={"build_ext": jq_build_ext},
+     classifiers=[
+         'Development Status :: 4 - Beta',
+         'Intended Audience :: Developers',
+@@ -123,4 +45,3 @@ setup(
+         'Programming Language :: Python :: 3.5',
+     ],
+ )
+-
+-- 
+2.19.2
+
diff --git a/pkgs/development/python-modules/jsbeautifier/default.nix b/pkgs/development/python-modules/jsbeautifier/default.nix
index fb9e859e0e84..9b2d3a5b832e 100644
--- a/pkgs/development/python-modules/jsbeautifier/default.nix
+++ b/pkgs/development/python-modules/jsbeautifier/default.nix
@@ -2,7 +2,7 @@
 
 buildPythonApplication rec {
   pname = "jsbeautifier";
-  version = "1.8.8";
+  version = "1.8.9";
 
   propagatedBuildInputs = [ six ];
 
@@ -10,7 +10,7 @@ buildPythonApplication rec {
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "98a29abef991f9f8f8fa67c32ccc07bee3d95ef7c8323e3560f6a5e83db7412a";
+    sha256 = "7d02baa9b0459bf9c5407c1b99ad5566de04a3b664b18a58ac64f52832034204";
   };
 
   meta = with lib; {
diff --git a/pkgs/development/python-modules/jsonref/default.nix b/pkgs/development/python-modules/jsonref/default.nix
index 03a2a63431b2..c174a011b5fa 100644
--- a/pkgs/development/python-modules/jsonref/default.nix
+++ b/pkgs/development/python-modules/jsonref/default.nix
@@ -10,7 +10,7 @@ buildPythonPackage rec {
     sha256 = "15v69rg2lkcykb2spnq6vbbirv9sfq480fnwmfppw9gn3h95pi7k";
   };
 
-  buildInputs = [ pytest mock ];
+  checkInputs = [ pytest mock ];
 
   checkPhase = ''
     py.test tests.py
diff --git a/pkgs/development/python-modules/jsonrpclib-pelix/default.nix b/pkgs/development/python-modules/jsonrpclib-pelix/default.nix
index 5e6d6ceab9b0..4697fb0c1133 100644
--- a/pkgs/development/python-modules/jsonrpclib-pelix/default.nix
+++ b/pkgs/development/python-modules/jsonrpclib-pelix/default.nix
@@ -5,11 +5,11 @@
 
 buildPythonPackage rec {
   pname = "jsonrpclib-pelix";
-  version = "0.3.2";
+  version = "0.4.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "14d288d1b3d3273cf96a729dd21a2470851c4962be8509f3dd62f0137ff90339";
+    sha256 = "1pimyq95w99ik5av96j0n9i6n12mr9kk0y28jnrq0555d7hmii8r";
   };
 
   doCheck = false; # test_suite="tests" in setup.py but no tests in pypi.
diff --git a/pkgs/development/python-modules/jsonschema/default.nix b/pkgs/development/python-modules/jsonschema/default.nix
index 1d8eab79688a..db6be9f99182 100644
--- a/pkgs/development/python-modules/jsonschema/default.nix
+++ b/pkgs/development/python-modules/jsonschema/default.nix
@@ -10,15 +10,17 @@ buildPythonPackage rec {
     sha256 = "00kf3zmpp9ya4sydffpifn0j0mzm342a2vzh82p6r0vh10cg7xbg";
   };
 
-  buildInputs = [ nose mock vcversioner ];
+  checkInputs = [ nose mock vcversioner ];
   propagatedBuildInputs = [ functools32 ];
 
-  patchPhase = ''
+  postPatch = ''
     substituteInPlace jsonschema/tests/test_jsonschema_test_suite.py \
-      --replace "python" "${python}/bin/${python.executable}"
+      --replace "python" "${python.pythonForBuild.interpreter}"
   '';
 
-  checkPhase = "nosetests";
+  checkPhase = ''
+    nosetests
+  '';
 
   meta = with stdenv.lib; {
     homepage = https://github.com/Julian/jsonschema;
diff --git a/pkgs/development/python-modules/jupyter_client/default.nix b/pkgs/development/python-modules/jupyter_client/default.nix
index 5ee99d5071f8..6d874b4bf9e5 100644
--- a/pkgs/development/python-modules/jupyter_client/default.nix
+++ b/pkgs/development/python-modules/jupyter_client/default.nix
@@ -16,11 +16,11 @@
 
 buildPythonPackage rec {
   pname = "jupyter_client";
-  version = "5.2.3";
+  version = "5.2.4";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "27befcf0446b01e29853014d6a902dd101ad7d7f94e2252b1adca17c3466b761";
+    sha256 = "b5f9cb06105c1d2d30719db5ffb3ea67da60919fb68deaefa583deccd8813551";
   };
 
   checkInputs = [ ipykernel ipython mock pytest ];
diff --git a/pkgs/development/python-modules/kaptan/default.nix b/pkgs/development/python-modules/kaptan/default.nix
index 425a3b29f13e..455f90a01644 100644
--- a/pkgs/development/python-modules/kaptan/default.nix
+++ b/pkgs/development/python-modules/kaptan/default.nix
@@ -6,20 +6,22 @@
 
 buildPythonPackage rec {
   pname = "kaptan";
-  version = "0.5.10";
+  version = "0.5.11";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "44df200d030975650a3a832c13b48cafdeb1a237b23de181d6a2346107e39da3";
+    sha256 = "8403d6e48200c3f49cb6d6b3dcb5898aa5ab9d820831655bf9a2403e00cd4207";
   };
 
   propagatedBuildInputs = [ pyyaml ];
 
+  # No tests in archive
+  doCheck = false;
+
   meta = with stdenv.lib; {
     description = "Configuration manager for python applications";
-    homepage = https://emre.github.io/kaptan/;
+    homepage = https://kaptan.readthedocs.io/;
     license = licenses.bsd3;
-    platforms = platforms.linux;
     maintainers = with maintainers; [ jgeerds ];
   };
 
diff --git a/pkgs/development/python-modules/keras-applications/default.nix b/pkgs/development/python-modules/keras-applications/default.nix
index a069c205144d..c6fdd21d2ebe 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.6";
+  version = "1.0.7";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "a03af60ddc9c5afdae4d5c9a8dd4ca857550e0b793733a5072e0725829b87017";
+    sha256 = "1yk9brcvr96s1slpgj9vr6np7fk8limcrw9v2pjq72c6k0mpnq30";
   };
 
   # 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 a57b6f7dfa38..9d6202337441 100644
--- a/pkgs/development/python-modules/keras-preprocessing/default.nix
+++ b/pkgs/development/python-modules/keras-preprocessing/default.nix
@@ -1,24 +1,32 @@
-{ lib, buildPythonPackage, fetchPypi, numpy, scipy, six }:
+{ lib, buildPythonPackage, fetchPypi, numpy, six, scipy, pillow, pytest, Keras }:
 
 buildPythonPackage rec {
   pname = "Keras_Preprocessing";
-  version = "1.0.5";
+  version = "1.0.8";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "ef2e482c4336fcf7180244d06f4374939099daa3183816e82aee7755af35b754";
+    sha256 = "6e669aa713727f0bc08f756616f64e0dfa75d822226cfc0dcf33297ab05cef7d";
   };
 
-  # Cyclic dependency: keras-preprocessing requires keras, which requires keras-preprocessing
-  postPatch = ''
-    sed -i "s/keras>=[^']*//" setup.py
+  propagatedBuildInputs = [
+    # required
+    numpy six
+    # optional
+    scipy pillow
+  ];
+
+  checkInputs = [
+    pytest Keras
+  ];
+
+  checkPhase = ''
+    py.test tests/
   '';
 
-  # No tests in PyPI tarball
+  # Cyclic dependency: keras-preprocessing's tests require Keras, which requires keras-preprocessing
   doCheck = false;
 
-  propagatedBuildInputs = [ numpy scipy six ];
-
   meta = with lib; {
     description = "Easy data preprocessing and data augmentation for deep learning models";
     homepage = https://github.com/keras-team/keras-preprocessing;
diff --git a/pkgs/development/python-modules/keras/default.nix b/pkgs/development/python-modules/keras/default.nix
index 83ef23282797..dde820876d81 100644
--- a/pkgs/development/python-modules/keras/default.nix
+++ b/pkgs/development/python-modules/keras/default.nix
@@ -25,14 +25,6 @@ buildPythonPackage rec {
     keras-applications keras-preprocessing
   ];
 
-  # Keras 2.2.2 expects older versions of keras_applications
-  # and keras_preprocessing. These substitutions can be removed
-  # for for the next Keras release.
-  postPatch = ''
-    substituteInPlace setup.py --replace "keras_applications==1.0.4" "keras_applications==1.0.5"
-    substituteInPlace setup.py --replace "keras_preprocessing==1.0.2" "keras_preprocessing==1.0.3"
-  '';
-
   # Couldn't get tests working
   doCheck = false;
 
diff --git a/pkgs/development/python-modules/kerberos/default.nix b/pkgs/development/python-modules/kerberos/default.nix
index 455368e58d47..3d581d763a54 100644
--- a/pkgs/development/python-modules/kerberos/default.nix
+++ b/pkgs/development/python-modules/kerberos/default.nix
@@ -1,7 +1,7 @@
 { stdenv
 , buildPythonPackage
 , fetchPypi
-, pkgs
+, kerberos
 }:
 
 buildPythonPackage rec {
@@ -13,7 +13,10 @@ buildPythonPackage rec {
     sha256 = "19663qxmma0i8bfbjc2iwy5hgq0g4pfb75r023v5dps68zfvffgh";
   };
 
-  buildInputs = [ pkgs.kerberos ];
+  nativeBuildInputs = [ kerberos ];
+
+  # No tests in archive
+  doCheck = false;
 
   meta = with stdenv.lib; {
     description = "Kerberos high-level interface";
diff --git a/pkgs/development/python-modules/keyrings-alt/default.nix b/pkgs/development/python-modules/keyrings-alt/default.nix
index 9564e4f37033..beccc2f06b89 100644
--- a/pkgs/development/python-modules/keyrings-alt/default.nix
+++ b/pkgs/development/python-modules/keyrings-alt/default.nix
@@ -4,11 +4,11 @@
 
 buildPythonPackage rec {
   pname = "keyrings.alt";
-  version = "3.1";
+  version = "3.1.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0nnva8g03dv6gdhjk1ihn2qw7g15232fyj8shipah9whgfv8d75m";
+    sha256 = "0lgp2d3hrpvbb2rfz18vrv5lrck72k3l2f2cpkbks2kigrfbgiqb";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/keyutils/default.nix b/pkgs/development/python-modules/keyutils/default.nix
index 907af4d250b3..a109659ebdde 100644
--- a/pkgs/development/python-modules/keyutils/default.nix
+++ b/pkgs/development/python-modules/keyutils/default.nix
@@ -2,14 +2,14 @@
 
 buildPythonPackage rec {
   pname = "keyutils";
-  version = "0.5";
+  version = "0.6";
 
   # github version comes bundled with tests
   src = fetchFromGitHub {
     owner = "sassoftware";
     repo = "python-keyutils";
-    rev = "v${version}";
-    sha256 = "1gga60w8sb3r5bxa0bfp7d7wzg6s3db5y7aizr14p2pvp92d8bdi";
+    rev = version;
+    sha256 = "0pfqfr5xqgsqkxzrmj8xl2glyl4nbq0irs0k6ik7iy3gd3mxf5g1";
   };
 
   buildInputs = [ keyutils ];
diff --git a/pkgs/development/python-modules/kombu/default.nix b/pkgs/development/python-modules/kombu/default.nix
index 7620ee944417..2a8c59be4204 100644
--- a/pkgs/development/python-modules/kombu/default.nix
+++ b/pkgs/development/python-modules/kombu/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
     pname = "kombu";
-    version = "4.2.1";
+    version = "4.2.2.post1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "86adec6c60f63124e2082ea8481bbe4ebe04fde8ebed32c177c7f0cd2c1c9082";
+    sha256 = "3c9dca2338c5d893f30c151f5d29bfb81196748ab426d33c362ab51f1e8dbf78";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/latexcodec/default.nix b/pkgs/development/python-modules/latexcodec/default.nix
index 3b639ee2afb9..785d9f1aa3ae 100644
--- a/pkgs/development/python-modules/latexcodec/default.nix
+++ b/pkgs/development/python-modules/latexcodec/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "latexcodec";
-  version = "1.0.5";
+  version = "1.0.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0zdd1gf24i83ykadx0y30n3001j43scqr2saql3vckk5c39dj1wn";
+    sha256 = "0s4wdbg0w2l8pj3i0y4510i0s04p8nhxcsa2z41bjsv0k66npb81";
   };
 
   propagatedBuildInputs = [ six ];
diff --git a/pkgs/development/python-modules/ldap3/default.nix b/pkgs/development/python-modules/ldap3/default.nix
index 73957df1d9d6..6fe52f885743 100644
--- a/pkgs/development/python-modules/ldap3/default.nix
+++ b/pkgs/development/python-modules/ldap3/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchPypi, fetchFromGitHub, buildPythonPackage, gssapi, pyasn1 }:
+{ stdenv, fetchPypi, fetchFromGitHub, buildPythonPackage, pyasn1 }:
 
 buildPythonPackage rec {
   version = "2.5.2";
@@ -17,8 +17,6 @@ buildPythonPackage rec {
     sha256 = "0p5l4bhy6j2nvvlxz5zvznbaqb72x791v9la2jr2wpwr60mzz9hw";
   };
 
-  buildInputs = [ gssapi ];
-
   propagatedBuildInputs = [ pyasn1 ];
 
   doCheck = false; # requires network
diff --git a/pkgs/development/python-modules/ledgerblue/default.nix b/pkgs/development/python-modules/ledgerblue/default.nix
index b0daaa0d1100..f3e030084d2f 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.21";
+  version = "0.1.22";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "f4fa7d062dcc124f032238030223363c7d85812272cd30afd09d49bb6a3256dc";
+    sha256 = "15206e92220d96512b357a9a740bc91b8b33b42b9164fe3b56c4c3aedf882cdc";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/libcloud/default.nix b/pkgs/development/python-modules/libcloud/default.nix
index 52cac7177803..e6a493f7b641 100644
--- a/pkgs/development/python-modules/libcloud/default.nix
+++ b/pkgs/development/python-modules/libcloud/default.nix
@@ -11,11 +11,11 @@
 
 buildPythonPackage rec {
   pname = "apache-libcloud";
-  version = "2.3.0";
+  version = "2.4.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0e2eee3802163bd0605975ed1e284cafc23203919bfa80c0cc5d3cd2543aaf97";
+    sha256 = "0daj3mkzw79v5zin2r1s2wkrz1hplfc16bwj4ss68i5qjq4l2p0j";
   };
 
   checkInputs = [ mock pytest pytestrunner requests-mock ];
diff --git a/pkgs/development/python-modules/libtmux/default.nix b/pkgs/development/python-modules/libtmux/default.nix
index 417baed95603..9d30033c58d5 100644
--- a/pkgs/development/python-modules/libtmux/default.nix
+++ b/pkgs/development/python-modules/libtmux/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "libtmux";
-  version = "0.8.0";
+  version = "0.8.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "2b969b507c26d9db08b85be4808d75774b6418ecf5a0f61956f7a1da44519585";
+    sha256 = "0al5qcvzcl4v70vngbv39jg422jsy0m1b5q9pp54cc7m9b666jax";
   };
 
   checkInputs = [ pytest ];
@@ -21,8 +21,6 @@ buildPythonPackage rec {
     description = "Scripting library for tmux";
     homepage = https://libtmux.readthedocs.io/;
     license = licenses.bsd3;
-    platforms = platforms.linux;
     maintainers = with maintainers; [ jgeerds ];
   };
 }
-
diff --git a/pkgs/development/python-modules/libusb1/default.nix b/pkgs/development/python-modules/libusb1/default.nix
index 8a9b5da68ef9..9b268686b8ff 100644
--- a/pkgs/development/python-modules/libusb1/default.nix
+++ b/pkgs/development/python-modules/libusb1/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "libusb1";
-  version = "1.6.6";
+  version = "1.7";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "a49917a2262cf7134396f6720c8be011f14aabfc5cdc53f880cc672c0f39d271";
+    sha256 = "03vylg5mdsxp2nyk8sm7yxmb470hcb92q263dfq8d6b9xp96ckwx";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/limitlessled/default.nix b/pkgs/development/python-modules/limitlessled/default.nix
new file mode 100644
index 000000000000..c2029aa6d6bd
--- /dev/null
+++ b/pkgs/development/python-modules/limitlessled/default.nix
@@ -0,0 +1,18 @@
+{ lib, buildPythonPackage, fetchPypi }:
+
+buildPythonPackage rec {
+  pname = "limitlessled";
+  version = "1.1.3";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "0pd71wxqjvznx10brsj1sgy3420bz7awbzk9jlj422rrdxql754j";
+  };
+
+  meta = with lib; {
+    description = "Control LimitlessLED products";
+    homepage = https://github.com/happyleavesaoc/python-limitlessled/;
+    license = licenses.mit;
+    maintainers = with maintainers; [ sephalon ];
+  };
+}
diff --git a/pkgs/development/python-modules/llfuse/default.nix b/pkgs/development/python-modules/llfuse/default.nix
index 78daa85ea806..7f9aa3fa2e48 100644
--- a/pkgs/development/python-modules/llfuse/default.nix
+++ b/pkgs/development/python-modules/llfuse/default.nix
@@ -4,29 +4,27 @@
 
 buildPythonPackage rec {
   pname = "llfuse";
-  version = "1.3.5";
+  version = "1.3.6";
   name = pname + "-" + version;
 
   src = fetchurl {
     url = "mirror://pypi/l/llfuse/${name}.tar.bz2";
-    sha256 = "6e412a3d9be69162d49b8a4d6fb3c343d1c1fba847f4535d229e0ece2548ead8";
+    sha256 = "1j9fzxpgmb4rxxyl9jcf84zvznhgi3hnh4hg5vb0qaslxkvng8ii";
   };
 
   nativeBuildInputs = [ pkgconfig ];
-  buildInputs = [ pytest fuse attr which ];
+  buildInputs = [ fuse ];
+  checkInputs = [ pytest attr which ];
 
   propagatedBuildInputs = [ contextlib2 ];
 
   checkPhase = ''
-    py.test
+    py.test -k "not test_listdir"
   '';
 
-  # FileNotFoundError: [Errno 2] No such file or directory: '/usr/bin'
-  doCheck = false;
-
   meta = with stdenv.lib; {
     description = "Python bindings for the low-level FUSE API";
-    homepage = https://code.google.com/p/python-llfuse/;
+    homepage = https://github.com/python-llfuse/python-llfuse;
     license = licenses.lgpl2Plus;
     platforms = platforms.unix;
     maintainers = with maintainers; [ bjornfor ];
diff --git a/pkgs/development/python-modules/llvmlite/default.nix b/pkgs/development/python-modules/llvmlite/default.nix
index b79527b87362..15e53dcffb2a 100644
--- a/pkgs/development/python-modules/llvmlite/default.nix
+++ b/pkgs/development/python-modules/llvmlite/default.nix
@@ -19,7 +19,8 @@ buildPythonPackage rec {
     sha256 = "fd64def9a51dd7dc61913a7a08eeba5b9785522740bec5a7c5995b2a90525025";
   };
 
-  propagatedBuildInputs = [ llvm ] ++ stdenv.lib.optional (pythonOlder "3.4") enum34;
+  nativeBuildInputs = [ llvm ];
+  propagatedBuildInputs = [ ] ++ stdenv.lib.optional (pythonOlder "3.4") enum34;
 
   # Disable static linking
   # https://github.com/numba/llvmlite/issues/93
diff --git a/pkgs/development/python-modules/logzero/default.nix b/pkgs/development/python-modules/logzero/default.nix
new file mode 100644
index 000000000000..098d9f3e06d8
--- /dev/null
+++ b/pkgs/development/python-modules/logzero/default.nix
@@ -0,0 +1,23 @@
+{ lib, buildPythonPackage, fetchPypi, pytest }:
+
+buildPythonPackage rec {
+  pname = "logzero";
+  version = "1.5.0";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "0hli2wgwxxackrk1ybmlpdd0rzms6blm11zzwlvrzykd8cp1xyil";
+  };
+
+  checkInputs = [ pytest ];
+  checkPhase = ''
+    pytest
+  '';
+
+  meta = with lib; {
+    homepage = https://github.com/metachris/logzero;
+    description = "Robust and effective logging for Python 2 and 3";
+    license = licenses.mit;
+    maintainers = with maintainers; [ jakewaksbaum ];
+  };
+}
diff --git a/pkgs/development/python-modules/lxml/default.nix b/pkgs/development/python-modules/lxml/default.nix
index 5672fce602e7..a37a22318ec5 100644
--- a/pkgs/development/python-modules/lxml/default.nix
+++ b/pkgs/development/python-modules/lxml/default.nix
@@ -7,13 +7,14 @@
 
 buildPythonPackage rec {
   pname = "lxml";
-  version = "4.2.5";
+  version = "4.2.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "36720698c29e7a9626a0dc802ef8885f8f0239bfd1689628ecd459a061f2807f";
+    sha256 = "7035d9361f3ceec9ccc1dd3482094d1174580e7e1bf6870b77ea758f7cad15d2";
   };
 
+  nativeBuildInputs = [ libxml2.dev libxslt.dev ];
   buildInputs = [ libxml2 libxslt ];
 
   hardeningDisable = stdenv.lib.optional stdenv.isDarwin "format";
diff --git a/pkgs/development/python-modules/m2crypto/default.nix b/pkgs/development/python-modules/m2crypto/default.nix
index b034d5d090ce..4cab8f47250f 100644
--- a/pkgs/development/python-modules/m2crypto/default.nix
+++ b/pkgs/development/python-modules/m2crypto/default.nix
@@ -1,4 +1,5 @@
 { stdenv
+, fetchpatch
 , buildPythonPackage
 , fetchPypi
 , swig2
@@ -16,6 +17,14 @@ buildPythonPackage rec {
     sha256 = "a1b2751cdadc6afac3df8a5799676b7b7c67a6ad144bb62d38563062e7cd3fc6";
   };
 
+  patches = [
+    (fetchpatch {
+      url = "https://github.com/void-linux/void-packages/raw/7946d12eb3d815e5ecd4578f1a6133d948694370/srcpkgs/python-M2Crypto/patches/libressl.patch";
+      sha256 = "0z5qnkndg6ma5f5qqrid5m95i9kybsr000v3fdy1ab562kf65a27";
+    })
+  ];
+  patchFlags = "-p0";
+
   buildInputs = [ swig2 openssl ];
 
   propagatedBuildInputs = [ typing ];
@@ -30,6 +39,7 @@ buildPythonPackage rec {
     description = "A Python crypto and SSL toolkit";
     homepage = http://chandlerproject.org/Projects/MeTooCrypto;
     license = licenses.mit;
+    maintainers = with maintainers; [ andrew-d ];
   };
 
 }
diff --git a/pkgs/development/python-modules/m2r/default.nix b/pkgs/development/python-modules/m2r/default.nix
index 8b1618515c82..612e2fd76b2c 100644
--- a/pkgs/development/python-modules/m2r/default.nix
+++ b/pkgs/development/python-modules/m2r/default.nix
@@ -2,11 +2,11 @@
   mistune, docutils } :
 buildPythonPackage rec {
   pname = "m2r";
-  version = "0.2.0";
+  version = "0.2.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "b64ee5ac870311a69967fe787be8607df67b02a329f0fc76c8bf477336a99c78";
+    sha256 = "bf90bad66cda1164b17e5ba4a037806d2443f2a4d5ddc9f6a5554a0322aaed99";
   };
 
   propagatedBuildInputs = [ mistune docutils ];
diff --git a/pkgs/development/python-modules/mail-parser/default.nix b/pkgs/development/python-modules/mail-parser/default.nix
index da74830f8798..42162d62aac4 100644
--- a/pkgs/development/python-modules/mail-parser/default.nix
+++ b/pkgs/development/python-modules/mail-parser/default.nix
@@ -2,14 +2,14 @@
 
 buildPythonPackage rec {
   pname = "mail-parser";
-  version = "3.4.1";
+  version = "3.9.2";
 
   # no tests in PyPI tarball
   src = fetchFromGitHub {
     owner = "SpamScope";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0nxilshq4gwpicdklja9p275yf8l5kr1lk620c3cx9w4qai4cmbv";
+    sha256 = "0f515a8r3qz3i2cm4lvs5aw59193jl9mk7bmaj9545n4miyar4nr";
   };
 
   LC_ALL = "en_US.utf-8";
diff --git a/pkgs/development/python-modules/mailman-rss/default.nix b/pkgs/development/python-modules/mailman-rss/default.nix
new file mode 100644
index 000000000000..afce4521d5b4
--- /dev/null
+++ b/pkgs/development/python-modules/mailman-rss/default.nix
@@ -0,0 +1,25 @@
+{ stdenv, python3Packages, withTwitter ? false}:
+
+python3Packages.buildPythonApplication rec {
+  pname = "mailman-rss";
+  version = "0.2.4";
+
+  src = python3Packages.fetchPypi {
+    inherit pname version;
+    sha256 = "1brrik70jyagxa9l0cfmlxvqpilwj1q655bphxnvjxyganxf4c00";
+  };
+
+  propagatedBuildInputs = with python3Packages; [ dateutil future requests beautifulsoup4 ]
+    ++ stdenv.lib.optional withTwitter python3Packages.twitter
+  ;
+
+  # No tests in Pypi Tarball
+  doCheck = false;
+
+  meta = with stdenv.lib; {
+    description = "Mailman archive -> rss converter";
+    homepage = https://github.com/kyamagu/mailman-rss;
+    license = licenses.mit;
+    maintainers = with maintainers; [ samueldr ];
+  };
+}
diff --git a/pkgs/development/python-modules/matplotlib/2.nix b/pkgs/development/python-modules/matplotlib/2.nix
index 129b864a241d..6334d2e4f793 100644
--- a/pkgs/development/python-modules/matplotlib/2.nix
+++ b/pkgs/development/python-modules/matplotlib/2.nix
@@ -1,6 +1,7 @@
 { stdenv, fetchPypi, python, buildPythonPackage, pycairo, backports_functools_lru_cache
 , which, cycler, dateutil, nose, numpy, pyparsing, sphinx, tornado, kiwisolver
 , freetype, libpng, pkgconfig, mock, pytz, pygobject3, functools32, subprocess32
+, fetchpatch
 , enableGhostscript ? false, ghostscript ? null, gtk3
 , enableGtk2 ? false, pygtk ? null, gobject-introspection
 , enableGtk3 ? false, cairo
@@ -47,9 +48,16 @@ buildPythonPackage rec {
     ++ stdenv.lib.optionals enableQt [ pyqt4 ]
     ++ stdenv.lib.optionals python.isPy2 [ functools32 subprocess32 ];
 
-  patches =
-    [ ./basedirlist.patch ] ++
-    stdenv.lib.optionals stdenv.isDarwin [ ./darwin-stdenv-2.2.3.patch ];
+  patches = [
+    ./basedirlist.patch
+
+    # https://github.com/matplotlib/matplotlib/pull/12478
+    (fetchpatch {
+      name = "numpy-1.16-compat.patch";
+      url = "https://github.com/matplotlib/matplotlib/commit/2980184d092382a40ab21f95b79582ffae6e19d6.patch";
+      sha256 = "1c0wj28zy8s5h6qiavx9zzbhlmhjwpzbc3fyyw9039mbnqk0spg2";
+    })
+  ] ++ stdenv.lib.optionals stdenv.isDarwin [ ./darwin-stdenv-2.2.3.patch ];
 
   # Matplotlib tries to find Tcl/Tk by opening a Tk window and asking the
   # corresponding interpreter object for its library paths. This fails if
diff --git a/pkgs/development/python-modules/matplotlib/default.nix b/pkgs/development/python-modules/matplotlib/default.nix
index 718eb2de4252..d4c8e970c501 100644
--- a/pkgs/development/python-modules/matplotlib/default.nix
+++ b/pkgs/development/python-modules/matplotlib/default.nix
@@ -35,13 +35,15 @@ buildPythonPackage rec {
 
   XDG_RUNTIME_DIR = "/tmp";
 
+  nativeBuildInputs = [ pkgconfig ];
+
   buildInputs = [ python which sphinx stdenv ]
     ++ stdenv.lib.optional enableGhostscript ghostscript
     ++ stdenv.lib.optional stdenv.isDarwin [ Cocoa ];
 
   propagatedBuildInputs =
     [ cycler dateutil nose numpy pyparsing tornado freetype kiwisolver
-      libpng pkgconfig mock pytz ]
+      libpng mock pytz ]
     ++ stdenv.lib.optional (pythonOlder "3.3") backports_functools_lru_cache
     ++ stdenv.lib.optional enableGtk2 pygtk
     ++ stdenv.lib.optionals enableGtk3 [ cairo pycairo gtk3 gobject-introspection pygobject3 ]
diff --git a/pkgs/development/python-modules/mautrix-appservice/default.nix b/pkgs/development/python-modules/mautrix-appservice/default.nix
new file mode 100644
index 000000000000..1420f1880a31
--- /dev/null
+++ b/pkgs/development/python-modules/mautrix-appservice/default.nix
@@ -0,0 +1,28 @@
+{ lib, buildPythonPackage, fetchPypi, aiohttp, future-fstrings, pythonOlder }:
+
+buildPythonPackage rec {
+  pname = "mautrix-appservice";
+  version = "0.3.7";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1615220f5bb75e2093ad1e30f4c2e1243499b0b20caef014fd73faadd3bfea6c";
+  };
+
+  propagatedBuildInputs = [
+    aiohttp
+    future-fstrings
+  ];
+
+  # No tests available
+  doCheck = false;
+
+  disabled = pythonOlder "3.5";
+
+  meta = with lib; {
+    homepage = https://github.com/tulir/mautrix-appservice-python;
+    description = "A Python 3 asyncio-based Matrix application service framework";
+    license = licenses.mit;
+    maintainers = with maintainers; [ nyanloutre ];
+  };
+}
diff --git a/pkgs/development/python-modules/mechanize/default.nix b/pkgs/development/python-modules/mechanize/default.nix
index 63a255c941c8..fa6ea72129f3 100644
--- a/pkgs/development/python-modules/mechanize/default.nix
+++ b/pkgs/development/python-modules/mechanize/default.nix
@@ -7,12 +7,12 @@
 
 buildPythonPackage rec {
   pname = "mechanize";
-  version = "0.3.7";
+  version = "0.4.0";
   disabled = isPy3k;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1licf3wiy21pncg8hkx58r7xj4ylrqa8jcfh9n4rh23rmykf2rpf";
+    sha256 = "15g58z3hy1pgi5sygpif28jyqj79iz4vw2mh5nxdydl4w20micvf";
   };
 
   propagatedBuildInputs = [ html5lib ];
diff --git a/pkgs/development/python-modules/memory_profiler/default.nix b/pkgs/development/python-modules/memory_profiler/default.nix
index cf976f06ff08..e0367e6c5051 100644
--- a/pkgs/development/python-modules/memory_profiler/default.nix
+++ b/pkgs/development/python-modules/memory_profiler/default.nix
@@ -4,11 +4,11 @@
 
 python.pkgs.buildPythonPackage rec {
   pname = "memory_profiler";
-  version = "0.54.0";
+  version = "0.55.0";
 
   src = python.pkgs.fetchPypi {
     inherit pname version;
-    sha256 = "06ld8h8mhm8pk0sv7fxgx0y2q8nri65qlh4vjbs0bq9j7yi44hyn";
+    sha256 = "1hdgh5f59bya079w4ahx4l0hf4gc5yvaz44irp5x57cj9hkpp92z";
   };
 
   propagatedBuildInputs = with python.pkgs; [
diff --git a/pkgs/development/python-modules/minimock/default.nix b/pkgs/development/python-modules/minimock/default.nix
index 71409785b77d..856f7b45adf4 100644
--- a/pkgs/development/python-modules/minimock/default.nix
+++ b/pkgs/development/python-modules/minimock/default.nix
@@ -13,9 +13,11 @@ buildPythonPackage rec {
     sha256 = "c88fa8a7120623f23990a7f086a9657f6ced09025a55e3be8649a30b4945441a";
   };
 
-  buildInputs = [ nose ];
+  checkInputs = [ nose ];
 
-  checkPhase = "./test";
+  checkPhase = ''
+    ./test
+  '';
 
   meta = with stdenv.lib; {
     description = "A minimalistic mocking library for python";
diff --git a/pkgs/development/python-modules/moderngl/default.nix b/pkgs/development/python-modules/moderngl/default.nix
new file mode 100644
index 000000000000..8040b80f88b8
--- /dev/null
+++ b/pkgs/development/python-modules/moderngl/default.nix
@@ -0,0 +1,32 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, isPy3k
+, libGL
+, libX11
+}:
+
+buildPythonPackage rec {
+  pname = "moderngl";
+  version = "5.5.0";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "0x8xblc3zybp7jw9cscpm4r5pmmilj9l4yi1rkxyf0y80kchlxq4";
+  };
+
+  disabled = !isPy3k;
+
+  buildInputs = [ libGL libX11 ];
+
+  # Tests need a display to run.
+  doCheck = false;
+
+  meta = with lib; {
+    homepage = https://github.com/cprogrammer1994/ModernGL;
+    description = "High performance rendering for Python 3";
+    license = licenses.mit;
+    platforms = platforms.linux; # should be mesaPlatforms, darwin build breaks.
+    maintainers = with maintainers; [ c0deaddict ];
+  };
+}
diff --git a/pkgs/development/python-modules/mozsvc/default.nix b/pkgs/development/python-modules/mozsvc/default.nix
index b7fed9e6ad98..a7b3984b912e 100644
--- a/pkgs/development/python-modules/mozsvc/default.nix
+++ b/pkgs/development/python-modules/mozsvc/default.nix
@@ -1,7 +1,6 @@
 { stdenv
 , buildPythonPackage
-, fetchgit
-, fetchurl
+, fetchFromGitHub
 , pyramid
 , simplejson
 , konfig
@@ -9,26 +8,22 @@
 
 buildPythonPackage rec {
   pname = "mozsvc";
-  version = "0.8";
+  version = "0.10";
 
-  src = fetchgit {
-    url = https://github.com/mozilla-services/mozservices.git;
-    rev = "refs/tags/${version}";
-    sha256 = "1zci2ikk83mf7va88c83dr6snfh4ddjqw0lsg3y29qk5nxf80vx2";
+  src = fetchFromGitHub {
+    owner = "mozilla-services";
+    repo = "mozservices";
+    rev = version;
+    sha256 = "0a0558g8j55pd1nnhnnf3k377jv6cah8lxb24v98rq8kxr5960cg";
   };
 
-  patches = stdenv.lib.singleton (fetchurl {
-    url = https://github.com/nbp/mozservices/commit/f86c0b0b870cd8f80ce90accde9e16ecb2e88863.diff;
-    sha256 = "1lnghx821f6dqp3pa382ka07cncdz7hq0mkrh44d0q3grvrlrp9n";
-  });
-
-  doCheck = false; # lazy packager
+  doCheck = false; # too many dependencies and conflicting versions; I (nadrieril) gave up
   propagatedBuildInputs = [ pyramid simplejson konfig ];
 
   meta = with stdenv.lib; {
     homepage = https://github.com/mozilla-services/mozservices;
     description = "Various utilities for Mozilla apps";
     license = licenses.mpl20;
+    maintainers = with maintainers; [ nadrieril ];
   };
-
 }
diff --git a/pkgs/development/python-modules/mrbob/default.nix b/pkgs/development/python-modules/mrbob/default.nix
index 6dbfa1fae603..388e0148d0a0 100644
--- a/pkgs/development/python-modules/mrbob/default.nix
+++ b/pkgs/development/python-modules/mrbob/default.nix
@@ -1,4 +1,4 @@
-{ buildPythonPackage, stdenv, glibcLocales, mock, nose, isPy3k, argparse, jinja2, six
+{ buildPythonPackage, stdenv, glibcLocales, mock, nose, isPy3k, jinja2, six
 , fetchPypi
 }:
 
@@ -18,7 +18,7 @@ buildPythonPackage rec {
     LC_ALL="en_US.UTF-8" nosetests
   '';
 
-  propagatedBuildInputs = [ argparse jinja2 six ];
+  propagatedBuildInputs = [ jinja2 six ];
 
   meta = with stdenv.lib; {
     homepage = https://github.com/domenkozar/mr.bob;
diff --git a/pkgs/development/python-modules/munkres/default.nix b/pkgs/development/python-modules/munkres/default.nix
index af69834dd6f6..a3d9e992cb30 100644
--- a/pkgs/development/python-modules/munkres/default.nix
+++ b/pkgs/development/python-modules/munkres/default.nix
@@ -1,19 +1,24 @@
 { stdenv
 , buildPythonPackage
-, fetchPypi
+, fetchFromGitHub
+, nose
 }:
 
 buildPythonPackage rec {
   pname = "munkres";
-  version = "1.0.6";
+  version = "1.0.12";
 
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "c78f803b9b776bfb20a25c9c7bb44adbf0f9202c2024d51aa5969d21e560208d";
+  # No sdist for 1.0.12, see https://github.com/bmc/munkres/issues/25
+  src = fetchFromGitHub {
+    owner = "bmc";
+    repo = pname;
+    rev = "release-${version}";
+    sha256 = "0m3rkn0z3ialndxmyg26xn081znna34i5maa1i4nkhy6nf0ixdjm";
   };
 
-  # error: invalid command 'test'
-  doCheck = false;
+  checkInputs = [ nose ];
+
+  checkPhase = "nosetests";
 
   meta = with stdenv.lib; {
     homepage = http://bmc.github.com/munkres/;
diff --git a/pkgs/development/python-modules/mwoauth/default.nix b/pkgs/development/python-modules/mwoauth/default.nix
index e9d43e9e2b6a..d22bd460f5f5 100644
--- a/pkgs/development/python-modules/mwoauth/default.nix
+++ b/pkgs/development/python-modules/mwoauth/default.nix
@@ -10,11 +10,11 @@
 
 buildPythonPackage rec {
   pname = "mwoauth";
-  version = "0.3.2";
+  version = "0.3.3";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1krqz755415z37z1znrc77vi4xyp5ys6fnq4zwcwixjjbzddpavj";
+    sha256 = "8a57a315732733240e9522d3c4e370cbdf2c045d00fe0dab433d6119fa09038f";
   };
 
   # package has no tests
diff --git a/pkgs/development/python-modules/mysql-connector/default.nix b/pkgs/development/python-modules/mysql-connector/default.nix
index 579fc4631f66..56c1ab227c8d 100644
--- a/pkgs/development/python-modules/mysql-connector/default.nix
+++ b/pkgs/development/python-modules/mysql-connector/default.nix
@@ -4,13 +4,13 @@
 
 buildPythonPackage rec {
   pname = "mysql-connector";
-  version = "8.0.13";
+  version = "8.0.15";
 
   src = fetchFromGitHub {
     owner = "mysql";
     repo = "mysql-connector-python";
     rev = version;
-    sha256 = "1qb6m3cp6zxmr49bp6g5g5b75yszgac1h26i2hza61mrvd235688";
+    sha256 = "1w4j2sf07aid3453529z8kg1ziycbayxi3g2r4wqn0nb3y1caqz6";
   };
 
   propagatedBuildInputs = [ protobuf ];
diff --git a/pkgs/development/python-modules/nanomsg-python/default.nix b/pkgs/development/python-modules/nanomsg-python/default.nix
new file mode 100644
index 000000000000..b6e323ff9c69
--- /dev/null
+++ b/pkgs/development/python-modules/nanomsg-python/default.nix
@@ -0,0 +1,25 @@
+{ stdenv, buildPythonPackage, fetchFromGitHub, nanomsg }:
+
+buildPythonPackage rec {
+  pname = "nanomsg-python";
+  version = "1.0.20190114";
+
+  src = fetchFromGitHub {
+    owner = "tonysimpson";
+    repo = "nanomsg-python";
+    rev = "3acd9160f90f91034d4a43ce603aaa19fbaf1f2e";
+    sha256 = "1qgybcpmm9xxrn39alcgdcpvwphgm1glkbnwx0ljpz4nd1jsnyrl";
+  };
+
+  buildInputs = [ nanomsg ];
+
+  # Tests requires network connections
+  doCheck = false;
+
+  meta = with stdenv.lib; {
+    description = "Bindings for nanomsg";
+    homepage = https://github.com/tonysimpson/nanomsg-python;
+    license = licenses.mit;
+    maintainers = with maintainers; [ bgamari ];
+  };
+}
diff --git a/pkgs/development/python-modules/nanotime/default.nix b/pkgs/development/python-modules/nanotime/default.nix
new file mode 100644
index 000000000000..8dd520a04e9a
--- /dev/null
+++ b/pkgs/development/python-modules/nanotime/default.nix
@@ -0,0 +1,27 @@
+{ lib, buildPythonPackage, fetchPypi, nose }:
+
+buildPythonPackage rec {
+  pname = "nanotime";
+  version = "0.5.2";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "c7cc231fc5f6db401b448d7ab51c96d0a4733f4b69fabe569a576f89ffdf966b";
+  };
+
+  checkInputs = [ nose ];
+
+  checkPhase = ''
+    nosetests
+  '';
+
+  # tests currently fail
+  doCheck = false;
+
+  meta = with lib; {
+    description = "Provides a time object that keeps time as the number of nanoseconds since the UNIX epoch";
+    homepage = https://github.com/jbenet/nanotime/tree/master/python;
+    license = licenses.mit;
+    maintainers = with maintainers; [ cmcdragonkai ];
+  };
+}
diff --git a/pkgs/development/python-modules/nbxmpp/default.nix b/pkgs/development/python-modules/nbxmpp/default.nix
index 888e1de6aa57..5da8257ac81e 100644
--- a/pkgs/development/python-modules/nbxmpp/default.nix
+++ b/pkgs/development/python-modules/nbxmpp/default.nix
@@ -2,7 +2,7 @@
 
 let
   pname = "nbxmpp";
-  version = "0.6.8";
+  version = "0.6.9";
   name = "${pname}-${version}";
 in buildPythonPackage rec {
   inherit pname version;
@@ -11,7 +11,7 @@ in buildPythonPackage rec {
     name = "${name}.tar.bz2";
     url = "https://dev.gajim.org/gajim/python-nbxmpp/repository/archive.tar.bz2?"
         + "ref=${name}";
-    sha256 = "09zrqz01j45kvayfscd66avkrnn237lbjg9li5hjhyw92h6hkkc4";
+    sha256 = "14xrq0r5k1dk7rwj4cxyxfapi6gbnqg70mz94g6hn9ij06284mi7";
   };
 
   propagatedBuildInputs = [ pyopenssl ];
diff --git a/pkgs/development/python-modules/nest-asyncio/default.nix b/pkgs/development/python-modules/nest-asyncio/default.nix
index ad586d20fd60..e8fa0e5e409e 100644
--- a/pkgs/development/python-modules/nest-asyncio/default.nix
+++ b/pkgs/development/python-modules/nest-asyncio/default.nix
@@ -5,13 +5,13 @@
 }:
 
 buildPythonPackage rec {
-  version = "0.9.7";
+  version = "0.9.10";
   pname = "nest_asyncio";
   disabled = !(pythonAtLeast "3.5");
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "309160419228c0291268164e33be2d15514c9364b95fac3c04e14fad2a1c008b";
+    sha256 = "d952e21f4333166d79423db2eda6d772be7b30134381ee055d5177be0db68a57";
   };
 
   meta = with stdenv.lib; {
diff --git a/pkgs/development/python-modules/netaddr/default.nix b/pkgs/development/python-modules/netaddr/default.nix
index ac236a775543..ed56e6803f4c 100644
--- a/pkgs/development/python-modules/netaddr/default.nix
+++ b/pkgs/development/python-modules/netaddr/default.nix
@@ -2,7 +2,8 @@
 , buildPythonPackage
 , fetchPypi
 , pytest
-, pkgs
+, fetchpatch
+, glibcLocales
 }:
 
 buildPythonPackage rec {
@@ -15,7 +16,7 @@ buildPythonPackage rec {
   };
 
   LC_ALL = "en_US.UTF-8";
-  buildInputs = [ pkgs.glibcLocales pytest ];
+  checkInputs = [ glibcLocales pytest ];
 
   checkPhase = ''
     # fails on python3.7: https://github.com/drkjam/netaddr/issues/182
@@ -25,7 +26,7 @@ buildPythonPackage rec {
   '';
 
   patches = [
-    (pkgs.fetchpatch {
+    (fetchpatch {
       url = https://github.com/drkjam/netaddr/commit/2ab73f10be7069c9412e853d2d0caf29bd624012.patch;
       sha256 = "0s1cdn9v5alpviabhcjmzc0m2pnpq9dh2fnnk2x96dnry1pshg39";
     })
diff --git a/pkgs/development/python-modules/netifaces/default.nix b/pkgs/development/python-modules/netifaces/default.nix
index 3a33987c490b..1f1cc3857e41 100644
--- a/pkgs/development/python-modules/netifaces/default.nix
+++ b/pkgs/development/python-modules/netifaces/default.nix
@@ -4,12 +4,12 @@
 }:
 
 buildPythonPackage rec {
-  version = "0.10.7";
+  version = "0.10.9";
   pname = "netifaces";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "bd590fcb75421537d4149825e1e63cca225fd47dad861710c46bd1cb329d8cbd";
+    sha256 = "2dee9ffdd16292878336a58d04a20f0ffe95555465fee7c9bd23b3490ef2abf3";
   };
 
   meta = with stdenv.lib; {
diff --git a/pkgs/development/python-modules/nibabel/default.nix b/pkgs/development/python-modules/nibabel/default.nix
index 7491865057b3..9c80301ce931 100644
--- a/pkgs/development/python-modules/nibabel/default.nix
+++ b/pkgs/development/python-modules/nibabel/default.nix
@@ -1,33 +1,43 @@
-{ stdenv
+{ lib
 , buildPythonPackage
 , fetchPypi
+, isPy3k
 , numpy
-, nose
 , six
+, bz2file
+, nose
+, mock
 }:
 
 buildPythonPackage rec {
   pname = "nibabel";
-  version = "2.3.1";
+  version = "2.3.3";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1xb6wgc67c0l7csjdd0k5r2p783rlahknrhqqa13qwgxbybadr53";
+    sha256 = "b6366634c65b04464e62f3a9a8df1faa172f780ed7f1af1c6818b3dc2f1202c3";
   };
 
   propagatedBuildInputs = [
     numpy
-    nose
     six
-  ];
+  ] ++ lib.optional (!isPy3k) bz2file;
+
+  checkInputs = [ nose mock ];
 
-  # Failing tests
-  # nibabel.tests.test_minc1.test_old_namespace
-  # nibabel.gifti.tests.test_parse_gifti_fast.test_parse_dataarrays
-  # nibabel.gifti.tests.test_giftiio.test_read_deprecated
-  doCheck = false;
+  checkPhase = let
+    excludeTests = lib.optionals isPy3k [
+      # https://github.com/nipy/nibabel/issues/691
+      "nibabel.gifti.tests.test_giftiio.test_read_deprecated"
+      "nibabel.gifti.tests.test_parse_gifti_fast.test_parse_dataarrays"
+      "nibabel.tests.test_minc1.test_old_namespace"
+    ];
+  # TODO: Add --with-doctest once all doctests pass
+  in ''
+    nosetests ${lib.concatMapStrings (test: "-e '${test}' ") excludeTests}
+  '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = http://nipy.org/nibabel/;
     description = "Access a multitude of neuroimaging data formats";
     license = licenses.mit;
diff --git a/pkgs/development/python-modules/nose-randomly/default.nix b/pkgs/development/python-modules/nose-randomly/default.nix
index a9e31016a1f8..531994d90535 100644
--- a/pkgs/development/python-modules/nose-randomly/default.nix
+++ b/pkgs/development/python-modules/nose-randomly/default.nix
@@ -14,10 +14,7 @@ buildPythonPackage rec {
     sha256 = "361f4c2fbb090ec2bc8e5e4151e21409a09ac13f364e3448247cc01f326d89b3";
   };
 
-  checkInputs = [ numpy ];
-  propagatedBuildInputs = [
-    nose
-  ];
+  checkInputs = [ numpy nose ];
 
   checkPhase = ''
     nosetests
diff --git a/pkgs/development/python-modules/nose_progressive/default.nix b/pkgs/development/python-modules/nose_progressive/default.nix
index 98e34212cb8e..6d9d98f27abd 100644
--- a/pkgs/development/python-modules/nose_progressive/default.nix
+++ b/pkgs/development/python-modules/nose_progressive/default.nix
@@ -9,11 +9,11 @@
 
 buildPythonPackage rec {
   pname = "nose-progressive";
-  version = "1.5.1";
+  version = "1.5.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0mfbjv3dcg23q0a130670g7xpfyvgza4wxkj991xxh8w9hs43ga4";
+    sha256 = "1mzmgq0wnfizmg9m2wn0c9g9282rdgv1jnphp8ww5h8kwqrjhvis";
   };
 
   buildInputs = [ nose ];
diff --git a/pkgs/development/python-modules/nose_warnings_filters/default.nix b/pkgs/development/python-modules/nose_warnings_filters/default.nix
index 34aed962eaed..2b1ee207cfed 100644
--- a/pkgs/development/python-modules/nose_warnings_filters/default.nix
+++ b/pkgs/development/python-modules/nose_warnings_filters/default.nix
@@ -18,6 +18,7 @@ buildPythonPackage rec {
 
   propagatedBuildInputs = [ nose ];
 
+  checkInputs = [ nose ];
   checkPhase = ''
     nosetests -v
   '';
diff --git a/pkgs/development/python-modules/nosejs/default.nix b/pkgs/development/python-modules/nosejs/default.nix
index 82c01e8643f9..c2d3ee94c7b5 100644
--- a/pkgs/development/python-modules/nosejs/default.nix
+++ b/pkgs/development/python-modules/nosejs/default.nix
@@ -13,7 +13,7 @@ buildPythonPackage rec {
     sha256 = "0qrhkd3sga56qf6k0sqyhwfcladwi05gl6aqmr0xriiq1sgva5dy";
   };
 
-  buildInputs = [ nose ];
+  checkInputs = [ nose ];
 
   checkPhase = ''
     nosetests -v
diff --git a/pkgs/development/python-modules/notebook/default.nix b/pkgs/development/python-modules/notebook/default.nix
index 69bf334110d4..d4b4f14cd652 100644
--- a/pkgs/development/python-modules/notebook/default.nix
+++ b/pkgs/development/python-modules/notebook/default.nix
@@ -25,11 +25,11 @@
 
 buildPythonPackage rec {
   pname = "notebook";
-  version = "5.7.2";
+  version = "5.7.4";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "91705b109fc785198faed892489cddb233265564d5e2dad5e4f7974af05ee8dd";
+    sha256 = "d908673a4010787625c8952e91a22adf737db031f2aa0793ad92f6558918a74a";
   };
 
   LC_ALL = "en_US.utf8";
diff --git a/pkgs/development/python-modules/nuitka/default.nix b/pkgs/development/python-modules/nuitka/default.nix
index 1b14657d5061..ec68cb54afe3 100644
--- a/pkgs/development/python-modules/nuitka/default.nix
+++ b/pkgs/development/python-modules/nuitka/default.nix
@@ -13,13 +13,13 @@ let
   # Therefore we create a separate env for it.
   scons = pkgs.python27.withPackages(ps: [ pkgs.scons ]);
 in buildPythonPackage rec {
-  version = "0.6.0.6";
+  version = "0.6.1.1";
   pname = "Nuitka";
 
   # Latest version is not yet on PyPi
   src = fetchurl {
     url = "https://github.com/kayhayen/Nuitka/archive/${version}.tar.gz";
-    sha256 = "1i5p4ia4qcqmfb9k90g3ssbr090q555fdpc32sl4x6rgqfw5ddj4";
+    sha256 = "0dlhbgn90nj110kmylyrzxd301611g63ynbpm5dfsb09s9c569zm";
   };
 
   checkInputs = [ vmprof pyqt4 ];
diff --git a/pkgs/development/python-modules/numba/default.nix b/pkgs/development/python-modules/numba/default.nix
index c183442e0e9e..41aa7f7a0c8a 100644
--- a/pkgs/development/python-modules/numba/default.nix
+++ b/pkgs/development/python-modules/numba/default.nix
@@ -7,7 +7,6 @@
 , isPy3k
 , numpy
 , llvmlite
-, argparse
 , funcsigs
 , singledispatch
 , libcxx
@@ -24,7 +23,7 @@ buildPythonPackage rec {
 
   NIX_CFLAGS_COMPILE = stdenv.lib.optionalString stdenv.isDarwin "-I${libcxx}/include/c++/v1";
 
-  propagatedBuildInputs = [numpy llvmlite argparse] ++ stdenv.lib.optional (!isPy3k) funcsigs ++ stdenv.lib.optional (isPy27 || isPy33) singledispatch;
+  propagatedBuildInputs = [numpy llvmlite] ++ stdenv.lib.optional (!isPy3k) funcsigs ++ stdenv.lib.optional (isPy27 || isPy33) singledispatch;
 
   # Copy test script into $out and run the test suite.
   checkPhase = ''
diff --git a/pkgs/development/python-modules/numexpr/default.nix b/pkgs/development/python-modules/numexpr/default.nix
index 280b11706a17..78203b3571bb 100644
--- a/pkgs/development/python-modules/numexpr/default.nix
+++ b/pkgs/development/python-modules/numexpr/default.nix
@@ -7,11 +7,11 @@
 
 buildPythonPackage rec {
   pname = "numexpr";
-  version = "2.6.8";
+  version = "2.6.9";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "ee8bc7201aa2f1962c67d27c326a11eef9df887d7b87b1278a1d4e722bf44375";
+    sha256 = "fc218b777cdbb14fa8cff8f28175ee631bacabbdd41ca34e061325b6c44a6fa6";
   };
 
   # Remove existing site.cfg, use the one we built for numpy.
diff --git a/pkgs/development/python-modules/numpy-stl/default.nix b/pkgs/development/python-modules/numpy-stl/default.nix
index e4a9aa67dfda..0776e4fd792f 100644
--- a/pkgs/development/python-modules/numpy-stl/default.nix
+++ b/pkgs/development/python-modules/numpy-stl/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "numpy-stl";
-  version = "2.7.0";
+  version = "2.9.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "ede911118cfee5a8fd4c341b418fc55bfcd70a557686febc4efb6693297e3aa2";
+    sha256 = "0mh7p19rhx800dd54ij1pgln5ny03fdyvadyhrsb380fgjby2nh3";
   };
 
   checkInputs = [ pytest pytestrunner ];
diff --git a/pkgs/development/python-modules/numpy/default.nix b/pkgs/development/python-modules/numpy/default.nix
index d66cbd77bbc5..c9cd7f91833b 100644
--- a/pkgs/development/python-modules/numpy/default.nix
+++ b/pkgs/development/python-modules/numpy/default.nix
@@ -16,12 +16,12 @@ let
   };
 in buildPythonPackage rec {
   pname = "numpy";
-  version = "1.15.4";
+  version = "1.16.0";
 
   src = fetchPypi {
     inherit pname version;
     extension = "zip";
-    sha256 = "3d734559db35aa3697dadcea492a423118c5c55d176da2f3be9c98d4803fc2a7";
+    sha256 = "cb189bd98b2e7ac02df389b6212846ab20661f4bafe16b5a70a6f1728c1cc7cb";
   };
 
   disabled = isPyPy;
@@ -35,18 +35,6 @@ in buildPythonPackage rec {
     ./numpy-distutils-C++.patch
   ];
 
-  postPatch = lib.optionalString stdenv.hostPlatform.isMusl ''
-    # Use fenv.h
-    sed -i \
-      numpy/core/src/npymath/ieee754.c.src \
-      numpy/core/include/numpy/ufuncobject.h \
-      -e 's/__GLIBC__/__linux__/'
-    # Don't use various complex trig functions
-    substituteInPlace numpy/core/src/private/npy_config.h \
-      --replace '#if defined(__GLIBC__)' "#if 1" \
-      --replace '#if !__GLIBC_PREREQ(2, 18)' "#if 1"
-  '';
-
   preConfigure = ''
     sed -i 's/-faltivec//' numpy/distutils/system_info.py
     export NPY_NUM_BUILD_JOBS=$NIX_BUILD_CORES
diff --git a/pkgs/development/python-modules/obfsproxy/default.nix b/pkgs/development/python-modules/obfsproxy/default.nix
index 2f435201d21d..8abd3f22ea3d 100644
--- a/pkgs/development/python-modules/obfsproxy/default.nix
+++ b/pkgs/development/python-modules/obfsproxy/default.nix
@@ -2,7 +2,6 @@
 , buildPythonPackage
 , fetchgit
 , pyptlib
-, argparse
 , twisted
 , pycrypto
 , pyyaml
@@ -23,7 +22,7 @@ buildPythonPackage rec {
     substituteInPlace setup.py --replace "argparse" ""
   '';
 
-  propagatedBuildInputs = [ pyptlib argparse twisted pycrypto pyyaml ];
+  propagatedBuildInputs = [ pyptlib twisted pycrypto pyyaml ];
 
   # No tests in archive
   doCheck = false;
diff --git a/pkgs/development/python-modules/ofxtools/default.nix b/pkgs/development/python-modules/ofxtools/default.nix
index 450391ffeeb7..615c1f68f294 100644
--- a/pkgs/development/python-modules/ofxtools/default.nix
+++ b/pkgs/development/python-modules/ofxtools/default.nix
@@ -7,11 +7,11 @@
 
 buildPythonPackage rec {
   pname = "ofxtools";
-  version = "0.5.1";
+  version = "0.5.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "16a6bdacadf1fcb3265fcfbe7e36002730fc8613b9490839fc0fa2e9e97a1ed7";
+    sha256 = "520345d3b440447696b8f84a4e752573666ff8d1fe0300316cd07995ae05176f";
   };
 
   checkPhase = ''
diff --git a/pkgs/development/python-modules/openpyxl/default.nix b/pkgs/development/python-modules/openpyxl/default.nix
index 32a0528fbc6b..ca05cccd0374 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.10";
+  version = "2.5.12";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "41eb21a5620343d715b38081536c4ed3c37249afb72e569fd2af93852ed4ddde";
+    sha256 = "7bcf019a0be528673a8aec1e60b5c863342c3231962dbf7922fd4da42a49a91a";
   };
 
   checkInputs = [ pytest ];
diff --git a/pkgs/development/python-modules/owslib/default.nix b/pkgs/development/python-modules/owslib/default.nix
index 7331511568fa..22b9360a56a0 100644
--- a/pkgs/development/python-modules/owslib/default.nix
+++ b/pkgs/development/python-modules/owslib/default.nix
@@ -1,11 +1,11 @@
 { lib, buildPythonPackage, fetchPypi, dateutil, requests, pytz, pyproj , pytest } :
 buildPythonPackage rec {
   pname = "OWSLib";
-  version = "0.17.0";
+  version = "0.17.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1px2nmbpbpp556kjq0ym0a7j24nbvs4w829727b2gr4a4ff86hxc";
+    sha256 = "19dm6dxj9hsiq0bnb4d6ms3sh2hcss9d9fhpjgkwxzrw9mlzvrxj";
   };
 
   buildInputs = [ pytest ];
diff --git a/pkgs/development/python-modules/pandas/0.17.1.nix b/pkgs/development/python-modules/pandas/0.17.1.nix
deleted file mode 100644
index c481aa0dfea7..000000000000
--- a/pkgs/development/python-modules/pandas/0.17.1.nix
+++ /dev/null
@@ -1,76 +0,0 @@
-{ buildPythonPackage
-, fetchPypi
-, stdenv
-, pytest
-, glibcLocales
-, cython
-, dateutil
-, scipy
-, numexpr
-, pytz
-, xlrd
-, bottleneck
-, sqlalchemy
-, lxml
-, html5lib
-, beautifulsoup4
-, openpyxl
-, tables
-, xlwt
-, libcxx ? null
-}:
-
-let
-  inherit (stdenv.lib) optional optionalString;
-  inherit (stdenv) isDarwin;
-in buildPythonPackage rec {
-  pname = "pandas";
-  version = "0.17.1";
-
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "cfd7214a7223703fe6999fbe34837749540efee1c985e6aee9933f30e3f72837";
-  };
-
-  LC_ALL = "en_US.UTF-8";
-  buildInputs = [ pytest glibcLocales ] ++ optional isDarwin libcxx;
-  propagatedBuildInputs = [
-    cython
-    dateutil
-    scipy
-    numexpr
-    pytz
-    xlrd
-    bottleneck
-    sqlalchemy
-    lxml
-    html5lib
-    beautifulsoup4
-    openpyxl
-    tables
-    xlwt
-  ];
-
-  doCheck = false;
-
-  # For OSX, we need to add a dependency on libcxx, which provides
-  # `complex.h` and other libraries that pandas depends on to build.
-  postPatch = optionalString isDarwin ''
-    cpp_sdk="${libcxx}/include/c++/v1";
-    echo "Adding $cpp_sdk to the setup.py common_include variable"
-    substituteInPlace setup.py \
-      --replace "['pandas/src/klib', 'pandas/src']" \
-                "['pandas/src/klib', 'pandas/src', '$cpp_sdk']"
-  '';
-
-  meta = {
-    # https://github.com/pandas-dev/pandas/issues/14866
-    # pandas devs are no longer testing i686 so safer to assume it's broken
-    broken = stdenv.isi686;
-    homepage = http://pandas.pydata.org/;
-    description = "Python Data Analysis Library";
-    license = stdenv.lib.licenses.bsd3;
-    maintainers = with stdenv.lib.maintainers; [ shlevy ];
-    platforms = stdenv.lib.platforms.unix;
-  };
-}
diff --git a/pkgs/development/python-modules/pandas/default.nix b/pkgs/development/python-modules/pandas/default.nix
index 839e7f1e8192..a9b84132734b 100644
--- a/pkgs/development/python-modules/pandas/default.nix
+++ b/pkgs/development/python-modules/pandas/default.nix
@@ -16,6 +16,7 @@
 , lxml
 , html5lib
 , beautifulsoup4
+, hypothesis
 , openpyxl
 , tables
 , xlwt
@@ -28,18 +29,18 @@ let
 
 in buildPythonPackage rec {
   pname = "pandas";
-  version = "0.23.4";
+  version = "0.24.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "5b24ca47acf69222e82530e89111dd9d14f9b970ab2cd3a1c2c78f0c4fbba4f4";
+    sha256 = "435821cb2501eabbcee7e83614bd710940dc0cf28b5afbc4bdb816c31cec71af";
   };
 
-  checkInputs = [ pytest glibcLocales moto ];
+  checkInputs = [ pytest glibcLocales moto hypothesis ];
 
-  buildInputs = [] ++ optional isDarwin libcxx;
+  nativeBuildInputs = [ cython ];
+  buildInputs = optional isDarwin libcxx;
   propagatedBuildInputs = [
-    cython
     dateutil
     scipy
     numexpr
diff --git a/pkgs/development/python-modules/paperspace/default.nix b/pkgs/development/python-modules/paperspace/default.nix
index 46b166793508..2d4f6a9e9f4e 100644
--- a/pkgs/development/python-modules/paperspace/default.nix
+++ b/pkgs/development/python-modules/paperspace/default.nix
@@ -4,11 +4,11 @@
 
 buildPythonPackage rec {
   pname = "paperspace";
-  version = "0.0.12";
+  version = "0.0.13";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "9e7192ee9270768c0dba44969d49730c17d2f955c201798706cdcbc407310d64";
+    sha256 = "824ec2aeccc6ddaba82a28b4ab74b1c81fb94206fd89c2b083eae3a61e63c2bf";
   };
 
   propagatedBuildInputs = [ boto3 requests ];
diff --git a/pkgs/development/python-modules/paste/default.nix b/pkgs/development/python-modules/paste/default.nix
index d235bda40e4c..01acbf169637 100644
--- a/pkgs/development/python-modules/paste/default.nix
+++ b/pkgs/development/python-modules/paste/default.nix
@@ -8,12 +8,12 @@
 
 buildPythonPackage rec {
   pname = "paste";
-  version = "3.0.5";
+  version = "3.0.6";
 
   src = fetchPypi {
     pname = "Paste";
     inherit version;
-    sha256 = "1bb2068807ce3592d313ce9b1a25a7ac842a504e7e3b005027193d17a043d1a8";
+    sha256 = "14lbi9asn5agsdf7r97prkjpz7amgmp529lbvfhf0nv881xczah6";
   };
 
   propagatedBuildInputs = [ six ];
diff --git a/pkgs/development/python-modules/pastescript/default.nix b/pkgs/development/python-modules/pastescript/default.nix
index 3507729ee94e..ac85b4be1200 100644
--- a/pkgs/development/python-modules/pastescript/default.nix
+++ b/pkgs/development/python-modules/pastescript/default.nix
@@ -6,7 +6,6 @@
 , paste
 , PasteDeploy
 , cheetah
-, argparse
 }:
 
 buildPythonPackage rec {
@@ -19,7 +18,7 @@ buildPythonPackage rec {
   };
 
   buildInputs = [ nose ];
-  propagatedBuildInputs = [ six paste PasteDeploy cheetah argparse ];
+  propagatedBuildInputs = [ six paste PasteDeploy cheetah ];
 
   doCheck = false;
 
diff --git a/pkgs/development/python-modules/pathlib2/default.nix b/pkgs/development/python-modules/pathlib2/default.nix
index c85b29eac858..7669e03cf6f0 100644
--- a/pkgs/development/python-modules/pathlib2/default.nix
+++ b/pkgs/development/python-modules/pathlib2/default.nix
@@ -10,11 +10,11 @@
 
 buildPythonPackage rec {
   pname = "pathlib2";
-  version = "2.3.2";
+  version = "2.3.3";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "8eb170f8d0d61825e09a95b38be068299ddeda82f35e96c3301a8a5e7604cb83";
+    sha256 = "25199318e8cc3c25dcb45cbe084cc061051336d5a9ea2a12448d3d8cb748f742";
   };
 
   propagatedBuildInputs = [ six ] ++ lib.optional (pythonOlder "3.5") scandir;
diff --git a/pkgs/development/python-modules/peewee/default.nix b/pkgs/development/python-modules/peewee/default.nix
index a18168eaa5aa..461cd480c9f0 100644
--- a/pkgs/development/python-modules/peewee/default.nix
+++ b/pkgs/development/python-modules/peewee/default.nix
@@ -10,14 +10,14 @@
 buildPythonPackage rec {
 
   pname = "peewee";
-  version = "3.8.0";
+  version = "3.8.2";
 
   # pypi release does not provide tests
   src = fetchFromGitHub {
     owner = "coleifer";
     repo = pname;
     rev = version;
-    sha256 = "0kqhpalw1587zaz3fcj13mpzs5950l6fm3qlcfqsfp16h8w0s89f";
+    sha256 = "0h6wr7yq4cpnh2ypm83asvs2y54346f5j9xbg4lwb0w3rgr9zndq";
   };
 
 
diff --git a/pkgs/development/python-modules/pep257/default.nix b/pkgs/development/python-modules/pep257/default.nix
index 2c1250f34a3e..fc1028a0d1c1 100644
--- a/pkgs/development/python-modules/pep257/default.nix
+++ b/pkgs/development/python-modules/pep257/default.nix
@@ -8,7 +8,7 @@ buildPythonPackage rec {
     sha256 = "1ldpgil0kaf6wz5gvl9xdx35a62vc6bmgi3wbh9320dj5v2qk4wh";
   };
 
-  buildInputs = [ pytest mock ];
+  checkInputs = [ pytest mock ];
 
   checkPhase = ''
     py.test
diff --git a/pkgs/development/python-modules/perf/default.nix b/pkgs/development/python-modules/perf/default.nix
index 558886ce6228..6c209ba8da02 100644
--- a/pkgs/development/python-modules/perf/default.nix
+++ b/pkgs/development/python-modules/perf/default.nix
@@ -15,11 +15,11 @@
 
 buildPythonPackage rec {
   pname = "perf";
-  version = "1.5.1";
+  version = "1.6.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "5aae76e58bd3edd0c50adcc7c16926ebb9ed8c0e5058b435a30d58c6bb0394a8";
+    sha256 = "1vrv83v8rhyl51yaxlqzw567vz5a9qwkymk3vqvcl5sa2yd3mzgp";
   };
 
   checkInputs = [ nose psutil ] ++
diff --git a/pkgs/development/python-modules/pg8000/default.nix b/pkgs/development/python-modules/pg8000/default.nix
index f5828bebbb37..a0e8d08a2c7b 100644
--- a/pkgs/development/python-modules/pg8000/default.nix
+++ b/pkgs/development/python-modules/pg8000/default.nix
@@ -7,11 +7,11 @@
 
 buildPythonPackage rec {
   pname = "pg8000";
-  version = "1.12.3";
+  version = "1.12.4";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "18192d90409a3037619ef17f1924e3fd9c7169c9c1b3277cec1982116ec2b6de";
+    sha256 = "903a19158e9efda326908bb4b70a71d31f640b4326576774433ab11fd4e46f39";
   };
 
   propagatedBuildInputs = [ pytz six ];
diff --git a/pkgs/development/python-modules/phonenumbers/default.nix b/pkgs/development/python-modules/phonenumbers/default.nix
index afa965ffc021..4e94c1a71407 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.10.2";
+  version = "8.10.3";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "08cpjmvbm9aazdhlr6pm7msmazysfrdzf4pilnlq8w0ddw1szh7i";
+    sha256 = "0d870906c6019b41bd4b3720f804aec85a21fd78a7676ac260dcbf218b4e7097";
   };
 
   meta = {
diff --git a/pkgs/development/python-modules/pid/default.nix b/pkgs/development/python-modules/pid/default.nix
index 5998ca6bd003..bbf2c687ce56 100644
--- a/pkgs/development/python-modules/pid/default.nix
+++ b/pkgs/development/python-modules/pid/default.nix
@@ -6,11 +6,11 @@
 
 buildPythonPackage rec {
   pname = "pid";
-  version = "2.2.0";
+  version = "2.2.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "d8bb2ceec21a4ae84be6e9d320db1f56934b30e676e31c6f098ca7218b3d67d4";
+    sha256 = "636cb4743a6e6fb1d89efcfd772e6deb5a058590f3531703595d776507098d7b";
   };
 
   buildInputs = [ nose ];
diff --git a/pkgs/development/python-modules/pika/default.nix b/pkgs/development/python-modules/pika/default.nix
index 4cd86b56c202..ec00a2e400ae 100644
--- a/pkgs/development/python-modules/pika/default.nix
+++ b/pkgs/development/python-modules/pika/default.nix
@@ -13,11 +13,11 @@
 
 buildPythonPackage rec {
   pname = "pika";
-  version = "0.12.0";
+  version = "0.13.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "306145b8683e016d81aea996bcaefee648483fc5a9eb4694bb488f54df54a751";
+    sha256 = "1104b0jm7qs9b211hw6siddflvf56ag4lfsjy6yfbczds4lxhf2k";
   };
 
   # Tests require twisted which is only availalble for python-2.x
diff --git a/pkgs/development/python-modules/pivy/default.nix b/pkgs/development/python-modules/pivy/default.nix
index ee02f2cb5d23..4619400b6e35 100644
--- a/pkgs/development/python-modules/pivy/default.nix
+++ b/pkgs/development/python-modules/pivy/default.nix
@@ -16,7 +16,10 @@ buildPythonPackage rec {
     sha256 = "18n14ha2d3j3ghg2f2aqnf2mks94nn7ma9ii7vkiwcay93zm82cf";
   };
 
-  buildInputs = [ pkgs.swig1 pkgs.coin3d pkgs.soqt pkgs.libGLU_combined pkgs.xorg.libXi ];
+  buildInputs = with pkgs; with xorg; [
+    swig1 coin3d soqt libGLU_combined
+    libXi libXext libSM libICE libX11
+  ];
 
   meta = with stdenv.lib; {
     homepage = http://pivy.coin3d.org/;
diff --git a/pkgs/development/python-modules/pkgconfig/default.nix b/pkgs/development/python-modules/pkgconfig/default.nix
index 96c0ea566821..38098b432e45 100644
--- a/pkgs/development/python-modules/pkgconfig/default.nix
+++ b/pkgs/development/python-modules/pkgconfig/default.nix
@@ -11,12 +11,17 @@ buildPythonPackage rec {
 
   checkInputs = [ nose ];
 
-  propagatedBuildInputs = [ pkgconfig ];
+  nativeBuildInputs = [ pkgconfig ];
 
   checkPhase = ''
     nosetests
   '';
 
+  patches = [ ./executable.patch ];
+  postPatch = ''
+    substituteInPlace pkgconfig/pkgconfig.py --replace 'PKG_CONFIG_EXE = "pkg-config"' 'PKG_CONFIG_EXE = "${pkgconfig}/bin/pkg-config"'
+  '';
+
   meta = with lib; {
     description = "Interface Python with pkg-config";
     homepage = https://github.com/matze/pkgconfig;
diff --git a/pkgs/development/python-modules/pkgconfig/executable.patch b/pkgs/development/python-modules/pkgconfig/executable.patch
new file mode 100644
index 000000000000..79fca7a44f1b
--- /dev/null
+++ b/pkgs/development/python-modules/pkgconfig/executable.patch
@@ -0,0 +1,38 @@
+commit d8e0bac0c0d831510683939ec7a7b5bd72192423
+Author: Frederik Rietdijk <fridh@fridh.nl>
+Date:   Sat Jan 5 11:38:28 2019 +0100
+
+    Have a top-level attribute for the executable
+
+diff --git a/pkgconfig/pkgconfig.py b/pkgconfig/pkgconfig.py
+index 3deb97f..e7c5561 100644
+--- a/pkgconfig/pkgconfig.py
++++ b/pkgconfig/pkgconfig.py
+@@ -30,6 +30,9 @@ from functools import wraps
+ from subprocess import call, PIPE, Popen
+ 
+ 
++PKG_CONFIG_EXE = "pkg-config"
++
++
+ def _compare_versions(v1, v2):
+     """
+     Compare two version strings and return -1, 0 or 1 depending on the equality
+@@ -65,7 +68,7 @@ def _convert_error(func):
+ 
+ @_convert_error
+ def _query(package, *options):
+-    pkg_config_exe = os.environ.get('PKG_CONFIG', None) or 'pkg-config'
++    pkg_config_exe = os.environ.get('PKG_CONFIG', None) or PKG_CONFIG_EXE
+     cmd = '{0} {1} {2}'.format(pkg_config_exe, ' '.join(options), package)
+     proc = Popen(shlex.split(cmd), stdout=PIPE, stderr=PIPE)
+     out, err = proc.communicate()
+@@ -84,7 +87,7 @@ def exists(package):
+ 
+     If ``pkg-config`` not on path, raises ``EnvironmentError``.
+     """
+-    pkg_config_exe = os.environ.get('PKG_CONFIG', None) or 'pkg-config'
++    pkg_config_exe = os.environ.get('PKG_CONFIG', None) or PKG_CONFIG_EXE
+     cmd = '{0} --exists {1}'.format(pkg_config_exe, package).split()
+     return call(cmd) == 0
+ 
diff --git a/pkgs/development/python-modules/plotly/default.nix b/pkgs/development/python-modules/plotly/default.nix
index 58ad690ce2df..04931b7df7fc 100644
--- a/pkgs/development/python-modules/plotly/default.nix
+++ b/pkgs/development/python-modules/plotly/default.nix
@@ -11,11 +11,11 @@
 
 buildPythonPackage rec {
   pname = "plotly";
-  version = "3.4.1";
+  version = "3.4.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "5dc85bde91bc80fa05f0d89e9f3a8eaee735b2b404047266874e0ff9c104407f";
+    sha256 = "c988d923e0b0627085b9700e2757003552ae9ccd7daa3a4b067ce60a0c7e642f";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/pluggy/default.nix b/pkgs/development/python-modules/pluggy/default.nix
index dd8a7fa6acbb..6d7550763eb8 100644
--- a/pkgs/development/python-modules/pluggy/default.nix
+++ b/pkgs/development/python-modules/pluggy/default.nix
@@ -6,11 +6,11 @@
 
 buildPythonPackage rec {
   pname = "pluggy";
-  version = "0.8.0";
+  version = "0.8.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "447ba94990e8014ee25ec853339faf7b0fc8050cdc3289d4d71f7f410fb90095";
+    sha256 = "8ddc32f03971bfdf900a81961a48ccf2fb677cf7715108f85295c67405798616";
   };
 
   checkPhase = ''
diff --git a/pkgs/development/python-modules/podcastparser/default.nix b/pkgs/development/python-modules/podcastparser/default.nix
index 0cfe2dd1b605..d2fc1093844e 100644
--- a/pkgs/development/python-modules/podcastparser/default.nix
+++ b/pkgs/development/python-modules/podcastparser/default.nix
@@ -11,11 +11,11 @@ buildPythonPackage rec {
     sha256 = "10bk93fqsws360q1gkjvfzjda3351169zbr6v5lq9raa3mg1ln52";
   };
 
-  propagatedBuildInputs = [ ];
+  checkInputs = [ nose ];
 
-  buildInputs = [ nose ];
-
-  checkPhase = "nosetests test_*.py";
+  checkPhase = ''
+    nosetests test_*.py
+  '';
 
   meta = {
     description = "podcastparser is a simple, fast and efficient podcast parser written in Python.";
diff --git a/pkgs/development/python-modules/pprintpp/default.nix b/pkgs/development/python-modules/pprintpp/default.nix
new file mode 100644
index 000000000000..daf9d0062fb2
--- /dev/null
+++ b/pkgs/development/python-modules/pprintpp/default.nix
@@ -0,0 +1,30 @@
+{ lib, fetchpatch, buildPythonPackage, fetchPypi, python, nose, parameterized }:
+
+buildPythonPackage rec {
+  pname = "pprintpp";
+  version = "0.4.0";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "00v4pkyiqc0y9qjnp3br58a4k5zwqdrjjxbcsv39vx67w84630pa";
+  };
+
+  patches = [
+    (fetchpatch {
+      url = "https://github.com/wolever/pprintpp/commit/873217674cc824b4c1cfdad4867c560c60e8d806.patch";
+      sha256 = "0rqxzxawr83215s84mfzh1gnjwjm2xv399ywwcl4q7h395av5vb3";
+    })
+  ];
+
+  checkInputs = [ nose parameterized ];
+  checkPhase = ''
+    ${python.interpreter} test.py
+  '';
+
+  meta = with lib; {
+    homepage = https://github.com/wolever/pprintpp;
+    description = "A drop-in replacement for pprint that's actually pretty";
+    license = licenses.bsd2;
+    maintainers = with maintainers; [ jakewaksbaum ];
+  };
+}
diff --git a/pkgs/development/python-modules/prawcore/default.nix b/pkgs/development/python-modules/prawcore/default.nix
index 950d478b30f8..f1ce7ba2a087 100644
--- a/pkgs/development/python-modules/prawcore/default.nix
+++ b/pkgs/development/python-modules/prawcore/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchFromGitHub
+{ stdenv, buildPythonPackage, fetchPypi
 , requests
 , testfixtures, mock, requests_toolbelt
 , betamax, betamax-serializers, betamax-matchers
@@ -6,19 +6,13 @@
 
 buildPythonPackage rec {
   pname = "prawcore";
-  version = "1.0.0";
+  version = "1.0.1";
 
-  src = fetchFromGitHub {
-    owner = "praw-dev";
-    repo = "prawcore";
-    rev = "v${version}";
-    sha256 = "1j905wi5n2xgik3yk2hrv8dky318ahfjl5k1zs21mrl81jk0907f";
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "ab5558efb438aa73fc66c4178bfc809194dea3ce2addf4dec873de7e2fd2824e";
   };
 
-  postPatch = ''
-    sed -i "s/'testfixtures >4.13.2, <6'/'testfixtures >4.13.2'/g" setup.py
-  '';
-
   propagatedBuildInputs = [
     requests
   ];
diff --git a/pkgs/development/python-modules/precis-i18n/default.nix b/pkgs/development/python-modules/precis-i18n/default.nix
new file mode 100644
index 000000000000..4c50aaee706a
--- /dev/null
+++ b/pkgs/development/python-modules/precis-i18n/default.nix
@@ -0,0 +1,20 @@
+{ lib, buildPythonPackage, fetchPypi, isPy3k }:
+
+buildPythonPackage rec {
+  pname = "precis-i18n";
+  version = "1.0.0";
+
+  disabled = !isPy3k;
+
+  src = fetchPypi {
+    pname = "precis_i18n";
+    inherit version;
+    sha256 = "0gjhvwd8aifx94rl1ag08vlmndyx2q3fkyqb0c4i46x3p2bc2yi2";
+  };
+
+  meta = {
+    homepage = https://github.com/byllyfish/precis_i18n;
+    description = "Internationalized usernames and passwords";
+    license = lib.licenses.mit;
+  };
+}
diff --git a/pkgs/development/python-modules/process-tests/default.nix b/pkgs/development/python-modules/process-tests/default.nix
index dd93ac400716..c986cc6b9900 100644
--- a/pkgs/development/python-modules/process-tests/default.nix
+++ b/pkgs/development/python-modules/process-tests/default.nix
@@ -5,11 +5,11 @@
 
 buildPythonPackage rec {
   pname = "process-tests";
-  version = "2.0.0";
+  version = "2.0.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "dd731906f8fc0b803ffe2dd5c5e4b103ec24b1f962a7b835d9533d7e9b2ca36c";
+    sha256 = "f43f3540edd333bdc5d8741218e173b1dfdbce5b0a40066d75248911e5340a06";
   };
 
   # No tests
diff --git a/pkgs/development/python-modules/progressbar2/default.nix b/pkgs/development/python-modules/progressbar2/default.nix
index 18fb14c3aa9a..362e73c0d71e 100644
--- a/pkgs/development/python-modules/progressbar2/default.nix
+++ b/pkgs/development/python-modules/progressbar2/default.nix
@@ -1,39 +1,38 @@
 { stdenv
 , python
 , buildPythonPackage
-, fetchFromGitHub
+, fetchPypi
 , pytest
 , python-utils
 , sphinx
-, coverage
-, execnet
 , flake8
 , pytestpep8
 , pytestflakes
 , pytestcov
 , pytestcache
-, pep8
 , pytestrunner
+, freezegun
 }:
 
 buildPythonPackage rec {
   pname = "progressbar2";
-  version = "3.12.0";
+  version = "3.39.2";
 
-  # Use source from GitHub, PyPI is missing tests
-  # https://github.com/WoLpH/python-progressbar/issues/151
-  src = fetchFromGitHub {
-    owner = "WoLpH";
-    repo = "python-progressbar";
-    rev = "v${version}";
-    sha256 = "1gk45sh8cd0kkyvzcvx95z6nlblmyx0x189mjfv3vfa43cr1mb0f";
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "6eb5135b987caca4212d2c7abc2923d4ad5ba18bb34ccbe7044b3628f52efc2c";
   };
 
+  postPatch = ''
+    rm -r tests/__pycache__
+    rm tests/*.pyc
+  '';
+
   propagatedBuildInputs = [ python-utils ];
   nativeBuildInputs = [ pytestrunner ];
   checkInputs = [
-    pytest sphinx coverage execnet flake8 pytestpep8 pytestflakes pytestcov
-    pytestcache pep8
+    pytest sphinx flake8 pytestpep8 pytestflakes pytestcov
+    pytestcache freezegun
   ];
   # ignore tests on the nix wrapped setup.py and don't flake .eggs directory
   checkPhase = ''
diff --git a/pkgs/development/python-modules/py3status/default.nix b/pkgs/development/python-modules/py3status/default.nix
index 412b3b2342a5..5f43ae32ea23 100644
--- a/pkgs/development/python-modules/py3status/default.nix
+++ b/pkgs/development/python-modules/py3status/default.nix
@@ -19,11 +19,11 @@
 
 buildPythonPackage rec {
   pname = "py3status";
-  version = "3.15";
+  version = "3.16";
   
   src = fetchPypi {
     inherit pname version;
-    sha256 = "78aa7fa0af707641e215ea93bfd4bb5fd47f18a7193d84ed60bb9e6cccb75b7f";
+    sha256 = "1xrfph277bgjln3jbpzpgkhxad04fjvj7s3xfil42q1sxi4s3q3g";
   };
 
   doCheck = false;
diff --git a/pkgs/development/python-modules/pyarrow/default.nix b/pkgs/development/python-modules/pyarrow/default.nix
index d588ebb12e47..899b18eecbed 100644
--- a/pkgs/development/python-modules/pyarrow/default.nix
+++ b/pkgs/development/python-modules/pyarrow/default.nix
@@ -1,4 +1,4 @@
-{ lib, buildPythonPackage, python, isPy3k, fetchurl, arrow-cpp, cmake, cython, futures, numpy, pandas, pytest, pkgconfig, setuptools_scm, six }:
+{ lib, buildPythonPackage, python, isPy3k, fetchurl, arrow-cpp, cmake, cython, futures, hypothesis, numpy, pandas, pytest, pkgconfig, setuptools_scm, six }:
 
 let
   _arrow-cpp = arrow-cpp.override { inherit python; };
@@ -13,10 +13,16 @@ buildPythonPackage rec {
 
   nativeBuildInputs = [ cmake cython pkgconfig setuptools_scm ];
   propagatedBuildInputs = [ numpy six ] ++ lib.optionals (!isPy3k) [ futures ];
-  checkInputs = [ pandas pytest ];
+  checkInputs = [ hypothesis pandas pytest ];
 
   PYARROW_BUILD_TYPE = "release";
-  PYARROW_CMAKE_OPTIONS = "-DCMAKE_INSTALL_RPATH=${ARROW_HOME}/lib";
+  PYARROW_CMAKE_OPTIONS = [
+    "-DCMAKE_INSTALL_RPATH=${ARROW_HOME}/lib"
+
+    # This doesn't use setup hook to call cmake so we need to workaround #54606
+    # ourselves
+    "-DCMAKE_POLICY_DEFAULT_CMP0025=NEW"
+  ];
 
   preCheck = ''
     rm pyarrow/tests/test_jvm.py
diff --git a/pkgs/development/python-modules/pyasn1-modules/default.nix b/pkgs/development/python-modules/pyasn1-modules/default.nix
index 8c23d2a3f301..96304606cdfa 100644
--- a/pkgs/development/python-modules/pyasn1-modules/default.nix
+++ b/pkgs/development/python-modules/pyasn1-modules/default.nix
@@ -2,12 +2,12 @@
 
 buildPythonPackage rec {
   pname = "pyasn1-modules";
-  version = "0.2.2";
+  version = "0.2.3";
   disabled = isPyPy;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "a0cf3e1842e7c60fde97cb22d275eb6f9524f5c5250489e292529de841417547";
+    sha256 = "d14fcb29dabecba3d7b360bf72327c26c385248a5d603cf6be5f566ce999b261";
   };
 
   propagatedBuildInputs = [ pyasn1 ];
diff --git a/pkgs/development/python-modules/pyasn1/default.nix b/pkgs/development/python-modules/pyasn1/default.nix
index d7d266b23ff2..f44cfef8a29e 100644
--- a/pkgs/development/python-modules/pyasn1/default.nix
+++ b/pkgs/development/python-modules/pyasn1/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "pyasn1";
-  version = "0.4.4";
+  version = "0.4.5";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "f58f2a3d12fd754aa123e9fa74fb7345333000a035f3921dbdaa08597aa53137";
+    sha256 = "da2420fe13a9452d8ae97a0e478adde1dee153b11ba832a95b223a2ba01c10f7";
   };
 
   meta = with stdenv.lib; {
diff --git a/pkgs/development/python-modules/pyatspi/default.nix b/pkgs/development/python-modules/pyatspi/default.nix
index 539e16abe57d..0405b979c8f9 100644
--- a/pkgs/development/python-modules/pyatspi/default.nix
+++ b/pkgs/development/python-modules/pyatspi/default.nix
@@ -10,9 +10,10 @@ buildPythonPackage rec {
     sha256 = "11g7dx21brfmi5vrq289cw983rydalx0cy91afv5gigyadsmyam2";
   };
 
+  nativeBuildInputs = [ pkgconfig ];
+
   buildInputs = [
     at-spi2-core
-    pkgconfig
     pygobject3
   ];
 
diff --git a/pkgs/development/python-modules/pyaxmlparser/default.nix b/pkgs/development/python-modules/pyaxmlparser/default.nix
index 0721c0d449c7..c5be26bd9b73 100644
--- a/pkgs/development/python-modules/pyaxmlparser/default.nix
+++ b/pkgs/development/python-modules/pyaxmlparser/default.nix
@@ -28,7 +28,8 @@ buildPythonPackage rec {
   meta = with stdenv.lib; {
     description = "Python3 Parser for Android XML file and get Application Name without using Androguard";
     homepage = https://github.com/appknox/pyaxmlparser;
-    license = licenses.mit;
+    # Files from Androguard are licensed ASL 2.0
+    license = with licenses; [ mit asl20 ];
     maintainers = with maintainers; [ ma27 ];
   };
 }
diff --git a/pkgs/development/python-modules/pybind11/default.nix b/pkgs/development/python-modules/pybind11/default.nix
new file mode 100644
index 000000000000..0bdac6594062
--- /dev/null
+++ b/pkgs/development/python-modules/pybind11/default.nix
@@ -0,0 +1,26 @@
+{ lib, buildPythonPackage, fetchPypi }:
+
+buildPythonPackage rec {
+  pname = "pybind11";
+  version = "2.2.4";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1kz1z2cg3q901q9spkdhksmcfiskaghzmbb9ivr5mva856yvnak4";
+  };
+
+  # Current PyPi version does not include test suite
+  doCheck = false;
+
+  meta = {
+    homepage = https://github.com/pybind/pybind11;
+    description = "Seamless operability between C++11 and Python";
+    longDescription = ''
+      Pybind11 is a lightweight header-only library that exposes
+      C++ types in Python and vice versa, mainly to create Python
+      bindings of existing C++ code.
+    '';
+    license = lib.licenses.bsd3;
+    maintainers = [ lib.maintainers.yuriaisaka ];
+  };
+}
diff --git a/pkgs/development/python-modules/pybotvac/default.nix b/pkgs/development/python-modules/pybotvac/default.nix
index 8bfd7668114a..180b7c8d18f5 100644
--- a/pkgs/development/python-modules/pybotvac/default.nix
+++ b/pkgs/development/python-modules/pybotvac/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "pybotvac";
-  version = "0.0.12";
+  version = "0.0.13";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "12qm4w883nb6fwff6sch5l133g3irqjcrgkjhh4mz1mmz7n6xzjh";
+    sha256 = "f6f147694ee5cbab1dea494454c11bd254e1c214d96d057cba27894a87210f1b";
   };
 
   propagatedBuildInputs = [ requests ];
diff --git a/pkgs/development/python-modules/pybtex/default.nix b/pkgs/development/python-modules/pybtex/default.nix
index 70e41009716f..dd258f427188 100644
--- a/pkgs/development/python-modules/pybtex/default.nix
+++ b/pkgs/development/python-modules/pybtex/default.nix
@@ -1,7 +1,7 @@
 { stdenv, buildPythonPackage, fetchPypi, latexcodec, pyyaml }:
 
 buildPythonPackage rec {
-  version = "0.22.0";
+  version = "0.22.2";
   pname = "pybtex";
 
   doCheck = false;
@@ -9,7 +9,7 @@ buildPythonPackage rec {
 
   src = fetchPypi {
     inherit version pname;
-    sha256 = "0rprg7h12pv9rb6bi950mz1disc265sg5qcg34637ns1z74hxdr6";
+    sha256 = "00816e5f8570609d8ce3360cd23916bd3e50428a3508127578fdb4dc2b731c1c";
   };
 
   meta = {
diff --git a/pkgs/development/python-modules/pycairo/default.nix b/pkgs/development/python-modules/pycairo/default.nix
index 091ac809a9bb..126ec15e0534 100644
--- a/pkgs/development/python-modules/pycairo/default.nix
+++ b/pkgs/development/python-modules/pycairo/default.nix
@@ -1,35 +1,39 @@
-{ lib, fetchFromGitHub, python, buildPythonPackage, pytest, pkgconfig, cairo, xlibsWrapper, isPyPy }:
+{ lib, fetchFromGitHub, meson, ninja, buildPythonPackage, pytest, pkgconfig, cairo, xlibsWrapper, isPy33, isPy3k }:
 
 buildPythonPackage rec {
   pname = "pycairo";
-  version = "1.16.3";
+  version = "1.18.0";
 
-  disabled = isPyPy;
+  format = "other";
+
+  disabled = isPy33;
 
   src = fetchFromGitHub {
     owner = "pygobject";
     repo = "pycairo";
     rev = "v${version}";
-    sha256 = "0clk6wrfls3fa1xrn844762qfaw6gs4ivwkrfysidbzmlbxhpngl";
+    sha256 = "0k266cf477j74v7mv0d4jxaq3wx8b7qa85qgh68cn094gzaasqd9";
   };
 
-  # We need to create the pkgconfig file but it cannot be installed as a wheel since wheels
-  # are supposed to be relocatable and do not support --prefix option
-  buildPhase = ''
-    ${python.interpreter} setup.py build
-  '';
-
-  installPhase = ''
-    ${python.interpreter} setup.py install --skip-build --prefix="$out" --optimize=1
-  '';
+  nativeBuildInputs = [
+    meson
+    ninja
+    pkgconfig
+  ];
 
-  checkPhase = ''
-    ${python.interpreter} setup.py test
-  '';
+  buildInputs = [
+    cairo
+    xlibsWrapper
+  ];
 
-  nativeBuildInputs = [ pkgconfig ];
-  buildInputs = [ python cairo xlibsWrapper ];
   checkInputs = [ pytest ];
 
-  meta.platforms = lib.platforms.linux ++ lib.platforms.darwin;
+  mesonFlags = [ "-Dpython=${if isPy3k then "python3" else "python"}" ];
+
+  meta = with lib; {
+    description = "Python 2/3 bindings for cairo";
+    homepage = https://pycairo.readthedocs.io/;
+    license = with licenses; [ lgpl2 mpl11 ];
+    platforms = lib.platforms.linux ++ lib.platforms.darwin;
+  };
 }
diff --git a/pkgs/development/python-modules/pycares/default.nix b/pkgs/development/python-modules/pycares/default.nix
index 4755bf908fda..341e9519d80c 100644
--- a/pkgs/development/python-modules/pycares/default.nix
+++ b/pkgs/development/python-modules/pycares/default.nix
@@ -6,11 +6,11 @@
 
 buildPythonPackage rec {
   pname = "pycares";
-  version = "2.3.0";
+  version = "2.4.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0h4fxw5drrhfyslzmfpljk0qnnpbhhb20hnnndzahhbwylyw1x1n";
+    sha256 = "15pwsxsj1nr33n6x2918bfbzdnqv1qkwd2d5jgvxsm81zxnvgk0f";
   };
 
   propagatedBuildInputs = [ pkgs.c-ares ];
diff --git a/pkgs/development/python-modules/pychromecast/default.nix b/pkgs/development/python-modules/pychromecast/default.nix
index 2494407766c7..bda05a58e150 100644
--- a/pkgs/development/python-modules/pychromecast/default.nix
+++ b/pkgs/development/python-modules/pychromecast/default.nix
@@ -1,19 +1,20 @@
-{ lib, fetchurl, buildPythonPackage, requests, six, zeroconf, protobuf, casttube }:
+{ lib, fetchPypi, buildPythonPackage, requests, zeroconf, protobuf, casttube, isPy3k }:
 
 buildPythonPackage rec {
   pname = "PyChromecast";
-  version = "2.3.0";
-  name = pname + "-" + version;
+  version = "2.4.0";
 
-  src = fetchurl {
-    url    = "mirror://pypi/p/pychromecast/${name}.tar.gz";
-    sha256 = "f385168e34d2ef47f976c8e41bad2f58f5ca004634c0ccb1a12623d8beb2fa38";
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "0q012ghssk2xhm17v28sc2lv62vk7wd5p7zzdbgxk6kywfx8yvm2";
   };
 
-  propagatedBuildInputs = [ requests six zeroconf protobuf casttube ];
+  disabled = !isPy3k;
+
+  propagatedBuildInputs = [ requests zeroconf protobuf casttube ];
 
   meta = with lib; {
-    description = "Library for Python 2 and 3 to communicate with the Google Chromecast";
+    description = "Library for Python 3.4+ to communicate with the Google Chromecast";
     homepage    = https://github.com/balloob/pychromecast;
     license     = licenses.mit;
     maintainers = with maintainers; [ abbradar ];
diff --git a/pkgs/development/python-modules/pycontracts/default.nix b/pkgs/development/python-modules/pycontracts/default.nix
index 42d19bb87550..6ae90ac55243 100644
--- a/pkgs/development/python-modules/pycontracts/default.nix
+++ b/pkgs/development/python-modules/pycontracts/default.nix
@@ -3,11 +3,11 @@
 
 buildPythonPackage rec {
   pname = "PyContracts";
-  version = "1.8.7";
+  version = "1.8.8";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1b65jkbk9bcl10s49w9frsjcarfzi8gp22a40cz7zxry8b8yvcf0";
+    sha256 = "0njcssvjj2aisb52xp9jmfps43iqg3fw4grj524i911p34yln2va";
   };
 
   buildInputs = [ nose ];
diff --git a/pkgs/development/python-modules/pycryptodome/default.nix b/pkgs/development/python-modules/pycryptodome/default.nix
index 59446a4dc485..473d81c73bd9 100644
--- a/pkgs/development/python-modules/pycryptodome/default.nix
+++ b/pkgs/development/python-modules/pycryptodome/default.nix
@@ -1,12 +1,12 @@
 { stdenv, fetchPypi, buildPythonPackage }:
 
 buildPythonPackage rec {
-  version = "3.7.0";
+  version = "3.7.2";
   pname = "pycryptodome";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "4444a26fc3830c0d438bca6975ff10d1eb9c0b88f747fdc25b5ab81fb46713d7";
+    sha256 = "f5fc7e3b2d29552f0383063408ce2bd295e9d3c7ef13377599aa300a3d2baef7";
   };
 
   meta = {
diff --git a/pkgs/development/python-modules/pycryptodomex/default.nix b/pkgs/development/python-modules/pycryptodomex/default.nix
index 27dfd64648cc..61a0df7accda 100644
--- a/pkgs/development/python-modules/pycryptodomex/default.nix
+++ b/pkgs/development/python-modules/pycryptodomex/default.nix
@@ -2,7 +2,7 @@
 
 buildPythonPackage rec {
   pname = "pycryptodomex";
-  version = "3.7.0";
+  version = "3.7.2";
 
   meta = {
     description = "A self-contained cryptographic library for Python";
@@ -12,6 +12,6 @@ buildPythonPackage rec {
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "9f11823636128acbe4e17c35ff668f4d0a9f3133450753a0675525b6413aa1b0";
+    sha256 = "5d4e10ad9ff7940da534119ef92a500dcf7c28351d15e12d74ef0ce025e37d5b";
   };
 }
diff --git a/pkgs/development/python-modules/pydispatcher/default.nix b/pkgs/development/python-modules/pydispatcher/default.nix
index 29d464587a0a..68772cab3068 100644
--- a/pkgs/development/python-modules/pydispatcher/default.nix
+++ b/pkgs/development/python-modules/pydispatcher/default.nix
@@ -13,7 +13,7 @@ buildPythonPackage rec {
     sha256 = "1bswbmhlbqdxlgbxlb6xrlm4k253sg8nvpl1whgsys8p3fg0cw2m";
   };
 
-  buildInputs = [ pytest ];
+  checkInputs = [ pytest ];
 
   checkPhase = ''
     py.test
diff --git a/pkgs/development/python-modules/pydub/default.nix b/pkgs/development/python-modules/pydub/default.nix
index cbadd5188977..669d798312b4 100644
--- a/pkgs/development/python-modules/pydub/default.nix
+++ b/pkgs/development/python-modules/pydub/default.nix
@@ -2,13 +2,13 @@
 
 buildPythonPackage rec {
   pname = "pydub";
-  version = "0.23.0";
+  version = "0.23.1";
   # pypi version doesn't include required data files for tests
   src = fetchFromGitHub {
     owner = "jiaaro";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1ijp9hlxi2d0f1ah9yj9j8cz18i9ny9jwrf2irvz58bgyv29m8bn";
+    sha256 = "1v0bghy4j2nnkgf1r8rbz4s7war872asyy08pc0x1iy1qs275i7s";
   };
 
 
diff --git a/pkgs/development/python-modules/pyfakefs/default.nix b/pkgs/development/python-modules/pyfakefs/default.nix
index c05299d418fa..4b128db82eac 100644
--- a/pkgs/development/python-modules/pyfakefs/default.nix
+++ b/pkgs/development/python-modules/pyfakefs/default.nix
@@ -1,16 +1,12 @@
-{ stdenv, buildPythonPackage, fetchFromGitHub, python, pytest, glibcLocales }:
+{ stdenv, buildPythonPackage, fetchPypi, python, pytest, glibcLocales }:
 
 buildPythonPackage rec {
-  version = "3.5.5";
+  version = "3.5.7";
   pname = "pyfakefs";
 
-  # no tests in PyPI tarball
-  # https://github.com/jmcgeheeiv/pyfakefs/pull/361
-  src = fetchFromGitHub {
-    owner = "jmcgeheeiv";
-    repo = pname;
-    rev = "v${version}";
-    sha256 = "1pww444ih4bf84a0jgl1r446mjywhlls890mnw76flx8maahlik1";
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "8969435f8e7ca10f60c22096b02b15ad3af143de7d3bb4d73507b812bcdd8e37";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/pygame/git.nix b/pkgs/development/python-modules/pygame/git.nix
deleted file mode 100644
index 1d8ba697f38b..000000000000
--- a/pkgs/development/python-modules/pygame/git.nix
+++ /dev/null
@@ -1,47 +0,0 @@
-{ stdenv, lib, fetchFromBitbucket, buildPythonPackage, python, smpeg, libX11
-, SDL, SDL_image, SDL_mixer, SDL_ttf, libpng, libjpeg, portmidi
-}:
-
-buildPythonPackage rec {
-  pname = "pygame";
-  version = "2016-05-17";
-  name = pname + "-" + version;
-
-  src = fetchFromBitbucket {
-    owner = "pygame";
-    repo = "pygame";
-    rev = "575c7a74d85a37db7c645421c02cf0b6b78a889f";
-    sha256 = "1i5xqmw93kfidcji2wacgkm5y4mcnbksy8iimih0729k19rbhznc";
-  };
-
-  buildInputs = [
-    SDL SDL_image SDL_mixer SDL_ttf libpng libjpeg
-    smpeg portmidi libX11
-  ];
-
-  # Tests fail because of no audio device and display.
-  doCheck = false;
-
-  preConfigure = ''
-    sed \
-      -e "s/^origincdirs = .*/origincdirs = []/" \
-      -e "s/^origlibdirs = .*/origlibdirs = []/" \
-      -i config_unix.py
-    ${lib.concatMapStrings (dep: ''
-      sed \
-        -e "/^origincdirs =/aorigincdirs += ['${lib.getDev dep}/include']" \
-        -e "/^origlibdirs =/aoriglibdirs += ['${lib.getLib dep}/lib']" \
-        -i config_unix.py
-      '') buildInputs
-    }
-    LOCALBASE=/ ${python.interpreter} config.py
-  '';
-
-  meta = with stdenv.lib; {
-    description = "Python library for games";
-    homepage = http://www.pygame.org/;
-    license = licenses.lgpl21Plus;
-    platforms = platforms.linux;
-    broken = true;
-  };
-}
diff --git a/pkgs/development/python-modules/pygobject/3.nix b/pkgs/development/python-modules/pygobject/3.nix
index d1b2f075b914..43cb77e58319 100644
--- a/pkgs/development/python-modules/pygobject/3.nix
+++ b/pkgs/development/python-modules/pygobject/3.nix
@@ -18,7 +18,7 @@ buildPythonPackage rec {
     "-Dpython=python${if isPy3k then "3" else "2" }"
   ];
 
-  nativeBuildInputs = [ pkgconfig meson ninja ];
+  nativeBuildInputs = [ pkgconfig meson ninja gobject-introspection ];
   buildInputs = [ glib gobject-introspection ]
                  ++ stdenv.lib.optionals stdenv.isDarwin [ which ncurses ];
   propagatedBuildInputs = [ pycairo cairo ];
diff --git a/pkgs/development/python-modules/pygobject/default.nix b/pkgs/development/python-modules/pygobject/default.nix
index 56e8f1fa5eb6..4826db3a8c02 100644
--- a/pkgs/development/python-modules/pygobject/default.nix
+++ b/pkgs/development/python-modules/pygobject/default.nix
@@ -17,6 +17,8 @@ buildPythonPackage rec {
     # Fix warning spam
     ./pygobject-2.28.6-set_qdata.patch
     ./pygobject-2.28.6-gio-types-2.32.patch
+  ] ++ stdenv.lib.optionals stdenv.isDarwin [
+    ./pygobject-2.0-fix-darwin.patch
   ];
 
   configureFlags = [ "--disable-introspection" ];
diff --git a/pkgs/development/python-modules/pygobject/pygobject-2.0-fix-darwin.patch b/pkgs/development/python-modules/pygobject/pygobject-2.0-fix-darwin.patch
new file mode 100644
index 000000000000..7fef05262f4d
--- /dev/null
+++ b/pkgs/development/python-modules/pygobject/pygobject-2.0-fix-darwin.patch
@@ -0,0 +1,88 @@
+--- a/gio/unix-types.defs
++++ b/gio/unix-types.defs
+@@ -7,18 +7,6 @@
+   (gtype-id "G_TYPE_UNIX_CONNECTION")
+ )
+ 
+-(define-object DesktopAppInfo
+-  (docstring
+-  "DesktopAppInfo(desktop_id) -> gio.unix.DesktopAppInfo\n\n"
+-  "gio.Unix.DesktopAppInfo is an implementation of gio.AppInfo\n"
+-  "based on desktop files."
+-  )
+-  (in-module "giounix")
+-  (parent "GObject")
+-  (c-name "GDesktopAppInfo")
+-  (gtype-id "G_TYPE_DESKTOP_APP_INFO")
+-)
+-
+ (define-object FDMessage
+   (in-module "giounix")
+   (parent "GSocketControlMessage")
+--- a/gio/unix.defs
++++ b/gio/unix.defs
+@@ -32,54 +32,6 @@
+ 
+ 
+ 
+-;; From gdesktopappinfo.h
+-
+-(define-function desktop_app_info_get_type
+-  (c-name "g_desktop_app_info_get_type")
+-  (return-type "GType")
+-)
+-
+-(define-function desktop_app_info_new_from_filename
+-  (c-name "g_desktop_app_info_new_from_filename")
+-  (return-type "GDesktopAppInfo*")
+-  (parameters
+-    '("const-char*" "filename")
+-  )
+-)
+-
+-(define-function g_desktop_app_info_new_from_keyfile
+-  (c-name "g_desktop_app_info_new_from_keyfile")
+-  (return-type "GDesktopAppInfo*")
+-  (parameters
+-    '("GKeyFile*" "key_file")
+-  )
+-)
+-
+-(define-function desktop_app_info_new
+-  (c-name "g_desktop_app_info_new")
+-  (is-constructor-of "GDesktopAppInfo")
+-  (return-type "GDesktopAppInfo*")
+-  (parameters
+-    '("const-char*" "desktop_id")
+-  )
+-)
+-
+-(define-method get_is_hidden
+-  (of-object "GDesktopAppInfo")
+-  (c-name "g_desktop_app_info_get_is_hidden")
+-  (return-type "gboolean")
+-)
+-
+-(define-function desktop_app_info_set_desktop_env
+-  (c-name "g_desktop_app_info_set_desktop_env")
+-  (return-type "none")
+-  (parameters
+-    '("const-char*" "desktop_env")
+-  )
+-)
+-
+-
+-
+ ;; From gunixfdmessage.h
+ 
+ (define-function g_unix_fd_message_get_type
+--- a/gio/unix.override
++++ b/gio/unix.override
+@@ -24,7 +24,6 @@
+ #define NO_IMPORT_PYGOBJECT
+ #include <pygobject.h>
+ #include <gio/gio.h>
+-#include <gio/gdesktopappinfo.h>
+ #include <gio/gunixinputstream.h>
+ #include <gio/gunixmounts.h>
+ #include <gio/gunixoutputstream.h>
diff --git a/pkgs/development/python-modules/pygraphviz/default.nix b/pkgs/development/python-modules/pygraphviz/default.nix
index 8ca84e9b7c0e..1fcc0ef8ce48 100644
--- a/pkgs/development/python-modules/pygraphviz/default.nix
+++ b/pkgs/development/python-modules/pygraphviz/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi, graphviz
+{ stdenv, buildPythonPackage, fetchPypi, substituteAll, graphviz
 , pkgconfig, doctest-ignore-unicode, mock, nose }:
 
 buildPythonPackage rec {
@@ -10,17 +10,18 @@ buildPythonPackage rec {
     sha256 = "7c294cbc9d88946be671cc0d8602aac176d8c56695c0a7d871eadea75a958408";
   };
 
-  buildInputs = [ doctest-ignore-unicode mock nose ];
-  propagatedBuildInputs = [ graphviz pkgconfig ];
+  nativeBuildInputs = [ pkgconfig ];
+  buildInputs = [ graphviz ];
+  checkInputs = [ doctest-ignore-unicode mock nose ];
 
   patches = [
     # pygraphviz depends on graphviz being in PATH. This patch always prepends
     # graphviz to PATH.
-    ./graphviz-path.patch
+    (substituteAll {
+      src = ./graphviz-path.patch;
+      inherit graphviz;
+    })
   ];
-  postPatch = ''
-    substituteInPlace pygraphviz/agraph.py --subst-var-by graphvizPath '${graphviz}/bin'
-  '';
 
   # The tests are currently failing because of a bug in graphviz 2.40.1.
   # Upstream does not want to skip the relevant tests:
diff --git a/pkgs/development/python-modules/pygraphviz/graphviz-path.patch b/pkgs/development/python-modules/pygraphviz/graphviz-path.patch
index dde6df967f0d..e4ff925009d7 100644
--- a/pkgs/development/python-modules/pygraphviz/graphviz-path.patch
+++ b/pkgs/development/python-modules/pygraphviz/graphviz-path.patch
@@ -7,7 +7,7 @@ index 8f72024..2d8358e 100644
          import glob
  
 -        paths = os.environ["PATH"]
-+        paths = '@graphvizPath@:' + os.environ["PATH"]
++        paths = '@graphviz@/bin:' + os.environ["PATH"]
          if os.name == "nt":
              exe = ".exe"
          else:
diff --git a/pkgs/development/python-modules/pymacaroons-pynacl/default.nix b/pkgs/development/python-modules/pymacaroons-pynacl/default.nix
deleted file mode 100644
index 8bc644252c0f..000000000000
--- a/pkgs/development/python-modules/pymacaroons-pynacl/default.nix
+++ /dev/null
@@ -1,24 +0,0 @@
-{ lib, buildPythonPackage, fetchFromGitHub, pynacl, six }:
-
-buildPythonPackage rec {
-  pname = "pymacaroons-pynacl";
-  version = "0.9.3";
-
-  src = fetchFromGitHub {
-    owner = "matrix-org";
-    repo = "pymacaroons";
-    rev = "v${version}";
-    sha256 = "0bykjk01zdndp6gjr30x46blsn0cvxa7j0zh5g8raxwaawchjhii";
-  };
-
-  propagatedBuildInputs = [ pynacl six ];
-
-  # Tests require an old version of hypothesis
-  doCheck = false;
-
-  meta = with lib; {
-    description = "Macaroon library for Python";
-    homepage = https://github.com/matrix-org/pymacaroons;
-    license = licenses.mit;
-  };
-}
diff --git a/pkgs/development/python-modules/pymacaroons/default.nix b/pkgs/development/python-modules/pymacaroons/default.nix
new file mode 100644
index 000000000000..96023c01e1e5
--- /dev/null
+++ b/pkgs/development/python-modules/pymacaroons/default.nix
@@ -0,0 +1,25 @@
+{ lib, buildPythonPackage, fetchPypi, six, pynacl }:
+
+buildPythonPackage rec {
+  pname = "pymacaroons";
+  version = "0.13.0";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1e6bba42a5f66c245adf38a5a4006a99dcc06a0703786ea636098667d42903b8";
+  };
+
+  propagatedBuildInputs = [
+    six
+    pynacl
+  ];
+
+  # Tests require an old version of hypothesis
+  doCheck = false;
+
+  meta = with lib; {
+    description = "Macaroon library for Python";
+    homepage = https://github.com/ecordell/pymacaroons;
+    license = licenses.mit;
+  };
+}
diff --git a/pkgs/development/python-modules/pymongo/2_9_1.nix b/pkgs/development/python-modules/pymongo/2_9_1.nix
deleted file mode 100644
index 8e0b0858754d..000000000000
--- a/pkgs/development/python-modules/pymongo/2_9_1.nix
+++ /dev/null
@@ -1,24 +0,0 @@
-{ stdenv
-, buildPythonPackage
-, fetchPypi
-}:
-
-buildPythonPackage rec {
-  pname = "pymongo";
-  version = "2.9.5";
-
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "912516ac6a355d7624374a38337b8587afe3eb535c0a5456b3bd12df637a6e70";
-  };
-
-  # Tests call a running mongodb instance
-  doCheck = false;
-
-  meta = with stdenv.lib; {
-    homepage = https://github.com/mongodb/mongo-python-driver;
-    license = licenses.asl20;
-    description = "Python driver for MongoDB ";
-  };
-
-}
diff --git a/pkgs/development/python-modules/pymongo/default.nix b/pkgs/development/python-modules/pymongo/default.nix
index 392a0ec580fe..792b8b1bd5b4 100644
--- a/pkgs/development/python-modules/pymongo/default.nix
+++ b/pkgs/development/python-modules/pymongo/default.nix
@@ -1,20 +1,20 @@
-{ stdenv, buildPythonPackage, fetchPypi }:
+{ lib, buildPythonPackage, fetchPypi }:
 
 buildPythonPackage rec {
   pname = "pymongo";
   version = "3.7.2";
-  name  = "${pname}-${version}";
 
   src = fetchPypi {
     inherit pname version;
     sha256 = "8c74e2a9b594f7962c62cef7680a4cb92a96b4e6e3c2f970790da67cc0213a7e";
   };
 
+  # Tests call a running mongodb instance
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = https://github.com/mongodb/mongo-python-driver;
     license = licenses.asl20;
-    description = "Python driver for MongoDB ";
+    description = "Python driver for MongoDB";
   };
 }
diff --git a/pkgs/development/python-modules/pynvim/default.nix b/pkgs/development/python-modules/pynvim/default.nix
index 3811e5082c0f..40aae88c3ab7 100644
--- a/pkgs/development/python-modules/pynvim/default.nix
+++ b/pkgs/development/python-modules/pynvim/default.nix
@@ -11,11 +11,11 @@
 
 buildPythonPackage rec {
   pname = "pynvim";
-  version = "0.3.1";
+  version = "0.3.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1yxh8zdigzs330m4gchxk6m323glz81x85q5fzgc4saq0naib26x";
+    sha256 = "01dybk4vs452pljn1q3il5z2sd313ki0lgiglc0xmjc6wp290r6g";
   };
 
   checkInputs = [ nose ];
diff --git a/pkgs/development/python-modules/pyobjc/default.nix b/pkgs/development/python-modules/pyobjc/default.nix
index 96a546e694c0..8c7af06b7434 100644
--- a/pkgs/development/python-modules/pyobjc/default.nix
+++ b/pkgs/development/python-modules/pyobjc/default.nix
@@ -2,7 +2,7 @@
 
 buildPythonPackage rec {
   pname = "pyobjc";
-  version = "5.1.1";
+  version = "5.1.2";
 
   # Gives "No matching distribution found for
   # pyobjc-framework-Collaboration==4.0b1 (from pyobjc==4.0b1)"
@@ -10,7 +10,7 @@ buildPythonPackage rec {
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "2b094596e8bd36be1f63c8c0501dc4ac7899299224111a5877648774a92eec45";
+    sha256 = "ccfc96382bf04977c68a06733f1d7499a7ddeb1f74760e3f8de483f9a542e691";
   };
 
   meta = {
diff --git a/pkgs/development/python-modules/pyogg/default.nix b/pkgs/development/python-modules/pyogg/default.nix
index 09b7f3861303..901cc137f192 100644
--- a/pkgs/development/python-modules/pyogg/default.nix
+++ b/pkgs/development/python-modules/pyogg/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
     pname = "PyOgg";
-    version = "0.6.2a1";
+    version = "0.6.6a1";
 
     src = fetchPypi {
       inherit pname version;
-      sha256 = "1mjh5zx7mfy246lya1qc42j4q4pz6v5zbd8blnfib9ncswcb1v6l";
+      sha256 = "1ihzgl8p0rc3yjsp27zdrrs2r4qar5yf5l4v8wg0lilvan78h0rs";
     };
 
     buildInputs = [ libvorbis flac libogg libopus ];
diff --git a/pkgs/development/python-modules/pyopencl/default.nix b/pkgs/development/python-modules/pyopencl/default.nix
index 5416e3795624..274c72974fe6 100644
--- a/pkgs/development/python-modules/pyopencl/default.nix
+++ b/pkgs/development/python-modules/pyopencl/default.nix
@@ -15,7 +15,7 @@
 
 buildPythonPackage rec {
   pname = "pyopencl";
-  version = "2018.2.1";
+  version = "2018.2.2";
 
   checkInputs = [ pytest ];
   buildInputs = [ opencl-headers ocl-icd ];
@@ -24,7 +24,7 @@ buildPythonPackage rec {
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "5ed40baccb493e8e9ac394f15c64871954d234fd6d9250c50bee1466d8bd8e48";
+    sha256 = "419375fb794d97f9bd46f0dc24ce83b5cc83d316771ba82fac80de8bf883dcdc";
   };
 
   # py.test is not needed during runtime, so remove it from `install_requires`
diff --git a/pkgs/development/python-modules/pyopenssl/default.nix b/pkgs/development/python-modules/pyopenssl/default.nix
index d6b966b6df3c..a6e8e94e094f 100644
--- a/pkgs/development/python-modules/pyopenssl/default.nix
+++ b/pkgs/development/python-modules/pyopenssl/default.nix
@@ -68,7 +68,7 @@ buildPythonPackage rec {
   # for one example, but I've also seen ContextTests.test_set_verify_callback_exception fail.
   doCheck = !stdenv.isDarwin;
 
-  buildInputs = [ openssl ];
+  nativeBuildInputs = [ openssl ];
   propagatedBuildInputs = [ cryptography pyasn1 idna ];
 
   checkInputs = [ pytest pretend flaky glibcLocales ];
diff --git a/pkgs/development/python-modules/pyparsing/default.nix b/pkgs/development/python-modules/pyparsing/default.nix
index df94117bfe5f..a6e8d6201384 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.3.0";
+    version = "2.3.1";
 
     src = fetchPypi {
       inherit pname version;
-      sha256 = "f353aab21fd474459d97b709e527b5571314ee5f067441dc9f88e33eecd96592";
+      sha256 = "66c9268862641abcac4a96ba74506e594c884e3f57690a696d21ad8210ed667a";
     };
 
     # Not everything necessary to run the tests is included in the distribution
diff --git a/pkgs/development/python-modules/pyrsistent/default.nix b/pkgs/development/python-modules/pyrsistent/default.nix
index ceb0d718a403..e916c907e4f1 100644
--- a/pkgs/development/python-modules/pyrsistent/default.nix
+++ b/pkgs/development/python-modules/pyrsistent/default.nix
@@ -9,11 +9,11 @@
 
 buildPythonPackage rec {
   pname = "pyrsistent";
-  version = "0.14.6";
+  version = "0.14.9";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "5a31f6b093da3401fefdeb53a0980e3145bb9d2bf852b579cc7b39c7f0016c87";
+    sha256 = "0xwaqjjn665wd1rllqzndmlc8yzfw2wxakpfwlh6ir6kgbajff2s";
   };
 
   propagatedBuildInputs = [ six ];
diff --git a/pkgs/development/python-modules/pysam/default.nix b/pkgs/development/python-modules/pysam/default.nix
index 3138c114e697..05f2db8ac063 100644
--- a/pkgs/development/python-modules/pysam/default.nix
+++ b/pkgs/development/python-modules/pysam/default.nix
@@ -14,7 +14,7 @@
 
 buildPythonPackage rec {
   pname   = "pysam";
-  version = "0.15.1";
+  version = "0.15.2";
 
   # Fetching from GitHub instead of PyPi cause the 0.13 src release on PyPi is
   # missing some files which cause test failures.
@@ -23,7 +23,7 @@ buildPythonPackage rec {
     owner = "pysam-developers";
     repo = "pysam";
     rev = "v${version}";
-    sha256 = "1vj367w6xbn9bpmksm162l1aipf7cj97h1q83y7jcpm33ihwpf7x";
+    sha256 = "03aczbzx6gmvgy60fhswpwkry7a8zb5q1pbp55v5gx8hk15n40k1";
   };
 
   buildInputs = [ bzip2 curl cython lzma zlib ];
diff --git a/pkgs/development/python-modules/pysaml2/default.nix b/pkgs/development/python-modules/pysaml2/default.nix
index 1e9ce18afb9a..04d0d1c34a54 100644
--- a/pkgs/development/python-modules/pysaml2/default.nix
+++ b/pkgs/development/python-modules/pysaml2/default.nix
@@ -1,61 +1,41 @@
 { stdenv
 , buildPythonPackage
-, fetchPypi
-, fetchpatch
-, repoze_who
-, paste
-, cryptography
-, pycrypto
-, pyopenssl
-, ipaddress
-, six
-, cffi
-, idna
-, enum34
-, pytz
-, setuptools
-, zope_interface
-, dateutil
-, requests
-, pyasn1
-, webob
-, decorator
-, pycparser
-, defusedxml
-, Mako
-, pytest
-, memcached
-, pymongo
-, mongodict
-, pkgs
+, fetchFromGitHub
+, substituteAll
+, xmlsec
+, cryptography, defusedxml, future, pyopenssl, dateutil, pytz, requests, six
+, mock, pyasn1, pymongo, pytest, responses
 }:
 
 buildPythonPackage rec {
   pname = "pysaml2";
-  version = "3.0.2";
-
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "0y2iw1dddcvi13xjh3l52z1mvnrbc41ik9k4nn7lwj8x5kimnk9n";
+  version = "4.6.5";
+
+  # No tests in PyPI tarball
+  src = fetchFromGitHub {
+    owner = "IdentityPython";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "0xlbr52vzx1j9sg65jhqv01vp4a49afjy03lc2zb0ggx0xxzngvb";
   };
 
   patches = [
-    (fetchpatch {
-      name = "CVE-2016-10127.patch";
-      url = "https://sources.debian.net/data/main/p/python-pysaml2/3.0.0-5/debian/patches/fix-xxe-in-xml-parsing.patch";
-      sha256 = "184lkwdayjqiahzsn4yp15parqpmphjsb1z7zwd636jvarxqgs2q";
+    (substituteAll {
+      src = ./hardcode-xmlsec1-path.patch;
+      inherit xmlsec;
     })
   ];
 
-  propagatedBuildInputs = [ repoze_who paste cryptography pycrypto pyopenssl ipaddress six cffi idna enum34 pytz setuptools zope_interface dateutil requests pyasn1 webob decorator pycparser defusedxml ];
-  buildInputs = [ Mako pytest memcached pymongo mongodict pkgs.xmlsec ];
+  propagatedBuildInputs = [ cryptography defusedxml future pyopenssl dateutil pytz requests six ];
 
-  preConfigure = ''
-    sed -i 's/pymongo==3.0.1/pymongo/' setup.py
-  '';
+  checkInputs = [ mock pyasn1 pymongo pytest responses ];
 
-  # 16 failed, 427 passed, 17 error in 88.85 seconds
-  doCheck = false;
+  # Disabled tests try to access the network
+  checkPhase = ''
+    py.test -k "not test_load_extern_incommon \
+            and not test_load_remote_encoding \
+            and not test_load_external"
+  '';
 
   meta = with stdenv.lib; {
     homepage = "https://github.com/rohe/pysaml2";
diff --git a/pkgs/development/python-modules/pysaml2/hardcode-xmlsec1-path.patch b/pkgs/development/python-modules/pysaml2/hardcode-xmlsec1-path.patch
new file mode 100644
index 000000000000..d984c55a8a7f
--- /dev/null
+++ b/pkgs/development/python-modules/pysaml2/hardcode-xmlsec1-path.patch
@@ -0,0 +1,39 @@
+diff --git a/src/saml2/sigver.py b/src/saml2/sigver.py
+index 59fe2dee..0c24fbcc 100644
+--- a/src/saml2/sigver.py
++++ b/src/saml2/sigver.py
+@@ -165,33 +165,7 @@ def get_xmlsec_binary(paths=None):
+     :return: full name of the xmlsec1 binary found. If no binaries are
+         found then an exception is raised.
+     """
+-    if os.name == 'posix':
+-        bin_name = ['xmlsec1']
+-    elif os.name == 'nt':
+-        bin_name = ['xmlsec.exe', 'xmlsec1.exe']
+-    else:  # Default !?
+-        bin_name = ['xmlsec1']
+-
+-    if paths:
+-        for bname in bin_name:
+-            for path in paths:
+-                fil = os.path.join(path, bname)
+-                try:
+-                    if os.lstat(fil):
+-                        return fil
+-                except OSError:
+-                    pass
+-
+-    for path in os.environ['PATH'].split(os.pathsep):
+-        for bname in bin_name:
+-            fil = os.path.join(path, bname)
+-            try:
+-                if os.lstat(fil):
+-                    return fil
+-            except OSError:
+-                pass
+-
+-    raise SigverError('Cannot find {binary}'.format(binary=bin_name))
++    return '@xmlsec@/bin/xmlsec1'
+ 
+ 
+ def _get_xmlsec_cryptobackend(path=None, search_paths=None):
diff --git a/pkgs/development/python-modules/pyshp/default.nix b/pkgs/development/python-modules/pyshp/default.nix
index b9c5fb4583fa..b58e1f48bb80 100644
--- a/pkgs/development/python-modules/pyshp/default.nix
+++ b/pkgs/development/python-modules/pyshp/default.nix
@@ -2,12 +2,12 @@
 , setuptools }:
 
 buildPythonPackage rec {
-  version = "2.0.0";
+  version = "2.0.1";
   pname = "pyshp";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0l5a28878vplwclqvjj7v0xx6zlr03ia1dkq5hc3mxf05bahiwyz";
+    sha256 = "049xj760s75nkvs7rhz710a6x3lvvfajddknmfz1vkf2p3f2l2as";
   };
 
   buildInputs = [ setuptools ];
diff --git a/pkgs/development/python-modules/pyslurm/default.nix b/pkgs/development/python-modules/pyslurm/default.nix
index 7d592c7b450b..d8609ca07766 100644
--- a/pkgs/development/python-modules/pyslurm/default.nix
+++ b/pkgs/development/python-modules/pyslurm/default.nix
@@ -1,4 +1,4 @@
-{ lib, fetchFromGitHub, buildPythonPackage, cython, slurm }:
+{ lib, fetchFromGitHub, fetchpatch, buildPythonPackage, cython, slurm }:
 
 buildPythonPackage rec {
   pname = "pyslurm";
@@ -11,6 +11,19 @@ buildPythonPackage rec {
     sha256 = "1rymx106xa99wd4n44s7jw0w41spg39y1ji4fgn01yk7wjfrdrwg";
   };
 
+  # Needed for patch below to apply
+  prePatch = ''
+    sed -i -e '/__max_slurm_hex_version__ = "0x1208/c__max_slurm_hex_version__ = "0x120804"' setup.py
+  '';
+
+  patches = [
+    # Implements a less strict slurm version check
+    (fetchpatch {
+      url = "https://github.com/PySlurm/pyslurm/commit/d3703f2d58b5177d29092fe1aae1f7a96da61765.diff";
+      sha256 = "1s41z9bhzhplgg08p1llc3i8zw20r1479s04y0l1vx0ak51b6w0k";
+    })
+  ];
+
   buildInputs = [ cython slurm ];
   setupPyBuildFlags = [ "--slurm-lib=${slurm}/lib" "--slurm-inc=${slurm.dev}/include" ];
 
diff --git a/pkgs/development/python-modules/pysmi/default.nix b/pkgs/development/python-modules/pysmi/default.nix
index 329daf693b0b..723d95b89a57 100644
--- a/pkgs/development/python-modules/pysmi/default.nix
+++ b/pkgs/development/python-modules/pysmi/default.nix
@@ -5,12 +5,12 @@
 }:
 
 buildPythonPackage rec {
-  version = "0.3.2";
+  version = "0.3.3";
   pname = "pysmi";
 
  src = fetchPypi {
     inherit pname version;
-    sha256 = "309039ab9bd458cc721692ffff10b4ad2c4a8e731e6507c34866ca2727323353";
+    sha256 = "0bzhmi4691rf306n4y82js52532h3fp1sy6phvh6hnms6nww4daf";
   };
 
   propagatedBuildInputs = [ ply ];
diff --git a/pkgs/development/python-modules/pysnmp/default.nix b/pkgs/development/python-modules/pysnmp/default.nix
index 38ea31a19d47..f4d6ceea8dd0 100644
--- a/pkgs/development/python-modules/pysnmp/default.nix
+++ b/pkgs/development/python-modules/pysnmp/default.nix
@@ -7,12 +7,12 @@
 }:
 
 buildPythonPackage rec {
-  version = "4.4.8";
+  version = "4.4.9";
   pname = "pysnmp";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1c42qicrh56m49374kxna2s2nmdwna3yqgnz16frzj0dw7vxrrhk";
+    sha256 = "0h844s9p67z50bv83wdyf577759jg0xrj99fv4yrcvhjh2byblfm";
   };
 
   # NameError: name 'mibBuilder' is not defined
@@ -21,9 +21,9 @@ buildPythonPackage rec {
   propagatedBuildInputs = [ pyasn1 pycryptodomex pysmi ];
 
   meta = with stdenv.lib; {
-    homepage = http://pysnmp.sf.net;
+    homepage = http://snmplabs.com/pysnmp/index.html;
     description = "A pure-Python SNMPv1/v2c/v3 library";
     license = licenses.bsd2;
-    maintainers = with maintainers; [ koral ];
+    maintainers = with maintainers; [ primeos koral ];
   };
 }
diff --git a/pkgs/development/python-modules/pyspark/default.nix b/pkgs/development/python-modules/pyspark/default.nix
index 29dd344a34cb..0eca6c5ddf05 100644
--- a/pkgs/development/python-modules/pyspark/default.nix
+++ b/pkgs/development/python-modules/pyspark/default.nix
@@ -2,16 +2,19 @@
 
 buildPythonPackage rec {
   pname = "pyspark";
-  version = "2.3.2";
+  version = "2.4.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "7fb3b4fe47edb0fb78cecec37e0f2a728590f17ef6a49eae55141a7a374c07c8";
+    sha256 = "1p7z5f1a20l7xkjkh88q9cvjw2x8jbrlydkycn5lh4qvx72vgmy9";
   };
 
   # pypandoc is broken with pandoc2, so we just lose docs.
   postPatch = ''
     sed -i "s/'pypandoc'//" setup.py
+
+    # Current release works fine with py4j 0.10.8.1
+    substituteInPlace setup.py --replace py4j==0.10.7 'py4j>=0.10.7,<0.11'
   '';
 
   propagatedBuildInputs = [ py4j ];
diff --git a/pkgs/development/python-modules/pytest-benchmark/default.nix b/pkgs/development/python-modules/pytest-benchmark/default.nix
index 0f3475f715d0..0a361627e8e9 100644
--- a/pkgs/development/python-modules/pytest-benchmark/default.nix
+++ b/pkgs/development/python-modules/pytest-benchmark/default.nix
@@ -11,13 +11,13 @@
 
 buildPythonPackage rec {
   pname = "pytest-benchmark";
-  version = "3.1.1";
+  version = "3.2.2";
 
   src = fetchFromGitHub {
     owner = "ionelmc";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1ch079dlc6c9ag74dh4dg6plkmh0h8kn78ari3fgadc75bald71m";
+    sha256 = "1hslzzinpwc1zqhbpllqh3sllmiyk69pcycl7ahr0rz3micgwczj";
   };
 
   propagatedBuildInputs = [ pytest py-cpuinfo ] ++ lib.optional (pythonOlder "3.4") [ pathlib statistics ];
diff --git a/pkgs/development/python-modules/pytest-cov/default.nix b/pkgs/development/python-modules/pytest-cov/default.nix
index 9e7ffc3644df..1bb5d001ddbd 100644
--- a/pkgs/development/python-modules/pytest-cov/default.nix
+++ b/pkgs/development/python-modules/pytest-cov/default.nix
@@ -3,11 +3,11 @@
 
 buildPythonPackage rec {
   pname = "pytest-cov";
-  version = "2.6.0";
+  version = "2.6.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "e360f048b7dae3f2f2a9a4d067b2dd6b6a015d384d1577c994a43f3f7cbad762";
+    sha256 = "0ab664b25c6aa9716cbf203b17ddb301932383046082c081b9848a0edf5add33";
   };
 
   buildInputs = [ pytest pytest_xdist virtualenv process-tests ];
diff --git a/pkgs/development/python-modules/pytest-cram/default.nix b/pkgs/development/python-modules/pytest-cram/default.nix
index 3ca4f832c8cf..9639bd7f7787 100644
--- a/pkgs/development/python-modules/pytest-cram/default.nix
+++ b/pkgs/development/python-modules/pytest-cram/default.nix
@@ -4,7 +4,7 @@ buildPythonPackage rec {
   version = "0.2.0";
   pname = "pytest-cram";
 
-  buildInputs = [ pytest ];
+  checkInputs = [ pytest ];
   propagatedBuildInputs = [ cram ];
 
   src = fetchPypi {
diff --git a/pkgs/development/python-modules/pytest-django/default.nix b/pkgs/development/python-modules/pytest-django/default.nix
index 0c53d3ceb9c6..ed38b5b52651 100644
--- a/pkgs/development/python-modules/pytest-django/default.nix
+++ b/pkgs/development/python-modules/pytest-django/default.nix
@@ -10,15 +10,15 @@
 }:
 buildPythonPackage rec {
   pname = "pytest-django";
-  version = "3.4.4";
+  version = "3.4.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "07zl2438gavrcykva6i2lpxmzgf90h4xlm3nqgd7wsqz2yh727zy";
+    sha256 = "0r190xb707817la5kw5i3m646ijmg025zqy55gz16py94wsnav5y";
   };
 
-  buildInputs = [ pytest setuptools_scm ];
-  checkInputs = [ django-configurations pytest_xdist six ];
+  nativeBuildInputs = [ pytest setuptools_scm ];
+  checkInputs = [ pytest django-configurations pytest_xdist six ];
   propagatedBuildInputs = [ django ];
 
   # Complicated. Requires Django setup.
diff --git a/pkgs/development/python-modules/pytest-flake8/default.nix b/pkgs/development/python-modules/pytest-flake8/default.nix
index 558fe32b909d..eb8a2e3e1177 100644
--- a/pkgs/development/python-modules/pytest-flake8/default.nix
+++ b/pkgs/development/python-modules/pytest-flake8/default.nix
@@ -2,17 +2,17 @@
 
 buildPythonPackage rec {
   pname = "pytest-flake8";
-  version = "1.0.2";
+  version = "1.0.3";
 
   # although pytest is a runtime dependency, do not add it as
   # propagatedBuildInputs in order to allow packages depend on another version
   # of pytest more easily
-  buildInputs = [ pytest ];
+  checkInputs = [ pytest ];
   propagatedBuildInputs = [ flake8 ];
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "c740ad6aa19e3958947d2118f70bed218caf1d2097039fb7318573a2a72f89a1";
+    sha256 = "b2c71fb6d469bae076a01c43d4a83485d740db6a8a00bad77e0657ed035e98d4";
   };
 
   checkPhase = ''
diff --git a/pkgs/development/python-modules/pytest-rerunfailures/default.nix b/pkgs/development/python-modules/pytest-rerunfailures/default.nix
index 756bd19933dd..aeea977ad338 100644
--- a/pkgs/development/python-modules/pytest-rerunfailures/default.nix
+++ b/pkgs/development/python-modules/pytest-rerunfailures/default.nix
@@ -2,24 +2,23 @@
 
 buildPythonPackage rec {
   pname = "pytest-rerunfailures";
-  version = "4.2";
+  version = "6.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "97216f8a549f74da3cc786236d9093fbd43150a6fbe533ba622cb311f7431774";
+    sha256 = "978349ae00687504fd0f9d0970c37199ccd89cbdb0cb8c4ed7ee417ede582b40";
   };
 
   checkInputs = [ mock ];
 
   propagatedBuildInputs = [ pytest ];
 
-  # disable tests that fail with pytest 3.7.4
   checkPhase = ''
-    py.test test_pytest_rerunfailures.py -k 'not test_reruns_with_delay'
+    py.test test_pytest_rerunfailures.py
   '';
 
   meta = with stdenv.lib; {
-    description = "pytest plugin to re-run tests to eliminate flaky failures.";
+    description = "pytest plugin to re-run tests to eliminate flaky failures";
     homepage = https://github.com/pytest-dev/pytest-rerunfailures;
     license = licenses.mpl20;
     maintainers = with maintainers; [ jgeerds ];
diff --git a/pkgs/development/python-modules/pytest/default.nix b/pkgs/development/python-modules/pytest/default.nix
index dc928130cbb1..9412a750a9ab 100644
--- a/pkgs/development/python-modules/pytest/default.nix
+++ b/pkgs/development/python-modules/pytest/default.nix
@@ -2,59 +2,46 @@
 , setuptools_scm, setuptools, six, pluggy, funcsigs, isPy3k, more-itertools
 , atomicwrites, mock, writeText, pathlib2
 }:
+buildPythonPackage rec {
+  version = "3.9.3";
+  pname = "pytest";
 
-let generic = { version, sha256 }:
-  buildPythonPackage rec {
-    pname = "pytest";
-    inherit version;
+  preCheck = ''
+    # don't test bash builtins
+    rm testing/test_argcomplete.py
+  '';
 
-    preCheck = ''
-      # don't test bash builtins
-      rm testing/test_argcomplete.py
-    '';
-
-    src = fetchPypi {
-      inherit pname version sha256;
-    };
-
-    checkInputs = [ hypothesis mock ];
-    buildInputs = [ setuptools_scm ];
-    propagatedBuildInputs = [ attrs py setuptools six pluggy more-itertools atomicwrites]
-      ++ stdenv.lib.optionals (!isPy3k) [ funcsigs ]
-      ++ stdenv.lib.optionals (pythonOlder "3.6") [ pathlib2 ];
-
-    checkPhase = ''
-      runHook preCheck
-      $out/bin/py.test -x testing/
-      runHook postCheck
-    '';
-
-    # Remove .pytest_cache when using py.test in a Nix build
-    setupHook = writeText "pytest-hook" ''
-      pytestcachePhase() {
-          find $out -name .pytest_cache -type d -exec rm -rf {} +
-      }
-
-      preDistPhases+=" pytestcachePhase"
-    '';
-
-    meta = with stdenv.lib; {
-      homepage = https://docs.pytest.org;
-      description = "Framework for writing tests";
-      maintainers = with maintainers; [ domenkozar lovek323 madjar lsix ];
-      license = licenses.mit;
-      platforms = platforms.unix;
-    };
-  };
-
-in {
-  pytest_39 = generic {
-    version = "3.9.3";
+  src = fetchPypi {
+    inherit pname version;
     sha256 = "a9e5e8d7ab9d5b0747f37740276eb362e6a76275d76cebbb52c6049d93b475db";
   };
 
-  pytest_37 = generic {
-    version = "3.7.4";
-    sha256 = "2d7c49e931316cc7d1638a3e5f54f5d7b4e5225972b3c9838f3584788d27f349";
+  checkInputs = [ hypothesis mock ];
+  buildInputs = [ setuptools_scm ];
+  propagatedBuildInputs = [ attrs py setuptools six pluggy more-itertools atomicwrites]
+    ++ stdenv.lib.optionals (!isPy3k) [ funcsigs ]
+    ++ stdenv.lib.optionals (pythonOlder "3.6") [ pathlib2 ];
+
+  checkPhase = ''
+    runHook preCheck
+    $out/bin/py.test -x testing/
+    runHook postCheck
+  '';
+
+  # Remove .pytest_cache when using py.test in a Nix build
+  setupHook = writeText "pytest-hook" ''
+    pytestcachePhase() {
+        find $out -name .pytest_cache -type d -exec rm -rf {} +
+    }
+
+    preDistPhases+=" pytestcachePhase"
+  '';
+
+  meta = with stdenv.lib; {
+    homepage = https://docs.pytest.org;
+    description = "Framework for writing tests";
+    maintainers = with maintainers; [ domenkozar lovek323 madjar lsix ];
+    license = licenses.mit;
+    platforms = platforms.unix;
   };
 }
diff --git a/pkgs/development/python-modules/pytestrunner/default.nix b/pkgs/development/python-modules/pytestrunner/default.nix
index 4d9b9b761577..78ad4d2abc8c 100644
--- a/pkgs/development/python-modules/pytestrunner/default.nix
+++ b/pkgs/development/python-modules/pytestrunner/default.nix
@@ -9,7 +9,7 @@ buildPythonPackage rec {
     sha256 = "d23f117be39919f00dd91bffeb4f15e031ec797501b717a245e377aee0f577be";
   };
 
-  buildInputs = [ setuptools_scm pytest ];
+  nativeBuildInputs = [ setuptools_scm pytest ];
 
   postPatch = ''
     rm pytest.ini
@@ -24,7 +24,7 @@ buildPythonPackage rec {
 
   meta = with stdenv.lib; {
     description = "Invoke py.test as distutils command with dependency resolution";
-    homepage = https://bitbucket.org/pytest-dev/pytest-runner;
+    homepage = https://github.com/pytest-dev/pytest-runner;
     license = licenses.mit;
   };
 }
diff --git a/pkgs/development/python-modules/python-docx/default.nix b/pkgs/development/python-modules/python-docx/default.nix
index 1a85c5256d72..f86cdc665a1d 100644
--- a/pkgs/development/python-modules/python-docx/default.nix
+++ b/pkgs/development/python-modules/python-docx/default.nix
@@ -10,11 +10,11 @@
 
 buildPythonPackage rec {
   pname = "python-docx";
-  version = "0.8.7";
+  version = "0.8.10";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "ba9f2a7ca391b78ab385d796b38af3f21bab23c727fc8e0c5e630448d1a11fe3";
+    sha256 = "bc76ecac6b2d00ce6442a69d03a6f35c71cd72293cd8405a7472dfe317920024";
   };
 
   checkInputs = [ behave mock pyparsing pytest ];
diff --git a/pkgs/development/python-modules/python-gitlab/default.nix b/pkgs/development/python-modules/python-gitlab/default.nix
index 24ab69f1a0bc..8c030ec8639b 100644
--- a/pkgs/development/python-modules/python-gitlab/default.nix
+++ b/pkgs/development/python-modules/python-gitlab/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname   = "python-gitlab";
-  version = "1.6.0";
+  version = "1.7.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "20ceb9232f9a412ce6554056a6b5039013d0755261d57b5c8ada7035773de795";
+    sha256 = "17nh09c28vf2daamyq97bdzgr685lyh668haisqbbp5lkn9gh7j0";
   };
 
   propagatedBuildInputs = [ requests six ];
diff --git a/pkgs/development/python-modules/python-gnupg/default.nix b/pkgs/development/python-modules/python-gnupg/default.nix
index 86e58d489a61..1ecf5fe10618 100644
--- a/pkgs/development/python-modules/python-gnupg/default.nix
+++ b/pkgs/development/python-modules/python-gnupg/default.nix
@@ -1,17 +1,14 @@
 { stdenv, buildPythonPackage, fetchPypi, gnupg1 }:
 
 buildPythonPackage rec {
-  name    = "${pname}-${version}";
   pname   = "python-gnupg";
-  version = "0.4.3";
+  version = "0.4.4";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "2d158dfc6b54927752b945ebe57e6a0c45da27747fa3b9ae66eccc0d2147ac0d";
+    sha256 = "45daf020b370bda13a1429c859fcdff0b766c0576844211446f9266cae97fb0e";
   };
 
-  propagatedBuildInputs = [ gnupg1 ];
-
   # Let's make the library default to our gpg binary
   patchPhase = ''
     substituteInPlace gnupg.py \
diff --git a/pkgs/development/python-modules/python-jenkins/default.nix b/pkgs/development/python-modules/python-jenkins/default.nix
index cdce1b337183..44f1c0d6c39d 100644
--- a/pkgs/development/python-modules/python-jenkins/default.nix
+++ b/pkgs/development/python-modules/python-jenkins/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib
 , buildPythonPackage
 , fetchPypi
 , python
@@ -11,28 +11,33 @@
 , testscenarios
 , testrepository
 , kerberos
+, requests
+, unittest2
+, requests-mock
 }:
 
 buildPythonPackage rec {
   pname = "python-jenkins";
-  version = "1.3.0";
+  version = "1.4.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "b44b3c8e0dabed371a1a8a301cc8833c635625faf003fd68c176800c71a6597c";
+    sha256 = "1h14hfcwichmppbgxf1k8njw29hchpav1kj574b4lly3j0n2vnag";
   };
 
-  patchPhase = ''
-    sed -i 's@python@${python.interpreter}@' .testr.conf
-  '';
-
   buildInputs = [ mock ];
-  propagatedBuildInputs = [ pbr pyyaml six multi_key_dict testtools testscenarios testrepository kerberos ];
+  propagatedBuildInputs = [ pbr pyyaml six multi_key_dict requests ];
+
+  checkInputs = [ unittest2 testscenarios requests-mock ];
+  checkPhase = ''
+    unit2
+  '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Python bindings for the remote Jenkins API";
     homepage = https://pypi.python.org/pypi/python-jenkins;
     license = licenses.bsd3;
+    maintainers = with maintainers; [ ma27 ];
   };
 
 }
diff --git a/pkgs/development/python-modules/python-socketio/default.nix b/pkgs/development/python-modules/python-socketio/default.nix
index 274adb9d4241..f58b42aa04cc 100644
--- a/pkgs/development/python-modules/python-socketio/default.nix
+++ b/pkgs/development/python-modules/python-socketio/default.nix
@@ -8,11 +8,11 @@
 
 buildPythonPackage rec {
   pname = "python-socketio";
-  version = "2.1.0";
+  version = "2.1.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "10457ahvi16iyshmynr0j9palfsbnpzya8p1nmlhzrcr11fsnkb7";
+    sha256 = "9e9d87d5f3cd6d39c42dd665e1fe3e12361637e28f5ad9a7aa8f73358b7a3dd5";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/python-utils/default.nix b/pkgs/development/python-modules/python-utils/default.nix
index b7744ce79c3b..7aa776540061 100644
--- a/pkgs/development/python-modules/python-utils/default.nix
+++ b/pkgs/development/python-modules/python-utils/default.nix
@@ -1,29 +1,23 @@
-{ lib, buildPythonPackage, fetchFromGitHub, pytest, pytestrunner, pytestcov, pytestflakes, pytestpep8, sphinx, six }:
+{ lib, buildPythonPackage, fetchPypi, pytest, pytestrunner, pytestcov, pytestflakes, pytestpep8, sphinx, six }:
 
 buildPythonPackage rec {
   pname = "python-utils";
   version = "2.3.0";
-  name = pname + "-" + version;
 
-  src = fetchFromGitHub {
-    owner = "WoLpH";
-    repo = "python-utils";
-    rev = "v${version}";
-    sha256 = "14gyphcqwa77wfbnrzj363v3fdkxy08378lgd7l3jqnpvr8pfp5c";
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "34aaf26b39b0b86628008f2ae0ac001b30e7986a8d303b61e1357dfcdad4f6d3";
   };
 
-  checkInputs = [ pytest pytestrunner pytestcov pytestflakes pytestpep8 sphinx ];
-
   postPatch = ''
-    # pytest-runner is only actually required in checkPhase
-    substituteInPlace setup.py --replace "setup_requires=['pytest-runner']," ""
+    rm -r tests/__pycache__
+    rm tests/*.pyc
   '';
 
-  # Tests failing
-  doCheck = false;
+  checkInputs = [ pytest pytestrunner pytestcov pytestflakes pytestpep8 sphinx ];
 
   checkPhase = ''
-    py.test
+    py.test tests
   '';
 
   propagatedBuildInputs = [ six ];
diff --git a/pkgs/development/python-modules/python-vagrant/default.nix b/pkgs/development/python-modules/python-vagrant/default.nix
new file mode 100644
index 000000000000..88982f15293b
--- /dev/null
+++ b/pkgs/development/python-modules/python-vagrant/default.nix
@@ -0,0 +1,21 @@
+{ lib, buildPythonPackage, fetchPypi }:
+
+buildPythonPackage rec {
+  version = "0.5.15";
+  pname = "python-vagrant";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1ikrh6canhcxg5y7pzmkcnnydikppv7s6sm9prfx90nk0ac8m6mg";
+  };
+
+  # The tests try to connect to qemu
+  doCheck = false;
+
+  meta = {
+    description = "Python module that provides a thin wrapper around the vagrant command line executable";
+    homepage = https://github.com/todddeluca/python-vagrant;
+    license = lib.licenses.mit;
+    maintainers = [ lib.maintainers.pmiddend ];
+  };
+}
diff --git a/pkgs/development/python-modules/python_openzwave/default.nix b/pkgs/development/python-modules/python_openzwave/default.nix
index 04348ed2ecb5..981629d85c24 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.11";
+  version = "0.4.18";
 
   disabled = !isPy3k;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "2464c364929acaee5da39eda60976a3efa40bb1f7a5d9362531d53cfa5c3bd09";
+    sha256 = "f7b6b4e34e2a64d0a0bd0556f5560ca6914ca72428c3fe5ac8c7f08b31335f3e";
     extension = "zip";
   };
 
diff --git a/pkgs/development/python-modules/pyu2f/default.nix b/pkgs/development/python-modules/pyu2f/default.nix
new file mode 100644
index 000000000000..16aa7b0ec31b
--- /dev/null
+++ b/pkgs/development/python-modules/pyu2f/default.nix
@@ -0,0 +1,35 @@
+{ stdenv, lib, fetchFromGitHub, buildPythonPackage,
+  six, mock, pyfakefs, unittest2, pytest
+}:
+
+buildPythonPackage rec {
+  pname = "pyu2f";
+  version = "0.1.4";
+
+  src = fetchFromGitHub {
+    owner = "google";
+    repo = pname;
+    rev = version;
+    sha256 = "0waxdydvxn05a8ab9j235mz72x7p4pwa59pnxyk1zzbwxnpxb3p9";
+  };
+
+  # Platform detection for linux fails
+  postPatch = lib.optionalString stdenv.isLinux ''
+    rm pyu2f/tests/hid/macos_test.py
+  '';
+
+  propagatedBuildInputs = [ six ];
+
+  checkInputs = [ pytest six mock pyfakefs unittest2 ];
+
+  checkPhase = ''
+    pytest pyu2f/tests
+  '';
+
+  meta = with lib; {
+    description = "U2F host library for interacting with a U2F device over USB";
+    homepage = https://github.com/google/pyu2f/;
+    license = licenses.asl20;
+    maintainers = with maintainers; [ prusnak ];
+  };
+}
diff --git a/pkgs/development/python-modules/pyudev/default.nix b/pkgs/development/python-modules/pyudev/default.nix
index b0a4505555a5..fa5c371b9b1a 100644
--- a/pkgs/development/python-modules/pyudev/default.nix
+++ b/pkgs/development/python-modules/pyudev/default.nix
@@ -16,7 +16,7 @@ buildPythonPackage rec {
       --replace "find_library(name)" "'${systemd.lib}/lib/libudev.so'"
     '';
 
-  buildInputs = [ pytest mock hypothesis docutils ];
+  checkInputs = [ pytest mock hypothesis docutils ];
   propagatedBuildInputs = [ systemd six ];
 
   checkPhase = ''
diff --git a/pkgs/development/python-modules/pyutil/default.nix b/pkgs/development/python-modules/pyutil/default.nix
index 13ea7b75ae3f..b7c38c512652 100644
--- a/pkgs/development/python-modules/pyutil/default.nix
+++ b/pkgs/development/python-modules/pyutil/default.nix
@@ -5,7 +5,6 @@
 , setuptoolsTrial
 , simplejson
 , zbase32
-, argparse
 , twisted
 , isPyPy
 }:
@@ -20,7 +19,7 @@ buildPythonPackage rec {
   };
 
   buildInputs = [ setuptoolsDarcs setuptoolsTrial ] ++ (if doCheck then [ simplejson ] else []);
-  propagatedBuildInputs = [ argparse twisted ];
+  propagatedBuildInputs = [ twisted ];
 
   # Tests fail because they try to write new code into the twisted
   # package, apparently some kind of plugin.
diff --git a/pkgs/development/python-modules/pyvcd/default.nix b/pkgs/development/python-modules/pyvcd/default.nix
new file mode 100644
index 000000000000..b3d4483d65dc
--- /dev/null
+++ b/pkgs/development/python-modules/pyvcd/default.nix
@@ -0,0 +1,32 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, setuptools_scm
+, six
+, pytest }:
+
+buildPythonPackage rec {
+  version = "0.1.4";
+  pname = "pyvcd";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "0dv9wac5y5z9j54ypyc59csxdiy9ybpphw9ipxp1k8nfg65q9jxx";
+  };
+
+  buildInputs = [ setuptools_scm ];
+  propagatedBuildInputs = [ six ];
+
+  checkPhase = ''
+    py.test
+  '';
+
+  checkInputs = [ pytest ];
+
+  meta = with lib; {
+    description = "Python package for writing Value Change Dump (VCD) files";
+    homepage = https://github.com/SanDisk-Open-Source/pyvcd;
+    license = licenses.mit;
+    maintainers = [ maintainers.sb0 ];
+  };
+}
diff --git a/pkgs/development/python-modules/pywal/default.nix b/pkgs/development/python-modules/pywal/default.nix
index 00691e65225c..3fd618918781 100644
--- a/pkgs/development/python-modules/pywal/default.nix
+++ b/pkgs/development/python-modules/pywal/default.nix
@@ -1,12 +1,12 @@
-{ lib, python3Packages, imagemagick, feh }:
+{ lib, buildPythonPackage, fetchPypi, imagemagick, feh, isPy3k }:
 
-python3Packages.buildPythonApplication rec {
+buildPythonPackage rec {
   pname = "pywal";
-  version = "3.2.1";
+  version = "3.3.0";
 
-  src = python3Packages.fetchPypi {
+  src = fetchPypi {
     inherit pname version;
-    sha256 = "1pj30h19ijwhmbm941yzbkgr19q06dhp9492h9nrqw1wfjfdbdic";
+    sha256 = "1drha9kshidw908k7h3gd9ws2bl64ms7bjcsa83pwb3hqa9bkspg";
   };
 
   preCheck = ''
@@ -19,6 +19,9 @@ python3Packages.buildPythonApplication rec {
     ./feh.patch
   ];
 
+  # Invalid syntax
+  disabled = !isPy3k;
+
   postPatch = ''
     substituteInPlace pywal/backends/wal.py --subst-var-by convert "${imagemagick}/bin/convert"
     substituteInPlace pywal/wallpaper.py --subst-var-by feh "${feh}/bin/feh"
diff --git a/pkgs/development/python-modules/qrcode/default.nix b/pkgs/development/python-modules/qrcode/default.nix
index fedff05d8133..363f43c857dd 100644
--- a/pkgs/development/python-modules/qrcode/default.nix
+++ b/pkgs/development/python-modules/qrcode/default.nix
@@ -10,16 +10,15 @@
 
 buildPythonPackage rec {
   pname = "qrcode";
-  version = "6.0";
+  version = "6.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "037b0db4c93f44586e37f84c3da3f763874fcac85b2974a69a98e399ac78e1bf";
+    sha256 = "505253854f607f2abf4d16092c61d4e9d511a3b4392e60bff957a68592b04369";
   };
 
   propagatedBuildInputs = [ six pillow pymaging_png ];
   checkInputs = [ mock ];
-  doCheck = isPy27; # https://github.com/lincolnloop/python-qrcode/issues/163
 
   meta = with stdenv.lib; {
     description = "Quick Response code generation for Python";
diff --git a/pkgs/development/python-modules/qscintilla-qt5/default.nix b/pkgs/development/python-modules/qscintilla-qt5/default.nix
new file mode 100644
index 000000000000..788b2e9e9ae4
--- /dev/null
+++ b/pkgs/development/python-modules/qscintilla-qt5/default.nix
@@ -0,0 +1,41 @@
+{ lib
+, buildPythonPackage
+, qscintillaCpp
+, lndir
+, sip
+, python
+, pyqt5 }:
+
+buildPythonPackage rec {
+  pname = "qscintilla";
+  version = qscintillaCpp.version;
+  src = qscintillaCpp.src;
+  format = "other";
+
+  nativeBuildInputs = [ lndir sip ];
+  buildInputs = [ qscintillaCpp ];
+  propagatedBuildInputs = [ pyqt5 ];
+
+  preConfigure = ''
+    mkdir -p $out
+    lndir ${pyqt5} $out
+    rm -rf "$out/nix-support"
+    cd Python
+    ${python.executable} ./configure.py \
+      --pyqt=PyQt5 \
+      --destdir=$out/lib/${python.sitePackages}/PyQt5 \
+      --stubsdir=$out/lib/${python.sitePackages}/PyQt5 \
+      --apidir=$out/api/${python.libPrefix} \
+      --qsci-incdir=${qscintillaCpp}/include \
+      --qsci-libdir=${qscintillaCpp}/lib \
+      --pyqt-sipdir=${pyqt5}/share/sip/PyQt5 \
+      --qsci-sipdir=$out/share/sip/PyQt5
+  '';
+
+  meta = with lib; {
+    description = "A Python binding to QScintilla, Qt based text editing control";
+    license = licenses.lgpl21Plus;
+    maintainers = with maintainers; [ lsix ];
+    homepage = https://www.riverbankcomputing.com/software/qscintilla/;
+  };
+}
diff --git a/pkgs/development/python-modules/qtawesome/default.nix b/pkgs/development/python-modules/qtawesome/default.nix
index fbebabc890a0..ff2d8cf0740c 100644
--- a/pkgs/development/python-modules/qtawesome/default.nix
+++ b/pkgs/development/python-modules/qtawesome/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "QtAwesome";
-  version = "0.5.3";
+  version = "0.5.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "8dfd8bcac56caa6d81639fc43db673b62aeca6129f4c8e9b1da17a32c0d309fd";
+    sha256 = "0f6dvqmalzi4q4rrpl1xlrxanibam1nifzsgqb5z4jr4ap7kiyp3";
   };
 
   propagatedBuildInputs = [ qtpy six pyside ];
diff --git a/pkgs/development/python-modules/rasterio/default.nix b/pkgs/development/python-modules/rasterio/default.nix
index 02848856eb1f..9717a9cda23d 100644
--- a/pkgs/development/python-modules/rasterio/default.nix
+++ b/pkgs/development/python-modules/rasterio/default.nix
@@ -6,14 +6,14 @@
 
 buildPythonPackage rec {
   pname = "rasterio";
-  version = "1.0.13";
+  version = "1.0.18";
 
   # Pypi doesn't ship the tests, so we fetch directly from GitHub
   src = fetchFromGitHub {
     owner = "mapbox";
     repo = "rasterio";
     rev = version;
-    sha256 = "1l1ppclmcq4cmbqvplrpx9sscxfpjlba6w0114y1ma675w30bgfb";
+    sha256 = "05miivbn2c5slc5nn7fpdn1da42qwzg4z046i71f4r70bc49vsj9";
   };
 
   checkInputs = [ boto3 pytest pytestcov packaging hypothesis ];
diff --git a/pkgs/development/python-modules/recommonmark/default.nix b/pkgs/development/python-modules/recommonmark/default.nix
index 2078a04be063..f6965fd6cd93 100644
--- a/pkgs/development/python-modules/recommonmark/default.nix
+++ b/pkgs/development/python-modules/recommonmark/default.nix
@@ -1,26 +1,30 @@
 { lib
 , buildPythonPackage
-, fetchPypi
+, fetchFromGitHub
 , pytest
-, sphinx
-, CommonMark_54
+, CommonMark
 , docutils
+, sphinx
 }:
 
 buildPythonPackage rec {
   pname = "recommonmark";
-  version = "0.4.0";
+  version = "0.5.0";
 
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "6e29c723abcf5533842376d87c4589e62923ecb6002a8e059eb608345ddaff9d";
+  # PyPI tarball is missing some test files: https://github.com/rtfd/recommonmark/pull/128
+  src = fetchFromGitHub {
+    owner = "rtfd";
+    repo = pname;
+    rev = version;
+    sha256 = "04bjqx2hczmg7rnj2rpsjk7h24diwk83s6fhgrxk00k40w2bpz5j";
   };
 
-  checkInputs = [ pytest sphinx ];
-  propagatedBuildInputs = [ CommonMark_54 docutils ];
+  checkInputs = [ pytest ];
+  propagatedBuildInputs = [ CommonMark docutils sphinx ];
 
-  # No tests in archive
-  doCheck = false;
+  checkPhase = ''
+    py.test
+  '';
 
   meta = {
     description = "A docutils-compatibility bridge to CommonMark";
@@ -28,4 +32,4 @@ buildPythonPackage rec {
     license = lib.licenses.mit;
     maintainers = with lib.maintainers; [ fridh ];
   };
-}
\ No newline at end of file
+}
diff --git a/pkgs/development/python-modules/regex/default.nix b/pkgs/development/python-modules/regex/default.nix
index 9ec1675f69f1..f089d1cdba2f 100644
--- a/pkgs/development/python-modules/regex/default.nix
+++ b/pkgs/development/python-modules/regex/default.nix
@@ -7,11 +7,11 @@
 
 buildPythonPackage rec {
   pname = "regex";
-  version = "2018.11.07";
+  version = "2018.11.22";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "7bfb6e13ed8195513160550c3a82c49da8bbc6df5d149089cd37f51f36eddd39";
+    sha256 = "79a6a60ed1ee3b12eb0e828c01d75e3b743af6616d69add6c2fde1d425a4ba3f";
   };
 
   postCheck = ''
diff --git a/pkgs/development/python-modules/remotecv/default.nix b/pkgs/development/python-modules/remotecv/default.nix
index 2102cf064250..a4d1dcc485ec 100644
--- a/pkgs/development/python-modules/remotecv/default.nix
+++ b/pkgs/development/python-modules/remotecv/default.nix
@@ -1,11 +1,11 @@
-{ stdenv, buildPythonPackage, fetchFromGitHub, pillow, argparse, pyres, nose
+{ stdenv, buildPythonPackage, fetchFromGitHub, pillow, pyres, nose
 , preggy, numpy, yanc, nose-focus, mock, opencv }:
 
 buildPythonPackage rec {
   pname = "remotecv";
   version = "2.2.2";
 
-  propagatedBuildInputs = [ pillow argparse pyres ];
+  propagatedBuildInputs = [ pillow pyres ];
 
   checkInputs = [ nose preggy numpy yanc nose-focus mock opencv ];
 
diff --git a/pkgs/development/python-modules/reportlab/default.nix b/pkgs/development/python-modules/reportlab/default.nix
index ab0c3d4eacf0..edb9b062f38d 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.10";
+  version = "3.5.13";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "9041d17556b9652cd9cf13b56a4efad7b51df6c567279ced26584cb4eb712b09";
+    sha256 = "6116e750f98018febc08dfee6df20446cf954adbcfa378d2c703d56c8864aff3";
   };
 
   checkInputs = [ glibcLocales ];
diff --git a/pkgs/development/python-modules/responses/default.nix b/pkgs/development/python-modules/responses/default.nix
index 37f72dde0353..e69e7d8b84da 100644
--- a/pkgs/development/python-modules/responses/default.nix
+++ b/pkgs/development/python-modules/responses/default.nix
@@ -3,11 +3,11 @@
 
 buildPythonPackage rec {
   pname = "responses";
-  version = "0.10.4";
+  version = "0.10.5";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "16ad4a7a914f20792111157adf09c63a8dc37699c57d1ad20dbc281a4f5743fb";
+    sha256 = "c85882d2dc608ce6b5713a4e1534120f4a0dc6ec79d1366570d2b0c909a50c87";
   };
 
   propagatedBuildInputs = [ cookies mock requests six ];
diff --git a/pkgs/development/python-modules/rlp/default.nix b/pkgs/development/python-modules/rlp/default.nix
index d9b55c852192..c8c4315b66bb 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.3";
+  version = "1.1.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "b0ad3f3173dedf416565299f684717d4ae7620207d562d3ef94b818a40a48781";
+    sha256 = "0742hdnhwcx1bm7pdk83290rxfcb0i2xskgl8yn6lg8fql1hms7b";
   };
 
   checkInputs = [ pytest hypothesis ];
diff --git a/pkgs/development/python-modules/robomachine/default.nix b/pkgs/development/python-modules/robomachine/default.nix
index f29cafb7aeed..58a767432a22 100644
--- a/pkgs/development/python-modules/robomachine/default.nix
+++ b/pkgs/development/python-modules/robomachine/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchPypi, buildPythonPackage, pyparsing, argparse, robotframework, allpairspy }:
+{ stdenv, fetchPypi, buildPythonPackage, pyparsing, robotframework, allpairspy }:
 
 buildPythonPackage rec {
   pname = "RoboMachine";
@@ -9,7 +9,7 @@ buildPythonPackage rec {
     sha256 = "242cfd9be0f7591138eaeba03c9c190f894ce045e1767ab7b90eca330259fc45";
   };
 
-  propagatedBuildInputs = [ pyparsing argparse robotframework allpairspy ];
+  propagatedBuildInputs = [ pyparsing robotframework allpairspy ];
 
   # Remove Windows .bat files
   postInstall = ''
diff --git a/pkgs/development/python-modules/rpmfluff/default.nix b/pkgs/development/python-modules/rpmfluff/default.nix
index a8997e279b27..bdbc3629ec71 100644
--- a/pkgs/development/python-modules/rpmfluff/default.nix
+++ b/pkgs/development/python-modules/rpmfluff/default.nix
@@ -6,11 +6,11 @@
 
 buildPythonPackage rec {
   pname = "rpmfluff";
-  version = "0.5.5";
+  version = "0.5.6";
 
   src = fetchurl {
   url = "https://releases.pagure.org/${pname}/${pname}-${version}.tar.xz";
-    sha256 = "0m92ihii8fgdyma9vn3s6fhq0px8n930c27zs554la0mm4548ss3";
+    sha256 = "0bhh8mv2kddhv3fiswg3zdl91d7vh93b33jlh1dmyz63z94rm88l";
   };
 
   LC_ALL="en_US.utf-8";
diff --git a/pkgs/development/python-modules/ruamel_yaml/default.nix b/pkgs/development/python-modules/ruamel_yaml/default.nix
index e10005fc2058..3e7cd4479ebd 100644
--- a/pkgs/development/python-modules/ruamel_yaml/default.nix
+++ b/pkgs/development/python-modules/ruamel_yaml/default.nix
@@ -8,11 +8,11 @@
 
 buildPythonPackage rec {
   pname = "ruamel.yaml";
-  version = "0.15.80";
+  version = "0.15.86";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1rhlshff9csjwn64x11b9a7gbxccs1vd7rdiqwlhifjxax8k682g";
+    sha256 = "d98b3d421eebf7e10311ab12f41c5b0353e7cae1cc78f51312e24f569d593de0";
   };
 
   # Tests cannot load the module to test
diff --git a/pkgs/development/python-modules/scikit-bio/default.nix b/pkgs/development/python-modules/scikit-bio/default.nix
index 7a2ab097a71e..cc83c31ca5df 100644
--- a/pkgs/development/python-modules/scikit-bio/default.nix
+++ b/pkgs/development/python-modules/scikit-bio/default.nix
@@ -20,13 +20,13 @@
 }:
 
 buildPythonPackage rec {
-  version = "0.5.4";
+  version = "0.5.5";
   pname = "scikit-bio";
   disabled = !isPy3k;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "3243f1995ef24643c09ff4d9391a79528aadd8232e5aa5d66c38d7b2e0c92f24";
+    sha256 = "9fa813be66e88a994f7b7a68b8ba2216e205c525caa8585386ebdeebed6428df";
   };
 
   buildInputs = [ cython ];
diff --git a/pkgs/development/python-modules/scikitlearn/default.nix b/pkgs/development/python-modules/scikitlearn/default.nix
index c6cd2efcc2fe..5ec207c55950 100644
--- a/pkgs/development/python-modules/scikitlearn/default.nix
+++ b/pkgs/development/python-modules/scikitlearn/default.nix
@@ -5,13 +5,13 @@
 
 buildPythonPackage rec {
   pname = "scikit-learn";
-  version = "0.20.0";
+  version = "0.20.2";
   # UnboundLocalError: local variable 'message' referenced before assignment
   disabled = stdenv.isi686;  # https://github.com/scikit-learn/scikit-learn/issues/5534
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "064cbxsis6m7l6pr09ijjwqdv0c0yrfnazabwq8p09gcz1qxklcp";
+    sha256 = "1ri9kx0yrn85h6ivkaja35afbyhimxn8lsairgns2wi5xv3wfnxw";
   };
 
   buildInputs = [ pillow gfortran glibcLocales ];
diff --git a/pkgs/development/python-modules/scrapy/default.nix b/pkgs/development/python-modules/scrapy/default.nix
index 8bb332fa9da5..ecfbc98530ed 100644
--- a/pkgs/development/python-modules/scrapy/default.nix
+++ b/pkgs/development/python-modules/scrapy/default.nix
@@ -1,8 +1,8 @@
 { stdenv, buildPythonPackage, fetchPypi, glibcLocales, mock, pytest, botocore,
   testfixtures, pillow, six, twisted, w3lib, lxml, queuelib, pyopenssl,
-  service-identity, parsel, pydispatcher, cssselect, lib, fetchpatch }:
+  service-identity, parsel, pydispatcher, cssselect, lib }:
 buildPythonPackage rec {
-  version = "1.5.1";
+  version = "1.6.0";
   pname = "Scrapy";
 
   checkInputs = [ glibcLocales mock pytest botocore testfixtures pillow ];
@@ -16,25 +16,21 @@ buildPythonPackage rec {
     # root and readonly. As a consequence scrapy can't edit the
     # project templates.
     ./permissions-fix.patch
-    # fix python37 issues. Remove with the next release
-    (fetchpatch {
-      url = https://github.com/scrapy/scrapy/commit/f4f39057cbbfa4daf66f82061e57101b88d88d05.patch;
-      sha256 = "1f761qkji362i20i5bzcxz44sihvl29prm02i5l2xyhgl1hp91hv";
-    })
   ];
 
   LC_ALL="en_US.UTF-8";
 
+  # Disable doctest plugin—enabled in the shipped pytest.ini—because it causes pytest to hang
   # Ignore proxy tests because requires mitmproxy
   # Ignore test_retry_dns_error because tries to resolve an invalid dns and weirdly fails with "Reactor was unclean"
   # Ignore xml encoding test on darwin because lxml can't find encodings https://bugs.launchpad.net/lxml/+bug/707396
   checkPhase = ''
-    pytest --ignore=tests/test_linkextractors_deprecated.py --ignore=tests/test_proxy_connect.py --deselect tests/test_crawl.py::CrawlTestCase::test_retry_dns_error ${lib.optionalString stdenv.isDarwin "--deselect tests/test_utils_iterators.py::LxmlXmliterTestCase::test_xmliter_encoding"}
+    pytest -p no:doctest --ignore=tests/test_linkextractors_deprecated.py --ignore=tests/test_proxy_connect.py --deselect tests/test_crawl.py::CrawlTestCase::test_retry_dns_error ${lib.optionalString stdenv.isDarwin "--deselect tests/test_utils_iterators.py::LxmlXmliterTestCase::test_xmliter_encoding"}
   '';
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "5a398bf6818f87dcc817c919408a195f19ba46414ae12f259119336cfa862bb6";
+    sha256 = "558dfd10ac53cb324ecd7eefd3eac412161c7507c082b01b0bcd2c6e2e9f0766";
   };
 
   postInstall = ''
diff --git a/pkgs/development/python-modules/serversyncstorage/default.nix b/pkgs/development/python-modules/serversyncstorage/default.nix
index 0e4b6cfa1e47..7342a729e292 100644
--- a/pkgs/development/python-modules/serversyncstorage/default.nix
+++ b/pkgs/development/python-modules/serversyncstorage/default.nix
@@ -1,5 +1,6 @@
-{ buildPythonPackage
-, fetchgit
+{ stdenv
+, buildPythonPackage
+, fetchFromGitHub
 , isPy27
 , testfixtures
 , unittest2
@@ -20,13 +21,14 @@
 
 buildPythonPackage rec {
   pname = "serversyncstorage";
-  version = "1.6.11";
+  version = "1.6.14";
   disabled = !isPy27;
 
-  src = fetchgit {
-    url = https://github.com/mozilla-services/server-syncstorage.git;
-    rev = "refs/tags/${version}";
-    sha256 = "197gj2jfs2c6nzs20j37kqxwi91wabavxnfm4rqmrjwhgqjwhnm0";
+  src = fetchFromGitHub {
+    owner = "mozilla-services";
+    repo = "server-syncstorage";
+    rev = version;
+    sha256 = "08xclxj38rav8yay9cijiavv35jbyf6a9jzr24vgcna8pjjnbbmh";
   };
 
   checkInputs = [ testfixtures unittest2 webtest ];
@@ -35,7 +37,10 @@ buildPythonPackage rec {
     pymysqlsa umemcache WSGIProxy requests pybrowserid
   ];
 
-  meta = {
-    broken = true; # 2018-11-04
+  meta = with stdenv.lib; {
+    description = "The SyncServer server software, as used by Firefox Sync";
+    homepage = https://github.com/mozilla-services/server-syncstorage;
+    license = licenses.mpl20;
+    maintainers = with maintainers; [ nadrieril ];
   };
 }
diff --git a/pkgs/development/python-modules/setuptools/default.nix b/pkgs/development/python-modules/setuptools/default.nix
index 2663d6667e5a..0a34c2b54296 100644
--- a/pkgs/development/python-modules/setuptools/default.nix
+++ b/pkgs/development/python-modules/setuptools/default.nix
@@ -8,13 +8,13 @@
 # Should use buildPythonPackage here somehow
 stdenv.mkDerivation rec {
   pname = "setuptools";
-  version = "40.6.2";
+  version = "40.6.3";
   name = "${python.libPrefix}-${pname}-${version}";
 
   src = fetchPypi {
     inherit pname version;
     extension = "zip";
-    sha256 = "86bb4d8e1b0fabad1f4642b64c335b673e53e7a381de03c9a89fe678152c4c64";
+    sha256 = "3b474dad69c49f0d2d86696b68105f3a6f195f7ab655af12ef9a9c326d2b08f8";
   };
 
   nativeBuildInputs = [ unzip wrapPython python.pythonForBuild ];
diff --git a/pkgs/development/python-modules/shodan/default.nix b/pkgs/development/python-modules/shodan/default.nix
new file mode 100644
index 000000000000..0fde898ca04f
--- /dev/null
+++ b/pkgs/development/python-modules/shodan/default.nix
@@ -0,0 +1,35 @@
+{ lib
+, fetchPypi
+, buildPythonPackage
+, click-plugins
+, colorama
+, requests
+, XlsxWriter
+}:
+
+buildPythonPackage rec {
+  pname = "shodan";
+  version = "1.10.4";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "13966vqxww7v2b5hf2kjismdzvqyjvxlcdvpkzpbsrpxy9pvn2n4";
+  };
+
+  propagatedBuildInputs = [
+    click-plugins
+    colorama
+    requests
+    XlsxWriter
+  ];
+
+  # The tests require a shodan api key, so skip them.
+  doCheck = false;
+
+  meta = with lib; {
+    description = "Python library and command-line utility for Shodan";
+    homepage = https://github.com/achillean/shodan-python;
+    license = licenses.mit;
+    maintainers = with maintainers; [ lihop ];
+  };
+}
diff --git a/pkgs/development/python-modules/slixmpp/default.nix b/pkgs/development/python-modules/slixmpp/default.nix
index 7d6d786e6d23..53d2006315c1 100644
--- a/pkgs/development/python-modules/slixmpp/default.nix
+++ b/pkgs/development/python-modules/slixmpp/default.nix
@@ -1,22 +1,30 @@
-{ lib, buildPythonPackage, fetchPypi, pythonOlder, fetchurl, aiodns, pyasn1, pyasn1-modules, gnupg }:
+{ lib, buildPythonPackage, fetchPypi, isPy3k, substituteAll, aiodns, pyasn1, pyasn1-modules, aiohttp, gnupg, nose }:
 
 buildPythonPackage rec {
   pname = "slixmpp";
-  version = "1.4.1";
+  version = "1.4.2";
 
-  disabled = pythonOlder "3.4";
+  disabled = !isPy3k;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "020acd4507fd00c38835b78b5f338db60d3df840187623e0d41ab2ca89d7ae57";
+    sha256 = "0rqpmscxjznxyz3dyxpc56gib319k01vl837r8g8w57dinz4y863";
   };
 
-  patchPhase = ''
-    substituteInPlace slixmpp/thirdparty/gnupg.py \
-      --replace "gpgbinary='gpg'" "gpgbinary='${gnupg}/bin/gpg'"
-  '';
+  patches = [
+    (substituteAll {
+      src = ./hardcode-gnupg-path.patch;
+      inherit gnupg;
+    })
+  ];
+
+  propagatedBuildInputs = [ aiodns pyasn1 pyasn1-modules aiohttp ];
 
-  propagatedBuildInputs = [ aiodns pyasn1 pyasn1-modules gnupg ];
+  checkInputs = [ nose ];
+
+  checkPhase = ''
+    nosetests --where=tests --exclude=live -i slixtest.py
+  '';
 
   meta = {
     description = "Elegant Python library for XMPP";
diff --git a/pkgs/development/python-modules/slixmpp/hardcode-gnupg-path.patch b/pkgs/development/python-modules/slixmpp/hardcode-gnupg-path.patch
new file mode 100644
index 000000000000..4bb3b7c73490
--- /dev/null
+++ b/pkgs/development/python-modules/slixmpp/hardcode-gnupg-path.patch
@@ -0,0 +1,26 @@
+diff --git a/slixmpp/plugins/xep_0027/gpg.py b/slixmpp/plugins/xep_0027/gpg.py
+index a0b1df4..7cfb3bd 100644
+--- a/slixmpp/plugins/xep_0027/gpg.py
++++ b/slixmpp/plugins/xep_0027/gpg.py
+@@ -41,7 +41,7 @@ class XEP_0027(BasePlugin):
+     dependencies = set()
+     stanza = stanza
+     default_config = {
+-        'gpg_binary': 'gpg',
++        'gpg_binary': '@gnupg@/bin/gpg',
+         'gpg_home': '',
+         'use_agent': True,
+         'keyring': None,
+diff --git a/slixmpp/thirdparty/gnupg.py b/slixmpp/thirdparty/gnupg.py
+index a89289f..46dd9b7 100644
+--- a/slixmpp/thirdparty/gnupg.py
++++ b/slixmpp/thirdparty/gnupg.py
+@@ -468,7 +468,7 @@ class GPG(object):
+     }
+ 
+     "Encapsulate access to the gpg executable"
+-    def __init__(self, gpgbinary='gpg', gnupghome=None, verbose=False,
++    def __init__(self, gpgbinary='@gnupg@/bin/gpg', gnupghome=None, verbose=False,
+                  use_agent=False, keyring=None):
+         """Initialize a GPG process wrapper.  Options are:
+ 
diff --git a/pkgs/development/python-modules/sly/default.nix b/pkgs/development/python-modules/sly/default.nix
new file mode 100644
index 000000000000..011fa1799abd
--- /dev/null
+++ b/pkgs/development/python-modules/sly/default.nix
@@ -0,0 +1,29 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, pytest
+, pythonOlder
+}:
+
+buildPythonPackage rec {
+  pname = "sly";
+  version = "0.3";
+  disabled = pythonOlder "3.6";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "be6a3825b042a9e1b6f5730fc747e6d983c917f0f002d798d0b9f86ca5c05ad9";
+  };
+
+  checkInputs = [ pytest ];
+
+  # tests not included with pypi release
+  doCheck = false;
+
+  meta = with lib; {
+    description = "An improved PLY implementation of lex and yacc for Python 3";
+    homepage = https://github.com/dabeaz/sly;
+    license = licenses.bsd3;
+    maintainers = [ maintainers.costrouc ];
+  };
+}
diff --git a/pkgs/development/python-modules/sortedcollections/default.nix b/pkgs/development/python-modules/sortedcollections/default.nix
index dcb49a43413e..b8261d88628c 100644
--- a/pkgs/development/python-modules/sortedcollections/default.nix
+++ b/pkgs/development/python-modules/sortedcollections/default.nix
@@ -6,16 +6,16 @@
 
 buildPythonPackage rec {
   pname = "sortedcollections";
-  version = "1.0.1";
+  version = "1.1.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "12q1gf81l53mv634hk259aql69k9572nfv5gsn8gxlywdly2z63b";
+    sha256 = "12nkw69lnyvh9wy6rsd0ng4bcia81vkhj1rj1kj1k3vzppn0sgmr";
   };
 
-  buildInputs = [ sortedcontainers ];
+  propagatedBuildInputs = [ sortedcontainers ];
 
-  # wants to test all python versions with tox:
+  # No tests in PyPi tarball
   doCheck = false;
 
   meta = with stdenv.lib; {
diff --git a/pkgs/development/python-modules/sphinx-argparse/default.nix b/pkgs/development/python-modules/sphinx-argparse/default.nix
new file mode 100644
index 000000000000..f5de476d1096
--- /dev/null
+++ b/pkgs/development/python-modules/sphinx-argparse/default.nix
@@ -0,0 +1,33 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, pytest
+, sphinx
+}:
+
+buildPythonPackage rec {
+  pname = "sphinx-argparse";
+  version = "0.2.5";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "05wc8f5hb3jsg2vh2jf7jsyan8d4i09ifrz2c8fp6f7x1zw9iav0";
+  };
+
+  checkInputs = [
+    pytest
+  ];
+
+  checkPhase = "py.test";
+
+  propagatedBuildInputs = [
+    sphinx
+  ];
+
+  meta = {
+    description = "A sphinx extension that automatically documents argparse commands and options";
+    homepage = https://github.com/ribozz/sphinx-argparse;
+    license = lib.licenses.mit;
+    maintainers = with lib.maintainers; [ clacke ];
+  };
+}
diff --git a/pkgs/development/python-modules/sphinx/default.nix b/pkgs/development/python-modules/sphinx/default.nix
index 831c527af0e6..4bea277a95b3 100644
--- a/pkgs/development/python-modules/sphinx/default.nix
+++ b/pkgs/development/python-modules/sphinx/default.nix
@@ -26,11 +26,11 @@
 
 buildPythonPackage rec {
   pname = "sphinx";
-  version = "1.7.9";
+  version = "1.8.3";
   src = fetchPypi {
     pname = "Sphinx";
     inherit version;
-    sha256 = "217a7705adcb573da5bbe1e0f5cab4fa0bd89fd9342c9159121746f593c2d5a4";
+    sha256 = "c4cb17ba44acffae3d3209646b6baec1e215cad3065e852c68cc569d4df1b9f8";
   };
   LC_ALL = "en_US.UTF-8";
 
diff --git a/pkgs/development/python-modules/sphinxcontrib-bibtex/default.nix b/pkgs/development/python-modules/sphinxcontrib-bibtex/default.nix
index 700a7fad4aab..2c8b91edc65e 100644
--- a/pkgs/development/python-modules/sphinxcontrib-bibtex/default.nix
+++ b/pkgs/development/python-modules/sphinxcontrib-bibtex/default.nix
@@ -3,12 +3,12 @@
 }:
 
 buildPythonPackage rec {
-  version = "0.4.1";
+  version = "0.4.2";
   pname = "sphinxcontrib-bibtex";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0kx04bqjf9ilygrzpm2z9078nfnkmywpgwxl7idpzidkzirqsnsr";
+    sha256 = "169afb3a3485775e5473934a0fdff1780e8bdcdd44db7ed286044a074331c729";
   };
 
   propagatedBuildInputs = [ oset pybtex pybtex-docutils sphinx ];
diff --git a/pkgs/development/python-modules/sqlalchemy-migrate/default.nix b/pkgs/development/python-modules/sqlalchemy-migrate/default.nix
index 41269aa6567f..9daf2a696c25 100644
--- a/pkgs/development/python-modules/sqlalchemy-migrate/default.nix
+++ b/pkgs/development/python-modules/sqlalchemy-migrate/default.nix
@@ -5,11 +5,11 @@
 }:
 buildPythonPackage rec {
   pname = "sqlalchemy-migrate";
-  version = "0.11.0";
+  version = "0.12.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0ld2bihp9kmf57ykgzrfgxs4j9kxlw79sgdj9sfn47snw3izb2p6";
+    sha256 = "1bngmbcry97kwhrxwm0d74zg9qg7gmiws6rd78xshyfgpcqdmylc";
   };
 
   # See: https://review.openstack.org/#/c/608382/
diff --git a/pkgs/development/python-modules/sqlmap/default.nix b/pkgs/development/python-modules/sqlmap/default.nix
index 086fce2aac81..aa3bcc6ae7a4 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.11";
+  version = "1.2.12";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "8715529e823c6f4ed701d71f1daf8525583ed04b44e8c89d6781475c856eb2ba";
+    sha256 = "7a099f42358731589851c38e5a90d997490dd6275b39e09f21bdd4df91a24413";
   };
 
   # No tests in archive
diff --git a/pkgs/development/python-modules/sqlparse/default.nix b/pkgs/development/python-modules/sqlparse/default.nix
index 506e9b9340b9..5858779b86ba 100644
--- a/pkgs/development/python-modules/sqlparse/default.nix
+++ b/pkgs/development/python-modules/sqlparse/default.nix
@@ -14,7 +14,7 @@ buildPythonPackage rec {
     sha256 = "ce028444cfab83be538752a2ffdb56bc417b7784ff35bb9a3062413717807dec";
   };
 
-  buildInputs = [ pytest ];
+  checkInputs = [ pytest ];
   checkPhase = ''
     py.test
   '';
diff --git a/pkgs/development/python-modules/staticjinja/default.nix b/pkgs/development/python-modules/staticjinja/default.nix
index a5b3b4fe8d49..32aecdc91915 100644
--- a/pkgs/development/python-modules/staticjinja/default.nix
+++ b/pkgs/development/python-modules/staticjinja/default.nix
@@ -8,11 +8,11 @@
 
 buildPythonPackage rec {
   pname = "staticjinja";
-  version = "0.3.4";
+  version = "0.3.5";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1mxv7yy35657mfxx9xhbzihh10m5lb29fmscfh9q455zd4ikr032";
+    sha256 = "fbd61cca1dad44b6891d1a1d72b11ae100e21b3909802e3ff1861ab55bf16603";
   };
 
   propagatedBuildInputs = [ jinja2 docopt easywatch ];
diff --git a/pkgs/development/python-modules/stevedore/default.nix b/pkgs/development/python-modules/stevedore/default.nix
index 8027688c9ea5..4e607799d229 100644
--- a/pkgs/development/python-modules/stevedore/default.nix
+++ b/pkgs/development/python-modules/stevedore/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi, pbr, six, argparse }:
+{ stdenv, buildPythonPackage, fetchPypi, pbr, six }:
 
 buildPythonPackage rec {
   pname = "stevedore";
@@ -11,7 +11,7 @@ buildPythonPackage rec {
 
   doCheck = false;
 
-  propagatedBuildInputs = [ pbr six argparse ];
+  propagatedBuildInputs = [ pbr six ];
 
   meta = with stdenv.lib; {
     description = "Manage dynamic plugins for Python applications";
diff --git a/pkgs/development/python-modules/supervisor/default.nix b/pkgs/development/python-modules/supervisor/default.nix
index 2d2a03d37aea..4771ba7a89d1 100644
--- a/pkgs/development/python-modules/supervisor/default.nix
+++ b/pkgs/development/python-modules/supervisor/default.nix
@@ -4,11 +4,11 @@
 }:
 buildPythonPackage rec {
   pname = "supervisor";
-  version = "3.3.4";
+  version = "3.3.5";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0wp62z9xprvz2krg02xnbwcnq6pxfq3byd8cxx8c2d8xznih28i1";
+    sha256 = "1w3ahridzbc6rxfpbyx8lij6pjlcgf2ymzyg53llkjqxalp6sk8v";
   };
 
   checkInputs = [ mock ];
diff --git a/pkgs/development/python-modules/syncserver/default.nix b/pkgs/development/python-modules/syncserver/default.nix
deleted file mode 100644
index 7a93d64a89f5..000000000000
--- a/pkgs/development/python-modules/syncserver/default.nix
+++ /dev/null
@@ -1,33 +0,0 @@
-{ buildPythonPackage
-, fetchgit
-, isPy27
-, unittest2
-, cornice
-, gunicorn
-, pyramid
-, requests
-, simplejson
-, sqlalchemy
-, mozsvc
-, tokenserver
-, serversyncstorage
-, configparser
-}:
-
-buildPythonPackage rec {
-  pname = "syncserver";
-  version = "1.6.0";
-  disabled = ! isPy27;
-
-  src = fetchgit {
-    url = https://github.com/mozilla-services/syncserver.git;
-    rev = "refs/tags/${version}";
-    sha256 = "1fsiwihgq3z5b5kmssxxil5g2abfvsf6wfikzyvi4sy8hnym77mb";
-  };
-
-  buildInputs = [ unittest2 ];
-  propagatedBuildInputs = [
-    cornice gunicorn pyramid requests simplejson sqlalchemy mozsvc tokenserver
-    serversyncstorage configparser
-  ];
-}
diff --git a/pkgs/development/python-modules/tableaudocumentapi/default.nix b/pkgs/development/python-modules/tableaudocumentapi/default.nix
new file mode 100644
index 000000000000..a2f8fbb2f536
--- /dev/null
+++ b/pkgs/development/python-modules/tableaudocumentapi/default.nix
@@ -0,0 +1,24 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+}:
+
+buildPythonPackage rec {
+  pname = "tableaudocumentapi";
+  version = "0.6";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "fc6d44b62cf6ea29916c073686e2f9f35c9902eccd57b8493f8d44a59a2f60d9";
+  };
+
+  # tests not inclued with release
+  doCheck = false;
+
+  meta = with lib; {
+    description = "A Python module for working with Tableau files";
+    homepage = https://github.com/tableau/document-api-python;
+    license = licenses.mit;
+    maintainers = [ maintainers.costrouc ];
+  };
+}
diff --git a/pkgs/development/python-modules/telethon-session-sqlalchemy/default.nix b/pkgs/development/python-modules/telethon-session-sqlalchemy/default.nix
new file mode 100644
index 000000000000..da2fd2cd22d1
--- /dev/null
+++ b/pkgs/development/python-modules/telethon-session-sqlalchemy/default.nix
@@ -0,0 +1,27 @@
+{ lib, buildPythonPackage, fetchPypi, isPy3k, sqlalchemy }:
+
+buildPythonPackage rec {
+  pname = "telethon-session-sqlalchemy";
+  version = "0.2.5";
+
+  disabled = !isPy3k;
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "b392096b14e5cdc4040d3900cc2be7847b160ed77e5c861a6bd07d75d8e17a85";
+  };
+
+  propagatedBuildInputs = [
+    sqlalchemy
+  ];
+
+  # No tests available
+  doCheck = false;
+
+  meta = with lib; {
+    homepage = https://github.com/tulir/telethon-session-sqlalchemy;
+    description = "SQLAlchemy backend for Telethon session storage";
+    license = licenses.mit;
+    maintainers = with maintainers; [ nyanloutre ];
+  };
+}
diff --git a/pkgs/development/python-modules/telethon/default.nix b/pkgs/development/python-modules/telethon/default.nix
new file mode 100644
index 000000000000..23a06c0cd253
--- /dev/null
+++ b/pkgs/development/python-modules/telethon/default.nix
@@ -0,0 +1,30 @@
+{ lib, buildPythonPackage, fetchPypi, async_generator, rsa, pyaes, pythonOlder }:
+
+buildPythonPackage rec {
+  pname = "telethon";
+  version = "1.5.5";
+
+  src = fetchPypi {
+    inherit version;
+    pname = "Telethon";
+    sha256 = "1qpc4vc3lidhlp1c7521nxizjr6y5c3l9x41knqv02x8n3l9knxa";
+  };
+
+  propagatedBuildInputs = [
+    async_generator
+    rsa
+    pyaes
+  ];
+
+  # No tests available
+  doCheck = false;
+
+  disabled = pythonOlder "3.5";
+
+  meta = with lib; {
+    homepage = https://github.com/LonamiWebs/Telethon;
+    description = "Full-featured Telegram client library for Python 3";
+    license = licenses.mit;
+    maintainers = with maintainers; [ nyanloutre ];
+  };
+}
diff --git a/pkgs/development/python-modules/tenacity/default.nix b/pkgs/development/python-modules/tenacity/default.nix
new file mode 100644
index 000000000000..d34231ca9a9e
--- /dev/null
+++ b/pkgs/development/python-modules/tenacity/default.nix
@@ -0,0 +1,34 @@
+{ lib, buildPythonPackage, fetchPypi, isPy27
+, pbr, six, futures, monotonic
+, pytest, sphinx, tornado
+}:
+
+buildPythonPackage rec {
+  pname = "tenacity";
+  version = "5.0.3";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "12z36fq6qfn9sgd1snsfwrk5j2cw29bsb7mkb0g818fal41g7dr4";
+  };
+
+  nativeBuildInputs = [ pbr ];
+  propagatedBuildInputs = [ six ]
+    ++ lib.optionals isPy27 [ futures monotonic ];
+
+  checkInputs = [ pytest sphinx tornado ];
+  checkPhase = (if isPy27 then ''
+    pytest --ignore='tenacity/tests/test_asyncio.py'
+  '' else ''
+    pytest
+  '') + ''
+    sphinx-build -a -E -W -b doctest doc/source doc/build
+  '';
+
+  meta = with lib; {
+    homepage = https://github.com/jd/tenacity;
+    description = "Retrying library for Python";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ jakewaksbaum ];
+  };
+}
diff --git a/pkgs/development/python-modules/textacy/default.nix b/pkgs/development/python-modules/textacy/default.nix
index fdfa91d292f2..4272df1ce398 100644
--- a/pkgs/development/python-modules/textacy/default.nix
+++ b/pkgs/development/python-modules/textacy/default.nix
@@ -52,6 +52,11 @@ buildPythonPackage rec {
     unidecode
   ];
 
+  postPatch = ''
+    substituteInPlace setup.py \
+      --replace "'ftfy>=4.2.0,<5.0.0'," "'ftfy>=5.0.0',"
+  '';
+
   doCheck = false;  # tests want to download data files
 
   meta = with stdenv.lib; {
diff --git a/pkgs/development/python-modules/texttable/default.nix b/pkgs/development/python-modules/texttable/default.nix
index 6747ae78f49c..d2821310068f 100644
--- a/pkgs/development/python-modules/texttable/default.nix
+++ b/pkgs/development/python-modules/texttable/default.nix
@@ -5,11 +5,11 @@
 
 buildPythonPackage rec {
   pname = "texttable";
-  version = "1.5.0";
+  version = "1.6.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0mzv6zs8ciwnf83fwikqmmjwbzqmdja3imn4b4k209f80g0rk8qv";
+    sha256 = "1z3xbijvhh86adg0jk5iv1jvga7cg25q1w12icb3snr5jim9sjv2";
   };
 
   meta = {
diff --git a/pkgs/development/python-modules/thespian/default.nix b/pkgs/development/python-modules/thespian/default.nix
index c964a4ed2f10..d0d032b6217e 100644
--- a/pkgs/development/python-modules/thespian/default.nix
+++ b/pkgs/development/python-modules/thespian/default.nix
@@ -1,13 +1,13 @@
 { fetchPypi, buildPythonPackage, lib }:
 
 buildPythonPackage rec {
-  version = "3.9.4";
+  version = "3.9.5";
   pname = "thespian";
 
   src = fetchPypi {
     inherit pname version;
     extension = "zip";
-    sha256 = "98766eb304ef922133baca12a75eedd8d9b709c58bd9af50bfa5593dc3ffe0e1";
+    sha256 = "4de3d599d898bf22a311248e749bb21920a8b0f6139f80489352bcb950835db2";
   };
 
   # Do not run the test suite: it takes a long time and uses
diff --git a/pkgs/development/python-modules/tlsh/default.nix b/pkgs/development/python-modules/tlsh/default.nix
index 893fe0240b60..1b144b4db8d1 100644
--- a/pkgs/development/python-modules/tlsh/default.nix
+++ b/pkgs/development/python-modules/tlsh/default.nix
@@ -1,7 +1,7 @@
 { stdenv
 , buildPythonPackage
 , fetchFromGitHub
-, pkgs
+, cmake
 }:
 
 buildPythonPackage rec {
@@ -15,7 +15,7 @@ buildPythonPackage rec {
     sha256 = "1ydliir308xn4ywy705mmsh7863ldlixdvpqwdhbipzq9vfpmvll";
   };
 
-  buildInputs = [ pkgs.cmake ];
+  nativeBuildInputs = [ cmake ];
 
   # no test data
   doCheck = false;
diff --git a/pkgs/development/python-modules/tokenserver/default.nix b/pkgs/development/python-modules/tokenserver/default.nix
index a07da568dca4..08f3f87321fe 100644
--- a/pkgs/development/python-modules/tokenserver/default.nix
+++ b/pkgs/development/python-modules/tokenserver/default.nix
@@ -31,5 +31,6 @@ buildPythonPackage rec {
     description = "The Mozilla Token Server";
     homepage = https://github.com/mozilla-services/tokenserver;
     license = licenses.mpl20;
+    maintainers = with maintainers; [ nadrieril ];
   };
 }
diff --git a/pkgs/development/python-modules/tornado/default.nix b/pkgs/development/python-modules/tornado/default.nix
index d446d377e66f..1d8a03578cda 100644
--- a/pkgs/development/python-modules/tornado/default.nix
+++ b/pkgs/development/python-modules/tornado/default.nix
@@ -42,6 +42,8 @@ buildPythonPackage rec {
     inherit pname sha256 version;
   };
 
+  __darwinAllowLocalNetworking = true;
+
   meta = {
     description = "A web framework and asynchronous networking library";
     homepage = http://www.tornadoweb.org/;
diff --git a/pkgs/development/python-modules/trezor/default.nix b/pkgs/development/python-modules/trezor/default.nix
index 878de1875190..7808eb359326 100644
--- a/pkgs/development/python-modules/trezor/default.nix
+++ b/pkgs/development/python-modules/trezor/default.nix
@@ -1,27 +1,48 @@
-{ lib, fetchPypi, buildPythonPackage,
-  protobuf, hidapi, ecdsa, mnemonic, requests, pyblake2, click, libusb1, rlp, isPy3k
+{ lib, fetchPypi, buildPythonPackage, isPy3k, python, pytest
+, typing-extensions
+, protobuf
+, hidapi
+, ecdsa
+, mnemonic
+, requests
+, pyblake2
+, click
+, construct
+, libusb1
+, rlp
 }:
 
 buildPythonPackage rec {
   pname = "trezor";
-  version = "0.10.2";
+  version = "0.11.1";
 
   disabled = !isPy3k;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "4dba4d5c53d3ca22884d79fb4aa68905fb8353a5da5f96c734645d8cf537138d";
+    sha256 = "6043f321d856e1b45b9df0c37810264f08d065bb56cd999f61a05fe2906e9e18";
   };
 
-  propagatedBuildInputs = [ protobuf hidapi ecdsa mnemonic requests pyblake2 click libusb1 rlp ];
+  propagatedBuildInputs = [ typing-extensions protobuf hidapi ecdsa mnemonic requests pyblake2 click construct libusb1 rlp ];
 
-  # There are no actual tests: "ImportError: No module named tests"
-  doCheck = false;
+  # build requires UTF-8 locale
+  LANG = "en_US.UTF-8";
+
+  checkInputs = [
+    pytest
+  ];
+
+  # disable test_tx_api.py as it requires being online
+  checkPhase = ''
+    runHook preCheck
+    ${python.interpreter} -m pytest --pyarg trezorlib.tests.unit_tests --ignore trezorlib/tests/unit_tests/test_tx_api.py
+    runHook postCheck
+  '';
 
   meta = {
     description = "Python library for communicating with TREZOR Bitcoin Hardware Wallet";
     homepage = https://github.com/trezor/python-trezor;
     license = lib.licenses.gpl3;
-    maintainers = with lib.maintainers; [ np ];
+    maintainers = with lib.maintainers; [ np prusnak ];
   };
 }
diff --git a/pkgs/development/python-modules/trio/default.nix b/pkgs/development/python-modules/trio/default.nix
index 215f39da30b4..3e6109133bac 100644
--- a/pkgs/development/python-modules/trio/default.nix
+++ b/pkgs/development/python-modules/trio/default.nix
@@ -15,12 +15,12 @@
 
 buildPythonPackage rec {
   pname = "trio";
-  version = "0.9.0";
+  version = "0.10.0";
   disabled = pythonOlder "3.5";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "6d905d950dfa1db3fad6b5ef5637c221947123fd2b0e112033fecfc582318c3b";
+    sha256 = "1c1snnhjg8l87ygf5p9z2qjcq090mws5w7pr9aaiava0yqawq8yk";
   };
 
   checkInputs = [ pytest pyopenssl trustme jedi pylint ];
diff --git a/pkgs/development/python-modules/twilio/default.nix b/pkgs/development/python-modules/twilio/default.nix
index 607386ac16d8..c9b80f3699bd 100644
--- a/pkgs/development/python-modules/twilio/default.nix
+++ b/pkgs/development/python-modules/twilio/default.nix
@@ -3,13 +3,13 @@
 
 buildPythonPackage rec {
   pname = "twilio";
-  version = "6.22.0";
+  version = "6.24.0";
   # tests not included in PyPi, so fetch from github instead
   src = fetchFromGitHub {
     owner = "twilio";
     repo = "twilio-python";
     rev = version;
-    sha256 = "1kh2hcjm1qyisqqjyjnilkyj3vv6l5flpjyqkq27pwxvc461aapp";
+    sha256 = "16lxns59fms75swfjz46484464q4b1fw3ybf8f2k56aas9gyzb2j";
   };
 
   buildInputs = [ nose mock ];
diff --git a/pkgs/development/python-modules/typed-ast/default.nix b/pkgs/development/python-modules/typed-ast/default.nix
index ead61eef3636..f3f260cc1e87 100644
--- a/pkgs/development/python-modules/typed-ast/default.nix
+++ b/pkgs/development/python-modules/typed-ast/default.nix
@@ -1,10 +1,10 @@
 { buildPythonPackage, fetchPypi, lib, pythonOlder }:
 buildPythonPackage rec {
   pname = "typed-ast";
-  version = "1.1.1";
+  version = "1.1.2";
   src = fetchPypi{
     inherit pname version;
-    sha256 = "1iml3lcw50bz1fyw7s9sa4mqzbmqs5w43k6bsv5ix4vqa34mvckc";
+    sha256 = "4304399ff89452871348f6fb7a7112454cd508fbe3eb49b5ed711cce9b99fe9e";
   };
   # Only works with Python 3.3 and newer;
   disabled = pythonOlder "3.3";
diff --git a/pkgs/development/python-modules/typing-extensions/default.nix b/pkgs/development/python-modules/typing-extensions/default.nix
index 55be51362f42..daaafbd7b3ec 100644
--- a/pkgs/development/python-modules/typing-extensions/default.nix
+++ b/pkgs/development/python-modules/typing-extensions/default.nix
@@ -4,11 +4,11 @@ let
 
 in buildPythonPackage rec {
   pname = "typing_extensions";
-  version = "3.6.6";
+  version = "3.7.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "07vhddjnd3mhdijyc3s0mwi9jgfjp3rr056nxqiavydbvkrvgrsi";
+    sha256 = "0wfsv71pvkyf2na938l579jh0v3kzl6g744ijgnahcwd4d9x0b7v";
   };
 
   checkInputs = lib.optional (pythonOlder "3.5") typing;
diff --git a/pkgs/development/python-modules/uncompyle6/default.nix b/pkgs/development/python-modules/uncompyle6/default.nix
index 9b6059978eb1..c7edfd95ae08 100644
--- a/pkgs/development/python-modules/uncompyle6/default.nix
+++ b/pkgs/development/python-modules/uncompyle6/default.nix
@@ -11,11 +11,11 @@
 
 buildPythonPackage rec {
   pname = "uncompyle6";
-  version = "3.2.4";
+  version = "3.2.5";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0lv0ks7w5bsl8bndm6ikl4yprkq2ps23y409ldlycrvlggjg44y5";
+    sha256 = "1z4489grxc06pxmfy63b6x6h54p05fhbigvrrgr1kvdciy2nvz04";
   };
 
   checkInputs = [ nose pytest hypothesis six ];
diff --git a/pkgs/development/python-modules/unittest-xml-reporting/default.nix b/pkgs/development/python-modules/unittest-xml-reporting/default.nix
index e7e559234f66..f5997b9091f3 100644
--- a/pkgs/development/python-modules/unittest-xml-reporting/default.nix
+++ b/pkgs/development/python-modules/unittest-xml-reporting/default.nix
@@ -2,7 +2,7 @@
 
 buildPythonPackage rec {
   pname = "unittest-xml-reporting";
-  version = "2.2.0";
+  version = "2.2.1";
 
   propagatedBuildInputs = [six];
 
@@ -11,7 +11,7 @@ buildPythonPackage rec {
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "3ba27af788bddb4403ee72561bfd3df2deb27a926a5426aa9beeb354c59b9c44";
+    sha256 = "1cn870jgf4h0wb4bnafw527g1dj6rd3rgyjz4f64khd0zx9qs84z";
   };
   meta = with lib; {
     homepage = https://github.com/xmlrunner/unittest-xml-reporting/tree/master/;
diff --git a/pkgs/development/python-modules/uproot-methods/default.nix b/pkgs/development/python-modules/uproot-methods/default.nix
index a3aaf048654f..69442bafd09d 100644
--- a/pkgs/development/python-modules/uproot-methods/default.nix
+++ b/pkgs/development/python-modules/uproot-methods/default.nix
@@ -6,12 +6,12 @@
 }:
 
 buildPythonPackage rec {
-  version = "0.2.7";
+  version = "0.2.11";
   pname = "uproot-methods";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0c9g7scq5nga6r2gn4j24xfs5rssn6z6aj4bhpk5ayzz8hhpss6w";
+    sha256 = "289b9b4a58511f35ab4783bb37cdc922eba75d1886e0eb1be136cc861eff7b66";
   };
 
   propagatedBuildInputs = [ numpy awkward ];
diff --git a/pkgs/development/python-modules/uproot/default.nix b/pkgs/development/python-modules/uproot/default.nix
index fd23824e2aae..097313b42f7a 100644
--- a/pkgs/development/python-modules/uproot/default.nix
+++ b/pkgs/development/python-modules/uproot/default.nix
@@ -2,29 +2,30 @@
 , fetchPypi
 , buildPythonPackage
 , numpy
-, python-lz4
 , uproot-methods
 , awkward
 , cachetools
 , pythonOlder
 , pytestrunner
 , pytest
+, pkgconfig
+, lz4
 , backports_lzma
 }:
 
 buildPythonPackage rec {
   pname = "uproot";
-  version = "3.2.12";
+  version = "3.2.15";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0jxsv0038glxz87skjxr58fafwyqilivkrygpvk4nkp866i5kz2k";
+    sha256 = "a871f57529e3df170aa5556c1353a64077277644baecabb18d042954f2af9030";
   };
 
   buildInputs = [ pytestrunner ];
-  checkInputs = [ pytest ]
+  checkInputs = [ pytest pkgconfig lz4 ]
     ++ lib.optionals (pythonOlder "3.3") [ backports_lzma ];
-  propagatedBuildInputs = [ numpy python-lz4 cachetools uproot-methods awkward ];
+  propagatedBuildInputs = [ numpy cachetools uproot-methods awkward ];
 
   meta = with lib; {
     homepage = https://github.com/scikit-hep/uproot;
diff --git a/pkgs/development/python-modules/vidstab/default.nix b/pkgs/development/python-modules/vidstab/default.nix
index 34e8a1bd1c36..e01353b6238b 100644
--- a/pkgs/development/python-modules/vidstab/default.nix
+++ b/pkgs/development/python-modules/vidstab/default.nix
@@ -10,12 +10,12 @@
 }:
 
 buildPythonPackage rec {
-  version = "1.0.0";
+  version = "1.0.1";
   pname = "vidstab";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "fa7aa196ae40074cc2887f26472d1526d670715ab2dbbc032ca1fb1c68688392";
+    sha256 = "31b45fa6c6c726ee05c4e106d95682f17258750d09e2e1c880bbccbf866f323e";
   };
 
   checkInputs = [ pytest ];
diff --git a/pkgs/development/python-modules/vine/default.nix b/pkgs/development/python-modules/vine/default.nix
index 0e0a169d5523..08240d5c594a 100644
--- a/pkgs/development/python-modules/vine/default.nix
+++ b/pkgs/development/python-modules/vine/default.nix
@@ -3,13 +3,13 @@
 
 buildPythonPackage rec {
   pname = "vine";
-  version = "1.1.4";
+  version = "1.2.0";
 
   disable = pythonOlder "2.7";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "52116d59bc45392af9fdd3b75ed98ae48a93e822cee21e5fda249105c59a7a72";
+    sha256 = "0xjz2sjbr5jrpjk411b7alkghdskhphgsqqrbi7abqfh2pli6j7f";
   };
 
   buildInputs = [ case pytest ];
diff --git a/pkgs/development/python-modules/w3lib/default.nix b/pkgs/development/python-modules/w3lib/default.nix
index 839a4738f9fe..b71bc7dc928d 100644
--- a/pkgs/development/python-modules/w3lib/default.nix
+++ b/pkgs/development/python-modules/w3lib/default.nix
@@ -7,11 +7,11 @@
 
 buildPythonPackage rec {
   pname = "w3lib";
-  version = "1.19.0";
+  version = "1.20.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "55994787e93b411c2d659068b51b9998d9d0c05e0df188e6daf8f45836e1ea38";
+    sha256 = "1mqwlc1cr15jxr3gr8pqqh5gf0gppm2kcvdi8vid6y8wmq9bjkg5";
   };
 
   buildInputs = [ six pytest ];
diff --git a/pkgs/development/python-modules/wcwidth/default.nix b/pkgs/development/python-modules/wcwidth/default.nix
index fa993c593e1a..861d5bcae21e 100644
--- a/pkgs/development/python-modules/wcwidth/default.nix
+++ b/pkgs/development/python-modules/wcwidth/default.nix
@@ -1,26 +1,29 @@
-{ stdenv, fetchurl, buildPythonPackage }:
+{ lib, fetchPypi, buildPythonPackage, pytest }:
 
 buildPythonPackage rec {
-    name = "wcwidth-${version}";
-    version = "0.1.7";
+  pname = "wcwidth";
+  version = "0.1.7";
 
-    src = fetchurl {
-      url = "mirror://pypi/w/wcwidth/${name}.tar.gz";
-      sha256 = "0pn6dflzm609m4r3i8ik5ni9ijjbb5fa3vg1n7hn6vkd49r77wrx";
-    };
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "0pn6dflzm609m4r3i8ik5ni9ijjbb5fa3vg1n7hn6vkd49r77wrx";
+  };
 
-    # Checks fail due to missing tox.ini file:
-    doCheck = false;
+  checkInputs = [ pytest ];
 
-    meta = with stdenv.lib; {
-      description = "Measures number of Terminal column cells of wide-character codes";
-      longDescription = ''
-        This API is mainly for Terminal Emulator implementors -- any Python
-        program that attempts to determine the printable width of a string on
-        a Terminal. It is implemented in python (no C library calls) and has
-        no 3rd-party dependencies.
-      '';
-      homepage = https://github.com/jquast/wcwidth;
-      license = licenses.mit;
-    };
-  }
+  checkPhase = ''
+    pytest
+  '';
+
+  meta = with lib; {
+    description = "Measures number of Terminal column cells of wide-character codes";
+    longDescription = ''
+      This API is mainly for Terminal Emulator implementors -- any Python
+      program that attempts to determine the printable width of a string on
+      a Terminal. It is implemented in python (no C library calls) and has
+      no 3rd-party dependencies.
+    '';
+    homepage = https://github.com/jquast/wcwidth;
+    license = licenses.mit;
+  };
+}
diff --git a/pkgs/development/python-modules/webob/default.nix b/pkgs/development/python-modules/webob/default.nix
index 2d30fc748308..bd2e0574a476 100644
--- a/pkgs/development/python-modules/webob/default.nix
+++ b/pkgs/development/python-modules/webob/default.nix
@@ -7,11 +7,11 @@
 
 buildPythonPackage rec {
   pname = "WebOb";
-  version = "1.8.4";
+  version = "1.8.5";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "a48315158db05df0c47fbdd061b57ba0ba85bdd0b6ea9dca87511b4b7c798e99";
+    sha256 = "05aaab7975e0ee8af2026325d656e5ce14a71f1883c52276181821d6d5bf7086";
   };
 
   propagatedBuildInputs = [ nose pytest ];
diff --git a/pkgs/development/python-modules/whisper/default.nix b/pkgs/development/python-modules/whisper/default.nix
index b48dba39439e..f9565d8e6a05 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.4";
+  version = "1.1.5";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "ee9128873b5f9c97d258d35d0a32ef8e62c9da473fbbd056982df1f36f0b37aa";
+    sha256 = "14013e7563102d808aae0cb5b3b2326979236d4bcd54c343ea636761629920cd";
   };
 
   propagatedBuildInputs = [ six ];
diff --git a/pkgs/development/python-modules/whoosh/default.nix b/pkgs/development/python-modules/whoosh/default.nix
index cf3fce18c14c..41d8530293d0 100644
--- a/pkgs/development/python-modules/whoosh/default.nix
+++ b/pkgs/development/python-modules/whoosh/default.nix
@@ -7,7 +7,8 @@ buildPythonPackage rec {
     inherit pname version;
     sha256 = "10qsqdjpbc85fykc1vgcs8xwbgn4l2l52c8d83xf1q59pwyn79bw";
   };
-  buildInputs = [ pytest ];
+
+  checkInputs = [ pytest ];
 
   # Wrong encoding
   postPatch = ''
diff --git a/pkgs/development/python-modules/worldengine/default.nix b/pkgs/development/python-modules/worldengine/default.nix
index 0a49c2566409..cdb60946079d 100644
--- a/pkgs/development/python-modules/worldengine/default.nix
+++ b/pkgs/development/python-modules/worldengine/default.nix
@@ -7,7 +7,6 @@
 , pyplatec
 , protobuf
 , purepng
-, argparse
 , h5py
 , gdal
 }:
@@ -35,7 +34,7 @@ buildPythonPackage rec {
   '';
 
   buildInputs = [ nose ];
-  propagatedBuildInputs = [ noise numpy pyplatec protobuf purepng argparse h5py gdal ];
+  propagatedBuildInputs = [ noise numpy pyplatec protobuf purepng h5py gdal ];
 
   prePatch = ''
     substituteInPlace setup.py \
diff --git a/pkgs/development/python-modules/wrf-python/default.nix b/pkgs/development/python-modules/wrf-python/default.nix
new file mode 100644
index 000000000000..8e9358dd473a
--- /dev/null
+++ b/pkgs/development/python-modules/wrf-python/default.nix
@@ -0,0 +1,41 @@
+{lib, fetchFromGitHub, python, pythonOlder, buildPythonPackage, gfortran, mock, xarray, wrapt, numpy, netcdf4}:
+
+buildPythonPackage rec {
+  pname = "wrf-python";
+  version = "1.3.1.1";
+
+  src = fetchFromGitHub {
+    owner = "NCAR";
+    repo = "wrf-python";
+    rev = version;
+    sha256 = "12mm7x1r5md6x28vmwyh6k655pgsv6knj8ycmjbxxk8bk7qsj74h";
+  };
+
+  propagatedBuildInputs = [
+    wrapt
+    numpy
+    xarray
+  ];
+  buildInputs = [
+    gfortran
+  ] ++ lib.optional (pythonOlder "3.3") mock;
+  
+  checkInputs = [
+    netcdf4
+  ];
+
+  doCheck = true;
+  checkPhase = ''
+    runHook preCheck
+    cd ./test/ci_tests
+    python utests.py
+    runHook postCheck
+  '';
+
+  meta = {
+    description = "WRF postprocessing library for Python";
+    homepage = http://wrf-python.rtfd.org;
+    license = lib.licenses.asl20;
+    maintainers = with lib.maintainers; [ mhaselsteiner ];
+	};
+}
\ No newline at end of file
diff --git a/pkgs/development/python-modules/wxPython/3.0.nix b/pkgs/development/python-modules/wxPython/3.0.nix
index abce4cf44e0c..427b46f44eee 100644
--- a/pkgs/development/python-modules/wxPython/3.0.nix
+++ b/pkgs/development/python-modules/wxPython/3.0.nix
@@ -33,7 +33,8 @@ buildPythonPackage rec {
 
   hardeningDisable = [ "format" ];
 
-  propagatedBuildInputs = [ pkgconfig ]
+  nativeBuildInputs = [ pkgconfig ];
+  propagatedBuildInputs = [ ]
     ++ (lib.optional openglSupport pyopengl)
     ++ (lib.optionals (!stdenv.isDarwin) [ wxGTK (wxGTK.gtk) libX11 ])
     ++ (lib.optionals stdenv.isDarwin [ wxmac darwin.apple_sdk.frameworks.Cocoa ])
@@ -60,8 +61,6 @@ buildPythonPackage rec {
       ]}'
   '';
 
-  NIX_LDFLAGS = lib.optionalString (!stdenv.isDarwin) "-lX11 -lgdk-x11-2.0";
-
   buildPhase = "";
 
   installPhase = ''
diff --git a/pkgs/development/python-modules/wxPython/4.0.nix b/pkgs/development/python-modules/wxPython/4.0.nix
index 39e3d7fb3fa1..c59e91ad3eab 100644
--- a/pkgs/development/python-modules/wxPython/4.0.nix
+++ b/pkgs/development/python-modules/wxPython/4.0.nix
@@ -15,11 +15,11 @@
 
 buildPythonPackage rec {
   pname = "wxPython";
-  version = "4.0.3";
+  version = "4.0.4";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "8d0dfc0146c24749ce00d575e35cc2826372e809d5bc4a57bde6c89031b59e75";
+    sha256 = "0d9ef4260cb2f3e23ed9dcf6baa905ba585ac7d631613cddc299c4c83463ae29";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/xarray/default.nix b/pkgs/development/python-modules/xarray/default.nix
index c055618b2e60..997c4a2deeb6 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.11.2";
+  version = "0.11.3";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1cnghx1xcgdq675abmrys311vspmzgjgiji4wh8iyw194qalfwdg";
+    sha256 = "1pc4p7yxvmhn3x121wgslwclaqnjlx51wxs6ihb4cxynh2vcwgfc";
   };
 
   checkInputs = [ pytest ];
diff --git a/pkgs/development/python-modules/xlrd/default.nix b/pkgs/development/python-modules/xlrd/default.nix
index 3379433b04d6..6307f630fcd9 100644
--- a/pkgs/development/python-modules/xlrd/default.nix
+++ b/pkgs/development/python-modules/xlrd/default.nix
@@ -13,7 +13,7 @@ buildPythonPackage rec {
     sha256 = "8a21885513e6d915fe33a8ee5fdfa675433b61405ba13e2a69e62ee36828d7e2";
   };
 
-  buildInputs = [ nose ];
+  checkInputs = [ nose ];
 
   checkPhase = ''
     nosetests -v
diff --git a/pkgs/development/python-modules/yamllint/default.nix b/pkgs/development/python-modules/yamllint/default.nix
index 16bd57a83266..bfd302d27df7 100644
--- a/pkgs/development/python-modules/yamllint/default.nix
+++ b/pkgs/development/python-modules/yamllint/default.nix
@@ -3,11 +3,11 @@
 
 buildPythonPackage rec {
   pname = "yamllint";
-  version = "1.13.0";
+  version = "1.14.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "19fznzypkxgl1i9fy4d72xp7rbk30g62rjqmcmnqf3ij46p8flj2";
+    sha256 = "0x9ansmhqvc3rj0nbhpl0jdqr5pk6qdxf7i6r4gr0hzqr50vdaf0";
   };
 
   checkInputs = [ nose ];
diff --git a/pkgs/development/python-modules/yarg/default.nix b/pkgs/development/python-modules/yarg/default.nix
new file mode 100644
index 000000000000..f49ed20b2b92
--- /dev/null
+++ b/pkgs/development/python-modules/yarg/default.nix
@@ -0,0 +1,27 @@
+{ lib, buildPythonPackage, fetchFromGitHub, requests, nose, mock }:
+
+buildPythonPackage rec {
+  pname = "yarg";
+  version = "0.1.9";
+
+  src = fetchFromGitHub {
+    owner = "kura";
+    repo = pname;
+    rev = version;
+    sha256 = "1isq02s404fp9whkm8w2kvb2ik1sz0r258iby0q532zw81lga0d0";
+  };
+
+  propagatedBuildInputs = [ requests ];
+
+  checkInputs = [ nose mock ];
+  checkPhase = ''
+    nosetests
+  '';
+
+  meta = with lib; {
+    description = "An easy to use PyPI client";
+    homepage = https://yarg.readthedocs.io;
+    license = licenses.mit;
+    maintainers = with maintainers; [ psyanticy ];
+  };
+}
diff --git a/pkgs/development/python-modules/yubico-client/default.nix b/pkgs/development/python-modules/yubico-client/default.nix
new file mode 100644
index 000000000000..ddd992a51447
--- /dev/null
+++ b/pkgs/development/python-modules/yubico-client/default.nix
@@ -0,0 +1,24 @@
+{ lib, buildPythonPackage, fetchPypi
+, requests }:
+
+buildPythonPackage rec {
+  pname = "yubico-client";
+  version = "1.10.0";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "0skkmrpvpb1pwyqjf3lh9vq46xagvwdx9kagpdbba2v5dgrk34d1";
+  };
+
+  propagatedBuildInputs = [ requests ];
+
+  # pypi package missing test_utils and github releases is behind
+  doCheck = false;
+
+  meta = with lib; {
+    description = "Verifying Yubico OTPs based on the validation protocol version 2.0";
+    homepage = https://github.com/Kami/python-yubico-client/;
+    maintainers= with maintainers; [ peterromfeldhk ];
+    license = licenses.bsd3;
+  };
+}
diff --git a/pkgs/development/python-modules/zm-py/default.nix b/pkgs/development/python-modules/zm-py/default.nix
new file mode 100644
index 000000000000..d7f212f22844
--- /dev/null
+++ b/pkgs/development/python-modules/zm-py/default.nix
@@ -0,0 +1,29 @@
+{ lib, fetchPypi, buildPythonPackage, isPy3k
+, pytest, requests }:
+
+buildPythonPackage rec {
+  pname = "zm-py";
+  version = "0.3.0";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1hq83svprd21r74palhs3xq15g34135349y4lrgr7c76i3f37j2q";
+  };
+
+  disabled = !isPy3k;
+
+  propagatedBuildInputs = [ requests ];
+
+  checkInputs = [ pytest ];
+
+  checkPhase = ''
+    PYTHONPATH="./zoneminder:$PYTHONPATH" pytest
+  '';
+
+  meta = with lib; {
+    description = "A loose python wrapper around the ZoneMinder REST API";
+    homepage = https://github.com/rohankapoorcom/zm-py;
+    license = licenses.asl20;
+    maintainers = with maintainers; [ peterhoeg ];
+  };
+}
diff --git a/pkgs/development/python-modules/zope_testrunner/default.nix b/pkgs/development/python-modules/zope_testrunner/default.nix
index 7cd789491685..25f167b2e94d 100644
--- a/pkgs/development/python-modules/zope_testrunner/default.nix
+++ b/pkgs/development/python-modules/zope_testrunner/default.nix
@@ -10,11 +10,11 @@
 
 buildPythonPackage rec {
   pname = "zope.testrunner";
-  version = "4.9";
+  version = "4.9.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "f3856a79ab0e4ff74addc3e6c152b388dddee548345b440767b6361f635bd9b7";
+    sha256 = "f2aa89531db6b7546e46be9d6113ac835a075f4dcb26e32c7276f4f30d4b14a5";
   };
 
   propagatedBuildInputs = [ zope_interface zope_exceptions zope_testing six ];