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/Babel/default.nix6
-rw-r--r--pkgs/development/python-modules/JPype1/default.nix27
-rw-r--r--pkgs/development/python-modules/JPype1/set-compiler-language.patch12
-rw-r--r--pkgs/development/python-modules/JayDeBeApi/default.nix21
-rw-r--r--pkgs/development/python-modules/Pygments/default.nix4
-rw-r--r--pkgs/development/python-modules/Rtree/default.nix4
-rw-r--r--pkgs/development/python-modules/absl-py/default.nix4
-rw-r--r--pkgs/development/python-modules/aioamqp/default.nix44
-rw-r--r--pkgs/development/python-modules/aiocontextvars/default.nix48
-rw-r--r--pkgs/development/python-modules/aioesphomeapi/default.nix4
-rw-r--r--pkgs/development/python-modules/aiohttp/default.nix1
-rw-r--r--pkgs/development/python-modules/aiohue/default.nix4
-rw-r--r--pkgs/development/python-modules/aiomysql/default.nix47
-rw-r--r--pkgs/development/python-modules/aiosqlite/default.nix36
-rw-r--r--pkgs/development/python-modules/aiounittest/default.nix36
-rw-r--r--pkgs/development/python-modules/alembic/default.nix4
-rw-r--r--pkgs/development/python-modules/altair/default.nix7
-rw-r--r--pkgs/development/python-modules/annoy/default.nix7
-rw-r--r--pkgs/development/python-modules/ansible-lint/default.nix10
-rw-r--r--pkgs/development/python-modules/anytree/default.nix22
-rw-r--r--pkgs/development/python-modules/apispec/default.nix4
-rw-r--r--pkgs/development/python-modules/area/default.nix20
-rw-r--r--pkgs/development/python-modules/argon2_cffi/default.nix7
-rw-r--r--pkgs/development/python-modules/ase/3.17.nix4
-rw-r--r--pkgs/development/python-modules/ase/default.nix4
-rw-r--r--pkgs/development/python-modules/asn1crypto/default.nix4
-rw-r--r--pkgs/development/python-modules/astropy-helpers/default.nix4
-rw-r--r--pkgs/development/python-modules/astropy/default.nix4
-rw-r--r--pkgs/development/python-modules/astunparse/default.nix4
-rw-r--r--pkgs/development/python-modules/asyncssh/default.nix4
-rw-r--r--pkgs/development/python-modules/audio-metadata/default.nix2
-rw-r--r--pkgs/development/python-modules/autobahn/default.nix4
-rw-r--r--pkgs/development/python-modules/awkward/default.nix4
-rw-r--r--pkgs/development/python-modules/awkward1/default.nix4
-rw-r--r--pkgs/development/python-modules/aws-adfs/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-core/default.nix48
-rw-r--r--pkgs/development/python-modules/azure-identity/default.nix53
-rw-r--r--pkgs/development/python-modules/azure-keyvault-keys/default.nix47
-rw-r--r--pkgs/development/python-modules/azure-keyvault-nspkg/default.nix35
-rw-r--r--pkgs/development/python-modules/azure-keyvault-secrets/default.nix33
-rw-r--r--pkgs/development/python-modules/azure-keyvault/default.nix38
-rw-r--r--pkgs/development/python-modules/azure-mgmt-cdn/default.nix4
-rw-r--r--pkgs/development/python-modules/azure-mgmt-consumption/default.nix5
-rw-r--r--pkgs/development/python-modules/azure-mgmt-containerservice/default.nix4
-rw-r--r--pkgs/development/python-modules/azure-mgmt-cosmosdb/default.nix4
-rw-r--r--pkgs/development/python-modules/azure-mgmt-datamigration/default.nix9
-rw-r--r--pkgs/development/python-modules/azure-mgmt-devtestlabs/default.nix5
-rw-r--r--pkgs/development/python-modules/azure-mgmt-dns/default.nix5
-rw-r--r--pkgs/development/python-modules/azure-mgmt-hanaonazure/default.nix4
-rw-r--r--pkgs/development/python-modules/azure-mgmt-hdinsight/default.nix4
-rw-r--r--pkgs/development/python-modules/azure-mgmt-keyvault/default.nix5
-rw-r--r--pkgs/development/python-modules/azure-mgmt-media/default.nix4
-rw-r--r--pkgs/development/python-modules/azure-mgmt-msi/default.nix5
-rw-r--r--pkgs/development/python-modules/azure-mgmt-relay/default.nix5
-rw-r--r--pkgs/development/python-modules/azure-mgmt-resource/default.nix4
-rw-r--r--pkgs/development/python-modules/azure-mgmt-servicefabric/default.nix5
-rw-r--r--pkgs/development/python-modules/azure-mgmt-sql/default.nix4
-rw-r--r--pkgs/development/python-modules/azure-mgmt-storage/default.nix4
-rw-r--r--pkgs/development/python-modules/azure-servicebus/default.nix4
-rw-r--r--pkgs/development/python-modules/azure-servicefabric/default.nix4
-rw-r--r--pkgs/development/python-modules/backports_functools_lru_cache/default.nix18
-rw-r--r--pkgs/development/python-modules/bandit/default.nix44
-rw-r--r--pkgs/development/python-modules/bashlex/default.nix38
-rw-r--r--pkgs/development/python-modules/bayespy/default.nix4
-rw-r--r--pkgs/development/python-modules/beautifulsoup4/default.nix4
-rw-r--r--pkgs/development/python-modules/bids-validator/default.nix4
-rw-r--r--pkgs/development/python-modules/bitarray/default.nix4
-rw-r--r--pkgs/development/python-modules/bjoern/default.nix4
-rw-r--r--pkgs/development/python-modules/bleach/default.nix5
-rw-r--r--pkgs/development/python-modules/bokeh/default.nix17
-rw-r--r--pkgs/development/python-modules/boltztrap2/default.nix4
-rw-r--r--pkgs/development/python-modules/breathe/default.nix7
-rw-r--r--pkgs/development/python-modules/broadlink/default.nix4
-rw-r--r--pkgs/development/python-modules/browser-cookie3/default.nix4
-rw-r--r--pkgs/development/python-modules/bugwarrior/default.nix16
-rw-r--r--pkgs/development/python-modules/buildbot/default.nix5
-rw-r--r--pkgs/development/python-modules/cachecontrol/default.nix4
-rw-r--r--pkgs/development/python-modules/cachetools/default.nix6
-rw-r--r--pkgs/development/python-modules/cachy/default.nix4
-rw-r--r--pkgs/development/python-modules/caldav/default.nix1
-rw-r--r--pkgs/development/python-modules/celery/default.nix10
-rw-r--r--pkgs/development/python-modules/certifi/default.nix4
-rw-r--r--pkgs/development/python-modules/cffi/default.nix3
-rw-r--r--pkgs/development/python-modules/cfn-lint/default.nix9
-rw-r--r--pkgs/development/python-modules/channels/default.nix4
-rw-r--r--pkgs/development/python-modules/cld2-cffi/default.nix2
-rw-r--r--pkgs/development/python-modules/cliff/default.nix4
-rw-r--r--pkgs/development/python-modules/clifford/default.nix4
-rw-r--r--pkgs/development/python-modules/clikit/default.nix4
-rw-r--r--pkgs/development/python-modules/clize/default.nix14
-rw-r--r--pkgs/development/python-modules/clustershell/default.nix4
-rw-r--r--pkgs/development/python-modules/cma/default.nix33
-rw-r--r--pkgs/development/python-modules/colorcet/default.nix3
-rw-r--r--pkgs/development/python-modules/colored/default.nix4
-rw-r--r--pkgs/development/python-modules/compiledb/default.nix42
-rw-r--r--pkgs/development/python-modules/confluent-kafka/default.nix4
-rw-r--r--pkgs/development/python-modules/connexion/default.nix4
-rw-r--r--pkgs/development/python-modules/cornice/default.nix4
-rw-r--r--pkgs/development/python-modules/coveralls/default.nix4
-rw-r--r--pkgs/development/python-modules/cupy/default.nix4
-rw-r--r--pkgs/development/python-modules/cx_oracle/default.nix4
-rw-r--r--pkgs/development/python-modules/cymem/default.nix5
-rw-r--r--pkgs/development/python-modules/dask/default.nix41
-rw-r--r--pkgs/development/python-modules/databases/default.nix49
-rw-r--r--pkgs/development/python-modules/datadog/default.nix8
-rw-r--r--pkgs/development/python-modules/datashader/default.nix4
-rw-r--r--pkgs/development/python-modules/dbf/default.nix2
-rw-r--r--pkgs/development/python-modules/deluge-client/default.nix4
-rw-r--r--pkgs/development/python-modules/diff_cover/default.nix4
-rw-r--r--pkgs/development/python-modules/diskcache/default.nix26
-rw-r--r--pkgs/development/python-modules/distributed/default.nix4
-rw-r--r--pkgs/development/python-modules/django-auth-ldap/default.nix4
-rw-r--r--pkgs/development/python-modules/django-configurations/default.nix4
-rw-r--r--pkgs/development/python-modules/django-cors-headers/default.nix4
-rw-r--r--pkgs/development/python-modules/django-multiselectfield/default.nix4
-rw-r--r--pkgs/development/python-modules/django-pglocks/default.nix4
-rw-r--r--pkgs/development/python-modules/django-postgresql-netfields/default.nix49
-rw-r--r--pkgs/development/python-modules/django-ranged-response/default.nix23
-rw-r--r--pkgs/development/python-modules/django-simple-captcha/default.nix39
-rw-r--r--pkgs/development/python-modules/django-versatileimagefield/default.nix4
-rw-r--r--pkgs/development/python-modules/django_contrib_comments/default.nix3
-rw-r--r--pkgs/development/python-modules/django_redis/default.nix4
-rw-r--r--pkgs/development/python-modules/django_taggit/default.nix4
-rw-r--r--pkgs/development/python-modules/django_treebeard/default.nix4
-rw-r--r--pkgs/development/python-modules/djangorestframework/default.nix8
-rw-r--r--pkgs/development/python-modules/dkimpy/default.nix4
-rw-r--r--pkgs/development/python-modules/dnslib/default.nix4
-rw-r--r--pkgs/development/python-modules/easy-thumbnails/default.nix4
-rw-r--r--pkgs/development/python-modules/easyprocess/default.nix4
-rw-r--r--pkgs/development/python-modules/ecdsa/default.nix6
-rw-r--r--pkgs/development/python-modules/effect/default.nix4
-rw-r--r--pkgs/development/python-modules/elasticsearch/default.nix4
-rw-r--r--pkgs/development/python-modules/ephem/default.nix2
-rw-r--r--pkgs/development/python-modules/eve/default.nix4
-rw-r--r--pkgs/development/python-modules/eyed3/default.nix4
-rw-r--r--pkgs/development/python-modules/faker/default.nix4
-rw-r--r--pkgs/development/python-modules/fastapi/default.nix38
-rw-r--r--pkgs/development/python-modules/fastapi/setup.py.patch13
-rw-r--r--pkgs/development/python-modules/fints/default.nix9
-rw-r--r--pkgs/development/python-modules/flask-api/default.nix4
-rw-r--r--pkgs/development/python-modules/flask-caching/default.nix8
-rw-r--r--pkgs/development/python-modules/flask-swagger-ui/default.nix24
-rw-r--r--pkgs/development/python-modules/fonttools/default.nix6
-rw-r--r--pkgs/development/python-modules/foolscap/default.nix4
-rw-r--r--pkgs/development/python-modules/fsspec/default.nix28
-rw-r--r--pkgs/development/python-modules/genanki/default.nix4
-rw-r--r--pkgs/development/python-modules/gidgethub/default.nix4
-rw-r--r--pkgs/development/python-modules/glom/default.nix4
-rw-r--r--pkgs/development/python-modules/google-music/default.nix4
-rw-r--r--pkgs/development/python-modules/google_api_core/default.nix4
-rw-r--r--pkgs/development/python-modules/google_cloud_asset/default.nix4
-rw-r--r--pkgs/development/python-modules/google_cloud_automl/default.nix4
-rw-r--r--pkgs/development/python-modules/google_cloud_bigquery/default.nix4
-rw-r--r--pkgs/development/python-modules/google_cloud_bigtable/default.nix4
-rw-r--r--pkgs/development/python-modules/google_cloud_core/default.nix4
-rw-r--r--pkgs/development/python-modules/google_cloud_dataproc/default.nix4
-rw-r--r--pkgs/development/python-modules/google_cloud_dlp/default.nix4
-rw-r--r--pkgs/development/python-modules/google_cloud_firestore/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_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.nix4
-rw-r--r--pkgs/development/python-modules/google_cloud_videointelligence/default.nix4
-rw-r--r--pkgs/development/python-modules/google_cloud_vision/default.nix4
-rw-r--r--pkgs/development/python-modules/google_resumable_media/default.nix4
-rw-r--r--pkgs/development/python-modules/graph-tool/2.x.x.nix24
-rw-r--r--pkgs/development/python-modules/grpcio-tools/default.nix4
-rw-r--r--pkgs/development/python-modules/gunicorn/default.nix7
-rw-r--r--pkgs/development/python-modules/gym/default.nix4
-rw-r--r--pkgs/development/python-modules/h3/default.nix35
-rw-r--r--pkgs/development/python-modules/h3/disable-custom-install.patch41
-rw-r--r--pkgs/development/python-modules/h3/hardcode-h3-path.patch19
-rw-r--r--pkgs/development/python-modules/hass-nabucasa/default.nix8
-rw-r--r--pkgs/development/python-modules/hmmlearn/default.nix4
-rw-r--r--pkgs/development/python-modules/holidays/default.nix4
-rw-r--r--pkgs/development/python-modules/homeassistant-pyozw/default.nix1
-rw-r--r--pkgs/development/python-modules/hstspreload/default.nix28
-rw-r--r--pkgs/development/python-modules/html5lib/default.nix6
-rw-r--r--pkgs/development/python-modules/httplib2/default.nix4
-rw-r--r--pkgs/development/python-modules/httpx/default.nix68
-rw-r--r--pkgs/development/python-modules/hypothesis/default.nix4
-rw-r--r--pkgs/development/python-modules/identify/default.nix4
-rw-r--r--pkgs/development/python-modules/imagecodecs-lite/default.nix21
-rw-r--r--pkgs/development/python-modules/imbalanced-learn/default.nix4
-rw-r--r--pkgs/development/python-modules/imgaug/default.nix45
-rw-r--r--pkgs/development/python-modules/importlib-metadata/default.nix7
-rw-r--r--pkgs/development/python-modules/inflect/default.nix10
-rw-r--r--pkgs/development/python-modules/intake/default.nix4
-rw-r--r--pkgs/development/python-modules/ipykernel/default.nix7
-rw-r--r--pkgs/development/python-modules/ipython/7.9.nix69
-rw-r--r--pkgs/development/python-modules/ipython/default.nix6
-rw-r--r--pkgs/development/python-modules/irc/default.nix4
-rw-r--r--pkgs/development/python-modules/isbnlib/default.nix4
-rw-r--r--pkgs/development/python-modules/jaraco_classes/default.nix13
-rw-r--r--pkgs/development/python-modules/jaraco_stream/default.nix4
-rw-r--r--pkgs/development/python-modules/javaobj-py3/default.nix26
-rw-r--r--pkgs/development/python-modules/jedi/default.nix4
-rw-r--r--pkgs/development/python-modules/jieba/default.nix4
-rw-r--r--pkgs/development/python-modules/jsonschema/default.nix4
-rw-r--r--pkgs/development/python-modules/junitparser/default.nix31
-rw-r--r--pkgs/development/python-modules/jupyter_console/default.nix7
-rw-r--r--pkgs/development/python-modules/jupyterlab/default.nix4
-rw-r--r--pkgs/development/python-modules/jupytext/default.nix4
-rw-r--r--pkgs/development/python-modules/kconfiglib/default.nix4
-rw-r--r--pkgs/development/python-modules/keyring/default.nix22
-rw-r--r--pkgs/development/python-modules/keyrings-alt/default.nix13
-rw-r--r--pkgs/development/python-modules/koji/default.nix2
-rw-r--r--pkgs/development/python-modules/labelbox/default.nix4
-rw-r--r--pkgs/development/python-modules/leveldb/default.nix4
-rw-r--r--pkgs/development/python-modules/libcloud/default.nix12
-rw-r--r--pkgs/development/python-modules/limits/default.nix4
-rw-r--r--pkgs/development/python-modules/limnoria/default.nix4
-rw-r--r--pkgs/development/python-modules/lmdb/default.nix4
-rw-r--r--pkgs/development/python-modules/lmtpd/default.nix4
-rw-r--r--pkgs/development/python-modules/logilab/common.nix7
-rw-r--r--pkgs/development/python-modules/loguru/default.nix16
-rw-r--r--pkgs/development/python-modules/m2crypto/default.nix2
-rw-r--r--pkgs/development/python-modules/magic-wormhole-mailbox-server/default.nix8
-rw-r--r--pkgs/development/python-modules/magic-wormhole/default.nix4
-rw-r--r--pkgs/development/python-modules/marionette-harness/mozdevice.nix3
-rw-r--r--pkgs/development/python-modules/marionette-harness/mozprofile.nix4
-rw-r--r--pkgs/development/python-modules/marshmallow-sqlalchemy/default.nix4
-rw-r--r--pkgs/development/python-modules/marshmallow/default.nix7
-rw-r--r--pkgs/development/python-modules/mautrix-appservice/0001-Remove-coding-annotations.patch53
-rw-r--r--pkgs/development/python-modules/mautrix-appservice/default.nix32
-rw-r--r--pkgs/development/python-modules/mautrix/default.nix43
-rw-r--r--pkgs/development/python-modules/maxminddb/default.nix4
-rw-r--r--pkgs/development/python-modules/measurement/default.nix4
-rw-r--r--pkgs/development/python-modules/mecab-python3/default.nix4
-rw-r--r--pkgs/development/python-modules/mechanize/default.nix4
-rw-r--r--pkgs/development/python-modules/mlrose/default.nix4
-rw-r--r--pkgs/development/python-modules/mockito/default.nix9
-rw-r--r--pkgs/development/python-modules/monty/default.nix2
-rw-r--r--pkgs/development/python-modules/more-itertools/default.nix4
-rw-r--r--pkgs/development/python-modules/moto/default.nix38
-rw-r--r--pkgs/development/python-modules/msal-extensions/default.nix35
-rw-r--r--pkgs/development/python-modules/msal/default.nix36
-rw-r--r--pkgs/development/python-modules/msrestazure/default.nix2
-rw-r--r--pkgs/development/python-modules/mt-940/default.nix4
-rw-r--r--pkgs/development/python-modules/multidict/default.nix4
-rw-r--r--pkgs/development/python-modules/munch/default.nix7
-rw-r--r--pkgs/development/python-modules/mypy/default.nix4
-rw-r--r--pkgs/development/python-modules/nagiosplugin/default.nix32
-rw-r--r--pkgs/development/python-modules/nameparser/default.nix4
-rw-r--r--pkgs/development/python-modules/names/default.nix36
-rw-r--r--pkgs/development/python-modules/natsort/default.nix7
-rw-r--r--pkgs/development/python-modules/nbsmoke/default.nix6
-rw-r--r--pkgs/development/python-modules/nbval/default.nix4
-rw-r--r--pkgs/development/python-modules/ncclient/default.nix4
-rw-r--r--pkgs/development/python-modules/nevow/default.nix12
-rw-r--r--pkgs/development/python-modules/nibabel/default.nix6
-rw-r--r--pkgs/development/python-modules/nilearn/default.nix4
-rw-r--r--pkgs/development/python-modules/nipype/default.nix6
-rw-r--r--pkgs/development/python-modules/notedown/default.nix37
-rw-r--r--pkgs/development/python-modules/nuitka/default.nix4
-rw-r--r--pkgs/development/python-modules/numcodecs/default.nix2
-rw-r--r--pkgs/development/python-modules/numexpr/default.nix4
-rw-r--r--pkgs/development/python-modules/numpy/default.nix20
-rw-r--r--pkgs/development/python-modules/numpydoc/default.nix4
-rw-r--r--pkgs/development/python-modules/oauthenticator/default.nix4
-rw-r--r--pkgs/development/python-modules/opentracing/default.nix4
-rw-r--r--pkgs/development/python-modules/optuna/default.nix27
-rw-r--r--pkgs/development/python-modules/orm/default.nix43
-rw-r--r--pkgs/development/python-modules/oscrypto/default.nix41
-rw-r--r--pkgs/development/python-modules/oyaml/default.nix41
-rw-r--r--pkgs/development/python-modules/pandoc-attributes/default.nix29
-rw-r--r--pkgs/development/python-modules/panel/default.nix4
-rw-r--r--pkgs/development/python-modules/paramiko/default.nix12
-rw-r--r--pkgs/development/python-modules/parsedatetime/default.nix4
-rw-r--r--pkgs/development/python-modules/parso/default.nix4
-rw-r--r--pkgs/development/python-modules/partd/default.nix8
-rw-r--r--pkgs/development/python-modules/pep8-naming/default.nix4
-rw-r--r--pkgs/development/python-modules/pex/default.nix4
-rw-r--r--pkgs/development/python-modules/pglast/default.nix4
-rw-r--r--pkgs/development/python-modules/phonenumbers/default.nix4
-rw-r--r--pkgs/development/python-modules/phonopy/default.nix4
-rw-r--r--pkgs/development/python-modules/pipdate/default.nix4
-rw-r--r--pkgs/development/python-modules/pivy/default.nix2
-rw-r--r--pkgs/development/python-modules/plone-testing/default.nix4
-rw-r--r--pkgs/development/python-modules/plotly/default.nix4
-rw-r--r--pkgs/development/python-modules/portend/default.nix8
-rw-r--r--pkgs/development/python-modules/ppft/default.nix7
-rw-r--r--pkgs/development/python-modules/prance/default.nix4
-rw-r--r--pkgs/development/python-modules/pre-commit/default.nix4
-rw-r--r--pkgs/development/python-modules/protobuf/default.nix5
-rw-r--r--pkgs/development/python-modules/prox-tv/default.nix50
-rw-r--r--pkgs/development/python-modules/prox-tv/use-openblas.patch11
-rw-r--r--pkgs/development/python-modules/psd-tools/default.nix26
-rw-r--r--pkgs/development/python-modules/pulp/default.nix4
-rw-r--r--pkgs/development/python-modules/purepng/default.nix2
-rw-r--r--pkgs/development/python-modules/pvlib/default.nix4
-rw-r--r--pkgs/development/python-modules/py/default.nix4
-rw-r--r--pkgs/development/python-modules/py3status/default.nix4
-rw-r--r--pkgs/development/python-modules/pyGithub/default.nix4
-rw-r--r--pkgs/development/python-modules/pyaml/default.nix4
-rw-r--r--pkgs/development/python-modules/pyatmo/default.nix4
-rw-r--r--pkgs/development/python-modules/pybids/default.nix4
-rw-r--r--pkgs/development/python-modules/pybind11/0001-Find-include-directory.patch53
-rw-r--r--pkgs/development/python-modules/pybind11/default.nix15
-rw-r--r--pkgs/development/python-modules/pybullet/default.nix4
-rw-r--r--pkgs/development/python-modules/pycares/default.nix4
-rw-r--r--pkgs/development/python-modules/pycurl/default.nix2
-rw-r--r--pkgs/development/python-modules/pydantic/default.nix35
-rw-r--r--pkgs/development/python-modules/pyelftools/default.nix4
-rw-r--r--pkgs/development/python-modules/pyfakefs/default.nix8
-rw-r--r--pkgs/development/python-modules/pyjks/default.nix37
-rw-r--r--pkgs/development/python-modules/pykeepass/default.nix4
-rw-r--r--pkgs/development/python-modules/pymatgen/default.nix4
-rw-r--r--pkgs/development/python-modules/pymavlink/default.nix4
-rw-r--r--pkgs/development/python-modules/pymc3/default.nix4
-rw-r--r--pkgs/development/python-modules/pymongo/default.nix4
-rw-r--r--pkgs/development/python-modules/pymssql/default.nix4
-rw-r--r--pkgs/development/python-modules/pymupdf/default.nix4
-rw-r--r--pkgs/development/python-modules/pyobjc/default.nix4
-rw-r--r--pkgs/development/python-modules/pyodbc/default.nix4
-rw-r--r--pkgs/development/python-modules/pyopenssl/default.nix26
-rw-r--r--pkgs/development/python-modules/pyparsing/default.nix4
-rw-r--r--pkgs/development/python-modules/pyperf/default.nix4
-rw-r--r--pkgs/development/python-modules/pyrabbit2/default.nix26
-rw-r--r--pkgs/development/python-modules/pyro-ppl/default.nix4
-rw-r--r--pkgs/development/python-modules/pyscreenshot/default.nix4
-rw-r--r--pkgs/development/python-modules/pyside/default.nix2
-rw-r--r--pkgs/development/python-modules/pyside/shiboken.nix2
-rw-r--r--pkgs/development/python-modules/pysmb/default.nix36
-rw-r--r--pkgs/development/python-modules/pysocks/default.nix4
-rw-r--r--pkgs/development/python-modules/pyspf/default.nix15
-rw-r--r--pkgs/development/python-modules/pytest-benchmark/default.nix2
-rw-r--r--pkgs/development/python-modules/pytest-django/default.nix4
-rw-r--r--pkgs/development/python-modules/pytest-doctestplus/default.nix4
-rw-r--r--pkgs/development/python-modules/pytest-mock/default.nix4
-rw-r--r--pkgs/development/python-modules/pytest-mpl/default.nix6
-rw-r--r--pkgs/development/python-modules/pytest-qt/default.nix4
-rw-r--r--pkgs/development/python-modules/pytest-services/default.nix6
-rw-r--r--pkgs/development/python-modules/pytest-testmon/default.nix11
-rw-r--r--pkgs/development/python-modules/pytest/4.nix4
-rw-r--r--pkgs/development/python-modules/pytest/default.nix4
-rw-r--r--pkgs/development/python-modules/pytestrunner/default.nix4
-rw-r--r--pkgs/development/python-modules/python-gitlab/default.nix4
-rw-r--r--pkgs/development/python-modules/python-jenkins/default.nix4
-rw-r--r--pkgs/development/python-modules/python-multipart/default.nix41
-rw-r--r--pkgs/development/python-modules/python-rapidjson/default.nix4
-rw-r--r--pkgs/development/python-modules/python-redis-lock/default.nix4
-rw-r--r--pkgs/development/python-modules/python-socketio/default.nix4
-rw-r--r--pkgs/development/python-modules/python-uinput/default.nix2
-rw-r--r--pkgs/development/python-modules/python2-pythondialog/default.nix4
-rw-r--r--pkgs/development/python-modules/python_openzwave/cython.patch20
-rw-r--r--pkgs/development/python-modules/python_openzwave/default.nix6
-rw-r--r--pkgs/development/python-modules/pythondialog/default.nix4
-rw-r--r--pkgs/development/python-modules/pythonirclib/default.nix2
-rw-r--r--pkgs/development/python-modules/pyunifi/default.nix4
-rw-r--r--pkgs/development/python-modules/pyvcd/default.nix4
-rw-r--r--pkgs/development/python-modules/pywbem/default.nix4
-rw-r--r--pkgs/development/python-modules/pywinrm/default.nix4
-rw-r--r--pkgs/development/python-modules/pyxattr/default.nix4
-rw-r--r--pkgs/development/python-modules/pyxl3/default.nix4
-rw-r--r--pkgs/development/python-modules/pyyaml/default.nix4
-rw-r--r--pkgs/development/python-modules/qimage2ndarray/default.nix4
-rw-r--r--pkgs/development/python-modules/qiskit/default.nix4
-rw-r--r--pkgs/development/python-modules/qtconsole/default.nix4
-rw-r--r--pkgs/development/python-modules/quandl/default.nix2
-rw-r--r--pkgs/development/python-modules/rainbowstream/default.nix4
-rw-r--r--pkgs/development/python-modules/readme_renderer/default.nix3
-rw-r--r--pkgs/development/python-modules/regex/default.nix4
-rw-r--r--pkgs/development/python-modules/remotecv/default.nix1
-rw-r--r--pkgs/development/python-modules/requirements-detector/default.nix38
-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/rpy2/default.nix4
-rw-r--r--pkgs/development/python-modules/runway-python/default.nix4
-rw-r--r--pkgs/development/python-modules/s3fs/default.nix8
-rw-r--r--pkgs/development/python-modules/scapy/default.nix14
-rw-r--r--pkgs/development/python-modules/scikit-build/default.nix3
-rw-r--r--pkgs/development/python-modules/scikit-build/fix_pytestrunner_req.patch13
-rw-r--r--pkgs/development/python-modules/scipy/default.nix23
-rw-r--r--pkgs/development/python-modules/scrapy/default.nix4
-rw-r--r--pkgs/development/python-modules/semantic-version/default.nix4
-rw-r--r--pkgs/development/python-modules/shodan/default.nix4
-rw-r--r--pkgs/development/python-modules/shutilwhich/default.nix30
-rw-r--r--pkgs/development/python-modules/simplejson/default.nix4
-rw-r--r--pkgs/development/python-modules/six/default.nix4
-rw-r--r--pkgs/development/python-modules/slicedimage/default.nix4
-rw-r--r--pkgs/development/python-modules/slither-analyzer/default.nix4
-rw-r--r--pkgs/development/python-modules/snowflake-connector-python/default.nix65
-rw-r--r--pkgs/development/python-modules/snowflake-sqlalchemy/default.nix27
-rw-r--r--pkgs/development/python-modules/solo-python/default.nix1
-rw-r--r--pkgs/development/python-modules/sparqlwrapper/default.nix4
-rw-r--r--pkgs/development/python-modules/sphinx/default.nix6
-rw-r--r--pkgs/development/python-modules/sphinxcontrib-blockdiag/default.nix4
-rw-r--r--pkgs/development/python-modules/sphinxcontrib-tikz/binary-paths.patch22
-rw-r--r--pkgs/development/python-modules/sphinxcontrib-tikz/default.nix38
-rw-r--r--pkgs/development/python-modules/splinter/default.nix4
-rw-r--r--pkgs/development/python-modules/spyder-kernels/default.nix4
-rw-r--r--pkgs/development/python-modules/spyder/default.nix4
-rw-r--r--pkgs/development/python-modules/sqlalchemy-utils/default.nix4
-rw-r--r--pkgs/development/python-modules/sqlobject/default.nix4
-rw-r--r--pkgs/development/python-modules/squaremap/default.nix10
-rw-r--r--pkgs/development/python-modules/starfish/default.nix4
-rw-r--r--pkgs/development/python-modules/starlette/default.nix20
-rw-r--r--pkgs/development/python-modules/stm32loader/default.nix4
-rw-r--r--pkgs/development/python-modules/stripe/default.nix4
-rw-r--r--pkgs/development/python-modules/svg-path/default.nix4
-rw-r--r--pkgs/development/python-modules/svgwrite/default.nix29
-rw-r--r--pkgs/development/python-modules/tblib/default.nix4
-rw-r--r--pkgs/development/python-modules/telethon/default.nix4
-rw-r--r--pkgs/development/python-modules/tenacity/default.nix4
-rw-r--r--pkgs/development/python-modules/tensorflow/cuda-10.2-no-bin2c-path.patch10
-rw-r--r--pkgs/development/python-modules/tensorflow/default.nix6
-rw-r--r--pkgs/development/python-modules/thrift/default.nix4
-rw-r--r--pkgs/development/python-modules/tifffile/default.nix31
-rw-r--r--pkgs/development/python-modules/tiledb/default.nix4
-rw-r--r--pkgs/development/python-modules/timezonefinder/default.nix31
-rw-r--r--pkgs/development/python-modules/tld/default.nix4
-rw-r--r--pkgs/development/python-modules/toggl-cli/default.nix5
-rw-r--r--pkgs/development/python-modules/tox/default.nix4
-rw-r--r--pkgs/development/python-modules/transaction/default.nix4
-rw-r--r--pkgs/development/python-modules/treq/default.nix4
-rw-r--r--pkgs/development/python-modules/trezor/default.nix4
-rw-r--r--pkgs/development/python-modules/trio/default.nix4
-rw-r--r--pkgs/development/python-modules/trustme/default.nix4
-rw-r--r--pkgs/development/python-modules/twine/default.nix27
-rw-r--r--pkgs/development/python-modules/twisted/default.nix4
-rw-r--r--pkgs/development/python-modules/twofish/default.nix33
-rw-r--r--pkgs/development/python-modules/txtorcon/default.nix2
-rw-r--r--pkgs/development/python-modules/typeguard/default.nix4
-rw-r--r--pkgs/development/python-modules/typesystem/default.nix44
-rw-r--r--pkgs/development/python-modules/uamqp/default.nix4
-rw-r--r--pkgs/development/python-modules/uncompyle6/default.nix4
-rw-r--r--pkgs/development/python-modules/unicorn/default.nix22
-rw-r--r--pkgs/development/python-modules/uproot-methods/default.nix4
-rw-r--r--pkgs/development/python-modules/uproot/default.nix9
-rw-r--r--pkgs/development/python-modules/uritemplate/default.nix4
-rw-r--r--pkgs/development/python-modules/uritools/default.nix9
-rw-r--r--pkgs/development/python-modules/urwid/default.nix10
-rw-r--r--pkgs/development/python-modules/urwidtrees/default.nix4
-rw-r--r--pkgs/development/python-modules/vcrpy/default.nix4
-rw-r--r--pkgs/development/python-modules/vega_datasets/default.nix4
-rw-r--r--pkgs/development/python-modules/venusian/default.nix7
-rw-r--r--pkgs/development/python-modules/viewstate/default.nix36
-rw-r--r--pkgs/development/python-modules/virtual-display/default.nix4
-rw-r--r--pkgs/development/python-modules/virtualenv/default.nix4
-rw-r--r--pkgs/development/python-modules/vowpalwabbit/default.nix4
-rw-r--r--pkgs/development/python-modules/wasabi/default.nix4
-rw-r--r--pkgs/development/python-modules/whitenoise/default.nix7
-rw-r--r--pkgs/development/python-modules/xcffib/default.nix4
-rw-r--r--pkgs/development/python-modules/xdis/default.nix6
-rw-r--r--pkgs/development/python-modules/xml2rfc/default.nix4
-rw-r--r--pkgs/development/python-modules/xmlschema/default.nix4
-rw-r--r--pkgs/development/python-modules/xmodem/default.nix26
-rw-r--r--pkgs/development/python-modules/yamllint/default.nix4
-rw-r--r--pkgs/development/python-modules/yapf/default.nix4
-rw-r--r--pkgs/development/python-modules/yappi/default.nix4
-rw-r--r--pkgs/development/python-modules/yarl/default.nix4
-rw-r--r--pkgs/development/python-modules/yubico-client/default.nix4
-rw-r--r--pkgs/development/python-modules/zeroconf/default.nix4
-rw-r--r--pkgs/development/python-modules/zha-quirks/default.nix4
-rw-r--r--pkgs/development/python-modules/zm-py/default.nix4
-rw-r--r--pkgs/development/python-modules/zope_component/default.nix4
-rw-r--r--pkgs/development/python-modules/zope_contenttype/default.nix4
-rw-r--r--pkgs/development/python-modules/zope_i18nmessageid/default.nix4
-rw-r--r--pkgs/development/python-modules/zope_interface/default.nix4
464 files changed, 3522 insertions, 1204 deletions
diff --git a/pkgs/development/python-modules/Babel/default.nix b/pkgs/development/python-modules/Babel/default.nix
index 97b35257820..ef86aedc527 100644
--- a/pkgs/development/python-modules/Babel/default.nix
+++ b/pkgs/development/python-modules/Babel/default.nix
@@ -11,14 +11,10 @@ buildPythonPackage rec {
 
   propagatedBuildInputs = [ pytz ];
 
-  checkInputs = [ pytest freezegun glibcLocales ];
+  checkInputs = [ pytest freezegun ];
 
   doCheck = !stdenv.isDarwin;
 
-  preCheck = ''
-    export LC_ALL="en_US.UTF-8"
-  '';
-
   meta = with lib; {
     homepage = http://babel.edgewall.org;
     description = "A collection of tools for internationalizing Python applications";
diff --git a/pkgs/development/python-modules/JPype1/default.nix b/pkgs/development/python-modules/JPype1/default.nix
index 3e3d90f09d2..22093f0258a 100644
--- a/pkgs/development/python-modules/JPype1/default.nix
+++ b/pkgs/development/python-modules/JPype1/default.nix
@@ -1,24 +1,29 @@
-{ buildPythonPackage, fetchPypi, pytest }:
+{ lib
+, buildPythonPackage
+, fetchPypi
+, pytest
+}:
 
 buildPythonPackage rec {
   pname = "JPype1";
-  version = "0.7.0";
+  version = "0.7.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1630439d5b0fb49e2878b43a1a1f074f9d4f46520f525569e14f1f0f9399f871";
+    sha256 = "c16d01cde9c2c955d76d45675e64b06c3255784d49cea4147024e99a01fbbb18";
   };
 
-  patches = [ ./set-compiler-language.patch ];
+  checkInputs = [
+    pytest
+  ];
 
-  checkInputs = [ pytest ];
-
-  # ImportError: Failed to import test module: test.testlucene
+  # required openjdk (easy) but then there were some class path issues
+  # when running the tests
   doCheck = false;
 
-  meta = {
-    homepage = "https://github.com/originell/jpype/";
-    license = "License :: OSI Approved :: Apache Software License";
-    description = "A Python to Java bridge.";
+  meta = with lib; {
+    homepage = https://github.com/originell/jpype/;
+    license = licenses.asl20;
+    description = "A Python to Java bridge";
   };
 }
diff --git a/pkgs/development/python-modules/JPype1/set-compiler-language.patch b/pkgs/development/python-modules/JPype1/set-compiler-language.patch
deleted file mode 100644
index 1d5921a6ffa..00000000000
--- a/pkgs/development/python-modules/JPype1/set-compiler-language.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff -Naur a/setup.py b/setup.py
---- a/setup.py	2017-01-12 19:08:44.000000000 -0500
-+++ b/setup.py	2018-02-15 12:28:16.000000000 -0500
-@@ -123,7 +123,7 @@
- 
-     # extra compile args
-     copt = {'msvc': ['/EHsc'],
--            'unix' : ['-ggdb'],
-+            'unix' : ['-ggdb', '-x', 'c++'],
-             'mingw32' : [],
-            }
-     # extra link args
diff --git a/pkgs/development/python-modules/JayDeBeApi/default.nix b/pkgs/development/python-modules/JayDeBeApi/default.nix
index a423945b0ce..dd1cc819ad6 100644
--- a/pkgs/development/python-modules/JayDeBeApi/default.nix
+++ b/pkgs/development/python-modules/JayDeBeApi/default.nix
@@ -1,16 +1,25 @@
-{ lib, buildPythonPackage, fetchPypi, JPype1 }:
+{ lib
+, buildPythonPackage
+, fetchPypi
+, JPype1
+}:
 
 buildPythonPackage rec {
   pname = "JayDeBeApi";
   version = "1.1.1";
+
   src = fetchPypi {
     inherit pname version;
     sha256 = "0a189xs9zw81jvwwglvf2qyqnk6ra0biljssx9n4ffayqn9glbds";
   };
-  propagatedBuildInputs = [ JPype1 ];
-  meta = {
-    homepage = "https://github.com/baztian/jaydebeapi";
-    license = lib.licenses.lgpl2;
-    description = "Use JDBC database drivers from Python 2/3 or Jython with a DB-API.";
+
+  propagatedBuildInputs = [
+    JPype1
+  ];
+
+  meta = with lib; {
+    homepage = https://github.com/baztian/jaydebeapi;
+    license = licenses.lgpl2;
+    description = "Use JDBC database drivers from Python 2/3 or Jython with a DB-API";
   };
 }
diff --git a/pkgs/development/python-modules/Pygments/default.nix b/pkgs/development/python-modules/Pygments/default.nix
index cb0986e1d7f..38636c9e31d 100644
--- a/pkgs/development/python-modules/Pygments/default.nix
+++ b/pkgs/development/python-modules/Pygments/default.nix
@@ -6,11 +6,11 @@
 
 buildPythonPackage rec {
   pname = "Pygments";
-  version = "2.4.2";
+  version = "2.5.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "15v2sqm5g12bqa0c7wikfh9ck2nl97ayizy1hpqhmws5gqalq748";
+    sha256 = "98c8aa5a9f778fcd1026a17361ddaf7330d1b7c62ae97c3bb0ae73e0b9b6b0fe";
   };
 
   propagatedBuildInputs = [ docutils ];
diff --git a/pkgs/development/python-modules/Rtree/default.nix b/pkgs/development/python-modules/Rtree/default.nix
index 1ac721874da..867c771350c 100644
--- a/pkgs/development/python-modules/Rtree/default.nix
+++ b/pkgs/development/python-modules/Rtree/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "Rtree";
-  version = "0.9.2";
+  version = "0.9.3";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "6a34b25f588e1563e45af251a8469b43a125d972eb2fa66e9ce96ed29f06c454";
+    sha256 = "55c046a98e8d84235792de1f18635f680d7b4085264fbced6b073f28fcbe353a";
   };
 
   propagatedBuildInputs = [ libspatialindex ];
diff --git a/pkgs/development/python-modules/absl-py/default.nix b/pkgs/development/python-modules/absl-py/default.nix
index 5b0b9d19570..e7a2f120c1b 100644
--- a/pkgs/development/python-modules/absl-py/default.nix
+++ b/pkgs/development/python-modules/absl-py/default.nix
@@ -8,11 +8,11 @@
 
 buildPythonPackage rec {
   pname = "absl-py";
-  version = "0.8.1";
+  version = "0.9.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "d9129186431e150d7fe455f1cb1ecbb92bb5dba9da9bc3ef7b012d98c4db2526";
+    sha256 = "75e737d6ce7723d9ff9b7aa1ba3233c34be62ef18d5859e706b8fdc828989830";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/aioamqp/default.nix b/pkgs/development/python-modules/aioamqp/default.nix
index 3cd6277a3fa..8db47220543 100644
--- a/pkgs/development/python-modules/aioamqp/default.nix
+++ b/pkgs/development/python-modules/aioamqp/default.nix
@@ -1,20 +1,42 @@
-{ lib, buildPythonPackage, fetchPypi, pythonOlder,
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, pamqp
+, pytest
+, asynctest
+, pyrabbit2
+, isPy27
 }:
 
 buildPythonPackage rec {
   pname = "aioamqp";
-  version = "0.13.0";
+  version = "0.14.0";
+  disabled = isPy27;
 
-  meta = {
-    homepage = https://github.com/polyconseil/aioamqp;
-    description = "AMQP implementation using asyncio";
-    license = lib.licenses.bsd3;
+  src = fetchFromGitHub {
+    owner = "Polyconseil";
+    repo = pname;
+    rev = "${pname}-${version}";
+    sha256 = "1gpfsrc2vi6w33c9zsycd2qn589pr7a222rb41r85m915283zy48";
   };
 
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "ced0d2bb0054809b37b0636da34fc7cda23d66943fb5f9f0610555988cf347b2";
-  };
+  propagatedBuildInputs = [
+    pamqp
+  ];
+
+  checkInputs = [
+    pytest
+    asynctest
+    pyrabbit2
+  ];
 
-  disabled = pythonOlder "3.3";
+  # tests assume rabbitmq server running
+  doCheck = false;
+
+  meta = with lib; {
+    homepage = https://github.com/polyconseil/aioamqp;
+    description = "AMQP implementation using asyncio";
+    license = licenses.bsd3;
+    maintainers = [ maintainers.costrouc ];
+  };
 }
diff --git a/pkgs/development/python-modules/aiocontextvars/default.nix b/pkgs/development/python-modules/aiocontextvars/default.nix
new file mode 100644
index 00000000000..38fdf14164e
--- /dev/null
+++ b/pkgs/development/python-modules/aiocontextvars/default.nix
@@ -0,0 +1,48 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, pytestrunner
+, pytest
+, pytest-asyncio
+, contextvars
+, sqlalchemy
+, isPy27
+, pythonOlder
+}:
+
+buildPythonPackage rec {
+  pname = "aiocontextvars";
+  version = "0.2.2";
+  disabled = isPy27;
+
+  src = fetchFromGitHub {
+    owner = "fantix";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "0a2gmrm9csiknc8n3si67sgzffkydplh9d7ga1k87ygk2aj22mmk";
+  };
+
+  buildInputs = [
+    pytestrunner
+  ];
+
+  checkInputs = [
+    pytest
+    pytest-asyncio
+  ];
+
+  propagatedBuildInputs = [
+    sqlalchemy
+  ] ++ lib.optionals (pythonOlder "3.7") [ contextvars ];
+
+  checkPhase = ''
+    pytest
+  '';
+
+  meta = with lib; {
+    description = "Asyncio support for PEP-567 contextvars backport";
+    homepage = https://github.com/fantix/aiocontextvars;
+    license = licenses.bsd3;
+    maintainers = [ maintainers.costrouc ];
+  };
+}
diff --git a/pkgs/development/python-modules/aioesphomeapi/default.nix b/pkgs/development/python-modules/aioesphomeapi/default.nix
index 5be6f9d86fd..dee85117406 100644
--- a/pkgs/development/python-modules/aioesphomeapi/default.nix
+++ b/pkgs/development/python-modules/aioesphomeapi/default.nix
@@ -2,13 +2,13 @@
 
 buildPythonPackage rec {
   pname = "aioesphomeapi";
-  version = "2.4.2";
+  version = "2.6.1";
 
   disabled = !isPy3k;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "e43e0fd628506f95752e90ab1579e5495183cc3c46915d0b0a062975cb5d181b";
+    sha256 = "139d1d348fcfe2f34926a210a32dff069935d17167c4e1cb66e8b039cbb4d6c1";
   };
 
   propagatedBuildInputs = [ attrs protobuf zeroconf ];
diff --git a/pkgs/development/python-modules/aiohttp/default.nix b/pkgs/development/python-modules/aiohttp/default.nix
index 6ac46b744a5..40dec3e1c1e 100644
--- a/pkgs/development/python-modules/aiohttp/default.nix
+++ b/pkgs/development/python-modules/aiohttp/default.nix
@@ -51,6 +51,7 @@ buildPythonPackage rec {
                and not connector \
                and not client_disconnect \
                and not handle_keepalive_on_closed_connection \
+               and not proxy_https_bad_response \
                and not partially_applied_handler \
                and not middleware" \
       --ignore=test_connector.py
diff --git a/pkgs/development/python-modules/aiohue/default.nix b/pkgs/development/python-modules/aiohue/default.nix
index 258d5f10c95..ede51da9ef1 100644
--- a/pkgs/development/python-modules/aiohue/default.nix
+++ b/pkgs/development/python-modules/aiohue/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "aiohue";
-  version = "1.9.2";
+  version = "1.10.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "a7e545ae17658c10f2c5321e40b85426a8c284e5b33b5dfbe9171f9bdf37aa3e";
+    sha256 = "d95e51f15c442d769004774e7b4220155e32dc6c8ae834b035a2f0d8ff783ff0";
   };
 
   propagatedBuildInputs = [ aiohttp ];
diff --git a/pkgs/development/python-modules/aiomysql/default.nix b/pkgs/development/python-modules/aiomysql/default.nix
new file mode 100644
index 00000000000..891e9f216ce
--- /dev/null
+++ b/pkgs/development/python-modules/aiomysql/default.nix
@@ -0,0 +1,47 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, pymysql
+, pytest
+, isPy27
+}:
+
+buildPythonPackage rec {
+  pname = "aiomysql";
+  version = "0.0.20";
+  disabled = isPy27;
+
+  src = fetchFromGitHub {
+    owner = "aio-libs";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "1mxih81zc2k64briirpp5wz4f72l8v05avfyfibaq9fr6lcbih9b";
+  };
+
+  propagatedBuildInputs = [
+    pymysql
+  ];
+
+  checkInputs = [
+    pytest
+  ];
+
+  postPatch = ''
+    substituteInPlace setup.py \
+      --replace "PyMySQL>=0.9,<=0.9.2" "PyMySQL"
+  '';
+
+  checkPhase = ''
+    pytest
+  '';
+
+  # tests require mysql database
+  doCheck = false;
+
+  meta = with lib; {
+    description = "MySQL driver for asyncio";
+    homepage = https://github.com/aio-libs/aiomysql;
+    license = licenses.mit;
+    maintainers = [ maintainers.costrouc ];
+  };
+}
diff --git a/pkgs/development/python-modules/aiosqlite/default.nix b/pkgs/development/python-modules/aiosqlite/default.nix
new file mode 100644
index 00000000000..1032485e980
--- /dev/null
+++ b/pkgs/development/python-modules/aiosqlite/default.nix
@@ -0,0 +1,36 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, setuptools
+, aiounittest
+, isPy27
+, pytest
+}:
+
+buildPythonPackage rec {
+  pname = "aiosqlite";
+  version = "0.11.0";
+  disabled = isPy27;
+
+  src = fetchFromGitHub {
+    owner = "jreese";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "0pmkp4iy738yv2sl08kvhd0ma6wjqbmfnwid72gvg4zqsr1hnn0z";
+  };
+
+  buildInputs = [
+    setuptools
+  ];
+
+  checkInputs = [
+    aiounittest
+  ];
+
+  meta = with lib; {
+    description = "Asyncio bridge to the standard sqlite3 module";
+    homepage = https://github.com/jreese/aiosqlite;
+    license = licenses.mit;
+    maintainers = [ maintainers.costrouc ];
+  };
+}
diff --git a/pkgs/development/python-modules/aiounittest/default.nix b/pkgs/development/python-modules/aiounittest/default.nix
new file mode 100644
index 00000000000..743600a0d3b
--- /dev/null
+++ b/pkgs/development/python-modules/aiounittest/default.nix
@@ -0,0 +1,36 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, nose
+, coverage
+, isPy27
+}:
+
+buildPythonPackage rec {
+  pname = "aiounittest";
+  version = "1.3.1";
+  disabled = isPy27;
+
+  src = fetchFromGitHub {
+    owner = "kwarunek";
+    repo = pname;
+    rev = version;
+    sha256 = "0mlic2q49cb0vv62mixy4i4x8c91qb6jlji7khiamcxcg676nasl";
+  };
+
+  checkInputs = [
+    nose
+    coverage
+  ];
+
+  checkPhase = ''
+    nosetests
+  '';
+
+  meta = with lib; {
+    description = "Test asyncio code more easily";
+    homepage = https://github.com/kwarunek/aiounittest;
+    license = licenses.mit;
+    maintainers = [ maintainers.costrouc ];
+  };
+}
diff --git a/pkgs/development/python-modules/alembic/default.nix b/pkgs/development/python-modules/alembic/default.nix
index da958cd8d97..72e7ae6417a 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.2.1";
+  version = "1.3.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "9f907d7e8b286a1cfb22db9084f9ce4fde7ad7956bb496dc7c952e10ac90e36a";
+    sha256 = "3b0cb1948833e062f4048992fbc97ecfaaaac24aaa0d83a1202a99fb58af8c6d";
   };
 
   buildInputs = [ pytest pytestcov mock coverage ];
diff --git a/pkgs/development/python-modules/altair/default.nix b/pkgs/development/python-modules/altair/default.nix
index 344a724756e..9cb362a7bd1 100644
--- a/pkgs/development/python-modules/altair/default.nix
+++ b/pkgs/development/python-modules/altair/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi
+{ stdenv, buildPythonPackage, fetchPypi, isPy27
 , entrypoints
 , glibcLocales
 , ipython
@@ -18,11 +18,12 @@
 
 buildPythonPackage rec {
   pname = "altair";
-  version = "3.2.0";
+  version = "4.0.0";
+  disabled = isPy27;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "098macm0sw54xqijdy1c8cppcgw79wn52qdc71qqb51nibc17gls";
+    sha256 = "92dcd7b84c715f8e02bbdf37e36193a4af8138b5b064c05f237e6ed41573880a";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/annoy/default.nix b/pkgs/development/python-modules/annoy/default.nix
index e3d32e6a069..5041ee54e4f 100644
--- a/pkgs/development/python-modules/annoy/default.nix
+++ b/pkgs/development/python-modules/annoy/default.nix
@@ -1,18 +1,21 @@
 { stdenv
 , buildPythonPackage
 , fetchPypi
+, h5py
 , nose
 }:
 
 buildPythonPackage rec {
-  version = "1.16.2";
+  version = "1.16.3";
   pname = "annoy";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "41348e813fe7125eda3e2229a075eba3d065173ba6c5f20c545bb9c2932633fa";
+    sha256 = "fe2779664bd8846f2d67191a7e6010b8df890ac4586336748fd0697f31654379";
   };
 
+  nativeBuildInputs = [ h5py ];
+
   checkInputs = [
     nose
   ];
diff --git a/pkgs/development/python-modules/ansible-lint/default.nix b/pkgs/development/python-modules/ansible-lint/default.nix
index 50addec97c2..62c9b33d5e3 100644
--- a/pkgs/development/python-modules/ansible-lint/default.nix
+++ b/pkgs/development/python-modules/ansible-lint/default.nix
@@ -11,13 +11,15 @@
 
 buildPythonPackage rec {
   pname = "ansible-lint";
-  version = "4.1.1a0";
+  version = "4.2.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "00mw56a3lmdb5xvrzhahrzqv3wvxfz0mxl4n0qbkxzggf2pg0i8d";
+    sha256 = "eb925d8682d70563ccb80e2aca7b3edf84fb0b768cea3edc6846aac7abdc414a";
   };
 
+  format = "pyproject";
+
   nativeBuildInputs = [ setuptools_scm ];
   propagatedBuildInputs = [ pyyaml six ansible ruamel_yaml ];
   checkInputs = [ nose ];
@@ -31,10 +33,11 @@ buildPythonPackage rec {
   # give a hint to setuptools_scm on package version
   preBuild = ''
     export SETUPTOOLS_SCM_PRETEND_VERSION="v${version}"
+    export HOME=$(mktemp -d)
   '';
 
   checkPhase = ''
-    PATH=$out/bin:$PATH HOME=$(mktemp -d) nosetests test
+    PATH=$out/bin:$PATH nosetests test
   '';
 
   meta = with lib; {
@@ -42,5 +45,6 @@ buildPythonPackage rec {
     description = "Best practices checker for Ansible";
     license = licenses.mit;
     maintainers = [ maintainers.sengaya ];
+    broken = true; # requires new flit to build
   };
 }
diff --git a/pkgs/development/python-modules/anytree/default.nix b/pkgs/development/python-modules/anytree/default.nix
index 638b2c2baa3..712944568f2 100644
--- a/pkgs/development/python-modules/anytree/default.nix
+++ b/pkgs/development/python-modules/anytree/default.nix
@@ -1,26 +1,25 @@
 { lib
 , buildPythonPackage
-, fetchFromGitHub
+, fetchPypi
 , substituteAll
 , fetchpatch
 , nose
 , six
+, withGraphviz ? true
 , graphviz
 , fontconfig
 }:
 
 buildPythonPackage rec {
   pname = "anytree";
-  version = "2.7.2";
+  version = "2.7.3";
 
-  src = fetchFromGitHub {
-    owner = "c0fec0de";
-    repo = pname;
-    rev = version;
-    sha256 = "0ag5ir9h5p7rbm2pmpxlkflwigrm7z4afh24jvbhqj7pyrbjmk9w";
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "05736hamjv4f38jw6z9y4wckc7mz18ivbizm1s3pb0n6fp1sy4zk";
   };
 
-  patches = [
+  patches = lib.optionals withGraphviz [
     (substituteAll {
       src = ./graphviz.patch;
       inherit graphviz;
@@ -35,11 +34,14 @@ buildPythonPackage rec {
     six
   ];
 
-  # Fontconfig error: Cannot load default config file
-  preCheck = ''
+  # tests print “Fontconfig error: Cannot load default config file”
+  preCheck = lib.optionalString withGraphviz ''
     export FONTCONFIG_FILE=${fontconfig.out}/etc/fonts/fonts.conf
   '';
 
+  # circular dependency anytree → graphviz → pango → glib → gtk-doc → anytree
+  doCheck = withGraphviz;
+
   checkPhase = ''
     runHook preCheck
 
diff --git a/pkgs/development/python-modules/apispec/default.nix b/pkgs/development/python-modules/apispec/default.nix
index 217a921a634..1ed984fc718 100644
--- a/pkgs/development/python-modules/apispec/default.nix
+++ b/pkgs/development/python-modules/apispec/default.nix
@@ -11,11 +11,11 @@
 
 buildPythonPackage rec {
   pname = "apispec";
-  version = "3.1.0";
+  version = "3.1.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0rr32z9hbf8w4w1fs5gj2v0ixcq2vq7a3wssrlxagi5ii7ygap7y";
+    sha256 = "24b8490c22310b0779a058ccb24ec2fef33d571bb5aba1f525ab5963b0eabcdd";
   };
 
   checkInputs = [
diff --git a/pkgs/development/python-modules/area/default.nix b/pkgs/development/python-modules/area/default.nix
new file mode 100644
index 00000000000..37d7369dbee
--- /dev/null
+++ b/pkgs/development/python-modules/area/default.nix
@@ -0,0 +1,20 @@
+{ lib, buildPythonPackage, fetchPypi }:
+
+buildPythonPackage rec {
+  pname = "area";
+  version = "1.1.1";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "18k5hwmlxhajlq306zxndsglb11vv8vd4vpmwx8dpvfxd1kbksya";
+  };
+
+  # tests not working on the package from pypi
+  doCheck = false;
+
+  meta = with lib; {
+    description = "Calculate the area inside of any GeoJSON geometry. This is a port of Mapbox’s geojson-area for Python.";
+    homepage = "https://github.com/scisco/area";
+    license = licenses.bsd2;
+  };
+}
diff --git a/pkgs/development/python-modules/argon2_cffi/default.nix b/pkgs/development/python-modules/argon2_cffi/default.nix
index 187e795416c..130a2c18917 100644
--- a/pkgs/development/python-modules/argon2_cffi/default.nix
+++ b/pkgs/development/python-modules/argon2_cffi/default.nix
@@ -12,11 +12,12 @@
 
 buildPythonPackage rec {
   pname = "argon2_cffi";
-  version = "19.1.0";
+  version = "19.2.0";
 
   src = fetchPypi {
-    inherit pname version;
-    sha256 = "81548a27b919861040cb928a350733f4f9455dd67c7d1ba92eb5960a1d7f8b26";
+    pname = "argon2-cffi";
+    inherit version;
+    sha256 = "ffaa623eea77b497ffbdd1a51e941b33d3bf552c60f14dbee274c4070677bda3";
   };
 
   propagatedBuildInputs = [ cffi six ] ++ lib.optional (!isPy3k) enum34;
diff --git a/pkgs/development/python-modules/ase/3.17.nix b/pkgs/development/python-modules/ase/3.17.nix
index dc251ac2ab2..3a466170c77 100644
--- a/pkgs/development/python-modules/ase/3.17.nix
+++ b/pkgs/development/python-modules/ase/3.17.nix
@@ -11,11 +11,11 @@
 
 buildPythonPackage rec {
   pname = "ase";
-  version = "3.18.1";
+  version = "3.17.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "e21948dbf79011cc796d772885a8aafb255a6f365d112fe6a3bd26198c6cac7f";
+    sha256 = "1d4gxypaahby45zcpl0rffcn2z7n55dg9lcd8sv6jjsmbbf9vr4g";
   };
 
   propagatedBuildInputs = [ numpy scipy matplotlib flask pillow psycopg2 ];
diff --git a/pkgs/development/python-modules/ase/default.nix b/pkgs/development/python-modules/ase/default.nix
index c84672e8abc..3aa5a432c4b 100644
--- a/pkgs/development/python-modules/ase/default.nix
+++ b/pkgs/development/python-modules/ase/default.nix
@@ -12,12 +12,12 @@
 
 buildPythonPackage rec {
   pname = "ase";
-  version = "3.18.1";
+  version = "3.19.0";
   disabled = isPy27;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0zxcdj61j9mxlgk2y4ax6rpml9gvmal8aa3pdmwwq4chyzdlh6g2";
+    sha256 = "a8378ab57e91cfe1ba09b3639d8409bb7fc1a40b59479c7822d206e673ad93f9";
   };
 
   propagatedBuildInputs = [ numpy scipy matplotlib flask pillow psycopg2 ];
diff --git a/pkgs/development/python-modules/asn1crypto/default.nix b/pkgs/development/python-modules/asn1crypto/default.nix
index ead16f986ca..dc6df10803f 100644
--- a/pkgs/development/python-modules/asn1crypto/default.nix
+++ b/pkgs/development/python-modules/asn1crypto/default.nix
@@ -5,11 +5,11 @@
 
 buildPythonPackage rec {
   pname = "asn1crypto";
-  version = "1.2.0";
+  version = "1.3.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "87620880a477123e01177a1f73d0f327210b43a3cdbd714efcd2fa49a8d7b384";
+    sha256 = "0bf4xxaig0b9dv6njynaqk2j7vlpagh3y49s9qj95y0jvjw5q8as";
   };
 
   # No tests included
diff --git a/pkgs/development/python-modules/astropy-helpers/default.nix b/pkgs/development/python-modules/astropy-helpers/default.nix
index fac97d2d368..93b2784902f 100644
--- a/pkgs/development/python-modules/astropy-helpers/default.nix
+++ b/pkgs/development/python-modules/astropy-helpers/default.nix
@@ -6,7 +6,7 @@
 
 buildPythonPackage rec {
   pname = "astropy-helpers";
-  version = "3.2.2";
+  version = "4.0.1";
 
   disabled = !isPy3k;
 
@@ -14,7 +14,7 @@ buildPythonPackage rec {
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "cf32cb008b19597a1fe1a4d97f59734f30cd513aa3369a321e7b5b86cdb623fb";
+    sha256 = "f1096414d108778218d6bea06d4d9c7b2ff7c83856a451331ac194e74de9f413";
   };
 
   meta = with lib; {
diff --git a/pkgs/development/python-modules/astropy/default.nix b/pkgs/development/python-modules/astropy/default.nix
index fce2ecd392a..c23c15e1d4d 100644
--- a/pkgs/development/python-modules/astropy/default.nix
+++ b/pkgs/development/python-modules/astropy/default.nix
@@ -10,13 +10,13 @@
 
 buildPythonPackage rec {
   pname = "astropy";
-  version = "3.2.3";
+  version = "4.0";
 
   disabled = !isPy3k; # according to setup.py
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "47f00816c2978fdd10f448c8f0337d6dca7b8cbeaab4bf272b5fd37cb4b890d3";
+    sha256 = "404200e0baa84de09ac563ad9ccab3817e9b9669d0025cee74a8752f4bc2771b";
   };
 
   nativeBuildInputs = [ astropy-helpers ];
diff --git a/pkgs/development/python-modules/astunparse/default.nix b/pkgs/development/python-modules/astunparse/default.nix
index 8dbb4da7060..56570295dee 100644
--- a/pkgs/development/python-modules/astunparse/default.nix
+++ b/pkgs/development/python-modules/astunparse/default.nix
@@ -7,11 +7,11 @@
 
 buildPythonPackage rec {
   pname = "astunparse";
-  version =  "1.6.2";
+  version =  "1.6.3";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "dab3e426715373fd76cd08bb1abe64b550f5aa494cf1e32384f26fd60961eb67";
+    sha256 = "5ad93a8456f0d084c3456d059fd9a92cce667963232cbf763eac3bc5b7940872";
   };
 
   propagatedBuildInputs = [ six wheel ];
diff --git a/pkgs/development/python-modules/asyncssh/default.nix b/pkgs/development/python-modules/asyncssh/default.nix
index da222f7e615..3d225079441 100644
--- a/pkgs/development/python-modules/asyncssh/default.nix
+++ b/pkgs/development/python-modules/asyncssh/default.nix
@@ -5,12 +5,12 @@
 
 buildPythonPackage rec {
   pname = "asyncssh";
-  version = "1.18.0";
+  version = "2.1.0";
   disabled = pythonOlder "3.4";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1d9x7xpsqqd5scdk7f1c76lycgrxylaaf5qn4p46i8clfvm5a435";
+    sha256 = "19d0b4c65115d09b42ed21c748884157babfb3055a6e130ea349dfdcbcef3380";
   };
 
   patches = [
diff --git a/pkgs/development/python-modules/audio-metadata/default.nix b/pkgs/development/python-modules/audio-metadata/default.nix
index e21e04af6f5..d1ccef1ece4 100644
--- a/pkgs/development/python-modules/audio-metadata/default.nix
+++ b/pkgs/development/python-modules/audio-metadata/default.nix
@@ -19,7 +19,7 @@ buildPythonPackage rec {
   postPatch = ''
     substituteInPlace setup.py \
       --replace "bidict>=0.17,<0.18" "bidict" \
-      --replace "more-itertools>=4.0,<5.0" "more-itertools"
+      --replace "more-itertools>=4.0,<8.0" "more-itertools"
   '';
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/autobahn/default.nix b/pkgs/development/python-modules/autobahn/default.nix
index bcda2b4b617..c3d95f8915c 100644
--- a/pkgs/development/python-modules/autobahn/default.nix
+++ b/pkgs/development/python-modules/autobahn/default.nix
@@ -4,11 +4,11 @@
 }:
 buildPythonPackage rec {
   pname = "autobahn";
-  version = "19.10.1";
+  version = "19.11.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "734385b00547448b3f30a752cbfd2900d15924d77dc4a1699b8bce1ea8899f39";
+    sha256 = "201b9879b49c6e259d4126dbafe9e3c73807de0c242d50065fbebc62c6ccb181";
   };
 
   propagatedBuildInputs = [ six txaio twisted zope_interface cffi cryptography pynacl ] ++
diff --git a/pkgs/development/python-modules/awkward/default.nix b/pkgs/development/python-modules/awkward/default.nix
index 2c5d562657b..8b375d16203 100644
--- a/pkgs/development/python-modules/awkward/default.nix
+++ b/pkgs/development/python-modules/awkward/default.nix
@@ -11,11 +11,11 @@
 
 buildPythonPackage rec {
   pname = "awkward";
-  version = "0.12.17";
+  version = "0.12.18";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "f794c926e726b3545035ffcb8e6defe6a4ea975c6266c0154024e4591739a253";
+    sha256 = "9b3df4f2be92ac7d16709f15769c97591f25f0442061f1a4cc8715feb268e45c";
   };
 
   nativeBuildInputs = [ pytestrunner ];
diff --git a/pkgs/development/python-modules/awkward1/default.nix b/pkgs/development/python-modules/awkward1/default.nix
index 6b515b56713..a35a97c5e02 100644
--- a/pkgs/development/python-modules/awkward1/default.nix
+++ b/pkgs/development/python-modules/awkward1/default.nix
@@ -10,11 +10,11 @@
 
 buildPythonPackage rec {
   pname = "awkward1";
-  version = "0.1.28";
+  version = "0.1.38";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "2269aca04c827549435e24f9976d27e904d02b74a30caa9a2a463225a8ba1609";
+    sha256 = "1c87defa8c1661ffe36f8a785fa9a60ae3b70484984a935e710cd8cb1f763fd7";
   };
 
   nativeBuildInputs = [ cmake ];
diff --git a/pkgs/development/python-modules/aws-adfs/default.nix b/pkgs/development/python-modules/aws-adfs/default.nix
index 0c16480e9c4..0f80b03811c 100644
--- a/pkgs/development/python-modules/aws-adfs/default.nix
+++ b/pkgs/development/python-modules/aws-adfs/default.nix
@@ -4,12 +4,12 @@
 
 buildPythonPackage rec {
   pname = "aws-adfs";
-  version = "1.20.0";
+  version = "1.21.2";
   disabled = isPy27;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1j18ffq5z8bcajavnlpbfhxrcadld5iv5gsfxg543yvdsp6hn2dg";
+    sha256 = "ba96e71404474350b2c3ae4d5cb2dd25e9267b6d0680933c5711a51ea364e3bc";
   };
 
   # Relax version constraint
diff --git a/pkgs/development/python-modules/aws-sam-translator/default.nix b/pkgs/development/python-modules/aws-sam-translator/default.nix
index 298ce22daa6..732d5fba528 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.16.0";
+  version = "1.19.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0xvfbhiqdqy4qs4z8v2p7z3l01w5af948bmf400s5jsq2hnxl6nv";
+    sha256 = "a62f31ac81a9f36a89ba61b147c5df5819e73af3562859711191354d86836326";
   };
 
   # 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 0b46506960c..b842a66cd27 100644
--- a/pkgs/development/python-modules/azure-common/default.nix
+++ b/pkgs/development/python-modules/azure-common/default.nix
@@ -9,14 +9,14 @@
 }:
 
 buildPythonPackage rec {
-  version = "1.1.23";
+  version = "1.1.24";
   pname = "azure-common";
   disabled = isPyPy;
 
   src = fetchPypi {
     inherit pname version;
     extension = "zip";
-    sha256 = "53b1195b8f20943ccc0e71a17849258f7781bc6db1c72edc7d6c055f79bd54e3";
+    sha256 = "184ad6a05a3089dfdc1ce07c1cbfa489bbc45b5f6f56e848cac0851e6443da21";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/azure-core/default.nix b/pkgs/development/python-modules/azure-core/default.nix
new file mode 100644
index 00000000000..ee134762149
--- /dev/null
+++ b/pkgs/development/python-modules/azure-core/default.nix
@@ -0,0 +1,48 @@
+{ lib, buildPythonPackage, fetchPypi, isPy27
+, aiodns
+, aiohttp
+, msrest
+, pytest
+, pytestCheckHook
+, requests
+, six
+, trio
+, typing-extensions
+}:
+
+buildPythonPackage rec {
+  version = "1.1.1";
+  pname = "azure-core";
+  disabled = isPy27;
+
+  src = fetchPypi {
+    inherit pname version;
+    extension = "zip";
+    sha256 = "00jm43gw89n446zdm18qziwd85lsx1gandxpmw62dc1bdnsfakxl";
+  };
+
+  propagatedBuildInputs = [
+    requests
+    six
+  ];
+
+  checkInputs = [
+    aiodns
+    aiohttp
+    msrest
+    pytest
+    pytestCheckHook
+    trio
+    typing-extensions
+  ];
+
+  pytestFlagsArray = [ "tests/" ];
+  disabledTests = [ "response" "request" "timeout" ];
+
+  meta = with lib; {
+    description = "Microsoft Azure Core Library for Python";
+    homepage = "https://github.com/Azure/azure-sdk-for-python";
+    license = licenses.mit;
+    maintainers = with maintainers; [ jonringer ];
+  };
+}
diff --git a/pkgs/development/python-modules/azure-identity/default.nix b/pkgs/development/python-modules/azure-identity/default.nix
new file mode 100644
index 00000000000..e4b894eca64
--- /dev/null
+++ b/pkgs/development/python-modules/azure-identity/default.nix
@@ -0,0 +1,53 @@
+{ buildPythonPackage
+, fetchPypi
+, isPy38
+, lib
+
+# pythonPackages
+, azure-common
+, azure-core
+, azure-nspkg
+, cryptography
+, mock
+, msal
+, msal-extensions
+, msrest
+, msrestazure
+}:
+
+buildPythonPackage rec {
+  pname = "azure-identity";
+  version = "1.1.0";
+  disabled = isPy38;
+
+  src = fetchPypi {
+    inherit pname version;
+    extension = "zip";
+    sha256 = "1xn4nwi4vly8n3mmphv0wbdg9k55gsgmk3fdwma8rm3m3c7593hc";
+  };
+
+  propagatedBuildInputs = [
+    azure-common
+    azure-core
+    azure-nspkg
+    cryptography
+    mock
+    msal
+    msal-extensions
+    msrest
+    msrestazure
+  ];
+
+  # Requires checkout from mono-repo and a mock account:
+  #   https://github.com/Azure/azure-sdk-for-python/blob/master/sdk/identity/tests.yml
+  doCheck = false;
+
+  meta = with lib; {
+    description = "Microsoft Azure Identity Library for Python";
+    homepage = "https://github.com/Azure/azure-sdk-for-python";
+    license = licenses.mit;
+    maintainers = with maintainers; [
+      kamadorueda
+    ];
+  };
+}
diff --git a/pkgs/development/python-modules/azure-keyvault-keys/default.nix b/pkgs/development/python-modules/azure-keyvault-keys/default.nix
new file mode 100644
index 00000000000..34629e6eb48
--- /dev/null
+++ b/pkgs/development/python-modules/azure-keyvault-keys/default.nix
@@ -0,0 +1,47 @@
+{ lib, buildPythonPackage, isPy27, fetchPypi
+, aiohttp
+, azure-common
+, azure-core
+, azure-nspkg
+, cryptography
+, msrest
+, pytestCheckHook
+}:
+
+buildPythonPackage rec {
+  pname = "azure-keyvault-keys";
+  version = "4.0.0";
+  disabled = isPy27;
+
+  src = fetchPypi {
+    inherit pname version;
+    extension = "zip";
+    sha256 = "1l1fwm8plzr5zbv02nlvs0i8ssmd88cxm5lb19i54b3scci77hiq";
+  };
+
+  propagatedBuildInputs = [
+    azure-common
+    azure-core
+    msrest
+    cryptography
+  ];
+
+  # requires relative paths to utilities in the mono-repo
+  doCheck = false;
+  checkInputs = [ aiohttp pytestCheckHook ];
+
+  pythonImportsCheck = [
+    "azure"
+    "azure.core"
+    "azure.common"
+    "azure.keyvault"
+    "azure.keyvault.keys"
+  ];
+
+  meta = with lib; {
+    description = "Microsoft Azure Key Vault Keys Client Library for Python";
+    homepage = "https://github.com/Azure/azure-sdk-for-python";
+    license = licenses.mit;
+    maintainers = with maintainers; [ jonringer ];
+  };
+}
diff --git a/pkgs/development/python-modules/azure-keyvault-nspkg/default.nix b/pkgs/development/python-modules/azure-keyvault-nspkg/default.nix
new file mode 100644
index 00000000000..fd3f3c0284f
--- /dev/null
+++ b/pkgs/development/python-modules/azure-keyvault-nspkg/default.nix
@@ -0,0 +1,35 @@
+{ buildPythonPackage
+, fetchPypi
+, lib
+
+# pythonPackages
+, azure-nspkg
+}:
+
+buildPythonPackage rec {
+  pname = "azure-keyvault-nspkg";
+  version = "1.0.0";
+
+  src = fetchPypi {
+    inherit pname version;
+    extension = "zip";
+    sha256 = "0hdnd6124hx7s16z1pssmq5m5mqqqz8s38ixl9aayv4wmf5bhs5c";
+  };
+
+  propagatedBuildInputs = [
+    azure-nspkg
+  ];
+
+  # Just a namespace package, no tests exist:
+  #   https://github.com/Azure/azure-sdk-for-python/blob/master/sdk/keyvault/tests.yml
+  doCheck = false;
+
+  meta = with lib; {
+    description = "Microsoft Azure Key Vault Namespace Package [Internal]";
+    homepage = "https://github.com/Azure/azure-sdk-for-python";
+    license = licenses.mit;
+    maintainers = with maintainers; [
+      kamadorueda
+    ];
+  };
+}
diff --git a/pkgs/development/python-modules/azure-keyvault-secrets/default.nix b/pkgs/development/python-modules/azure-keyvault-secrets/default.nix
new file mode 100644
index 00000000000..e2b40c29d85
--- /dev/null
+++ b/pkgs/development/python-modules/azure-keyvault-secrets/default.nix
@@ -0,0 +1,33 @@
+{ lib, buildPythonPackage, fetchPypi, isPy27
+, azure-common
+, azure-core
+, msrest
+}:
+
+buildPythonPackage rec {
+  pname = "azure-keyvault-secrets";
+  version = "4.0.0";
+  disabled = isPy27;
+
+  src = fetchPypi {
+    inherit pname version;
+    extension = "zip";
+    sha256 = "066p4x2ixasz6qbxss2ilchl73w1kh2nc32lgh8qygl3d90059lp";
+  };
+
+  propagatedBuildInputs = [
+    azure-common
+    azure-core
+    msrest
+  ];
+
+  # requires checkout from mono-repo
+  doCheck = false;
+
+  meta = with lib; {
+    description = "Microsoft Azure Key Vault Secrets Client Library for Python";
+    homepage = "https://github.com/Azure/azure-sdk-for-python";
+    license = licenses.mit;
+    maintainers = with maintainers; [ jonringer ];
+  };
+}
diff --git a/pkgs/development/python-modules/azure-keyvault/default.nix b/pkgs/development/python-modules/azure-keyvault/default.nix
index 91f31ec0a01..b6f7f1d70d4 100644
--- a/pkgs/development/python-modules/azure-keyvault/default.nix
+++ b/pkgs/development/python-modules/azure-keyvault/default.nix
@@ -1,44 +1,36 @@
-{ lib
-, buildPythonPackage
-, python
-, isPy3k
-, fetchPypi
-, azure-common
-, azure-nspkg
-, msrest
-, msrestazure
-, cryptography
+{ lib, buildPythonPackage, isPy27, fetchPypi
+, azure-keyvault-keys
+, azure-keyvault-secrets
 }:
 
 buildPythonPackage rec {
   pname = "azure-keyvault";
-  version = "1.1.0";
+  version = "4.0.0";
+  disabled = isPy27;
 
   src = fetchPypi {
     inherit pname version;
     extension = "zip";
-    sha256 = "37a8e5f376eb5a304fcd066d414b5d93b987e68f9212b0c41efa37d429aadd49";
+    sha256 = "e85f5bd6cb4f10b3248b99bbf02e3acc6371d366846897027d4153f18025a2d7";
   };
 
   propagatedBuildInputs = [
-    azure-common
-    azure-nspkg
-    msrest
-    msrestazure
-    cryptography
+    azure-keyvault-keys
+    azure-keyvault-secrets
   ];
 
-  postInstall = lib.optionalString isPy3k ''
-    rm $out/${python.sitePackages}/azure/__init__.py
-  '';
-
-  # has no tests
+  # this is just a meta package, which contains keys and secrets
   doCheck = false;
 
+  pythonImportsCheck = [
+    "azure.keyvault.keys"
+    "azure.keyvault.secrets"
+  ];
+
   meta = with lib; {
     description = "This is the Microsoft Azure Key Vault Client Library";
     homepage = "https://github.com/Azure/azure-sdk-for-python";
     license = licenses.mit;
-    maintainers = with maintainers; [ mwilsoninsight ];
+    maintainers = with maintainers; [ jonringer ];
   };
 }
diff --git a/pkgs/development/python-modules/azure-mgmt-cdn/default.nix b/pkgs/development/python-modules/azure-mgmt-cdn/default.nix
index bbee8b39993..da6d1639a13 100644
--- a/pkgs/development/python-modules/azure-mgmt-cdn/default.nix
+++ b/pkgs/development/python-modules/azure-mgmt-cdn/default.nix
@@ -10,12 +10,12 @@
 
 buildPythonPackage rec {
   pname = "azure-mgmt-cdn";
-  version = "3.1.0";
+  version = "4.0.0";
 
   src = fetchPypi {
     inherit pname version;
     extension = "zip";
-    sha256 = "0cdbe0914aec544884ef681e31950efa548d9bec6d6dc354e00c3dbdab9e76e3";
+    sha256 = "a53e9e09e2711ce9109329538fe9a8a1a5d0809efb231d7df481e55d09c4f02a";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/azure-mgmt-consumption/default.nix b/pkgs/development/python-modules/azure-mgmt-consumption/default.nix
index b69e4b649de..de4a1338611 100644
--- a/pkgs/development/python-modules/azure-mgmt-consumption/default.nix
+++ b/pkgs/development/python-modules/azure-mgmt-consumption/default.nix
@@ -24,9 +24,10 @@ buildPythonPackage rec {
     azure-mgmt-nspkg
   ];
 
+  # still needed when overriding to previous versions
+  # E.g. azure-cli
   postInstall = lib.optionalString isPy3k ''
-    rm $out/${python.sitePackages}/azure/__init__.py
-    rm $out/${python.sitePackages}/azure/mgmt/__init__.py
+    rm -f $out/${python.sitePackages}/azure/{,mgmt/}__init__.py
   '';
 
   # has no tests
diff --git a/pkgs/development/python-modules/azure-mgmt-containerservice/default.nix b/pkgs/development/python-modules/azure-mgmt-containerservice/default.nix
index 2d98f57f1ba..5d1e3e6e3a9 100644
--- a/pkgs/development/python-modules/azure-mgmt-containerservice/default.nix
+++ b/pkgs/development/python-modules/azure-mgmt-containerservice/default.nix
@@ -10,12 +10,12 @@
 
 buildPythonPackage rec {
   pname = "azure-mgmt-containerservice";
-  version = "8.0.0";
+  version = "8.1.0";
 
   src = fetchPypi {
     inherit pname version;
     extension = "zip";
-    sha256 = "8fa3d3ac8a88ad6fd25f87966c27049864780d88b7b946d06da310d945a8772a";
+    sha256 = "21fabdd393ba2ff1162a490cfa0d2b72a715da8462b1645bd986241137fc771f";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/azure-mgmt-cosmosdb/default.nix b/pkgs/development/python-modules/azure-mgmt-cosmosdb/default.nix
index aef56be79c0..45542c8e9d5 100644
--- a/pkgs/development/python-modules/azure-mgmt-cosmosdb/default.nix
+++ b/pkgs/development/python-modules/azure-mgmt-cosmosdb/default.nix
@@ -10,12 +10,12 @@
 
 buildPythonPackage rec {
   pname = "azure-mgmt-cosmosdb";
-  version = "0.9.0";
+  version = "0.11.0";
 
   src = fetchPypi {
     inherit pname version;
     extension = "zip";
-    sha256 = "0y28z30g7y2pj7rfxyxmqpr19z24d01g9qhafvjxry748im1961h";
+    sha256 = "3f6c1369903856864c7e4a05c2c261563153597172b182382d6332f3acd04016";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/azure-mgmt-datamigration/default.nix b/pkgs/development/python-modules/azure-mgmt-datamigration/default.nix
index 7fc7c568301..93c294e4be9 100644
--- a/pkgs/development/python-modules/azure-mgmt-datamigration/default.nix
+++ b/pkgs/development/python-modules/azure-mgmt-datamigration/default.nix
@@ -11,12 +11,12 @@
 
 buildPythonPackage rec {
   pname = "azure-mgmt-datamigration";
-  version = "3.0.0";
+  version = "4.0.0";
 
   src = fetchPypi {
     inherit pname version;
     extension = "zip";
-    sha256 = "0pc5pf7jpkpdrad5hafh2hki01dpx5773whp6kpxp71gh265mm5n";
+    sha256 = "1efda568d67af911156591eb308432b5f9a56075b57ac0a5dd9f7aee17d79217";
   };
 
   propagatedBuildInputs = [
@@ -27,9 +27,10 @@ buildPythonPackage rec {
     azure-mgmt-nspkg
   ];
 
+  # still needed when overriding to previous versions
+  # E.g. azure-cli
   postInstall = lib.optionalString isPy3k ''
-    rm $out/${python.sitePackages}/azure/__init__.py
-    rm $out/${python.sitePackages}/azure/mgmt/__init__.py
+    rm -f $out/${python.sitePackages}/azure/{,mgmt/}__init__.py
   '';
 
   # has no tests
diff --git a/pkgs/development/python-modules/azure-mgmt-devtestlabs/default.nix b/pkgs/development/python-modules/azure-mgmt-devtestlabs/default.nix
index 546ec5ab840..756af164a71 100644
--- a/pkgs/development/python-modules/azure-mgmt-devtestlabs/default.nix
+++ b/pkgs/development/python-modules/azure-mgmt-devtestlabs/default.nix
@@ -27,9 +27,10 @@ buildPythonPackage rec {
     azure-mgmt-nspkg
   ];
 
+  # still needed when overriding to previous versions
+  # E.g. azure-cli
   postInstall = lib.optionalString isPy3k ''
-    rm $out/${python.sitePackages}/azure/__init__.py
-    rm $out/${python.sitePackages}/azure/mgmt/__init__.py
+    rm -f $out/${python.sitePackages}/azure/{,mgmt/}__init__.py
   '';
 
   # has no tests
diff --git a/pkgs/development/python-modules/azure-mgmt-dns/default.nix b/pkgs/development/python-modules/azure-mgmt-dns/default.nix
index 89ae5912b39..0f1527f688b 100644
--- a/pkgs/development/python-modules/azure-mgmt-dns/default.nix
+++ b/pkgs/development/python-modules/azure-mgmt-dns/default.nix
@@ -26,9 +26,10 @@ buildPythonPackage rec {
     azure-mgmt-nspkg
   ];
 
+  # this is still needed for when the version is overrided
+  # to previous versions. E.g azure-cli
   postInstall = lib.optionalString isPy3k ''
-    rm $out/${python.sitePackages}/azure/__init__.py
-    rm $out/${python.sitePackages}/azure/mgmt/__init__.py
+    rm -f $out/${python.sitePackages}/azure/{,mgmt/}__init__.py
   '';
 
   # has no tests
diff --git a/pkgs/development/python-modules/azure-mgmt-hanaonazure/default.nix b/pkgs/development/python-modules/azure-mgmt-hanaonazure/default.nix
index c8b6ebfba63..789784babfb 100644
--- a/pkgs/development/python-modules/azure-mgmt-hanaonazure/default.nix
+++ b/pkgs/development/python-modules/azure-mgmt-hanaonazure/default.nix
@@ -10,12 +10,12 @@
 
 buildPythonPackage rec {
   pname = "azure-mgmt-hanaonazure";
-  version = "0.10.0";
+  version = "0.12.0";
 
   src = fetchPypi {
     inherit pname version;
     extension = "zip";
-    sha256 = "01gnrhwi3nswjdxk9fjjwbyyx83agpdksrksk0c4d7bm9p2871g6";
+    sha256 = "cc844a152079e0d18fb5f47663a24cb204982925425c1fb51bac53894885000b";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/azure-mgmt-hdinsight/default.nix b/pkgs/development/python-modules/azure-mgmt-hdinsight/default.nix
index 82955674c4b..6cda959448c 100644
--- a/pkgs/development/python-modules/azure-mgmt-hdinsight/default.nix
+++ b/pkgs/development/python-modules/azure-mgmt-hdinsight/default.nix
@@ -5,13 +5,13 @@
 }:
 
 buildPythonPackage rec {
-  version = "1.2.0";
+  version = "1.3.0";
   pname = "azure-mgmt-hdinsight";
   disabled = isPy27;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1yq9s7a2ch8j84af3hzj350jnjq5s3ysiqvmypvcb7vl6rkkd2lm";
+    sha256 = "55e129da3c3750cd5a26b91035990590a3f97aef4971de62d84de00f4fd6f1e4";
     extension = "zip";
   };
 
diff --git a/pkgs/development/python-modules/azure-mgmt-keyvault/default.nix b/pkgs/development/python-modules/azure-mgmt-keyvault/default.nix
index e3529bda8d2..26918fbd7db 100644
--- a/pkgs/development/python-modules/azure-mgmt-keyvault/default.nix
+++ b/pkgs/development/python-modules/azure-mgmt-keyvault/default.nix
@@ -26,9 +26,10 @@ buildPythonPackage rec {
     azure-mgmt-nspkg
   ];
 
+  # this is still need when overriding to prevoius versions
+  # E.g. azure-cli
   postInstall = lib.optionalString isPy3k ''
-    rm $out/${python.sitePackages}/azure/__init__.py
-    rm $out/${python.sitePackages}/azure/mgmt/__init__.py
+    rm -f $out/${python.sitePackages}/azure/{,mgmt/}__init__.py
   '';
 
   # has no tests
diff --git a/pkgs/development/python-modules/azure-mgmt-media/default.nix b/pkgs/development/python-modules/azure-mgmt-media/default.nix
index d86b7f40d4b..90b45d0e3f0 100644
--- a/pkgs/development/python-modules/azure-mgmt-media/default.nix
+++ b/pkgs/development/python-modules/azure-mgmt-media/default.nix
@@ -10,12 +10,12 @@
 
 buildPythonPackage rec {
   pname = "azure-mgmt-media";
-  version = "1.1.1";
+  version = "2.0.0";
 
   src = fetchPypi {
     inherit pname version;
     extension = "zip";
-    sha256 = "5d0c6b3a0f882dde8ae3d42467f03ea6c4e3f62613936087d54c67e6f504939b";
+    sha256 = "b144e66cb8b947b871354edbcee15b78e107fb8f3a337d46d04cd8b73300741b";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/azure-mgmt-msi/default.nix b/pkgs/development/python-modules/azure-mgmt-msi/default.nix
index 87e70c2fdcc..328e81c8fe7 100644
--- a/pkgs/development/python-modules/azure-mgmt-msi/default.nix
+++ b/pkgs/development/python-modules/azure-mgmt-msi/default.nix
@@ -26,9 +26,10 @@ buildPythonPackage rec {
     azure-mgmt-nspkg
   ];
 
+  # still needed when overriding to previous versions
+  # E.g. azure-cli
   postInstall = lib.optionalString isPy3k ''
-    rm $out/${python.sitePackages}/azure/__init__.py
-    rm $out/${python.sitePackages}/azure/mgmt/__init__.py
+    rm -f $out/${python.sitePackages}/azure/{,mgmt/}__init__.py
   '';
 
   # has no tests
diff --git a/pkgs/development/python-modules/azure-mgmt-relay/default.nix b/pkgs/development/python-modules/azure-mgmt-relay/default.nix
index 5046bf8740f..b60a82a7b1a 100644
--- a/pkgs/development/python-modules/azure-mgmt-relay/default.nix
+++ b/pkgs/development/python-modules/azure-mgmt-relay/default.nix
@@ -24,9 +24,10 @@ buildPythonPackage rec {
     azure-mgmt-nspkg
   ];
 
+  # still needed when overriding to previous versions
+  # E.g. azure-cli
   postInstall = lib.optionalString isPy3k ''
-    rm $out/${python.sitePackages}/azure/__init__.py
-    rm $out/${python.sitePackages}/azure/mgmt/__init__.py
+    rm -f $out/${python.sitePackages}/azure/{,mgmt/}__init__.py
   '';
 
   # has no tests
diff --git a/pkgs/development/python-modules/azure-mgmt-resource/default.nix b/pkgs/development/python-modules/azure-mgmt-resource/default.nix
index 4f2481097e1..8f9128a62a0 100644
--- a/pkgs/development/python-modules/azure-mgmt-resource/default.nix
+++ b/pkgs/development/python-modules/azure-mgmt-resource/default.nix
@@ -8,13 +8,13 @@
 
 
 buildPythonPackage rec {
-  version = "6.0.0";
+  version = "7.0.0";
   pname = "azure-mgmt-resource";
 
   src = fetchPypi {
     inherit pname version;
     extension = "zip";
-    sha256 = "08n6r6ja7p20qlhb9pp51nwwxz2mal19an98zry276i8z5x8ckp0";
+    sha256 = "eaea8b5d05495d1b74220052275d46b6bed93b59245bcaa747279a52e41c3bdf";
   };
 
   postInstall = if isPy3k then "" else ''
diff --git a/pkgs/development/python-modules/azure-mgmt-servicefabric/default.nix b/pkgs/development/python-modules/azure-mgmt-servicefabric/default.nix
index 9c849829a12..03084e11cf3 100644
--- a/pkgs/development/python-modules/azure-mgmt-servicefabric/default.nix
+++ b/pkgs/development/python-modules/azure-mgmt-servicefabric/default.nix
@@ -26,9 +26,10 @@ buildPythonPackage rec {
     azure-mgmt-nspkg
   ];
 
+  # this is still needed for overriding to previous versions
+  # E.g azure-cli
   postInstall = lib.optionalString isPy3k ''
-    rm $out/${python.sitePackages}/azure/__init__.py
-    rm $out/${python.sitePackages}/azure/mgmt/__init__.py
+    rm -f $out/${python.sitePackages}/azure/{,mgmt/}__init__.py
   '';
 
   # has no tests
diff --git a/pkgs/development/python-modules/azure-mgmt-sql/default.nix b/pkgs/development/python-modules/azure-mgmt-sql/default.nix
index 5a5a708a5dd..0929ca3ff5c 100644
--- a/pkgs/development/python-modules/azure-mgmt-sql/default.nix
+++ b/pkgs/development/python-modules/azure-mgmt-sql/default.nix
@@ -10,12 +10,12 @@
 
 buildPythonPackage rec {
   pname = "azure-mgmt-sql";
-  version = "0.15.0";
+  version = "0.16.0";
 
   src = fetchPypi {
     inherit pname version;
     extension = "zip";
-    sha256 = "0qv58xraznv2ldhd34cvznhz045x3ncfgam9c12gxyj4q0k3pyc9";
+    sha256 = "ddbdc29c1dca437275b0cb5a6fe2d86fa6886ccefb2270287357f07afe80a4ac";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/azure-mgmt-storage/default.nix b/pkgs/development/python-modules/azure-mgmt-storage/default.nix
index c2b172e6c49..552b1c88792 100644
--- a/pkgs/development/python-modules/azure-mgmt-storage/default.nix
+++ b/pkgs/development/python-modules/azure-mgmt-storage/default.nix
@@ -7,13 +7,13 @@
 }:
 
 buildPythonPackage rec {
-  version = "6.0.0";
+  version = "7.0.0";
   pname = "azure-mgmt-storage";
 
   src = fetchPypi {
     inherit pname version;
     extension = "zip";
-    sha256 = "0pgmxr8shz6rmgbacfy1xb99y9ja38ck1lap0n58m6jjy1mgxk2w";
+    sha256 = "7f5e6b18dee267c99f08f6a716a93173bbae433c8665f5c59153fb1a963bc105";
   };
 
   postInstall = if isPy3k then "" else ''
diff --git a/pkgs/development/python-modules/azure-servicebus/default.nix b/pkgs/development/python-modules/azure-servicebus/default.nix
index 7656e7c6376..02460b27952 100644
--- a/pkgs/development/python-modules/azure-servicebus/default.nix
+++ b/pkgs/development/python-modules/azure-servicebus/default.nix
@@ -10,12 +10,12 @@
 
 buildPythonPackage rec {
   pname = "azure-servicebus";
-  version = "0.50.1";
+  version = "0.50.2";
 
   src = fetchPypi {
     inherit pname version;
     extension = "zip";
-    sha256 = "0i8ls5h2ny12h9gnqwyq13ysvxgdq7b1kxirj4n58dfy94a182gv";
+    sha256 = "836649d510aa2b7467bc87d8dab18f2db917b63aa2fe8f3e5d0bb44011e465f5";
   };
 
   buildInputs = [
diff --git a/pkgs/development/python-modules/azure-servicefabric/default.nix b/pkgs/development/python-modules/azure-servicefabric/default.nix
index 79d303a4652..19420b0526d 100644
--- a/pkgs/development/python-modules/azure-servicefabric/default.nix
+++ b/pkgs/development/python-modules/azure-servicefabric/default.nix
@@ -7,12 +7,12 @@
 
 buildPythonPackage rec {
   pname = "azure-servicefabric";
-  version = "6.5.0.0";
+  version = "7.0.0.0";
 
   src = fetchPypi {
     inherit pname version;
     extension = "zip";
-    sha256 = "02q32rc3vmg3kpi92s2y2ic47s3mi9qjcvzvrpjdlzji8lhd9w45";
+    sha256 = "27712658fed7f5db6965d1035bbc0f3b16964fc88d6f3ad3e86cf4fae2b01bb9";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/backports_functools_lru_cache/default.nix b/pkgs/development/python-modules/backports_functools_lru_cache/default.nix
index 2a8b5e7960d..8cb84c02b37 100644
--- a/pkgs/development/python-modules/backports_functools_lru_cache/default.nix
+++ b/pkgs/development/python-modules/backports_functools_lru_cache/default.nix
@@ -4,23 +4,27 @@
 , setuptools_scm
 , isPy3k
 , pytest
+, pytest-black
+, pytest-flake8
+, pytestcov
 }:
 
 buildPythonPackage rec {
   pname = "backports.functools_lru_cache";
-  version = "1.5";
+  version = "1.6.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "9d98697f088eb1b0fa451391f91afb5e3ebde16bbdb272819fd091151fda4f1a";
+    sha256 = "8fde5f188da2d593bd5bc0be98d9abc46c95bb8a9dde93429570192ee6cc2d4a";
   };
 
-  buildInputs = [ setuptools_scm ];
-
-  checkInputs = [ pytest ];
+  nativeBuildInputs = [ setuptools_scm ];
 
+  checkInputs = [ pytest pytest-flake8 pytest-black pytestcov ];
+  # ironically, they fail a linting test, and pytest.ini forces that test suite
   checkPhase = ''
-    pytest
+    rm backports/functools_lru_cache.py
+    pytest -k 'not format'
   '';
 
   # Test fail on Python 2
@@ -31,4 +35,4 @@ buildPythonPackage rec {
     homepage = https://github.com/jaraco/backports.functools_lru_cache;
     license = lib.licenses.mit;
   };
-}
\ No newline at end of file
+}
diff --git a/pkgs/development/python-modules/bandit/default.nix b/pkgs/development/python-modules/bandit/default.nix
new file mode 100644
index 00000000000..64ef8ec53fa
--- /dev/null
+++ b/pkgs/development/python-modules/bandit/default.nix
@@ -0,0 +1,44 @@
+{ buildPythonPackage
+, fetchPypi
+, lib
+, isPy3k
+
+# pythonPackages
+, GitPython
+, pbr
+, pyyaml
+, six
+, stevedore
+}:
+
+buildPythonPackage rec {
+  pname = "bandit";
+  version = "1.6.2";
+  disabled = !isPy3k;
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "0rb034c99pyhb4a60z7f2kz40cjydhm8m9v2blaal1rmhlam7rs1";
+  };
+
+  propagatedBuildInputs = [
+    GitPython
+    pbr
+    pyyaml
+    six
+    stevedore
+  ];
+
+  # Framework is Tox, tox performs 'pip install' inside the virtual-env
+  #   and this requires Network Connectivity
+  doCheck = false;
+
+  meta = {
+    description = "Security oriented static analyser for python code";
+    homepage = "https://bandit.readthedocs.io/en/latest/";
+    license = lib.licenses.asl20;
+    maintainers = with lib.maintainers; [
+      kamadorueda
+    ];
+  };
+}
diff --git a/pkgs/development/python-modules/bashlex/default.nix b/pkgs/development/python-modules/bashlex/default.nix
new file mode 100644
index 00000000000..c575dc516ff
--- /dev/null
+++ b/pkgs/development/python-modules/bashlex/default.nix
@@ -0,0 +1,38 @@
+{ enum-compat
+, lib
+, buildPythonPackage
+, fetchFromGitHub
+, nose
+, python
+}:
+
+buildPythonPackage rec {
+  pname = "bashlex";
+  version = "0.14";
+
+  src = fetchFromGitHub {
+    owner = "idank";
+    repo = pname;
+    rev = version;
+    sha256 = "070spmbf53y18miky5chgky4x5h8kp9czkp7dm173klv9pi2cn0k";
+  };
+
+  checkInputs = [ nose ];
+  propagatedBuildInputs = [ enum-compat ];
+
+  # workaround https://github.com/idank/bashlex/issues/51
+  preBuild = ''
+    ${python.interpreter} -c 'import bashlex'
+  '';
+
+  checkPhase = ''
+    ${python.interpreter} -m nose --with-doctest
+  '';
+
+  meta = with lib; {
+    description = "Python parser for bash";
+    license = licenses.gpl3;
+    homepage = https://github.com/idank/bashlex;
+    maintainers = with maintainers; [ multun ];
+  };
+}
diff --git a/pkgs/development/python-modules/bayespy/default.nix b/pkgs/development/python-modules/bayespy/default.nix
index 430e7c3da8a..210fbbe2176 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.18";
+  version = "0.5.19";
 
   # 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 = "86c453d827b8d6c3574ec306f6fadfc5028614e1cd46676841336e6787a7496a";
+    sha256 = "24e1327ce241a0113abf217fbaf41ac25e04f5a01f9ed606610f2f1f2d82d34f";
   };
 
   checkInputs = [ pytest glibcLocales ];
diff --git a/pkgs/development/python-modules/beautifulsoup4/default.nix b/pkgs/development/python-modules/beautifulsoup4/default.nix
index c8e8c100616..1720738b169 100644
--- a/pkgs/development/python-modules/beautifulsoup4/default.nix
+++ b/pkgs/development/python-modules/beautifulsoup4/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "beautifulsoup4";
-  version = "4.8.1";
+  version = "4.8.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "6135db2ba678168c07950f9a16c4031822c6f4aec75a65e0a97bc5ca09789931";
+    sha256 = "05fd825eb01c290877657a56df4c6e4c311b3965bda790c613a3d6fb01a5462a";
   };
 
   checkInputs = [ pytest ];
diff --git a/pkgs/development/python-modules/bids-validator/default.nix b/pkgs/development/python-modules/bids-validator/default.nix
index ec66124e3c7..6b7bad58bc4 100644
--- a/pkgs/development/python-modules/bids-validator/default.nix
+++ b/pkgs/development/python-modules/bids-validator/default.nix
@@ -4,12 +4,12 @@
 }:
 
 buildPythonPackage rec {
-  version = "1.2.4";
+  version = "1.3.12";
   pname = "bids-validator";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1mvp1mi1k6yqgyj7rxij8mlwclqlyfzq08s67v0qaycw44l68ifg";
+    sha256 = "7a244b09adfd083292ed1f7ff335676a1e2effbbffe62b02a4abaf377d33ef86";
   };
 
   propagatedBuildInputs = [ ];
diff --git a/pkgs/development/python-modules/bitarray/default.nix b/pkgs/development/python-modules/bitarray/default.nix
index 3c84366c9d1..f119aedc4b8 100644
--- a/pkgs/development/python-modules/bitarray/default.nix
+++ b/pkgs/development/python-modules/bitarray/default.nix
@@ -1,12 +1,12 @@
 { lib, buildPythonPackage, fetchPypi }:
 
 buildPythonPackage rec {
-  version = "1.1.0";
+  version = "1.2.0";
   pname = "bitarray";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0nv1283qcfilhnb4q6znlijply6lfxwpvp10cr0v33l0qwa86mwz";
+    sha256 = "4f8706b651243c9faa981f075bcbdef2fab83e9b9bc9211ed2cb5849f9a68342";
   };
 
   meta = with lib; {
diff --git a/pkgs/development/python-modules/bjoern/default.nix b/pkgs/development/python-modules/bjoern/default.nix
index ddbb2f0d27e..08caabef3bd 100644
--- a/pkgs/development/python-modules/bjoern/default.nix
+++ b/pkgs/development/python-modules/bjoern/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "bjoern";
-  version = "3.0.1";
+  version = "3.1.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1ajmmfzr6fm8h8s7m69f2ffx0wk6snjvdx527hhj00bzn7zybnmn";
+    sha256 = "01f3b601cf0ab0a9c7cb9c8f944ab7c738baaa6043ca82db20e9bd7a9be5767b";
   };
 
   buildInputs = [ libev ];
diff --git a/pkgs/development/python-modules/bleach/default.nix b/pkgs/development/python-modules/bleach/default.nix
index 86b253a72c9..1033f9def76 100644
--- a/pkgs/development/python-modules/bleach/default.nix
+++ b/pkgs/development/python-modules/bleach/default.nix
@@ -24,10 +24,9 @@ buildPythonPackage rec {
     substituteInPlace setup.py --replace ",<3dev" ""
   '';
 
-  # Disable a test
-  # https://github.com/mozilla/bleach/issues/467
+  # Disable network tests
   checkPhase = ''
-    pytest -k "not test_only_text_is_cleaned"
+    pytest -k "not protocols"
   '';
 
   meta = {
diff --git a/pkgs/development/python-modules/bokeh/default.nix b/pkgs/development/python-modules/bokeh/default.nix
index c92f299f919..18f59b05288 100644
--- a/pkgs/development/python-modules/bokeh/default.nix
+++ b/pkgs/development/python-modules/bokeh/default.nix
@@ -1,7 +1,7 @@
 { buildPythonPackage
 , fetchPypi
 , futures
-, isPy3k
+, isPy27
 , isPyPy
 , jinja2
 , lib
@@ -22,11 +22,11 @@
 
 buildPythonPackage rec {
   pname = "bokeh";
-  version = "1.3.4";
+  version = "1.4.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0m27j29jpi977y95k272xc24qkl5bkniy046cil116hrbgnppng2";
+    sha256 = "1rywd6c6hi0c6yg18j5zxssjd07a5hafcd21xr3q2yvp3aj3h3f6";
   };
 
   patches = [
@@ -39,7 +39,12 @@ buildPythonPackage rec {
 
   disabled = isPyPy;
 
-  checkInputs = [ mock pytest pillow selenium ];
+  checkInputs = [
+    mock
+    pytest
+    pillow
+    selenium
+  ];
 
   propagatedBuildInputs = [
     pillow
@@ -51,7 +56,9 @@ buildPythonPackage rec {
     numpy
     packaging
   ]
-  ++ lib.optionals ( !isPy3k ) [ futures ];
+  ++ lib.optionals ( isPy27 ) [
+    futures
+  ];
 
   checkPhase = ''
     ${python.interpreter} -m unittest discover -s bokeh/tests
diff --git a/pkgs/development/python-modules/boltztrap2/default.nix b/pkgs/development/python-modules/boltztrap2/default.nix
index df10288905d..d89cf3c615d 100644
--- a/pkgs/development/python-modules/boltztrap2/default.nix
+++ b/pkgs/development/python-modules/boltztrap2/default.nix
@@ -14,13 +14,13 @@
 }:
 
 buildPythonPackage rec {
-  version = "19.7.3";
+  version = "19.11.1";
   pname = "BoltzTraP2";
   disabled = pythonOlder "3.5";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1hambr925ml2v2zcxnmnpi39395gl2928yac4p2kghk9xicymraw";
+    sha256 = "3927ae782b7329dede2bf85ff5ff328c88f0514ecb592267e28912340f395d3e";
   };
 
   dontUseCmakeConfigure = true;
diff --git a/pkgs/development/python-modules/breathe/default.nix b/pkgs/development/python-modules/breathe/default.nix
index 08e37e2773c..d2b19ae8650 100644
--- a/pkgs/development/python-modules/breathe/default.nix
+++ b/pkgs/development/python-modules/breathe/default.nix
@@ -1,12 +1,13 @@
-{ lib, fetchPypi, buildPythonPackage, docutils, six, sphinx, isPy3k }:
+{ lib, fetchPypi, buildPythonPackage, docutils, six, sphinx, isPy3k, isPy27 }:
 
 buildPythonPackage rec {
-  version = "4.13.1";
+  version = "4.14.0";
   pname = "breathe";
+  disabled = isPy27;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "c6752345252f48092bf72a450fd9e84367bd5b4af99d86c92047f82c6c2287ab";
+    sha256 = "178848e4088faf8c2c60f000379fcabfb3411b260e0fbddc08fb57e0e5caea08";
   };
 
   propagatedBuildInputs = [ docutils six sphinx ];
diff --git a/pkgs/development/python-modules/broadlink/default.nix b/pkgs/development/python-modules/broadlink/default.nix
index af03e1ad665..99d7641c07e 100644
--- a/pkgs/development/python-modules/broadlink/default.nix
+++ b/pkgs/development/python-modules/broadlink/default.nix
@@ -1,5 +1,5 @@
 { lib, fetchPypi, buildPythonPackage
-, pyaes, pycrc }:
+, cryptography, pyaes, pycrc }:
 
 buildPythonPackage rec {
   pname = "broadlink";
@@ -15,7 +15,7 @@ buildPythonPackage rec {
       --replace pyaes==1.6.0 pyaes
     '';
 
-  propagatedBuildInputs = [ pyaes pycrc ];
+  propagatedBuildInputs = [ cryptography pyaes pycrc ];
 
   # no tests available
   doCheck = false;
diff --git a/pkgs/development/python-modules/browser-cookie3/default.nix b/pkgs/development/python-modules/browser-cookie3/default.nix
index 807dafab436..13eea3e21fd 100644
--- a/pkgs/development/python-modules/browser-cookie3/default.nix
+++ b/pkgs/development/python-modules/browser-cookie3/default.nix
@@ -1,11 +1,11 @@
 { lib, fetchPypi, buildPythonPackage, isPy3k, keyring, pbkdf2, pyaes}:
 buildPythonPackage rec {
   pname = "browser-cookie3";
-  version = "0.7.6";
+  version = "0.9.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1f24hsclg1wz2i8aiam91l06qqy0plxhwl615l4qkg35mbw4ry7h";
+    sha256 = "42e73e0276083ff162080860cd039138760921a56a0f316775cecee37d444c3f";
   };
 
   disabled = !isPy3k;
diff --git a/pkgs/development/python-modules/bugwarrior/default.nix b/pkgs/development/python-modules/bugwarrior/default.nix
index 74df8a6b628..190598942c7 100644
--- a/pkgs/development/python-modules/bugwarrior/default.nix
+++ b/pkgs/development/python-modules/bugwarrior/default.nix
@@ -1,31 +1,31 @@
-{ stdenv, buildPythonPackage, fetchPypi
-, mock, unittest2, nose
+{ stdenv, buildPythonPackage, fetchPypi, pythonOlder, setuptools
 , twiggy, requests, offtrac, bugzilla, taskw, dateutil, pytz, keyring, six
-, jinja2, pycurl, dogpile_cache, lockfile, click, pyxdg, future }:
+, jinja2, pycurl, dogpile_cache, lockfile, click, pyxdg, future, jira }:
 
 buildPythonPackage rec {
   pname = "bugwarrior";
   version = "1.7.0";
+  disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
     sha256 = "1pmznka5dxcdjfak0p1yh7lhfbfazmx8g9ysv57lsrkqy4n61qks";
   };
 
-  buildInputs = [ mock unittest2 nose /* jira megaplan */ ];
   propagatedBuildInputs = [
+    setuptools
     twiggy requests offtrac bugzilla taskw dateutil pytz keyring six
-    jinja2 pycurl dogpile_cache lockfile click pyxdg future
+    jinja2 pycurl dogpile_cache lockfile click pyxdg future jira
   ];
 
-  # for the moment jira>=0.22 and megaplan>=1.4 are missing for running the test suite.
+  # for the moment oauth2client <4.0.0 and megaplan>=1.4 are missing for running the test suite.
   doCheck = false;
 
   meta = with stdenv.lib; {
-    homepage =  https://github.com/ralphbean/bugwarrior;
+    homepage = https://github.com/ralphbean/bugwarrior;
     description = "Sync github, bitbucket, bugzilla, and trac issues with taskwarrior";
     license = licenses.gpl3Plus;
     platforms = platforms.all;
-    maintainers = with maintainers; [ pierron ];
+    maintainers = with maintainers; [ pierron yurrriq ];
   };
 }
diff --git a/pkgs/development/python-modules/buildbot/default.nix b/pkgs/development/python-modules/buildbot/default.nix
index 7385a329551..e627667f3ec 100644
--- a/pkgs/development/python-modules/buildbot/default.nix
+++ b/pkgs/development/python-modules/buildbot/default.nix
@@ -44,10 +44,9 @@ let
       autobahn
       pyjwt
       pyyaml
-
+    ]
       # tls
-      twisted.extras.tls
-    ];
+      ++ twisted.extras.tls;
 
     checkInputs = [
       treq
diff --git a/pkgs/development/python-modules/cachecontrol/default.nix b/pkgs/development/python-modules/cachecontrol/default.nix
index 7fedf8c5461..693646c80a4 100644
--- a/pkgs/development/python-modules/cachecontrol/default.nix
+++ b/pkgs/development/python-modules/cachecontrol/default.nix
@@ -7,12 +7,12 @@
 }:
 
 buildPythonPackage rec {
-  version = "0.12.5";
+  version = "0.12.6";
   pname = "CacheControl";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "cef77effdf51b43178f6a2d3b787e3734f98ade253fa3187f3bb7315aaa42ff7";
+    sha256 = "be9aa45477a134aee56c8fac518627e1154df063e85f67d4f83ce0ccc23688e8";
   };
 
   checkInputs = [ pytest ];
diff --git a/pkgs/development/python-modules/cachetools/default.nix b/pkgs/development/python-modules/cachetools/default.nix
index 51bf0e753a9..30f0d9132bb 100644
--- a/pkgs/development/python-modules/cachetools/default.nix
+++ b/pkgs/development/python-modules/cachetools/default.nix
@@ -1,12 +1,12 @@
-{ stdenv, buildPythonPackage, fetchPypi }:
+{ stdenv, buildPythonPackage, fetchPypi, isPy27 }:
 
 buildPythonPackage rec {
   pname = "cachetools";
-  version = "3.1.1";
+  version = "4.0.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "8ea2d3ce97850f31e4a08b0e2b5e6c34997d7216a9d2c98e0f3978630d4da69a";
+    sha256 = "9a52dd97a85f257f4e4127f15818e71a0c7899f121b34591fcc1173ea79a0198";
   };
 
   meta = with stdenv.lib; {
diff --git a/pkgs/development/python-modules/cachy/default.nix b/pkgs/development/python-modules/cachy/default.nix
index d5c3428fcc1..e66bef51d03 100644
--- a/pkgs/development/python-modules/cachy/default.nix
+++ b/pkgs/development/python-modules/cachy/default.nix
@@ -6,11 +6,11 @@
 
 buildPythonPackage rec {
   pname = "cachy";
-  version = "0.2.0";
+  version = "0.3.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0v6mjyhgx6j7ya20bk69cr3gdzdkdf6psay0h090rscclgji65dp";
+    sha256 = "186581f4ceb42a0bbe040c407da73c14092379b1e4c0e327fdb72ae4a9b269b1";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/caldav/default.nix b/pkgs/development/python-modules/caldav/default.nix
index 1cb3c2070ec..895775eb87f 100644
--- a/pkgs/development/python-modules/caldav/default.nix
+++ b/pkgs/development/python-modules/caldav/default.nix
@@ -17,5 +17,6 @@ buildPythonPackage rec {
     homepage = "https://pythonhosted.org/caldav/";
     license = licenses.asl20;
     maintainers = with maintainers; [ marenz ];
+    broken = true; # missing xandikos package
   };
 }
diff --git a/pkgs/development/python-modules/celery/default.nix b/pkgs/development/python-modules/celery/default.nix
index 19eaeaf8d82..4522379fa64 100644
--- a/pkgs/development/python-modules/celery/default.nix
+++ b/pkgs/development/python-modules/celery/default.nix
@@ -4,11 +4,11 @@
 
 buildPythonPackage rec {
   pname = "celery";
-  version = "4.3.0";
+  version = "4.4.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "4c4532aa683f170f40bd76f928b70bc06ff171a959e06e71bf35f2f9d6031ef9";
+    sha256 = "d3363bb5df72d74420986a435449f3c3979285941dff57d5d97ecba352a0e3e2";
   };
 
   postPatch = ''
@@ -19,9 +19,11 @@ buildPythonPackage rec {
 
   # ignore test that's incompatible with pytest5
   # test_eventlet touches network
+  # test_mongodb requires pymongo
   checkPhase = ''
-    pytest -k 'not restore_current_app_fallback' \
-      --ignore=t/unit/concurrency/test_eventlet.py
+    pytest -k 'not restore_current_app_fallback and not msgpack' \
+      --ignore=t/unit/concurrency/test_eventlet.py \
+      --ignore=t/unit/backends/test_mongodb.py
   '';
 
   checkInputs = [ case pytest boto3 moto ];
diff --git a/pkgs/development/python-modules/certifi/default.nix b/pkgs/development/python-modules/certifi/default.nix
index 40e74328572..7ffc50ea520 100644
--- a/pkgs/development/python-modules/certifi/default.nix
+++ b/pkgs/development/python-modules/certifi/default.nix
@@ -5,11 +5,11 @@
 
 buildPythonPackage rec {
   pname = "certifi";
-  version = "2019.9.11";
+  version = "2019.11.28";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0l0yw94ypd117bl7f0fx8sqw9wsnrpcsn92vr7nkxy54zq665wz4";
+    sha256 = "25b64c7da4cd7479594d035c08c2d809eb4aab3a26e5a990ea98cc450c320f1f";
   };
 
   meta = {
diff --git a/pkgs/development/python-modules/cffi/default.nix b/pkgs/development/python-modules/cffi/default.nix
index 15d15c23a8d..b05aeebf9d4 100644
--- a/pkgs/development/python-modules/cffi/default.nix
+++ b/pkgs/development/python-modules/cffi/default.nix
@@ -29,7 +29,8 @@ if isPyPy then null else buildPythonPackage rec {
   '';
 
   # The tests use -Werror but with python3.6 clang detects some unreachable code.
-  NIX_CFLAGS_COMPILE = stdenv.lib.optionals stdenv.cc.isClang [ "-Wno-unused-command-line-argument" "-Wno-unreachable-code" ];
+  NIX_CFLAGS_COMPILE = stdenv.lib.optionalString stdenv.cc.isClang
+    "-Wno-unused-command-line-argument -Wno-unreachable-code";
 
   doCheck = !stdenv.hostPlatform.isMusl && !stdenv.isDarwin; # TODO: Investigate
   checkPhase = ''
diff --git a/pkgs/development/python-modules/cfn-lint/default.nix b/pkgs/development/python-modules/cfn-lint/default.nix
index eeccaedf5f6..7b1ef63767d 100644
--- a/pkgs/development/python-modules/cfn-lint/default.nix
+++ b/pkgs/development/python-modules/cfn-lint/default.nix
@@ -1,10 +1,13 @@
 { lib
 , buildPythonPackage
 , fetchPypi
+, pythonOlder
 , pyyaml
 , six
 , requests
 , aws-sam-translator
+, importlib-metadata
+, importlib-resources
 , jsonpatch
 , jsonschema
 , pathlib2
@@ -13,11 +16,11 @@
 
 buildPythonPackage rec {
   pname = "cfn-lint";
-  version = "0.24.8";
+  version = "0.26.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "5aa1540ee9a7efc23ebe54a22f1a505766a4bb44f64a0f4fe79574a156a9b43e";
+    sha256 = "5449313b5f176024bd5fd6ebe69ce986a2d9b8a9d6a147b2d442c8d9fa99a6c5";
   };
 
   propagatedBuildInputs = [
@@ -29,7 +32,7 @@ buildPythonPackage rec {
     jsonschema
     pathlib2
     setuptools
-  ];
+  ] ++ lib.optionals (pythonOlder "3.8") [ importlib-metadata importlib-resources ];
 
   # No tests included in archive
   doCheck = false;
diff --git a/pkgs/development/python-modules/channels/default.nix b/pkgs/development/python-modules/channels/default.nix
index 9cdbd0dac11..b7c83b3b3ff 100644
--- a/pkgs/development/python-modules/channels/default.nix
+++ b/pkgs/development/python-modules/channels/default.nix
@@ -3,11 +3,11 @@
 }:
 buildPythonPackage rec {
   pname = "channels";
-  version = "2.3.1";
+  version = "2.4.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "6b8ebd93fe0041a23e31c9f4130d92fadb9c0040c0eb377a004540631325a31d";
+    sha256 = "08e756406d7165cb32f6fc3090c0643f41ca9f7e0f7fada0b31194662f20f414";
   };
 
   # Files are missing in the distribution
diff --git a/pkgs/development/python-modules/cld2-cffi/default.nix b/pkgs/development/python-modules/cld2-cffi/default.nix
index a38d4c0866e..7775fee5ba0 100644
--- a/pkgs/development/python-modules/cld2-cffi/default.nix
+++ b/pkgs/development/python-modules/cld2-cffi/default.nix
@@ -13,7 +13,7 @@ buildPythonPackage rec {
   checkInputs = [ nose ];
 
   # gcc doesn't approve of this code, so disable -Werror
-  NIX_CFLAGS_COMPILE = [ "-w" ] ++ stdenv.lib.optional stdenv.cc.isClang "-Wno-error=c++11-narrowing";
+  NIX_CFLAGS_COMPILE = "-w" + stdenv.lib.optionalString stdenv.cc.isClang " -Wno-error=c++11-narrowing";
 
   checkPhase = "nosetests -v";
 
diff --git a/pkgs/development/python-modules/cliff/default.nix b/pkgs/development/python-modules/cliff/default.nix
index 7882c98e524..46ac5be03ce 100644
--- a/pkgs/development/python-modules/cliff/default.nix
+++ b/pkgs/development/python-modules/cliff/default.nix
@@ -17,11 +17,11 @@
 
 buildPythonPackage rec {
   pname = "cliff";
-  version = "2.16.0";
+  version = "2.17.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "622e777b8ac2eb479708fe53893c37b2fd5469ce2c6c5b794a658246f05c6b81";
+    sha256 = "f5a1c6b32047aa0d272398d311fd711d41dd5e1cd5195ebe36ebb47f464416fa";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/clifford/default.nix b/pkgs/development/python-modules/clifford/default.nix
index ca95ebbf1f3..961f6b5bc1d 100644
--- a/pkgs/development/python-modules/clifford/default.nix
+++ b/pkgs/development/python-modules/clifford/default.nix
@@ -12,12 +12,12 @@
 
 buildPythonPackage rec {
   pname = "clifford";
-  version = "1.0.4";
+  version = "1.2.0";
   disabled = isPy27;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "7fc5aa76b4f73c697c0ebd2f86c5233e7ca0a5109b80147f4e711bc3de4b3f2c";
+    sha256 = "b27fdec70574ac928c91fe333a70ece153d75cd0499cce09acea5980ae349bee";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/clikit/default.nix b/pkgs/development/python-modules/clikit/default.nix
index 37a41c7fba4..94f3fa08b13 100644
--- a/pkgs/development/python-modules/clikit/default.nix
+++ b/pkgs/development/python-modules/clikit/default.nix
@@ -4,11 +4,11 @@
 
 buildPythonPackage rec {
   pname = "clikit";
-  version = "0.3.2";
+  version = "0.4.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1pvzq3glf4sjgrm0wyxln3s6vicdc9q8r5sgaiqmxdmd9pylw0xm";
+    sha256 = "8ae4766b974d7b1983e39d501da9a0aadf118a907a0c9b50714d027c8b59ea81";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/clize/default.nix b/pkgs/development/python-modules/clize/default.nix
index ce1ad60a532..72b6a2fa30a 100644
--- a/pkgs/development/python-modules/clize/default.nix
+++ b/pkgs/development/python-modules/clize/default.nix
@@ -8,8 +8,9 @@
 , od
 , docutils
 , repeated_test
-, unittest2
 , pygments
+, unittest2
+, pytest
 }:
 
 buildPythonPackage rec {
@@ -21,14 +22,15 @@ buildPythonPackage rec {
     sha256 = "f54dedcf6fea90a3e75c30cb65e0ab1e832760121f393b8d68edd711dbaf7187";
   };
 
-  checkInputs = [ 
+  checkInputs = [
     dateutil
     pygments
     repeated_test
     unittest2
+    pytest
   ];
-  
-  propagatedBuildInputs = [ 
+
+  propagatedBuildInputs = [
     attrs
     docutils
     od
@@ -36,6 +38,10 @@ buildPythonPackage rec {
     six
   ];
 
+  checkPhase = ''
+    pytest
+  '';
+
   meta = with stdenv.lib; {
     description = "Command-line argument parsing for Python";
     homepage = "https://github.com/epsy/clize";
diff --git a/pkgs/development/python-modules/clustershell/default.nix b/pkgs/development/python-modules/clustershell/default.nix
index 4120dda5460..75a77d4c63c 100644
--- a/pkgs/development/python-modules/clustershell/default.nix
+++ b/pkgs/development/python-modules/clustershell/default.nix
@@ -4,11 +4,11 @@
 
 buildPythonPackage rec {
   pname = "ClusterShell";
-  version = "1.8.1";
+  version = "1.8.3";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "e913efb4fe017eed9731d5ad8be397509e7f1966e6cb6441ee2bce074b16b310";
+    sha256 = "0ebc1925c1aed94f99d74cbc0230215127ade80a25240133204094faa74bc41b";
   };
 
   propagatedBuildInputs = [ pyyaml ];
diff --git a/pkgs/development/python-modules/cma/default.nix b/pkgs/development/python-modules/cma/default.nix
new file mode 100644
index 00000000000..1743e23942f
--- /dev/null
+++ b/pkgs/development/python-modules/cma/default.nix
@@ -0,0 +1,33 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, numpy
+, python
+}:
+
+buildPythonPackage rec {
+  pname = "cma";
+  version = "2.7.0";
+
+  src = fetchFromGitHub {
+    owner = "CMA-ES";
+    repo = "pycma";
+    rev = "r${version}";
+    sha256 = "0c26969pcqj047axksfffd9pj77n16k4r9h6pyid9q3ah5zk0xg3";
+  };
+
+  propagatedBuildInputs = [
+    numpy
+  ];
+
+  checkPhase = ''
+    ${python.executable} -m cma.test
+  '';
+
+  meta = with lib; {
+    description = "CMA-ES, Covariance Matrix Adaptation Evolution Strategy for non-linear numerical optimization in Python";
+    homepage = https://github.com/CMA-ES/pycma;
+    license = licenses.bsd3;
+    maintainers = [ maintainers.costrouc ];
+  };
+}
diff --git a/pkgs/development/python-modules/colorcet/default.nix b/pkgs/development/python-modules/colorcet/default.nix
index 4ae6dd8e479..e4288745d96 100644
--- a/pkgs/development/python-modules/colorcet/default.nix
+++ b/pkgs/development/python-modules/colorcet/default.nix
@@ -36,7 +36,8 @@ buildPythonPackage rec {
     echo "backend: ps" > $HOME/.config/matplotlib/matplotlibrc
     ln -s $HOME/.config/matplotlib $HOME/.matplotlib
 
-    pytest colorcet
+    # requires other backends to be available
+    pytest colorcet -k 'not matplotlib_default_colormap_plot'
   '';
 
   meta = with stdenv.lib; {
diff --git a/pkgs/development/python-modules/colored/default.nix b/pkgs/development/python-modules/colored/default.nix
index 2ccdb03bc22..b62d80600c7 100644
--- a/pkgs/development/python-modules/colored/default.nix
+++ b/pkgs/development/python-modules/colored/default.nix
@@ -5,11 +5,11 @@
 
 buildPythonPackage rec {
   pname = "colored";
-  version = "1.4.1";
+  version = "1.4.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0qf9470fsasimsmsri13jw1d2zpn3g24fv6vss64jq3ifwfkcs14";
+    sha256 = "056fac09d9e39b34296e7618897ed1b8c274f98423770c2980d829fd670955ed";
   };
 
   # No proper test suite
diff --git a/pkgs/development/python-modules/compiledb/default.nix b/pkgs/development/python-modules/compiledb/default.nix
new file mode 100644
index 00000000000..f2741c615b8
--- /dev/null
+++ b/pkgs/development/python-modules/compiledb/default.nix
@@ -0,0 +1,42 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, pytest
+, bashlex
+, click
+, shutilwhich
+, gcc
+, coreutils
+}:
+
+buildPythonPackage rec {
+  pname = "compiledb";
+  version = "0.10.1";
+
+  src = fetchFromGitHub {
+    owner = "nickdiego";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "0qricdgqzry7j3rmgwyd43av3c2kxpzkh6f9zcqbzrjkn78qbpd4";
+  };
+
+  # fix the tests
+  patchPhase = ''
+    substituteInPlace tests/data/multiple_commands_oneline.txt \
+                      --replace /bin/echo ${coreutils}/bin/echo
+  '';
+
+  checkInputs = [ pytest gcc coreutils ];
+  propagatedBuildInputs = [ click bashlex shutilwhich ];
+
+  checkPhase = ''
+    pytest
+  '';
+
+  meta = with lib; {
+    description = "Tool for generating Clang's JSON Compilation Database files";
+    license = licenses.gpl3;
+    homepage = https://github.com/nickdiego/compiledb;
+    maintainers = with maintainers; [ multun ];
+  };
+}
diff --git a/pkgs/development/python-modules/confluent-kafka/default.nix b/pkgs/development/python-modules/confluent-kafka/default.nix
index 8d992f71f33..f32a6bfd1ac 100644
--- a/pkgs/development/python-modules/confluent-kafka/default.nix
+++ b/pkgs/development/python-modules/confluent-kafka/default.nix
@@ -1,12 +1,12 @@
 { stdenv, buildPythonPackage, fetchPypi, isPy3k, rdkafka, requests, avro3k, avro, futures, enum34 }:
 
 buildPythonPackage rec {
-  version = "1.2.0";
+  version = "1.3.0";
   pname = "confluent-kafka";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1nn8z7ggjj04v97jm33dxh2cv2azy4xi1hwkj9qwbbc68vasc3cp";
+    sha256 = "4025ccddbc79443a4e2342de0d770f669558eb737fca2e7851558cd45f78ef78";
   };
 
   buildInputs = [ rdkafka requests ] ++ (if isPy3k then [ avro3k ] else [ enum34 avro futures ]) ;
diff --git a/pkgs/development/python-modules/connexion/default.nix b/pkgs/development/python-modules/connexion/default.nix
index bc1356a7274..4f2af55f208 100644
--- a/pkgs/development/python-modules/connexion/default.nix
+++ b/pkgs/development/python-modules/connexion/default.nix
@@ -32,14 +32,14 @@
 
 buildPythonPackage rec {
   pname = "connexion";
-  version = "2.3.0";
+  version = "2.4.0";
 
   # we're fetching from GitHub because tests weren't distributed on PyPi
   src = fetchFromGitHub {
     owner = "zalando";
     repo = pname;
     rev = version;
-    sha256 = "1xdm3misxwgrl87ms0vvn0h4rjwzlmmi7kcra2ahs40iaraf33ln";
+    sha256 = "1b9q027wrks0afl7l3a1wxymz3aick26b9fq2m07pc5wb9np0vvg";
   };
 
   checkInputs = [
diff --git a/pkgs/development/python-modules/cornice/default.nix b/pkgs/development/python-modules/cornice/default.nix
index 4ac38986245..598c3bd1c08 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.6.1";
+  version = "4.0.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "d3d608b9ff405e7ba5e9629ef0c09b7605997e1aea0dafb2aaa66761ff7cab08";
+    sha256 = "d083832e9db65da4784436deabd7d37959de88c3b8ba51d539fa1e1f8313439d";
   };
 
   propagatedBuildInputs = [ pyramid simplejson six venusian ];
diff --git a/pkgs/development/python-modules/coveralls/default.nix b/pkgs/development/python-modules/coveralls/default.nix
index aaa6192f2d5..dbf6616c22d 100644
--- a/pkgs/development/python-modules/coveralls/default.nix
+++ b/pkgs/development/python-modules/coveralls/default.nix
@@ -16,12 +16,12 @@
 buildPythonPackage rec {
   pname = "coveralls";
   name = "${pname}-python-${version}";
-  version = "1.8.2";
+  version = "1.9.2";
 
   # wanted by tests
   src = fetchPypi {
     inherit pname version;
-    sha256 = "fb51cddef4bc458de347274116df15d641a735d3f0a580a9472174e2e62f408c";
+    sha256 = "8e3315e8620bb6b3c6f3179a75f498e7179c93b3ddc440352404f941b1f70524";
   };
 
   checkInputs = [
diff --git a/pkgs/development/python-modules/cupy/default.nix b/pkgs/development/python-modules/cupy/default.nix
index f949120db0c..5426a609449 100644
--- a/pkgs/development/python-modules/cupy/default.nix
+++ b/pkgs/development/python-modules/cupy/default.nix
@@ -6,11 +6,11 @@
 
 buildPythonPackage rec {
   pname = "cupy";
-  version = "6.4.0";
+  version = "7.0.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "126waa1jiynq00glr1hq86sgwwmakq009crfsn8qqgrj4c4clw6a";
+    sha256 = "7230b25052b2b9074cc338b44338b4bd43575a48ad7b9c2ce7f36d7e0d117012";
   };
 
   checkInputs = [
diff --git a/pkgs/development/python-modules/cx_oracle/default.nix b/pkgs/development/python-modules/cx_oracle/default.nix
index 7064e81a5d2..6ba8f338638 100644
--- a/pkgs/development/python-modules/cx_oracle/default.nix
+++ b/pkgs/development/python-modules/cx_oracle/default.nix
@@ -2,13 +2,13 @@
 
 buildPythonPackage rec {
   pname = "cx_Oracle";
-  version = "7.2.3";
+  version = "7.3.0";
 
   buildInputs = [ odpic ];
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1b1zarb6g1b2nl3bj9m5ph1sxqc44bscwq30300q78hm666sbf6z";
+    sha256 = "2e0da54e948b55e5c75fab14b391d58aa8b9be1eddfd9ec9a8a0e500bc8bfc7e";
   };
 
   preConfigure = ''
diff --git a/pkgs/development/python-modules/cymem/default.nix b/pkgs/development/python-modules/cymem/default.nix
index b3d4a40bf66..1ca86f3d9d0 100644
--- a/pkgs/development/python-modules/cymem/default.nix
+++ b/pkgs/development/python-modules/cymem/default.nix
@@ -4,15 +4,16 @@
 , cython
 , python
 }:
+
 buildPythonPackage rec {
   pname = "cymem";
-  version = "2.0.2";
+  version = "2.0.3";
 
   src = fetchFromGitHub {
     owner = "explosion";
     repo = "cymem";
     rev = "v${version}";
-    sha256 = "109i67vwgql9za8mfvgbrd6rgraz4djkvpzb4gqvzl13214s6ava";
+    sha256 = "0cqz6whq4zginxjnh4cfqlsh535p4qz295ymvjchp71fv8mz11f6";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/dask/default.nix b/pkgs/development/python-modules/dask/default.nix
index a857925d7b7..beef26ec5be 100644
--- a/pkgs/development/python-modules/dask/default.nix
+++ b/pkgs/development/python-modules/dask/default.nix
@@ -1,7 +1,7 @@
 { lib
 , bokeh
 , buildPythonPackage
-, fetchPypi
+, fetchFromGitHub
 , fsspec
 , pytest
 , pythonOlder
@@ -15,25 +15,44 @@
 
 buildPythonPackage rec {
   pname = "dask";
-  version = "2.9.0";
+  version = "2.9.1";
 
   disabled = pythonOlder "3.5";
 
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "1w1hqr8vyx6ygwflj2737dcy0mmgvrc0s602gnny8pzlcbs9m76b";
+  src = fetchFromGitHub {
+    owner = "dask";
+    repo = pname;
+    rev = version;
+    sha256 = "1xayr4gkp4slvmh2ksdr0d196giz3yhknqjjg1vw2j0la9gwfwxs";
   };
 
-  checkInputs = [ pytest ];
+  checkInputs = [
+    pytest
+  ];
+
   propagatedBuildInputs = [
-    bokeh cloudpickle dill fsspec numpy pandas partd toolz ];
+    bokeh
+    cloudpickle
+    dill
+    fsspec
+    numpy
+    pandas
+    partd
+    toolz
+  ];
 
-  checkPhase = ''
-    py.test dask
+  postPatch = ''
+    # versioneer hack to set version of github package
+    echo "def get_versions(): return {'dirty': False, 'error': None, 'full-revisionid': None, 'version': '${version}'}" > dask/_version.py
+
+    substituteInPlace setup.py \
+      --replace "version=versioneer.get_version()," "version='${version}'," \
+      --replace "cmdclass=versioneer.get_cmdclass()," ""
   '';
 
-  # URLError
-  doCheck = false;
+  checkPhase = ''
+    pytest
+  '';
 
   meta = {
     description = "Minimal task scheduling abstraction";
diff --git a/pkgs/development/python-modules/databases/default.nix b/pkgs/development/python-modules/databases/default.nix
new file mode 100644
index 00000000000..e4129ed9bbf
--- /dev/null
+++ b/pkgs/development/python-modules/databases/default.nix
@@ -0,0 +1,49 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, sqlalchemy
+, aiocontextvars
+, isPy27
+, pytest
+, asyncpg
+, aiomysql
+, aiosqlite
+}:
+
+buildPythonPackage rec {
+  pname = "databases";
+  version = "0.2.6";
+  disabled = isPy27;
+
+  src = fetchFromGitHub {
+    owner = "encode";
+    repo = pname;
+    rev = version;
+    sha256 = "0cdb4vln4zdmqbbcj7711b81b2l64jg1miihqcg8gpi35v404h2q";
+  };
+
+  propagatedBuildInputs = [
+    sqlalchemy
+    aiocontextvars
+  ];
+
+  checkInputs = [
+    pytest
+    asyncpg
+    aiomysql
+    aiosqlite
+  ];
+
+  # big chunk to tests depend on existing posgresql and mysql databases
+  # some tests are better than no tests
+  checkPhase = ''
+    pytest --ignore=tests/test_integration.py --ignore=tests/test_databases.py
+  '';
+
+  meta = with lib; {
+    description = "Async database support for Python";
+    homepage = https://github.com/encode/databases;
+    license = licenses.bsd3;
+    maintainers = [ maintainers.costrouc ];
+  };
+}
diff --git a/pkgs/development/python-modules/datadog/default.nix b/pkgs/development/python-modules/datadog/default.nix
index 53a33037d16..6dc19a17462 100644
--- a/pkgs/development/python-modules/datadog/default.nix
+++ b/pkgs/development/python-modules/datadog/default.nix
@@ -1,14 +1,14 @@
 { lib, buildPythonPackage, fetchPypi
 , decorator, requests, simplejson, pillow
-, nose, mock, pytest }:
+, nose, mock, pytest, freezegun }:
 
 buildPythonPackage rec {
   pname = "datadog";
-  version = "0.30.0";
+  version = "0.33.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "07c053e39c6509023d69bc2f3b8e3d5d101b4e75baf2da2b9fc707391c3e773d";
+    sha256 = "bce73f33a4496b004402baa502251150e3b48a48f610ff89d4cd110b366ee0ab";
   };
 
   postPatch = ''
@@ -17,7 +17,7 @@ buildPythonPackage rec {
 
   propagatedBuildInputs = [ decorator requests simplejson pillow ];
 
-  checkInputs = [ nose mock pytest ];
+  checkInputs = [ nose mock pytest freezegun ];
   checkPhase = ''
     pytest tests/unit
   '';
diff --git a/pkgs/development/python-modules/datashader/default.nix b/pkgs/development/python-modules/datashader/default.nix
index 2039283771e..789e488e461 100644
--- a/pkgs/development/python-modules/datashader/default.nix
+++ b/pkgs/development/python-modules/datashader/default.nix
@@ -29,11 +29,11 @@
 
 buildPythonPackage rec {
   pname = "datashader";
-  version = "0.8.0";
+  version = "0.9.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "59ac9e3830167d07b350992402a9f547f26eca45cd69a0fb04061a4047e7ff2a";
+    sha256 = "3a423d61014ae8d2668848edab6c12a6244be6f249570bd7811dd5698d5ff633";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/dbf/default.nix b/pkgs/development/python-modules/dbf/default.nix
index f81b7d1c8bf..a2f7b603b84 100644
--- a/pkgs/development/python-modules/dbf/default.nix
+++ b/pkgs/development/python-modules/dbf/default.nix
@@ -9,7 +9,7 @@ buildPythonPackage rec {
       sha256 = "01d71vya2x87f3kl9x0s8xp0n7wixn6ksrd054y7idq3n1mjaxzh";
     };
 
-    propagatedBuildInputs = [ aenum ] ++ stdenv.lib.optional (pythonOlder "3.4") [ enum34 ];
+    propagatedBuildInputs = [ aenum ] ++ stdenv.lib.optional (pythonOlder "3.4") enum34;
 
     doCheck = !isPy3k;
     # tests are not yet ported.
diff --git a/pkgs/development/python-modules/deluge-client/default.nix b/pkgs/development/python-modules/deluge-client/default.nix
index 6f82adc94ca..a2a986828b5 100644
--- a/pkgs/development/python-modules/deluge-client/default.nix
+++ b/pkgs/development/python-modules/deluge-client/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "deluge-client";
-  version = "1.7.1";
+  version = "1.8.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1ragmpihjr9p6n27hw7gy83qyc68csqpn18m9kvwsby1vi7mgdy8";
+    sha256 = "4eac169b4b08008cacf4e5e26e82302a7ccd43c07846d1a1228f3e271a128de2";
   };
 
   # it will try to connect to a running instance
diff --git a/pkgs/development/python-modules/diff_cover/default.nix b/pkgs/development/python-modules/diff_cover/default.nix
index 0d49f627821..ed16f7f95e5 100644
--- a/pkgs/development/python-modules/diff_cover/default.nix
+++ b/pkgs/development/python-modules/diff_cover/default.nix
@@ -17,7 +17,7 @@
 
 buildPythonPackage rec {
   pname = "diff_cover";
-  version = "2.4.1";
+  version = "2.5.0";
 
   preCheck = ''
     export LC_ALL=en_US.UTF-8;
@@ -25,7 +25,7 @@ buildPythonPackage rec {
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "12h91rvbrf9qmdmj5nfqhcd3bpwq1pvk990bag4hyxcf86qlzds4";
+    sha256 = "2ba4e8dcd5439a245287fac056db02a9261432b1a44a5cffbe593032de86f1c7";
   };
 
   propagatedBuildInputs = [ jinja2 jinja2_pluralize pygments six inflect ];
diff --git a/pkgs/development/python-modules/diskcache/default.nix b/pkgs/development/python-modules/diskcache/default.nix
index 6aec01ed738..a420fc037bb 100644
--- a/pkgs/development/python-modules/diskcache/default.nix
+++ b/pkgs/development/python-modules/diskcache/default.nix
@@ -1,22 +1,36 @@
 { lib
 , buildPythonPackage
-, fetchPypi
-, tox
+, fetchFromGitHub
+, pytest
+, pytestcov
+, pytest_xdist
+, pytest-django
+, mock
 }:
 
 buildPythonPackage rec {
   pname = "diskcache";
   version = "4.1.0";
 
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "bcee5a59f9c264e2809e58d01be6569a3bbb1e36a1e0fb83f7ef9b2075f95ce0";
+  src = fetchFromGitHub {
+    owner = "grantjenks";
+    repo = "python-diskcache";
+    rev = "v${version}";
+    sha256 = "0xy2vpk4hixb4gg871d9sx9wxdz8pi0pmnfdwg4bf8jqfjg022w8";
   };
 
   checkInputs = [
-    tox
+    pytest
+    pytestcov
+    pytest_xdist
+    pytest-django
+    mock
   ];
 
+  checkPhase = ''
+    pytest
+  '';
+
   meta = with lib; {
     description = "Disk and file backed persistent cache";
     homepage = "http://www.grantjenks.com/docs/diskcache/";
diff --git a/pkgs/development/python-modules/distributed/default.nix b/pkgs/development/python-modules/distributed/default.nix
index 4179499eaf3..951593bac97 100644
--- a/pkgs/development/python-modules/distributed/default.nix
+++ b/pkgs/development/python-modules/distributed/default.nix
@@ -28,12 +28,12 @@
 
 buildPythonPackage rec {
   pname = "distributed";
-  version = "2.6.0";
+  version = "2.9.1";
 
   # get full repository need conftest.py to run tests
   src = fetchPypi {
     inherit pname version;
-    sha256 = "30b0ca195ace1e39bdd278bf1ad257f7674b3e2b8e7a2a37ce7e2ade4aecccf3";
+    sha256 = "d37a5c5be992f3b16db24b54d2801cbe370990fbc63089c6e7ef40d6f03cf5dd";
   };
 
   checkInputs = [ pytest pytest-repeat pytest-faulthandler pytest-timeout mock joblib ];
diff --git a/pkgs/development/python-modules/django-auth-ldap/default.nix b/pkgs/development/python-modules/django-auth-ldap/default.nix
index 4e2377ffb0f..3e95e7ff16b 100644
--- a/pkgs/development/python-modules/django-auth-ldap/default.nix
+++ b/pkgs/development/python-modules/django-auth-ldap/default.nix
@@ -7,11 +7,11 @@
 
 buildPythonPackage rec {
   pname = "django-auth-ldap";
-  version = "2.0.0";
+  version = "2.1.0";
   disabled = isPy27;
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1samrxf8lic6a4c0lgw31b38s97l8hnaknd7ilyy2plahmm0h03i";
+    sha256 = "5f48232c85ddfa33e3573153e6080526ac2eef5e7ec9cf42b5c4ba3c62afb96d";
   };
 
   propagatedBuildInputs = [ ldap django_2_2 ]; 
diff --git a/pkgs/development/python-modules/django-configurations/default.nix b/pkgs/development/python-modules/django-configurations/default.nix
index 0ca6c400df2..c31036c1814 100644
--- a/pkgs/development/python-modules/django-configurations/default.nix
+++ b/pkgs/development/python-modules/django-configurations/default.nix
@@ -12,12 +12,12 @@
 }:
 
 buildPythonPackage rec {
-  version = "2.1";
+  version = "2.2";
   pname = "django-configurations";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "71d9acdff33aa034f0157b0b3d23629fe0cd499bf4d0b6d699b9ca0701d952e8";
+    sha256 = "9e3bcea1355ac50a4c9f854f751d214cb17e5f8adf18405a4488d0a1e8945915";
   };
 
   checkInputs = [ django-discover-runner mock dj-database-url dj-email-url dj-search-url django-cache-url six ];
diff --git a/pkgs/development/python-modules/django-cors-headers/default.nix b/pkgs/development/python-modules/django-cors-headers/default.nix
index 358f2ab1be4..005dc65a499 100644
--- a/pkgs/development/python-modules/django-cors-headers/default.nix
+++ b/pkgs/development/python-modules/django-cors-headers/default.nix
@@ -6,11 +6,11 @@
 
 buildPythonPackage rec {
   pname = "django-cors-headers";
-  version = "3.1.1";
+  version = "3.2.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "5762ec9c2d59f38c76828dc1d4308baca4bc0d3e1d6f217683e7a24a1c4611a3";
+    sha256 = "84933651fbbde8f2bc084bef2f077b79db1ec1389432f21dd661eaae6b3d6a95";
   };
 
   propagatedBuildInputs = [ django ];
diff --git a/pkgs/development/python-modules/django-multiselectfield/default.nix b/pkgs/development/python-modules/django-multiselectfield/default.nix
index acf49d74167..a4dcb57fe43 100644
--- a/pkgs/development/python-modules/django-multiselectfield/default.nix
+++ b/pkgs/development/python-modules/django-multiselectfield/default.nix
@@ -6,11 +6,11 @@
 
 buildPythonPackage rec {
   pname = "django-multiselectfield";
-  version = "0.1.10";
+  version = "0.1.11";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "ec305ca79b6e16fb6d699d3159258f9f680ead8ea5ef9b419e7faf13f31355df";
+    sha256 = "043fa1aaddceb9b170c64c0745dc3a059165dcbc74946a434340778f63efa3c2";
   };
 
   propagatedBuildInputs = [ django ];
diff --git a/pkgs/development/python-modules/django-pglocks/default.nix b/pkgs/development/python-modules/django-pglocks/default.nix
index cb8c5f52630..da1dfe21df2 100644
--- a/pkgs/development/python-modules/django-pglocks/default.nix
+++ b/pkgs/development/python-modules/django-pglocks/default.nix
@@ -2,7 +2,7 @@
 
 buildPythonPackage rec {
   pname = "django-pglocks";
-  version = "1.0.3";
+  version = "1.0.4";
 
   meta = {
     description = "PostgreSQL locking context managers and functions for Django.";
@@ -12,7 +12,7 @@ buildPythonPackage rec {
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "daa3323de355b9057d8f37143e2ae8d283925fd25128ab66bb8c700d000111d9";
+    sha256 = "3c47c66fbfbd268ef46269673a0516a039539b0972b8ed2ec9cfee44c4b65523";
   };
 
   buildInputs = [ django ];
diff --git a/pkgs/development/python-modules/django-postgresql-netfields/default.nix b/pkgs/development/python-modules/django-postgresql-netfields/default.nix
new file mode 100644
index 00000000000..35be6f76147
--- /dev/null
+++ b/pkgs/development/python-modules/django-postgresql-netfields/default.nix
@@ -0,0 +1,49 @@
+{ stdenv
+, buildPythonPackage
+, django
+, netaddr
+, six
+, fetchFromGitHub
+# required for tests
+#, djangorestframework
+#, psycopg2
+#, unittest2
+}:
+
+buildPythonPackage rec {
+  version = "1.2.2";
+  pname = "django-postgresql-netfields";
+
+  src = fetchFromGitHub {
+    owner = "jimfunk";
+    repo = "${pname}";
+    rev = "v${version}";
+    sha256 = "1rrh38f3zl3jk5ijs6g75dxxvxygf4lczbgc7ahrgzf58g4a48lm";
+  };
+
+  # tests need a postgres database
+  doCheck = false;
+
+  # keeping the dependencies below as comment for reference
+  # checkPhase = ''
+    # python manage.py test
+  # '';
+
+  # buildInputs = [
+    # djangorestframework
+    # psycopg2
+    # unittest2
+  # ];
+
+  propagatedBuildInputs = [
+    django
+    netaddr
+    six
+  ];
+
+  meta = with stdenv.lib; {
+    description = "Django PostgreSQL netfields implementation";
+    homepage = https://github.com/jimfunk/django-postgresql-netfields;
+    license = licenses.bsd2;
+  };
+}
diff --git a/pkgs/development/python-modules/django-ranged-response/default.nix b/pkgs/development/python-modules/django-ranged-response/default.nix
new file mode 100644
index 00000000000..29b2baf89cd
--- /dev/null
+++ b/pkgs/development/python-modules/django-ranged-response/default.nix
@@ -0,0 +1,23 @@
+{ stdenv, fetchurl, fetchPypi, buildPythonPackage, django }:
+
+buildPythonPackage rec {
+  pname = "django-ranged-response";
+  version = "0.2.0";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "11gr3jpmb5rvg3scv026kjwwkmnxwivgq5ypxadnnc9p58szy7zp";
+  };
+
+  # tests not included in PyPi package, github source is not up to date with 0.2.0
+  doCheck = false;
+
+  propagatedBuildInputs = [ django ];
+
+  meta = with stdenv.lib; {
+    description = "A modified FileResponse that returns `Content-Range` headers with the HTTP response, so browsers (read Safari 9+) that request the file, can stream the response properly";
+    homepage = "https://github.com/wearespindle/django-ranged-fileresponse";
+    license = licenses.mit;
+    maintainers = with maintainers; [ mrmebelman ];
+  };
+}
diff --git a/pkgs/development/python-modules/django-simple-captcha/default.nix b/pkgs/development/python-modules/django-simple-captcha/default.nix
new file mode 100644
index 00000000000..67977caf9ec
--- /dev/null
+++ b/pkgs/development/python-modules/django-simple-captcha/default.nix
@@ -0,0 +1,39 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, python
+, six
+, testfixtures
+, django
+, django-ranged-response
+, pillow
+, withTTS ? true
+, flite
+}:
+
+buildPythonPackage rec {
+  pname = "django-simple-captcha";
+  version = "0.5.12";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "sha256:1g92sdgcb81r3il34pg0z210cz6wm14k00b558nshai8br1g09gw";
+    extension = "zip";
+  };
+
+  checkInputs = [ testfixtures ];
+  checkPhase = ''
+    cd testproject
+    ${python.interpreter} manage.py test captcha
+  '';
+
+  propagatedBuildInputs = [ django django-ranged-response six pillow ]
+  ++ lib.optional withTTS flite;
+
+  meta = with lib; {
+    description = "An extremely simple, yet highly customizable Django application to add captcha images to any Django form";
+    homepage = "https://github.com/mbi/django-simple-captcha";
+    license = licenses.mit;
+    maintainers = with maintainers; [ mrmebelman schmittlauch ];
+  };
+}
diff --git a/pkgs/development/python-modules/django-versatileimagefield/default.nix b/pkgs/development/python-modules/django-versatileimagefield/default.nix
index d4f46e0355f..90993db4c5b 100644
--- a/pkgs/development/python-modules/django-versatileimagefield/default.nix
+++ b/pkgs/development/python-modules/django-versatileimagefield/default.nix
@@ -8,11 +8,11 @@
 
 buildPythonPackage rec {
   pname = "django-versatileimagefield";
-  version = "1.10";
+  version = "1.11";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0y0r6ssxyg9x1rylpyxg2ha2hl18080k5xp308k4ankpjm50hvc8";
+    sha256 = "8322ee9d7bf5ffa5360990320d2cc2efc7017feff35422636d49f625721edf82";
   };
   propagatedBuildInputs = [ pillow ];
 
diff --git a/pkgs/development/python-modules/django_contrib_comments/default.nix b/pkgs/development/python-modules/django_contrib_comments/default.nix
index 9603929406c..12d8c220aff 100644
--- a/pkgs/development/python-modules/django_contrib_comments/default.nix
+++ b/pkgs/development/python-modules/django_contrib_comments/default.nix
@@ -2,6 +2,7 @@
 , buildPythonPackage
 , fetchPypi
 , django
+, six
 }:
 
 buildPythonPackage rec {
@@ -13,7 +14,7 @@ buildPythonPackage rec {
     sha256 = "d1232bade3094de07dcc205fc833204384e71ba9d30caadcb5bb2882ce8e8d31";
   };
 
-  propagatedBuildInputs = [ django ];
+  propagatedBuildInputs = [ django six ];
 
   meta = with stdenv.lib; {
     homepage = https://github.com/django/django-contrib-comments;
diff --git a/pkgs/development/python-modules/django_redis/default.nix b/pkgs/development/python-modules/django_redis/default.nix
index 85761be9ba5..c19ca255319 100644
--- a/pkgs/development/python-modules/django_redis/default.nix
+++ b/pkgs/development/python-modules/django_redis/default.nix
@@ -2,11 +2,11 @@
   mock, django, redis, msgpack }:
 buildPythonPackage rec {
   pname = "django-redis";
-  version = "4.10.0";
+  version = "4.11.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1rxcwnv9ik0swkwvfqdi9i9baw6n8if5pj6q63fjh4p9chw3j2xg";
+    sha256 = "a5b1e3ffd3198735e6c529d9bdf38ca3fcb3155515249b98dc4d966b8ddf9d2b";
   };
 
   doCheck = false;
diff --git a/pkgs/development/python-modules/django_taggit/default.nix b/pkgs/development/python-modules/django_taggit/default.nix
index 6ca498ce5e9..2851894b6b6 100644
--- a/pkgs/development/python-modules/django_taggit/default.nix
+++ b/pkgs/development/python-modules/django_taggit/default.nix
@@ -11,12 +11,12 @@
 
 buildPythonPackage rec {
   pname = "django-taggit";
-  version = "1.1.0";
+  version = "1.2.0";
   disabled = !isPy3k;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "044fzcpmns90kaxdi49qczlam4xsi8rl73rpfwvxx1gkcqzidgq1";
+    sha256 = "4186a6ce1e1e9af5e2db8dd3479c5d31fa11a87d216a2ce5089ba3afde24a2c5";
   };
 
   propagatedBuildInputs = [ isort django ];
diff --git a/pkgs/development/python-modules/django_treebeard/default.nix b/pkgs/development/python-modules/django_treebeard/default.nix
index 5c45b18be64..d4b3464b6ae 100644
--- a/pkgs/development/python-modules/django_treebeard/default.nix
+++ b/pkgs/development/python-modules/django_treebeard/default.nix
@@ -7,11 +7,11 @@
 
 buildPythonPackage rec {
   pname = "django-treebeard";
-  version = "4.3";
+  version = "4.3.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "c21db06a8d4943bf2a28d9d7a119058698fb76116df2679ecbf15a46a501de42";
+    sha256 = "83aebc34a9f06de7daaec330d858d1c47887e81be3da77e3541fe7368196dd8a";
   };
 
   buildInputs = [ pytest ];
diff --git a/pkgs/development/python-modules/djangorestframework/default.nix b/pkgs/development/python-modules/djangorestframework/default.nix
index addff19853d..60e5760b524 100644
--- a/pkgs/development/python-modules/djangorestframework/default.nix
+++ b/pkgs/development/python-modules/djangorestframework/default.nix
@@ -1,11 +1,13 @@
-{ stdenv, buildPythonPackage, fetchPypi, django }:
+{ stdenv, buildPythonPackage, fetchPypi, django, isPy27 }:
+
 buildPythonPackage rec {
-  version = "3.10.3";
+  version = "3.11.0";
   pname = "djangorestframework";
+  disabled = isPy27;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "140hwz52rlqqc10gbw5bhyyi4zbpqj3z7wgnh2jrhs2wfzwwp0fw";
+    sha256 = "e782087823c47a26826ee5b6fa0c542968219263fb3976ec3c31edab23a4001f";
   };
 
   # Test settings are missing
diff --git a/pkgs/development/python-modules/dkimpy/default.nix b/pkgs/development/python-modules/dkimpy/default.nix
index 60c5dc24b11..c65fdfec953 100644
--- a/pkgs/development/python-modules/dkimpy/default.nix
+++ b/pkgs/development/python-modules/dkimpy/default.nix
@@ -3,11 +3,11 @@
 
 buildPythonPackage rec {
   pname = "dkimpy";
-  version = "0.9.5";
+  version = "1.0.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "6bf47aa71bc466f5d6a201042317fb415fbc45f3cae4f5dbe1e337e235549ff2";
+    sha256 = "19rz48pzz1i5cc896khaqx2hkhcj5hwsklnyynrdgdr5818qjyff";
 };
 
   checkInputs = [ pytest ];
diff --git a/pkgs/development/python-modules/dnslib/default.nix b/pkgs/development/python-modules/dnslib/default.nix
index 65f45ca86f6..e6ec04bb79e 100644
--- a/pkgs/development/python-modules/dnslib/default.nix
+++ b/pkgs/development/python-modules/dnslib/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "dnslib";
-  version = "0.9.10";
+  version = "0.9.12";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "666bf55274a630a2925411c4ea9ca724529299bbe70f91979ad99c72c5e5099e";
+    sha256 = "c206f09948f3ad17884adffdb552b700072c6022fa59744a0f0606114c475e19";
   };
 
   checkPhase = "VERSIONS=${python.interpreter} ./run_tests.sh";
diff --git a/pkgs/development/python-modules/easy-thumbnails/default.nix b/pkgs/development/python-modules/easy-thumbnails/default.nix
index dae1df69562..894363237f5 100644
--- a/pkgs/development/python-modules/easy-thumbnails/default.nix
+++ b/pkgs/development/python-modules/easy-thumbnails/default.nix
@@ -4,7 +4,7 @@
 
 buildPythonPackage rec {
   pname = "easy-thumbnails";
-  version = "2.6";
+  version = "2.7";
 
   meta = {
     description = "Easy thumbnails for Django";
@@ -14,7 +14,7 @@ buildPythonPackage rec {
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "23fbe3415c93b2369ece8ebdfb5faa05540943bef8b941b3118ce769ba95e275";
+    sha256 = "e4e7a0dd4001f56bfd4058428f2c91eafe27d33ef3b8b33ac4e013b159b9ff91";
   };
 
   propagatedBuildInputs = [ django pillow ];
diff --git a/pkgs/development/python-modules/easyprocess/default.nix b/pkgs/development/python-modules/easyprocess/default.nix
index 7f8a803740d..32acb1213a8 100644
--- a/pkgs/development/python-modules/easyprocess/default.nix
+++ b/pkgs/development/python-modules/easyprocess/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "EasyProcess";
-  version = "0.2.7";
+  version = "0.2.8";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "f757cd16cdab5b87117b4ee6cf197f99bfa109253364c7bd717ad0bcd39218a0";
+    sha256 = "da7f67a006e2eb63d86a8f3f4baa9d6752dab9676009a67193a4e433f2f41c2a";
   };
 
   # No tests
diff --git a/pkgs/development/python-modules/ecdsa/default.nix b/pkgs/development/python-modules/ecdsa/default.nix
index 825cc0df56c..aa69b7e2fcd 100644
--- a/pkgs/development/python-modules/ecdsa/default.nix
+++ b/pkgs/development/python-modules/ecdsa/default.nix
@@ -2,17 +2,19 @@
 , buildPythonPackage
 , fetchPypi
 , pkgs
+, six
 }:
 
 buildPythonPackage rec {
   pname = "ecdsa";
-  version = "0.13.3";
+  version = "0.14.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "163c80b064a763ea733870feb96f9dd9b92216cfcacd374837af18e4e8ec3d4d";
+    sha256 = "64c613005f13efec6541bb0a33290d0d03c27abab5f15fbab20fb0ee162bdd8e";
   };
 
+  propagatedBuildInputs = [ six ];
   # Only needed for tests
   checkInputs = [ pkgs.openssl ];
 
diff --git a/pkgs/development/python-modules/effect/default.nix b/pkgs/development/python-modules/effect/default.nix
index 6b8329550da..fec5518f0e8 100644
--- a/pkgs/development/python-modules/effect/default.nix
+++ b/pkgs/development/python-modules/effect/default.nix
@@ -7,12 +7,12 @@
 , testtools
 }:
 buildPythonPackage rec {
-  version = "0.12.0";
+  version = "1.1.0";
   pname = "effect";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0s8zsncq4l0ar2b4dijf8yzrk13x2swr1w2nb30s1p5jd6r24czl";
+    sha256 = "7affb603707c648b07b11781ebb793a4b9aee8acf1ac5764c3ed2112adf0c9ea";
   };
   checkInputs = [
     pytest
diff --git a/pkgs/development/python-modules/elasticsearch/default.nix b/pkgs/development/python-modules/elasticsearch/default.nix
index e9c65018f67..ccef465eca1 100644
--- a/pkgs/development/python-modules/elasticsearch/default.nix
+++ b/pkgs/development/python-modules/elasticsearch/default.nix
@@ -7,11 +7,11 @@
 
 buildPythonPackage (rec {
   pname = "elasticsearch";
-  version = "7.0.5";
+  version = "7.1.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "693935914d59a517dfffdaab547ff906712a386d9e25027517464960221cbd4c";
+    sha256 = "0140787216646e1eb7eb001f8146aff7071d7ca438854249787b6cc221ddd266";
   };
 
   # Check is disabled because running them destroy the content of the local cluster!
diff --git a/pkgs/development/python-modules/ephem/default.nix b/pkgs/development/python-modules/ephem/default.nix
index 9069bef68e0..2b7815c6978 100644
--- a/pkgs/development/python-modules/ephem/default.nix
+++ b/pkgs/development/python-modules/ephem/default.nix
@@ -10,7 +10,7 @@ buildPythonPackage rec {
     sha256 = "0dj4kk325b01s7q1zkwpm9rrzl7n1jf7fr92wcajjhc5kx14hwb0";
   };
 
-  patchFlags = "-p0";
+  patchFlags = [ "-p0" ];
   checkInputs = [ pytest glibcLocales ];
   # JPLTest uses assets not distributed in package
   checkPhase = ''
diff --git a/pkgs/development/python-modules/eve/default.nix b/pkgs/development/python-modules/eve/default.nix
index 73813d34c5a..a8ac610855d 100644
--- a/pkgs/development/python-modules/eve/default.nix
+++ b/pkgs/development/python-modules/eve/default.nix
@@ -3,11 +3,11 @@
 
 buildPythonPackage rec {
   pname = "Eve";
-  version = "0.9.2";
+  version = "1.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0191ed42ef85d747758bba29df5ff1e296b8152fefddb2f75c3d778c2e6fb9d3";
+    sha256 = "ebde455e631b8eb9d38783eedfbd7e416b4477cce3d9988880eb3e477256a11e";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/eyed3/default.nix b/pkgs/development/python-modules/eyed3/default.nix
index 8ac7b597a4c..47602afa07d 100644
--- a/pkgs/development/python-modules/eyed3/default.nix
+++ b/pkgs/development/python-modules/eyed3/default.nix
@@ -13,13 +13,13 @@
 }:
 
 buildPythonPackage rec {
-  version = "0.8.11";
+  version = "0.8.12";
   pname    = "eyeD3";
   disabled = isPyPy;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0e4c9b9b42257deb9c38c112dbe44e1203dea686d454dc76adb72ded25ac878c";
+    sha256 = "e54eec0a03fb8e7e9e8b509546c6d92efbc871ea7597611fe2c16f03e1c94b6d";
   };
 
   # 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 8daa637724d..0d8c77f557f 100644
--- a/pkgs/development/python-modules/faker/default.nix
+++ b/pkgs/development/python-modules/faker/default.nix
@@ -17,11 +17,11 @@ assert pythonOlder "3.3" -> ipaddress != null;
 
 buildPythonPackage rec {
   pname = "Faker";
-  version = "2.0.5";
+  version = "3.0.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "29093e61f12745150774fd05ab499e87252a4fa51ed51e45c40179e854f87925";
+    sha256 = "92c84a10bec81217d9cb554ee12b3838c8986ce0b5d45f72f769da22e4bb5432";
   };
 
   nativeBuildInputs = [ pytestrunner ];
diff --git a/pkgs/development/python-modules/fastapi/default.nix b/pkgs/development/python-modules/fastapi/default.nix
index c90b64dca81..75edf5dc424 100644
--- a/pkgs/development/python-modules/fastapi/default.nix
+++ b/pkgs/development/python-modules/fastapi/default.nix
@@ -1,22 +1,28 @@
 { lib
 , buildPythonPackage
-, fetchPypi
+, fetchFromGitHub
 , uvicorn
 , starlette
 , pydantic
-, python
 , isPy3k
-, which
+, pytest
+, pytestcov
+, pyjwt
+, passlib
+, aiosqlite
 }:
 
 buildPythonPackage rec {
   pname = "fastapi";
-  version = "0.42.0";
+  version = "0.45.0";
+  format = "flit";
   disabled = !isPy3k;
 
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "48cb522c1c993e238bfe272fbb18049cbd4bf5b9d6c0d4a4fa113cc790e8196c";
+  src = fetchFromGitHub {
+    owner = "tiangolo";
+    repo = "fastapi";
+    rev = version;
+    sha256 = "1qwh382ny6qa3zi64micdq4j7dc64zv4rfd8g91j0digd4rhs6i1";
   };
 
   propagatedBuildInputs = [
@@ -25,10 +31,24 @@ buildPythonPackage rec {
     pydantic
   ];
 
-  patches = [ ./setup.py.patch ];
+  checkInputs = [
+    pytest
+    pytestcov
+    pyjwt
+    passlib
+    aiosqlite
+  ];
+
+  # starlette pinning kept in place due to 0.12.9 being a hard
+  # dependency luckily fastapi is currently the only dependent on
+  # starlette. Please remove pinning when possible
+  postPatch = ''
+    substituteInPlace pyproject.toml \
+      --replace "pydantic >=0.32.2,<=0.32.2" "pydantic"
+  '';
 
   checkPhase = ''
-    ${python.interpreter} -c "from fastapi import FastAPI; app = FastAPI()"
+    pytest --ignore=tests/test_default_response_class.py
   '';
 
   meta = with lib; {
diff --git a/pkgs/development/python-modules/fastapi/setup.py.patch b/pkgs/development/python-modules/fastapi/setup.py.patch
deleted file mode 100644
index 43661343d74..00000000000
--- a/pkgs/development/python-modules/fastapi/setup.py.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-diff --git a/setup.py b/setup.py
-index ccc3d2b..77ce446 100644
---- a/setup.py
-+++ b/setup.py
-@@ -10,7 +10,7 @@ package_data = \
- {'': ['*']}
- 
- install_requires = \
--['starlette >=0.11.1,<=0.12.0', 'pydantic >=0.30,<=0.30.0']
-+['starlette >=0.11.1', 'pydantic >=0.30']
- 
- extras_require = \
- {'all': ['requests',
diff --git a/pkgs/development/python-modules/fints/default.nix b/pkgs/development/python-modules/fints/default.nix
index f780c76fd6d..d3f796ab950 100644
--- a/pkgs/development/python-modules/fints/default.nix
+++ b/pkgs/development/python-modules/fints/default.nix
@@ -7,7 +7,7 @@
 }:
 
 buildPythonPackage rec {
-  version = "2.2.0";
+  version = "3.0.0";
   pname = "fints";
   disabled = isPy27;
 
@@ -15,14 +15,9 @@ buildPythonPackage rec {
     owner = "raphaelm";
     repo = "python-fints";
     rev = "v${version}";
-    sha256 = "1gx173dzdprf3jsc7dss0xax8s6l2hr02qg9m5c4rksb3dl5fl8w";
+    sha256 = "00fqgnmv7z6d792ga4cyzn9lrfjf79jplkssm2jbyb0akfggfj7h";
   };
 
-  postPatch = ''
-    substituteInPlace setup.py \
-      --replace 'sepaxml==2.0.*' 'sepaxml~=2.0'
-  '';
-
   propagatedBuildInputs = [ requests mt-940 sepaxml bleach ];
 
   checkInputs = [ pytest ];
diff --git a/pkgs/development/python-modules/flask-api/default.nix b/pkgs/development/python-modules/flask-api/default.nix
index b0f9682ed85..8bb6a472c9f 100644
--- a/pkgs/development/python-modules/flask-api/default.nix
+++ b/pkgs/development/python-modules/flask-api/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "Flask-API";
-  version = "1.1";
+  version = "2.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0r23pdlaz6ibz9vml3m7v6v3firvykbrsi1zzxkdhls0zi9jq560";
+    sha256 = "6986642e5b25b7def710ca9489ed2b88c94006bfc06eca01c78da7cf447e66e5";
   };
 
   propagatedBuildInputs = [ flask markdown ];
diff --git a/pkgs/development/python-modules/flask-caching/default.nix b/pkgs/development/python-modules/flask-caching/default.nix
index bd528af6bfa..64c3e3384dc 100644
--- a/pkgs/development/python-modules/flask-caching/default.nix
+++ b/pkgs/development/python-modules/flask-caching/default.nix
@@ -1,17 +1,17 @@
-{ lib, buildPythonPackage, fetchPypi, flask, pytest, pytestcov, pytest-xprocess }:
+{ lib, buildPythonPackage, fetchPypi, flask, pytest, pytestcov, pytest-xprocess, pytestcache }:
 
 buildPythonPackage rec {
   pname = "Flask-Caching";
-  version = "1.7.2";
+  version = "1.8.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "17jnnmnpdflv120yhsfbnpick06iias6f2hcxmf1mi1nr35kdqjj";
+    sha256 = "3d0bd13c448c1640334131ed4163a12aff7df2155e73860f07fc9e5e75de7126";
   };
 
   propagatedBuildInputs = [ flask ];
 
-  checkInputs = [ pytest pytestcov pytest-xprocess ];
+  checkInputs = [ pytest pytestcov pytest-xprocess pytestcache ];
 
   # backend_cache relies on pytest-cache, which is a stale package from 2013
   checkPhase = ''
diff --git a/pkgs/development/python-modules/flask-swagger-ui/default.nix b/pkgs/development/python-modules/flask-swagger-ui/default.nix
new file mode 100644
index 00000000000..a281864117b
--- /dev/null
+++ b/pkgs/development/python-modules/flask-swagger-ui/default.nix
@@ -0,0 +1,24 @@
+{ stdenv, buildPythonPackage, fetchPypi, flask }:
+
+buildPythonPackage rec {
+  pname = "flask-swagger-ui";
+  version = "3.20.9";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "3282c770764c8053360f33b2fc120e1d169ecca2138537d0e6e1135b1f9d4ff2";
+  };
+
+  doCheck = false;  # there are no tests
+
+  propagatedBuildInputs = [
+    flask
+  ];
+
+  meta = with stdenv.lib; {
+    homepage = "https://github.com/sveint/flask-swagger-ui";
+    license = licenses.mit;
+    description = "Swagger UI blueprint for Flask";
+    maintainers = with maintainers; [ vanschelven ];
+  };
+}
diff --git a/pkgs/development/python-modules/fonttools/default.nix b/pkgs/development/python-modules/fonttools/default.nix
index eb59eaa0f1c..f85afa77021 100644
--- a/pkgs/development/python-modules/fonttools/default.nix
+++ b/pkgs/development/python-modules/fonttools/default.nix
@@ -1,6 +1,7 @@
 { lib
 , buildPythonPackage
 , fetchPypi
+, isPy27
 , numpy
 , pytest
 , pytestrunner
@@ -9,11 +10,12 @@
 
 buildPythonPackage rec {
   pname = "fonttools";
-  version = "4.0.2";
+  version = "4.2.2";
+  disabled = isPy27;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "bb9bf6b5b4ded33e0d9f823e5ae2e1fa643af4d614915660abe3853a9a6931cd";
+    sha256 = "66bb3dfe7efe5972b0145339c063ffaf9539e973f7ff8791df84366eafc65804";
     extension = "zip";
   };
 
diff --git a/pkgs/development/python-modules/foolscap/default.nix b/pkgs/development/python-modules/foolscap/default.nix
index 8680ff2d2aa..a9ab0db1ed9 100644
--- a/pkgs/development/python-modules/foolscap/default.nix
+++ b/pkgs/development/python-modules/foolscap/default.nix
@@ -9,11 +9,11 @@
 
 buildPythonPackage rec {
   pname = "foolscap";
-  version = "0.13.1";
+  version = "0.13.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0sqxp4fshnpcv69c2j04v8c22pjak28iwscxv998h2s3054knxz2";
+    sha256 = "8498c7e9eaecb5b19be74b18d55c2086440be08de29f2bb507f9b505757467ff";
   };
 
   propagatedBuildInputs = [ mock twisted pyopenssl service-identity ];
diff --git a/pkgs/development/python-modules/fsspec/default.nix b/pkgs/development/python-modules/fsspec/default.nix
index a94f847fc90..7e0ed8b9712 100644
--- a/pkgs/development/python-modules/fsspec/default.nix
+++ b/pkgs/development/python-modules/fsspec/default.nix
@@ -1,26 +1,34 @@
 { lib
 , buildPythonPackage
-, fetchPypi
+, fetchFromGitHub
 , pythonOlder
+, pytest
 }:
 
 buildPythonPackage rec {
   pname = "fsspec";
-  version = "0.5.2";
-
+  version = "0.6.2";
   disabled = pythonOlder "3.5";
 
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "6531a5fa9ea6bf27a5180d225558a8a7aa5d7c3cbf7e8b146dd37ac699017937";
+  src = fetchFromGitHub {
+    owner = "intake";
+    repo = "filesystem_spec";
+    rev = version;
+    sha256 = "1y3d6xw14rcldz9779ir6mjaff4rk82ch6ahn4y9mya0qglpc31i";
   };
 
-  # no tests
-  doCheck = false;
+  checkInputs = [
+    pytest
+  ];
+
+  checkPhase = ''
+    pytest
+  '';
 
   meta = with lib; {
-    description = "A specification that python filesystems should adhere to.";
-    homepage = "https://github.com/intake/filesystem_spec";
+    description = "A specification that python filesystems should adhere to";
+    homepage = https://github.com/intake/filesystem_spec;
     license = licenses.bsd3;
+    maintainers = [ maintainers.costrouc ];
   };
 }
diff --git a/pkgs/development/python-modules/genanki/default.nix b/pkgs/development/python-modules/genanki/default.nix
index f4f3821afa3..bab5b26635d 100644
--- a/pkgs/development/python-modules/genanki/default.nix
+++ b/pkgs/development/python-modules/genanki/default.nix
@@ -4,11 +4,11 @@
 
 buildPythonPackage rec {
   pname = "genanki";
-  version = "0.7.0";
+  version = "0.8.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "32ee8063b1d3b5cd95c117c5a4aa812940e3d3c0daa3d535cd6633c1025a59bc";
+    sha256 = "c7c6c276f182a63a807b52a95f197df12794ff014f48dd287cb51ca2dcbe1b34";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/gidgethub/default.nix b/pkgs/development/python-modules/gidgethub/default.nix
index 140f93f33f8..341d08d95ed 100644
--- a/pkgs/development/python-modules/gidgethub/default.nix
+++ b/pkgs/development/python-modules/gidgethub/default.nix
@@ -15,13 +15,13 @@
 
 buildPythonPackage rec {
   pname = "gidgethub";
-  version = "3.1.0";
+  version = "3.2.0";
 
   disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "52119435ba73ddd5e697dae7bec8b93a048bc738720b81691ebd4b4d81d2d762";
+    sha256 = "8f4b69063a256994d38243cc0eba4e1453017b5b8b04a173216d02d47ffc3989";
   };
 
   nativeBuildInputs = [ setuptools pytestrunner ];
diff --git a/pkgs/development/python-modules/glom/default.nix b/pkgs/development/python-modules/glom/default.nix
index 2a89fb262ff..739ef7d95e4 100644
--- a/pkgs/development/python-modules/glom/default.nix
+++ b/pkgs/development/python-modules/glom/default.nix
@@ -11,11 +11,11 @@
 
 buildPythonPackage rec {
   pname = "glom";
-  version = "19.2.0";
+  version = "19.10.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "c277f34e5e498834a63c2114a25a6c67b5cf0b92f96bb65cba063d861c3d1da6";
+    sha256 = "c8a50cb9fcf0c84807836c6a73cf61285557834b9050d7bde7732b936aceb7dd";
   };
 
   propagatedBuildInputs = [ boltons attrs face ];
diff --git a/pkgs/development/python-modules/google-music/default.nix b/pkgs/development/python-modules/google-music/default.nix
index 94fe6d5e0a1..0a3f145f131 100644
--- a/pkgs/development/python-modules/google-music/default.nix
+++ b/pkgs/development/python-modules/google-music/default.nix
@@ -9,11 +9,11 @@
 
 buildPythonPackage rec {
   pname = "google-music";
-  version = "3.1.0";
+  version = "3.2.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "5c6cb11d56dfe2cfb95f3083ed4c1347dafbf15a88fc9a7aab3ed5ee4c75cc40";
+    sha256 = "15d543ab31c981bcb9bfb10f588159848ef570fafb6b9d1347f1429a9b1f531a";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/google_api_core/default.nix b/pkgs/development/python-modules/google_api_core/default.nix
index 3a6b49e4e9f..6bfc10f0a09 100644
--- a/pkgs/development/python-modules/google_api_core/default.nix
+++ b/pkgs/development/python-modules/google_api_core/default.nix
@@ -3,12 +3,12 @@
 
 buildPythonPackage rec {
   pname = "google-api-core";
-  version = "1.14.3";
+  version = "1.15.0";
   disabled = isPy27; # google namespace no longer works on python2
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "df8adc4b97f5ab4328a0e745bee77877cf4a7d4601cb1cd5959d2bbf8fba57aa";
+    sha256 = "2d661c8d650a1df5805d0e360121cb55c55d8bd29f858fa62cbe943e59ce89f7";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/google_cloud_asset/default.nix b/pkgs/development/python-modules/google_cloud_asset/default.nix
index e73f1e86613..934af49462b 100644
--- a/pkgs/development/python-modules/google_cloud_asset/default.nix
+++ b/pkgs/development/python-modules/google_cloud_asset/default.nix
@@ -10,11 +10,11 @@
 
 buildPythonPackage rec {
   pname = "google-cloud-asset";
-  version = "0.4.1";
+  version = "0.6.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "e6c02a6709d13490c73450f3b1ac3436bd26795fa04d9711d7cad973a71eb118";
+    sha256 = "35eeb50c101968b4b5eecc840002a6f83af6789b6a947f27f0b2787e30cc1835";
   };
 
   checkInputs = [ pytest mock ];
diff --git a/pkgs/development/python-modules/google_cloud_automl/default.nix b/pkgs/development/python-modules/google_cloud_automl/default.nix
index 52248605c75..3fc0fc8598d 100644
--- a/pkgs/development/python-modules/google_cloud_automl/default.nix
+++ b/pkgs/development/python-modules/google_cloud_automl/default.nix
@@ -9,11 +9,11 @@
 
 buildPythonPackage rec {
   pname = "google-cloud-automl";
-  version = "0.7.1";
+  version = "0.9.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "fa92a77fcc79032dba756b82196a29f63a7b374379bacdb78be128e09b8abc03";
+    sha256 = "6541245cdee3e3ba5d98bb3ecd0b343fd5d3de1e880cfc5daf59f4a69a045171";
   };
 
   checkInputs = [ pytest mock ];
diff --git a/pkgs/development/python-modules/google_cloud_bigquery/default.nix b/pkgs/development/python-modules/google_cloud_bigquery/default.nix
index f81663b407d..e361b4436ee 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.21.0";
+  version = "1.23.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "b38d5669235583ee4334d468b3719ea4a381da4b2abbedbf13cb926d893a11ab";
+    sha256 = "99c341592d711d8f131fe80d842f7e1b04b2ca1faefa1ffedf4dec1b382cebf6";
   };
 
   checkInputs = [ pytest mock ipython ];
diff --git a/pkgs/development/python-modules/google_cloud_bigtable/default.nix b/pkgs/development/python-modules/google_cloud_bigtable/default.nix
index 3dae6bfdadc..a71d2e493dd 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 = "1.1.0";
+  version = "1.2.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "5bfa5db942ddb491a62198e690754dbed80228e5cb2c389d809be33464f6cb31";
+    sha256 = "eea9d4aca54499b555a893fa441deac1bd7ae9cbc8e03bdd681fd33fad72e170";
   };
 
   checkInputs = [ pytest mock ];
diff --git a/pkgs/development/python-modules/google_cloud_core/default.nix b/pkgs/development/python-modules/google_cloud_core/default.nix
index 0b0914b1480..139ce85a319 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 = "1.0.3";
+  version = "1.1.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "10750207c1a9ad6f6e082d91dbff3920443bdaf1c344a782730489a9efa802f1";
+    sha256 = "49036087c1170c3fad026e45189f17092b8c584a9accb2d73d1854f494e223ae";
   };
 
   propagatedBuildInputs = [ google_api_core grpcio setuptools ];
diff --git a/pkgs/development/python-modules/google_cloud_dataproc/default.nix b/pkgs/development/python-modules/google_cloud_dataproc/default.nix
index a08a1c4fd10..becc2678dc1 100644
--- a/pkgs/development/python-modules/google_cloud_dataproc/default.nix
+++ b/pkgs/development/python-modules/google_cloud_dataproc/default.nix
@@ -8,11 +8,11 @@
 
 buildPythonPackage rec {
   pname = "google-cloud-dataproc";
-  version = "0.5.0";
+  version = "0.6.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "24c28e9383e714b1447e5b4a2282beda2c94714e78cbb6cfc5f8ccbfcfdb3ffa";
+    sha256 = "302bc448e77f1de958ba7413fb85819eda911043f219d8fc030a356848bc6f31";
   };
 
   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 6c7388b4cf1..30990938435 100644
--- a/pkgs/development/python-modules/google_cloud_dlp/default.nix
+++ b/pkgs/development/python-modules/google_cloud_dlp/default.nix
@@ -9,11 +9,11 @@
 
 buildPythonPackage rec {
   pname = "google-cloud-dlp";
-  version = "0.12.1";
+  version = "0.13.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "acf2b1f8388b0baf3286bd2a67e3adad70a28d0fa768fd2196a96710637c4b72";
+    sha256 = "844f5e63597c2a15561eec68397ee5f425e9be7728d2d7072f50f983fab31b9a";
   };
 
   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 697e2b2d7c9..e6211d844fa 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 = "1.5.0";
+  version = "1.6.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "201fa86bbc76cf7ccbfac293bb7ed2dfba9bb9e5244b2785f619d083a8b2b51d";
+    sha256 = "7fec7b523ab5e1f87721ca61181114818579bb4d17de768a3993811c9d2aacfe";
   };
 
   checkInputs = [ pytest ];
diff --git a/pkgs/development/python-modules/google_cloud_monitoring/default.nix b/pkgs/development/python-modules/google_cloud_monitoring/default.nix
index 5bc612ad188..a556fb95568 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.33.0";
+  version = "0.34.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "cba63744faeea3b0167a752268955df127736e453820f01cc24e97bf4ae83c24";
+    sha256 = "75370af645dd815c234561e7b356fa5d99b0ee6448c0e5d013455c72af961d0b";
   };
 
   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 8860578b207..99723450866 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 = "1.0.2";
+  version = "1.1.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "afb08eb558f3e4d836e6f77443f81555d6921ffc888c7c3085acd1205fba6e8c";
+    sha256 = "bdead87e40eba93043c6704578e946cf2794366312f936da0a2b3754234dde29";
   };
 
   checkInputs = [ pytest mock ];
diff --git a/pkgs/development/python-modules/google_cloud_spanner/default.nix b/pkgs/development/python-modules/google_cloud_spanner/default.nix
index 0fad7cbdbfa..80e88d53f1f 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.11.0";
+  version = "1.13.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "58b0c324296986d2f308d1b9917341d5c1e8e72253349e3ba5163b99bf7fc840";
+    sha256 = "eafa09cc344339a23702ee74eac5713974fefafdfd56afb589bd25548c79c80d";
   };
 
   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 b14c48cbf08..c00ea653900 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 = "1.2.0";
+  version = "1.3.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "f8a1f67b01b5b8bd22fa3ba95a4b99ae4a55b6299665d5ae1afa3db7f6706c32";
+    sha256 = "21b597b18ee2b9b9a5e2e05a7a1d47173f8f3adeada36b5bdf6cb816114430bf";
   };
 
   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 1d68197364b..ff750602465 100644
--- a/pkgs/development/python-modules/google_cloud_storage/default.nix
+++ b/pkgs/development/python-modules/google_cloud_storage/default.nix
@@ -11,11 +11,11 @@
 
 buildPythonPackage rec {
   pname = "google-cloud-storage";
-  version = "1.20.0";
+  version = "1.23.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "2e7e2435978bda1c209b70a9a00b8cbc53c3b00d6f09eb2c991ebba857babf24";
+    sha256 = "c66e876ae9547884fa42566a2ebfec51d280f488d7a058af9611ba90c78bed78";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/google_cloud_tasks/default.nix b/pkgs/development/python-modules/google_cloud_tasks/default.nix
index 9a139399ccd..95bcb0d4d57 100644
--- a/pkgs/development/python-modules/google_cloud_tasks/default.nix
+++ b/pkgs/development/python-modules/google_cloud_tasks/default.nix
@@ -10,11 +10,11 @@
 
 buildPythonPackage rec {
   pname = "google-cloud-tasks";
-  version = "1.2.1";
+  version = "1.3.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "93f57f5ee273b4efcb3d7cc9d1c0b9a63dc9fd61d1fb47b861182364cfd51f94";
+    sha256 = "221388d1dd4bf21ba46ead499bbb3dfba9151b852c4fdca70935ba36e5c3631a";
   };
 
   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 a6010969409..57e106fcfbe 100644
--- a/pkgs/development/python-modules/google_cloud_videointelligence/default.nix
+++ b/pkgs/development/python-modules/google_cloud_videointelligence/default.nix
@@ -8,11 +8,11 @@
 
 buildPythonPackage rec {
   pname = "google-cloud-videointelligence";
-  version = "1.11.0";
+  version = "1.12.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "ef5c53772500bb30b546889ba8823a8d21217153544800f31a9bfd6f514643cb";
+    sha256 = "66d0a63d27e83656b1b4e0205d32725e4c58db174118badba164bb7d05a66981";
   };
 
   checkInputs = [ pytest mock ];
diff --git a/pkgs/development/python-modules/google_cloud_vision/default.nix b/pkgs/development/python-modules/google_cloud_vision/default.nix
index 10c8792b9c8..39dfc123650 100644
--- a/pkgs/development/python-modules/google_cloud_vision/default.nix
+++ b/pkgs/development/python-modules/google_cloud_vision/default.nix
@@ -8,11 +8,11 @@
 
 buildPythonPackage rec {
   pname = "google-cloud-vision";
-  version = "0.39.0";
+  version = "0.41.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "f33aea6721d453901ded268dee61a01ab77d4cd215a76edc3cc61b6028299d3e";
+    sha256 = "fd7adcfd8f1bddc19797b25ba3287a4f0cf42e208f330fffb7f1cd125e4d6cd3";
   };
 
   checkInputs = [ mock ];
diff --git a/pkgs/development/python-modules/google_resumable_media/default.nix b/pkgs/development/python-modules/google_resumable_media/default.nix
index a7fc28623fc..8486eba68c1 100644
--- a/pkgs/development/python-modules/google_resumable_media/default.nix
+++ b/pkgs/development/python-modules/google_resumable_media/default.nix
@@ -10,11 +10,11 @@
 
 buildPythonPackage rec {
   pname = "google-resumable-media";
-  version = "0.4.1";
+  version = "0.5.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "cdeb8fbb3551a665db921023603af2f0d6ac59ad8b48259cb510b8799505775f";
+    sha256 = "2a8fd188afe1cbfd5998bf20602f76b0336aa892de88fe842a806b9a3ed78d2a";
   };
 
   checkInputs = [ pytest mock ];
diff --git a/pkgs/development/python-modules/graph-tool/2.x.x.nix b/pkgs/development/python-modules/graph-tool/2.x.x.nix
index 4b0e665de09..e069c8f8c7b 100644
--- a/pkgs/development/python-modules/graph-tool/2.x.x.nix
+++ b/pkgs/development/python-modules/graph-tool/2.x.x.nix
@@ -1,5 +1,5 @@
 { stdenv, fetchurl, python, cairomm, sparsehash, pycairo, autoreconfHook
-, pkgconfig, boost, expat, scipy, cgal, gmp, mpfr
+, pkg-config, boost, expat, scipy, cgal, gmp, mpfr
 , gobject-introspection, pygobject3, gtk3, matplotlib, ncurses
 , buildPythonPackage
 , fetchpatch
@@ -10,7 +10,7 @@
 buildPythonPackage rec {
   pname = "graph-tool";
   format = "other";
-  version = "2.27";
+  version = "2.29";
 
   meta = with stdenv.lib; {
     description = "Python module for manipulation and statistical analysis of graphs";
@@ -21,25 +21,9 @@ buildPythonPackage rec {
 
   src = fetchurl {
     url = "https://downloads.skewed.de/graph-tool/graph-tool-${version}.tar.bz2";
-    sha256 = "04s31qwlfcl7bwsggnic8gqcqmx2wsrmfw77nf7vzgnz42bwch27";
+    sha256 = "0ykzcnqc5bhqb4xlf9ahpp807vj5868xdrmcj6fggqnnpqv4633c";
   };
 
-  patches = [
-    # fix build with cgal 4.13 (https://git.skewed.de/count0/graph-tool/issues/509)
-    (fetchpatch {
-      name = "cgal-4.13.patch";
-      url = "https://git.skewed.de/count0/graph-tool/commit/aa39e4a6b42d43fac30c841d176c75aff92cc01a.patch";
-      sha256 = "1578inb4jqwq2fhhwscn5z95nzmaxvmvk30nzs5wirr26iznap4m";
-    })
-  ] ++ (lib.optionals (pythonAtLeast "3.7") [
-    # # python 3.7 compatibility (`async` is now reserved)
-    (fetchpatch {
-      name = "async-reserved.patch";
-      url = "https://git.skewed.de/count0/graph-tool/commit/0407f41a35b6be7c670927fb5dc578cbd0e88be4.patch";
-      sha256 = "1fklznhmfvbb3ykwzyf8p2hiczby6y7r0xnkkjl2jkxlvr24000q";
-    })
-  ]);
-
   configureFlags = [
     "--with-python-module-path=$(out)/${python.sitePackages}"
     "--with-boost-libdir=${boost}/lib"
@@ -48,7 +32,7 @@ buildPythonPackage rec {
     "--enable-openmp"
   ];
 
-  nativeBuildInputs = [ autoreconfHook pkgconfig ];
+  nativeBuildInputs = [ autoreconfHook pkg-config ];
   buildInputs = [ ncurses ];
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/grpcio-tools/default.nix b/pkgs/development/python-modules/grpcio-tools/default.nix
index e4fb0914f0a..8b84af18729 100644
--- a/pkgs/development/python-modules/grpcio-tools/default.nix
+++ b/pkgs/development/python-modules/grpcio-tools/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "grpcio-tools";
-  version = "1.25.0";
+  version = "1.26.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "988014c714ca654b3b7ca9f4dabfe487b00e023bfdd9eaf1bb0fed82bf8c4255";
+    sha256 = "5580b86cf49936c9c74f0def44d3582a7a1bb720eba8a14805c3a61efa790c70";
   };
 
   enableParallelBuilding = true;
diff --git a/pkgs/development/python-modules/gunicorn/default.nix b/pkgs/development/python-modules/gunicorn/default.nix
index 16c6921cdd6..75a3d745a3f 100644
--- a/pkgs/development/python-modules/gunicorn/default.nix
+++ b/pkgs/development/python-modules/gunicorn/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi
+{ stdenv, buildPythonPackage, fetchPypi, isPy27
 , coverage
 , mock
 , pytest
@@ -8,11 +8,12 @@
 
 buildPythonPackage rec {
   pname = "gunicorn";
-  version = "19.9.0";
+  version = "20.0.4";
+  disabled = isPy27;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "fa2662097c66f920f53f70621c6c58ca4a3c4d3434205e608e121b5b3b71f4f3";
+    sha256 = "1904bb2b8a43658807108d59c3f3d56c2b6121a701161de0ddf9ad140073c626";
   };
 
   propagatedBuildInputs = [ setuptools ];
diff --git a/pkgs/development/python-modules/gym/default.nix b/pkgs/development/python-modules/gym/default.nix
index 52171470c27..d90ded1fb5f 100644
--- a/pkgs/development/python-modules/gym/default.nix
+++ b/pkgs/development/python-modules/gym/default.nix
@@ -5,11 +5,11 @@
 
 buildPythonPackage rec {
   pname = "gym";
-  version = "0.15.3";
+  version = "0.15.4";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "18381e13bbd1e2f206a1b88a2af4fb87affd7d06ee7955a6e5e6a79478a9adfc";
+    sha256 = "3b930cbe1c76bbd30455b5e82ba723dea94159a5f988e927f443324bf7cc7ddd";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/h3/default.nix b/pkgs/development/python-modules/h3/default.nix
new file mode 100644
index 00000000000..d98a053c418
--- /dev/null
+++ b/pkgs/development/python-modules/h3/default.nix
@@ -0,0 +1,35 @@
+{ stdenv
+, buildPythonPackage
+, cmake
+, fetchPypi
+, h3
+, python
+}:
+
+buildPythonPackage rec {
+  pname = "h3";
+  version = "3.4.3";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "07dlqpr1r4kzb3gci395plpss8gxvvrij40l6w0mylyg7fkab4m2";
+  };
+
+  patches = [
+    ./disable-custom-install.patch
+    ./hardcode-h3-path.patch
+  ];
+
+  preBuild = ''
+    substituteInPlace h3/h3.py \
+      --subst-var-by libh3_path ${h3}/lib/libh3${stdenv.hostPlatform.extensions.sharedLibrary}
+  '';
+
+  meta = with stdenv.lib; {
+    homepage = "https://github.com/uber/h3-py";
+    description = "This library provides Python bindings for the H3 Core Library.";
+    license = licenses.asl20;
+    platforms = platforms.unix ++ platforms.darwin;
+    maintainers = [ maintainers.kalbasit ];
+  };
+}
diff --git a/pkgs/development/python-modules/h3/disable-custom-install.patch b/pkgs/development/python-modules/h3/disable-custom-install.patch
new file mode 100644
index 00000000000..981e3b6e2fc
--- /dev/null
+++ b/pkgs/development/python-modules/h3/disable-custom-install.patch
@@ -0,0 +1,41 @@
+diff --git a/setup.py b/setup.py
+index 8e1c220..45297b6 100644
+--- a/setup.py
++++ b/setup.py
+@@ -25,20 +25,6 @@ class CustomBuildExtCommand(build_ext):
+         install_h3(h3_version)
+
+
+-# Tested with wheel v0.29.0
+-class BinaryDistribution(Distribution):
+-    def __init__(self, attrs=None):
+-        Distribution.__init__(self, attrs)
+-        # The values used for the name and sources in the Extension below are
+-        # not important, because we override the build_ext command above.
+-        # The normal C extension building logic is never invoked, and is
+-        # replaced with our own custom logic. However, ext_modules cannot be
+-        # empty, because this signals to other parts of distutils that our
+-        # package contains C extensions and thus needs to be built for
+-        # different platforms separately.
+-        self.ext_modules = [Extension('h3c', [])]
+-
+-
+ long_description = open('README.rst').read()
+
+ setup(
+@@ -52,14 +38,10 @@ setup(
+     url='https://github.com/uber/h3-py.git',
+     packages=find_packages(exclude=['tests', 'tests.*']),
+     install_requires=[],
+-    cmdclass={
+-        'build_ext': CustomBuildExtCommand,
+-    },
+     package_data={
+         'h-py':
+         ['out/*.dylib' if platform.system() == 'Darwin' else (
+             'out/*.dll' if platform.system() == 'Windows' else
+             'out/*.so.*')]
+     },
+-    license='Apache License 2.0',
+-    distclass=BinaryDistribution)
++    license='Apache License 2.0')
diff --git a/pkgs/development/python-modules/h3/hardcode-h3-path.patch b/pkgs/development/python-modules/h3/hardcode-h3-path.patch
new file mode 100644
index 00000000000..87549f298d7
--- /dev/null
+++ b/pkgs/development/python-modules/h3/hardcode-h3-path.patch
@@ -0,0 +1,19 @@
+diff --git a/h3/h3.py b/h3/h3.py
+index 18cf168..2cc7812 100644
+--- a/h3/h3.py
++++ b/h3/h3.py
+@@ -34,13 +34,7 @@ from ctypes import (
+     POINTER,
+ )
+
+-_dirname = os.path.dirname(__file__)
+-libh3_path = ('{}/{}'.format(_dirname, 'out/libh3.1.dylib')
+-              if platform.system() == 'Darwin' else (
+-              '{}/{}'.format(_dirname, 'out/h3.dll') if platform.system() == 'Windows' else
+-              '{}/{}'.format(_dirname, 'out/libh3.so.1')))
+-
+-libh3 = cdll.LoadLibrary(libh3_path)
++libh3 = cdll.LoadLibrary('@libh3_path@')
+
+ # Type of an H3 index
+ H3Index = c_ulonglong
diff --git a/pkgs/development/python-modules/hass-nabucasa/default.nix b/pkgs/development/python-modules/hass-nabucasa/default.nix
index badbeb493bc..e14b97d94ce 100644
--- a/pkgs/development/python-modules/hass-nabucasa/default.nix
+++ b/pkgs/development/python-modules/hass-nabucasa/default.nix
@@ -1,4 +1,4 @@
-{ lib, buildPythonPackage, fetchFromGitHub, acme, aiohttp, snitun, attrs, pytest-aiohttp, warrant, pytest }:
+{ lib, buildPythonPackage, fetchFromGitHub, fetchpatch, acme, aiohttp, snitun, attrs, pytest-aiohttp, warrant, pytest }:
 
 buildPythonPackage rec {
   pname = "hass-nabucasa";
@@ -11,6 +11,12 @@ buildPythonPackage rec {
     sha256 = "182nh5i3hlj0kqkbynk69md0ddq83w02l8lz4m03d8xbjixzi1k1";
   };
 
+  # upstreamed in https://github.com/NabuCasa/hass-nabucasa/pull/119
+  postPatch = ''
+    sed -i 's/"acme.*/"acme>=0.40.0,<2.0"/' setup.py
+    cat setup.py
+  '';
+
   propagatedBuildInputs = [ acme aiohttp snitun attrs warrant ];
 
   checkInputs = [ pytest pytest-aiohttp ];
diff --git a/pkgs/development/python-modules/hmmlearn/default.nix b/pkgs/development/python-modules/hmmlearn/default.nix
index 32c79b17136..e29c31e6fa7 100644
--- a/pkgs/development/python-modules/hmmlearn/default.nix
+++ b/pkgs/development/python-modules/hmmlearn/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "hmmlearn";
-  version = "0.2.2";
+  version = "0.2.3";
 
   src = fetchurl {
     url = "mirror://pypi/h/hmmlearn/${pname}-${version}.tar.gz";
-    sha256 = "081c53xs5wn5vikwslallwdv0am09w9cbbggl5dbkqpnic9zx4h4";
+    sha256 = "8003d5dc55612de8016156abdc7aa1dd995abc2431adb1ef33dd84a6d29e56bf";
   };
 
   buildInputs = [ setuptools_scm cython ];
diff --git a/pkgs/development/python-modules/holidays/default.nix b/pkgs/development/python-modules/holidays/default.nix
index 3909651ff26..ebde21a4821 100644
--- a/pkgs/development/python-modules/holidays/default.nix
+++ b/pkgs/development/python-modules/holidays/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "holidays";
-  version = "0.9.11";
+  version = "0.9.12";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1g0irhh4kq3zy1disc9i5746p72a72s5j1q1cxhbdkwnnn9dnpwi";
+    sha256 = "3182c4a6fef8d01a829468362ace9c3bba7645873610535fef53454dbb4ea092";
   };
 
   propagatedBuildInputs = [ six dateutil ];
diff --git a/pkgs/development/python-modules/homeassistant-pyozw/default.nix b/pkgs/development/python-modules/homeassistant-pyozw/default.nix
index 559aa905c2c..5674db53e5a 100644
--- a/pkgs/development/python-modules/homeassistant-pyozw/default.nix
+++ b/pkgs/development/python-modules/homeassistant-pyozw/default.nix
@@ -10,5 +10,6 @@ python_openzwave.overridePythonAttrs (oldAttrs: rec {
     sha256 = "2d500638270ee4f0e7e9e114d9b4402c94c232f314116cdcf88d7c1dc9a44427";
   };
 
+  patches = [];
   meta.homepage = https://github.com/home-assistant/python-openzwave;
 })
diff --git a/pkgs/development/python-modules/hstspreload/default.nix b/pkgs/development/python-modules/hstspreload/default.nix
new file mode 100644
index 00000000000..a276bd33b59
--- /dev/null
+++ b/pkgs/development/python-modules/hstspreload/default.nix
@@ -0,0 +1,28 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, isPy27
+}:
+
+buildPythonPackage rec {
+  pname = "hstspreload";
+  version = "2019.12.25";
+  disabled = isPy27;
+
+  src = fetchFromGitHub {
+    owner = "sethmlarson";
+    repo = pname;
+    rev = version;
+    sha256 = "1aa7jccwldxw3s0z668qqb0i0plsark1q3jvkmqkyp645w5bfilk";
+  };
+
+  # tests require network connection
+  doCheck = false;
+
+  meta = with lib; {
+    description = "Chromium HSTS Preload list as a Python package and updated daily";
+    homepage = https://github.com/sethmlarson/hstspreload;
+    license = licenses.bsd3;
+    maintainers = [ maintainers.costrouc ];
+  };
+}
diff --git a/pkgs/development/python-modules/html5lib/default.nix b/pkgs/development/python-modules/html5lib/default.nix
index 5a59b63cea4..82b48180709 100644
--- a/pkgs/development/python-modules/html5lib/default.nix
+++ b/pkgs/development/python-modules/html5lib/default.nix
@@ -2,7 +2,7 @@
 , buildPythonPackage
 , fetchPypi
 , flake8
-, pytest
+, pytest_4
 , pytest-expect
 , mock
 , six
@@ -18,7 +18,7 @@ buildPythonPackage rec {
     sha256 = "66cb0dcfdbbc4f9c3ba1a63fdb511ffdbd4f513b2b6d81b80cd26ce6b3fb3736";
   };
 
-  checkInputs = [ flake8 pytest pytest-expect mock ];
+  checkInputs = [ flake8 pytest_4 pytest-expect mock ];
   propagatedBuildInputs = [
     six webencodings
   ];
@@ -42,4 +42,4 @@ buildPythonPackage rec {
     license = lib.licenses.mit;
     maintainers = with lib.maintainers; [ domenkozar prikhi ];
   };
-}
\ No newline at end of file
+}
diff --git a/pkgs/development/python-modules/httplib2/default.nix b/pkgs/development/python-modules/httplib2/default.nix
index 77350b09941..c40f3453d6b 100644
--- a/pkgs/development/python-modules/httplib2/default.nix
+++ b/pkgs/development/python-modules/httplib2/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "httplib2";
-  version = "0.14.0";
+  version = "0.15.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "34537dcdd5e0f2386d29e0e2c6d4a1703a3b982d34c198a5102e6e5d6194b107";
+    sha256 = "a5f914f18f99cb9541660454a159e3b3c63241fc3ab60005bb88d97cc7a4fb58";
   };
 
   # Needs setting up
diff --git a/pkgs/development/python-modules/httpx/default.nix b/pkgs/development/python-modules/httpx/default.nix
new file mode 100644
index 00000000000..04a0592d750
--- /dev/null
+++ b/pkgs/development/python-modules/httpx/default.nix
@@ -0,0 +1,68 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, certifi
+, hstspreload
+, chardet
+, h11
+, h2
+, idna
+, rfc3986
+, sniffio
+, isPy27
+, pytest
+, pytestcov
+, trustme
+, uvicorn
+, trio
+, brotli
+}:
+
+buildPythonPackage rec {
+  pname = "httpx";
+  version = "0.9.5";
+  disabled = isPy27;
+
+  src = fetchFromGitHub {
+    owner = "encode";
+    repo = pname;
+    rev = version;
+    sha256 = "140z2j7b5hlcxvfb433hqv5b8irqa88hpq33lzr9m992djbhj2hb";
+  };
+
+  propagatedBuildInputs = [
+    certifi
+    hstspreload
+    chardet
+    h11
+    h2
+    idna
+    rfc3986
+    sniffio
+  ];
+
+  checkInputs = [
+    pytest
+    pytestcov
+    trustme
+    uvicorn
+    trio
+    brotli
+  ];
+
+  postPatch = ''
+    substituteInPlace setup.py \
+          --replace "h11==0.8.*" "h11"
+  '';
+
+  checkPhase = ''
+    PYTHONPATH=.:$PYTHONPATH pytest
+  '';
+
+  meta = with lib; {
+    description = "The next generation HTTP client";
+    homepage = https://github.com/encode/httpx;
+    license = licenses.bsd3;
+    maintainers = [ maintainers.costrouc ];
+  };
+}
diff --git a/pkgs/development/python-modules/hypothesis/default.nix b/pkgs/development/python-modules/hypothesis/default.nix
index ec9c5ecefa0..fdb5a69ddd7 100644
--- a/pkgs/development/python-modules/hypothesis/default.nix
+++ b/pkgs/development/python-modules/hypothesis/default.nix
@@ -9,7 +9,7 @@ buildPythonPackage rec {
   # pytz fake_factory django numpy pytest
   # If you need these, you can just add them to your environment.
 
-  version = "4.41.0";
+  version = "4.56.1";
   pname = "hypothesis";
 
   # Use github tarballs that includes tests
@@ -22,7 +22,7 @@ buildPythonPackage rec {
 
   postUnpack = "sourceRoot=$sourceRoot/hypothesis-python";
 
-  propagatedBuildInputs = [ attrs coverage ] ++ lib.optional (!isPy3k) [ enum34 ];
+  propagatedBuildInputs = [ attrs coverage ] ++ lib.optional (!isPy3k) enum34;
 
   checkInputs = [ pytest pytest_xdist flaky mock pexpect ];
   inherit doCheck;
diff --git a/pkgs/development/python-modules/identify/default.nix b/pkgs/development/python-modules/identify/default.nix
index e5822349bac..bfe039382ac 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.4.8";
+  version = "1.4.9";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "7782115794ec28b011702815d9f5e532244560cd2bf0789c4f09381d43befd90";
+    sha256 = "6f44e637caa40d1b4cb37f6ed3b262ede74901d28b1cc5b1fc07360871edd65d";
   };
 
   # Tests not included in PyPI tarball
diff --git a/pkgs/development/python-modules/imagecodecs-lite/default.nix b/pkgs/development/python-modules/imagecodecs-lite/default.nix
index 6374b882718..861a0ed0db3 100644
--- a/pkgs/development/python-modules/imagecodecs-lite/default.nix
+++ b/pkgs/development/python-modules/imagecodecs-lite/default.nix
@@ -6,15 +6,28 @@
 
 buildPythonPackage rec {
   pname = "imagecodecs-lite";
-  version = "2019.4.20";
+  version = "2019.12.3";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1cp88g7g91gdhjhaz6gvb4jzvi5ad817id9f2bnc5r95ag93bqb0";
+    sha256 = "0s4xb17qd7vimc46rafbjnibj4sf0lnv8cwl22k1h6zb7jhqmlcm";
   };
 
-  checkInputs = [ pytest ];
-  propagatedBuildInputs = [ numpy cython ];
+  nativeBuildInputs = [
+    cython
+  ];
+
+  checkInputs = [
+    pytest
+  ];
+
+  propagatedBuildInputs = [
+    numpy
+  ];
+
+  checkPhase = ''
+    pytest
+  '';
 
   meta = with lib; {
     description = "Block-oriented, in-memory buffer transformation, compression, and decompression functions";
diff --git a/pkgs/development/python-modules/imbalanced-learn/default.nix b/pkgs/development/python-modules/imbalanced-learn/default.nix
index d8e35d3fcea..568fc825ab6 100644
--- a/pkgs/development/python-modules/imbalanced-learn/default.nix
+++ b/pkgs/development/python-modules/imbalanced-learn/default.nix
@@ -8,12 +8,12 @@
 
 buildPythonPackage rec {
   pname = "imbalanced-learn";
-  version = "0.5.0";
+  version = "0.6.1";
   disabled = isPy27; # scikit-learn>=0.21 doesn't work on python2
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1m8r055mvkws0s449s1dyrkgricls6basnszwbwqwrw6g19n1xsx";
+    sha256 = "94f846ff8d19ee9ea42ba6feddfbc85d5b42098bd3b62318f8d3bc5c7133b274";
   };
 
   propagatedBuildInputs = [ scikitlearn ];
diff --git a/pkgs/development/python-modules/imgaug/default.nix b/pkgs/development/python-modules/imgaug/default.nix
index 32dc23ddfce..48ea6004426 100644
--- a/pkgs/development/python-modules/imgaug/default.nix
+++ b/pkgs/development/python-modules/imgaug/default.nix
@@ -1,30 +1,55 @@
-{ stdenv, buildPythonPackage, fetchPypi, numpy, scipy, scikitimage, opencv3, six }:
+{ buildPythonPackage
+, fetchurl
+, imageio
+, numpy
+, opencv3
+, pytest
+, scikitimage
+, scipy
+, shapely
+, six
+, stdenv
+}:
 
 buildPythonPackage rec {
   pname = "imgaug";
   version = "0.3.0";
 
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "e1354d41921f1b306b50c5141b4870f17e81b531cae2f5c3093da9dc4dcb3cf4";
+  src = fetchurl {
+    url = "https://github.com/aleju/imgaug/archive/c3d99a420efc45652a1264920dc20378a54b1325.zip";
+    sha256 = "sha256:174nvhyhdn3vz0i34rqmkn26840j3mnfr55cvv5bdf9l4y9bbjq2";
   };
 
+  postPatch = ''
+    substituteInPlace requirements.txt \
+      --replace "opencv-python-headless" ""
+    substituteInPlace setup.py \
+      --replace "opencv-python-headless" "" 
+    substituteInPlace pytest.ini \
+      --replace "--xdoctest --xdoctest-global-exec=\"import imgaug as ia\nfrom imgaug import augmenters as iaa\"" ""
+  '';
+
   propagatedBuildInputs = [
+    imageio
     numpy
-    scipy
-    scikitimage
     opencv3
+    scikitimage
+    scipy
+    shapely
     six
   ];
 
-  # disable tests when there are no tests in the PyPI archive
-  doCheck = false;
+  checkPhase = ''
+     pytest ./test
+  '';
+
+  checkInputs = [ opencv3 pytest ];
 
   meta = with stdenv.lib; {
     homepage = https://github.com/aleju/imgaug;
     description = "Image augmentation for machine learning experiments";
     license = licenses.mit;
-    maintainers = with maintainers; [ cmcdragonkai ];
-    broken = true; # opencv-python bindings aren't available yet, and look non-trivial
+    maintainers = with maintainers; [ cmcdragonkai rakesh4g ];
+    platforms = platforms.linux;
   };
 }
diff --git a/pkgs/development/python-modules/importlib-metadata/default.nix b/pkgs/development/python-modules/importlib-metadata/default.nix
index bae5d232d0e..5b7a249d65a 100644
--- a/pkgs/development/python-modules/importlib-metadata/default.nix
+++ b/pkgs/development/python-modules/importlib-metadata/default.nix
@@ -13,12 +13,12 @@
 
 buildPythonPackage rec {
   pname = "importlib-metadata";
-  version = "0.23";
+  version = "1.3.0";
 
   src = fetchPypi {
     pname = "importlib_metadata";
     inherit version;
-    sha256 = "09mdqdfv5rdrwz80jh9m379gxmvk2vhjfz0fg53hid00icvxf65a";
+    sha256 = "0ibvvqajphwdclbr236gikvyja0ynvqjlix38kvsabgrf0jqafh7";
   };
 
   nativeBuildInputs = [ setuptools_scm ];
@@ -28,9 +28,6 @@ buildPythonPackage rec {
 
   checkInputs = [ importlib-resources packaging ];
 
-  # Two failing tests: https://gitlab.com/python-devs/importlib_metadata/issues/72
-  doCheck = false;
-
   meta = with lib; {
     description = "Read metadata from Python packages";
     homepage = https://importlib-metadata.readthedocs.io/;
diff --git a/pkgs/development/python-modules/inflect/default.nix b/pkgs/development/python-modules/inflect/default.nix
index 147cc8753eb..2b856b35f7c 100644
--- a/pkgs/development/python-modules/inflect/default.nix
+++ b/pkgs/development/python-modules/inflect/default.nix
@@ -1,15 +1,15 @@
-{ buildPythonPackage, fetchPypi, setuptools_scm, nose, six }:
+{ buildPythonPackage, fetchPypi, setuptools_scm, nose, six, importlib-metadata }:
 
 buildPythonPackage rec {
   pname = "inflect";
-  version = "2.1.0";
+  version = "3.0.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "4ded1b2a6fcf0fc0397419c7727f131a93b67b80d899f2973be7758628e12b73";
+    sha256 = "ee7c9b7c3376d06828b205460afb3c447b5d25dd653171db249a238f3fc2c18a";
   };
 
-  buildInputs = [ setuptools_scm ];
+  nativeBuildInputs = [ setuptools_scm ];
+  propagatedBuildInputs = [ six importlib-metadata ];
   checkInputs = [ nose ];
-  propagatedBuildInputs = [ six ];
 }
diff --git a/pkgs/development/python-modules/intake/default.nix b/pkgs/development/python-modules/intake/default.nix
index f670d8f01e0..487ffc35b1a 100644
--- a/pkgs/development/python-modules/intake/default.nix
+++ b/pkgs/development/python-modules/intake/default.nix
@@ -22,13 +22,13 @@
 
 buildPythonPackage rec {
   pname = "intake";
-  version = "0.5.3";
+  version = "0.5.4";
 
   disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1mbjr4xl4i523bg8k08s5986v2289fznd8cr3j3czn5adi8519j7";
+    sha256 = "81c3bdadbb81ec10c923b89e118c229d977a584ccbe27466f8fde41c0c274c3f";
   };
 
   checkInputs = [ pytest ];
diff --git a/pkgs/development/python-modules/ipykernel/default.nix b/pkgs/development/python-modules/ipykernel/default.nix
index 215177d4b8a..5202483ab32 100644
--- a/pkgs/development/python-modules/ipykernel/default.nix
+++ b/pkgs/development/python-modules/ipykernel/default.nix
@@ -3,6 +3,7 @@
 , buildPythonPackage
 , fetchPypi
 , fetchpatch
+, flaky
 , ipython
 , jupyter_client
 , traitlets
@@ -14,12 +15,12 @@
 
 buildPythonPackage rec {
   pname = "ipykernel";
-  version = "5.1.2";
+  version = "5.1.3";
   disabled = pythonOlder "3.4";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "04jx6ihj3zpj4c7acqa14gl37mpdnbgmfm4nvv97xkjc1cz920xm";
+    sha256 = "1a08y677lpn80qzvv7z0smgggmr5m5ayf0bs6vds47xpxl9sss5k";
   };
 
   propagatedBuildInputs = [ ipython jupyter_client traitlets tornado ];
@@ -32,7 +33,7 @@ buildPythonPackage rec {
     })
   ];
 
-  checkInputs = [ pytestCheckHook nose ];
+  checkInputs = [ pytestCheckHook nose flaky ];
   dontUseSetuptoolsCheck = true;
   preCheck = ''
     export HOME=$(mktemp -d)
diff --git a/pkgs/development/python-modules/ipython/7.9.nix b/pkgs/development/python-modules/ipython/7.9.nix
new file mode 100644
index 00000000000..c097bdbe9e1
--- /dev/null
+++ b/pkgs/development/python-modules/ipython/7.9.nix
@@ -0,0 +1,69 @@
+{ lib
+, stdenv
+, buildPythonPackage
+, fetchPypi
+, pythonOlder
+# Build dependencies
+, glibcLocales
+# Test dependencies
+, nose
+, pygments
+# Runtime dependencies
+, jedi
+, decorator
+, pickleshare
+, traitlets
+, prompt_toolkit
+, pexpect
+, appnope
+, backcall
+, fetchpatch
+}:
+
+buildPythonPackage rec {
+  pname = "ipython";
+  version = "7.9.0";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "103jkw18z7fnwdal1mdbijjxi1fndzn31g887lmj7ddpf2r07lyz";
+  };
+
+  prePatch = lib.optionalString stdenv.isDarwin ''
+    substituteInPlace setup.py --replace "'gnureadline'" " "
+  '';
+
+  buildInputs = [ glibcLocales ];
+
+  checkInputs = [ nose pygments ];
+
+  propagatedBuildInputs = [
+    jedi
+    decorator
+    pickleshare
+    traitlets
+    prompt_toolkit
+    pygments
+    pexpect
+    backcall
+  ] ++ lib.optionals stdenv.isDarwin [appnope];
+
+  LC_ALL="en_US.UTF-8";
+
+  doCheck = false; # Circular dependency with ipykernel
+
+  checkPhase = ''
+    nosetests
+  '';
+
+  pythonImportsCheck = [
+    "IPython"
+  ];
+
+  meta = with lib; {
+    description = "IPython: Productive Interactive Computing";
+    homepage = http://ipython.org/;
+    license = licenses.bsd3;
+    maintainers = with maintainers; [ bjornfor fridh ];
+  };
+}
diff --git a/pkgs/development/python-modules/ipython/default.nix b/pkgs/development/python-modules/ipython/default.nix
index f67c5ea941a..6b9da6e882f 100644
--- a/pkgs/development/python-modules/ipython/default.nix
+++ b/pkgs/development/python-modules/ipython/default.nix
@@ -22,12 +22,12 @@
 
 buildPythonPackage rec {
   pname = "ipython";
-  version = "7.10.1";
-  disabled = pythonOlder "3.5";
+  version = "7.10.2";
+  disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "03h3m64k8jq0cc48i34g8xq0r68cx3w7wz721mfhr7k06qdv11pi";
+    sha256 = "762d79a62b6aa96b04971e920543f558dfbeedc0468b899303c080c8068d4ac2";
   };
 
   prePatch = lib.optionalString stdenv.isDarwin ''
diff --git a/pkgs/development/python-modules/irc/default.nix b/pkgs/development/python-modules/irc/default.nix
index 95dd5ba4617..5828ada7a61 100644
--- a/pkgs/development/python-modules/irc/default.nix
+++ b/pkgs/development/python-modules/irc/default.nix
@@ -5,13 +5,13 @@
 
 buildPythonPackage rec {
   pname = "irc";
-  version = "17.1";
+  version = "18.0.0";
 
   disabled = !isPy3k;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0c19aeee800dbad792179d70dff1281c06fec220323f8ec34150cd94357f383b";
+    sha256 = "1qg5996mzvhnkm74ksaa4d47fz5vrpw6hvxyaq9kf6y4cf1l76wq";
   };
 
   doCheck = false;
diff --git a/pkgs/development/python-modules/isbnlib/default.nix b/pkgs/development/python-modules/isbnlib/default.nix
index 7ad81da27d2..af12ba587d4 100644
--- a/pkgs/development/python-modules/isbnlib/default.nix
+++ b/pkgs/development/python-modules/isbnlib/default.nix
@@ -7,11 +7,11 @@
 
 buildPythonPackage rec {
   pname = "isbnlib";
-  version = "3.9.9";
+  version = "3.9.10";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "ba2d5a86a70db0f1951df479205e9144d9e55b8af4995b3857a79a30c6ff16ab";
+    sha256 = "1a389556cc5cf82b7ad95924710101e3bd06d809d6f889a3f437975b275af944";
   };
 
   checkInputs = [
diff --git a/pkgs/development/python-modules/jaraco_classes/default.nix b/pkgs/development/python-modules/jaraco_classes/default.nix
index dadbb810465..8e5458509c4 100644
--- a/pkgs/development/python-modules/jaraco_classes/default.nix
+++ b/pkgs/development/python-modules/jaraco_classes/default.nix
@@ -1,13 +1,16 @@
-{ buildPythonPackage, fetchPypi, setuptools_scm, six }:
+{ buildPythonPackage, fetchPypi, setuptools_scm, six, more-itertools }:
 
 buildPythonPackage rec {
   pname = "jaraco.classes";
-  version = "2.0";
+  version = "3.0.0";
+
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1xfal9085bjh4fv57d6v9ibr5wf4llj73gp1ybdlqd2bralc9hnw";
+    sha256 = "886ad165d495e7d18781142d6dda4f0045053a038f9e63c38ef03e2f7127bafc";
   };
+
+  nativeBuildInputs = [ setuptools_scm ];
+  propagatedBuildInputs = [ six more-itertools ];
+
   doCheck = false;
-  buildInputs = [ setuptools_scm ];
-  propagatedBuildInputs = [ six ];
 }
diff --git a/pkgs/development/python-modules/jaraco_stream/default.nix b/pkgs/development/python-modules/jaraco_stream/default.nix
index 492d903f24d..324eb625014 100644
--- a/pkgs/development/python-modules/jaraco_stream/default.nix
+++ b/pkgs/development/python-modules/jaraco_stream/default.nix
@@ -2,10 +2,10 @@
 
 buildPythonPackage rec {
   pname = "jaraco.stream";
-  version = "2.0";
+  version = "3.0.0";
   src = fetchPypi {
     inherit pname version;
-    sha256 = "c2e9d507d8cf04a3ff916b57eaf46bacb8a9f8895b55ead853de9c47b8f5daa4";
+    sha256 = "287e1cba9f278e0146fdded6bc40518930813a5584579769aeaa1d0bfd178a73";
   };
   doCheck = false;
   buildInputs = [ setuptools_scm ];
diff --git a/pkgs/development/python-modules/javaobj-py3/default.nix b/pkgs/development/python-modules/javaobj-py3/default.nix
new file mode 100644
index 00000000000..54656e1ea99
--- /dev/null
+++ b/pkgs/development/python-modules/javaobj-py3/default.nix
@@ -0,0 +1,26 @@
+{ buildPythonPackage
+, fetchPypi
+, lib
+}:
+
+buildPythonPackage rec {
+  pname = "javaobj-py3";
+  version = "0.3.0";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "0j9532i7bnjd0v4a8c36mjj9rsdnbmckk65dh9sbmvnhy3j6jx55";
+  };
+
+  # Tests assume network connectivity
+  doCheck = false;
+
+  meta = {
+    description = "Module for serializing and de-serializing Java objects";
+    homepage = "https://github.com/tcalmant/python-javaobj";
+    license = lib.licenses.asl20;
+    maintainers = with lib.maintainers; [
+      kamadorueda
+    ];
+  };
+}
diff --git a/pkgs/development/python-modules/jedi/default.nix b/pkgs/development/python-modules/jedi/default.nix
index 0df9404f156..eb3cdfaadd8 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.15.1";
+  version = "0.15.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "ba859c74fa3c966a22f2aeebe1b74ee27e2a462f56d3f5f7ca4a59af61bfe42e";
+    sha256 = "e909527104a903606dd63bea6e8e888833f0ef087057829b89a18364a856f807";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/jieba/default.nix b/pkgs/development/python-modules/jieba/default.nix
index df21c0f4186..75520384ff3 100644
--- a/pkgs/development/python-modules/jieba/default.nix
+++ b/pkgs/development/python-modules/jieba/default.nix
@@ -2,14 +2,14 @@
 
 buildPythonPackage rec {
   pname = "jieba";
-  version = "0.39";
+  version = "0.40";
 
   # no tests in PyPI tarball
   src = fetchFromGitHub {
     owner = "fxsjy";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0hbq0l1jbgcvm58qg4p37im4jl5a9igvq3wlhlk22pmbkbvqqgzs";
+    sha256 = "1nasyxva9m3k9fb9g627ppphp3697jdplbb2bavqx71sa7mqim2m";
   };
 
   checkInputs = [ glibcLocales ];
diff --git a/pkgs/development/python-modules/jsonschema/default.nix b/pkgs/development/python-modules/jsonschema/default.nix
index d94a7742f9e..9ff267b6fce 100644
--- a/pkgs/development/python-modules/jsonschema/default.nix
+++ b/pkgs/development/python-modules/jsonschema/default.nix
@@ -13,11 +13,11 @@
 
 buildPythonPackage rec {
   pname = "jsonschema";
-  version = "3.1.1";
+  version = "3.2.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "2fa0684276b6333ff3c0b1b27081f4b2305f0a36cf702a23db50edb141893c3f";
+    sha256 = "c8a85b28d377cc7737e46e2d9f2b4f44ee3c0e1deac6bf46ddefc7187d30797a";
   };
 
   nativeBuildInputs = [ setuptools_scm ];
diff --git a/pkgs/development/python-modules/junitparser/default.nix b/pkgs/development/python-modules/junitparser/default.nix
new file mode 100644
index 00000000000..11bd1d60ab0
--- /dev/null
+++ b/pkgs/development/python-modules/junitparser/default.nix
@@ -0,0 +1,31 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, future
+, python
+}:
+
+buildPythonPackage rec {
+  pname = "junitparser";
+  version = "1.4.1";
+
+  src = fetchFromGitHub {
+    owner = "gastlygem";
+    repo = pname;
+    rev = version;
+    sha256 = "16xwayr0rbp7xdg7bzmyf8s7al0dhkbmkcnil66ax7r8bznp5lmp";
+  };
+
+  propagatedBuildInputs = [ future ];
+
+  checkPhase = ''
+    ${python.interpreter} test.py
+  '';
+
+  meta = with lib; {
+    description = "A JUnit/xUnit Result XML Parser";
+    license = licenses.asl20;
+    homepage = https://github.com/gastlygem/junitparser;
+    maintainers = with maintainers; [ multun ];
+  };
+}
diff --git a/pkgs/development/python-modules/jupyter_console/default.nix b/pkgs/development/python-modules/jupyter_console/default.nix
index f8cf8b3076a..9200e004d0c 100644
--- a/pkgs/development/python-modules/jupyter_console/default.nix
+++ b/pkgs/development/python-modules/jupyter_console/default.nix
@@ -20,7 +20,6 @@ buildPythonPackage rec {
     sha256 = "308ce876354924fb6c540b41d5d6d08acfc946984bf0c97777c1ddcb42e0b2f5";
   };
 
-  checkInputs = [ nose ];
   propagatedBuildInputs = [
     jupyter_client
     ipython
@@ -28,6 +27,12 @@ buildPythonPackage rec {
     prompt_toolkit
     pygments
   ];
+  checkInputs = [ nose ];
+
+  postPatch = ''
+    substituteInPlace setup.py \
+      --replace "prompt_toolkit>=2.0.0,<2.1.0" "prompt_toolkit"
+  '';
 
   # ValueError: underlying buffer has been detached
   doCheck = false;
diff --git a/pkgs/development/python-modules/jupyterlab/default.nix b/pkgs/development/python-modules/jupyterlab/default.nix
index 520f342cc1d..32d3ad0bada 100644
--- a/pkgs/development/python-modules/jupyterlab/default.nix
+++ b/pkgs/development/python-modules/jupyterlab/default.nix
@@ -8,12 +8,12 @@
 
 buildPythonPackage rec {
   pname = "jupyterlab";
-  version = "1.2.3";
+  version = "1.2.4";
   disabled = pythonOlder "3.5";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "2188a9bcaaf0b6a68ff9098a481f37ece8231634b862fd3c9adedc466aac79f2";
+    sha256 = "6adb88acd05b51512c37df477a18c36240823a591c2a51bf6556198414026d8f";
   };
 
   propagatedBuildInputs = [ jupyterlab_server notebook ];
diff --git a/pkgs/development/python-modules/jupytext/default.nix b/pkgs/development/python-modules/jupytext/default.nix
index 2bb7e22b097..961eb43f03b 100644
--- a/pkgs/development/python-modules/jupytext/default.nix
+++ b/pkgs/development/python-modules/jupytext/default.nix
@@ -7,11 +7,11 @@
 
 buildPythonPackage rec {
   pname = "jupytext";
-  version = "1.2.4";
+  version = "1.3.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "490e1127033fceed5c49f7b1cde6aabffb059fe0a778a0e8b10d28d9eecef1f0";
+    sha256 = "132bad60c63debfb371a691cb6668a19938ec268599e9c49f1531a3bf0be7b1c";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/kconfiglib/default.nix b/pkgs/development/python-modules/kconfiglib/default.nix
index ace5b862825..b4d647c6075 100644
--- a/pkgs/development/python-modules/kconfiglib/default.nix
+++ b/pkgs/development/python-modules/kconfiglib/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "kconfiglib";
-  version = "13.2.0";
+  version = "13.7.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "045yjmn6xqbyb68l1jqlgi3c8cwlw1krsrlfwrrgjijkmbx6yqmd";
+    sha256 = "0dkfprrsds64d2jbqnwdzb4why84jaj968s3ccmyqg5385nr9fwd";
   };
 
   # doesnt work out of the box but might be possible
diff --git a/pkgs/development/python-modules/keyring/default.nix b/pkgs/development/python-modules/keyring/default.nix
index 65f8697e124..8f7ae56de04 100644
--- a/pkgs/development/python-modules/keyring/default.nix
+++ b/pkgs/development/python-modules/keyring/default.nix
@@ -1,27 +1,35 @@
-{ stdenv, buildPythonPackage, fetchPypi, isPy27
-, dbus-python, setuptools_scm, entrypoints, secretstorage
-, pytest, pytest-flake8 }:
+{ lib, stdenv, buildPythonPackage, fetchPypi, isPy27, pythonOlder
+, dbus-python
+, entrypoints
+, importlib-metadata
+, pytest
+, pytest-flake8
+, secretstorage
+, setuptools_scm
+}:
 
 buildPythonPackage rec {
   pname = "keyring";
-  version = "19.2.0";
+  version = "20.0.1";
   disabled = isPy27;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1cvlm48fggl12m19j9vcnrlplidr2sjf8h3pdyki58f9y357q0wi";
+    sha256 = "963bfa7f090269d30bdc5e25589e5fd9dad2cf2a7c6f176a7f2386910e5d0d8d";
   };
 
   nativeBuildInputs = [ setuptools_scm ];
 
   checkInputs = [ pytest pytest-flake8 ];
 
-  propagatedBuildInputs = [ dbus-python entrypoints ] ++ stdenv.lib.optional stdenv.isLinux secretstorage;
+  propagatedBuildInputs = [ dbus-python entrypoints ]
+  ++ lib.optional stdenv.isLinux secretstorage
+  ++ lib.optionals (pythonOlder "3.8") [ importlib-metadata ];
 
   # checks try to access a darwin path on linux
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Store and access your passwords safely";
     homepage    = "https://pypi.python.org/pypi/keyring";
     license     = licenses.psfl;
diff --git a/pkgs/development/python-modules/keyrings-alt/default.nix b/pkgs/development/python-modules/keyrings-alt/default.nix
index 3fe986fc335..aa873b63ab9 100644
--- a/pkgs/development/python-modules/keyrings-alt/default.nix
+++ b/pkgs/development/python-modules/keyrings-alt/default.nix
@@ -1,14 +1,15 @@
-{ stdenv, buildPythonPackage, fetchPypi, pythonOlder, six
+{ stdenv, buildPythonPackage, fetchPypi, pythonOlder, isPy27, six
 , pytest, backports_unittest-mock, keyring, setuptools_scm
 }:
 
 buildPythonPackage rec {
   pname = "keyrings.alt";
-  version = "3.1.1";
+  version = "3.4.0";
+  disabled = isPy27;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0lgp2d3hrpvbb2rfz18vrv5lrck72k3l2f2cpkbks2kigrfbgiqb";
+    sha256 = "91328ac4229e70b1d0061d21bf61d36b031a6b4828f2682e38c741812f6eb23d";
   };
 
   postPatch = ''
@@ -21,10 +22,16 @@ buildPythonPackage rec {
 
   checkInputs = [ pytest keyring ] ++ stdenv.lib.optional (pythonOlder "3.3") backports_unittest-mock;
 
+  # heavily relies on importing tests from keyring package
+  doCheck = false;
   checkPhase = ''
     py.test
   '';
 
+  pythonImportsCheck = [
+    "keyrings.alt"
+  ];
+
   meta = with stdenv.lib; {
     license = licenses.mit;
     description = "Alternate keyring implementations";
diff --git a/pkgs/development/python-modules/koji/default.nix b/pkgs/development/python-modules/koji/default.nix
index 47c42a1df45..aec1916c1ff 100644
--- a/pkgs/development/python-modules/koji/default.nix
+++ b/pkgs/development/python-modules/koji/default.nix
@@ -15,7 +15,7 @@ buildPythonPackage rec {
   # Judging from SyntaxError
   disabled = isPy3k;
 
-  makeFlags = "DESTDIR=$(out)";
+  makeFlags = [ "DESTDIR=$(out)" ];
 
   postInstall = ''
     mv $out/usr/* $out/
diff --git a/pkgs/development/python-modules/labelbox/default.nix b/pkgs/development/python-modules/labelbox/default.nix
index 18578da764e..c8279835c92 100644
--- a/pkgs/development/python-modules/labelbox/default.nix
+++ b/pkgs/development/python-modules/labelbox/default.nix
@@ -10,11 +10,11 @@
 
 buildPythonPackage rec {
   pname = "labelbox";
-  version = "2.1";
+  version = "2.3";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "f97f01bf030b115d8b7f7b12a10ec5efe54750ad66b6b3567550b517a543ad11";
+    sha256 = "6b515dc29329e8a3adac9d6b4fef84d80c513743be57ae66b54bcb30060172c6";
   };
 
   propagatedBuildInputs = [ jinja2 requests pillow rasterio shapely ];
diff --git a/pkgs/development/python-modules/leveldb/default.nix b/pkgs/development/python-modules/leveldb/default.nix
index 4d6336ce757..212f13d00cf 100644
--- a/pkgs/development/python-modules/leveldb/default.nix
+++ b/pkgs/development/python-modules/leveldb/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "leveldb";
-  version = "0.194";
+  version = "0.201";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0f6d1y65k6miimic82n8zsx50z9k982mvzp90crwcv1knjrphcww";
+    sha256 = "1cffe776842917e09f073bd6ea5856c64136aebddbe51bd17ea29913472fecbf";
   };
 
   meta = with lib; {
diff --git a/pkgs/development/python-modules/libcloud/default.nix b/pkgs/development/python-modules/libcloud/default.nix
index 381c3a2731a..3d505166e4a 100644
--- a/pkgs/development/python-modules/libcloud/default.nix
+++ b/pkgs/development/python-modules/libcloud/default.nix
@@ -1,32 +1,34 @@
-{ stdenv
+{ lib
 , buildPythonPackage
 , fetchPypi
+, isPy27
 , mock
 , pycrypto
 , requests
 , pytestrunner
 , pytest
 , requests-mock
+, typing
 }:
 
 buildPythonPackage rec {
   pname = "apache-libcloud";
-  version = "2.6.1";
+  version = "2.7.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "fcc165f2cc2db9a379c6d3a17b3beb9081bb64ba5c0bf7bbb58da864810092f0";
+    sha256 = "29ee7d13b9b12d1335e752a489c01eed0c270940147f418cfff89ab66faf1305";
   };
 
   checkInputs = [ mock pytest pytestrunner requests-mock ];
-  propagatedBuildInputs = [ pycrypto requests ];
+  propagatedBuildInputs = [ pycrypto requests ] ++ lib.optionals isPy27 [ typing ];
 
   preConfigure = "cp libcloud/test/secrets.py-dist libcloud/test/secrets.py";
 
   # requires a certificates file
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "A unified interface to many cloud providers";
     homepage = http://incubator.apache.org/libcloud/;
     license = licenses.asl20;
diff --git a/pkgs/development/python-modules/limits/default.nix b/pkgs/development/python-modules/limits/default.nix
index 57f47ff5fd8..614945d1364 100644
--- a/pkgs/development/python-modules/limits/default.nix
+++ b/pkgs/development/python-modules/limits/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "limits";
-  version = "1.3";
+  version = "1.4.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "a017b8d9e9da6761f4574642149c337f8f540d4edfe573fb91ad2c4001a2bc76";
+    sha256 = "c071295307c447f85aaa3c3ab3ce058e29d67010f4fabf278a8e163916e4deab";
   };
 
   propagatedBuildInputs = [ six ];
diff --git a/pkgs/development/python-modules/limnoria/default.nix b/pkgs/development/python-modules/limnoria/default.nix
index 9bcc95ddc30..7cd3ef85822 100644
--- a/pkgs/development/python-modules/limnoria/default.nix
+++ b/pkgs/development/python-modules/limnoria/default.nix
@@ -6,11 +6,11 @@
 
 buildPythonPackage rec {
   pname = "limnoria";
-  version = "2019.11.09";
+  version = "2019.11.22";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1ni25jmri0928jj2c24xw5f2fzljjla54zh80fimks1aa5752j29";
+    sha256 = "6ccc6906fd644444a1edd0984d10bddf5abf4dd91c94eeeaa4660f7dc3eca320";
   };
 
   patchPhase = ''
diff --git a/pkgs/development/python-modules/lmdb/default.nix b/pkgs/development/python-modules/lmdb/default.nix
index 13adad603d1..5f31511451d 100644
--- a/pkgs/development/python-modules/lmdb/default.nix
+++ b/pkgs/development/python-modules/lmdb/default.nix
@@ -7,11 +7,11 @@
 
 buildPythonPackage rec {
   pname = "lmdb";
-  version = "0.97";
+  version = "0.98";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0jw3n14x6qg5wps2w4qkqf4pyan949h1s2nbkrz2qh7xwnnp2g8p";
+    sha256 = "0625bc28bf0893e6000a83be7234f915ca078c32f9e73d8ae48b3508db7af708";
   };
 
   checkInputs = [ pytest cffi ];
diff --git a/pkgs/development/python-modules/lmtpd/default.nix b/pkgs/development/python-modules/lmtpd/default.nix
index bc91139728b..d05acd21c10 100644
--- a/pkgs/development/python-modules/lmtpd/default.nix
+++ b/pkgs/development/python-modules/lmtpd/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "lmtpd";
-  version = "6.0.0";
+  version = "6.1.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "192d1j9lj9i6f4llwg51817am4jj8pjvlqmkx03spmsay6f832bm";
+    sha256 = "256e23a3292818ecccf9a76ef52e0064c6f7e1f8602904e15337c8917ed0fafe";
   };
 
   meta = with stdenv.lib; {
diff --git a/pkgs/development/python-modules/logilab/common.nix b/pkgs/development/python-modules/logilab/common.nix
index 99ff8d45e6a..8a23b69cf67 100644
--- a/pkgs/development/python-modules/logilab/common.nix
+++ b/pkgs/development/python-modules/logilab/common.nix
@@ -1,12 +1,13 @@
-{ stdenv, buildPythonPackage, fetchPypi, unittest2, six }:
+{ stdenv, buildPythonPackage, fetchPypi, isPy27, unittest2, six }:
 
 buildPythonPackage rec {
   pname = "logilab-common";
-  version = "1.4.4";
+  version = "1.5.2";
+  disabled = isPy27;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "8c1bf26431a3b487940cd4a7c0eefde328f5ff7098222ee695805752dae94aa6";
+    sha256 = "1n20znamai7jksimbdshy03rgw235qwa9vbx3lyajzwysblq4s4d";
   };
 
   propagatedBuildInputs = [ unittest2 six ];
diff --git a/pkgs/development/python-modules/loguru/default.nix b/pkgs/development/python-modules/loguru/default.nix
index 67134fdfd95..ceb9f841a46 100644
--- a/pkgs/development/python-modules/loguru/default.nix
+++ b/pkgs/development/python-modules/loguru/default.nix
@@ -1,21 +1,21 @@
-{ lib, buildPythonPackage, fetchPypi, isPy27, pytest, colorama }:
+{ stdenv, buildPythonPackage, fetchPypi, isPy27, colorama, pytestCheckHook }:
 
 buildPythonPackage rec {
   pname = "loguru";
-  version = "0.3.2";
+  version = "0.4.0";
   
   disabled = isPy27;
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0apd3wcjbyhwzgw0fgzzn4dcgy10pqa8f1vf58d4hmszxvyqn4z3";
+    sha256 = "d5ddf363b7e0e562652f283f74a89bf35601baf16b70f2cd2736a2f8c6638748";
   };
 
-  checkInputs = [ pytest colorama ];
-  checkPhase = ''
-    pytest -k 'not test_time_rotation_reopening'
-  '';
+  checkInputs = [ pytestCheckHook colorama ];
 
-  meta = with lib; {
+  disabledTests = [ "test_time_rotation_reopening" "test_file_buffering" ]
+    ++ stdenv.lib.optionals stdenv.isDarwin [ "test_rotation_and_retention" "test_rotation_and_retention_timed_file" "test_renaming" ];
+
+  meta = with stdenv.lib; {
     homepage = https://github.com/Delgan/loguru;
     description = "Python logging made (stupidly) simple";
     license = licenses.mit;
diff --git a/pkgs/development/python-modules/m2crypto/default.nix b/pkgs/development/python-modules/m2crypto/default.nix
index 56e1de49f20..0ccf55e5bc4 100644
--- a/pkgs/development/python-modules/m2crypto/default.nix
+++ b/pkgs/development/python-modules/m2crypto/default.nix
@@ -25,7 +25,7 @@ buildPythonPackage rec {
       sha256 = "0z5qnkndg6ma5f5qqrid5m95i9kybsr000v3fdy1ab562kf65a27";
     })
   ];
-  patchFlags = "-p0";
+  patchFlags = [ "-p0" ];
 
   nativeBuildInputs = [ swig2 ];
   buildInputs = [ swig2 openssl ];
diff --git a/pkgs/development/python-modules/magic-wormhole-mailbox-server/default.nix b/pkgs/development/python-modules/magic-wormhole-mailbox-server/default.nix
index e2662e7e5dd..28d09672584 100644
--- a/pkgs/development/python-modules/magic-wormhole-mailbox-server/default.nix
+++ b/pkgs/development/python-modules/magic-wormhole-mailbox-server/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi, six, attrs, twisted, pyopenssl, service-identity, autobahn, treq, mock }:
+{ stdenv, buildPythonPackage, fetchPypi, isPy27, six, attrs, twisted, pyopenssl, service-identity, autobahn, treq, mock, pytest }:
 
 buildPythonPackage rec {
   version = "0.4.1";
@@ -10,10 +10,12 @@ buildPythonPackage rec {
   };
 
   propagatedBuildInputs = [ six attrs twisted pyopenssl service-identity autobahn ];
-  checkInputs = [ treq mock ];
 
+  # zope.interface import issue
+  doCheck = !isPy27;
+  checkInputs = [ treq mock pytest ];
   checkPhase = ''
-    trial wormhole_mailbox_server
+    pytest
   '';
 
   meta = with stdenv.lib; {
diff --git a/pkgs/development/python-modules/magic-wormhole/default.nix b/pkgs/development/python-modules/magic-wormhole/default.nix
index 557d3f157ed..5db5c28a4cb 100644
--- a/pkgs/development/python-modules/magic-wormhole/default.nix
+++ b/pkgs/development/python-modules/magic-wormhole/default.nix
@@ -1,6 +1,7 @@
 { stdenv
 , buildPythonPackage
 , fetchPypi
+, isPy27
 , spake2
 , pynacl
 , six
@@ -18,7 +19,6 @@
 , mock
 , magic-wormhole-transit-relay
 , magic-wormhole-mailbox-server
-, isPy27
 }:
 
 buildPythonPackage rec {
@@ -42,6 +42,8 @@ buildPythonPackage rec {
     install -Dm644 docs/wormhole.1 $out/share/man/man1/wormhole.1
   '';
 
+  # zope.interface issue
+  doCheck = !isPy27;
   preCheck = ''
     export PATH=$out/bin:$PATH
     export LANG="en_US.UTF-8"
diff --git a/pkgs/development/python-modules/marionette-harness/mozdevice.nix b/pkgs/development/python-modules/marionette-harness/mozdevice.nix
index 8954f579c7f..9b521689936 100644
--- a/pkgs/development/python-modules/marionette-harness/mozdevice.nix
+++ b/pkgs/development/python-modules/marionette-harness/mozdevice.nix
@@ -1,6 +1,7 @@
 { lib
 , buildPythonPackage
 , fetchPypi
+, mozlog
 , moznetwork
 , mozprocess
 }:
@@ -16,7 +17,7 @@ buildPythonPackage rec {
     format = "wheel";
   };
 
-  propagatedBuildInputs = [ moznetwork mozprocess ];
+  propagatedBuildInputs = [ mozlog moznetwork mozprocess ];
 
   meta = {
     description = "Mozilla-authored device management";
diff --git a/pkgs/development/python-modules/marionette-harness/mozprofile.nix b/pkgs/development/python-modules/marionette-harness/mozprofile.nix
index 9c8e10c7fd0..dda9e07d5e5 100644
--- a/pkgs/development/python-modules/marionette-harness/mozprofile.nix
+++ b/pkgs/development/python-modules/marionette-harness/mozprofile.nix
@@ -16,7 +16,9 @@ buildPythonPackage rec {
     sha256 = "09l18x72vahq7il9nj6qj7la2d21vvbcn9szlm3vsvsbkz68w0yk";
   };
 
-  propagatedBuildInputs = [ mozlog mozfile mozhttpd wptserve ];
+  propagatedBuildInputs = [ mozlog mozfile mozhttpd ];
+
+  checkInputs = [ wptserve ];
 
   meta = {
     description = "Mozilla application profile handling library";
diff --git a/pkgs/development/python-modules/marshmallow-sqlalchemy/default.nix b/pkgs/development/python-modules/marshmallow-sqlalchemy/default.nix
index 76e641bae2c..2f85c33e757 100644
--- a/pkgs/development/python-modules/marshmallow-sqlalchemy/default.nix
+++ b/pkgs/development/python-modules/marshmallow-sqlalchemy/default.nix
@@ -4,7 +4,7 @@
 
 buildPythonPackage rec {
   pname = "marshmallow-sqlalchemy";
-  version = "0.19.0";
+  version = "0.21.0";
 
   meta = {
     homepage = "https://github.com/marshmallow-code/marshmallow-sqlalchemy";
@@ -14,7 +14,7 @@ buildPythonPackage rec {
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "175ydlxmj8pbkrv3wcrsd9jg7smnxhln2y0i691yafhidxgy8fmm";
+    sha256 = "93fd8fad2b33d92a1ae58328eeb0f39ed174858d82f9e7084a174df7b41fd3a4";
   };
 
   propagatedBuildInputs = [ marshmallow sqlalchemy ];
diff --git a/pkgs/development/python-modules/marshmallow/default.nix b/pkgs/development/python-modules/marshmallow/default.nix
index 5b07fe24441..7b7cadc9889 100644
--- a/pkgs/development/python-modules/marshmallow/default.nix
+++ b/pkgs/development/python-modules/marshmallow/default.nix
@@ -1,10 +1,11 @@
 { lib, buildPythonPackage, fetchPypi,
-  dateutil, simplejson
+  dateutil, simplejson, isPy27
 }:
 
 buildPythonPackage rec {
   pname = "marshmallow";
-  version = "3.2.2";
+  version = "3.3.0";
+  disabled = isPy27;
 
   meta = {
     homepage = "https://github.com/marshmallow-code/marshmallow";
@@ -17,7 +18,7 @@ buildPythonPackage rec {
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1a358beb89c2b4d5555272065a9533591a3eb02f1b854f3c4002d88d8f2a1ddb";
+    sha256 = "0ba81b6da4ae69eb229b74b3c741ff13fe04fb899824377b1aff5aaa1a9fd46e";
   };
 
   propagatedBuildInputs = [ dateutil simplejson ];
diff --git a/pkgs/development/python-modules/mautrix-appservice/0001-Remove-coding-annotations.patch b/pkgs/development/python-modules/mautrix-appservice/0001-Remove-coding-annotations.patch
deleted file mode 100644
index d00264efe8c..00000000000
--- a/pkgs/development/python-modules/mautrix-appservice/0001-Remove-coding-annotations.patch
+++ /dev/null
@@ -1,53 +0,0 @@
-From 6750cda26821f703b120ba5c925cc696200570d3 Mon Sep 17 00:00:00 2001
-From: Maximilian Bosch <maximilian@mbosch.me>
-Date: Sat, 26 Oct 2019 10:31:02 +0200
-Subject: [PATCH] Remove coding annotations
-
-Those used to be needed for Python <=3.5. With `pluggy` 0.13.0 this breaks
-tests on newer python3 versions.
----
- mautrix_appservice/appservice.py  | 1 -
- mautrix_appservice/errors.py      | 1 -
- mautrix_appservice/intent_api.py  | 1 -
- mautrix_appservice/state_store.py | 1 -
- 4 files changed, 4 deletions(-)
-
-diff --git a/mautrix_appservice/appservice.py b/mautrix_appservice/appservice.py
-index 3a141b1..47e37fe 100644
---- a/mautrix_appservice/appservice.py
-+++ b/mautrix_appservice/appservice.py
-@@ -1,4 +1,3 @@
--# -*- coding: future_fstrings -*-
- # Partly based on github.com/Cadair/python-appservice-framework (MIT license)
- from contextlib import contextmanager
- from typing import Optional, Callable, Awaitable, Union
-diff --git a/mautrix_appservice/errors.py b/mautrix_appservice/errors.py
-index 90d040f..702f541 100644
---- a/mautrix_appservice/errors.py
-+++ b/mautrix_appservice/errors.py
-@@ -1,4 +1,3 @@
--# -*- coding: future_fstrings -*-
- from typing import Optional
- 
- 
-diff --git a/mautrix_appservice/intent_api.py b/mautrix_appservice/intent_api.py
-index 4021bf8..7236cbb 100644
---- a/mautrix_appservice/intent_api.py
-+++ b/mautrix_appservice/intent_api.py
-@@ -1,4 +1,3 @@
--# -*- coding: future_fstrings -*-
- from urllib.parse import quote as urllib_quote
- from time import time
- from json.decoder import JSONDecodeError
-diff --git a/mautrix_appservice/state_store.py b/mautrix_appservice/state_store.py
-index 47bb970..6ebec2a 100644
---- a/mautrix_appservice/state_store.py
-+++ b/mautrix_appservice/state_store.py
-@@ -1,4 +1,3 @@
--# -*- coding: future_fstrings -*-
- from typing import Optional
- from abc import ABC, abstractmethod
- import json
--- 
-2.23.0
-
diff --git a/pkgs/development/python-modules/mautrix-appservice/default.nix b/pkgs/development/python-modules/mautrix-appservice/default.nix
deleted file mode 100644
index 41ad167929a..00000000000
--- a/pkgs/development/python-modules/mautrix-appservice/default.nix
+++ /dev/null
@@ -1,32 +0,0 @@
-{ lib, buildPythonPackage, fetchPypi, aiohttp, future-fstrings, pythonOlder }:
-
-buildPythonPackage rec {
-  pname = "mautrix-appservice";
-  version = "0.3.11";
-
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "60192920cff75afdd096eea3a43276e33ec15f4f00bd04d2d1dda616c84f22a5";
-  };
-
-  patches = lib.optional (!(pythonOlder "3.6")) [
-    ./0001-Remove-coding-annotations.patch
-  ];
-
-  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/mautrix/default.nix b/pkgs/development/python-modules/mautrix/default.nix
new file mode 100644
index 00000000000..d3b12d5ab60
--- /dev/null
+++ b/pkgs/development/python-modules/mautrix/default.nix
@@ -0,0 +1,43 @@
+{ lib, buildPythonPackage, fetchPypi, aiohttp, future-fstrings, pythonOlder
+, sqlalchemy, ruamel_yaml, CommonMark, lxml, fetchpatch
+}:
+
+buildPythonPackage rec {
+  pname = "mautrix";
+  version = "0.4.0";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "03m59d683nr547v5xr80wc3j07das2d2sc3i4bf03dpbkfg0h17w";
+  };
+
+  patches = [
+    (fetchpatch {
+      url = "https://github.com/tulir/mautrix-python/commit/ac46f3bb1bea11d22d8a486cc4821604c844da5e.patch";
+      sha256 = "198g63s0iv8g1w22g4g5hb54y41ws82wraglibz33qhrwsfn8axn";
+    })
+  ];
+
+  propagatedBuildInputs = [
+    aiohttp
+    future-fstrings
+
+    # defined in optional-requirements.txt
+    sqlalchemy
+    ruamel_yaml
+    CommonMark
+    lxml
+  ];
+
+  disabled = pythonOlder "3.5";
+
+  # no tests available
+  doCheck = false;
+
+  meta = with lib; {
+    homepage = https://github.com/tulir/mautrix-python;
+    description = "A Python 3 asyncio Matrix framework.";
+    license = licenses.mpl20;
+    maintainers = with maintainers; [ nyanloutre ma27 ];
+  };
+}
diff --git a/pkgs/development/python-modules/maxminddb/default.nix b/pkgs/development/python-modules/maxminddb/default.nix
index 645ecddd163..6556ade818a 100644
--- a/pkgs/development/python-modules/maxminddb/default.nix
+++ b/pkgs/development/python-modules/maxminddb/default.nix
@@ -5,12 +5,12 @@
 }:
 
 buildPythonPackage rec {
-  version = "1.5.1";
+  version = "1.5.2";
   pname = "maxminddb";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0y9giw81k4wdmpryr4k42w50z292mf364a6vs1vxf83ksc9ig6j4";
+    sha256 = "d0ce131d901eb11669996b49a59f410efd3da2c6dbe2c0094fe2fef8d85b6336";
   };
 
   propagatedBuildInputs = [ ipaddress ];
diff --git a/pkgs/development/python-modules/measurement/default.nix b/pkgs/development/python-modules/measurement/default.nix
index b342086d655..260d6262102 100644
--- a/pkgs/development/python-modules/measurement/default.nix
+++ b/pkgs/development/python-modules/measurement/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "measurement";
-  version = "2.0.1";
+  version = "3.2.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "36ca385ffdccf140a75a7e1d816a4df97a6dd255f16fd2f53dd7ab43632a8835";
+    sha256 = "352b20f7f0e553236af7c5ed48d091a51cf26061c1a063f46b31706ff7c0d57a";
   };
 
   propagatedBuildInputs = [ pbr six sympy ];
diff --git a/pkgs/development/python-modules/mecab-python3/default.nix b/pkgs/development/python-modules/mecab-python3/default.nix
index df691fb05c8..263a71254ed 100644
--- a/pkgs/development/python-modules/mecab-python3/default.nix
+++ b/pkgs/development/python-modules/mecab-python3/default.nix
@@ -8,11 +8,11 @@
 
 buildPythonPackage rec {
   pname = "mecab-python3";
-  version = "0.996.2";
+  version = "0.996.3";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "a80383fba343dad247b486a9afa486b7f0ec6244cb8bbf2d6a24d2fab5f19180";
+    sha256 = "1cedc968ef5bcbb2a6ece3bb4eb26e9569d89f3277dc2066ea0ce1341ab7d3b9";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/mechanize/default.nix b/pkgs/development/python-modules/mechanize/default.nix
index 9669bcc30e7..1d63a6e2b6a 100644
--- a/pkgs/development/python-modules/mechanize/default.nix
+++ b/pkgs/development/python-modules/mechanize/default.nix
@@ -6,11 +6,11 @@
 
 buildPythonPackage rec {
   pname = "mechanize";
-  version = "0.4.4";
+  version = "0.4.5";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "9fff89e973bdf1aee75a351bd4dde53ca51a7e76944ddeae3ea3b6ad6c46045c";
+    sha256 = "6355c11141f6d4b54a17fc2106944806b5db2711e60b120d15d83db438c333fd";
   };
 
   propagatedBuildInputs = [ html5lib ];
diff --git a/pkgs/development/python-modules/mlrose/default.nix b/pkgs/development/python-modules/mlrose/default.nix
index 6222921db74..5fd39d9b347 100644
--- a/pkgs/development/python-modules/mlrose/default.nix
+++ b/pkgs/development/python-modules/mlrose/default.nix
@@ -2,12 +2,12 @@
 
 buildPythonPackage rec {
   pname = "mlrose";
-  version = "1.2.0";
+  version = "1.3.0";
   disabled = isPy27;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0vsvqrf1wbbj8i198rqd87hf8rlq7fmv8mmibv8f9rhj0w8729p5";
+    sha256 = "cec83253bf6da67a7fb32b2c9ae13e9dbc6cfbcaae2aa3107993e69e9788f15e";
   };
 
   propagatedBuildInputs = [ scikitlearn ];
diff --git a/pkgs/development/python-modules/mockito/default.nix b/pkgs/development/python-modules/mockito/default.nix
index bfef79b0f72..f0673b64ef3 100644
--- a/pkgs/development/python-modules/mockito/default.nix
+++ b/pkgs/development/python-modules/mockito/default.nix
@@ -1,20 +1,19 @@
 { stdenv, buildPythonPackage, fetchPypi, isPy3k, funcsigs, pytest, numpy }:
 
 buildPythonPackage rec {
-  version = "1.1.1";
+  version = "1.2.0";
   pname = "mockito";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "142f5e8865a422ad2d67b9c67a382e3296e8f1633dbccd0e322180fba7d5303d";
+    sha256 = "2a1cbae9d0aef4ae7586b03f2a463e8c5ba96aa937c0535ced4a5621f851feeb";
   };
 
-  # Failing tests due 2to3
-  doCheck = !isPy3k;
-
   propagatedBuildInputs = stdenv.lib.optionals (!isPy3k) [ funcsigs ];
   checkInputs = [ pytest numpy ];
 
+  # tests are no longer packaged in pypi tarball
+  doCheck = false;
   checkPhase = ''
     pytest
   '';
diff --git a/pkgs/development/python-modules/monty/default.nix b/pkgs/development/python-modules/monty/default.nix
index 361be1bf184..427f0af4573 100644
--- a/pkgs/development/python-modules/monty/default.nix
+++ b/pkgs/development/python-modules/monty/default.nix
@@ -1,6 +1,7 @@
 { lib
 , buildPythonPackage
 , fetchFromGitHub
+, isPy27
 , nose
 , numpy
 , six
@@ -15,6 +16,7 @@
 buildPythonPackage rec {
   pname = "monty";
   version = "3.0.2";
+  disabled = isPy27; # uses type annotations
 
   # No tests in Pypi
   src = fetchFromGitHub {
diff --git a/pkgs/development/python-modules/more-itertools/default.nix b/pkgs/development/python-modules/more-itertools/default.nix
index ad41043496a..37152b3a502 100644
--- a/pkgs/development/python-modules/more-itertools/default.nix
+++ b/pkgs/development/python-modules/more-itertools/default.nix
@@ -9,11 +9,11 @@
 
 buildPythonPackage rec {
   pname = "more-itertools";
-  version = "7.2.0";
+  version = "8.0.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "409cd48d4db7052af495b09dec721011634af3753ae1ef92d2b32f73a745f832";
+    sha256 = "b84b238cce0d9adad5ed87e745778d20a3f8487d0f0cb8b8a586816c7496458d";
   };
 
   checkInputs = [ nose ];
diff --git a/pkgs/development/python-modules/moto/default.nix b/pkgs/development/python-modules/moto/default.nix
index 500645b81e8..cb1bb6dd980 100644
--- a/pkgs/development/python-modules/moto/default.nix
+++ b/pkgs/development/python-modules/moto/default.nix
@@ -22,30 +22,18 @@
 , sure
 , werkzeug
 , xmltodict
-, isPy38
+, parameterized
 }:
 
 buildPythonPackage rec {
   pname = "moto";
-  version = "1.3.13";
+  version = "1.3.14";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0rhbjvqi1khp80gfnl3x632kwlpq3k7m8f13nidznixdpa78vm4m";
+    sha256 = "0fm09074qic24h8rw9a0paklygyb7xd0ch4890y4v8lj2pnsxbkr";
   };
 
-  # 3.8 is not yet support
-  # https://github.com/spulec/moto/pull/2519
-  disabled = isPy38;
-
-  # Backported fix from 1.3.14.dev for compatibility with botocore >= 1.9.198.
-  patches = [
-    (fetchpatch {
-      url = "https://github.com/spulec/moto/commit/e4a4e6183560489e98b95e815b439c7a1cf3566c.diff";
-      sha256 = "1fixr7riimnldiikv33z4jwjgcsccps0c6iif40x8wmpvgcfs0cb";
-    })
-  ];
-
   postPatch = ''
     substituteInPlace setup.py \
       --replace "jsondiff==1.1.2" "jsondiff~=1.1"
@@ -74,13 +62,21 @@ buildPythonPackage rec {
     xmltodict
   ] ++ lib.optionals isPy27 [ backports_tempfile ];
 
-  checkInputs = [ boto3 freezegun nose sure ];
+  checkInputs = [ boto3 freezegun nose sure parameterized ];
 
-  checkPhase = ''nosetests -v ./tests/ \
-                  -e test_invoke_function_from_sns \
-                  -e test_invoke_requestresponse_function \
-                  -e test_context_manager \
-                  -e test_decorator_start_and_stop'';
+  checkPhase = ''
+    nosetests -v ./tests/ \
+              -e test_invoke_function_from_sns \
+              -e test_invoke_requestresponse_function \
+              -e test_context_manager \
+              -e test_decorator_start_and_stop \
+              -e test_invoke_event_function \
+              -e test_invoke_function_from_dynamodb \
+              -e test_invoke_function_from_sqs \
+              -e test_invoke_lambda_error \
+              -e test_invoke_async_function \
+              -e test_passthrough_requests
+  '';
 
   meta = with lib; {
     description = "Allows your tests to easily mock out AWS Services";
diff --git a/pkgs/development/python-modules/msal-extensions/default.nix b/pkgs/development/python-modules/msal-extensions/default.nix
new file mode 100644
index 00000000000..c866382b103
--- /dev/null
+++ b/pkgs/development/python-modules/msal-extensions/default.nix
@@ -0,0 +1,35 @@
+{ buildPythonPackage
+, fetchPypi
+, lib
+
+# pythonPackages
+, msal
+, portalocker
+}:
+
+buildPythonPackage rec {
+  pname = "msal-extensions";
+  version = "0.1.3";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1p05cbfksnhijx1il7s24js2ydzgxbpiasf607qdpb5sljlp3qar";
+  };
+
+  propagatedBuildInputs = [
+    msal
+    portalocker
+  ];
+
+  # No tests found
+  doCheck = false;
+
+  meta = with lib; {
+    description = "The Microsoft Authentication Library Extensions (MSAL-Extensions) for Python";
+    homepage = "https://github.com/AzureAD/microsoft-authentication-library-for-python";
+    license = licenses.mit;
+    maintainers = with maintainers; [
+      kamadorueda
+    ];
+  };
+}
diff --git a/pkgs/development/python-modules/msal/default.nix b/pkgs/development/python-modules/msal/default.nix
new file mode 100644
index 00000000000..6f2566c2c1c
--- /dev/null
+++ b/pkgs/development/python-modules/msal/default.nix
@@ -0,0 +1,36 @@
+{ buildPythonPackage
+, fetchPypi
+, lib
+
+# pythonPackages
+, pyjwt
+, requests
+}:
+
+buildPythonPackage rec {
+  pname = "msal";
+  version = "1.0.0";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "0h33wayvakggr684spdyhiqvrwraavcbk3phmcbavb3zqxd3zgpc";
+  };
+
+  propagatedBuildInputs = [
+    pyjwt
+    requests
+  ];
+
+  # Tests assume Network Connectivity:
+  #   https://github.com/AzureAD/microsoft-authentication-library-for-python/blob/e2958961e8ec16d0af4199f60c36c3f913497e48/tests/test_authority.py#L73
+  doCheck = false;
+
+  meta = with lib; {
+    description = "The Microsoft Authentication Library (MSAL) for Python library enables your app to access the Microsoft Cloud by supporting authentication of users with Microsoft Azure Active Directory accounts (AAD) and Microsoft Accounts (MSA) using industry standard OAuth2 and OpenID Connect";
+    homepage = "https://github.com/AzureAD/microsoft-authentication-library-for-python";
+    license = licenses.mit;
+    maintainers = with maintainers; [
+      kamadorueda
+    ];
+  };
+}
diff --git a/pkgs/development/python-modules/msrestazure/default.nix b/pkgs/development/python-modules/msrestazure/default.nix
index a820dd89f51..04f7428e6b6 100644
--- a/pkgs/development/python-modules/msrestazure/default.nix
+++ b/pkgs/development/python-modules/msrestazure/default.nix
@@ -27,7 +27,7 @@ buildPythonPackage rec {
   propagatedBuildInputs = [ adal msrest ];
 
   checkInputs = [ httpretty mock pytest ]
-                ++ lib.optional isPy3k [ pytest-asyncio ];
+                ++ lib.optionals isPy3k [ pytest-asyncio ];
 
   checkPhase = ''
     pytest tests/
diff --git a/pkgs/development/python-modules/mt-940/default.nix b/pkgs/development/python-modules/mt-940/default.nix
index e7f382f8ac7..f31bb4c064e 100644
--- a/pkgs/development/python-modules/mt-940/default.nix
+++ b/pkgs/development/python-modules/mt-940/default.nix
@@ -3,12 +3,12 @@
 }:
 
 buildPythonPackage rec {
-  version = "4.18.0";
+  version = "4.19.0";
   pname = "mt-940";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "e5b6469e9bc64522125efae1de0e557f76884c961f122028098533d6f2a98f23";
+    sha256 = "5d109e8dc4b490a4b92ec0153713710eb067b36b350ce1ff60c406afddc7d3cd";
   };
 
   propagatedBuildInputs = lib.optional (!isPy3k) enum34;
diff --git a/pkgs/development/python-modules/multidict/default.nix b/pkgs/development/python-modules/multidict/default.nix
index 1539592dc6b..4673f841ee3 100644
--- a/pkgs/development/python-modules/multidict/default.nix
+++ b/pkgs/development/python-modules/multidict/default.nix
@@ -8,11 +8,11 @@
 
 buildPythonPackage rec {
   pname = "multidict";
-  version = "4.5.2";
+  version = "4.7.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "024b8129695a952ebd93373e45b5d341dbb87c17ce49637b34000093f243dd4f";
+    sha256 = "d4dafdcfbf0ac80fc5f00603f0ce43e487c654ae34a656e4749f175d9832b1b5";
   };
 
   checkInputs = [ pytest pytestrunner pytestcov ];
diff --git a/pkgs/development/python-modules/munch/default.nix b/pkgs/development/python-modules/munch/default.nix
index f4ecc2ff306..764523e0cf7 100644
--- a/pkgs/development/python-modules/munch/default.nix
+++ b/pkgs/development/python-modules/munch/default.nix
@@ -2,18 +2,19 @@
 , buildPythonPackage
 , fetchPypi
 , six
+, pbr
 }:
 
 buildPythonPackage rec {
   pname = "munch";
-  version = "2.3.2";
+  version = "2.5.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "6ae3d26b837feacf732fb8aa5b842130da1daf221f5af9f9d4b2a0a6414b0d51";
+    sha256 = "2d735f6f24d4dba3417fa448cae40c6e896ec1fdab6cdb5e6510999758a4dbd2";
   };
 
-  propagatedBuildInputs = [ six ];
+  propagatedBuildInputs = [ six pbr ];
 
   # No tests in archive
   doCheck = false;
diff --git a/pkgs/development/python-modules/mypy/default.nix b/pkgs/development/python-modules/mypy/default.nix
index b2731f5bb62..90b00ba1717 100644
--- a/pkgs/development/python-modules/mypy/default.nix
+++ b/pkgs/development/python-modules/mypy/default.nix
@@ -5,12 +5,12 @@
 
 buildPythonPackage rec {
   pname = "mypy";
-  version = "0.750";
+  version = "0.761";
   disabled = !isPy3k;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0k0l74g3jcq7ppzn234sffsaacn6qaq242famckk0cviwgld1jvf";
+    sha256 = "1gw7h84d21wmi267kmgqs9whz0l7rp62pzja2f31wq7cfj6spfl5";
   };
 
   propagatedBuildInputs = [ typed-ast psutil mypy-extensions typing-extensions ];
diff --git a/pkgs/development/python-modules/nagiosplugin/default.nix b/pkgs/development/python-modules/nagiosplugin/default.nix
new file mode 100644
index 00000000000..ef46e7ccafd
--- /dev/null
+++ b/pkgs/development/python-modules/nagiosplugin/default.nix
@@ -0,0 +1,32 @@
+{ lib
+, buildPythonPackage
+, twine
+, numpy
+, pytest
+, fetchPypi
+}:
+
+buildPythonPackage rec {
+  pname = "nagiosplugin";
+  version = "1.3.2";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1vr3zy0zfvbrqc4nf81zxv4gs2q82sv5sjamdm4573ld529mk2nv";
+  };
+
+  nativeBuildInputs = [ twine ];
+  checkInputs = [ pytest numpy ];
+
+  checkPhase = ''
+    # this test relies on who, which does not work in the sandbox
+    pytest -k "not test_check_users" tests/
+  '';
+
+  meta = with lib; {
+    description = "A Python class library which helps with writing Nagios (Icinga) compatible plugins";
+    homepage =  https://github.com/mpounsett/nagiosplugin;
+    license = licenses.zpl21;
+    maintainers = with maintainers; [ symphorien ];
+  };
+}
diff --git a/pkgs/development/python-modules/nameparser/default.nix b/pkgs/development/python-modules/nameparser/default.nix
index e8d2c209eb5..984304e9ccb 100644
--- a/pkgs/development/python-modules/nameparser/default.nix
+++ b/pkgs/development/python-modules/nameparser/default.nix
@@ -6,11 +6,11 @@
 
 buildPythonPackage rec {
   pname = "nameparser";
-  version = "1.0.4";
+  version = "1.0.5";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1kc2phcz22r7vim3hmq0vrp2zqxl6v49hq40jmp4p81pdvgh5c6b";
+    sha256 = "79b5f81b9315b03ac3744d12448032490f5028b5117b721775ba97118ecd5e45";
   };
 
   LC_ALL="en_US.UTF-8";
diff --git a/pkgs/development/python-modules/names/default.nix b/pkgs/development/python-modules/names/default.nix
new file mode 100644
index 00000000000..b65bb463475
--- /dev/null
+++ b/pkgs/development/python-modules/names/default.nix
@@ -0,0 +1,36 @@
+{ buildPythonPackage
+, fetchFromGitHub
+, lib
+
+# pythonPackages
+, pytest
+}:
+
+buildPythonPackage rec {
+  pname = "names";
+  version = "0.3.0";
+
+  src = fetchFromGitHub {
+    owner = "treyhunner";
+    repo = pname;
+    rev = version;
+    sha256 = "0jfn11bl05k3qkqw0f4vi2i2lhllxdrbb1732qiisdy9fbvv8611";
+  };
+
+  checkInputs = [
+    pytest
+  ];
+
+  checkPhase = ''
+    pytest
+  '';
+
+  meta = {
+    description = "Generate random names";
+    homepage = "https://github.com/treyhunner/names";
+    license = lib.licenses.mit;
+    maintainers = with lib.maintainers; [
+      kamadorueda
+    ];
+  };
+}
diff --git a/pkgs/development/python-modules/natsort/default.nix b/pkgs/development/python-modules/natsort/default.nix
index da8e953826f..8bdfdb9d720 100644
--- a/pkgs/development/python-modules/natsort/default.nix
+++ b/pkgs/development/python-modules/natsort/default.nix
@@ -12,7 +12,7 @@
 
 buildPythonPackage rec {
   pname = "natsort";
-  version = "6.0.0";
+  version = "6.2.0";
 
   checkInputs = [
     pytest
@@ -26,13 +26,14 @@ buildPythonPackage rec {
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "ff3effb5618232866de8d26e5af4081a4daa9bb0dfed49ac65170e28e45f2776";
+    sha256 = "58c6fb2f355117e88a19808394ec1ed30a2ff881bdd2c81c436952caebd30668";
   };
 
   # testing based on project's tox.ini
+  # natsort_keygen has pytest mock issues
   checkPhase = ''
     pytest --doctest-modules natsort
-    pytest
+    pytest --ignore=tests/test_natsort_keygen.py
   '';
 
   meta = {
diff --git a/pkgs/development/python-modules/nbsmoke/default.nix b/pkgs/development/python-modules/nbsmoke/default.nix
index ee4434c1d1d..6fff7857565 100644
--- a/pkgs/development/python-modules/nbsmoke/default.nix
+++ b/pkgs/development/python-modules/nbsmoke/default.nix
@@ -4,6 +4,7 @@
 , pytest
 , jupyter_client
 , ipykernel
+, holoviews
 , nbformat
 , nbconvert
 , pyflakes
@@ -13,15 +14,16 @@
 
 buildPythonPackage rec {
   pname = "nbsmoke";
-  version = "0.2.8";
+  version = "0.3.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "eeda6c59b61130b9116a3d935e7c80ec5f617d7db8918d23289b2426efa229eb";
+    sha256 = "070e999db3902a0c62a94d76de8fb98da21eaee22d9e90eb42f1636c87e1b805";
   };
 
   propagatedBuildInputs = [
     pytest
+    holoviews
     jupyter_client
     ipykernel
     nbformat
diff --git a/pkgs/development/python-modules/nbval/default.nix b/pkgs/development/python-modules/nbval/default.nix
index 812f68d5c4e..ff9d6f134e0 100644
--- a/pkgs/development/python-modules/nbval/default.nix
+++ b/pkgs/development/python-modules/nbval/default.nix
@@ -15,11 +15,11 @@
 
 buildPythonPackage rec {
   pname = "nbval";
-  version = "0.9.3";
+  version = "0.9.4";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0613drjl740ppam3spm4b8mdcwwvl1lfmqy3vkgznbvzfxfpb3zj";
+    sha256 = "5273c2d958335e24b170fe59b689b13e4b1855b569626e18b1c7e420f5110cc6";
   };
 
   checkInputs = [
diff --git a/pkgs/development/python-modules/ncclient/default.nix b/pkgs/development/python-modules/ncclient/default.nix
index 58d88e8dbf8..ca0a9d34b3e 100644
--- a/pkgs/development/python-modules/ncclient/default.nix
+++ b/pkgs/development/python-modules/ncclient/default.nix
@@ -10,11 +10,11 @@
 
 buildPythonPackage rec {
   pname = "ncclient";
-  version = "0.6.6";
+  version = "0.6.7";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "2b367354d1cd25b79b8798a0b4c1949590d890057f2a252e6e970a9ab744e009";
+    sha256 = "efdf3c868cd9f104d4e9fe4c233df78bfbbed4b3d78ba19dc27cec3cf6a63680";
   };
 
   checkInputs = [ nose rednose ];
diff --git a/pkgs/development/python-modules/nevow/default.nix b/pkgs/development/python-modules/nevow/default.nix
index 74b8f7e29da..6054e6d3a73 100644
--- a/pkgs/development/python-modules/nevow/default.nix
+++ b/pkgs/development/python-modules/nevow/default.nix
@@ -2,22 +2,14 @@
 
 buildPythonPackage rec {
   pname = "Nevow";
-  version = "0.14.4";
+  version = "0.14.5";
   disabled = isPy3k;
 
   src = fetchPypi {
     inherit version pname;
-    sha256 = "2299a0d2a0c1312040705599d5d571acfea74df82b968c0b9264f6f45266cf6e";
+    sha256 = "afb6ba85a5351953578c018fcdb9dfbd62f29a8d46c58bc9652bc000a27223f3";
   };
 
-  patches = [
-    # Fix builds against recent Twisted.
-    (fetchpatch {
-      url = "https://github.com/twisted/nevow/commit/f1b366f1a73009b6a1df12fa6f4dc464c564c944.patch";
-      sha256 = "147fibcbqh715in8cbkp7jlkh4b3qvn95v1mv9si0ln1747wbby2";
-    })
-  ];
-
   propagatedBuildInputs = [ twisted ];
 
   checkInputs = [ twisted ];
diff --git a/pkgs/development/python-modules/nibabel/default.nix b/pkgs/development/python-modules/nibabel/default.nix
index f118e4d5a43..979f12c8d98 100644
--- a/pkgs/development/python-modules/nibabel/default.nix
+++ b/pkgs/development/python-modules/nibabel/default.nix
@@ -2,6 +2,7 @@
 , buildPythonPackage
 , fetchPypi
 , isPy3k
+, isPy27
 , bz2file
 , mock
 , nose
@@ -11,11 +12,12 @@
 
 buildPythonPackage rec {
   pname = "nibabel";
-  version = "2.5.1";
+  version = "3.0.0";
+  disabled = isPy27;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "83ecac4773ece02c49c364d99b465644c17cc66f1719560117e74991d9eb566b";
+    sha256 = "0f5bc325c9cb203c6f0ab876ba1a5ada811284bb3a4c5d063eeaafaefbad873d";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/nilearn/default.nix b/pkgs/development/python-modules/nilearn/default.nix
index 2da580abd92..9158ee77e50 100644
--- a/pkgs/development/python-modules/nilearn/default.nix
+++ b/pkgs/development/python-modules/nilearn/default.nix
@@ -3,11 +3,11 @@
 
 buildPythonPackage rec {
   pname = "nilearn";
-  version = "0.5.2";
+  version = "0.6.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "18b763d641e6903bdf8512e0ec5cdc14133fb4679e9a15648415e9be62c81b56";
+    sha256 = "07eb764f2b7b39b487f806a067e394d8ebffff21f57cd1ecdb5c4030b7210210";
   };
 
   # disable some failing tests
diff --git a/pkgs/development/python-modules/nipype/default.nix b/pkgs/development/python-modules/nipype/default.nix
index 13c35999cf9..ab81b2b190b 100644
--- a/pkgs/development/python-modules/nipype/default.nix
+++ b/pkgs/development/python-modules/nipype/default.nix
@@ -48,11 +48,11 @@ in
 
 buildPythonPackage rec {
   pname = "nipype";
-  version = "1.2.3";
+  version = "1.3.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "a79c7a72897d81985d20a8c805465285400b59a45ddc527cda44026795fd1c47";
+    sha256 = "bb190964b568d64b04b73d2aa7eae31061fdbc3051d8c27bb34b1632db07ec71";
   };
 
   postPatch = ''
@@ -79,7 +79,7 @@ buildPythonPackage rec {
     simplejson
     traits
     xvfbwrapper
-  ] ++ stdenv.lib.optional (!isPy3k) [
+  ] ++ stdenv.lib.optionals (!isPy3k) [
     configparser
     futures
     pathlib2 # darwin doesn't receive this transitively, but it is in install_requires
diff --git a/pkgs/development/python-modules/notedown/default.nix b/pkgs/development/python-modules/notedown/default.nix
new file mode 100644
index 00000000000..c1dacc84da0
--- /dev/null
+++ b/pkgs/development/python-modules/notedown/default.nix
@@ -0,0 +1,37 @@
+{ buildPythonPackage
+, fetchPypi
+, lib
+, nbconvert
+, nbformat
+, notebook
+, pandoc-attributes
+, six
+}:
+
+buildPythonPackage rec {
+  pname = "notedown";
+  version = "1.5.1";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "36e033ebbbe5aca0fab031ffaf3611d5bc5c50237df68ff81bb95f8be353a1ee";
+  };
+
+  propagatedBuildInputs = [
+    notebook
+    nbconvert
+    nbformat
+    pandoc-attributes
+    six
+  ];
+
+  # No tests in pypi source
+  doCheck = false;
+
+  meta = {
+    homepage = https://github.com/aaren/notedown;
+    description = "Convert IPython Notebooks to markdown (and back)";
+    license = lib.licenses.bsd2;
+    maintainers = with lib.maintainers; [ vcanadi ];
+  };
+}
diff --git a/pkgs/development/python-modules/nuitka/default.nix b/pkgs/development/python-modules/nuitka/default.nix
index ba6dbced66e..0413d224bcd 100644
--- a/pkgs/development/python-modules/nuitka/default.nix
+++ b/pkgs/development/python-modules/nuitka/default.nix
@@ -12,13 +12,13 @@ let
   # Therefore we create a separate env for it.
   scons = pkgs.python27.withPackages(ps: [ pkgs.scons ]);
 in buildPythonPackage rec {
-  version = "0.6.5";
+  version = "0.6.6";
   pname = "Nuitka";
 
   # Latest version is not yet on PyPi
   src = fetchurl {
     url = "https://github.com/kayhayen/Nuitka/archive/${version}.tar.gz";
-    sha256 = "18vcmbyqdwsfa9gyj1sf518hsqczx7qlzrdc22hdb1zawzknb1pb";
+    sha256 = "1ia37072qdbgdvh9qxkrhi3mlqn3kcn0qm5xjz6f68sis6ni9kw2";
   };
 
   checkInputs = [ vmprof pyqt4 ];
diff --git a/pkgs/development/python-modules/numcodecs/default.nix b/pkgs/development/python-modules/numcodecs/default.nix
index e49e6e19239..9725f131111 100644
--- a/pkgs/development/python-modules/numcodecs/default.nix
+++ b/pkgs/development/python-modules/numcodecs/default.nix
@@ -7,6 +7,7 @@
 , msgpack
 , pytest
 , python
+, gcc8
 }:
 
 buildPythonPackage rec {
@@ -21,6 +22,7 @@ buildPythonPackage rec {
   nativeBuildInputs = [
     setuptools_scm
     cython
+    gcc8
   ];
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/numexpr/default.nix b/pkgs/development/python-modules/numexpr/default.nix
index 775d279b317..d0bb0a88cff 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.7.0";
+  version = "2.7.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "37324b5981b8962102bdc8640c4f05f5589da5d1df2702418783085cb78ca217";
+    sha256 = "1c82z0zx0542j9df6ckjz6pn1g13b21hbza4hghcw6vyhbckklmh";
   };
 
   # Remove existing site.cfg, use the one we built for numpy.
diff --git a/pkgs/development/python-modules/numpy/default.nix b/pkgs/development/python-modules/numpy/default.nix
index 61f85773949..bdd76696885 100644
--- a/pkgs/development/python-modules/numpy/default.nix
+++ b/pkgs/development/python-modules/numpy/default.nix
@@ -1,4 +1,15 @@
-{ lib, fetchPypi, python, buildPythonPackage, gfortran, pytest, blas, writeTextFile, isPyPy }:
+{ lib
+, fetchPypi
+, python
+, buildPythonPackage
+, gfortran
+, pytest
+, blas
+, writeTextFile
+, isPyPy
+, cython
+, setuptoolsBuildHook
+ }:
 
 let
   blasImplementation = lib.nameFromURL blas.name "-";
@@ -16,15 +27,16 @@ let
   };
 in buildPythonPackage rec {
   pname = "numpy";
-  version = "1.17.4";
+  version = "1.18.0";
+  format = "pyproject.toml";
 
   src = fetchPypi {
     inherit pname version;
     extension = "zip";
-    sha256 = "f58913e9227400f1395c7b800503ebfdb0772f1c33ff8cb4d6451c06cabdf316";
+    sha256 = "a9d72d9abaf65628f0f31bbb573b7d9304e43b1e6bbae43149c17737a42764c4";
   };
 
-  nativeBuildInputs = [ gfortran pytest ];
+  nativeBuildInputs = [ gfortran pytest cython setuptoolsBuildHook ];
   buildInputs = [ blas ];
 
   patches = lib.optionals python.hasDistutilsCxxPatch [
diff --git a/pkgs/development/python-modules/numpydoc/default.nix b/pkgs/development/python-modules/numpydoc/default.nix
index e965f332fc9..fb3b9af76f6 100644
--- a/pkgs/development/python-modules/numpydoc/default.nix
+++ b/pkgs/development/python-modules/numpydoc/default.nix
@@ -7,12 +7,12 @@
 
 buildPythonPackage rec {
   pname = "numpydoc";
-  version = "0.9.1";
+  version = "0.9.2";
 
   src = fetchPypi {
     inherit pname;
     inherit version;
-    sha256 = "09x6l1a4dcvj7001bvcmcayg1nwqwhaxlwbp6kzj9qrk57lqx3z0";
+    sha256 = "9140669e6b915f42c6ce7fef704483ba9b0aaa9ac8e425ea89c76fe40478f642";
   };
 
   checkInputs = [ nose pytest ];
diff --git a/pkgs/development/python-modules/oauthenticator/default.nix b/pkgs/development/python-modules/oauthenticator/default.nix
index 81c6daaf2de..d8a97692976 100644
--- a/pkgs/development/python-modules/oauthenticator/default.nix
+++ b/pkgs/development/python-modules/oauthenticator/default.nix
@@ -16,11 +16,11 @@
 
 buildPythonPackage rec {
   pname = "oauthenticator";
-  version = "0.9.0";
+  version = "0.10.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0ce31c929bb456ad8734b9b8a7f539e44ab3afff07169e25e974ca576f4c836c";
+    sha256 = "cb4e23fcfe8dc9099c4ca005f8991b0f605b03a3e1cf4fed654b2470f6065bdf";
   };
 
   checkPhase = ''
diff --git a/pkgs/development/python-modules/opentracing/default.nix b/pkgs/development/python-modules/opentracing/default.nix
index 8e771f2d46a..f20ca7285e6 100644
--- a/pkgs/development/python-modules/opentracing/default.nix
+++ b/pkgs/development/python-modules/opentracing/default.nix
@@ -10,11 +10,11 @@
 
 buildPythonPackage rec {
   pname = "opentracing";
-  version = "2.2.0";
+  version = "2.3.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "cfd231ba5c58f90bc277787e62861eb0c6e4af76e42957bec240bbdf71fb7e0e";
+    sha256 = "0rcpmhy7hm6ljlm1w455il53s1amq2vii2x1wfkrcx3sj4s0dc9k";
   };
 
   propagatedBuildInputs = lib.optional isPy27 futures;
diff --git a/pkgs/development/python-modules/optuna/default.nix b/pkgs/development/python-modules/optuna/default.nix
index bc96c4a2d47..26c72899317 100644
--- a/pkgs/development/python-modules/optuna/default.nix
+++ b/pkgs/development/python-modules/optuna/default.nix
@@ -1,6 +1,6 @@
 { lib
 , buildPythonPackage
-, fetchPypi
+, fetchFromGitHub
 , pytest
 , mock
 , bokeh
@@ -13,6 +13,7 @@
 , mxnet
 , scikit-optimize
 , tensorflow
+, cma
 , sqlalchemy
 , numpy
 , scipy
@@ -21,6 +22,7 @@
 , colorlog
 , pandas
 , alembic
+, tqdm
 , typing
 , pythonOlder
 , isPy27
@@ -28,12 +30,14 @@
 
 buildPythonPackage rec {
   pname = "optuna";
-  version = "0.17.1";
+  version = "0.19.0";
   disabled = isPy27;
 
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "3d1d3547340c47f34f3a416a2e0761a0ff887ae8ce06474e84ebcc8600afd438";
+  src = fetchFromGitHub {
+    owner = "optuna";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "179x2lsckpmkrkkdnvvbzky86g1ba882z677qwbayhsc835wbp0y";
   };
 
   checkInputs = [
@@ -49,6 +53,7 @@ buildPythonPackage rec {
     mxnet
     scikit-optimize
     tensorflow
+    cma
   ];
 
   propagatedBuildInputs = [
@@ -60,16 +65,22 @@ buildPythonPackage rec {
     colorlog
     pandas
     alembic
-  ] ++ lib.optionals (pythonOlder "3.5") [ typing ];
+    tqdm
+  ] ++ lib.optionals (pythonOlder "3.5") [
+    typing
+  ];
 
   configurePhase = if !(pythonOlder "3.5") then ''
     substituteInPlace setup.py \
-      --replace "'typing'" ""
+      --replace "'typing'," ""
   '' else "";
 
   checkPhase = ''
     pytest --ignore tests/test_cli.py \
-           --ignore tests/integration_tests/test_chainermn.py
+           --ignore tests/integration_tests/test_chainermn.py \
+           --ignore tests/integration_tests/test_pytorch_lightning.py \
+           --ignore tests/integration_tests/test_pytorch_ignite.py \
+           --ignore tests/integration_tests/test_fastai.py
   '';
 
   meta = with lib; {
diff --git a/pkgs/development/python-modules/orm/default.nix b/pkgs/development/python-modules/orm/default.nix
new file mode 100644
index 00000000000..c2f6bc4fc57
--- /dev/null
+++ b/pkgs/development/python-modules/orm/default.nix
@@ -0,0 +1,43 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, databases
+, typesystem
+, aiosqlite
+, pytest
+, pytestcov
+}:
+
+buildPythonPackage rec {
+  pname = "orm";
+  version = "0.1.5";
+
+  src = fetchFromGitHub {
+    owner = "encode";
+    repo = "orm";
+    rev = version;
+    sha256 = "1g70cr0559iyqfzidwh6n2qq6d4dcnrr4sg0jkn1s4qzka828mj7";
+  };
+
+  propagatedBuildInputs = [
+    databases
+    typesystem
+  ];
+
+  checkInputs = [
+    aiosqlite
+    pytest
+    pytestcov
+  ];
+
+  checkPhase = ''
+    PYTHONPATH=$PYTHONPATH:. pytest
+  '';
+
+  meta = with lib; {
+    description = "An async ORM";
+    homepage = https://github.com/encode/orm;
+    license = licenses.bsd3;
+    maintainers = [ maintainers.costrouc ];
+  };
+}
diff --git a/pkgs/development/python-modules/oscrypto/default.nix b/pkgs/development/python-modules/oscrypto/default.nix
new file mode 100644
index 00000000000..6012398db98
--- /dev/null
+++ b/pkgs/development/python-modules/oscrypto/default.nix
@@ -0,0 +1,41 @@
+{ buildPythonPackage
+, asn1crypto
+, fetchPypi
+, lib
+, openssl
+}:
+
+buildPythonPackage rec {
+  pname = "oscrypto";
+  version = "1.1.1";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1vlryamwr442w2av8f54ldhls8fqs6678fg60pqbrf5pjy74kg23";
+  };
+
+  testSources = fetchPypi {
+    inherit version;
+    pname = "oscrypto_tests";
+    sha256 = "1crndz647pqdd8148yn3n5l63xwr6qkwa1qarsz59nk3ip0dsyq5";
+  };
+
+  preCheck = ''
+    tar -xf ${testSources}
+    mv oscrypto_tests-${version} tests
+
+    # remove tests that require network
+    sed -e '/TLSTests/d' -e '/TrustListTests/d' -i tests/__init__.py
+  '';
+
+  propagatedBuildInputs = [
+    asn1crypto
+    openssl
+  ];
+
+  meta = with lib; {
+    description = "A compilation-free, always up-to-date encryption library for Python that works on Windows, OS X, Linux and BSD.";
+    homepage = "https://www.snowflake.com/";
+    license = licenses.mit;
+  };
+}
diff --git a/pkgs/development/python-modules/oyaml/default.nix b/pkgs/development/python-modules/oyaml/default.nix
new file mode 100644
index 00000000000..e445086d0c7
--- /dev/null
+++ b/pkgs/development/python-modules/oyaml/default.nix
@@ -0,0 +1,41 @@
+{ buildPythonPackage
+, fetchFromGitHub
+, lib
+
+# pythonPackages
+, pytest
+, pyyaml
+}:
+
+buildPythonPackage rec {
+  pname = "oyaml";
+  version = "0.9";
+
+  src = fetchFromGitHub {
+    owner = "wimglenn";
+    repo = "oyaml";
+    rev = "v${version}";
+    sha256 = "13xjdym0p0jh9bvyjsbhi4yznlp68bamy3xi4w5wpcrzlcq6cfh9";
+  };
+
+  propagatedBuildInputs = [
+    pyyaml
+  ];
+
+  checkInputs = [
+    pytest
+  ];
+
+  checkPhase = ''
+    pytest test_oyaml.py
+  '';
+
+  meta = {
+    description = "Ordered YAML: drop-in replacement for PyYAML which preserves dict ordering";
+    homepage = "https://github.com/wimglenn/oyaml";
+    license = lib.licenses.mit;
+    maintainers = with lib.maintainers; [
+      kamadorueda
+    ];
+  };
+}
diff --git a/pkgs/development/python-modules/pandoc-attributes/default.nix b/pkgs/development/python-modules/pandoc-attributes/default.nix
new file mode 100644
index 00000000000..8b5652bfb54
--- /dev/null
+++ b/pkgs/development/python-modules/pandoc-attributes/default.nix
@@ -0,0 +1,29 @@
+{ buildPythonPackage
+, fetchPypi
+, lib
+, pandocfilters
+}:
+
+buildPythonPackage rec {
+  pname = "pandoc-attributes";
+  version = "0.1.7";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "69221502dac74f5df1317011ce62c85a83eef5da3b71c63b1908e98224304a8c";
+  };
+
+  propagatedBuildInputs = [
+    pandocfilters
+  ];
+
+  # No tests in pypi source
+  doCheck = false;
+
+  meta = {
+    homepage = https://github.com/aaren/pandoc-attributes;
+    description = "An Attribute class to be used with pandocfilters";
+    license = lib.licenses.bsd2;
+    maintainers = with lib.maintainers; [ vcanadi ];
+  };
+}
diff --git a/pkgs/development/python-modules/panel/default.nix b/pkgs/development/python-modules/panel/default.nix
index aefab404668..0047548779c 100644
--- a/pkgs/development/python-modules/panel/default.nix
+++ b/pkgs/development/python-modules/panel/default.nix
@@ -11,11 +11,11 @@
 
 buildPythonPackage rec {
   pname = "panel";
-  version = "0.6.4";
+  version = "0.7.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "9b86a827f24dcfd1b6d821836e691fca7aab21b79a293031297f83cf2f8d6cef";
+    sha256 = "71d446f469b424cb190bc896e78d0415b2bbebf17c6e5b024ed1a73b4448f8f4";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/paramiko/default.nix b/pkgs/development/python-modules/paramiko/default.nix
index 7ea4a5ee533..2fefbde7448 100644
--- a/pkgs/development/python-modules/paramiko/default.nix
+++ b/pkgs/development/python-modules/paramiko/default.nix
@@ -3,6 +3,7 @@
 , fetchPypi
 , cryptography
 , bcrypt
+, invoke
 , pynacl
 , pyasn1
 , pytest
@@ -12,21 +13,24 @@
 
 buildPythonPackage rec {
   pname = "paramiko";
-  version = "2.6.0";
+  version = "2.7.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0h9hb2kp07zdfbanad527ll90n9ji7isf7m39jyp0sr21pxfvcpl";
+    sha256 = "920492895db8013f6cc0179293147f830b8c7b21fdfc839b6bad760c27459d9f";
   };
 
-  checkInputs = [ pytest mock pytest-relaxed ];
+  checkInputs = [ invoke pytest mock pytest-relaxed ];
   propagatedBuildInputs = [ bcrypt cryptography pynacl pyasn1 ];
 
   __darwinAllowLocalNetworking = true;
 
   # 2 sftp tests fail (skip for now)
+  # test_config relies on artifacts to be to downloaded
   checkPhase = ''
-    pytest tests --ignore=tests/test_sftp.py
+    pytest tests \
+      --ignore=tests/test_sftp.py \
+      --ignore=tests/test_config.py
   '';
 
   meta = with pkgs.lib; {
diff --git a/pkgs/development/python-modules/parsedatetime/default.nix b/pkgs/development/python-modules/parsedatetime/default.nix
index 32247fcc388..914d5e2680f 100644
--- a/pkgs/development/python-modules/parsedatetime/default.nix
+++ b/pkgs/development/python-modules/parsedatetime/default.nix
@@ -8,11 +8,11 @@
 
 buildPythonPackage rec {
   pname = "parsedatetime";
-  version = "2.4";
+  version = "2.5";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "3d817c58fb9570d1eec1dd46fa9448cd644eeed4fb612684b02dfda3a79cb84b";
+    sha256 = "d2e9ddb1e463de871d32088a3f3cea3dc8282b1b2800e081bd0ef86900451667";
   };
 
   buildInputs = [ pytest pytestrunner ];
diff --git a/pkgs/development/python-modules/parso/default.nix b/pkgs/development/python-modules/parso/default.nix
index da42b279c75..24fc5789405 100644
--- a/pkgs/development/python-modules/parso/default.nix
+++ b/pkgs/development/python-modules/parso/default.nix
@@ -6,11 +6,11 @@
 
 buildPythonPackage rec {
   pname = "parso";
-  version = "0.5.1";
+  version = "0.5.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "171a9ivhxwsd52h1cgsz40zgzpgzscn7yqb7sdjhy8m1lzj0wsv6";
+    sha256 = "55cf25df1a35fd88b878715874d2c4dc1ad3f0eebd1e0266a67e1f55efccfbe1";
   };
 
   checkInputs = [ pytest ];
diff --git a/pkgs/development/python-modules/partd/default.nix b/pkgs/development/python-modules/partd/default.nix
index b400e8030f9..e8a148edb23 100644
--- a/pkgs/development/python-modules/partd/default.nix
+++ b/pkgs/development/python-modules/partd/default.nix
@@ -1,6 +1,7 @@
 { lib
 , buildPythonPackage
 , fetchPypi
+, isPy27
 , pytest
 , locket
 , numpy
@@ -11,11 +12,12 @@
 
 buildPythonPackage rec {
   pname = "partd";
-  version = "1.0.0";
+  version = "1.1.0";
+  disabled = isPy27;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "54fd91bc3b9c38159c790cd16950dbca6b019a2ead4c51dee4f9efc884f8ce0e";
+    sha256 = "6e258bf0810701407ad1410d63d1a15cfd7b773fd9efe555dac6bb82cc8832b0";
   };
 
   checkInputs = [ pytest ];
@@ -32,4 +34,4 @@ buildPythonPackage rec {
     license = with lib.licenses; [ bsd3 ];
     homepage = https://github.com/dask/partd/;
   };
-}
\ No newline at end of file
+}
diff --git a/pkgs/development/python-modules/pep8-naming/default.nix b/pkgs/development/python-modules/pep8-naming/default.nix
index 20da40560e2..5c66eb6cad0 100644
--- a/pkgs/development/python-modules/pep8-naming/default.nix
+++ b/pkgs/development/python-modules/pep8-naming/default.nix
@@ -3,11 +3,11 @@
 
 buildPythonPackage rec {
   pname = "pep8-naming";
-  version = "0.8.2";
+  version = "0.9.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1aff4g3i2z08cx7z17nbxbf32ddrnvqlk16h6d8h9s9w5ymivjq1";
+    sha256 = "a33d38177056321a167decd6ba70b890856ba5025f0a8eca6a3eda607da93caf";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/pex/default.nix b/pkgs/development/python-modules/pex/default.nix
index fec9de45f68..10001d1d602 100644
--- a/pkgs/development/python-modules/pex/default.nix
+++ b/pkgs/development/python-modules/pex/default.nix
@@ -6,11 +6,11 @@
 
 buildPythonPackage rec {
   pname = "pex";
-  version = "1.6.12";
+  version = "2.0.3";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "13q83yba01hzm9mlk5y1klqirxdmsm2yx1yll5zdik9fd8hg0rf6";
+    sha256 = "a8a35e7eb212616b2964d70d8a134d41d16649c943ab206b90c749c005e60999";
   };
 
   nativeBuildInputs = [ setuptools ];
diff --git a/pkgs/development/python-modules/pglast/default.nix b/pkgs/development/python-modules/pglast/default.nix
index eef72793776..bc54c18ac81 100644
--- a/pkgs/development/python-modules/pglast/default.nix
+++ b/pkgs/development/python-modules/pglast/default.nix
@@ -10,11 +10,11 @@
 
 buildPythonPackage rec {
   pname = "pglast";
-  version = "1.6";
+  version = "1.8";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "dcbd8061c553b90440741b77fbb274beca84716641a50be8675a6afe6dfbcea2";
+    sha256 = "115067100fbb9eb36f530d94b64b4e1e36a8d304537af0847d562ff9ed399c05";
   };
 
   disabled = !isPy3k;
diff --git a/pkgs/development/python-modules/phonenumbers/default.nix b/pkgs/development/python-modules/phonenumbers/default.nix
index d9b3cb6b172..461d70497bf 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.11.0";
+  version = "8.11.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1gc38v26hp638vnx4hmyv2gfyjs8k8lbvnlxfixgm60v4v7wykln";
+    sha256 = "239507184ee5b1b83557005af1d5fcce70f83ae18f5dff45b94a67226db10d63";
   };
 
   meta = {
diff --git a/pkgs/development/python-modules/phonopy/default.nix b/pkgs/development/python-modules/phonopy/default.nix
index e8f92bd8d78..e67932f4a88 100644
--- a/pkgs/development/python-modules/phonopy/default.nix
+++ b/pkgs/development/python-modules/phonopy/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "phonopy";
-  version = "2.3.2.post11";
+  version = "2.4.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "4b4ef1c11bafa161a409ad018cbf8469aacd42fc77fd954442760161f63dd345";
+    sha256 = "6e6ce41ce8a51723b94d974adfee032cddce5b9300984dd23b59e101ed0a2861";
   };
 
   propagatedBuildInputs = [ numpy pyyaml matplotlib h5py ];
diff --git a/pkgs/development/python-modules/pipdate/default.nix b/pkgs/development/python-modules/pipdate/default.nix
index 08ed0c43a22..93f38fb3779 100644
--- a/pkgs/development/python-modules/pipdate/default.nix
+++ b/pkgs/development/python-modules/pipdate/default.nix
@@ -8,11 +8,11 @@
 
 buildPythonPackage rec {
   pname = "pipdate";
-  version = "0.3.4";
+  version = "0.3.5";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "26bd12075e63ef7f8094da36c27bf5539d298f4ef2af6acba20e98b502439d6d";
+    sha256 = "240c0f270ddb7470ad7b8c8fba4106e3dbd8817a370624fd8c32cf19155c9547";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/pivy/default.nix b/pkgs/development/python-modules/pivy/default.nix
index 93aa5ad144c..f7ec55bba05 100644
--- a/pkgs/development/python-modules/pivy/default.nix
+++ b/pkgs/development/python-modules/pivy/default.nix
@@ -21,7 +21,7 @@ buildPythonPackage rec {
     libXi libXext libSM libICE libX11
   ];
 
-  NIX_CFLAGS_COMPILE = [
+  NIX_CFLAGS_COMPILE = toString [
     "-I${pkgs.qt5.qtbase.dev}/include/QtCore"
     "-I${pkgs.qt5.qtbase.dev}/include/QtGui"
     "-I${pkgs.qt5.qtbase.dev}/include/QtOpenGL"
diff --git a/pkgs/development/python-modules/plone-testing/default.nix b/pkgs/development/python-modules/plone-testing/default.nix
index 37ca1a33d65..91592596ed4 100644
--- a/pkgs/development/python-modules/plone-testing/default.nix
+++ b/pkgs/development/python-modules/plone-testing/default.nix
@@ -8,11 +8,11 @@
 
 buildPythonPackage rec {
   pname = "plone.testing";
-  version = "7.0.2";
+  version = "7.0.3";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "2533c48b7bd54ff19da2b4f0c3ccd0a8878c46f03fadbf5f933baaf749d17690";
+    sha256 = "160f130f641578fbede2e47686f1b58179efa9ff98ccdd1ad198b5d0c7e02474";
   };
 
   propagatedBuildInputs = [ six setuptools zope_testing ];
diff --git a/pkgs/development/python-modules/plotly/default.nix b/pkgs/development/python-modules/plotly/default.nix
index 9bf22b939d1..a71506c6197 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 = "4.2.1";
+  version = "4.4.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "6650ddb4da3aa94dcaa32e0779e611c6b17f371b5250ffdbf5ece6d66ba4483b";
+    sha256 = "acc94f17452471ca3446c2ce491c4d1affb99b9ddd9eac4e05614ac4318f8780";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/portend/default.nix b/pkgs/development/python-modules/portend/default.nix
index 9cc88983a30..6d7d7b2563d 100644
--- a/pkgs/development/python-modules/portend/default.nix
+++ b/pkgs/development/python-modules/portend/default.nix
@@ -1,13 +1,13 @@
 { stdenv, buildPythonPackage, fetchPypi
-, pytest, setuptools_scm, tempora, pytest-black }:
+, pytest, setuptools_scm, tempora, pytest-black, pytestcov }:
 
 buildPythonPackage rec {
   pname = "portend";
-  version = "2.5";
+  version = "2.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "19dc27bfb3c72471bd30a235a4d5fbefef8a7e31cab367744b5d87a205e7bfd9";
+    sha256 = "600dd54175e17e9347e5f3d4217aa8bcf4bf4fa5ffbc4df034e5ec1ba7cdaff5";
   };
 
   patches = [ ./black-19.10b0.patch ];
@@ -19,7 +19,7 @@ buildPythonPackage rec {
 
   propagatedBuildInputs = [ tempora ];
 
-  checkInputs = [ pytest pytest-black ];
+  checkInputs = [ pytest pytest-black pytestcov ];
 
   checkPhase = ''
     py.test --deselect=test_portend.py::TestChecker::test_check_port_listening
diff --git a/pkgs/development/python-modules/ppft/default.nix b/pkgs/development/python-modules/ppft/default.nix
index 5beed26cb20..101c10b1d12 100644
--- a/pkgs/development/python-modules/ppft/default.nix
+++ b/pkgs/development/python-modules/ppft/default.nix
@@ -13,12 +13,11 @@ buildPythonPackage rec {
     sha256 = "9e2173042edd5cc9c7bee0d7731873f17fcdce0e42e4b7ab68857d0de7b631fc";
   };
 
-  checkPhase = ''
-    python -m ppft.tests
-  '';
-
   propagatedBuildInputs = [ six ];
 
+  # tests no longer packages on pypi
+  doCheck = false;
+
   meta = with stdenv.lib; {
     description = "Distributed and parallel python";
     homepage = https://github.com/uqfoundation;
diff --git a/pkgs/development/python-modules/prance/default.nix b/pkgs/development/python-modules/prance/default.nix
index 38133172ecf..972520793a4 100644
--- a/pkgs/development/python-modules/prance/default.nix
+++ b/pkgs/development/python-modules/prance/default.nix
@@ -15,11 +15,11 @@
 
 buildPythonPackage rec {
   pname = "prance";
-  version = "0.15.0";
+  version = "0.17.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "793f96dc8bba73bf4342f57b3570f5e0a94c30e60f0c802a2aaa302759dd8610";
+    sha256 = "a128d0d5f639a6a19eefedd787a6ce9603634c3908927b1215653e4a8375195f";
   };
 
   buildInputs = [
diff --git a/pkgs/development/python-modules/pre-commit/default.nix b/pkgs/development/python-modules/pre-commit/default.nix
index 27d56bab06e..d3808bbb911 100644
--- a/pkgs/development/python-modules/pre-commit/default.nix
+++ b/pkgs/development/python-modules/pre-commit/default.nix
@@ -14,12 +14,12 @@
 
 buildPythonApplication rec {
   pname = "pre-commit";
-  version = "1.20.0";
+  version = "1.21.0";
 
   src = fetchPypi {
     inherit version;
     pname = "pre_commit";
-    sha256 = "0vmv3hrivm0sm81cn59n2pmw8h323sg4sgncl910djby2a3jc5cz";
+    sha256 = "0l5qg1cw4a0670m96s0ryy5mqz5aslfrrnwpriqgmrnsgdixhj4g";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/protobuf/default.nix b/pkgs/development/python-modules/protobuf/default.nix
index 73216f63f82..e414dff8aa1 100644
--- a/pkgs/development/python-modules/protobuf/default.nix
+++ b/pkgs/development/python-modules/protobuf/default.nix
@@ -9,10 +9,11 @@ buildPythonPackage {
   inherit disabled;
   doCheck = doCheck && !isPy27; # setuptools>=41.4 no longer collects correctly on python2
 
-  NIX_CFLAGS_COMPILE =
+  NIX_CFLAGS_COMPILE = toString (
     # work around python distutils compiling C++ with $CC
     optional stdenv.isDarwin "-I${libcxx}/include/c++/v1"
-    ++ optional (versionOlder protobuf.version "2.7.0") "-std=c++98";
+    ++ optional (versionOlder protobuf.version "2.7.0") "-std=c++98"
+  );
 
   propagatedBuildInputs = [ google_apputils ];
   propagatedNativeBuildInputs = [ protobuf ];  # For protoc.
diff --git a/pkgs/development/python-modules/prox-tv/default.nix b/pkgs/development/python-modules/prox-tv/default.nix
new file mode 100644
index 00000000000..2568620f539
--- /dev/null
+++ b/pkgs/development/python-modules/prox-tv/default.nix
@@ -0,0 +1,50 @@
+{ lib
+, blas
+, buildPythonPackage
+, cffi
+, fetchFromGitHub
+, liblapack
+, nose
+, numpy
+, openblas
+, useOpenblas ? true
+}:
+
+buildPythonPackage {
+  pname = "prox-tv";
+  version = "3.3.0";
+
+  src = fetchFromGitHub {
+    owner = "albarji";
+    repo = "proxTV";
+    rev = "e621585d5aaa7983fbee68583f7deae995d3bafb";
+    sha256 = "0mlrjbb5rw78dgijkr3bspmsskk6jqs9y7xpsgs35i46dvb327q5";
+  };
+
+  patches = lib.optional useOpenblas ./use-openblas.patch;
+
+  checkInputs = [
+    nose
+  ];
+
+  propagatedBuildInputs = [
+    numpy
+    cffi
+  ];
+
+  buildInputs = (
+    if useOpenblas then
+      [ openblas ]
+    else
+      [ blas liblapack ]
+  );
+
+  enableParallelBuilding = true;
+
+  meta = with lib; {
+    homepage = https://github.com/albarji/proxTV;
+    description = "A toolbox for fast Total Variation proximity operators";
+    license = licenses.bsd2;
+    maintainers = with maintainers; [ multun ];
+  };
+}
diff --git a/pkgs/development/python-modules/prox-tv/use-openblas.patch b/pkgs/development/python-modules/prox-tv/use-openblas.patch
new file mode 100644
index 00000000000..e96faa4d600
--- /dev/null
+++ b/pkgs/development/python-modules/prox-tv/use-openblas.patch
@@ -0,0 +1,11 @@
+index f100b35..448bbaf 100644
+--- a/prox_tv/prox_tv_build.py
++++ b/prox_tv/prox_tv_build.py
+@@ -109,6 +109,6 @@ ffi.set_source(
+     define_macros=[('NOMATLAB', 1)],
+     extra_compile_args=extra_compile_args,
+     extra_link_args=extra_link_args,
+-    libraries=['blas', 'lapack'],
++    libraries=['openblas'],
+     include_dirs=['/usr/include']
+ )
diff --git a/pkgs/development/python-modules/psd-tools/default.nix b/pkgs/development/python-modules/psd-tools/default.nix
index 38285b68563..edf502171e7 100644
--- a/pkgs/development/python-modules/psd-tools/default.nix
+++ b/pkgs/development/python-modules/psd-tools/default.nix
@@ -1,21 +1,27 @@
-{ lib, buildPythonPackage, fetchPypi,
-  docopt, pillow
+{ lib, buildPythonPackage, fetchPypi, isPy27
+, docopt
+, pillow
+, enum34
 }:
 
 buildPythonPackage rec {
   pname = "psd-tools";
-  version = "1.8.32";
+  version = "1.8.35";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "379211cf98ebafbe129088a5c92f575e1ccd7987c40bad9520c209e51008df00";
+  };
+
+  propagatedBuildInputs = [
+    docopt
+    pillow
+  ] ++ lib.optionals isPy27 [ enum34 ];
 
   meta = {
     description = "Python package for reading Adobe Photoshop PSD files";
     homepage = https://github.com/kmike/psd-tools;
     license = lib.licenses.mit;
+    broken = true; # missing packbits from nixpkgs
   };
-
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "fff16658c9ca6bc586adbe0ab060a7d0b7d057eb2a600c3b2001c0558873fb94";
-  };
-
-  propagatedBuildInputs = [ docopt pillow ];
 }
diff --git a/pkgs/development/python-modules/pulp/default.nix b/pkgs/development/python-modules/pulp/default.nix
index 09fddad0158..414c21b263c 100644
--- a/pkgs/development/python-modules/pulp/default.nix
+++ b/pkgs/development/python-modules/pulp/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "PuLP";
-  version = "1.6.8";
+  version = "2.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1irzpfnnm5f0qf8y9ddxi489nwixyj0q4zlvqafm621bijkxdv6g";
+    sha256 = "fb0b0e8073aa82f3459c4241b9625e0ccd26c0838ad8253c6bc67e041901b765";
   };
 
   propagatedBuildInputs = [ pyparsing ];
diff --git a/pkgs/development/python-modules/purepng/default.nix b/pkgs/development/python-modules/purepng/default.nix
index fbaa1cfad71..c6f28067bf6 100644
--- a/pkgs/development/python-modules/purepng/default.nix
+++ b/pkgs/development/python-modules/purepng/default.nix
@@ -25,7 +25,7 @@ buildPythonPackage {
       sha256 = "1ag0pji3p012hmj8kadcd0vydv9702188c0isizsi964qcl4va6m";
     })
   ];
-  patchFlags = "-p1 -d code";
+  patchFlags = [ "-p1" "-d" "code" ];
 
   # cython is optional - if not supplied, the "pure python" implementation will be used
   nativeBuildInputs = [ cython ];
diff --git a/pkgs/development/python-modules/pvlib/default.nix b/pkgs/development/python-modules/pvlib/default.nix
index cdd6011aba2..7e561089a18 100644
--- a/pkgs/development/python-modules/pvlib/default.nix
+++ b/pkgs/development/python-modules/pvlib/default.nix
@@ -3,14 +3,14 @@
 
 buildPythonPackage rec {
   pname = "pvlib";
-  version = "0.6.3";
+  version = "0.7.0";
 
   # Support for Python <3.5 dropped in 0.6.3 on June 1, 2019.
   disabled = pythonOlder "3.5";
 
   src = fetchPypi{
     inherit pname version;
-    sha256 = "03nvgpmnscd7rh9jwm2h579zvriq5lva6rsdhb6jckpra5wjkn69";
+    sha256 = "ee935ba52f1d4a514cc3baa743db0377af732952faf800f20ffd8071fa2107c2";
   };
 
   checkInputs = [ pytest mock pytest-mock ];
diff --git a/pkgs/development/python-modules/py/default.nix b/pkgs/development/python-modules/py/default.nix
index 9c5ada22b14..7b84d72fde4 100644
--- a/pkgs/development/python-modules/py/default.nix
+++ b/pkgs/development/python-modules/py/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "py";
-  version = "1.8.0";
+  version = "1.8.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0lsy1gajva083pzc7csj1cvbmminb7b4l6a0prdzyb3fd829nqyw";
+    sha256 = "5e27081401262157467ad6e7f851b7aa402c5852dbcb3dae06768434de5752aa";
   };
 
   # Circular dependency on pytest
diff --git a/pkgs/development/python-modules/py3status/default.nix b/pkgs/development/python-modules/py3status/default.nix
index 79b80fb11f0..d2a2b50d3c0 100644
--- a/pkgs/development/python-modules/py3status/default.nix
+++ b/pkgs/development/python-modules/py3status/default.nix
@@ -24,11 +24,11 @@
 
 buildPythonPackage rec {
   pname = "py3status";
-  version = "3.21";
+  version = "3.22";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "c208c680d1511e8c1dc950a930d3ee1b83f2dbfaac1308cd43c4773810fee89b";
+    sha256 = "5e9884dde128e1bd82f8746e8f8806c8d7d89d95ce9ed7bacf7cc5fdb094aa21";
   };
 
   doCheck = false;
diff --git a/pkgs/development/python-modules/pyGithub/default.nix b/pkgs/development/python-modules/pyGithub/default.nix
index d09862184c0..3f5d3a5bd8c 100644
--- a/pkgs/development/python-modules/pyGithub/default.nix
+++ b/pkgs/development/python-modules/pyGithub/default.nix
@@ -3,13 +3,13 @@
 
 buildPythonPackage rec {
   pname = "PyGithub";
-  version = "1.44.1";
+  version = "1.45";
 
   src = fetchFromGitHub {
     owner = "PyGithub";
     repo = "PyGithub";
     rev = "v${version}";
-    sha256 = "16ngnnm7xj9bd97pvyddag17dx28c5wi0gjx4ws8c8nrmf5w3iqk";
+    sha256 = "1aiyqwdxpcr7yzz7aqmmjn1g2ajs5bpbln4sax5zw19dqi6qgp9z";
   };
 
   propagatedBuildInputs = [ python-jose pyjwt requests deprecated httpretty ];
diff --git a/pkgs/development/python-modules/pyaml/default.nix b/pkgs/development/python-modules/pyaml/default.nix
index 8601488bcf4..6aeb37cfff6 100644
--- a/pkgs/development/python-modules/pyaml/default.nix
+++ b/pkgs/development/python-modules/pyaml/default.nix
@@ -7,11 +7,11 @@
 
 buildPythonPackage rec {
   pname = "pyaml";
-  version = "19.4.1";
+  version = "19.12.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "c79ae98ececda136a034115ca178ee8bf3aa7df236c488c2f55d12f177b88f1e";
+    sha256 = "b3f636b467864319d7ded1558f86bb305b8612a274f5d443a62dc5eceb1b7176";
   };
 
   propagatedBuildInputs = [ pyyaml ];
diff --git a/pkgs/development/python-modules/pyatmo/default.nix b/pkgs/development/python-modules/pyatmo/default.nix
index 795f623ba53..5036307982b 100644
--- a/pkgs/development/python-modules/pyatmo/default.nix
+++ b/pkgs/development/python-modules/pyatmo/default.nix
@@ -6,11 +6,11 @@
 
 buildPythonPackage rec {
   pname = "pyatmo";
-  version = "2.3.3";
+  version = "3.1.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "b884402c62d589a38444e8f4b3892b18312e8f9442cd8d12e7ec01c698328f54";
+    sha256 = "8fbcc3a88f8c51d190b697c80515e67530143de71f89cc6ecf99bbf2cbf3ef30";
   };
 
   propagatedBuildInputs = [ requests ];
diff --git a/pkgs/development/python-modules/pybids/default.nix b/pkgs/development/python-modules/pybids/default.nix
index 84f5a41c45b..dc9cbefe0b5 100644
--- a/pkgs/development/python-modules/pybids/default.nix
+++ b/pkgs/development/python-modules/pybids/default.nix
@@ -15,12 +15,12 @@
 }:
 
 buildPythonPackage rec {
-  version = "0.9.5";
+  version = "0.10.0";
   pname = "pybids";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0e8f8466067ff3023f53661c390c02702fcd5fe712bdd5bf167ffb0c2b920430";
+    sha256 = "b37ba89eb7407bbfdf8e26e1230b6ef452da3d986df5eed21aab96be61b6e844";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/pybind11/0001-Find-include-directory.patch b/pkgs/development/python-modules/pybind11/0001-Find-include-directory.patch
new file mode 100644
index 00000000000..d5b669dab7a
--- /dev/null
+++ b/pkgs/development/python-modules/pybind11/0001-Find-include-directory.patch
@@ -0,0 +1,53 @@
+From a027e2590d5d2d384d23568a8d47b7095054b6b7 Mon Sep 17 00:00:00 2001
+From: Frederik Rietdijk <fridh@fridh.nl>
+Date: Thu, 19 Dec 2019 19:51:07 +0100
+Subject: [PATCH] Find include directory
+
+---
+ pybind11/__init__.py | 33 +--------------------------------
+ 1 file changed, 1 insertion(+), 32 deletions(-)
+
+diff --git a/pybind11/__init__.py b/pybind11/__init__.py
+index c625e8c..c8a707b 100644
+--- a/pybind11/__init__.py
++++ b/pybind11/__init__.py
+@@ -2,35 +2,4 @@ from ._version import version_info, __version__  # noqa: F401 imported but unuse
+ 
+ 
+ def get_include(user=False):
+-    from distutils.dist import Distribution
+-    import os
+-    import sys
+-
+-    # Are we running in a virtual environment?
+-    virtualenv = hasattr(sys, 'real_prefix') or \
+-        sys.prefix != getattr(sys, "base_prefix", sys.prefix)
+-
+-    # Are we running in a conda environment?
+-    conda = os.path.exists(os.path.join(sys.prefix, 'conda-meta'))
+-
+-    if virtualenv:
+-        return os.path.join(sys.prefix, 'include', 'site',
+-                            'python' + sys.version[:3])
+-    elif conda:
+-        if os.name == 'nt':
+-            return os.path.join(sys.prefix, 'Library', 'include')
+-        else:
+-            return os.path.join(sys.prefix, 'include')
+-    else:
+-        dist = Distribution({'name': 'pybind11'})
+-        dist.parse_config_files()
+-
+-        dist_cobj = dist.get_command_obj('install', create=True)
+-
+-        # Search for packages in user's home directory?
+-        if user:
+-            dist_cobj.user = user
+-            dist_cobj.prefix = ""
+-        dist_cobj.finalize_options()
+-
+-        return os.path.dirname(dist_cobj.install_headers)
++    return "@include@"
+-- 
+2.23.0
+
diff --git a/pkgs/development/python-modules/pybind11/default.nix b/pkgs/development/python-modules/pybind11/default.nix
index 0f386a7c42f..a8c66a49fb8 100644
--- a/pkgs/development/python-modules/pybind11/default.nix
+++ b/pkgs/development/python-modules/pybind11/default.nix
@@ -1,4 +1,5 @@
-{ lib
+{ stdenv
+, lib
 , buildPythonPackage
 , fetchFromGitHub
 , fetchpatch
@@ -28,7 +29,7 @@ buildPythonPackage rec {
 
   cmakeFlags = [
     "-DEIGEN3_INCLUDE_DIR=${eigen}/include/eigen3"
-  ] ++ lib.optionals (!python.isPy2) [
+  ] ++ lib.optionals (python.isPy3k && !stdenv.cc.isClang) [
   # Enable some tests only on Python 3. The "test_string_view" test
   # 'testTypeError: string_view16_chars(): incompatible function arguments'
   # fails on Python 2.
@@ -39,6 +40,14 @@ buildPythonPackage rec {
   dontUsePipInstall = true;
   dontUseSetuptoolsCheck = true;
 
+  patches = [
+    ./0001-Find-include-directory.patch
+  ];
+
+  postPatch = ''
+    substituteInPlace pybind11/__init__.py --subst-var-by include "$out/include"
+  '';
+
   preFixup = ''
     pushd ..
     export PYBIND11_USE_CMAKE=1
@@ -50,8 +59,6 @@ buildPythonPackage rec {
     popd
   '';
 
-  installCheckTarget = "pytest";
-  doInstallCheck = true;
   checkInputs = [
     pytest
     numpy
diff --git a/pkgs/development/python-modules/pybullet/default.nix b/pkgs/development/python-modules/pybullet/default.nix
index b17e8a5aa94..d7b46f07749 100644
--- a/pkgs/development/python-modules/pybullet/default.nix
+++ b/pkgs/development/python-modules/pybullet/default.nix
@@ -7,11 +7,11 @@
 
 buildPythonPackage rec {
   pname = "pybullet";
-  version = "2.5.8";
+  version = "2.6.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "5824e902e0dd8bf7177ce5d9e038c6b04be65f72621fe13f93ec15c9d9c85a49";
+    sha256 = "c6da064687ae481c73b744b9f3a62d8231349a6bf368d7a2e564f71ef73e9403";
   };
 
   buildInputs = [
diff --git a/pkgs/development/python-modules/pycares/default.nix b/pkgs/development/python-modules/pycares/default.nix
index f68a10d6186..22f519c0486 100644
--- a/pkgs/development/python-modules/pycares/default.nix
+++ b/pkgs/development/python-modules/pycares/default.nix
@@ -8,11 +8,11 @@
 
 buildPythonPackage rec {
   pname = "pycares";
-  version = "3.0.0";
+  version = "3.1.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "b253f5dcaa0ac7076b79388a3ac80dd8f3bd979108f813baade40d3a9b8bf0bd";
+    sha256 = "663c000625725d3a63466a674df4ee7f62bf8ca1ae8a0b87a6411eb811e0e794";
   };
 
   buildInputs = [ c-ares ];
diff --git a/pkgs/development/python-modules/pycurl/default.nix b/pkgs/development/python-modules/pycurl/default.nix
index ce11b8497cf..153a6e0377d 100644
--- a/pkgs/development/python-modules/pycurl/default.nix
+++ b/pkgs/development/python-modules/pycurl/default.nix
@@ -36,7 +36,7 @@ buildPythonPackage rec {
   ];
 
   checkPhase = ''
-    pytest tests -k "not test_ssl_in_static_libs \
+    HOME=$TMPDIR pytest tests -k "not test_ssl_in_static_libs \
                      and not test_keyfunction \
                      and not test_keyfunction_bogus_return \
                      and not test_libcurl_ssl_gnutls \
diff --git a/pkgs/development/python-modules/pydantic/default.nix b/pkgs/development/python-modules/pydantic/default.nix
index 3e8e5086ead..088c6636fdc 100644
--- a/pkgs/development/python-modules/pydantic/default.nix
+++ b/pkgs/development/python-modules/pydantic/default.nix
@@ -1,21 +1,25 @@
 { lib
 , buildPythonPackage
-, fetchPypi
+, fetchFromGitHub
 , ujson
 , email_validator
 , typing-extensions
 , python
 , isPy3k
+, pytest
+, pytestcov
 }:
 
 buildPythonPackage rec {
   pname = "pydantic";
-  version = "1.0";
+  version = "1.3";
   disabled = !isPy3k;
 
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "bf474cebe007701806f5f8b076fb8508116606e5c721734bb855bfec4185263c";
+  src = fetchFromGitHub {
+    owner = "samuelcolvin";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "0s85nzlsyj97j54zsgv569hkzv617z0vqsifsxkkyiimgbvnx7g8";
   };
 
   propagatedBuildInputs = [
@@ -24,22 +28,13 @@ buildPythonPackage rec {
     typing-extensions
   ];
 
-  checkPhase = ''
-    ${python.interpreter} -c """
-from datetime import datetime
-from typing import List
-from pydantic import BaseModel
-
-class User(BaseModel):
-    id: int
-    name = 'John Doe'
-    signup_ts: datetime = None
-    friends: List[int] = []
+  checkInputs = [
+    pytest
+    pytestcov
+  ];
 
-external_data = {'id': '123', 'signup_ts': '2017-06-01 12:22', 'friends': [1, '2', b'3']}
-user = User(**external_data)
-assert user.id is "123"
-"""
+  checkPhase = ''
+    pytest
   '';
 
   meta = with lib; {
diff --git a/pkgs/development/python-modules/pyelftools/default.nix b/pkgs/development/python-modules/pyelftools/default.nix
index 1715749fa2d..c619df297fe 100644
--- a/pkgs/development/python-modules/pyelftools/default.nix
+++ b/pkgs/development/python-modules/pyelftools/default.nix
@@ -6,11 +6,11 @@
 
 buildPythonPackage rec {
   pname = "pyelftools";
-  version = "0.25";
+  version = "0.26";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "89c6da6f56280c37a5ff33468591ba9a124e17d71fe42de971818cbff46c1b24";
+    sha256 = "86ac6cee19f6c945e8dedf78c6ee74f1112bd14da5a658d8c9d4103aed5756a2";
   };
 
   checkPhase = ''
diff --git a/pkgs/development/python-modules/pyfakefs/default.nix b/pkgs/development/python-modules/pyfakefs/default.nix
index b2dbfdba819..6bc2be39fd3 100644
--- a/pkgs/development/python-modules/pyfakefs/default.nix
+++ b/pkgs/development/python-modules/pyfakefs/default.nix
@@ -1,12 +1,12 @@
-{ stdenv, buildPythonPackage, fetchPypi, python, pytest, glibcLocales }:
+{ stdenv, buildPythonPackage, fetchPypi, python, pytest, glibcLocales, isPy37 }:
 
 buildPythonPackage rec {
-  version = "3.6.1";
+  version = "3.7.1";
   pname = "pyfakefs";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "2654c665500ea8117b55cab51d4683a83ec1c76ddfae13640e509e4aac64b308";
+    sha256 = "1eb68bb250cc14310a6e33c197cbe2c8d93832b543f534e29b58286712f7e2b2";
   };
 
   postPatch = ''
@@ -24,6 +24,8 @@ buildPythonPackage rec {
       --replace "test_rename_dir_to_existing_dir" "notest_rename_dir_to_existing_dir"
   '');
 
+  # https://github.com/jmcgeheeiv/pyfakefs/issues/508
+  doCheck = !isPy37;
   checkInputs = [ pytest glibcLocales ];
 
   checkPhase = ''
diff --git a/pkgs/development/python-modules/pyjks/default.nix b/pkgs/development/python-modules/pyjks/default.nix
new file mode 100644
index 00000000000..d9e2074fb28
--- /dev/null
+++ b/pkgs/development/python-modules/pyjks/default.nix
@@ -0,0 +1,37 @@
+{ buildPythonPackage
+, fetchPypi
+, lib
+
+# pythonPackages
+, pyasn1-modules
+, pycryptodomex
+, twofish
+}:
+
+buildPythonPackage rec {
+  pname = "pyjks";
+  version = "19.0.0";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "06h1cybsdj2wi0jf7igbr722xfm87crqn4g7m3bgrpxwi41b9rcw";
+  };
+
+  propagatedBuildInputs = [
+    pyasn1-modules
+    pycryptodomex
+    twofish
+  ];
+
+  # Tests assume network connectivity
+  doCheck = false;
+
+  meta = {
+    description = "Pure-Python Java Keystore (JKS) library";
+    homepage = "https://github.com/kurtbrose/pyjks";
+    license = lib.licenses.mit;
+    maintainers = with lib.maintainers; [
+      kamadorueda
+    ];
+  };
+}
diff --git a/pkgs/development/python-modules/pykeepass/default.nix b/pkgs/development/python-modules/pykeepass/default.nix
index bb1f60025db..1467783d76a 100644
--- a/pkgs/development/python-modules/pykeepass/default.nix
+++ b/pkgs/development/python-modules/pykeepass/default.nix
@@ -5,11 +5,11 @@
 
 buildPythonPackage rec {
   pname   = "pykeepass";
-  version = "3.0.3";
+  version = "3.1.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "2c9e2ddb03ee696ed8aa72c2cddfb81280614864e003226141d68b975aa56f6f";
+    sha256 = "280b0884243d059df888a61fd3fc77b2ea76dce4fdb1c1f60f3ab9139ca1259c";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/pymatgen/default.nix b/pkgs/development/python-modules/pymatgen/default.nix
index b60aea364c6..ecc35d35736 100644
--- a/pkgs/development/python-modules/pymatgen/default.nix
+++ b/pkgs/development/python-modules/pymatgen/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "pymatgen";
-  version = "2019.10.16";
+  version = "2019.12.22";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "a8e8b169001737cdf16bb89b26c391963ba2bead54ea510530a52586e2072234";
+    sha256 = "0ffc6efcc2ba15bff22cca29c07b93b01fac400f649c41d5dd01bfff7915f80b";
   };
 
   nativeBuildInputs = [ glibcLocales ];
diff --git a/pkgs/development/python-modules/pymavlink/default.nix b/pkgs/development/python-modules/pymavlink/default.nix
index 56a5bf07989..b909886ddb5 100644
--- a/pkgs/development/python-modules/pymavlink/default.nix
+++ b/pkgs/development/python-modules/pymavlink/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "pymavlink";
-  version = "2.4.2";
+  version = "2.4.3";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0vxqn36wldvpzag399a54r37bdgx052gv1k7akbnddcwry0n9vl0";
+    sha256 = "332d3d0291b4482641a5b3cd97e879817f50eb9c2b2ddcc30d51d619bad01b51";
   };
 
   propagatedBuildInputs = [ future lxml ];
diff --git a/pkgs/development/python-modules/pymc3/default.nix b/pkgs/development/python-modules/pymc3/default.nix
index 35e5f7aa69a..39472bb3177 100644
--- a/pkgs/development/python-modules/pymc3/default.nix
+++ b/pkgs/development/python-modules/pymc3/default.nix
@@ -16,12 +16,12 @@
 
 buildPythonPackage rec {
   pname = "pymc3";
-  version = "3.7";
+  version = "3.8";
   disabled = pythonOlder "3.5";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0ijna2ghvniryllr56qr4vi4k9q58mq21yx36nj5kg2j17f7rkbr";
+    sha256 = "1bb2915e4a29877c681ead13932b0b7d276f7f496e9c3f09ba96b977c99caf00";
   };
 
   # No need for coverage stats in Nix builds
diff --git a/pkgs/development/python-modules/pymongo/default.nix b/pkgs/development/python-modules/pymongo/default.nix
index 8748b0e559d..a10bb9169ed 100644
--- a/pkgs/development/python-modules/pymongo/default.nix
+++ b/pkgs/development/python-modules/pymongo/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "pymongo";
-  version = "3.9.0";
+  version = "3.10.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "4249c6ba45587b959292a727532826c5032d59171f923f7f823788f413c2a5a3";
+    sha256 = "c43879fe427ea6aa6e84dae9fbdc5aa14428a4cfe613fe0fee2cc004bf3f307c";
   };
 
   # Tests call a running mongodb instance
diff --git a/pkgs/development/python-modules/pymssql/default.nix b/pkgs/development/python-modules/pymssql/default.nix
index c162f065b79..954be3f40e2 100644
--- a/pkgs/development/python-modules/pymssql/default.nix
+++ b/pkgs/development/python-modules/pymssql/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "pymssql";
-  version = "2.1.4";
+  version = "3.0.3";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1yvs3azd8dkf40lybr9wvswvf4hbxn5ys9ypansmbbb328dyn09j";
+    sha256 = "4d0ed31c76983d723c0c979b18e2273623621e630ca4901f17a86128aca13f84";
   };
 
   buildInputs = [cython setuptools-git];
diff --git a/pkgs/development/python-modules/pymupdf/default.nix b/pkgs/development/python-modules/pymupdf/default.nix
index c3f36c9c219..4ff50ad7b96 100644
--- a/pkgs/development/python-modules/pymupdf/default.nix
+++ b/pkgs/development/python-modules/pymupdf/default.nix
@@ -1,11 +1,11 @@
 { stdenv, buildPythonPackage, fetchPypi, mupdf, swig }:
 buildPythonPackage rec {
   pname = "PyMuPDF";
-  version = "1.16.9";
+  version = "1.16.10";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "09h960ns42bbrv10bg99fad193yvg64snhw8x7d78wg3qqvnnicc";
+    sha256 = "d7893954f97fa6087629f3875f3be066dab51302e7c73f4c98c0516a8e2893fb";
   };
 
   patchPhase = ''
diff --git a/pkgs/development/python-modules/pyobjc/default.nix b/pkgs/development/python-modules/pyobjc/default.nix
index e71ab630b84..8576de1b379 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 = "6.0.1";
+  version = "6.1";
 
   # 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 = "f19dcd668473d61e500440569936b2272333ec385a603730c39f68a8d42b474b";
+    sha256 = "53ae86caaedc48350c6e93d6e778a0c5044e802340b6d6a679e55014758be540";
   };
 
   meta = {
diff --git a/pkgs/development/python-modules/pyodbc/default.nix b/pkgs/development/python-modules/pyodbc/default.nix
index 8064d9b6d57..bef4969d7d2 100644
--- a/pkgs/development/python-modules/pyodbc/default.nix
+++ b/pkgs/development/python-modules/pyodbc/default.nix
@@ -2,12 +2,12 @@
 
 buildPythonPackage rec {
   pname = "pyodbc";
-  version = "4.0.27";
+  version = "4.0.28";
   disabled = isPyPy;  # use pypypdbc instead
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1kd2i7hc1330cli72vawzby17c3039cqn1aba4i0zrjnpghjhmib";
+    sha256 = "510643354c4c687ed96bf7e7cec4d02d6c626ecf3e18696f5a0228dd6d11b769";
   };
 
   buildInputs = [ unixODBC ];
diff --git a/pkgs/development/python-modules/pyopenssl/default.nix b/pkgs/development/python-modules/pyopenssl/default.nix
index 018463ead54..8d5f6291c26 100644
--- a/pkgs/development/python-modules/pyopenssl/default.nix
+++ b/pkgs/development/python-modules/pyopenssl/default.nix
@@ -10,6 +10,7 @@
 , flaky
 , glibcLocales
 , six
+, fetchpatch
 }:
 
 with stdenv.lib;
@@ -64,11 +65,11 @@ in
 
 buildPythonPackage rec {
   pname = "pyOpenSSL";
-  version = "19.0.0";
+  version = "19.1.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "aeca66338f6de19d1aa46ed634c3b9ae519a64b458f8468aec688e7e3c20f200";
+    sha256 = "9a24494b2602aaf402be5c9e30a0b82d4a5c67528fe8fb475e3f3bc00dd69507";
   };
 
   outputs = [ "out" "dev" ];
@@ -80,6 +81,27 @@ buildPythonPackage rec {
     runHook postCheck
   '';
 
+  patches = [
+    # 4 patches for 2020 bug
+    # https://github.com/pyca/pyopenssl/pull/828
+    (fetchpatch {
+      url = https://github.com/pyca/pyopenssl/commit/0d2fd1a24b30077ead6960bd63b4a9893a57c101.patch;
+      sha256 = "1c27g53qrwxddyx04sxf8yvj7xgbaabla7mc1cgbfd426rncbqf3";
+    })
+    (fetchpatch {
+      url = https://github.com/pyca/pyopenssl/commit/d08a742573c3205348a4eec9a65abaf6c16110c4.patch;
+      sha256 = "18xn8s1wpycz575ivrbsbs0qd2q48z8pdzsjzh8i60xba3f8yj2f";
+    })
+    (fetchpatch {
+      url = https://github.com/pyca/pyopenssl/commit/60b9e10e6da7ccafaf722def630285f54510ed12.patch;
+      sha256 = "0aw8qvy8m0bhgp39lmbcrpprpg4bhpssm327hyrk476wwgajk01j";
+    })
+    (fetchpatch {
+      url = https://github.com/pyca/pyopenssl/commit/7a37cc23fcbe43abe785cd4badd14bdc7acfb175.patch;
+      sha256 = "1c7zb568rs71rsl16p6dq7aixwlkgzfnba4vzmfvbmy3zsnaslq2";
+    })
+  ];
+
   # Seems to fail unpredictably on Darwin. See http://hydra.nixos.org/build/49877419/nixlog/1
   # for one example, but I've also seen ContextTests.test_set_verify_callback_exception fail.
   doCheck = !stdenv.isDarwin;
diff --git a/pkgs/development/python-modules/pyparsing/default.nix b/pkgs/development/python-modules/pyparsing/default.nix
index 854ca4d90ee..a47c271b76f 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.4.5";
+    version = "2.4.6";
 
     src = fetchPypi {
       inherit pname version;
-      sha256 = "4ca62001be367f01bd3e92ecbb79070272a9d4964dce6a48a82ff0b8bc7e683a";
+      sha256 = "4c830582a84fb022400b85429791bc551f1f4871c33f23e44f353119e92f969f";
     };
 
     # Not everything necessary to run the tests is included in the distribution
diff --git a/pkgs/development/python-modules/pyperf/default.nix b/pkgs/development/python-modules/pyperf/default.nix
index 51a08e1f7ea..4b14e2e5cc6 100644
--- a/pkgs/development/python-modules/pyperf/default.nix
+++ b/pkgs/development/python-modules/pyperf/default.nix
@@ -15,11 +15,11 @@
 
 buildPythonPackage rec {
   pname = "pyperf";
-  version = "1.6.1";
+  version = "1.7.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "8d0143a22a13ee10c997a648f30b82cdc40175d5a20b11055ae058a82e45d371";
+    sha256 = "0d214aa65e085d3e4108a36152cb12f7cd0f4e7fda93b5134b43a9687c975786";
   };
 
   checkInputs = [ nose psutil ] ++
diff --git a/pkgs/development/python-modules/pyrabbit2/default.nix b/pkgs/development/python-modules/pyrabbit2/default.nix
new file mode 100644
index 00000000000..36182e9986b
--- /dev/null
+++ b/pkgs/development/python-modules/pyrabbit2/default.nix
@@ -0,0 +1,26 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, requests
+}:
+
+buildPythonPackage rec {
+  pname = "pyrabbit2";
+  version = "1.0.7";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "d27160cb35c096f0072df57307233d01b117a451236e136604a8e51be6f106c0";
+  };
+
+  propagatedBuildInputs = [
+    requests
+  ];
+
+  meta = with lib; {
+    description = "A Pythonic interface to the RabbitMQ Management HTTP API";
+    homepage = https://github.com/deslum/pyrabbit2;
+    license = licenses.mit;
+    maintainers = [ maintainers.costrouc ];
+  };
+}
diff --git a/pkgs/development/python-modules/pyro-ppl/default.nix b/pkgs/development/python-modules/pyro-ppl/default.nix
index daed808deb1..a0545ece74a 100644
--- a/pkgs/development/python-modules/pyro-ppl/default.nix
+++ b/pkgs/development/python-modules/pyro-ppl/default.nix
@@ -1,12 +1,12 @@
 { buildPythonPackage, fetchPypi, lib, pytorch, contextlib2
 , graphviz, networkx, six, opt-einsum, tqdm }:
 buildPythonPackage rec {
-  version = "0.5.1";
+  version = "1.1.0";
   pname = "pyro-ppl";
 
   src = fetchPypi {
     inherit version pname;
-    sha256 = "cac2cb2a283c65d4187b7e19f0ff3b10a0ded1f377caba4f279c7898b206cd42";
+    sha256 = "5ca2fd19276fcfcf52babb48d22892a41d6238d7a6c65e63f704b070a3816479";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/pyscreenshot/default.nix b/pkgs/development/python-modules/pyscreenshot/default.nix
index 9e9d15e5295..2865380076a 100644
--- a/pkgs/development/python-modules/pyscreenshot/default.nix
+++ b/pkgs/development/python-modules/pyscreenshot/default.nix
@@ -6,11 +6,11 @@
 
 buildPythonPackage rec {
   pname = "pyscreenshot";
-  version = "0.5.1";
+  version = "0.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "19ec6d17a61c0cd4e7fcf3ab2685598a54b53dc781755393cc5f76dcb7bf359c";
+    sha256 = "7322ad9454652b1702a3689646ce53ef01ed2b14869ea557030bd4e03a06fc0e";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/pyside/default.nix b/pkgs/development/python-modules/pyside/default.nix
index 3f20a6ae478..df309c5c68a 100644
--- a/pkgs/development/python-modules/pyside/default.nix
+++ b/pkgs/development/python-modules/pyside/default.nix
@@ -17,7 +17,7 @@ buildPythonPackage rec {
 
   buildInputs = [ mesa libGL ];
 
-  makeFlags = "QT_PLUGIN_PATH=" + pysideShiboken + "/lib/generatorrunner";
+  makeFlags = [ "QT_PLUGIN_PATH=${pysideShiboken}/lib/generatorrunner" ];
 
   meta = {
     description = "LGPL-licensed Python bindings for the Qt cross-platform application and UI framework";
diff --git a/pkgs/development/python-modules/pyside/shiboken.nix b/pkgs/development/python-modules/pyside/shiboken.nix
index 42ad55ad0b9..a968935dc06 100644
--- a/pkgs/development/python-modules/pyside/shiboken.nix
+++ b/pkgs/development/python-modules/pyside/shiboken.nix
@@ -27,7 +27,7 @@ buildPythonPackage rec {
   # gcc6 patch was also sent upstream: https://github.com/pyside/Shiboken/pull/86
   patches = [ ./gcc6.patch ] ++ (lib.optional (isPy35 || isPy36 || isPy37) ./shiboken_py35.patch);
 
-  cmakeFlags = if isPy3k then "-DUSE_PYTHON3=TRUE" else null;
+  cmakeFlags = lib.optional isPy3k "-DUSE_PYTHON3=TRUE";
 
   meta = {
     description = "Plugin (front-end) for pyside-generatorrunner, that generates bindings for C++ libraries using CPython source code";
diff --git a/pkgs/development/python-modules/pysmb/default.nix b/pkgs/development/python-modules/pysmb/default.nix
new file mode 100644
index 00000000000..07de522f796
--- /dev/null
+++ b/pkgs/development/python-modules/pysmb/default.nix
@@ -0,0 +1,36 @@
+{ buildPythonPackage
+, fetchPypi
+, lib
+
+# pythonPackages
+, pyasn1
+}:
+
+buildPythonPackage rec {
+  pname = "pysmb";
+  version = "1.1.28";
+
+  src = fetchPypi {
+    inherit pname version;
+    format = "setuptools";
+    extension = "zip";
+    sha256 = "0x44yq440c1j3xnl7qigz2fpfzhx68n9mbj7ps7rd0kj0plcmr2q";
+  };
+
+  propagatedBuildInputs = [
+    pyasn1
+  ];
+
+  # Tests require Network Connectivity and a server up and running
+  #   https://github.com/miketeo/pysmb/blob/master/python3/tests/README_1st.txt
+  doCheck = false;
+
+  meta = {
+    description = "Experimental SMB/CIFS library written in Python to support file sharing between Windows and Linux machines";
+    homepage = "https://miketeo.net/wp/index.php/projects/pysmb";
+    license = lib.licenses.zlib;
+    maintainers = with lib.maintainers; [
+      kamadorueda
+    ];
+  };
+}
diff --git a/pkgs/development/python-modules/pysocks/default.nix b/pkgs/development/python-modules/pysocks/default.nix
index ae17ed35105..e8d853d625d 100644
--- a/pkgs/development/python-modules/pysocks/default.nix
+++ b/pkgs/development/python-modules/pysocks/default.nix
@@ -5,12 +5,12 @@
 
 buildPythonPackage rec {
   pname = "pysocks";
-  version = "1.7.0";
+  version = "1.7.1";
 
   src = fetchPypi {
     pname = "PySocks";
     inherit version;
-    sha256 = "0z4p31bpqm893cf87qqgb30k7nwd8kqfjwwjm5cvxb6zbyj1w0yr";
+    sha256 = "184sg65mbmih6ljblfsxcmq5js5l7dj3gpn618w9q5dy3rbh921z";
   };
 
   doCheck = false;
diff --git a/pkgs/development/python-modules/pyspf/default.nix b/pkgs/development/python-modules/pyspf/default.nix
index 0ba230075f9..8f1fc795ea9 100644
--- a/pkgs/development/python-modules/pyspf/default.nix
+++ b/pkgs/development/python-modules/pyspf/default.nix
@@ -1,16 +1,21 @@
-{ lib, buildPythonPackage, fetchPypi, pydns }:
+{ lib, python, buildPythonPackage, fetchFromGitHub, pydns }:
 
 buildPythonPackage rec {
   pname = "pyspf";
-  version = "2.0.13"; # version 2.0.13 should not be used, see #72791
+  version = "2.0.14";
 
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "62dc1be39519e343202d480da7ef93d834b5a50cd4f217bef9335ed15292929b";
+  src = fetchFromGitHub {
+    owner = "sdgathman";
+    repo = pname;
+    rev = "pyspf-${version}";
+    sha256 = "0bmimlmwrq9glnjc4i6pwch30n3y5wyqmkjfyayxqxkfrixqwydi";
   };
 
   propagatedBuildInputs = [ pydns ];
 
+  # requires /etc/resolv.conf to exist
+  doCheck = false;
+
   meta = with lib; {
     homepage = http://bmsi.com/python/milter.html;
     description = "Python API for Sendmail Milters (SPF)";
diff --git a/pkgs/development/python-modules/pytest-benchmark/default.nix b/pkgs/development/python-modules/pytest-benchmark/default.nix
index b43c00e42d9..924f16694c5 100644
--- a/pkgs/development/python-modules/pytest-benchmark/default.nix
+++ b/pkgs/development/python-modules/pytest-benchmark/default.nix
@@ -19,7 +19,7 @@ buildPythonPackage rec {
     sha256 = "1hslzzinpwc1zqhbpllqh3sllmiyk69pcycl7ahr0rz3micgwczj";
   };
 
-  propagatedBuildInputs = [ pytest py-cpuinfo ] ++ lib.optional (pythonOlder "3.4") [ pathlib statistics ];
+  propagatedBuildInputs = [ pytest py-cpuinfo ] ++ lib.optionals (pythonOlder "3.4") [ pathlib statistics ];
 
   meta = {
     description = "Py.test fixture for benchmarking code";
diff --git a/pkgs/development/python-modules/pytest-django/default.nix b/pkgs/development/python-modules/pytest-django/default.nix
index 4480cc1afcf..6b60eb6d3c5 100644
--- a/pkgs/development/python-modules/pytest-django/default.nix
+++ b/pkgs/development/python-modules/pytest-django/default.nix
@@ -10,11 +10,11 @@
 }:
 buildPythonPackage rec {
   pname = "pytest-django";
-  version = "3.6.0";
+  version = "3.7.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "b6c900461a6a7c450dcf11736cabc289a90f5d6f28ef74c46e32e86ffd16a4bd";
+    sha256 = "17592f06d51c2ef4b7a0fb24aa32c8b6998506a03c8439606cb96db160106659";
   };
 
   nativeBuildInputs = [ pytest setuptools_scm ];
diff --git a/pkgs/development/python-modules/pytest-doctestplus/default.nix b/pkgs/development/python-modules/pytest-doctestplus/default.nix
index aa155e6b6ff..cdf60b7b07c 100644
--- a/pkgs/development/python-modules/pytest-doctestplus/default.nix
+++ b/pkgs/development/python-modules/pytest-doctestplus/default.nix
@@ -8,11 +8,11 @@
 
 buildPythonPackage rec {
   pname = "pytest-doctestplus";
-  version = "0.4.0";
+  version = "0.5.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "8872b9c236924af20c39c2813d7f1bde50a1edca7c4aba5a8bfbae3a32360e87";
+    sha256 = "41386187b9261cd59a3ffe4cf9df58d517288a1d3f11d96749b39b4e38b0a02c";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/pytest-mock/default.nix b/pkgs/development/python-modules/pytest-mock/default.nix
index c6c8b6f4f5c..c4ef0d81111 100644
--- a/pkgs/development/python-modules/pytest-mock/default.nix
+++ b/pkgs/development/python-modules/pytest-mock/default.nix
@@ -10,11 +10,11 @@
 
 buildPythonPackage rec {
   pname = "pytest-mock";
-  version = "1.11.2";
+  version = "1.13.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "04fgqm06vkg3k1ngha65g1k5a80x1g7pr11s78j2d72rj4w2ql7a";
+    sha256 = "e24a911ec96773022ebcc7030059b57cd3480b56d4f5d19b7c370ec635e6aed5";
   };
 
   propagatedBuildInputs = lib.optional (!isPy3k) mock;
diff --git a/pkgs/development/python-modules/pytest-mpl/default.nix b/pkgs/development/python-modules/pytest-mpl/default.nix
index edf0450366c..d86647b7503 100644
--- a/pkgs/development/python-modules/pytest-mpl/default.nix
+++ b/pkgs/development/python-modules/pytest-mpl/default.nix
@@ -4,15 +4,16 @@
 , pytest
 , matplotlib
 , nose
+, pillow
 }:
 
 buildPythonPackage rec {
   pname = "pytest-mpl";
-  version = "0.10";
+  version = "0.11";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "7006e63bf1ca9c50bea3d189c0f862751a16ce40bb373197b218f57af5b837c0";
+    sha256 = "26c5a47a8fdbc04652f18b65c587da642c6cc0354680ee44b16c161d9800a2ce";
   };
 
   buildInputs = [ pytest ];
@@ -20,6 +21,7 @@ buildPythonPackage rec {
   propagatedBuildInputs = [
     matplotlib
     nose
+    pillow
   ];
 
   checkInputs = [
diff --git a/pkgs/development/python-modules/pytest-qt/default.nix b/pkgs/development/python-modules/pytest-qt/default.nix
index 4ce0241f415..201da93b018 100644
--- a/pkgs/development/python-modules/pytest-qt/default.nix
+++ b/pkgs/development/python-modules/pytest-qt/default.nix
@@ -8,11 +8,11 @@
 
 buildPythonPackage rec {
   pname = "pytest-qt";
-  version = "3.2.2";
+  version = "3.3.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "f6ecf4b38088ae1092cbd5beeaf714516d1f81f8938626a2eac546206cdfe7fa";
+    sha256 = "714b0bf86c5313413f2d300ac613515db3a1aef595051ab8ba2ffe619dbe8925";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/pytest-services/default.nix b/pkgs/development/python-modules/pytest-services/default.nix
index 2a4c5591a5f..c940dcadc7e 100644
--- a/pkgs/development/python-modules/pytest-services/default.nix
+++ b/pkgs/development/python-modules/pytest-services/default.nix
@@ -6,21 +6,23 @@
 , psutil
 , pytest
 , subprocess32
+, zc_lockfile
 }:
 
 buildPythonPackage rec {
   pname = "pytest-services";
-  version = "1.3.1";
+  version = "2.0.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "035bc9ce8addb33f7c2ec95a9c0c88926d213a6c2e12b2c57da31a4ec0765f2c";
+    sha256 = "0848cead86d3816b9c4e37cecfda31d21a4366f0dca2313ea29f3ca375c6295d";
   };
 
   propagatedBuildInputs = [
     requests
     psutil
     pytest
+    zc_lockfile
   ] ++ lib.optional (!isPy3k) subprocess32;
 
   # no tests in PyPI tarball
diff --git a/pkgs/development/python-modules/pytest-testmon/default.nix b/pkgs/development/python-modules/pytest-testmon/default.nix
index ed1b754a996..b8535da4c7a 100644
--- a/pkgs/development/python-modules/pytest-testmon/default.nix
+++ b/pkgs/development/python-modules/pytest-testmon/default.nix
@@ -7,21 +7,22 @@
 
 buildPythonPackage rec {
   pname = "pytest-testmon";
-  version = "0.9.19";
+  version = "1.0.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "f622fd9d0f5a0df253f0e6773713c3df61306b64abdfb202d39a85dcba1d1f59";
+    sha256 = "b823b03faf5778d1e15fb9f52e104df4da9c1021daeb313b339fccbbfb8dbd5f";
   };
 
-  buildInputs = [ pytest ];
-
   propagatedBuildInputs = [ coverage ];
 
   checkInputs = [ pytest ];
 
+  # avoid tests which try to import unittest_mixins
+  # unittest_mixins doesn't seem to be very active
   checkPhase = ''
-    pytest --deselect=test/test_testmon.py::TestmonDeselect::test_dependent_testmodule
+    cd test
+    pytest test_{core,process_code,pytest_assumptions}.py
   '';
 
   meta = with lib; {
diff --git a/pkgs/development/python-modules/pytest/4.nix b/pkgs/development/python-modules/pytest/4.nix
index 1148c87f0ba..2524dc61afd 100644
--- a/pkgs/development/python-modules/pytest/4.nix
+++ b/pkgs/development/python-modules/pytest/4.nix
@@ -3,7 +3,7 @@
 , atomicwrites, mock, writeText, pathlib2, wcwidth, packaging, isPyPy
 }:
 buildPythonPackage rec {
-  version = "4.6.7";
+  version = "4.6.8";
   pname = "pytest";
 
   preCheck = ''
@@ -13,7 +13,7 @@ buildPythonPackage rec {
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "9ea149066f566c943d3122f4b1cf1b577cab73189d11f490b54703fa5fa9df50";
+    sha256 = "6192875be8af57b694b7c4904e909680102befcb99e610ef3d9f786952f795aa";
   };
 
   checkInputs = [ hypothesis mock ];
diff --git a/pkgs/development/python-modules/pytest/default.nix b/pkgs/development/python-modules/pytest/default.nix
index a0e26b44201..48b6e89a10e 100644
--- a/pkgs/development/python-modules/pytest/default.nix
+++ b/pkgs/development/python-modules/pytest/default.nix
@@ -3,7 +3,7 @@
 , atomicwrites, mock, writeText, pathlib2, wcwidth, packaging, isPyPy, python
 }:
 buildPythonPackage rec {
-  version = "5.2.4";
+  version = "5.3.2";
   pname = "pytest";
 
   disabled = !isPy3k;
@@ -15,7 +15,7 @@ buildPythonPackage rec {
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "ff0090819f669aaa0284d0f4aad1a6d9d67a6efdc6dd4eb4ac56b704f890a0d6";
+    sha256 = "6b571215b5a790f9b41f19f3531c53a45cf6bb8ef2988bc1ff9afb38270b25fa";
   };
 
   checkInputs = [ hypothesis mock ];
diff --git a/pkgs/development/python-modules/pytestrunner/default.nix b/pkgs/development/python-modules/pytestrunner/default.nix
index ebe1c588faa..fa937e9626c 100644
--- a/pkgs/development/python-modules/pytestrunner/default.nix
+++ b/pkgs/development/python-modules/pytestrunner/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "pytest-runner";
-  version = "5.1";
+  version = "5.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "25a013c8d84f0ca60bb01bd11913a3bcab420f601f0f236de4423074af656e7a";
+    sha256 = "96c7e73ead7b93e388c5d614770d2bae6526efd997757d3543fe17b557a0942b";
   };
 
   nativeBuildInputs = [ setuptools_scm pytest ];
diff --git a/pkgs/development/python-modules/python-gitlab/default.nix b/pkgs/development/python-modules/python-gitlab/default.nix
index 4858ef8f8a6..bbdf7aa6033 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.13.0";
+  version = "1.15.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "125zimbdprfx2j90dp19hyh60lzj11264bm494awc585pr6v9d3k";
+    sha256 = "45125a0ed4d0027d4317bdbd71ca02fc52b0ac160b9d2c3c5be131b4d19f867e";
   };
 
   propagatedBuildInputs = [ requests six ];
diff --git a/pkgs/development/python-modules/python-jenkins/default.nix b/pkgs/development/python-modules/python-jenkins/default.nix
index 79e7efc514c..aea31053c5a 100644
--- a/pkgs/development/python-modules/python-jenkins/default.nix
+++ b/pkgs/development/python-modules/python-jenkins/default.nix
@@ -15,11 +15,11 @@
 
 buildPythonPackage rec {
   pname = "python-jenkins";
-  version = "1.5.0";
+  version = "1.6.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0b11f7c1dffc48579afefa8a310cba5b1c98785b9132892ff8cf5312f32ebc90";
+    sha256 = "1aa6rnzlzdgndiwjdbnklgz5pqy5zd7d6g7bhzsvyf0614z1w010";
   };
 
   buildInputs = [ mock ];
diff --git a/pkgs/development/python-modules/python-multipart/default.nix b/pkgs/development/python-modules/python-multipart/default.nix
new file mode 100644
index 00000000000..e3e75d88604
--- /dev/null
+++ b/pkgs/development/python-modules/python-multipart/default.nix
@@ -0,0 +1,41 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, pytest
+, pytestcov
+, mock
+, pyyaml
+, six
+}:
+
+buildPythonPackage rec {
+  pname = "python-multipart";
+  version = "0.0.5";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "f7bb5f611fc600d15fa47b3974c8aa16e93724513b49b5f95c81e6624c83fa43";
+  };
+
+  checkInputs = [
+    pytest
+    pytestcov
+    mock
+    pyyaml
+  ];
+
+  propagatedBuildInputs = [
+    six
+  ];
+
+  checkPhase = ''
+    pytest
+  '';
+
+  meta = with lib; {
+    description = "A streaming multipart parser for Python";
+    homepage = https://github.com/andrew-d/python-multipart;
+    license = licenses.asl20;
+    maintainers = [ maintainers.costrouc ];
+  };
+}
diff --git a/pkgs/development/python-modules/python-rapidjson/default.nix b/pkgs/development/python-modules/python-rapidjson/default.nix
index 213a1386a9b..9c2b18ba006 100644
--- a/pkgs/development/python-modules/python-rapidjson/default.nix
+++ b/pkgs/development/python-modules/python-rapidjson/default.nix
@@ -8,13 +8,13 @@
 }:
 
 buildPythonPackage rec {
-  version = "0.8.0";
+  version = "0.9.1";
   pname = "python-rapidjson";
   disabled = pythonOlder "3.4";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "13fgy5bqslx913p9gachj9djk3g6wx1igwaccfnxjl2msrbwclwp";
+    sha256 = "ad80bd7e4bb15d9705227630037a433e2e2a7982b54b51de2ebabdd1611394a1";
   };
 
   LC_ALL="en_US.utf-8";
diff --git a/pkgs/development/python-modules/python-redis-lock/default.nix b/pkgs/development/python-modules/python-redis-lock/default.nix
index 65c5e08d934..8aad5a1a7d2 100644
--- a/pkgs/development/python-modules/python-redis-lock/default.nix
+++ b/pkgs/development/python-modules/python-redis-lock/default.nix
@@ -10,11 +10,11 @@
 
 buildPythonPackage rec {
   pname = "python-redis-lock";
-  version = "3.3.1";
+  version = "3.4.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "5316d473ce6ce86a774b9f9c110d84c3a9bd1a2abfda5d99e9c0c8a872a8e6d6";
+    sha256 = "8e3ef458b9424daf35d587e69b63416a0c55ac46303f3aaff1bab4fe5a8f1e92";
   };
 
   checkInputs = [ pytest process-tests pkgs.redis ];
diff --git a/pkgs/development/python-modules/python-socketio/default.nix b/pkgs/development/python-modules/python-socketio/default.nix
index a666a6428e7..8f85f991534 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 = "4.3.1";
+  version = "4.4.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "506b2cf7a520b40ea0b3f25e1272eff8de134dce6f471c1f6bc0de8c90fe8c57";
+    sha256 = "48cba5b827ac665dbf923a4f5ec590812aed5299a831fc43576a9af346272534";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/python-uinput/default.nix b/pkgs/development/python-modules/python-uinput/default.nix
index ba5a527fdb0..8f6c7c54cb2 100644
--- a/pkgs/development/python-modules/python-uinput/default.nix
+++ b/pkgs/development/python-modules/python-uinput/default.nix
@@ -12,7 +12,7 @@ buildPythonPackage rec {
 
   buildInputs = [ udev ];
 
-  NIX_CFLAGS_LINK = [ "-ludev" ];
+  NIX_CFLAGS_LINK = "-ludev";
 
   meta = with stdenv.lib; {
     description = "Pythonic API to Linux uinput kernel module";
diff --git a/pkgs/development/python-modules/python2-pythondialog/default.nix b/pkgs/development/python-modules/python2-pythondialog/default.nix
index 144887c75b3..a19156d1018 100644
--- a/pkgs/development/python-modules/python2-pythondialog/default.nix
+++ b/pkgs/development/python-modules/python2-pythondialog/default.nix
@@ -6,12 +6,12 @@
 
 buildPythonPackage rec {
   pname = "python2-pythondialog";
-  version = "3.4.0";
+  version = "3.5.1";
   disabled = isPy3k;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "a96d9cea9a371b5002b5575d1ec351233112519268d382ba6f3582323b3d1335";
+    sha256 = "ad159c7b455d9cb2a5173590656d19a26e9cc208264cfab755f5827070d18613";
   };
 
   patchPhase = ''
diff --git a/pkgs/development/python-modules/python_openzwave/cython.patch b/pkgs/development/python-modules/python_openzwave/cython.patch
new file mode 100644
index 00000000000..e01ffdbdc0d
--- /dev/null
+++ b/pkgs/development/python-modules/python_openzwave/cython.patch
@@ -0,0 +1,20 @@
+diff --git a/pyozw_setup.py b/pyozw_setup.py
+index b201840..37bf2a8 100644
+--- a/pyozw_setup.py
++++ b/pyozw_setup.py
+@@ -257,13 +257,13 @@ class Template(object):
+         if sys.platform.startswith("win"):
+             return ['Cython']
+         else:
+-            return ['Cython==0.28.6']
++            return ['Cython>=0.28.6']
+ 
+     def build_requires(self):
+         if sys.platform.startswith("win"):
+             return ['Cython']
+         else:
+-            return ['Cython==0.28.6']
++            return ['Cython>=0.28.6']
+ 
+     def build(self):
+         if len(self.ctx['extra_objects']) == 1 and os.path.isfile(self.ctx['extra_objects'][0]):
diff --git a/pkgs/development/python-modules/python_openzwave/default.nix b/pkgs/development/python-modules/python_openzwave/default.nix
index ae3f0ba933a..bb8d236335c 100644
--- a/pkgs/development/python-modules/python_openzwave/default.nix
+++ b/pkgs/development/python-modules/python_openzwave/default.nix
@@ -1,6 +1,6 @@
 { stdenv, buildPythonPackage, fetchPypi, isPy3k
 , pkgconfig
-, systemd, libyaml, openzwave, cython
+, systemd, libyaml, openzwave, cython, pyserial
 , six, pydispatcher, urwid }:
 
 buildPythonPackage rec {
@@ -17,7 +17,7 @@ buildPythonPackage rec {
 
   nativeBuildInputs = [ pkgconfig ];
   buildInputs = [ systemd libyaml openzwave cython ];
-  propagatedBuildInputs = [ six urwid pydispatcher ];
+  propagatedBuildInputs = [ six urwid pydispatcher pyserial ];
 
   # primary location for the .xml files is in /etc/openzwave so we override the
   # /usr/local/etc lookup instead as that allows us to dump new .xml files into
@@ -27,6 +27,8 @@ buildPythonPackage rec {
       --replace /usr/local/etc/openzwave ${openzwave}/etc/openzwave
   '';
 
+  patches = [ ./cython.patch ];
+
   # no tests available
   doCheck = false;
 
diff --git a/pkgs/development/python-modules/pythondialog/default.nix b/pkgs/development/python-modules/pythondialog/default.nix
index d19fbd27116..4f54c5a8fad 100644
--- a/pkgs/development/python-modules/pythondialog/default.nix
+++ b/pkgs/development/python-modules/pythondialog/default.nix
@@ -6,12 +6,12 @@
 
 buildPythonPackage rec {
   pname = "pythondialog";
-  version = "3.5.0";
+  version = "3.5.1";
   disabled = !isPy3k;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "11ydvllwll23qmcd3saachcxzn1dj5if3kc36p37ncf06xc5c0m4";
+    sha256 = "34a0687290571f37d7d297514cc36bd4cd044a3a4355271549f91490d3e7ece8";
   };
 
   patchPhase = ''
diff --git a/pkgs/development/python-modules/pythonirclib/default.nix b/pkgs/development/python-modules/pythonirclib/default.nix
index d4f81a82546..6074b76d300 100644
--- a/pkgs/development/python-modules/pythonirclib/default.nix
+++ b/pkgs/development/python-modules/pythonirclib/default.nix
@@ -21,7 +21,7 @@ buildPythonPackage rec {
     sha256 = "5fb8d95d6c95c93eaa400b38447c63e7a176b9502bc49b2f9b788c9905f4ec5e";
   })];
 
-  patchFlags = "irclib.py";
+  patchFlags = [ "irclib.py" ];
 
   propagatedBuildInputs = [ paver ];
 
diff --git a/pkgs/development/python-modules/pyunifi/default.nix b/pkgs/development/python-modules/pyunifi/default.nix
index f2395605d3a..c87d9d465bc 100644
--- a/pkgs/development/python-modules/pyunifi/default.nix
+++ b/pkgs/development/python-modules/pyunifi/default.nix
@@ -3,11 +3,11 @@
 
 buildPythonPackage rec {
   pname = "pyunifi";
-  version = "2.18";
+  version = "2.19.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0875b830db93ed3270aee38ea24d3da9328672f0c499f0e432c895e0b02eadc9";
+    sha256 = "f022eb2135b88a9d391f4553fac1bf90f3808d660fd0058203f6f9e57214626b";
   };
 
   propagatedBuildInputs = [ requests ];
diff --git a/pkgs/development/python-modules/pyvcd/default.nix b/pkgs/development/python-modules/pyvcd/default.nix
index 0f97616e640..aff3280e86c 100644
--- a/pkgs/development/python-modules/pyvcd/default.nix
+++ b/pkgs/development/python-modules/pyvcd/default.nix
@@ -6,12 +6,12 @@
 , pytest }:
 
 buildPythonPackage rec {
-  version = "0.1.5";
+  version = "0.1.6";
   pname = "pyvcd";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "9e796f8d00d8392716bef9759f118231f5d77d2fff79d8a32151e3bb5579ff25";
+    sha256 = "285fcd96c3ee482e7b222bdd01d5dd19c2f5a0ad9b8e950baa98d386a2758c8f";
   };
 
   buildInputs = [ setuptools_scm ];
diff --git a/pkgs/development/python-modules/pywbem/default.nix b/pkgs/development/python-modules/pywbem/default.nix
index d87d772db14..c5ffb79a5d6 100644
--- a/pkgs/development/python-modules/pywbem/default.nix
+++ b/pkgs/development/python-modules/pywbem/default.nix
@@ -5,14 +5,14 @@
 
 buildPythonPackage rec {
   pname = "pywbem";
-  version = "0.14.6";
+  version = "0.15.0";
 
   # Support added in master https://github.com/pywbem/pywbem/commit/b2f2f1a151a30355bbc6652dca69a7b30bfe941e awaiting release
   disabled = isPy37;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "5ed6ac486a0a363848f2091a49ddc1c4e0871c6feb71766cc0e266e9c6fd084f";
+    sha256 = "6f4304518b2ba89a97bd4f5f0decc8ad382b38a9303032ae17a1a601d95d24b8";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/pywinrm/default.nix b/pkgs/development/python-modules/pywinrm/default.nix
index 3bdc5efaaa5..9ed44c83b60 100644
--- a/pkgs/development/python-modules/pywinrm/default.nix
+++ b/pkgs/development/python-modules/pywinrm/default.nix
@@ -11,11 +11,11 @@
 
 buildPythonPackage rec {
   pname = "pywinrm";
-  version = "0.3.0";
+  version = "0.4.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "799fc3e33fec8684443adf5778860388289102ea4fa1458f1bf307d167855573";
+    sha256 = "4ede5c6c85b53780ad0dbf9abef2fa2ea58f44c82256a84a63eae5f1205cea81";
   };
 
   checkInputs = [ mock pytest ];
diff --git a/pkgs/development/python-modules/pyxattr/default.nix b/pkgs/development/python-modules/pyxattr/default.nix
index 7a137f5204c..cba29c5cc9e 100644
--- a/pkgs/development/python-modules/pyxattr/default.nix
+++ b/pkgs/development/python-modules/pyxattr/default.nix
@@ -6,11 +6,11 @@
 
 buildPythonPackage rec {
     pname = "pyxattr";
-    version = "0.6.1";
+    version = "0.7.1";
 
     src = fetchPypi {
       inherit pname version;
-      sha256 = "b525843f6b51036198b3b87c4773a5093d6dec57d60c18a1f269dd7059aa16e3";
+      sha256 = "965388dd629334e850aa989a67d2360ec8257cfe8f67d07c29f980d3152f2882";
     };
 
     # IOError: [Errno 95] Operation not supported (expected)
diff --git a/pkgs/development/python-modules/pyxl3/default.nix b/pkgs/development/python-modules/pyxl3/default.nix
index 2f73a85db7b..c30dd0f024f 100644
--- a/pkgs/development/python-modules/pyxl3/default.nix
+++ b/pkgs/development/python-modules/pyxl3/default.nix
@@ -8,12 +8,12 @@
 
 buildPythonPackage rec {
   pname = "pyxl3";
-  version = "1.2";
+  version = "1.3";
   disabled = isPy27;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "f1fc74d2ab59073ef6bf0ce01b4f2891366bbf89a8187de85433486b284df758";
+    sha256 = "23831c6d60b2ce3fbb39966f6fb21a5e053d6ce0bd08b00bb50fa388631b69ee";
   };
 
   checkInputs = [ unittest2 ];
diff --git a/pkgs/development/python-modules/pyyaml/default.nix b/pkgs/development/python-modules/pyyaml/default.nix
index a5cf530a300..316e9974cfe 100644
--- a/pkgs/development/python-modules/pyyaml/default.nix
+++ b/pkgs/development/python-modules/pyyaml/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "PyYAML";
-  version = "5.1.2";
+  version = "5.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "01adf0b6c6f61bd11af6e10ca52b7d4057dd0be0343eb9283c878cf3af56aee4";
+    sha256 = "c0ee8eca2c582d29c3c2ec6e2c4f703d1b7f1fb10bc72317355a746057e7346c";
   };
 
   # force regeneration using Cython
diff --git a/pkgs/development/python-modules/qimage2ndarray/default.nix b/pkgs/development/python-modules/qimage2ndarray/default.nix
index 73a0004e654..646d326fede 100644
--- a/pkgs/development/python-modules/qimage2ndarray/default.nix
+++ b/pkgs/development/python-modules/qimage2ndarray/default.nix
@@ -6,12 +6,12 @@
 
 buildPythonPackage rec {
   pname = "qimage2ndarray";
-  version = "1.8";
+  version = "1.8.2";
   disabled = !isPy3k;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "7b9eb08a9be27f5439289d90d7d5a5942aad403d5634fe336eb915678c65db48";
+    sha256 = "0f792693a0f1cd5f93fbf73bc3fb2d511fb9cceed3c9308bfb200f38c19a5545";
   };
 
   checkInputs = [
diff --git a/pkgs/development/python-modules/qiskit/default.nix b/pkgs/development/python-modules/qiskit/default.nix
index 4d84ac07a04..89d02f7b803 100644
--- a/pkgs/development/python-modules/qiskit/default.nix
+++ b/pkgs/development/python-modules/qiskit/default.nix
@@ -21,13 +21,13 @@
 
 buildPythonPackage rec {
   pname = "qiskit";
-  version = "0.13.0";
+  version = "0.14.0";
 
   disabled = !isPy3k;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "e9c0f23dddb0af27e2bfb920f6ea8600516fa68ec9ae97639faf858ba5d28020";
+    sha256 = "d086a21d0eee61bb12e1f2cd6148a7292005fd10584ca33d6c404dd5c53ba95f";
   };
 
   buildInputs = [ cmake ]
diff --git a/pkgs/development/python-modules/qtconsole/default.nix b/pkgs/development/python-modules/qtconsole/default.nix
index 95ee3a864e6..885eee8d4b6 100644
--- a/pkgs/development/python-modules/qtconsole/default.nix
+++ b/pkgs/development/python-modules/qtconsole/default.nix
@@ -14,11 +14,11 @@
 
 buildPythonPackage rec {
   pname = "qtconsole";
-  version = "4.5.5";
+  version = "4.6.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1nf64wl3ni0q69ihcm5y6zl12mmg7gvkhrb98hbgwv3yb09787mr";
+    sha256 = "654f423662e7dfe6a9b26fac8ec76aedcf742c339909ac49f1f0c1a1b744bcd1";
   };
 
   checkInputs = [ nose ] ++ lib.optionals isPy27 [mock];
diff --git a/pkgs/development/python-modules/quandl/default.nix b/pkgs/development/python-modules/quandl/default.nix
index fc4c192968f..385c51bcd3b 100644
--- a/pkgs/development/python-modules/quandl/default.nix
+++ b/pkgs/development/python-modules/quandl/default.nix
@@ -40,7 +40,7 @@ buildPythonPackage rec {
     python-dateutil
     six
     more-itertools
-  ] ++ lib.optional (!isPy3k) [
+  ] ++ lib.optionals (!isPy3k) [
     pyOpenSSL
     ndg-httpsclient
     pyasn1
diff --git a/pkgs/development/python-modules/rainbowstream/default.nix b/pkgs/development/python-modules/rainbowstream/default.nix
index ca6e4614f33..7fc7f057009 100644
--- a/pkgs/development/python-modules/rainbowstream/default.nix
+++ b/pkgs/development/python-modules/rainbowstream/default.nix
@@ -15,11 +15,11 @@
 
 buildPythonPackage rec {
   pname = "rainbowstream";
-  version = "1.4.0";
+  version = "1.5.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "16881d8bb15416389eeaf4ceee7a588069060c216b55e7602dbcff5134feb7cc";
+    sha256 = "527d39778c55d88300fe2017913341bfa1b1f0ffdc1fe5eab57a82bf4cd2edb3";
   };
 
   patches = [ ./image.patch ];
diff --git a/pkgs/development/python-modules/readme_renderer/default.nix b/pkgs/development/python-modules/readme_renderer/default.nix
index df943cfcca4..8369c3df943 100644
--- a/pkgs/development/python-modules/readme_renderer/default.nix
+++ b/pkgs/development/python-modules/readme_renderer/default.nix
@@ -28,7 +28,8 @@ buildPythonPackage rec {
 
   checkPhase = ''
     # disable one failing test case
-    py.test -k "not test_invalid_link"
+    # fixtures test is failing for incorrect class name
+    py.test -k "not test_invalid_link and not fixtures"
   '';
 
   meta = {
diff --git a/pkgs/development/python-modules/regex/default.nix b/pkgs/development/python-modules/regex/default.nix
index ec2b872c7f8..5a0cb50903a 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 = "2019.08.19";
+  version = "2019.12.20";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "587b62d48ca359d2d4f02d486f1f0aa9a20fbaf23a9d4198c4bed72ab2f6c849";
+    sha256 = "106e25a841921d8259dcef2a42786caae35bc750fb996f830065b3dfaa67b77e";
   };
 
   postCheck = ''
diff --git a/pkgs/development/python-modules/remotecv/default.nix b/pkgs/development/python-modules/remotecv/default.nix
index a4d1dcc485e..5c401fe799b 100644
--- a/pkgs/development/python-modules/remotecv/default.nix
+++ b/pkgs/development/python-modules/remotecv/default.nix
@@ -34,5 +34,6 @@ buildPythonPackage rec {
     homepage = https://github.com/thumbor/remotecv/wiki;
     license = licenses.mit;
     maintainers = with maintainers; [ jluttine ];
+    broken = true; # no longer compatible with latest pillow
   };
 }
diff --git a/pkgs/development/python-modules/requirements-detector/default.nix b/pkgs/development/python-modules/requirements-detector/default.nix
new file mode 100644
index 00000000000..a0f312389f1
--- /dev/null
+++ b/pkgs/development/python-modules/requirements-detector/default.nix
@@ -0,0 +1,38 @@
+{ buildPythonPackage
+, fetchFromGitHub
+, isPy27
+, lib
+
+# pythonPackages
+, pytest
+}:
+
+buildPythonPackage rec {
+  pname = "requirements-detector";
+  version = "0.6";
+  disabled = isPy27;
+
+  src = fetchFromGitHub {
+    owner = "yuvadm";
+    repo = pname;
+    rev = version;
+    sha256 = "15s0n1lhkz0zwi33waqkkjipal3f7s45rxsj1bw89xpr4dj87qx5";
+  };
+
+  checkInputs = [
+    pytest
+  ];
+
+  checkPhase = ''
+    pytest
+  '';
+
+  meta = {
+    description = "Python tool to find and list requirements of a Python project";
+    homepage = "https://github.com/landscapeio/requirements-detector";
+    license = lib.licenses.mit;
+    maintainers = with lib.maintainers; [
+      kamadorueda
+    ];
+  };
+}
diff --git a/pkgs/development/python-modules/responses/default.nix b/pkgs/development/python-modules/responses/default.nix
index 98cf19a8f0a..e98aad824b6 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.7";
+  version = "0.10.9";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "46d4e546a19fc6106bc7e804edd4551ef04690405e41e7e750ebc295d042623b";
+    sha256 = "8ce8cb4e7e1ad89336f8865af152e0563d2e7f0e0b86d2cf75f015f819409243";
   };
 
   propagatedBuildInputs = [ cookies mock requests six ];
diff --git a/pkgs/development/python-modules/rlp/default.nix b/pkgs/development/python-modules/rlp/default.nix
index c8c4315b66b..303a8bc6d7f 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.1.0";
+  version = "1.2.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0742hdnhwcx1bm7pdk83290rxfcb0i2xskgl8yn6lg8fql1hms7b";
+    sha256 = "27273fc2dbc3513c1e05ea6b8af28aac8745fb09c164e39e2ed2807bf7e1b342";
   };
 
   checkInputs = [ pytest hypothesis ];
diff --git a/pkgs/development/python-modules/rpy2/default.nix b/pkgs/development/python-modules/rpy2/default.nix
index bc4bc0bcb5b..5a00b18557a 100644
--- a/pkgs/development/python-modules/rpy2/default.nix
+++ b/pkgs/development/python-modules/rpy2/default.nix
@@ -24,13 +24,13 @@
 }:
 
 buildPythonPackage rec {
-    version = "3.2.2";
+    version = "3.2.4";
     pname = "rpy2";
 
     disabled = isPyPy;
     src = fetchPypi {
       inherit version pname;
-      sha256 = "0b3jpn9x7m2pccriyzgfsdb68qp6nq4ffhvjy1q2ar8wdxvmf5xp";
+      sha256 = "3daf1a4b28c4e354ef989093f03b066908bf6e5082a6f4af72cc3fd928a28dc6";
     };
 
     buildInputs = [
diff --git a/pkgs/development/python-modules/runway-python/default.nix b/pkgs/development/python-modules/runway-python/default.nix
index c54c5d73cf6..5c60b6379e9 100644
--- a/pkgs/development/python-modules/runway-python/default.nix
+++ b/pkgs/development/python-modules/runway-python/default.nix
@@ -13,11 +13,11 @@
 
 buildPythonPackage rec {
   pname = "runway-python";
-  version = "0.5.4";
+  version = "0.5.7";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "c5293bca6589747db687c593b81f52dc9df8155367ffa57ddc1993a6f9d95bde";
+    sha256 = "06e0138cc4cf2ddb7304502f5c7b53269ce73679c5784c8d6b423db04d179c18";
   };
 
   propagatedBuildInputs = [ flask flask-cors numpy pillow gevent wget six colorcet ];
diff --git a/pkgs/development/python-modules/s3fs/default.nix b/pkgs/development/python-modules/s3fs/default.nix
index f04274d6b50..0f800c14fa9 100644
--- a/pkgs/development/python-modules/s3fs/default.nix
+++ b/pkgs/development/python-modules/s3fs/default.nix
@@ -1,16 +1,16 @@
-{ stdenv, buildPythonPackage, fetchPypi, docutils, boto3 }:
+{ stdenv, buildPythonPackage, fetchPypi, docutils, boto3, fsspec }:
 
 buildPythonPackage rec {
   pname = "s3fs";
-  version = "0.3.5";
+  version = "0.4.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "f1d8d80ae7789e6c95f8432e3ec12d1c28e624aecf8c84afed373fb182b505ab";
+    sha256 = "504a41ecb9edf0bd7798847b61839954e50508c5235ec7ee48c539ce46b4fa18";
   };
 
   buildInputs = [ docutils ];
-  propagatedBuildInputs = [ boto3 ];
+  propagatedBuildInputs = [ boto3 fsspec ];
 
   # Depends on `moto` which has a long dependency chain with exact
   # version requirements that can't be made to work with current
diff --git a/pkgs/development/python-modules/scapy/default.nix b/pkgs/development/python-modules/scapy/default.nix
index 8f51b1eda21..4f058a0761b 100644
--- a/pkgs/development/python-modules/scapy/default.nix
+++ b/pkgs/development/python-modules/scapy/default.nix
@@ -34,13 +34,13 @@ buildPythonPackage rec {
   '';
 
   propagatedBuildInputs = [ pycrypto ecdsa ]
-    ++ lib.optional withOptionalDeps [ tcpdump ipython ]
-    ++ lib.optional withCryptography [ cryptography ]
-    ++ lib.optional withVoipSupport [ sox ]
-    ++ lib.optional withPlottingSupport [ matplotlib ]
-    ++ lib.optional withGraphicsSupport [ pyx texlive.combined.scheme-minimal graphviz imagemagick ]
-    ++ lib.optional (isPy3k && pythonOlder "3.4") [ enum34 ]
-    ++ lib.optional doCheck [ mock ];
+    ++ lib.optionals withOptionalDeps [ tcpdump ipython ]
+    ++ lib.optional withCryptography cryptography
+    ++ lib.optional withVoipSupport sox
+    ++ lib.optional withPlottingSupport matplotlib
+    ++ lib.optionals withGraphicsSupport [ pyx texlive.combined.scheme-minimal graphviz imagemagick ]
+    ++ lib.optional (isPy3k && pythonOlder "3.4") enum34
+    ++ lib.optional doCheck mock;
 
   # Tests fail with Python 3.6 (seems to be an upstream bug, I'll investigate)
   doCheck = if isPy3k then false else true;
diff --git a/pkgs/development/python-modules/scikit-build/default.nix b/pkgs/development/python-modules/scikit-build/default.nix
index 5132d32bfba..8d459e24984 100644
--- a/pkgs/development/python-modules/scikit-build/default.nix
+++ b/pkgs/development/python-modules/scikit-build/default.nix
@@ -12,9 +12,6 @@ buildPythonPackage rec {
     sha256 = "7342017cc82dd6178e3b19377389b8a8d1f8b429d9cdb315cfb1094e34a0f526";
   };
 
-  # Fixes incorrect specified requirement (part of next release)
-  patches = [ ./fix_pytestrunner_req.patch ];
-
   propagatedBuildInputs = [ wheel setuptools packaging ];
   checkInputs = [ 
     cmake ninja cython codecov coverage six pathpy
diff --git a/pkgs/development/python-modules/scikit-build/fix_pytestrunner_req.patch b/pkgs/development/python-modules/scikit-build/fix_pytestrunner_req.patch
deleted file mode 100644
index e8e19f84a5d..00000000000
--- a/pkgs/development/python-modules/scikit-build/fix_pytestrunner_req.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-diff --git a/setup.py b/setup.py
-index dd348fa..4de89c6 100755
---- a/setup.py
-+++ b/setup.py
-@@ -22,7 +22,7 @@ with open('requirements-dev.txt', 'r') as fp:
-     dev_requirements = list(filter(bool, (line.strip() for line in fp)))
- 
- # Require pytest-runner only when running tests
--pytest_runner = (['pytest-runner>=2.0,<3dev']
-+pytest_runner = (['pytest-runner>=2.0']
-                  if any(arg in sys.argv for arg in ('pytest', 'test'))
-                  else [])
- 
diff --git a/pkgs/development/python-modules/scipy/default.nix b/pkgs/development/python-modules/scipy/default.nix
index 682d70df393..6c62adb7821 100644
--- a/pkgs/development/python-modules/scipy/default.nix
+++ b/pkgs/development/python-modules/scipy/default.nix
@@ -1,17 +1,24 @@
-{lib, fetchPypi, python, buildPythonPackage, gfortran, nose, pytest, numpy}:
-
-buildPythonPackage rec {
+{lib, fetchPypi, python, buildPythonPackage, gfortran, nose, pytest, numpy, pybind11}:
+
+let
+  pybind = pybind11.overridePythonAttrs(oldAttrs: {
+    cmakeFlags = oldAttrs.cmakeFlags ++ [
+      "-DPYBIND11_TEST=off"
+    ];
+    doCheck = false; # Circular test dependency
+  });
+in buildPythonPackage rec {
   pname = "scipy";
-  version = "1.3.3";
+  version = "1.4.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "64bf4e8ae0db2d42b58477817f648d81e77f0b381d0ea4427385bba3f959380a";
+    sha256 = "dee1bbf3a6c8f73b6b218cb28eed8dd13347ea2f87d572ce19b289d6fd3fbc59";
   };
 
   checkInputs = [ nose pytest ];
   nativeBuildInputs = [ gfortran ];
-  buildInputs = [ numpy.blas ];
+  buildInputs = [ numpy.blas pybind ];
   propagatedBuildInputs = [ numpy ];
 
   # Remove tests because of broken wrapper
@@ -19,9 +26,7 @@ buildPythonPackage rec {
     rm scipy/linalg/tests/test_lapack.py
   '';
 
-  # INTERNALERROR, solved with https://github.com/scipy/scipy/pull/8871
-  # however, it does not apply cleanly.
-  doCheck = false;
+  doCheck = true;
 
   preConfigure = ''
     sed -i '0,/from numpy.distutils.core/s//import setuptools;from numpy.distutils.core/' setup.py
diff --git a/pkgs/development/python-modules/scrapy/default.nix b/pkgs/development/python-modules/scrapy/default.nix
index 14ab6e51582..8fee4b6631a 100644
--- a/pkgs/development/python-modules/scrapy/default.nix
+++ b/pkgs/development/python-modules/scrapy/default.nix
@@ -2,7 +2,7 @@
   testfixtures, pillow, six, twisted, w3lib, lxml, queuelib, pyopenssl,
   service-identity, parsel, pydispatcher, cssselect, lib }:
 buildPythonPackage rec {
-  version = "1.7.4";
+  version = "1.8.0";
   pname = "Scrapy";
 
   checkInputs = [ glibcLocales mock pytest botocore testfixtures pillow ];
@@ -31,7 +31,7 @@ buildPythonPackage rec {
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "f0813d23a3f5659f403f469b11488ecd81e989e834205c4366cd231536496513";
+    sha256 = "fe06576f9a4971de9dc0175c60fd92561e8275f2bad585c1cb5d65c5181b2db0";
   };
 
   postInstall = ''
diff --git a/pkgs/development/python-modules/semantic-version/default.nix b/pkgs/development/python-modules/semantic-version/default.nix
index 66499224564..f2df3c99b2a 100644
--- a/pkgs/development/python-modules/semantic-version/default.nix
+++ b/pkgs/development/python-modules/semantic-version/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "semantic_version";
-  version = "2.8.3";
+  version = "2.8.4";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "9dcc6fbad58da3c4d5eee2287025e226bb05c39463f14b741357801baae9dcce";
+    sha256 = "352459f640f3db86551d8054d1288608b29a96e880c7746f0a59c92879d412a3";
   };
 
   # ModuleNotFoundError: No module named 'tests'
diff --git a/pkgs/development/python-modules/shodan/default.nix b/pkgs/development/python-modules/shodan/default.nix
index 8cad6885570..52dc89e3a96 100644
--- a/pkgs/development/python-modules/shodan/default.nix
+++ b/pkgs/development/python-modules/shodan/default.nix
@@ -10,11 +10,11 @@
 
 buildPythonPackage rec {
   pname = "shodan";
-  version = "1.20.0";
+  version = "1.21.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "163fbz06xg4ncvmgsg85x2689zd1bvycc3506xqvcgh8xcz3izif";
+    sha256 = "834dfd084fed290b2b445545b0d1cac7822f3c0ed6ba09707efb1716bb485ede";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/shutilwhich/default.nix b/pkgs/development/python-modules/shutilwhich/default.nix
new file mode 100644
index 00000000000..d88141c8b35
--- /dev/null
+++ b/pkgs/development/python-modules/shutilwhich/default.nix
@@ -0,0 +1,30 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, pytest
+}:
+
+buildPythonPackage rec {
+  pname = "shutilwhich";
+  version = "1.1.0";
+
+  src = fetchFromGitHub {
+    owner = "mbr";
+    repo = pname;
+    rev = version;
+    sha256 = "05fwcjn86w8wprck04iv1zccfi39skdf0lhwpb4b9gpvklyc9mj0";
+  };
+
+  checkInputs = [ pytest ];
+
+  checkPhase = ''
+    pytest -rs
+  '';
+
+  meta = with lib; {
+    description = "Backport of shutil.which";
+    license = licenses.psfl;
+    homepage = https://github.com/mbr/shutilwhich;
+    maintainers = with maintainers; [ multun ];
+  };
+}
diff --git a/pkgs/development/python-modules/simplejson/default.nix b/pkgs/development/python-modules/simplejson/default.nix
index abd4854c73f..54e19d2e604 100644
--- a/pkgs/development/python-modules/simplejson/default.nix
+++ b/pkgs/development/python-modules/simplejson/default.nix
@@ -7,14 +7,14 @@
 
 buildPythonPackage rec {
   pname = "simplejson";
-  version = "3.16.1";
+  version = "3.17.0";
   doCheck = !stdenv.isDarwin;
 
   src = fetchFromGitHub {
     owner = pname;
     repo = pname;
     rev = "v${version}";
-    sha256 = "1v80dbk3ajhgz7q5cc8k0dd22zj9rrlz838c90l5g3w1i280r1iq";
+    sha256 = "1b1hhh1dia673vhq3jl2br1iqwb9yjii6iak56w96s9972vjbz3z";
   };
 
   # Package does not need pytest, but its a bit easier debugging.
diff --git a/pkgs/development/python-modules/six/default.nix b/pkgs/development/python-modules/six/default.nix
index 78e7a5f0538..8bfd32aa093 100644
--- a/pkgs/development/python-modules/six/default.nix
+++ b/pkgs/development/python-modules/six/default.nix
@@ -6,11 +6,11 @@
 
 buildPythonPackage rec {
   pname = "six";
-  version = "1.12.0";
+  version = "1.13.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "d16a0141ec1a18405cd4ce8b4613101da75da0e9a7aec5bdd4fa804d0e0eba73";
+    sha256 = "30f610279e8b2578cab6db20741130331735c781b56053c59c4076da27f06b66";
   };
 
   checkInputs = [ pytest ];
diff --git a/pkgs/development/python-modules/slicedimage/default.nix b/pkgs/development/python-modules/slicedimage/default.nix
index edc21e3292d..3273e5fe3a3 100644
--- a/pkgs/development/python-modules/slicedimage/default.nix
+++ b/pkgs/development/python-modules/slicedimage/default.nix
@@ -17,11 +17,11 @@
 
 buildPythonPackage rec {
   pname = "slicedimage";
-  version = "4.0.5";
+  version = "4.1.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "c8e8759a013a0936ec9f7ffcd37fc64df69af913b4f26342c2501b8c3663d9bb";
+    sha256 = "7369f1d7fa09f6c9969625c4b76a8a63d2507a94c6fc257183da1c10261703e9";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/slither-analyzer/default.nix b/pkgs/development/python-modules/slither-analyzer/default.nix
index 1619d9e112c..0f12dbb8850 100644
--- a/pkgs/development/python-modules/slither-analyzer/default.nix
+++ b/pkgs/development/python-modules/slither-analyzer/default.nix
@@ -6,7 +6,7 @@
 
 buildPythonPackage rec {
   pname = "slither-analyzer";
-  version = "0.3.0";
+  version = "0.6.9";
 
   disabled = pythonOlder "3.6";
 
@@ -15,7 +15,7 @@ buildPythonPackage rec {
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "10vrcqm371kqmf702xmqmzimv3xgrn3k3ip06nr1l6gnj3jk138g";
+    sha256 = "fb057eb7f5416ac76b6ab03bb5c20c39cb7b97c7689ce1e7244c9088bd28f513";
   };
 
   nativeBuildInputs = [ makeWrapper ];
diff --git a/pkgs/development/python-modules/snowflake-connector-python/default.nix b/pkgs/development/python-modules/snowflake-connector-python/default.nix
new file mode 100644
index 00000000000..eb8be17797f
--- /dev/null
+++ b/pkgs/development/python-modules/snowflake-connector-python/default.nix
@@ -0,0 +1,65 @@
+{ buildPythonPackage
+, asn1crypto
+, azure-storage-blob
+, boto3
+, certifi
+, cffi
+, fetchPypi
+, future
+, idna
+, ijson
+, isPy3k
+, lib
+, oscrypto
+, pyarrow
+, pyasn1-modules
+, pycryptodomex
+, pyjwt
+, pyopenssl
+, pytz
+, requests
+, six
+, urllib3
+}:
+
+buildPythonPackage rec {
+  pname = "snowflake-connector-python";
+  version = "2.1.2";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "06061d59lapqrlg3gzdk4bi3v9c3q5zxfs0if5v2chg1f2l80ncr";
+  };
+
+  propagatedBuildInputs = [
+    azure-storage-blob
+    asn1crypto
+    boto3
+    certifi
+    cffi
+    future
+    idna
+    ijson
+    oscrypto
+    pycryptodomex
+    pyjwt
+    pyopenssl
+    pytz
+    requests
+    six
+  ] ++ lib.optionals (!isPy3k) [
+    pyarrow
+    pyasn1-modules
+    urllib3
+  ];
+
+  # tests are not working
+  # XXX: fix the tests
+  doCheck = false;
+
+  meta = with lib; {
+    description = "Snowflake Connector for Python";
+    homepage = "https://www.snowflake.com/";
+    license = licenses.asl20;
+  };
+}
diff --git a/pkgs/development/python-modules/snowflake-sqlalchemy/default.nix b/pkgs/development/python-modules/snowflake-sqlalchemy/default.nix
new file mode 100644
index 00000000000..d8c557eddc7
--- /dev/null
+++ b/pkgs/development/python-modules/snowflake-sqlalchemy/default.nix
@@ -0,0 +1,27 @@
+{ buildPythonPackage
+, lib
+, fetchPypi
+, sqlalchemy
+, snowflake-connector-python
+}:
+
+buildPythonPackage rec {
+  pname = "snowflake-sqlalchemy";
+  version = "1.1.17";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1pmmwkw29944zh044azwbc1gf4s04fm55920d9if2a3zpjm6c5d7";
+  };
+
+  propagatedBuildInputs = [
+    sqlalchemy
+    snowflake-connector-python
+  ];
+
+  meta = with lib; {
+    description = "Snowflake SQLAlchemy Dialect";
+    homepage = "https://www.snowflake.net/";
+    license = licenses.asl20;
+  };
+}
diff --git a/pkgs/development/python-modules/solo-python/default.nix b/pkgs/development/python-modules/solo-python/default.nix
index 829874f25ad..52d7d7539f9 100644
--- a/pkgs/development/python-modules/solo-python/default.nix
+++ b/pkgs/development/python-modules/solo-python/default.nix
@@ -48,5 +48,6 @@
     homepage = "https://github.com/solokeys/solo-python";
     maintainers = with maintainers; [ wucke13 ];
     license = with licenses; [ asl20 mit ];
+    broken = true; # no longer compatible with fido2
   };
 }
diff --git a/pkgs/development/python-modules/sparqlwrapper/default.nix b/pkgs/development/python-modules/sparqlwrapper/default.nix
index 0a51bb5f9e8..fe400630507 100644
--- a/pkgs/development/python-modules/sparqlwrapper/default.nix
+++ b/pkgs/development/python-modules/sparqlwrapper/default.nix
@@ -10,11 +10,11 @@
 
 buildPythonPackage rec {
   pname = "SPARQLWrapper";
-  version = "1.8.4";
+  version = "1.8.5";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "21928e7a97f565e772cdeeb0abad428960f4307e3a13dbdd8f6d3da8a6a506c9";
+    sha256 = "d6a66b5b8cda141660e07aeb00472db077a98d22cb588c973209c7336850fb3c";
   };
 
   # break circular dependency loop
diff --git a/pkgs/development/python-modules/sphinx/default.nix b/pkgs/development/python-modules/sphinx/default.nix
index 307232903e8..d9f64a93813 100644
--- a/pkgs/development/python-modules/sphinx/default.nix
+++ b/pkgs/development/python-modules/sphinx/default.nix
@@ -16,7 +16,6 @@
 , Babel
 , snowballstemmer
 , six
-, sqlalchemy
 , whoosh
 , imagesize
 , requests
@@ -33,11 +32,11 @@
 
 buildPythonPackage rec {
   pname = "sphinx";
-  version = "2.2.0";
+  version = "2.2.2";
   src = fetchPypi {
     pname = "Sphinx";
     inherit version;
-    sha256 = "0d586b0f8c2fc3cc6559c5e8fd6124628110514fda0e5d7c82e682d749d2e845";
+    sha256 = "1wjcm382824rq8ijls9mlqwl2h8l26s201v5fwprhnins671m72m";
   };
   LC_ALL = "en_US.UTF-8";
 
@@ -56,7 +55,6 @@ buildPythonPackage rec {
     setuptools
     snowballstemmer
     six
-    sqlalchemy
     whoosh
     imagesize
     requests
diff --git a/pkgs/development/python-modules/sphinxcontrib-blockdiag/default.nix b/pkgs/development/python-modules/sphinxcontrib-blockdiag/default.nix
index 1eeb40ddbc2..b8f23afabcd 100644
--- a/pkgs/development/python-modules/sphinxcontrib-blockdiag/default.nix
+++ b/pkgs/development/python-modules/sphinxcontrib-blockdiag/default.nix
@@ -10,11 +10,11 @@
 
 buildPythonPackage rec {
   pname = "sphinxcontrib-blockdiag";
-  version = "1.5.5";
+  version = "2.0.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1w7q2hhpzk159wd35hlbwkh80hnglqa475blcd9vjwpkv1kgkpvw";
+    sha256 = "91fd35b64f1f25db59d80b8a5196ed4ffadf57a81f63ee207e34d53ec36d8f97";
   };
 
   buildInputs = [ mock sphinx-testing ];
diff --git a/pkgs/development/python-modules/sphinxcontrib-tikz/binary-paths.patch b/pkgs/development/python-modules/sphinxcontrib-tikz/binary-paths.patch
new file mode 100644
index 00000000000..847a6e07691
--- /dev/null
+++ b/pkgs/development/python-modules/sphinxcontrib-tikz/binary-paths.patch
@@ -0,0 +1,22 @@
+diff --git a/sphinxcontrib/tikz.py b/sphinxcontrib/tikz.py
+index ee21113..a4f4589 100644
+--- a/sphinxcontrib/tikz.py
++++ b/sphinxcontrib/tikz.py
+@@ -242,7 +242,7 @@ def render_tikz(self, node, libs='', stringsubst=False):
+         tf.write(latex)
+         tf.close()
+ 
+-        system([self.builder.config.latex_engine, '--interaction=nonstopmode',
++        system(['@texLive@/bin/pdflatex', '--interaction=nonstopmode',
+                 'tikz-%s.tex' % shasum],
+                self.builder)
+ 
+@@ -281,7 +281,7 @@ def render_tikz(self, node, libs='', stringsubst=False):
+                     '-sOutputFile=%s' % outfn, '-r' + resolution + 'x' + resolution,
+                     '-f', 'tikz-%s.pdf' % shasum], self.builder)
+         elif self.builder.config.tikz_proc_suite == "pdf2svg":
+-            system(['pdf2svg', 'tikz-%s.pdf' % shasum, outfn], self.builder)
++            system(['@pdf2svg@/bin/pdf2svg', 'tikz-%s.pdf' % shasum, outfn], self.builder)
+         else:
+             self.builder._tikz_warned = True
+             raise TikzExtError('Error (tikz extension): Invalid configuration '
diff --git a/pkgs/development/python-modules/sphinxcontrib-tikz/default.nix b/pkgs/development/python-modules/sphinxcontrib-tikz/default.nix
new file mode 100644
index 00000000000..15585679a29
--- /dev/null
+++ b/pkgs/development/python-modules/sphinxcontrib-tikz/default.nix
@@ -0,0 +1,38 @@
+{ lib
+, substituteAll
+, buildPythonPackage
+, fetchPypi
+, sphinx
+, pdf2svg
+, texLive
+}:
+
+buildPythonPackage rec {
+  pname = "sphinxcontrib-tikz";
+  version = "0.4.6";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "4f362b11e3c2bd17d5f0f07fec03917c16fc5bbcda6fe31ee137c547ed6b03a3";
+  };
+
+  patches = [
+    (substituteAll {
+      src = ./binary-paths.patch;
+      inherit texLive pdf2svg;
+    })
+  ];
+
+  propagatedBuildInputs = [ sphinx ];
+
+  # no tests in package
+  doCheck = false;
+
+  meta = with lib; {
+    description = "TikZ extension for Sphinx";
+    homepage = https://bitbucket.org/philexander/tikz;
+    maintainers = with maintainers; [ costrouc ];
+    license = licenses.bsd3;
+  };
+
+}
diff --git a/pkgs/development/python-modules/splinter/default.nix b/pkgs/development/python-modules/splinter/default.nix
index 274a5148d8a..fac73dc8715 100644
--- a/pkgs/development/python-modules/splinter/default.nix
+++ b/pkgs/development/python-modules/splinter/default.nix
@@ -8,11 +8,11 @@
 
 buildPythonPackage rec {
   pname = "splinter";
-  version = "0.11.0";
+  version = "0.13.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0ddv80dv54rraa18lg9v7m9z61wzfwv6ww9ld83mr32gy3a2238p";
+    sha256 = "9e92535f273622507ac157612c3bb0e9cee7b5ccd2aa097d47b408e34c2ca356";
   };
 
   propagatedBuildInputs = [ selenium ];
diff --git a/pkgs/development/python-modules/spyder-kernels/default.nix b/pkgs/development/python-modules/spyder-kernels/default.nix
index 86daec23d95..f4d57ce579e 100644
--- a/pkgs/development/python-modules/spyder-kernels/default.nix
+++ b/pkgs/development/python-modules/spyder-kernels/default.nix
@@ -3,11 +3,11 @@
 
 buildPythonPackage rec {
   pname = "spyder-kernels";
-  version = "0.5.2";
+  version = "1.8.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "01354b7fa180a87212cc005553b31a7300159b108d36828e301d3782291323f7";
+    sha256 = "a782fc5961a9dd48d520ddc1c868b960d54b8edb1116c21fc2e3c347fe5a4474";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/spyder/default.nix b/pkgs/development/python-modules/spyder/default.nix
index b707d4a0abc..47094fcb993 100644
--- a/pkgs/development/python-modules/spyder/default.nix
+++ b/pkgs/development/python-modules/spyder/default.nix
@@ -7,11 +7,11 @@
 
 buildPythonPackage rec {
   pname = "spyder";
-  version = "3.3.6";
+  version = "4.0.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1z7qw1h3rhca12ycv8xrzw6z2gf81v0j6lfq9kpwh472w4vk75v1";
+    sha256 = "f2bfece9743188e3d1da68f02271a7c6eb7f0a3b692c3df4952458ab96b037a8";
   };
 
   nativeBuildInputs = [ pyqtwebengine.wrapQtAppsHook ];
diff --git a/pkgs/development/python-modules/sqlalchemy-utils/default.nix b/pkgs/development/python-modules/sqlalchemy-utils/default.nix
index 3db00057c90..c58ec72498a 100644
--- a/pkgs/development/python-modules/sqlalchemy-utils/default.nix
+++ b/pkgs/development/python-modules/sqlalchemy-utils/default.nix
@@ -5,12 +5,12 @@
 
 buildPythonPackage rec {
   pname = "sqlalchemy-utils";
-  version = "0.35.0";
+  version = "0.36.0";
 
   src = fetchPypi {
     inherit version;
     pname = "SQLAlchemy-Utils";
-    sha256 = "0phsdcnm21qvxd00zmjd6yxbm1s0i7b1q8zrgfy8cqv9xpmz1w01";
+    sha256 = "1wkk6jj0jkp2hi3ziqw95q0b19zabpvzm6v5kixgnssj027hq0yv";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/sqlobject/default.nix b/pkgs/development/python-modules/sqlobject/default.nix
index 52b2fad62a2..05dab8d0265 100644
--- a/pkgs/development/python-modules/sqlobject/default.nix
+++ b/pkgs/development/python-modules/sqlobject/default.nix
@@ -10,11 +10,11 @@
 
 buildPythonPackage rec {
   pname = "SQLObject";
-  version = "3.7.3";
+  version = "3.8.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0dgzmzdv3alfdqcrl4x0xf9161ls80h33rnqbz0yhmfpkjg99b9n";
+    sha256 = "00fb93313067cdbe52fe436eef1e79038b42c969cf44016b24f9eae0511db2d7";
   };
 
   checkInputs = [ pytest ];
diff --git a/pkgs/development/python-modules/squaremap/default.nix b/pkgs/development/python-modules/squaremap/default.nix
index f237d982abb..fb339550062 100644
--- a/pkgs/development/python-modules/squaremap/default.nix
+++ b/pkgs/development/python-modules/squaremap/default.nix
@@ -2,6 +2,8 @@
 , buildPythonPackage
 , isPy3k
 , fetchPypi
+, six
+, wxPython
 }:
 
 buildPythonPackage rec {
@@ -10,14 +12,18 @@ buildPythonPackage rec {
   disabled = isPy3k;
 
   src = fetchPypi {
-    inherit pname version;
-    sha256 = "b16ce5950cbfa63e3284015095293cd26ed5e26045fd14d488fb825b4f95e9a8";
+    pname = "SquareMap";
+    inherit version;
+    sha256 = "1a79jm7mp0pvi3a19za5c3idavnj7hlral01hhr3x9mz1jayav5i";
   };
 
+  propagatedBuildInputs = [ six wxPython ];
+
   meta = with stdenv.lib; {
     description = "Hierarchic visualization control for wxPython";
     homepage = https://launchpad.net/squaremap;
     license = licenses.bsd3;
+    broken = true; # wxPython doesn't seem to be able to be detected by pip
   };
 
 }
diff --git a/pkgs/development/python-modules/starfish/default.nix b/pkgs/development/python-modules/starfish/default.nix
index 38934d9497a..8fc0a23b065 100644
--- a/pkgs/development/python-modules/starfish/default.nix
+++ b/pkgs/development/python-modules/starfish/default.nix
@@ -26,11 +26,11 @@
 
 buildPythonPackage rec {
   pname = "starfish";
-  version = "0.1.9";
+  version = "0.1.10";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "02002b908572fcd2c7471475936a6c375f143d15df871399ce86ced6d7aef865";
+    sha256 = "0340e37b732e184081b150f21bbbd4eed3643ab49f74633b9c4d827bda663235";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/starlette/default.nix b/pkgs/development/python-modules/starlette/default.nix
index 6580a87b2fe..a2170db1bd4 100644
--- a/pkgs/development/python-modules/starlette/default.nix
+++ b/pkgs/development/python-modules/starlette/default.nix
@@ -9,21 +9,23 @@
 , pyyaml
 , requests
 , ujson
+, python-multipart
 , pytest
-, python
 , uvicorn
 , isPy27
 , darwin
+, databases
+, aiosqlite
 }:
 
 buildPythonPackage rec {
   pname = "starlette";
-  version = "0.12.13";
+  version = "0.13.0";
   disabled = isPy27;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "9597bc28e3c4659107c1c4a45ec32dc45e947d78fe56230222be673b2c36454a";
+    sha256 = "6bd414152d40d000ccbf6aa40ed89718b40868366a0f69fb83034f416303acef";
   };
 
   propagatedBuildInputs = [
@@ -35,13 +37,17 @@ buildPythonPackage rec {
     requests
     ujson
     uvicorn
+    python-multipart
+    databases
   ] ++ stdenv.lib.optional stdenv.isDarwin [ darwin.apple_sdk.frameworks.ApplicationServices ];
 
+  checkInputs = [
+    pytest
+    aiosqlite
+  ];
+
   checkPhase = ''
-    ${python.interpreter} -c """
-from starlette.applications import Starlette
-app = Starlette(debug=True)
-"""
+    pytest --ignore=tests/test_graphql.py
   '';
 
   meta = with lib; {
diff --git a/pkgs/development/python-modules/stm32loader/default.nix b/pkgs/development/python-modules/stm32loader/default.nix
index 13272a5a0b7..c7ea7804198 100644
--- a/pkgs/development/python-modules/stm32loader/default.nix
+++ b/pkgs/development/python-modules/stm32loader/default.nix
@@ -10,11 +10,11 @@
 
 buildPythonPackage rec {
   pname = "stm32loader";
-  version = "0.5.0";
+  version = "0.5.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1w6jg4dcyz6si6dcyx727sxi75wnl0j89xkiwqmsw286s1y8ijjw";
+    sha256 = "0135qzxlrivvkq6wgkw7shfz94n755qs2c1754p1hc2jk0nqayrg";
   };
 
   propagatedBuildInputs = [ progress pyserial ];
diff --git a/pkgs/development/python-modules/stripe/default.nix b/pkgs/development/python-modules/stripe/default.nix
index b60aa7666fb..d564adbc6e2 100644
--- a/pkgs/development/python-modules/stripe/default.nix
+++ b/pkgs/development/python-modules/stripe/default.nix
@@ -2,7 +2,7 @@
 
 buildPythonPackage rec {
   pname = "stripe";
-  version = "2.37.2";
+  version = "2.41.0";
 
   # Tests require network connectivity and there's no easy way to disable
   # them. ~ C.
@@ -10,7 +10,7 @@ buildPythonPackage rec {
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "7ad8ee6d9bdca86d6ed38c4eb48b1b67b9529ac4fee6c26d3f9aa4d5e98b50d6";
+    sha256 = "2f0ec677136985ece9cca232f106c2a87193261cac1fe58d4e959215310a0da8";
   };
 
   propagatedBuildInputs = [ requests ];
diff --git a/pkgs/development/python-modules/svg-path/default.nix b/pkgs/development/python-modules/svg-path/default.nix
index 3a11bf67e13..ac62b8b415d 100644
--- a/pkgs/development/python-modules/svg-path/default.nix
+++ b/pkgs/development/python-modules/svg-path/default.nix
@@ -1,11 +1,11 @@
 { stdenv, buildPythonPackage, fetchPypi }:
 buildPythonPackage rec {
   pname = "svg.path";
-  version = "3.0";
+  version = "4.0.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "7b568f90f67fd25413c8da9f8bc9f9f8ab089425c20fa03330e97e77d13880ee";
+    sha256 = "4bd627ec6526cd5da14f3c6a51205d930187db2d8992aed626825492c033b195";
   };
 
   meta = with stdenv.lib; {
diff --git a/pkgs/development/python-modules/svgwrite/default.nix b/pkgs/development/python-modules/svgwrite/default.nix
index 7af7a16e7fa..186bf0a1ce2 100644
--- a/pkgs/development/python-modules/svgwrite/default.nix
+++ b/pkgs/development/python-modules/svgwrite/default.nix
@@ -1,7 +1,6 @@
-{ stdenv
+{ lib
 , buildPythonPackage
-, fetchPypi
-, setuptools
+, fetchFromGitHub
 , pyparsing
 , pytest
 }:
@@ -10,21 +9,27 @@ buildPythonPackage rec {
   pname = "svgwrite";
   version = "1.3.1";
 
-  src = fetchPypi {
-    inherit pname version;
-    extension = "zip";
-    sha256 = "11e47749b159ed7004721e11d380b4642a26154b8cb2f7b0102fea9c71a3dfa1";
+  src = fetchFromGitHub {
+    owner = "mozman";
+    repo = "svgwrite";
+    rev = "v${version}";
+    sha256 = "14wz0y118a5wwfzin6cirr9254p4y825lnrnackihdbpw22gcw11";
   };
 
-  buildInputs = [ setuptools ];
-  propagatedBuildInputs = [ pyparsing ];
-  checkInputs = [ pytest ];
+  propagatedBuildInputs = [
+    pyparsing
+  ];
 
-  checkPhase = ''
+  checkInputs = [
     pytest
+  ];
+
+  # embed_google_web_font test tried to pull font from internet
+  checkPhase = ''
+    pytest -k "not test_embed_google_web_font"
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "A Python library to create SVG drawings";
     homepage = https://github.com/mozman/svgwrite;
     license = licenses.mit;
diff --git a/pkgs/development/python-modules/tblib/default.nix b/pkgs/development/python-modules/tblib/default.nix
index 62e7faa121f..55a164773ca 100644
--- a/pkgs/development/python-modules/tblib/default.nix
+++ b/pkgs/development/python-modules/tblib/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "tblib";
-  version = "1.5.0";
+  version = "1.6.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1735ff8fd6217446384b5afabead3b142cf1a52d242cfe6cab4240029d6d131a";
+    sha256 = "229bee3754cb5d98b4837dd5c4405e80cfab57cb9f93220410ad367f8b352344";
   };
 
   meta = with stdenv.lib; {
diff --git a/pkgs/development/python-modules/telethon/default.nix b/pkgs/development/python-modules/telethon/default.nix
index 437d722ba07..b94796b708e 100644
--- a/pkgs/development/python-modules/telethon/default.nix
+++ b/pkgs/development/python-modules/telethon/default.nix
@@ -2,12 +2,12 @@
 
 buildPythonPackage rec {
   pname = "telethon";
-  version = "1.10.9";
+  version = "1.10.10";
 
   src = fetchPypi {
     inherit version;
     pname = "Telethon";
-    sha256 = "16qb5hv8kh4plic1155ky9b88xz9iahhv1s3h47678hl7mjy2jc7";
+    sha256 = "0zm3577f1l5g0i0gcxr3s0nrqy0i81ppr6vp31p550vvnlnkjsqj";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/tenacity/default.nix b/pkgs/development/python-modules/tenacity/default.nix
index 254b91891c7..fa039e7b170 100644
--- a/pkgs/development/python-modules/tenacity/default.nix
+++ b/pkgs/development/python-modules/tenacity/default.nix
@@ -5,11 +5,11 @@
 
 buildPythonPackage rec {
   pname = "tenacity";
-  version = "5.1.5";
+  version = "6.0.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "e664bd94f088b17f46da33255ae33911ca6a0fe04b156d334b601a4ef66d3c5f";
+    sha256 = "72f397c2bb1887e048726603f3f629ea16f88cb3e61e4ed3c57e98582b8e3571";
   };
 
   nativeBuildInputs = [ pbr setuptools_scm ];
diff --git a/pkgs/development/python-modules/tensorflow/cuda-10.2-no-bin2c-path.patch b/pkgs/development/python-modules/tensorflow/cuda-10.2-no-bin2c-path.patch
new file mode 100644
index 00000000000..25f1ba7a551
--- /dev/null
+++ b/pkgs/development/python-modules/tensorflow/cuda-10.2-no-bin2c-path.patch
@@ -0,0 +1,10 @@
+--- a/third_party/nccl/build_defs.bzl.tpl
++++ b/third_party/nccl/build_defs.bzl.tpl
+@@ -113,7 +113,6 @@ def _device_link_impl(ctx):
+             "--cmdline=--compile-only",
+             "--link",
+             "--compress-all",
+-            "--bin2c-path=%s" % bin2c.dirname,
+             "--create=%s" % tmp_fatbin.path,
+             "--embedded-fatbin=%s" % fatbin_h.path,
+         ] + images,
diff --git a/pkgs/development/python-modules/tensorflow/default.nix b/pkgs/development/python-modules/tensorflow/default.nix
index cc64e49e1b7..a9f3ebf9e48 100644
--- a/pkgs/development/python-modules/tensorflow/default.nix
+++ b/pkgs/development/python-modules/tensorflow/default.nix
@@ -124,6 +124,10 @@ let
         sha256 = "077cpj0kzyqxzdya1dwh8df17zfzhqn7c685hx6iskvw2979zg2n";
       })
       ./lift-gast-restriction.patch
+
+      # cuda 10.2 does not have "-bin2c-path" option anymore
+      # https://github.com/tensorflow/tensorflow/issues/34429
+      ./cuda-10.2-no-bin2c-path.patch
     ];
 
     # On update, it can be useful to steal the changes from gentoo
@@ -266,7 +270,7 @@ let
     '';
 
     # FIXME: Tensorflow uses dlopen() for CUDA libraries.
-    NIX_LDFLAGS = lib.optionals cudaSupport [ "-lcudart" "-lcublas" "-lcufft" "-lcurand" "-lcusolver" "-lcusparse" "-lcudnn" ];
+    NIX_LDFLAGS = lib.optionalString cudaSupport "-lcudart -lcublas -lcufft -lcurand -lcusolver -lcusparse -lcudnn";
 
     hardeningDisable = [ "format" ];
 
diff --git a/pkgs/development/python-modules/thrift/default.nix b/pkgs/development/python-modules/thrift/default.nix
index d5a83832cb2..7d80be987f7 100644
--- a/pkgs/development/python-modules/thrift/default.nix
+++ b/pkgs/development/python-modules/thrift/default.nix
@@ -6,11 +6,11 @@
 
 buildPythonPackage rec {
   pname = "thrift";
-  version = "0.11.0";
+  version = "0.13.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "7d59ac4fdcb2c58037ebd4a9da5f9a49e3e034bf75b3f26d9fe48ba3d8806e6b";
+    sha256 = "9af1c86bf73433afc6010ed376a6c6aca2b54099cc0d61895f640870a9ae7d89";
   };
 
   propagatedBuildInputs = [ six ];
diff --git a/pkgs/development/python-modules/tifffile/default.nix b/pkgs/development/python-modules/tifffile/default.nix
index 1fd33c5d7e4..fbf36b4ef97 100644
--- a/pkgs/development/python-modules/tifffile/default.nix
+++ b/pkgs/development/python-modules/tifffile/default.nix
@@ -1,5 +1,13 @@
-{ lib, fetchPypi, buildPythonPackage, isPy27
-, numpy, enum34, futures, pathlib
+{ lib
+, fetchPypi
+, buildPythonPackage
+, isPy27
+, isPy3k
+, numpy
+, imagecodecs-lite
+, enum34
+, futures
+, pathlib
 , pytest
 }:
 
@@ -17,17 +25,28 @@ buildPythonPackage rec {
   # Missing dependencies: imagecodecs, czifile, cmapfile, oiffile, lfdfiles
   # and test data missing from PyPI tarball
   doCheck = false;
-  checkInputs = [ pytest ];
+
+  checkInputs = [
+    pytest
+  ];
+
   checkPhase = ''
     pytest
   '';
 
-  propagatedBuildInputs = [ numpy ]
-    ++ lib.optional isPy27 [ futures enum34 pathlib ];
+  propagatedBuildInputs = [
+    numpy
+  ] ++ lib.optionals isPy3k [
+    imagecodecs-lite
+  ] ++ lib.optionals isPy27 [
+    futures
+    enum34
+    pathlib
+  ];
 
   meta = with lib; {
     description = "Read and write image data from and to TIFF files.";
-    homepage = https://www.lfd.uci.edu/~gohlke/;
+    homepage = "https://www.lfd.uci.edu/~gohlke/";
     maintainers = [ maintainers.lebastr ];
     license = licenses.bsd3;
   };
diff --git a/pkgs/development/python-modules/tiledb/default.nix b/pkgs/development/python-modules/tiledb/default.nix
index 61902f2eb12..cddfb81d609 100644
--- a/pkgs/development/python-modules/tiledb/default.nix
+++ b/pkgs/development/python-modules/tiledb/default.nix
@@ -13,14 +13,14 @@
 
 buildPythonPackage rec {
   pname = "tiledb";
-  version = "0.5.2";
+  version = "0.5.3";
   format = "setuptools";
 
   src = fetchFromGitHub {
     owner = "TileDB-Inc";
     repo = "TileDB-Py";
     rev = version;
-    sha256 = "0y7llvy943fviayjny8xybvn3sm1ikjvazqk172ls90lcpr8rlr1";
+    sha256 = "1wzzq3ggrprnjqgx9168r4x8cj1rh2ikr6mlxgbi463p5hnlkb5m";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/timezonefinder/default.nix b/pkgs/development/python-modules/timezonefinder/default.nix
new file mode 100644
index 00000000000..f4339bbce4a
--- /dev/null
+++ b/pkgs/development/python-modules/timezonefinder/default.nix
@@ -0,0 +1,31 @@
+{ buildPythonPackage
+, lib
+, fetchPypi
+, isPy27
+, numba
+, numpy
+}:
+
+buildPythonPackage rec {
+  pname = "timezonefinder";
+  version = "4.2.0";
+
+  disabled = isPy27;
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "0q8nd279labn03dz17s4xrglk1d31q9y8wcx99l51i5cxx53zsap";
+  };
+
+  propagatedBuildInputs = [
+    numpy
+  ];
+
+  checkInputs = [ numba ];
+
+  meta = with lib; {
+    description = "fast python package for finding the timezone of any point on earth (coordinates) offline";
+    homepage = "https://github.com/MrMinimal64/timezonefinder";
+    license = licenses.mit;
+  };
+}
diff --git a/pkgs/development/python-modules/tld/default.nix b/pkgs/development/python-modules/tld/default.nix
index 719ea78b732..5e7380f7bb3 100644
--- a/pkgs/development/python-modules/tld/default.nix
+++ b/pkgs/development/python-modules/tld/default.nix
@@ -2,11 +2,11 @@
 
 python.pkgs.buildPythonPackage rec {
   pname   = "tld";
-  version = "0.9.8";
+  version = "0.11.9";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "5963b22029e632a17bde87e35a19dc8c5b17266fb8c58e4d550d5593307e3a72";
+    sha256 = "c5fe79df74b68ebc33406dfadc69f6484dee8005035a129fdb40b8fabfd06e9f";
   };
 
   propagatedBuildInputs = with python.pkgs; [ six ];
diff --git a/pkgs/development/python-modules/toggl-cli/default.nix b/pkgs/development/python-modules/toggl-cli/default.nix
index 2c43ebf2c7e..6834876d8f8 100644
--- a/pkgs/development/python-modules/toggl-cli/default.nix
+++ b/pkgs/development/python-modules/toggl-cli/default.nix
@@ -1,5 +1,6 @@
 { stdenv, buildPythonPackage, fetchPypi, twine, pbr, click, click-completion, validate-email,
-pendulum, ptable, requests, inquirer, pythonOlder, pytest, pytestcov, pytest-mock, faker, factory_boy }:
+pendulum, ptable, requests, inquirer, pythonOlder, pytest, pytestcov, pytest-mock, faker, factory_boy,
+setuptools }:
 
 
 buildPythonPackage rec {
@@ -16,6 +17,7 @@ buildPythonPackage rec {
 
   postPatch = ''
    substituteInPlace requirements.txt \
+     --replace "pendulum==2.0.4" "pendulum>=2.0.4" \
      --replace "click-completion==0.5.0" "click-completion>=0.5.0" \
      --replace "pbr==5.1.2" "pbr>=5.1.2" \
      --replace "inquirer==2.5.1" "inquirer>=2.5.1"
@@ -37,6 +39,7 @@ buildPythonPackage rec {
   '';
 
   propagatedBuildInputs = [
+    setuptools
     click
     click-completion
     validate-email
diff --git a/pkgs/development/python-modules/tox/default.nix b/pkgs/development/python-modules/tox/default.nix
index 87dc5130a9c..5cec769decc 100644
--- a/pkgs/development/python-modules/tox/default.nix
+++ b/pkgs/development/python-modules/tox/default.nix
@@ -13,7 +13,7 @@
 
 buildPythonPackage rec {
   pname = "tox";
-  version = "3.14.2";
+  version = "3.14.3";
 
   buildInputs = [ setuptools_scm ];
   propagatedBuildInputs = [ packaging pluggy py six virtualenv toml filelock ];
@@ -22,7 +22,7 @@ buildPythonPackage rec {
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "7efd010a98339209f3a8292f02909b51c58417bfc6838ab7eca14cf90f96117a";
+    sha256 = "06ba73b149bf838d5cd25dc30c2dd2671ae5b2757cf98e5c41a35fe449f131b3";
   };
 
   meta = with lib; {
diff --git a/pkgs/development/python-modules/transaction/default.nix b/pkgs/development/python-modules/transaction/default.nix
index 20f12485435..0ed6f84ff30 100644
--- a/pkgs/development/python-modules/transaction/default.nix
+++ b/pkgs/development/python-modules/transaction/default.nix
@@ -8,11 +8,11 @@
 
 buildPythonPackage rec {
   pname = "transaction";
-  version = "2.4.0";
+  version = "3.0.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "17wz1y524ca07vr03yddy8dv0gbscs06dbdywmllxv5rc725jq3j";
+    sha256 = "3b0ad400cb7fa25f95d1516756c4c4557bb78890510f69393ad0bd15869eaa2d";
   };
 
   propagatedBuildInputs = [ zope_interface mock ];
diff --git a/pkgs/development/python-modules/treq/default.nix b/pkgs/development/python-modules/treq/default.nix
index f49c7a0d243..1d488eed4e1 100644
--- a/pkgs/development/python-modules/treq/default.nix
+++ b/pkgs/development/python-modules/treq/default.nix
@@ -17,9 +17,9 @@ buildPythonPackage rec {
     incremental
     service-identity
     twisted
+  ]
     # twisted [tls] requirements (we should find a way to list "extras")
-    twisted.extras.tls
-  ];
+    ++ twisted.extras.tls;
 
   checkInputs = [
     pep8
diff --git a/pkgs/development/python-modules/trezor/default.nix b/pkgs/development/python-modules/trezor/default.nix
index cdf29cb565d..2d40ad971db 100644
--- a/pkgs/development/python-modules/trezor/default.nix
+++ b/pkgs/development/python-modules/trezor/default.nix
@@ -16,13 +16,13 @@
 
 buildPythonPackage rec {
   pname = "trezor";
-  version = "0.11.5";
+  version = "0.11.6";
 
   disabled = !isPy3k;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "cd8aafd70a281daa644c4a3fb021ffac20b7a88e86226ecc8bb3e78e1734a184";
+    sha256 = "1i73j812i0dgjw9n106pipc6qksd9cgs59d0as0b4j5iyl0087hh";
   };
 
   propagatedBuildInputs = [ typing-extensions protobuf hidapi ecdsa mnemonic requests pyblake2 click construct libusb1 rlp shamir-mnemonic trezor-udev-rules ];
diff --git a/pkgs/development/python-modules/trio/default.nix b/pkgs/development/python-modules/trio/default.nix
index 458a580a170..11f3c94aece 100644
--- a/pkgs/development/python-modules/trio/default.nix
+++ b/pkgs/development/python-modules/trio/default.nix
@@ -18,12 +18,12 @@
 
 buildPythonPackage rec {
   pname = "trio";
-  version = "0.12.1";
+  version = "0.13.0";
   disabled = pythonOlder "3.5";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0wnnrs36arvimrfgrlbpjw3nx7lppx43yvk2b380ivv69h52i6hl";
+    sha256 = "f1cf00054ad974c86d9b7afa187a65d79fd5995340abe01e8e4784d86f4acb30";
   };
 
   checkInputs = [ astor pytest pyopenssl trustme jedi pylint yapf ];
diff --git a/pkgs/development/python-modules/trustme/default.nix b/pkgs/development/python-modules/trustme/default.nix
index 8784dad7ad1..42cbf23e56f 100644
--- a/pkgs/development/python-modules/trustme/default.nix
+++ b/pkgs/development/python-modules/trustme/default.nix
@@ -12,11 +12,11 @@
 
 buildPythonPackage rec {
   pname = "trustme";
-  version = "0.5.3";
+  version = "0.6.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "f0f96a21b430cc29661644d3569a1112a397ca9cc8595b964d4ae71e5e957529";
+    sha256 = "9dfb18b568729d0219f758cddca1a91bab59f62ca41ee0e8acce5e657ec97b6c";
   };
 
   checkInputs = [
diff --git a/pkgs/development/python-modules/twine/default.nix b/pkgs/development/python-modules/twine/default.nix
index 92288b6c774..762df433f97 100644
--- a/pkgs/development/python-modules/twine/default.nix
+++ b/pkgs/development/python-modules/twine/default.nix
@@ -1,26 +1,35 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pythonOlder
+{ lib, buildPythonPackage, fetchPypi, pythonOlder
+, importlib-metadata
+, keyring
 , pkginfo
+, pyblake2
+, readme_renderer
 , requests
 , requests_toolbelt
+, setuptools_scm
 , tqdm
-, pyblake2
-, readme_renderer
 }:
 
 buildPythonPackage rec {
   pname = "twine";
-  version = "2.0.0";
+  version = "3.1.1";
   disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "9fe7091715c7576df166df8ef6654e61bada39571783f2fd415bdcba867c6993";
+    sha256 = "d561a5e511f70275e5a485a6275ff61851c16ffcb3a95a602189161112d9f160";
   };
 
-  propagatedBuildInputs = [ pkginfo requests requests_toolbelt tqdm pyblake2 readme_renderer ];
+  nativeBuildInputs = [ setuptools_scm ];
+  propagatedBuildInputs = [
+    keyring
+    pkginfo
+    pyblake2
+    readme_renderer
+    requests
+    requests_toolbelt
+    tqdm
+  ] ++ lib.optionals (pythonOlder "3.8") [ importlib-metadata ];
 
   # Requires network
   doCheck = false;
diff --git a/pkgs/development/python-modules/twisted/default.nix b/pkgs/development/python-modules/twisted/default.nix
index a87cacdc29e..5c4fea3f9b1 100644
--- a/pkgs/development/python-modules/twisted/default.nix
+++ b/pkgs/development/python-modules/twisted/default.nix
@@ -16,12 +16,12 @@
 }:
 buildPythonPackage rec {
   pname = "Twisted";
-  version = "19.7.0";
+  version = "19.10.0";
 
   src = fetchPypi {
     inherit pname version;
     extension = "tar.bz2";
-    sha256 = "d5db93026568f60cacdc0615fcd21d46f694a6bfad0ef3ff53cde2b4bb85a39d";
+    sha256 = "7394ba7f272ae722a74f3d969dcf599bc4ef093bc392038748a490f1724a515d";
   };
 
   propagatedBuildInputs = [ zope_interface incremental automat constantly hyperlink pyhamcrest attrs setuptools ];
diff --git a/pkgs/development/python-modules/twofish/default.nix b/pkgs/development/python-modules/twofish/default.nix
new file mode 100644
index 00000000000..1fe541b0729
--- /dev/null
+++ b/pkgs/development/python-modules/twofish/default.nix
@@ -0,0 +1,33 @@
+{ buildPythonPackage
+, fetchPypi
+, lib
+
+# pythonPackages
+, javaobj-py3
+}:
+
+buildPythonPackage rec {
+  pname = "twofish";
+  version = "0.3.0";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1yihp2n42amrxw0wk9f66llpb3w5kwhgkcdg9krkzcik1nsqp7dh";
+  };
+
+  propagatedBuildInputs = [
+    javaobj-py3
+  ];
+
+  # No tests implemented
+  doCheck = false;
+
+  meta = {
+    description = "Bindings for the Twofish implementation by Niels Ferguson";
+    homepage = "https://github.com/keybase/python-twofish";
+    license = lib.licenses.bsd3;
+    maintainers = with lib.maintainers; [
+      kamadorueda
+    ];
+  };
+}
diff --git a/pkgs/development/python-modules/txtorcon/default.nix b/pkgs/development/python-modules/txtorcon/default.nix
index c2c0fb941fa..3b60c63d964 100644
--- a/pkgs/development/python-modules/txtorcon/default.nix
+++ b/pkgs/development/python-modules/txtorcon/default.nix
@@ -18,6 +18,8 @@ buildPythonPackage rec {
     sha256 = "19ayn5w9ayxbb1m84l1s9qlb6kv7sz6sg34mzy8bnidc7qnfbn15";
   };
 
+  # zope.interface issue
+  doCheck = isPy3k;
   # Skip a failing test until fixed upstream:
   # https://github.com/meejah/txtorcon/issues/250
   checkPhase = ''
diff --git a/pkgs/development/python-modules/typeguard/default.nix b/pkgs/development/python-modules/typeguard/default.nix
index af9301571de..51dc3555250 100644
--- a/pkgs/development/python-modules/typeguard/default.nix
+++ b/pkgs/development/python-modules/typeguard/default.nix
@@ -9,11 +9,11 @@
 
 buildPythonPackage rec {
   pname = "typeguard";
-  version = "2.5.1";
+  version = "2.7.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "5269435c8c98f4c4861dd69f3de755aaab5e163991b7ce1e0eff7ae6472957dd";
+    sha256 = "2d545c71e9439c21bcd7c28f5f55b3606e6106f7031ab58375656a1aed483ef2";
   };
 
   buildInputs = [ setuptools_scm ];
diff --git a/pkgs/development/python-modules/typesystem/default.nix b/pkgs/development/python-modules/typesystem/default.nix
new file mode 100644
index 00000000000..8a66d6cbcc9
--- /dev/null
+++ b/pkgs/development/python-modules/typesystem/default.nix
@@ -0,0 +1,44 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, isPy27
+, pytest
+, pytestcov
+, jinja2
+, pyyaml
+}:
+
+buildPythonPackage rec {
+  pname = "typesystem";
+  version = "0.2.4";
+  disabled = isPy27;
+
+  src = fetchFromGitHub {
+    owner = "encode";
+    repo = pname;
+    rev = version;
+    sha256 = "1k0jwcky17zwaz2vx4x2zbsnp270g4mgn7kx5bpl8jgx76qmsnba";
+  };
+
+  propagatedBuildInputs = [
+    jinja2
+    pyyaml
+  ];
+
+  checkInputs = [
+    pytest
+    pytestcov
+  ];
+
+  # for some reason jinja2 not picking up forms directory (1% of tests)
+  checkPhase = ''
+    pytest --ignore=tests/test_forms.py
+  '';
+
+  meta = with lib; {
+    description = "A type system library for Python";
+    homepage = https://github.com/encode/typesystem;
+    license = licenses.bsd3;
+    maintainers = [ maintainers.costrouc ];
+  };
+}
diff --git a/pkgs/development/python-modules/uamqp/default.nix b/pkgs/development/python-modules/uamqp/default.nix
index b4bbc84f372..8e74c6460fe 100644
--- a/pkgs/development/python-modules/uamqp/default.nix
+++ b/pkgs/development/python-modules/uamqp/default.nix
@@ -11,11 +11,11 @@
 
 buildPythonPackage rec {
   pname = "uamqp";
-  version = "1.2.4";
+  version = "1.2.5";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "efb53d244bbe336557bad206f9e48159661934baeb0bfe0addfadc1f69796137";
+    sha256 = "02d78242fcd0a58489aaf275964a6cf7581d7a2334ee240d2d547f8aca8607c6";
   };
 
   buildInputs = [
diff --git a/pkgs/development/python-modules/uncompyle6/default.nix b/pkgs/development/python-modules/uncompyle6/default.nix
index d4e8d1505d6..366af37c20e 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.5.1";
+  version = "3.6.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "af6aea84ca42c889986f8baf86ccb9e3faae5ac1eaef470d2317dfe4131708b3";
+    sha256 = "f8c7ba2fd486d40d9a9fc1d6ab438588d7ce1be123aabf488736ff68a05f57f7";
   };
 
   checkInputs = [ nose pytest hypothesis six ];
diff --git a/pkgs/development/python-modules/unicorn/default.nix b/pkgs/development/python-modules/unicorn/default.nix
index 725c73960f5..86542439439 100644
--- a/pkgs/development/python-modules/unicorn/default.nix
+++ b/pkgs/development/python-modules/unicorn/default.nix
@@ -1,23 +1,23 @@
-{ stdenv, buildPackages, buildPythonPackage, fetchPypi }:
+{ stdenv, buildPythonPackage, setuptools, unicorn-emu }:
 
 buildPythonPackage rec {
   pname = "unicorn";
-  version = "1.0.1";
+  version = stdenv.lib.getVersion unicorn-emu;
 
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "0a5b4vh734b3wfkgapzzf8x18rimpmzvwwkly56da84n27wfw9bg";
-  };
+  src = unicorn-emu.src;
+  sourceRoot = "unicorn-${version}/bindings/python";
 
-  # needs python2 at build time
-  PYTHON=buildPackages.python2.interpreter;
+  prePatch = ''
+    ln -s ${unicorn-emu}/lib/libunicorn${stdenv.targetPlatform.extensions.sharedLibrary} prebuilt/
+    ln -s ${unicorn-emu}/lib/libunicorn.a prebuilt/
+  '';
 
-  setupPyBuildFlags = [ "--plat-name" "linux" ];
+  propagatedBuildInputs = [ setuptools ];
 
   meta = with stdenv.lib; {
-    description = "Unicorn CPU emulator engine";
+    description = "Python bindings for Unicorn CPU emulator engine";
     homepage = "http://www.unicorn-engine.org/";
     license = [ licenses.gpl2 ];
-    maintainers = [ maintainers.bennofs ];
+    maintainers = with maintainers; [ bennofs ris ];
   };
 }
diff --git a/pkgs/development/python-modules/uproot-methods/default.nix b/pkgs/development/python-modules/uproot-methods/default.nix
index b0caaf3d96a..7bb8d4a16ea 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.7.1";
+  version = "0.7.2";
   pname = "uproot-methods";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "d7bfcc84c28a0b61669232ad43b86bbb944504f6bf4612fd395f4e5cc45d0ba5";
+    sha256 = "4382983e4e6c5e1aeb3013d04334907f87f62b0d7c19a29968e5a0aac1653ae1";
   };
 
   propagatedBuildInputs = [ numpy awkward ];
diff --git a/pkgs/development/python-modules/uproot/default.nix b/pkgs/development/python-modules/uproot/default.nix
index f98b3411242..812ff15242c 100644
--- a/pkgs/development/python-modules/uproot/default.nix
+++ b/pkgs/development/python-modules/uproot/default.nix
@@ -16,11 +16,11 @@
 
 buildPythonPackage rec {
   pname = "uproot";
-  version = "3.10.12";
+  version = "3.11.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "34953903abe09bbab3ec1a9a4843b05c75b218daa6132c8275d871e88b6e3447";
+    sha256 = "a9521786d0e16d00a457807e364229ba844ea5f8b0ac6653b00277351f12ab49";
   };
 
   nativeBuildInputs = [ pytestrunner ];
@@ -43,8 +43,11 @@ buildPythonPackage rec {
   ];
 
   # skip tests which do network calls
+  # test_compression.py is missing zstandard package
   checkPhase = ''
-    pytest tests -k 'not hist_in_tree and not branch_auto_interpretation'
+    pytest tests -k 'not hist_in_tree \
+      and not branch_auto_interpretation' \
+      --ignore=tests/test_compression.py
   '';
 
   meta = with lib; {
diff --git a/pkgs/development/python-modules/uritemplate/default.nix b/pkgs/development/python-modules/uritemplate/default.nix
index c469fd8dd1c..64a2fd51ee3 100644
--- a/pkgs/development/python-modules/uritemplate/default.nix
+++ b/pkgs/development/python-modules/uritemplate/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "uritemplate";
-  version = "3.0.0";
+  version = "3.0.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "c02643cebe23fc8adb5e6becffe201185bf06c40bda5c0b4028a93f1527d011d";
+    sha256 = "5af8ad10cec94f215e3f48112de2022e1d5a37ed427fbd88652fa908f2ab7cae";
   };
 
   propagatedBuildInputs = [ simplejson ];
diff --git a/pkgs/development/python-modules/uritools/default.nix b/pkgs/development/python-modules/uritools/default.nix
index cf3d36c3e5d..570fc5dc718 100644
--- a/pkgs/development/python-modules/uritools/default.nix
+++ b/pkgs/development/python-modules/uritools/default.nix
@@ -1,16 +1,15 @@
-{ stdenv, buildPythonPackage, fetchPypi, ipaddress }:
+{ stdenv, buildPythonPackage, fetchPypi, isPy27 }:
 
 buildPythonPackage rec {
   pname = "uritools";
-  version = "2.2.0";
+  version = "3.0.0";
+  disabled = isPy27;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "80e8e23cafad54fd85811b5d9ba0fc595d933f5727c61c3937945eec09f99e2b";
+    sha256 = "405917a31ce58a57c8ccd0e4ea290f38baf2f4823819c3688f5331f1aee4ccb0";
   };
 
-  propagatedBuildInputs = [ ipaddress ];
-
   meta = with stdenv.lib; {
     description = "RFC 3986 compliant, Unicode-aware, scheme-agnostic replacement for urlparse";
     license = licenses.mit;
diff --git a/pkgs/development/python-modules/urwid/default.nix b/pkgs/development/python-modules/urwid/default.nix
index 885595ef6d4..8e255dc69dc 100644
--- a/pkgs/development/python-modules/urwid/default.nix
+++ b/pkgs/development/python-modules/urwid/default.nix
@@ -1,14 +1,18 @@
-{ stdenv, buildPythonPackage, fetchPypi }:
+{ stdenv, buildPythonPackage, fetchPypi, glibcLocales }:
 
 buildPythonPackage rec {
   pname = "urwid";
-  version = "2.0.1";
+  version = "2.1.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1g6cpicybvbananpjikmjk8npmjk4xvak1wjzji62wc600wkwkb4";
+    sha256 = "0896f36060beb6bf3801cb554303fef336a79661401797551ba106d23ab4cd86";
   };
 
+  # tests need to be able to set locale
+  LC_ALL = "en_US.UTF-8";
+  checkInputs = [ glibcLocales ];
+
   meta = with stdenv.lib; {
     description = "A full-featured console (xterm et al.) user interface library";
     homepage = http://excess.org/urwid;
diff --git a/pkgs/development/python-modules/urwidtrees/default.nix b/pkgs/development/python-modules/urwidtrees/default.nix
index b69bb62a875..468420f0e5c 100644
--- a/pkgs/development/python-modules/urwidtrees/default.nix
+++ b/pkgs/development/python-modules/urwidtrees/default.nix
@@ -1,6 +1,7 @@
 { stdenv
 , buildPythonPackage
 , fetchFromGitHub
+, glibcLocales
 , urwid
 }:
 
@@ -17,6 +18,9 @@ buildPythonPackage rec {
 
   propagatedBuildInputs = [ urwid ];
 
+  checkInputs = [ glibcLocales ];
+  LC_ALL="en_US.UTF-8";
+
   meta = with stdenv.lib; {
     description = "Tree widgets for urwid";
     homepage = https://github.com/pazz/urwidtrees;
diff --git a/pkgs/development/python-modules/vcrpy/default.nix b/pkgs/development/python-modules/vcrpy/default.nix
index ef3e92f01a7..c518314d964 100644
--- a/pkgs/development/python-modules/vcrpy/default.nix
+++ b/pkgs/development/python-modules/vcrpy/default.nix
@@ -15,11 +15,11 @@
 
 buildPythonPackage rec {
   pname = "vcrpy";
-  version = "2.1.1";
+  version = "3.0.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "27cc696df66d77703eab5cdfa041b2f9877bbf2b54bcd390de89a4be964ca536";
+    sha256 = "21168d5ae14263a833d4b71acfd8278d8841114f24be1b4ab4a5719d0c7f07bc";
   };
 
   checkInputs = [
diff --git a/pkgs/development/python-modules/vega_datasets/default.nix b/pkgs/development/python-modules/vega_datasets/default.nix
index 2d3dda551fb..f028f85f3ec 100644
--- a/pkgs/development/python-modules/vega_datasets/default.nix
+++ b/pkgs/development/python-modules/vega_datasets/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "vega_datasets";
-  version = "0.7.0";
+  version = "0.8.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "20d490b417f84607eb5079400f608f2e9c135b7092bee10f6857f6d23136e459";
+    sha256 = "db8883dab72b6f414e1fafdbf1e8db7543bba6ed77912a4e0c197d74fcfa1c20";
   };
 
   propagatedBuildInputs = [ pandas ];
diff --git a/pkgs/development/python-modules/venusian/default.nix b/pkgs/development/python-modules/venusian/default.nix
index f420d88e816..fb81a79f10e 100644
--- a/pkgs/development/python-modules/venusian/default.nix
+++ b/pkgs/development/python-modules/venusian/default.nix
@@ -2,18 +2,19 @@
 , buildPythonPackage
 , fetchPypi
 , pytest
+, pytestcov
 }:
 
 buildPythonPackage rec {
   pname = "venusian";
-  version = "1.2.0";
+  version = "3.0.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "64ec8285b80b110d0ae5db4280e90e31848a59db98db1aba4d7d46f48ce91e3e";
+    sha256 = "f6842b7242b1039c0c28f6feef29016e7e7dd3caaeb476a193acf737db31ee38";
   };
 
-  checkInputs = [ pytest ];
+  checkInputs = [ pytest pytestcov ];
 
   checkPhase = ''
     pytest
diff --git a/pkgs/development/python-modules/viewstate/default.nix b/pkgs/development/python-modules/viewstate/default.nix
new file mode 100644
index 00000000000..cd64dcc7564
--- /dev/null
+++ b/pkgs/development/python-modules/viewstate/default.nix
@@ -0,0 +1,36 @@
+{ buildPythonPackage
+, fetchFromGitHub
+, isPy3k
+, lib
+, pytest
+}:
+
+buildPythonPackage rec {
+  pname = "viewstate";
+  version = "0.4.3";
+  disabled = !isPy3k;
+
+  src = fetchFromGitHub {
+    owner = "yuvadm";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "15s0n1lhkz0zwi33waqkkjipal3f7s45rxsj1bw89xpr4dj87qx5";
+  };
+
+  checkInputs = [
+    pytest
+  ];
+
+  checkPhase = ''
+    pytest
+  '';
+
+  meta = {
+    description = ".NET viewstate decoder";
+    homepage = "https://github.com/yuvadm/viewstate";
+    license = lib.licenses.mit;
+    maintainers = with lib.maintainers; [
+      kamadorueda
+    ];
+  };
+}
diff --git a/pkgs/development/python-modules/virtual-display/default.nix b/pkgs/development/python-modules/virtual-display/default.nix
index 130c94bc170..1b56f046610 100644
--- a/pkgs/development/python-modules/virtual-display/default.nix
+++ b/pkgs/development/python-modules/virtual-display/default.nix
@@ -2,13 +2,13 @@
 
 buildPythonPackage rec {
   pname = "PyVirtualDisplay";
-  version = "0.2.4";
+  version = "0.2.5";
 
   propagatedBuildInputs = [ EasyProcess ];
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0nybvd7sajig6vya2v3fd20dls6f3nnf12x8anrfxnjs41chgx87";
+    sha256 = "5b267c8ffc98fcbd084ba852ab4caef3f22e9362bc5d117e1697e767553eaf41";
   };
 
   # requires X server
diff --git a/pkgs/development/python-modules/virtualenv/default.nix b/pkgs/development/python-modules/virtualenv/default.nix
index cd434bb6e3b..62c86567655 100644
--- a/pkgs/development/python-modules/virtualenv/default.nix
+++ b/pkgs/development/python-modules/virtualenv/default.nix
@@ -6,11 +6,11 @@
 
 buildPythonPackage rec {
   pname = "virtualenv";
-  version = "16.7.8";
+  version = "16.7.9";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "116655188441670978117d0ebb6451eb6a7526f9ae0796cc0dee6bd7356909b0";
+    sha256 = "0d62c70883c0342d59c11d0ddac0d954d0431321a41ab20851facf2b222598f3";
   };
 
   # Doubt this is needed - FRidh 2017-07-07
diff --git a/pkgs/development/python-modules/vowpalwabbit/default.nix b/pkgs/development/python-modules/vowpalwabbit/default.nix
index b9fae783074..d23f45b122f 100644
--- a/pkgs/development/python-modules/vowpalwabbit/default.nix
+++ b/pkgs/development/python-modules/vowpalwabbit/default.nix
@@ -3,11 +3,11 @@
 
 buildPythonPackage rec {
   pname = "vowpalwabbit";
-  version = "8.7.0.post1";
+  version = "8.8.0";
 
   src = fetchPypi{
     inherit pname version;
-    sha256 = "de9529660858b380127b2bea335b41a29e8f264551315042300022eb4e6524ea";
+    sha256 = "bd4c7e49a6ddaa1afedf97b22b822c7322328d686d45151b47a5127fc409c2af";
   };
 
   # Should be fixed in next Python release after 8.5.0:
diff --git a/pkgs/development/python-modules/wasabi/default.nix b/pkgs/development/python-modules/wasabi/default.nix
index d50ac4106e6..8a6af2e69db 100644
--- a/pkgs/development/python-modules/wasabi/default.nix
+++ b/pkgs/development/python-modules/wasabi/default.nix
@@ -6,11 +6,11 @@
 
 buildPythonPackage rec {
   pname = "wasabi";
-  version = "0.4.2";
+  version = "0.6.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "9af48b37709000dac34653be376aaac2e3e15392b8c78d0898124c52e083d088";
+    sha256 = "0qv0zpr6kwjwygx9k8jgafiil5wh2zsyryvbxghzv4yn7jb3xpdq";
   };
 
   checkInputs = [
diff --git a/pkgs/development/python-modules/whitenoise/default.nix b/pkgs/development/python-modules/whitenoise/default.nix
index 8d5f8b8813a..565032ad523 100644
--- a/pkgs/development/python-modules/whitenoise/default.nix
+++ b/pkgs/development/python-modules/whitenoise/default.nix
@@ -1,12 +1,13 @@
-{ stdenv, fetchPypi, buildPythonPackage }:
+{ stdenv, fetchPypi, buildPythonPackage, isPy27 }:
 
 buildPythonPackage rec {
   pname = "whitenoise";
-  version = "4.1.4";
+  version = "5.0.1";
+  disabled = isPy27;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "22f79cf8f1f509639330f93886acaece8ec5ac5e9600c3b981d33c34e8a42dfd";
+    sha256 = "0f9137f74bd95fa54329ace88d8dc695fbe895369a632e35f7a136e003e41d73";
   };
 
   # No tests
diff --git a/pkgs/development/python-modules/xcffib/default.nix b/pkgs/development/python-modules/xcffib/default.nix
index e8643a6b540..1bb421194f9 100644
--- a/pkgs/development/python-modules/xcffib/default.nix
+++ b/pkgs/development/python-modules/xcffib/default.nix
@@ -7,12 +7,12 @@
 }:
 
 buildPythonPackage rec {
-  version = "0.8.1";
+  version = "0.9.0";
   pname = "xcffib";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "03nf3xrqq25sj9phqc9ngvqxrrp14s4ifsx9hv41kp7zi3xamsfn";
+    sha256 = "1r03yvxwbimh8ngfrbd436f9r535vvj6m1b3zfgz9kl76c8yn5ic";
   };
 
   patchPhase = ''
diff --git a/pkgs/development/python-modules/xdis/default.nix b/pkgs/development/python-modules/xdis/default.nix
index 533e8d8b577..636b7c5045c 100644
--- a/pkgs/development/python-modules/xdis/default.nix
+++ b/pkgs/development/python-modules/xdis/default.nix
@@ -6,14 +6,14 @@
 
 buildPythonPackage rec {
   pname = "xdis";
-  version = "4.1.3";
+  version = "4.2.1";
   disabled = isPy27;
 
   src = fetchFromGitHub {
     owner = "rocky";
     repo = "python-xdis";
     rev = version;
-    sha256 = "0ixx9svyi0kw3z2i51cv1cyg4l5z8hy432kxgsvz20mr9a8z5c91";
+    sha256 = "19mnx746k9ls2f1321fl8nkps7x9by80f753f3c5wh1j91zivq6b";
   };
 
   checkInputs = [ pytest ];
@@ -27,6 +27,6 @@ buildPythonPackage rec {
     description = "Python cross-version byte-code disassembler and marshal routines";
     homepage = https://github.com/rocky/python-xdis/;
     license = licenses.gpl2;
+    broken = true; # doesn't support latest python3 interpreters
   };
-
 }
diff --git a/pkgs/development/python-modules/xml2rfc/default.nix b/pkgs/development/python-modules/xml2rfc/default.nix
index 1a54b8b4049..cf4eadd99d8 100644
--- a/pkgs/development/python-modules/xml2rfc/default.nix
+++ b/pkgs/development/python-modules/xml2rfc/default.nix
@@ -5,11 +5,11 @@
 
 buildPythonPackage rec {
   pname = "xml2rfc";
-  version = "2.35.0";
+  version = "2.37.3";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0jpg9rxxw28n66wzznlhzdgv7b7gd1crcffjhlw7lam93ils4ah5";
+    sha256 = "4ae4e99a4b482caac89d8ffd93d16a4510db36907475b1879713a1dc885646ad";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/xmlschema/default.nix b/pkgs/development/python-modules/xmlschema/default.nix
index 81a5a94abf9..788ccc0ed81 100644
--- a/pkgs/development/python-modules/xmlschema/default.nix
+++ b/pkgs/development/python-modules/xmlschema/default.nix
@@ -4,14 +4,14 @@
 }:
 
 buildPythonPackage rec {
-  version = "1.0.17";
+  version = "1.0.18";
   pname = "xmlschema";
 
   src = fetchFromGitHub {
     owner = "sissaschool";
     repo = "xmlschema";
     rev = "v${version}";
-    sha256 = "0wbz243q8028ljnh6nq3kxawiwpg5p2bwg1b23ibf7zbrhazcj4k";
+    sha256 = "1pwq2sfh7klcxismsqzgw80cp3cdkq9wv8x9g3h1zx1p66xpas9p";
   };
 
   propagatedBuildInputs = [ elementpath ];
diff --git a/pkgs/development/python-modules/xmodem/default.nix b/pkgs/development/python-modules/xmodem/default.nix
new file mode 100644
index 00000000000..00a0bfb6043
--- /dev/null
+++ b/pkgs/development/python-modules/xmodem/default.nix
@@ -0,0 +1,26 @@
+{ stdenv, buildPythonPackage, fetchFromGitHub, pytest, which, lrzsz }:
+
+buildPythonPackage rec {
+  pname = "xmodem";
+  version = "0.4.5";
+
+  src = fetchFromGitHub {
+    owner = "tehmaze";
+    repo = "xmodem";
+    rev = version;
+    sha256 = "0nz2gxwaq3ys1knpw6zlz3xrc3ziambcirg3fmp3nvzjdq8ma3h0";
+  };
+
+  checkInputs = [ pytest which lrzsz ];
+
+  checkPhase = ''
+    pytest
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Pure python implementation of the XMODEM protocol";
+    maintainers = with maintainers; [ emantor ];
+    homepage = https://github.com/tehmaze/xmodem;
+    license = licenses.mit;
+  };
+}
diff --git a/pkgs/development/python-modules/yamllint/default.nix b/pkgs/development/python-modules/yamllint/default.nix
index 1b83c8987a1..b4d5834b242 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.19.0";
+  version = "1.20.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "05fg2i27bq40z83avmz3h91i206dx5k6nyyvpa5vja54sqg14q02";
+    sha256 = "1gx3f9wcf8af9cz2v3x3196pab34n8mlqk5iswahhzpxc9i2p4bn";
   };
 
   checkInputs = [ nose ];
diff --git a/pkgs/development/python-modules/yapf/default.nix b/pkgs/development/python-modules/yapf/default.nix
index abff04f2372..f4e154f2cbc 100644
--- a/pkgs/development/python-modules/yapf/default.nix
+++ b/pkgs/development/python-modules/yapf/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "yapf";
-  version = "0.28.0";
+  version = "0.29.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "06x409cgr5im9cppzypj1kqy1fsry906vn5slv7i9hd7fshvd53g";
+    sha256 = "712e23c468506bf12cadd10169f852572ecc61b266258422d45aaf4ad7ef43de";
   };
 
   meta = with stdenv.lib; {
diff --git a/pkgs/development/python-modules/yappi/default.nix b/pkgs/development/python-modules/yappi/default.nix
index c98bc1f303e..f7a18bba903 100644
--- a/pkgs/development/python-modules/yappi/default.nix
+++ b/pkgs/development/python-modules/yappi/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "yappi";
-  version = "1.0";
+  version = "1.2.3";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1gs48c5sy771lsjhca3m4j8ljc6yhk5qnim3n5idnlaxa4ql30bz";
+    sha256 = "b8db9bc607610d6da4e27e87ec828ebddec4bdaac89ca07ebfe9a153b0641580";
   };
 
   patches = [ ./tests.patch ];
diff --git a/pkgs/development/python-modules/yarl/default.nix b/pkgs/development/python-modules/yarl/default.nix
index d07690503f3..19314e19611 100644
--- a/pkgs/development/python-modules/yarl/default.nix
+++ b/pkgs/development/python-modules/yarl/default.nix
@@ -9,11 +9,11 @@
 
 buildPythonPackage rec {
   pname = "yarl";
-  version = "1.3.0";
+  version = "1.4.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "024ecdc12bc02b321bc66b41327f930d1c2c543fa9a561b39861da9388ba7aa9";
+    sha256 = "58cd9c469eced558cd81aa3f484b2924e8897049e06889e8ff2510435b7ef74b";
   };
 
   checkInputs = [ pytest pytestrunner ];
diff --git a/pkgs/development/python-modules/yubico-client/default.nix b/pkgs/development/python-modules/yubico-client/default.nix
index e39b11f6200..99aedd4e681 100644
--- a/pkgs/development/python-modules/yubico-client/default.nix
+++ b/pkgs/development/python-modules/yubico-client/default.nix
@@ -3,11 +3,11 @@
 
 buildPythonPackage rec {
   pname = "yubico-client";
-  version = "1.11.0";
+  version = "1.12.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "c1d1c1f918c058932493c5a50341583e48487264129ed5b973c327ae48afed87";
+    sha256 = "1d74c6341210c94b639f7c7c8930550e73d5c1be60402e418e9dc95e038f8527";
   };
 
   propagatedBuildInputs = [ requests ];
diff --git a/pkgs/development/python-modules/zeroconf/default.nix b/pkgs/development/python-modules/zeroconf/default.nix
index dbf84aa182b..ef45f663ceb 100644
--- a/pkgs/development/python-modules/zeroconf/default.nix
+++ b/pkgs/development/python-modules/zeroconf/default.nix
@@ -10,12 +10,12 @@
 
 buildPythonPackage rec {
   pname = "zeroconf";
-  version = "0.23.0";
+  version = "0.24.3";
   disabled = isPy27;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1xgfs38wv52a73p9gmyz0vxj6c49516isjn9bhp8p3y4cywk7hz0";
+    sha256 = "de62e5067ea7ab356f7168a3562d79fececa8632ed0fad0e82f505e01fafbc6d";
   };
 
   propagatedBuildInputs = [ ifaddr ]
diff --git a/pkgs/development/python-modules/zha-quirks/default.nix b/pkgs/development/python-modules/zha-quirks/default.nix
index 1f490fea05f..d819a881f9f 100644
--- a/pkgs/development/python-modules/zha-quirks/default.nix
+++ b/pkgs/development/python-modules/zha-quirks/default.nix
@@ -4,14 +4,14 @@
 
 buildPythonPackage rec {
   pname = "zha-quirks";
-  version = "0.0.28";
+  version = "0.0.30";
 
   nativeBuildInputs = [ pytest ];
   buildInputs = [ aiohttp zigpy ];
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "021z5f5dm74amxkqnz4s1690ydprciqg23jz3n4mpjlxyxbdfj73";
+    sha256 = "00731a9b9c58c4e59f6765ac0cec5e2301bdda28ef19e00e2ba752be457a61b9";
   };
 
   meta = with stdenv.lib; {
diff --git a/pkgs/development/python-modules/zm-py/default.nix b/pkgs/development/python-modules/zm-py/default.nix
index 72c32ef8277..4cd5e9b1d20 100644
--- a/pkgs/development/python-modules/zm-py/default.nix
+++ b/pkgs/development/python-modules/zm-py/default.nix
@@ -3,11 +3,11 @@
 
 buildPythonPackage rec {
   pname = "zm-py";
-  version = "0.3.3";
+  version = "0.4.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "7cac73bd4f5e729fd8b3cff6f456652c3fd76b1a11f5d539bc7e14ffc7a87e9a";
+    sha256 = "f9693ca046de4ea12c1afb5c67709ec0c2a48744566c0a1a9327348e1a1617b0";
   };
 
   disabled = !isPy3k;
diff --git a/pkgs/development/python-modules/zope_component/default.nix b/pkgs/development/python-modules/zope_component/default.nix
index bbe635b712f..25452fdd070 100644
--- a/pkgs/development/python-modules/zope_component/default.nix
+++ b/pkgs/development/python-modules/zope_component/default.nix
@@ -12,11 +12,11 @@
 
 buildPythonPackage rec {
   pname = "zope.component";
-  version = "4.5";
+  version = "4.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "6edfd626c3b593b72895a8cfcf79bff41f4619194ce996a85bce31ac02b94e55";
+    sha256 = "ec2afc5bbe611dcace98bb39822c122d44743d635dafc7315b9aef25097db9e6";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/zope_contenttype/default.nix b/pkgs/development/python-modules/zope_contenttype/default.nix
index fc28a740d62..6db39d6c5b5 100644
--- a/pkgs/development/python-modules/zope_contenttype/default.nix
+++ b/pkgs/development/python-modules/zope_contenttype/default.nix
@@ -5,11 +5,11 @@
 
 buildPythonPackage rec {
   pname = "zope.contenttype";
-  version = "4.4";
+  version = "4.5.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "08c0408f515668e6f0c4fd492b66fbe87a074c1aa21cfc6be8c6292482d8b2f4";
+    sha256 = "c12d929c67ab3eaef9b8a7fba3d19cce8500c8fd25afed8058c8e15f324cbd5b";
   };
 
   meta = with stdenv.lib; {
diff --git a/pkgs/development/python-modules/zope_i18nmessageid/default.nix b/pkgs/development/python-modules/zope_i18nmessageid/default.nix
index cddcad00774..fe9a6b56ed8 100644
--- a/pkgs/development/python-modules/zope_i18nmessageid/default.nix
+++ b/pkgs/development/python-modules/zope_i18nmessageid/default.nix
@@ -6,11 +6,11 @@
 
 buildPythonPackage rec {
   pname = "zope.i18nmessageid";
-  version = "4.3.1";
+  version = "5.0.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "e511edff8e75d3a6f84d8256e1e468c85a4aa9d89c2ea264a919334fae7081e3";
+    sha256 = "03318270df5320c57b3416744f9cb2a85160a8d00345c07ac35d2b7ac01ff50c";
   };
 
   propagatedBuildInputs = [ six ];
diff --git a/pkgs/development/python-modules/zope_interface/default.nix b/pkgs/development/python-modules/zope_interface/default.nix
index a5855697ad6..d208d4a3529 100644
--- a/pkgs/development/python-modules/zope_interface/default.nix
+++ b/pkgs/development/python-modules/zope_interface/default.nix
@@ -6,11 +6,11 @@
 
 buildPythonPackage rec {
   pname = "zope.interface";
-  version = "4.6.0";
+  version = "4.7.1";
   
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1b3d0dcabc7c90b470e59e38a9acaa361be43b3a6ea644c0063951964717f0e5";
+    sha256 = "4bb937e998be9d5e345f486693e477ba79e4344674484001a0b646be1d530487";
   };
 
   propagatedBuildInputs = [ zope_event ];