about summary refs log tree commit diff
path: root/nixpkgs/pkgs/development/python-modules
diff options
context:
space:
mode:
Diffstat (limited to 'nixpkgs/pkgs/development/python-modules')
-rw-r--r--nixpkgs/pkgs/development/python-modules/APScheduler/default.nix17
-rw-r--r--nixpkgs/pkgs/development/python-modules/Cython/default.nix13
-rw-r--r--nixpkgs/pkgs/development/python-modules/Fabric/default.nix23
-rw-r--r--nixpkgs/pkgs/development/python-modules/GitPython/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/Mako/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/Pygments/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/ROPGadget/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/Theano/default.nix16
-rw-r--r--nixpkgs/pkgs/development/python-modules/acme-tiny/default.nix20
-rw-r--r--nixpkgs/pkgs/development/python-modules/acoustics/default.nix47
-rw-r--r--nixpkgs/pkgs/development/python-modules/adjusttext/default.nix32
-rw-r--r--nixpkgs/pkgs/development/python-modules/agate-excel/default.nix8
-rw-r--r--nixpkgs/pkgs/development/python-modules/agate-sql/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/ailment/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/aioambient/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/aioapns/default.nix35
-rw-r--r--nixpkgs/pkgs/development/python-modules/aiobotocore/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/aioesphomeapi/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/aiogithubapi/default.nix53
-rw-r--r--nixpkgs/pkgs/development/python-modules/aioprocessing/default.nix2
-rw-r--r--nixpkgs/pkgs/development/python-modules/aiopvapi/default.nix39
-rw-r--r--nixpkgs/pkgs/development/python-modules/aioredis/default.nix17
-rw-r--r--nixpkgs/pkgs/development/python-modules/aioswitcher/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/aiowatttime/default.nix53
-rw-r--r--nixpkgs/pkgs/development/python-modules/aioymaps/default.nix5
-rw-r--r--nixpkgs/pkgs/development/python-modules/ajsonrpc/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/alembic/default.nix48
-rw-r--r--nixpkgs/pkgs/development/python-modules/amcrest/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/angr/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/angrop/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/ansi2html/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/ansible-runner/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/ansible/base.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/ansible/core.nix8
-rw-r--r--nixpkgs/pkgs/development/python-modules/ansible/legacy.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/apispec/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/apprise/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/apycula/default.nix46
-rw-r--r--nixpkgs/pkgs/development/python-modules/arcam-fmj/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/archinfo/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/arrow/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/asn1/default.nix45
-rw-r--r--nixpkgs/pkgs/development/python-modules/astroid/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/asttokens/default.nix34
-rw-r--r--nixpkgs/pkgs/development/python-modules/async-upnp-client/default.nix20
-rw-r--r--nixpkgs/pkgs/development/python-modules/asynccmd/default.nix42
-rw-r--r--nixpkgs/pkgs/development/python-modules/asyncstdlib/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/atenpdu/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/auth0-python/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/authcaptureproxy/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/autopage/default.nix22
-rw-r--r--nixpkgs/pkgs/development/python-modules/awkward/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/awscrt/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/azure-core/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/azure-mgmt-batchai/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/azure-mgmt-containerinstance/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/azure-mgmt-iothubprovisioningservices/default.nix7
-rw-r--r--nixpkgs/pkgs/development/python-modules/azure-mgmt-kusto/azure-mgmt-apimanagement/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/azure-mgmt-kusto/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/azure-mgmt-recoveryservices/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/azure-mgmt-servicebus/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/azure-mgmt-sqlvirtualmachine/default.nix8
-rw-r--r--nixpkgs/pkgs/development/python-modules/azure-mgmt-storage/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/azure-storage-file-share/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/azure-synapse-managedprivateendpoints/default.nix33
-rw-r--r--nixpkgs/pkgs/development/python-modules/backports-entry-points-selectable/default.nix32
-rw-r--r--nixpkgs/pkgs/development/python-modules/backports_functools_lru_cache/default.nix2
-rw-r--r--nixpkgs/pkgs/development/python-modules/bellows/default.nix11
-rw-r--r--nixpkgs/pkgs/development/python-modules/beniget/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/bids-validator/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/biplist/default.nix22
-rw-r--r--nixpkgs/pkgs/development/python-modules/bitarray/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/bitlist/default.nix9
-rw-r--r--nixpkgs/pkgs/development/python-modules/black/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/block-io/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/bokeh/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/boto3/1_17.nix50
-rw-r--r--nixpkgs/pkgs/development/python-modules/boto3/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/botocore/1_20.nix48
-rw-r--r--nixpkgs/pkgs/development/python-modules/botocore/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/braintree/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/breathe/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/brotli/default.nix20
-rw-r--r--nixpkgs/pkgs/development/python-modules/canonicaljson/default.nix20
-rw-r--r--nixpkgs/pkgs/development/python-modules/casbin/default.nix12
-rw-r--r--nixpkgs/pkgs/development/python-modules/censys/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/cffi/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/cfn-lint/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/charset-normalizer/default.nix35
-rw-r--r--nixpkgs/pkgs/development/python-modules/chart-studio/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/check-manifest/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/claripy/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/cle/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/cliff/default.nix50
-rw-r--r--nixpkgs/pkgs/development/python-modules/cliff/tests.nix34
-rw-r--r--nixpkgs/pkgs/development/python-modules/cmd2/default.nix80
-rw-r--r--nixpkgs/pkgs/development/python-modules/colorlog/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/commoncode/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/configargparse/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/configparser/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/contextlib2/0.nix23
-rw-r--r--nixpkgs/pkgs/development/python-modules/contextlib2/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/coqpit/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/cryptacular/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/cryptography/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/cryptography/vectors.nix2
-rw-r--r--nixpkgs/pkgs/development/python-modules/csvs-to-sqlite/default.nix44
-rw-r--r--nixpkgs/pkgs/development/python-modules/cucumber-tag-expressions/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/cupy/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/cvxopt/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/cx_freeze/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/cxxfilt/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/cymem/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/dask-jobqueue/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/dask-xgboost/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/dask/default.nix54
-rw-r--r--nixpkgs/pkgs/development/python-modules/databricks-connect/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/dataclasses-json/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/dateutils/default.nix25
-rw-r--r--nixpkgs/pkgs/development/python-modules/debtcollector/default.nix2
-rw-r--r--nixpkgs/pkgs/development/python-modules/debugpy/default.nix2
-rw-r--r--nixpkgs/pkgs/development/python-modules/decorator/4.nix21
-rw-r--r--nixpkgs/pkgs/development/python-modules/decorator/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/deemix/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/deezer-py/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/deezer-python/default.nix24
-rw-r--r--nixpkgs/pkgs/development/python-modules/distributed/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/distro/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/django-cacheops/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/django/3.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/django_environ/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/django_taggit/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/djangorestframework-simplejwt/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/dpath/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/dpkt/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/dropbox/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/einops/default.nix54
-rw-r--r--nixpkgs/pkgs/development/python-modules/elementpath/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/elmax/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/emoji/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/env-canada/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/eternalegypt/default.nix39
-rw-r--r--nixpkgs/pkgs/development/python-modules/executing/default.nix5
-rw-r--r--nixpkgs/pkgs/development/python-modules/extractcode/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/fakeredis/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/faraday-plugins/default.nix64
-rw-r--r--nixpkgs/pkgs/development/python-modules/fastapi/default.nix14
-rw-r--r--nixpkgs/pkgs/development/python-modules/fastavro/default.nix59
-rw-r--r--nixpkgs/pkgs/development/python-modules/fastdiff/default.nix13
-rw-r--r--nixpkgs/pkgs/development/python-modules/fastimport/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/fastparquet/default.nix15
-rw-r--r--nixpkgs/pkgs/development/python-modules/fe25519/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/ffmpeg-progress-yield/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/filetype/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/fiona/default.nix12
-rw-r--r--nixpkgs/pkgs/development/python-modules/flask-jwt-extended/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/flask-migrate/default.nix48
-rw-r--r--nixpkgs/pkgs/development/python-modules/flipr-api/default.nix60
-rw-r--r--nixpkgs/pkgs/development/python-modules/flit-core/default.nix25
-rw-r--r--nixpkgs/pkgs/development/python-modules/flit-core/tests.nix22
-rw-r--r--nixpkgs/pkgs/development/python-modules/fountains/default.nix5
-rw-r--r--nixpkgs/pkgs/development/python-modules/fpyutils/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/freetype-py/default.nix18
-rw-r--r--nixpkgs/pkgs/development/python-modules/frozendict/default.nix41
-rw-r--r--nixpkgs/pkgs/development/python-modules/fsspec/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/ftfy/default.nix2
-rw-r--r--nixpkgs/pkgs/development/python-modules/furo/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/gcovr/default.nix7
-rw-r--r--nixpkgs/pkgs/development/python-modules/gcsfs/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/gdown/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/gensim/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/geoalchemy2/default.nix42
-rw-r--r--nixpkgs/pkgs/development/python-modules/geoip2/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/gevent-websocket/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/geventhttpclient/default.nix45
-rw-r--r--nixpkgs/pkgs/development/python-modules/goalzero/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/google-api-python-client/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/google-cloud-audit-log/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/google-cloud-bigquery-datatransfer/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/google-cloud-dns/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/google-cloud-firestore/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/google-cloud-runtimeconfig/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/google-cloud-secret-manager/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/google-cloud-spanner/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/google-cloud-speech/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/google-cloud-testutils/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/google-crc32c/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/google-resumable-media/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/gradient/default.nix7
-rw-r--r--nixpkgs/pkgs/development/python-modules/graphql-core/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/green/default.nix25
-rw-r--r--nixpkgs/pkgs/development/python-modules/green/tests.patch22
-rw-r--r--nixpkgs/pkgs/development/python-modules/greenlet/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/gssapi/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/h5py/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/hdate/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/hdbscan/default.nix2
-rw-r--r--nixpkgs/pkgs/development/python-modules/herepy/default.nix5
-rw-r--r--nixpkgs/pkgs/development/python-modules/hiyapyco/default.nix20
-rw-r--r--nixpkgs/pkgs/development/python-modules/hstspreload/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/html5-parser/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/httpcore/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/httpretty/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/httptools/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/httpx/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/humanize/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/hvac/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/hypothesis/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/hypothesmith/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/ibm-cloud-sdk-core/default.nix30
-rw-r--r--nixpkgs/pkgs/development/python-modules/ibm-watson/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/identify/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/imageio-ffmpeg/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/imap-tools/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/imdbpy/default.nix29
-rw-r--r--nixpkgs/pkgs/development/python-modules/imdbpy/sql_error.patch39
-rw-r--r--nixpkgs/pkgs/development/python-modules/iminuit/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/immutabledict/default.nix10
-rw-r--r--nixpkgs/pkgs/development/python-modules/impacket/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/importlib-metadata/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/importlib-resources/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/in-place/default.nix33
-rw-r--r--nixpkgs/pkgs/development/python-modules/inflect/default.nix3
-rw-r--r--nixpkgs/pkgs/development/python-modules/influxdb-client/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/inform/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/intake-parquet/default.nix45
-rw-r--r--nixpkgs/pkgs/development/python-modules/intake/default.nix20
-rw-r--r--nixpkgs/pkgs/development/python-modules/intensity-normalization/default.nix54
-rw-r--r--nixpkgs/pkgs/development/python-modules/invoke/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/iotawattpy/default.nix36
-rw-r--r--nixpkgs/pkgs/development/python-modules/ipykernel/default.nix51
-rw-r--r--nixpkgs/pkgs/development/python-modules/ipykernel/tests.nix57
-rw-r--r--nixpkgs/pkgs/development/python-modules/ipython/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/irc/default.nix3
-rw-r--r--nixpkgs/pkgs/development/python-modules/islpy/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/isort/default.nix9
-rw-r--r--nixpkgs/pkgs/development/python-modules/iterm2/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/jaraco_classes/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/jaraco_collections/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/jaraco_functools/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/jaraco_text/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/jdatetime/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/jeepney/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/jira/default.nix56
-rw-r--r--nixpkgs/pkgs/development/python-modules/jira/sphinx-fix.patch11
-rw-r--r--nixpkgs/pkgs/development/python-modules/jupyter-repo2docker/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/jupyter_client/default.nix18
-rw-r--r--nixpkgs/pkgs/development/python-modules/jupyter_server/default.nix9
-rw-r--r--nixpkgs/pkgs/development/python-modules/jupyterlab-git/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/jupyterlab/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/jupyterlab_server/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/k5test/default.nix16
-rw-r--r--nixpkgs/pkgs/development/python-modules/k5test/fix-paths.patch88
-rw-r--r--nixpkgs/pkgs/development/python-modules/keyring/default.nix7
-rw-r--r--nixpkgs/pkgs/development/python-modules/keyrings-alt/default.nix8
-rw-r--r--nixpkgs/pkgs/development/python-modules/keystoneauth1/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/kiwisolver/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/kubernetes/default.nix76
-rw-r--r--nixpkgs/pkgs/development/python-modules/labelbox/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/labgrid/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/lark-parser/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/launchpadlib/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/lazr-restfulclient/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/lazr-uri/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/ldap3/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/ledgerblue/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/lexid/default.nix10
-rw-r--r--nixpkgs/pkgs/development/python-modules/libarchive-c/default.nix42
-rw-r--r--nixpkgs/pkgs/development/python-modules/libarcus/default.nix12
-rw-r--r--nixpkgs/pkgs/development/python-modules/libcst/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/libgpuarray/default.nix18
-rw-r--r--nixpkgs/pkgs/development/python-modules/llvmlite/default.nix8
-rw-r--r--nixpkgs/pkgs/development/python-modules/mailsuite/default.nix39
-rw-r--r--nixpkgs/pkgs/development/python-modules/marisa-trie/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/markdown-it-py/default.nix14
-rw-r--r--nixpkgs/pkgs/development/python-modules/marshmallow-dataclass/default.nix45
-rw-r--r--nixpkgs/pkgs/development/python-modules/marshmallow-oneofschema/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/marshmallow-polyfield/default.nix29
-rw-r--r--nixpkgs/pkgs/development/python-modules/marshmallow/default.nix16
-rw-r--r--nixpkgs/pkgs/development/python-modules/mat2/default.nix17
-rw-r--r--nixpkgs/pkgs/development/python-modules/mat2/paths.patch10
-rw-r--r--nixpkgs/pkgs/development/python-modules/matplotlib/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/mattermostdriver/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/mautrix/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/maxcube-api/default.nix42
-rw-r--r--nixpkgs/pkgs/development/python-modules/maxminddb/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/mechanize/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/migen/default.nix32
-rw-r--r--nixpkgs/pkgs/development/python-modules/minidump/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/mitmproxy/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/mkl-service/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/mlflow/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/mne-python/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/mocket/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/monotonic/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/monty/default.nix17
-rw-r--r--nixpkgs/pkgs/development/python-modules/motor/default.nix16
-rw-r--r--nixpkgs/pkgs/development/python-modules/moviepy/default.nix48
-rw-r--r--nixpkgs/pkgs/development/python-modules/murmurhash/default.nix2
-rw-r--r--nixpkgs/pkgs/development/python-modules/mypy-boto3-builder/default.nix20
-rw-r--r--nixpkgs/pkgs/development/python-modules/mypy-boto3-s3/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/mypy-protobuf/default.nix8
-rw-r--r--nixpkgs/pkgs/development/python-modules/nbclient/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/nbconvert/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/nbdime/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/niluclient/default.nix35
-rw-r--r--nixpkgs/pkgs/development/python-modules/node-semver/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/notus-scanner/default.nix56
-rw-r--r--nixpkgs/pkgs/development/python-modules/ntc-templates/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/numba/default.nix19
-rw-r--r--nixpkgs/pkgs/development/python-modules/numpy/default.nix8
-rw-r--r--nixpkgs/pkgs/development/python-modules/nunavut/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/ocrmypdf/default.nix84
-rw-r--r--nixpkgs/pkgs/development/python-modules/ocrmypdf/paths.patch160
-rw-r--r--nixpkgs/pkgs/development/python-modules/openshift/default.nix48
-rw-r--r--nixpkgs/pkgs/development/python-modules/openstacksdk/default.nix44
-rw-r--r--nixpkgs/pkgs/development/python-modules/openstacksdk/tests.nix65
-rw-r--r--nixpkgs/pkgs/development/python-modules/optuna/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/orjson/default.nix61
-rw-r--r--nixpkgs/pkgs/development/python-modules/os-service-types/default.nix2
-rw-r--r--nixpkgs/pkgs/development/python-modules/osc-lib/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/oslo-config/default.nix2
-rw-r--r--nixpkgs/pkgs/development/python-modules/oslotest/default.nix2
-rw-r--r--nixpkgs/pkgs/development/python-modules/ospd/default.nix53
-rw-r--r--nixpkgs/pkgs/development/python-modules/p1monitor/default.nix45
-rw-r--r--nixpkgs/pkgs/development/python-modules/pandas/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/panel/default.nix11
-rw-r--r--nixpkgs/pkgs/development/python-modules/panel/node/node-env.nix10
-rw-r--r--nixpkgs/pkgs/development/python-modules/panel/node/node-packages.nix172
-rw-r--r--nixpkgs/pkgs/development/python-modules/panel/node/package.json4
-rw-r--r--nixpkgs/pkgs/development/python-modules/panflute/default.nix9
-rw-r--r--nixpkgs/pkgs/development/python-modules/paramiko/default.nix20
-rw-r--r--nixpkgs/pkgs/development/python-modules/parquet/default.nix44
-rw-r--r--nixpkgs/pkgs/development/python-modules/parsedmarc/default.nix74
-rw-r--r--nixpkgs/pkgs/development/python-modules/parts/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pathlib2/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pathspec/default.nix2
-rw-r--r--nixpkgs/pkgs/development/python-modules/pathy/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pbr/default.nix22
-rw-r--r--nixpkgs/pkgs/development/python-modules/pbr/tests.nix49
-rw-r--r--nixpkgs/pkgs/development/python-modules/pdoc3/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pefile/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pex/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pg8000/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/phik/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/phonenumbers/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pikepdf/default.nix27
-rw-r--r--nixpkgs/pkgs/development/python-modules/pikepdf/paths.patch26
-rw-r--r--nixpkgs/pkgs/development/python-modules/pillow/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pkgconfig/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pkginfo/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/plac/default.nix10
-rw-r--r--nixpkgs/pkgs/development/python-modules/plaid-python/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/platformdirs/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/plexapi/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/plotly/default.nix17
-rw-r--r--nixpkgs/pkgs/development/python-modules/pluggy/0.nix34
-rw-r--r--nixpkgs/pkgs/development/python-modules/pluggy/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/plugwise/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/plyer/default.nix63
-rw-r--r--nixpkgs/pkgs/development/python-modules/poetry-core/default.nix8
-rw-r--r--nixpkgs/pkgs/development/python-modules/poetry/default.nix7
-rw-r--r--nixpkgs/pkgs/development/python-modules/pontos/default.nix8
-rw-r--r--nixpkgs/pkgs/development/python-modules/pook/default.nix14
-rw-r--r--nixpkgs/pkgs/development/python-modules/prance/default.nix32
-rw-r--r--nixpkgs/pkgs/development/python-modules/preshed/default.nix10
-rw-r--r--nixpkgs/pkgs/development/python-modules/prettytable/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/priority/deadline.patch39
-rw-r--r--nixpkgs/pkgs/development/python-modules/priority/default.nix31
-rw-r--r--nixpkgs/pkgs/development/python-modules/progressbar2/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/psd-tools/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/ptpython/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pudb/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/py-air-control-exporter/default.nix22
-rw-r--r--nixpkgs/pkgs/development/python-modules/py3status/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyTelegramBotAPI/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyads/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pybids/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pybind11/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pybullet/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pychromecast/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pydeconz/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyfaidx/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyfakefs/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyfronius/default.nix5
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyglet/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyiqvia/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/pykka/default.nix34
-rw-r--r--nixpkgs/pkgs/development/python-modules/pykodi/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pylint/default.nix20
-rw-r--r--nixpkgs/pkgs/development/python-modules/pylitterbot/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pymatgen/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pymavlink/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pymc3/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pymodbus/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pymongo/default.nix16
-rw-r--r--nixpkgs/pkgs/development/python-modules/pymyq/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pynanoleaf/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pynndescent/default.nix27
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyocr/default.nix37
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyopenuv/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyosmium/default.nix7
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyp/default.nix43
-rw-r--r--nixpkgs/pkgs/development/python-modules/pypandoc/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyphen/default.nix20
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyramid/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyramid_mako/default.nix3
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyro4/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyroma/default.nix19
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyroute2-core/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyroute2-ethtool/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyroute2-ipdb/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyroute2-ipset/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyroute2-ndb/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyroute2-nftables/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyroute2-nslink/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyroute2-protocols/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyroute2/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyrsistent/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pysatochip/default.nix28
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyscf/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyscf/h5py.patch13
-rw-r--r--nixpkgs/pkgs/development/python-modules/pysdcp/default.nix31
-rw-r--r--nixpkgs/pkgs/development/python-modules/pysdl2/PySDL2-dll.patch227
-rw-r--r--nixpkgs/pkgs/development/python-modules/pysdl2/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pysiaalarm/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyspcwebgw/default.nix46
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyspnego/default.nix18
-rw-r--r--nixpkgs/pkgs/development/python-modules/pysyncobj/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pytest-cases/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pytest-doctestplus/default.nix26
-rw-r--r--nixpkgs/pkgs/development/python-modules/pytest-httpx/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pytest-isort/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pytest-randomly/default.nix10
-rw-r--r--nixpkgs/pkgs/development/python-modules/pytest-relaxed/default.nix20
-rw-r--r--nixpkgs/pkgs/development/python-modules/pytest-snapshot/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pytest-testmon/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pytest-xprocess/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pytest/4.nix5
-rw-r--r--nixpkgs/pkgs/development/python-modules/pytest/5.nix5
-rw-r--r--nixpkgs/pkgs/development/python-modules/pytest/default.nix9
-rw-r--r--nixpkgs/pkgs/development/python-modules/python-daemon/default.nix39
-rw-r--r--nixpkgs/pkgs/development/python-modules/python-dotenv/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/python-ethtool/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/python-gitlab/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/python-glanceclient/default.nix65
-rw-r--r--nixpkgs/pkgs/development/python-modules/python-heatclient/default.nix69
-rw-r--r--nixpkgs/pkgs/development/python-modules/python-hosts/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/python-http-client/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/python-ironicclient/default.nix63
-rw-r--r--nixpkgs/pkgs/development/python-modules/python-keystoneclient/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/python-lsp-server/default.nix33
-rw-r--r--nixpkgs/pkgs/development/python-modules/python-manilaclient/default.nix58
-rw-r--r--nixpkgs/pkgs/development/python-modules/python-manilaclient/tests.nix31
-rw-r--r--nixpkgs/pkgs/development/python-modules/python-osc/default.nix23
-rw-r--r--nixpkgs/pkgs/development/python-modules/python-rapidjson/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/python-sql/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/python-status/default.nix26
-rw-r--r--nixpkgs/pkgs/development/python-modules/python-swiftclient/default.nix36
-rw-r--r--nixpkgs/pkgs/development/python-modules/python3-application/default.nix47
-rw-r--r--nixpkgs/pkgs/development/python-modules/python3-eventlib/default.nix34
-rw-r--r--nixpkgs/pkgs/development/python-modules/python3-gnutls/default.nix52
-rw-r--r--nixpkgs/pkgs/development/python-modules/python3-gnutls/libgnutls-path.patch42
-rw-r--r--nixpkgs/pkgs/development/python-modules/pythran/default.nix3
-rw-r--r--nixpkgs/pkgs/development/python-modules/pytibber/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/pytorch/bin.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pytorch/binary-hashes.nix39
-rwxr-xr-xnixpkgs/pkgs/development/python-modules/pytorch/prefetch.sh36
-rw-r--r--nixpkgs/pkgs/development/python-modules/pytube/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyturbojpeg/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pytwitchapi/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyupgrade/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyusb/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyvera/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyvex/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyvips/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyvolumio/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyzmq/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/qtpy/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/quantities/default.nix28
-rw-r--r--nixpkgs/pkgs/development/python-modules/queuelib/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/r2pipe/default.nix5
-rw-r--r--nixpkgs/pkgs/development/python-modules/rapidfuzz/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/rdflib-jsonld/default.nix2
-rw-r--r--nixpkgs/pkgs/development/python-modules/rdflib/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/regex/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/renault-api/default.nix68
-rw-r--r--nixpkgs/pkgs/development/python-modules/reportlab/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/requests-cache/default.nix11
-rw-r--r--nixpkgs/pkgs/development/python-modules/requests-pkcs12/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/requests/default.nix22
-rw-r--r--nixpkgs/pkgs/development/python-modules/rich/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/robotframework-requests/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/robotframework-sshlibrary/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/ruamel_yaml/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/s3fs/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/s3transfer/0_4.nix52
-rw-r--r--nixpkgs/pkgs/development/python-modules/s3transfer/default.nix7
-rw-r--r--nixpkgs/pkgs/development/python-modules/sagemaker/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/sanic-testing/default.nix13
-rw-r--r--nixpkgs/pkgs/development/python-modules/scancode-toolkit/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/schema-salad/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/scikit-fuzzy/default.nix9
-rw-r--r--nixpkgs/pkgs/development/python-modules/scikit-hep-testdata/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/scikit-image/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/scikit-learn-extra/default.nix57
-rw-r--r--nixpkgs/pkgs/development/python-modules/scikit-learn/0.20.nix3
-rw-r--r--nixpkgs/pkgs/development/python-modules/scikit-learn/default.nix2
-rw-r--r--nixpkgs/pkgs/development/python-modules/scikits-odes/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/scipy/default.nix14
-rw-r--r--nixpkgs/pkgs/development/python-modules/scp/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/scrapy-deltafetch/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/screeninfo/default.nix52
-rw-r--r--nixpkgs/pkgs/development/python-modules/screenlogicpy/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/sendgrid/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/sentry-sdk/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/service_identity/default.nix36
-rw-r--r--nixpkgs/pkgs/development/python-modules/setuptools-scm/default.nix33
-rw-r--r--nixpkgs/pkgs/development/python-modules/setuptools-scm/tests.nix33
-rw-r--r--nixpkgs/pkgs/development/python-modules/simple-rest-client/default.nix55
-rw-r--r--nixpkgs/pkgs/development/python-modules/simple-salesforce/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/simplejson/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/simplekml/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/singledispatch/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/skytemple-files/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/slack-sdk/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/slowapi/default.nix16
-rw-r--r--nixpkgs/pkgs/development/python-modules/smart-meter-texas/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/smart-open/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/smbprotocol/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/snitun/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/snowflake-connector-python/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/snowflake-sqlalchemy/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/snscrape/default.nix41
-rw-r--r--nixpkgs/pkgs/development/python-modules/soco/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/sopel/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/spacy/default.nix2
-rw-r--r--nixpkgs/pkgs/development/python-modules/spacy/legacy.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/sphinx-argparse/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/sphinx/default.nix15
-rw-r--r--nixpkgs/pkgs/development/python-modules/sphinxcontrib-autoapi/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/sphinxcontrib-htmlhelp/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/sphinxcontrib-tikz/binary-paths.patch22
-rw-r--r--nixpkgs/pkgs/development/python-modules/sphinxcontrib-tikz/default.nix15
-rw-r--r--nixpkgs/pkgs/development/python-modules/sphinxcontrib_httpdomain/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/spyder-kernels/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/spyder/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/sqlalchemy/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/sqlite-utils/default.nix17
-rw-r--r--nixpkgs/pkgs/development/python-modules/ssdp/default.nix48
-rw-r--r--nixpkgs/pkgs/development/python-modules/sseclient-py/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/starlette/default.nix30
-rw-r--r--nixpkgs/pkgs/development/python-modules/stdlib-list/default.nix32
-rw-r--r--nixpkgs/pkgs/development/python-modules/stestr/default.nix2
-rw-r--r--nixpkgs/pkgs/development/python-modules/streamlabswater/default.nix37
-rw-r--r--nixpkgs/pkgs/development/python-modules/sure/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/symengine/default.nix7
-rw-r--r--nixpkgs/pkgs/development/python-modules/tableaudocumentapi/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/tasklib/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/tempest/default.nix89
-rw-r--r--nixpkgs/pkgs/development/python-modules/tempora/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/tensorboard-plugin-profile/default.nix5
-rw-r--r--nixpkgs/pkgs/development/python-modules/terminado/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/termplotlib/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/tern/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/teslajsonpy/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/testtools/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/texttable/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/thinc/default.nix2
-rw-r--r--nixpkgs/pkgs/development/python-modules/thriftpy2/default.nix45
-rw-r--r--nixpkgs/pkgs/development/python-modules/tifffile/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/tinydb/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/tlsh/default.nix10
-rw-r--r--nixpkgs/pkgs/development/python-modules/tomli/default.nix25
-rw-r--r--nixpkgs/pkgs/development/python-modules/tomli/tests.nix21
-rw-r--r--nixpkgs/pkgs/development/python-modules/toonapi/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/torchvision/bin.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/torchvision/binary-hashes.nix34
-rwxr-xr-xnixpkgs/pkgs/development/python-modules/torchvision/prefetch.sh36
-rw-r--r--nixpkgs/pkgs/development/python-modules/towncrier/default.nix12
-rw-r--r--nixpkgs/pkgs/development/python-modules/tox/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/tqdm/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/traitlets/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/transmission-rpc/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/trimesh/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/trustme/default.nix12
-rw-r--r--nixpkgs/pkgs/development/python-modules/trytond/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/twine/default.nix5
-rw-r--r--nixpkgs/pkgs/development/python-modules/types-futures/default.nix18
-rw-r--r--nixpkgs/pkgs/development/python-modules/types-protobuf/default.nix20
-rw-r--r--nixpkgs/pkgs/development/python-modules/types-pytz/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/types-requests/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/typing-extensions/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/tzlocal/default.nix2
-rw-r--r--nixpkgs/pkgs/development/python-modules/userpath/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/uvloop/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/velbus-aio/default.nix38
-rw-r--r--nixpkgs/pkgs/development/python-modules/vidstab/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/virtualenv/default.nix25
-rw-r--r--nixpkgs/pkgs/development/python-modules/vispy/default.nix51
-rw-r--r--nixpkgs/pkgs/development/python-modules/vivisect/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/vowpalwabbit/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/wadllib/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/wasmer/default.nix110
-rw-r--r--nixpkgs/pkgs/development/python-modules/wasmer/tests.nix25
-rw-r--r--nixpkgs/pkgs/development/python-modules/watchdog/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/webargs/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/werkzeug/default.nix7
-rw-r--r--nixpkgs/pkgs/development/python-modules/wsgiprox/default.nix36
-rw-r--r--nixpkgs/pkgs/development/python-modules/xarray/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/xml2rfc/default.nix35
-rw-r--r--nixpkgs/pkgs/development/python-modules/xmlsec/default.nix7
-rw-r--r--nixpkgs/pkgs/development/python-modules/yamlloader/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/yeelight/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/youtube-search-python/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/yt/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/ytmusicapi/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/zarr/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/zconfig/default.nix19
-rw-r--r--nixpkgs/pkgs/development/python-modules/zeroconf/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/zha-quirks/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/zigpy-deconz/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/zigpy-xbee/default.nix13
-rw-r--r--nixpkgs/pkgs/development/python-modules/zigpy-znp/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/zigpy/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/zipp/default.nix16
-rw-r--r--nixpkgs/pkgs/development/python-modules/zodb/default.nix82
-rw-r--r--nixpkgs/pkgs/development/python-modules/zope_component/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/zope_proxy/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/zwave-js-server-python/default.nix4
630 files changed, 6710 insertions, 2355 deletions
diff --git a/nixpkgs/pkgs/development/python-modules/APScheduler/default.nix b/nixpkgs/pkgs/development/python-modules/APScheduler/default.nix
index a4083707a072..8556294e2b68 100644
--- a/nixpkgs/pkgs/development/python-modules/APScheduler/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/APScheduler/default.nix
@@ -6,7 +6,6 @@
 , pytestCheckHook
 , pytest-asyncio
 , pytest-tornado
-, pytest-cov
 , sqlalchemy
 , tornado
 , twisted
@@ -22,12 +21,13 @@
 
 buildPythonPackage rec {
   pname = "APScheduler";
-  version = "3.7.0";
+  version = "3.8.0";
+
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1cab7f2521e107d07127b042155b632b7a1cd5e02c34be5a28ff62f77c900c6a";
+    sha256 = "793b2d37c52ece53e34626619e6142e99b20b59a12155f39e1e6932e324f079d";
   };
 
   buildInputs = [
@@ -38,7 +38,6 @@ buildPythonPackage rec {
     pytest-asyncio
     pytest-tornado
     pytestCheckHook
-    pytest-cov
     sqlalchemy
     tornado
     twisted
@@ -54,7 +53,14 @@ buildPythonPackage rec {
     setuptools
   ];
 
-  disabledTests = lib.optionals stdenv.isDarwin [
+  postPatch = ''
+    substituteInPlace setup.cfg \
+      --replace " --cov --tb=short" ""
+  '';
+
+  disabledTests = [
+    "test_broken_pool"
+  ] ++ lib.optionals stdenv.isDarwin [
     "test_submit_job"
     "test_max_instances"
   ];
@@ -65,5 +71,6 @@ buildPythonPackage rec {
     description = "A Python library that lets you schedule your Python code to be executed";
     homepage = "https://github.com/agronholm/apscheduler";
     license = licenses.mit;
+    maintainers = with maintainers; [ ];
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/Cython/default.nix b/nixpkgs/pkgs/development/python-modules/Cython/default.nix
index dcede9506e32..e22037cbbb9f 100644
--- a/nixpkgs/pkgs/development/python-modules/Cython/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/Cython/default.nix
@@ -12,8 +12,7 @@
 }:
 
 let
-  excludedTests = []
-    ++ [ "reimport_from_subinterpreter" ]
+  excludedTests = [ "reimport_from_subinterpreter" ]
     # cython's testsuite is not working very well with libc++
     # We are however optimistic about things outside of testsuite still working
     ++ lib.optionals (stdenv.cc.isClang or false) [ "cpdef_extern_func" "libcpp_algo" ]
@@ -26,19 +25,21 @@ let
 
 in buildPythonPackage rec {
   pname = "Cython";
-  version = "0.29.22";
+  version = "0.29.24";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-32uDx6bR2WfqiaKQPkqTE3djSil0WWUuRVFzTEgZVAY=";
+    sha256 = "sha256-zfBNB8NgCGDowuuq1Oj1KsP+shJFPBdkpJrAjIJ+hEM=";
   };
 
   nativeBuildInputs = [
     pkg-config
   ];
+
   checkInputs = [
     gdb numpy ncurses
   ];
+
   buildInputs = [ glibcLocales ];
   LC_ALL = "en_US.UTF-8";
 
@@ -71,9 +72,7 @@ in buildPythonPackage rec {
   # https://github.com/cython/cython/issues/2785
   # Temporary solution
   doCheck = false;
-
-#   doCheck = !stdenv.isDarwin;
-
+  # doCheck = !stdenv.isDarwin;
 
   meta = {
     description = "An optimising static compiler for both the Python programming language and the extended Cython programming language";
diff --git a/nixpkgs/pkgs/development/python-modules/Fabric/default.nix b/nixpkgs/pkgs/development/python-modules/Fabric/default.nix
index 2e70d3aa121e..de53512d0b47 100644
--- a/nixpkgs/pkgs/development/python-modules/Fabric/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/Fabric/default.nix
@@ -1,9 +1,11 @@
-{ lib, buildPythonPackage, fetchPypi
+{ lib
+, buildPythonPackage
+, fetchPypi
 , cryptography
 , invoke
 , mock
 , paramiko
-, pytest
+, pytestCheckHook
 , pytest-relaxed
 }:
 
@@ -23,20 +25,21 @@ buildPythonPackage rec {
   '';
 
   propagatedBuildInputs = [ invoke paramiko cryptography ];
-  checkInputs = [ pytest mock pytest-relaxed ];
 
-  # requires pytest_relaxed, which doesnt have official support for pytest>=5
-  # https://github.com/bitprophet/pytest-relaxed/issues/12
+  checkInputs = [ pytestCheckHook pytest-relaxed mock ];
+
+  # ==================================== ERRORS ====================================
+  # ________________________ ERROR collecting test session _________________________
+  # Direct construction of SpecModule has been deprecated, please use SpecModule.from_parent
+  # See https://docs.pytest.org/en/stable/deprecations.html#node-construction-changed-to-node-from-parent for more details.
   doCheck = false;
-  checkPhase = ''
-    pytest tests
-  '';
+
   pythonImportsCheck = [ "fabric" ];
 
   meta = with lib; {
     description = "Pythonic remote execution";
-    homepage    = "https://www.fabfile.org/";
-    license     = licenses.bsd2;
+    homepage = "https://www.fabfile.org/";
+    license = licenses.bsd2;
     maintainers = [ maintainers.costrouc ];
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/GitPython/default.nix b/nixpkgs/pkgs/development/python-modules/GitPython/default.nix
index 6a1e6af55b20..7ae407908961 100644
--- a/nixpkgs/pkgs/development/python-modules/GitPython/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/GitPython/default.nix
@@ -11,14 +11,14 @@
 
 buildPythonPackage rec {
   pname = "gitpython";
-  version = "3.1.23";
+  version = "3.1.24";
   disabled = pythonOlder "3.7";
 
   src = fetchFromGitHub {
     owner = "gitpython-developers";
     repo = "GitPython";
     rev = version;
-    sha256 = "sha256-1+jMg5pOrYJBgv/q9FFnR5Ujc8pwEPZHfLssNnt8nmA=";
+    sha256 = "sha256-KfR14EqXsDgIZUerk/hHDB0Z7IuqncbTNd/yNwrV9I0=";
   };
 
   patches = [
diff --git a/nixpkgs/pkgs/development/python-modules/Mako/default.nix b/nixpkgs/pkgs/development/python-modules/Mako/default.nix
index 533e1317a091..cf3028612698 100644
--- a/nixpkgs/pkgs/development/python-modules/Mako/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/Mako/default.nix
@@ -9,11 +9,11 @@
 
 buildPythonPackage rec {
   pname = "Mako";
-  version = "1.1.4";
+  version = "1.1.5";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "17831f0b7087c313c0ffae2bcbbd3c1d5ba9eeac9c38f2eb7b50e8c99fe9d5ab";
+    sha256 = "169fa52af22a91900d852e937400e79f535496191c63712e3b9fda5a9bed6fc3";
   };
 
   propagatedBuildInputs = [ markupsafe ];
diff --git a/nixpkgs/pkgs/development/python-modules/Pygments/default.nix b/nixpkgs/pkgs/development/python-modules/Pygments/default.nix
index 640c95bfcf9f..bb17af144cbe 100644
--- a/nixpkgs/pkgs/development/python-modules/Pygments/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/Pygments/default.nix
@@ -6,11 +6,11 @@
 
 buildPythonPackage rec {
   pname = "Pygments";
-  version = "2.9.0";
+  version = "2.10.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "a18f47b506a429f6f4b9df81bb02beab9ca21d0a5fee38ed15aef65f0545519f";
+    sha256 = "f398865f7eb6874156579fdf36bc840a03cab64d1cde9e93d68f46a425ec52c6";
   };
 
   propagatedBuildInputs = [ docutils ];
diff --git a/nixpkgs/pkgs/development/python-modules/ROPGadget/default.nix b/nixpkgs/pkgs/development/python-modules/ROPGadget/default.nix
index 8c34e75139f6..6be0ed48e289 100644
--- a/nixpkgs/pkgs/development/python-modules/ROPGadget/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/ROPGadget/default.nix
@@ -3,11 +3,11 @@
 
 buildPythonPackage rec {
   pname = "ROPGadget";
-  version = "6.5";
+  version = "6.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "4c0e56f2ba0aef13b2c8ca286aad663525b92020b11bacd16791f5236247905c";
+    sha256 = "dc61186e0114ec67ec7ce374df8fd2ddc2a7cba129a1242338e900a7483fba22";
   };
 
   propagatedBuildInputs = [ capstone ];
diff --git a/nixpkgs/pkgs/development/python-modules/Theano/default.nix b/nixpkgs/pkgs/development/python-modules/Theano/default.nix
index e279100e9cc6..351f8dc9b711 100644
--- a/nixpkgs/pkgs/development/python-modules/Theano/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/Theano/default.nix
@@ -8,19 +8,15 @@
 , nose
 , numpy
 , scipy
+, setuptools
 , six
 , libgpuarray
 , cudaSupport ? false, cudatoolkit
 , cudnnSupport ? false, cudnn
-, nvidia_x11
 }:
 
 assert cudnnSupport -> cudaSupport;
 
-assert cudaSupport -> nvidia_x11 != null
-                   && cudatoolkit != null
-                   && cudnn != null;
-
 let
   wrapped = command: buildTop: buildInputs:
     runCommandCC "${command}-wrapped" { inherit buildInputs; } ''
@@ -81,7 +77,15 @@ in buildPythonPackage rec {
 
   # keep Nose around since running the tests by hand is possible from Python or bash
   checkInputs = [ nose ];
-  propagatedBuildInputs = [ numpy numpy.blas scipy six libgpuarray_ ];
+  # setuptools needed for cuda support
+  propagatedBuildInputs = [
+    libgpuarray_
+    numpy
+    numpy.blas
+    scipy
+    setuptools
+    six
+  ];
 
   pythonImportsCheck = [ "theano" ];
 
diff --git a/nixpkgs/pkgs/development/python-modules/acme-tiny/default.nix b/nixpkgs/pkgs/development/python-modules/acme-tiny/default.nix
index 76e8a8401fd4..79c1ecffb037 100644
--- a/nixpkgs/pkgs/development/python-modules/acme-tiny/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/acme-tiny/default.nix
@@ -1,27 +1,35 @@
-{ lib, buildPythonPackage, fetchPypi, setuptools-scm, fusepy, fuse
-, openssl }:
+{ lib
+, buildPythonPackage
+, fetchPypi
+, setuptools-scm
+, fusepy
+, fuse
+, openssl
+}:
 
 buildPythonPackage rec {
   pname = "acme-tiny";
-  version = "4.1.0";
+  version = "5.0.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0jmg525n4n98hwy3hf303jbnq23z79sqwgliji9j7qcnph47gkgq";
+    sha256 = "378549808eece574c3b5dcea82b216534949423d5c7ac241d9419212d676bc8d";
   };
 
   patchPhase = ''
     substituteInPlace acme_tiny.py --replace '"openssl"' '"${openssl.bin}/bin/openssl"'
-    substituteInPlace tests/monkey.py --replace '"openssl"' '"${openssl.bin}/bin/openssl"'
     substituteInPlace tests/test_module.py --replace '"openssl"' '"${openssl.bin}/bin/openssl"'
-    substituteInPlace tests/monkey.py --replace /etc/ssl/openssl.cnf ${openssl.out}/etc/ssl/openssl.cnf
+    substituteInPlace tests/utils.py --replace /etc/ssl/openssl.cnf ${openssl.out}/etc/ssl/openssl.cnf
   '';
 
   buildInputs = [ setuptools-scm ];
+
   checkInputs = [ fusepy fuse ];
 
   doCheck = false; # seems to hang, not sure
 
+  pythonImportsCheck = [ "acme_tiny" ];
+
   meta = with lib; {
     description = "A tiny script to issue and renew TLS certs from Let's Encrypt";
     homepage = "https://github.com/diafygi/acme-tiny";
diff --git a/nixpkgs/pkgs/development/python-modules/acoustics/default.nix b/nixpkgs/pkgs/development/python-modules/acoustics/default.nix
index 9047910a2138..e888d1241a50 100644
--- a/nixpkgs/pkgs/development/python-modules/acoustics/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/acoustics/default.nix
@@ -1,32 +1,57 @@
-{ lib, buildPythonPackage, fetchPypi
-, pytest, numpy, scipy, matplotlib, pandas, tabulate, pythonOlder }:
+{ lib
+, buildPythonPackage
+, fetchPypi
+, matplotlib
+, numpy
+, pandas
+, pytestCheckHook
+, pythonOlder
+, scipy
+, tabulate
+}:
 
 buildPythonPackage rec {
   pname = "acoustics";
   version = "0.2.4.post0";
 
-  checkInputs = [ pytest ];
-  propagatedBuildInputs = [ numpy scipy matplotlib pandas tabulate ];
+  disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
     sha256 = "a162625e5e70ed830fab8fab0ddcfe35333cb390cd24b0a827bcefc5bbcae97d";
   };
 
-  checkPhase = ''
+  propagatedBuildInputs = [
+    matplotlib
+    numpy
+    pandas
+    scipy
+    tabulate
+  ];
+
+  checkInputs = [
+    pytestCheckHook
+  ];
+
+  preCheck = ''
     export HOME=$TMPDIR
     mkdir -p $HOME/.matplotlib
     echo "backend: ps" > $HOME/.matplotlib/matplotlibrc
-
-    pushd tests
-    py.test -Wignore::DeprecationWarning ./.
-    popd
   '';
 
-  disabled = pythonOlder "3.6";
+  pytestFlagsArray = [
+    "-Wignore::DeprecationWarning"
+  ];
+
+  disabledTestPaths = [
+    # All tests fail with TypeError
+    "tests/test_aio.py"
+  ];
+
+  pythonImportsCheck = [ "acoustics" ];
 
   meta = with lib; {
-    description = "A package for acousticians";
+    description = "Python package for acousticians";
     maintainers = with maintainers; [ fridh ];
     license = with licenses; [ bsd3 ];
     homepage = "https://github.com/python-acoustics/python-acoustics";
diff --git a/nixpkgs/pkgs/development/python-modules/adjusttext/default.nix b/nixpkgs/pkgs/development/python-modules/adjusttext/default.nix
new file mode 100644
index 000000000000..82613ffa52aa
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/adjusttext/default.nix
@@ -0,0 +1,32 @@
+{ buildPythonPackage
+, numpy
+, matplotlib
+, fetchFromGitHub
+, lib
+}:
+
+buildPythonPackage rec {
+  pname = "adjusttext";
+  version = "0.7.3";
+
+  src = fetchFromGitHub {
+    owner = "Phlya";
+    repo = pname;
+    rev = version;
+    sha256 = "02apaznnnmwmrn342f22dj5dldn56gdl9v5qix07ah6kgp9503yw";
+  };
+
+  propagatedBuildInputs = [ matplotlib numpy ];
+
+  # Project has no tests
+  doCheck = false;
+
+  pythonImportsCheck = [ "adjustText" ];
+
+  meta = with lib; {
+    description = "Iteratively adjust text position in matplotlib plots to minimize overlaps";
+    homepage = "https://github.com/Phlya/adjustText";
+    license = licenses.mit;
+    maintainers = with maintainers; [ samuela ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/agate-excel/default.nix b/nixpkgs/pkgs/development/python-modules/agate-excel/default.nix
index 752c905ee8e6..4d970b182217 100644
--- a/nixpkgs/pkgs/development/python-modules/agate-excel/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/agate-excel/default.nix
@@ -1,17 +1,17 @@
 { lib, fetchPypi, buildPythonPackage
-, agate, openpyxl, xlrd, pytestCheckHook
+, agate, openpyxl, xlrd, olefile, pytestCheckHook
 }:
 
 buildPythonPackage rec {
   pname = "agate-excel";
-  version = "0.2.3";
+  version = "0.2.5";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "8f255ef2c87c436b7132049e1dd86c8e08bf82d8c773aea86f3069b461a17d52";
+    sha256 = "62315708433108772f7f610ca769996b468a4ead380076dbaf6ffe262831b153";
   };
 
-  propagatedBuildInputs = [ agate openpyxl xlrd ];
+  propagatedBuildInputs = [ agate openpyxl xlrd olefile ];
 
   checkInputs = [ pytestCheckHook ];
 
diff --git a/nixpkgs/pkgs/development/python-modules/agate-sql/default.nix b/nixpkgs/pkgs/development/python-modules/agate-sql/default.nix
index e9747b6f393d..c2e741bef176 100644
--- a/nixpkgs/pkgs/development/python-modules/agate-sql/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/agate-sql/default.nix
@@ -11,13 +11,13 @@
 
 buildPythonPackage rec {
   pname = "agate-sql";
-  version = "0.5.7";
+  version = "0.5.8";
 
   disabled = isPy27;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "7622c1f243b5a9a5efddfe28c36eeeb30081e43e3eb72e8f3da22c2edaecf4d8";
+    sha256 = "581e062ae878cc087d3d0948670d46b16589df0790bf814524b0587a359f2ada";
   };
 
   propagatedBuildInputs = [ agate sqlalchemy ];
diff --git a/nixpkgs/pkgs/development/python-modules/ailment/default.nix b/nixpkgs/pkgs/development/python-modules/ailment/default.nix
index 551e26e71add..14a295713136 100644
--- a/nixpkgs/pkgs/development/python-modules/ailment/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/ailment/default.nix
@@ -7,14 +7,14 @@
 
 buildPythonPackage rec {
   pname = "ailment";
-  version = "9.0.9792";
+  version = "9.0.10010";
   disabled = pythonOlder "3.6";
 
   src = fetchFromGitHub {
     owner = "angr";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-c+E3ypmN69IyE0HagefrYN8bdCY7amRxa/PGoIX4/cQ=";
+    sha256 = "sha256-kEHbuc5gmurMznTyfn/KnZEClLHJgv2CzK4O30dIgTg=";
   };
 
   propagatedBuildInputs = [ pyvex ];
diff --git a/nixpkgs/pkgs/development/python-modules/aioambient/default.nix b/nixpkgs/pkgs/development/python-modules/aioambient/default.nix
index 16678c9f04e6..3e5c0c8dfe89 100644
--- a/nixpkgs/pkgs/development/python-modules/aioambient/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/aioambient/default.nix
@@ -16,7 +16,7 @@
 
 buildPythonPackage rec {
   pname = "aioambient";
-  version = "1.2.6";
+  version = "1.3.0";
   format = "pyproject";
   disabled = pythonOlder "3.6";
 
@@ -24,7 +24,7 @@ buildPythonPackage rec {
     owner = "bachya";
     repo = pname;
     rev = version;
-    sha256 = "sha256-EppnuZP62YTFI3UJUzBUj2m5TvFh1WiDz9smHY7We60=";
+    sha256 = "sha256-blejTXyLe3B2kNytBh+zJz0Q0xDP+Vo2SV9gc7OX6S0=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/aioapns/default.nix b/nixpkgs/pkgs/development/python-modules/aioapns/default.nix
new file mode 100644
index 000000000000..b9428449d2c8
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/aioapns/default.nix
@@ -0,0 +1,35 @@
+{ buildPythonPackage
+, fetchPypi
+, h2
+, lib
+, pyjwt
+, pyopenssl
+}:
+
+buildPythonPackage rec {
+  pname = "aioapns";
+  version = "2.0.2";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "ea58ce685aa6d0ffbdc3be4a6999c7268b9c765f806d3e4da7677c098fb72cbc";
+  };
+
+  propagatedBuildInputs = [
+    h2
+    pyopenssl
+    pyjwt
+  ];
+
+  # Project has no tests
+  doCheck = false;
+
+  pythonImportsCheck = [ "aioapns" ];
+
+  meta = with lib; {
+    description = "An efficient APNs Client Library for Python/asyncio";
+    homepage = "https://github.com/Fatal1ty/aioapns";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ superherointj ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/aiobotocore/default.nix b/nixpkgs/pkgs/development/python-modules/aiobotocore/default.nix
index e07b56d3f266..f6024c953fda 100644
--- a/nixpkgs/pkgs/development/python-modules/aiobotocore/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/aiobotocore/default.nix
@@ -10,18 +10,18 @@
 
 buildPythonPackage rec {
   pname = "aiobotocore";
-  version = "1.3.1";
+  version = "1.4.1";
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "8ecee55346651e0f4cbda883e3e16cfe11460b8d7adcc08d0017cbb867636ae1";
+    sha256 = "09f06723d1d69c6d407d9a356ca65ab42a5b7b73a45be4b1ed0ed1a6b6057a9f";
   };
 
   # relax version constraints: aiobotocore works with newer botocore versions
   # the pinning used to match some `extras_require` we're not using.
   postPatch = ''
-    substituteInPlace setup.py --replace 'botocore>=1.20.49,<1.20.50' 'botocore'
+    substituteInPlace setup.py --replace 'botocore>=1.20.106,<1.20.107' 'botocore'
   '';
 
   propagatedBuildInputs = [ wrapt aiohttp aioitertools botocore ];
diff --git a/nixpkgs/pkgs/development/python-modules/aioesphomeapi/default.nix b/nixpkgs/pkgs/development/python-modules/aioesphomeapi/default.nix
index 51ba773d8b2d..372865e69ddc 100644
--- a/nixpkgs/pkgs/development/python-modules/aioesphomeapi/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/aioesphomeapi/default.nix
@@ -12,7 +12,7 @@
 
 buildPythonPackage rec {
   pname = "aioesphomeapi";
-  version = "9.0.0";
+  version = "9.1.1";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -21,7 +21,7 @@ buildPythonPackage rec {
     owner = "esphome";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-Z5PebH/x53lo62sHjBH/6H05UhXax3sVfYx5T0uw38s=";
+    sha256 = "1bkk6mj1h1zhhp4s1ps6g950vzgfbxdj9pw762fz238p48ccw90b";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/aiogithubapi/default.nix b/nixpkgs/pkgs/development/python-modules/aiogithubapi/default.nix
new file mode 100644
index 000000000000..7ec85d90f7d3
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/aiogithubapi/default.nix
@@ -0,0 +1,53 @@
+{ lib
+, aiohttp
+, aresponses
+, async-timeout
+, backoff
+, buildPythonPackage
+, fetchFromGitHub
+, pytest-asyncio
+, pytestCheckHook
+, pythonOlder
+}:
+
+buildPythonPackage rec {
+  pname = "aiogithubapi";
+  version = "21.8.1";
+
+  disabled = pythonOlder "3.8";
+
+  src = fetchFromGitHub {
+    owner = "ludeeus";
+    repo = pname;
+    rev = version;
+    sha256 = "1l59bb956gymi2dkgg88mr0nc80wqvw2dv69qf4f1xr3jxy03qa2";
+  };
+
+  postPatch = ''
+    # Upstream is releasing with the help of a CI to PyPI, GitHub releases
+    # are not in their focus
+    substituteInPlace setup.py \
+      --replace 'version="main",' 'version="${version}",'
+  '';
+
+  propagatedBuildInputs = [
+    aiohttp
+    async-timeout
+    backoff
+  ];
+
+  checkInputs = [
+    aresponses
+    pytest-asyncio
+    pytestCheckHook
+  ];
+
+  pythonImportsCheck = [ "aiogithubapi" ];
+
+  meta = with lib; {
+    description = "Python client for the GitHub API";
+    homepage = "https://github.com/ludeeus/aiogithubapi";
+    license = with licenses; [ mit ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/aioprocessing/default.nix b/nixpkgs/pkgs/development/python-modules/aioprocessing/default.nix
index 2f6b39678489..a4571a79b05d 100644
--- a/nixpkgs/pkgs/development/python-modules/aioprocessing/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/aioprocessing/default.nix
@@ -7,7 +7,7 @@
 buildPythonPackage rec {
   pname = "aioprocessing";
   version = "2.0.0";
-  disabled = pythonOlder "3.4";
+  disabled = pythonOlder "3.5";
 
   src = fetchPypi {
     inherit pname version;
diff --git a/nixpkgs/pkgs/development/python-modules/aiopvapi/default.nix b/nixpkgs/pkgs/development/python-modules/aiopvapi/default.nix
new file mode 100644
index 000000000000..b8614d0c97d2
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/aiopvapi/default.nix
@@ -0,0 +1,39 @@
+{ lib
+, aiohttp
+, async-timeout
+, buildPythonPackage
+, fetchPypi
+, pytestCheckHook
+, pythonOlder
+}:
+
+buildPythonPackage rec {
+  pname = "aiopvapi";
+  version = "1.6.14";
+  format = "setuptools";
+
+  disabled = pythonOlder "3.5";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "02bl7q166j6rb8av9n1jz11xlwhrzmbkjq70mwr86qaj63pcxrak";
+  };
+
+  propagatedBuildInputs = [
+    aiohttp
+    async-timeout
+  ];
+
+  checkInputs = [
+    pytestCheckHook
+  ];
+
+  pythonImportsCheck = [ "aiopvapi" ];
+
+  meta = with lib; {
+    description = "Python API for the PowerView API";
+    homepage = "https://github.com/sander76/aio-powerview-api";
+    license = with licenses; [ bsd3 ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/aioredis/default.nix b/nixpkgs/pkgs/development/python-modules/aioredis/default.nix
index fe48ba0e1e18..807b112772cf 100644
--- a/nixpkgs/pkgs/development/python-modules/aioredis/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/aioredis/default.nix
@@ -1,20 +1,27 @@
-{ lib, buildPythonPackage, fetchPypi
-, pkgs, async-timeout, hiredis, isPyPy, isPy27
+{ lib
+, buildPythonPackage
+, fetchPypi
+, async-timeout
+, typing-extensions
+, hiredis
+, isPyPy
+, pythonOlder
 }:
 
 buildPythonPackage rec {
   pname = "aioredis";
-  version = "1.3.1";
+  version = "2.0.0";
 
-  disabled = isPy27;
+  disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0fi7jd5hlx8cnv1m97kv9hc4ih4l8v15wzkqwsp73is4n0qazy0m";
+    sha256 = "3a2de4b614e6a5f8e104238924294dc4e811aefbe17ddf52c04a93cbf06e67db";
   };
 
   propagatedBuildInputs = [
     async-timeout
+    typing-extensions
   ] ++ lib.optional (!isPyPy) hiredis;
 
   # Wants to run redis-server, hardcoded FHS paths, too much trouble.
diff --git a/nixpkgs/pkgs/development/python-modules/aioswitcher/default.nix b/nixpkgs/pkgs/development/python-modules/aioswitcher/default.nix
index 2682b1365645..f4d1541a1398 100644
--- a/nixpkgs/pkgs/development/python-modules/aioswitcher/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/aioswitcher/default.nix
@@ -13,14 +13,14 @@
 
 buildPythonPackage rec {
   pname = "aioswitcher";
-  version = "2.0.4";
+  version = "2.0.6";
   format = "pyproject";
 
   src = fetchFromGitHub {
     owner = "TomerFi";
     repo = pname;
     rev = version;
-    sha256 = "sha256-n4JvtShs2/shJxAzxm6qyipVQ7e3QfeVwhnqu6RWZss=";
+    sha256 = "sha256-zgfgM3orhm2ZPp3Cf803adNzPeMOdRGX+sN6rhK1OT4=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/aiowatttime/default.nix b/nixpkgs/pkgs/development/python-modules/aiowatttime/default.nix
new file mode 100644
index 000000000000..39aa7974313c
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/aiowatttime/default.nix
@@ -0,0 +1,53 @@
+{ lib
+, aiohttp
+, aresponses
+, buildPythonPackage
+, fetchFromGitHub
+, poetry-core
+, pytest-aiohttp
+, pytest-asyncio
+, pytestCheckHook
+, pythonOlder
+}:
+
+buildPythonPackage rec {
+  pname = "aiowatttime";
+  version = "0.1.1";
+  format = "pyproject";
+
+  disabled = pythonOlder "3.8";
+
+  src = fetchFromGitHub {
+    owner = "bachya";
+    repo = pname;
+    rev = version;
+    sha256 = "1614p5ca7x9ipz7dgwhiz83dfwn6hyliawa8pr2j9y2kn8cg2sdm";
+  };
+
+  nativeBuildInputs = [
+    poetry-core
+  ];
+
+  propagatedBuildInputs = [
+    aiohttp
+  ];
+
+  checkInputs = [
+    aresponses
+    pytest-aiohttp
+    pytest-asyncio
+    pytestCheckHook
+  ];
+
+  # Ignore the examples directory as the files are prefixed with test_
+  disabledTestPaths = [ "examples/" ];
+
+  pythonImportsCheck = [ "aiowatttime" ];
+
+  meta = with lib; {
+    description = "Python library for interacting with WattTime";
+    homepage = "https://github.com/bachya/aiowatttime";
+    license = with licenses; [ mit ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/aioymaps/default.nix b/nixpkgs/pkgs/development/python-modules/aioymaps/default.nix
index 4a6d806dee1d..01765f6eedff 100644
--- a/nixpkgs/pkgs/development/python-modules/aioymaps/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/aioymaps/default.nix
@@ -7,12 +7,13 @@
 
 buildPythonPackage rec {
   pname = "aioymaps";
-  version = "1.1.0";
+  version = "1.2.0";
+
   disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1rvgf4flvnpjj0sm14xlnfmmnlmkz6xq5h5mfb14amkfy76za3jm";
+    sha256 = "sha256-YkSoxYf/Ti/gc1BFSYR24P3OzDrmcGWKhcOcrGpkRjU=";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/ajsonrpc/default.nix b/nixpkgs/pkgs/development/python-modules/ajsonrpc/default.nix
index e5a81d9cfa6e..b3482cd74679 100644
--- a/nixpkgs/pkgs/development/python-modules/ajsonrpc/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/ajsonrpc/default.nix
@@ -2,13 +2,13 @@
 
 buildPythonPackage rec {
   pname = "ajsonrpc";
-  version = "1.1.0";
+  version = "1.2.0";
 
   disabled = pythonOlder "3.5";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1b5r8975wdnk3qnc1qjnn4lkxmqcir3brbwnxml9ii90dnsw408a";
+    sha256 = "791bac18f0bf0dee109194644f151cf8b7ff529c4b8d6239ac48104a3251a19f";
   };
 
   checkInputs = [ pytestCheckHook ];
diff --git a/nixpkgs/pkgs/development/python-modules/alembic/default.nix b/nixpkgs/pkgs/development/python-modules/alembic/default.nix
index 9c7244b3c066..af8b1fc37215 100644
--- a/nixpkgs/pkgs/development/python-modules/alembic/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/alembic/default.nix
@@ -1,26 +1,56 @@
-{ lib, buildPythonPackage, fetchPypi
-, pytest, pytest-cov, mock, coverage, setuptools
-, Mako, sqlalchemy, python-editor, python-dateutil
+{ lib
+, buildPythonPackage
+, fetchPypi
+, pythonOlder
+, Mako
+, python-dateutil
+, sqlalchemy
+, importlib-metadata
+, importlib-resources
+, pytest-xdist
+, pytestCheckHook
+
 }:
 
 buildPythonPackage rec {
   pname = "alembic";
-  version = "1.6.5";
+  version = "1.7.1";
+  format = "setuptools";
+
+  disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "a21fedebb3fb8f6bbbba51a11114f08c78709377051384c9c5ead5705ee93a51";
+    sha256 = "aea964d3dcc9c205b8759e4e9c1c3935ea3afeee259bffd7ed8414f8085140fb";
   };
 
-  buildInputs = [ pytest pytest-cov mock coverage ];
-  propagatedBuildInputs = [ Mako sqlalchemy python-editor python-dateutil setuptools ];
+  propagatedBuildInputs = [
+    Mako
+    python-dateutil
+    sqlalchemy
+  ] ++ lib.optionals (pythonOlder "3.9") [
+    importlib-resources
+  ] ++ lib.optionals (pythonOlder "3.8") [
+    importlib-metadata
+  ];
+
+  pythonImportsCheck = [
+    "alembic"
+  ];
+
+  checkInputs = [
+    pytestCheckHook
+    pytest-xdist
+  ];
 
-  # no traditional test suite
-  doCheck = false;
+  pytestFlagsArray = [
+    "--numprocesses" "auto"
+  ];
 
   meta = with lib; {
     homepage = "https://bitbucket.org/zzzeek/alembic";
     description = "A database migration tool for SQLAlchemy";
     license = licenses.mit;
+    maintainers = with maintainers; [ ];
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/amcrest/default.nix b/nixpkgs/pkgs/development/python-modules/amcrest/default.nix
index 478ab1811e48..d050a7563a74 100644
--- a/nixpkgs/pkgs/development/python-modules/amcrest/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/amcrest/default.nix
@@ -3,6 +3,7 @@
 , buildPythonPackage
 , fetchFromGitHub
 , mock
+, httpx
 , pytestCheckHook
 , pythonOlder
 , requests
@@ -13,18 +14,19 @@
 
 buildPythonPackage rec {
   pname = "amcrest";
-  version = "1.8.1";
+  version = "1.9.3";
   disabled = pythonOlder "3.6";
 
   src = fetchFromGitHub {
     owner = "tchellomello";
     repo = "python-amcrest";
     rev = version;
-    sha256 = "sha256-a23AjLRNghu5CT3GHvnti0BHnku9CxLP1EkE0GrwB3w=";
+    sha256 = "0f9l8xbn40xwx2zzssx5qmkpmv82j6syj8ncnmm6z9dc5wpr6sw7";
   };
 
   propagatedBuildInputs = [
     argcomplete
+    httpx
     requests
     urllib3
     typing-extensions
diff --git a/nixpkgs/pkgs/development/python-modules/angr/default.nix b/nixpkgs/pkgs/development/python-modules/angr/default.nix
index 7ff5e8bb35c9..7ec9305689b3 100644
--- a/nixpkgs/pkgs/development/python-modules/angr/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/angr/default.nix
@@ -43,14 +43,14 @@ in
 
 buildPythonPackage rec {
   pname = "angr";
-  version = "9.0.9792";
+  version = "9.0.10010";
   disabled = pythonOlder "3.6";
 
   src = fetchFromGitHub {
     owner = pname;
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-zDy3dwhCNBtCAwflF/grdNsRllNUHJHMx1PQThHjcnw=";
+    sha256 = "sha256-UWg3lrBMfQsR09wbx8F2nml8eymk7V60gwFbPXwNqAw=";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/angrop/default.nix b/nixpkgs/pkgs/development/python-modules/angrop/default.nix
index 3bee7edbf520..e7a3585c0f57 100644
--- a/nixpkgs/pkgs/development/python-modules/angrop/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/angrop/default.nix
@@ -9,14 +9,14 @@
 
 buildPythonPackage rec {
   pname = "angrop";
-  version = "9.0.9792";
+  version = "9.0.10010";
   disabled = pythonOlder "3.6";
 
   src = fetchFromGitHub {
     owner = "angr";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-rXhXzqjefsKvfsFky4XJd+RaF5z/TRWDg6+IYFIfP2w=";
+    sha256 = "sha256-VCVvJI98gyVZC2SPb5hd8FKLTYUhEILJtieb4IQGL2c=";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/ansi2html/default.nix b/nixpkgs/pkgs/development/python-modules/ansi2html/default.nix
index 4abcec541a04..50188fe0e4a3 100644
--- a/nixpkgs/pkgs/development/python-modules/ansi2html/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/ansi2html/default.nix
@@ -1,4 +1,4 @@
-{ lib, buildPythonPackage, fetchPypi, isPy3k, six, mock, pytestCheckHook, setuptools, setuptools-scm, toml }:
+{ lib, buildPythonPackage, fetchPypi, isPy3k, six, mock, pytestCheckHook, setuptools, setuptools-scm }:
 
 buildPythonPackage rec {
   pname = "ansi2html";
@@ -11,7 +11,7 @@ buildPythonPackage rec {
     sha256 = "0f124ea7efcf3f24f1f9398e527e688c9ae6eab26b0b84e1299ef7f94d92c596";
   };
 
-  nativeBuildInputs = [ setuptools-scm toml ];
+  nativeBuildInputs = [ setuptools-scm ];
   propagatedBuildInputs = [ six setuptools ];
 
   preCheck = "export PATH=$PATH:$out/bin";
diff --git a/nixpkgs/pkgs/development/python-modules/ansible-runner/default.nix b/nixpkgs/pkgs/development/python-modules/ansible-runner/default.nix
index ba11ef11e3b8..9dc8eadb7775 100644
--- a/nixpkgs/pkgs/development/python-modules/ansible-runner/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/ansible-runner/default.nix
@@ -14,11 +14,11 @@
 
 buildPythonPackage rec {
   pname = "ansible-runner";
-  version = "1.4.7";
+  version = "2.0.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1bb56f9061c3238d89ec8871bc842f5b8d0e868f892347e8455c98d5b6fa58a1";
+    sha256 = "c02b690803ec0be4453411c53743cd3fdca1dfc66dfa075794e14e717c5b61b3";
   };
 
   checkInputs = [ pytest mock ];
diff --git a/nixpkgs/pkgs/development/python-modules/ansible/base.nix b/nixpkgs/pkgs/development/python-modules/ansible/base.nix
index 68063f0d7787..3156ba18e106 100644
--- a/nixpkgs/pkgs/development/python-modules/ansible/base.nix
+++ b/nixpkgs/pkgs/development/python-modules/ansible/base.nix
@@ -28,11 +28,11 @@ let
 in
 buildPythonPackage rec {
   pname = "ansible-base";
-  version = "2.10.13";
+  version = "2.10.14";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-0sKbGUblrgh4SgdiuMSMMvg15GSNb5l6bCqBt4/0860=";
+    sha256 = "sha256-gAxGRsWKWJf3HyIwFn21YmoZbeuiCPDvRWChg//Z39o=";
   };
 
   # ansible_connection is already wrapped, so don't pass it through
diff --git a/nixpkgs/pkgs/development/python-modules/ansible/core.nix b/nixpkgs/pkgs/development/python-modules/ansible/core.nix
index 0e2d705cc887..b64942b10780 100644
--- a/nixpkgs/pkgs/development/python-modules/ansible/core.nix
+++ b/nixpkgs/pkgs/development/python-modules/ansible/core.nix
@@ -23,17 +23,17 @@
 
 let
   ansible-collections = callPackage ./collections.nix {
-    version = "4.4.0";
-    sha256 = "031n22j0lsmh69x6i6gkva81j68b4yzh1pbg3q2h4bknl85q46ag";
+    version = "4.5.0";
+    sha256 = "1c8dspqy4in7sgz10y1pggwnh1hv79wap7p7xhai0f0s6nr54lyc";
   };
 in
 buildPythonPackage rec {
   pname = "ansible-core";
-  version = "2.11.4";
+  version = "2.11.5";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-Iuqnwt/myHXprjgDI/HLpiWcYFCl5MiBn4X5KzaD6kk=";
+    sha256 = "sha256-fTzkcBQSKQdFRwQ2NIXkhRP4rQ8AE4uIhw622IlT0SE=";
   };
 
   # ansible_connection is already wrapped, so don't pass it through
diff --git a/nixpkgs/pkgs/development/python-modules/ansible/legacy.nix b/nixpkgs/pkgs/development/python-modules/ansible/legacy.nix
index e7687f9b99de..3957e109c7c0 100644
--- a/nixpkgs/pkgs/development/python-modules/ansible/legacy.nix
+++ b/nixpkgs/pkgs/development/python-modules/ansible/legacy.nix
@@ -18,11 +18,11 @@
 
 buildPythonPackage rec {
   pname = "ansible";
-  version = "2.9.25";
+  version = "2.9.26";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-i88sL1xgnluREUyosOQibWA7h/K+cdyzOOi30626oo8=";
+    sha256 = "sha256-OuAqrSu+3PtBnOdevSpkjp3rc+ni2N6GyC1gR7G962M=";
   };
 
   prePatch = ''
diff --git a/nixpkgs/pkgs/development/python-modules/apispec/default.nix b/nixpkgs/pkgs/development/python-modules/apispec/default.nix
index 2753864fed81..c5777d7c5173 100644
--- a/nixpkgs/pkgs/development/python-modules/apispec/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/apispec/default.nix
@@ -12,12 +12,12 @@
 
 buildPythonPackage rec {
   pname = "apispec";
-  version = "4.7.1";
+  version = "5.1.0";
   disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1yf71c9nq1rfb5pkgmfw486fvywi1bjnmgwxcly7y3basf3980kr";
+    sha256 = "9ac7a7a6000339a02d05404ef561e013375f170de01d8b238782f8fb83082b5b";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/apprise/default.nix b/nixpkgs/pkgs/development/python-modules/apprise/default.nix
index 1aa9dc2b1027..fbcd7addb2a5 100644
--- a/nixpkgs/pkgs/development/python-modules/apprise/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/apprise/default.nix
@@ -5,11 +5,11 @@
 
 buildPythonPackage rec {
   pname = "apprise";
-  version = "0.9.4";
+  version = "0.9.5.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-Q7iZD9GG8vPxITpn87l3yGtU+L8jwvs2Qi329LHlKrI=";
+    sha256 = "sha256-vwkHA66xK4LGhdazZ0o93+cSpGwgiTCMm8IC8D4G1Y0=";
   };
 
   nativeBuildInputs = [ Babel installShellFiles ];
diff --git a/nixpkgs/pkgs/development/python-modules/apycula/default.nix b/nixpkgs/pkgs/development/python-modules/apycula/default.nix
new file mode 100644
index 000000000000..c2e581832fe4
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/apycula/default.nix
@@ -0,0 +1,46 @@
+{ lib
+, buildPythonPackage
+, pythonOlder
+, fetchPypi
+, setuptools-scm
+, numpy
+, pandas
+, pillow
+, crcmod
+, openpyxl
+}:
+
+buildPythonPackage rec {
+  pname = "apycula";
+  version = "0.0.1a9";
+
+  disabled = pythonOlder "3.8";
+
+  src = fetchPypi {
+    inherit version;
+    pname = "Apycula";
+    sha256 = "01shkaxakisgg253jdwjkd81vnjgfws3gi2wyrdxmkcg95wphk5y";
+  };
+
+  nativeBuildInputs = [ setuptools-scm ];
+
+  propagatedBuildInputs = [
+    numpy
+    pandas
+    pillow
+    crcmod
+    openpyxl
+  ];
+
+  # tests require a physical FPGA
+  doCheck = false;
+
+  pythonImportsCheck = [ "apycula" ];
+
+  meta = with lib; {
+    description = "Open Source tools for Gowin FPGAs";
+    homepage = "https://github.com/YosysHQ/apicula";
+    license = licenses.mit;
+    maintainers = with maintainers; [ newam ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/arcam-fmj/default.nix b/nixpkgs/pkgs/development/python-modules/arcam-fmj/default.nix
index 8d74db04d1fa..a1f4892a245f 100644
--- a/nixpkgs/pkgs/development/python-modules/arcam-fmj/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/arcam-fmj/default.nix
@@ -12,7 +12,7 @@
 
 buildPythonPackage rec {
   pname = "arcam-fmj";
-  version = "0.11.1";
+  version = "0.12.0";
 
   disabled = pythonOlder "3.8";
 
@@ -20,7 +20,7 @@ buildPythonPackage rec {
     owner = "elupus";
     repo = "arcam_fmj";
     rev = version;
-    sha256 = "sha256-Vs32LGRN6kxG8sswvuUwuUbLv9GXuhJeK0CUGoo2EgE=";
+    sha256 = "sha256-YkoABsOLEl1gSCRgZr0lLZGzicr3N5KRNLDjfuQhy2U=";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/archinfo/default.nix b/nixpkgs/pkgs/development/python-modules/archinfo/default.nix
index 18f6b9859af5..9ef6cd046d66 100644
--- a/nixpkgs/pkgs/development/python-modules/archinfo/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/archinfo/default.nix
@@ -7,13 +7,13 @@
 
 buildPythonPackage rec {
   pname = "archinfo";
-  version = "9.0.9792";
+  version = "9.0.10010";
 
   src = fetchFromGitHub {
     owner = "angr";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-st4h/ck7hxIx2cZ241C4hEFJvFsTqHmawAB4zsfQ/oU=";
+    sha256 = "sha256-Eyquud4Cc0bU4z+ElWs/gPzuNRtNKPMxWjSLpwFlBXQ=";
   };
 
   checkInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/arrow/default.nix b/nixpkgs/pkgs/development/python-modules/arrow/default.nix
index d47dd61c3d47..956dd5f40f2d 100644
--- a/nixpkgs/pkgs/development/python-modules/arrow/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/arrow/default.nix
@@ -12,13 +12,13 @@
 
 buildPythonPackage rec {
   pname = "arrow";
-  version = "1.1.0";
+  version = "1.1.1";
 
   disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1n2vzyrirfj7fp0zn6iipm3i8bch0g4m14z02nrvlyjiyfmi7zmq";
+    sha256 = "dee7602f6c60e3ec510095b5e301441bc56288cb8f51def14dcb3079f623823a";
   };
 
   postPatch = ''
diff --git a/nixpkgs/pkgs/development/python-modules/asn1/default.nix b/nixpkgs/pkgs/development/python-modules/asn1/default.nix
new file mode 100644
index 000000000000..7a83703f862c
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/asn1/default.nix
@@ -0,0 +1,45 @@
+{ lib
+, buildPythonPackage
+, pythonOlder
+, fetchFromGitHub
+, future
+, pytestCheckHook
+}:
+
+buildPythonPackage rec {
+  pname = "asn1";
+  version = "2.4.1";
+
+  disabled = pythonOlder "3.7";
+
+  src = fetchFromGitHub {
+    owner = "andrivet";
+    repo = "python-asn1";
+    rev = "v${version}";
+    sha256 = "0g2d5cr1pxsm5ackba7padf7gvlgrgv807kh0312s5axjd2cww2l";
+  };
+
+  propagatedBuildInputs = [
+    future
+  ];
+
+  checkInputs = [
+    pytestCheckHook
+  ];
+
+  postPatch = ''
+    substituteInPlace setup.py \
+      --replace "enum-compat" ""
+  '';
+
+  pytestFlagsArray = [ "tests/test_asn1.py" ];
+
+  pythonImportsCheck = [ "asn1" ];
+
+  meta = with lib; {
+    description = "Python ASN.1 encoder and decoder";
+    homepage = "https://github.com/andrivet/python-asn1";
+    license = licenses.mit;
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/astroid/default.nix b/nixpkgs/pkgs/development/python-modules/astroid/default.nix
index 59bd0bc7c369..a4694663bb6b 100644
--- a/nixpkgs/pkgs/development/python-modules/astroid/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/astroid/default.nix
@@ -13,7 +13,7 @@
 
 buildPythonPackage rec {
   pname = "astroid";
-  version = "2.5.6"; # Check whether the version is compatible with pylint
+  version = "2.7.3"; # Check whether the version is compatible with pylint
 
   disabled = pythonOlder "3.6";
 
@@ -21,7 +21,7 @@ buildPythonPackage rec {
     owner = "PyCQA";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-/nWXzuWkerUDvFT/tJTZuhfju46MAM0cwosVH9BXoY8=";
+    sha256 = "08qxw58cdyglkni6ahyil4cmnb48zz0wr4v05gzqk4r5ifs4gl2m";
   };
 
   SETUPTOOLS_SCM_PRETEND_VERSION=version;
diff --git a/nixpkgs/pkgs/development/python-modules/asttokens/default.nix b/nixpkgs/pkgs/development/python-modules/asttokens/default.nix
index bb4cf989cddf..251205419fe4 100644
--- a/nixpkgs/pkgs/development/python-modules/asttokens/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/asttokens/default.nix
@@ -1,29 +1,35 @@
-{ lib, fetchPypi, fetchpatch, buildPythonPackage,
-  setuptools-scm, toml, six, astroid, pytest
+{ lib
+, fetchPypi
+, buildPythonPackage
+, setuptools-scm
+, six
+, astroid
+, pytestCheckHook
 }:
 
 buildPythonPackage rec {
   pname = "asttokens";
-  version = "2.0.4";
+  version = "2.0.5";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0a2ixiz04aw4p0aivxh47k3fa9ql804l3y5iv5gcih9aizi5fbm4";
+    sha256 = "sha256-mlTBFPAsepSA1WVQkyVGo/H+cdigLxvHzNDuPuNc9NU=";
   };
 
-  patches = [
-    # Fixes compatibility with python 3.9, will be included in the next release
-    # after 2.0.4
-    (fetchpatch {
-      url = "https://github.com/gristlabs/asttokens/commit/d8ff80ee7d2e64c5e1daf50cc38eb99663f1b1ac.patch";
-      sha256 = "19y8n8vpzr2ijldbq5rh19sf0vz5azqqpkb9bx0ljjg98h6k7kjj";
-      excludes = [ "setup.cfg" ];
-    })
+  nativeBuildInputs = [
+    setuptools-scm
   ];
 
-  propagatedBuildInputs = [ setuptools-scm toml six astroid ];
+  propagatedBuildInputs = [
+    six
+    astroid
+  ];
+
+  checkInputs = [
+    pytestCheckHook
+  ];
 
-  checkInputs = [ pytest ];
+  pythonImportsCheck = [ "asttokens" ];
 
   meta = with lib; {
     homepage = "https://github.com/gristlabs/asttokens";
diff --git a/nixpkgs/pkgs/development/python-modules/async-upnp-client/default.nix b/nixpkgs/pkgs/development/python-modules/async-upnp-client/default.nix
index 7f235485b757..f9256b11ae78 100644
--- a/nixpkgs/pkgs/development/python-modules/async-upnp-client/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/async-upnp-client/default.nix
@@ -14,14 +14,14 @@
 
 buildPythonPackage rec {
   pname = "async-upnp-client";
-  version = "0.21.0";
+  version = "0.21.3";
   disabled = pythonOlder "3.6";
 
   src = fetchFromGitHub {
     owner = "StevenLooman";
     repo = "async_upnp_client";
     rev = version;
-    sha256 = "sha256-GKvljxm2N4pC8Mh+UOW170VPB3va9X9BuQXp6OJ/SSQ=";
+    sha256 = "sha256-85MdzvNac199pZObhfGv33ycgzt4nr9eHYvSjMW6kq8=";
   };
 
   propagatedBuildInputs = [
@@ -39,20 +39,22 @@ buildPythonPackage rec {
 
   disabledTests = [
     # socket.gaierror: [Errno -2] Name or service not known
-    "test_get_local_ip"
     "test_async_get_local_ip"
+    "test_get_local_ip"
     # OSError: [Errno 101] Network is unreachable
-    "test_subscribe_fail"
-    "test_subscribe_auto_resubscribe"
-    "test_subscribe_manual_resubscribe"
     "test_auto_resubscribe_fail"
+    "test_init"
     "test_on_notify_dlna_event"
     "test_on_notify_upnp_event"
-    "test_unsubscribe"
+    "test_server_init"
+    "test_server_start"
+    "test_start_server"
     "test_subscribe"
+    "test_subscribe_auto_resubscribe"
+    "test_subscribe_fail"
+    "test_subscribe_manual_resubscribe"
     "test_subscribe_renew"
-    "test_start_server"
-    "test_init"
+    "test_unsubscribe"
   ] ++ lib.optionals stdenv.isDarwin [
     "test_deferred_callback_url"
   ];
diff --git a/nixpkgs/pkgs/development/python-modules/asynccmd/default.nix b/nixpkgs/pkgs/development/python-modules/asynccmd/default.nix
new file mode 100644
index 000000000000..623424047429
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/asynccmd/default.nix
@@ -0,0 +1,42 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, fetchpatch
+, pythonOlder
+}:
+
+buildPythonPackage rec {
+  pname = "asynccmd";
+  version = "0.2.4";
+  format = "setuptools";
+
+  disabled = pythonOlder "3.6";
+
+  src = fetchFromGitHub {
+    owner = "valentinmk";
+    repo = pname;
+    rev = version;
+    sha256 = "02sa0k0zgwv0y8k00pd1yh4x7k7xqhdikk2c0avpih1204lcw26h";
+  };
+
+  patches = [
+    # Deprecation of asyncio.Task.all_tasks(), https://github.com/valentinmk/asynccmd/pull/2
+    (fetchpatch {
+      name = "deprecation-python-38.patch";
+      url = "https://github.com/valentinmk/asynccmd/commit/12afa60ac07db17e96755e266061f2c88cb545ff.patch";
+      sha256 = "0l6sk93gj51qqrpw01a8iiyz14k6dd2z68vr9l9w9vx76l8725yf";
+    })
+  ];
+
+  # Tests are outdated
+  doCheck = false;
+
+  pythonImportsCheck = [ "asynccmd" ];
+
+  meta = with lib; {
+    description = "Asyncio implementation of Cmd Python library";
+    homepage = "https://github.com/valentinmk/asynccmd";
+    license = with licenses; [ asl20 ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/asyncstdlib/default.nix b/nixpkgs/pkgs/development/python-modules/asyncstdlib/default.nix
index dc68584d668f..a2434a9cb626 100644
--- a/nixpkgs/pkgs/development/python-modules/asyncstdlib/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/asyncstdlib/default.nix
@@ -8,7 +8,7 @@
 
 buildPythonPackage rec {
   pname = "asyncstdlib";
-  version = "3.9.2";
+  version = "3.10.1";
   disabled = pythonOlder "3.7";
   format = "flit";
 
@@ -16,7 +16,7 @@ buildPythonPackage rec {
     owner = "maxfischer2781";
     repo = pname;
     rev = "v${version}";
-    sha256 = "04z0x2n4a7503h6xf853p7if218magi98x397648wb21l4gh3zwv";
+    sha256 = "sha256-D8XaBny/m6dXMz6k/FhVX/5t8guNdJsfiX4cVQV4VIY=";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/atenpdu/default.nix b/nixpkgs/pkgs/development/python-modules/atenpdu/default.nix
index c8307608204a..4a8c0ff0f31a 100644
--- a/nixpkgs/pkgs/development/python-modules/atenpdu/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/atenpdu/default.nix
@@ -6,11 +6,11 @@
 
 buildPythonPackage rec {
   pname = "atenpdu";
-  version = "0.3.1";
+  version = "0.3.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1np9p3d180c26p54nw33alb003lhx6fprr21h45dd8gqk3slm13c";
+    sha256 = "sha256-hlbrjx6WKVJYaxrMT4fiRXlxKRcQU4AIQUVgA8mbWa8=";
   };
 
   propagatedBuildInputs = [ pysnmp ];
diff --git a/nixpkgs/pkgs/development/python-modules/auth0-python/default.nix b/nixpkgs/pkgs/development/python-modules/auth0-python/default.nix
index 67701afc0eb0..41e0ede31c5d 100644
--- a/nixpkgs/pkgs/development/python-modules/auth0-python/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/auth0-python/default.nix
@@ -9,11 +9,11 @@
 
 buildPythonPackage rec {
   pname = "auth0-python";
-  version = "3.16.2";
+  version = "3.18.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-Slpwml1GDdxAZ4P6Vn2brrupRofiOHvmQF26l0gtTJM=";
+    sha256 = "sha256-jitJF+puXaLv3qyJOjLFetzxRpnlbi4BKS0TzDmCRe8=";
   };
 
   propagatedBuildInputs = [
@@ -30,6 +30,8 @@ buildPythonPackage rec {
   disabledTests = [
     # tries to ping websites (e.g. google.com)
     "can_timeout"
+    "test_options_are_created_by_default"
+    "test_options_are_used_and_override"
   ];
 
   pythonImportsCheck = [ "auth0" ];
diff --git a/nixpkgs/pkgs/development/python-modules/authcaptureproxy/default.nix b/nixpkgs/pkgs/development/python-modules/authcaptureproxy/default.nix
index a780ae59be70..c03b423932df 100644
--- a/nixpkgs/pkgs/development/python-modules/authcaptureproxy/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/authcaptureproxy/default.nix
@@ -15,14 +15,14 @@
 
 buildPythonPackage rec {
   pname = "authcaptureproxy";
-  version = "1.0.1";
+  version = "1.0.2";
   format = "pyproject";
 
   src = fetchFromGitHub {
     owner = "alandtse";
     repo = "auth_capture_proxy";
     rev = "v${version}";
-    sha256 = "1fbrmh6qa3dm3q3zdxaa0fls94wardbcvnjgwxk686wpjgs1xrs4";
+    sha256 = "1cg63qhf823nf785kyl96r7vyxfl6dlbwsmhcpny8vb65pl9gng5";
   };
 
   postPatch = ''
diff --git a/nixpkgs/pkgs/development/python-modules/autopage/default.nix b/nixpkgs/pkgs/development/python-modules/autopage/default.nix
new file mode 100644
index 000000000000..9a2ca722a62b
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/autopage/default.nix
@@ -0,0 +1,22 @@
+{ lib, buildPythonPackage, fetchPypi }:
+
+buildPythonPackage rec {
+  pname = "autopage";
+  version = "0.4.0";
+
+  format = "pyproject";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "18f511d8ef2e4d3cc22a986d345eab0e03f95b9fa80b74ca63b7fb001551dc42";
+  };
+
+  pythonImportsCheck = [ "autopage" ];
+
+  meta = with lib; {
+    description = "A library to provide automatic paging for console output";
+    homepage = "https://github.com/zaneb/autopage";
+    license = licenses.asl20;
+    maintainers = teams.openstack.members;
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/awkward/default.nix b/nixpkgs/pkgs/development/python-modules/awkward/default.nix
index 53cd4671d2ca..62f383c56785 100644
--- a/nixpkgs/pkgs/development/python-modules/awkward/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/awkward/default.nix
@@ -11,11 +11,11 @@
 
 buildPythonPackage rec {
   pname = "awkward";
-  version = "1.4.0";
+  version = "1.5.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "25ae6114d5962c717cb87e3bc30a2f6eaa232b252cf8c51ba805b8f04664ae0d";
+    sha256 = "3cb1b0e28f420232d894d89665d5c0c8241b99e56d806171f4faf5cdfec08ae1";
   };
 
   nativeBuildInputs = [ cmake ];
diff --git a/nixpkgs/pkgs/development/python-modules/awscrt/default.nix b/nixpkgs/pkgs/development/python-modules/awscrt/default.nix
index 08e0563b966b..82e046c7b378 100644
--- a/nixpkgs/pkgs/development/python-modules/awscrt/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/awscrt/default.nix
@@ -2,7 +2,7 @@
 
 buildPythonPackage rec {
   pname = "awscrt";
-  version = "0.11.24";
+  version = "0.12.3";
 
   buildInputs = lib.optionals stdenv.isDarwin
     (with darwin.apple_sdk.frameworks; [ CoreFoundation Security ]);
@@ -23,7 +23,7 @@ buildPythonPackage rec {
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "b8aa68bca404bf0085be0570eff5b542d01f7e8e3c0f9b0859abfe5e070162ff";
+    sha256 = "441262c36b450286132fde7f110823f7ae7ae909c0f6483a0a2d56150b62f2b5";
   };
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/development/python-modules/azure-core/default.nix b/nixpkgs/pkgs/development/python-modules/azure-core/default.nix
index 8dce5b8feb75..cd0a816815cd 100644
--- a/nixpkgs/pkgs/development/python-modules/azure-core/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/azure-core/default.nix
@@ -15,14 +15,14 @@
 }:
 
 buildPythonPackage rec {
-  version = "1.16.0";
+  version = "1.17.0";
   pname = "azure-core";
   disabled = isPy27;
 
   src = fetchPypi {
     inherit pname version;
     extension = "zip";
-    sha256 = "b1c7d2e01846074f258c8b2e592239aef836a2b1c27d8d0e8491a2c7e2906ef4";
+    sha256 = "25407390dde142d3e41ecf78bb18cedda9b7f7a0af558d082dec711c4a334f46";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/azure-mgmt-batchai/default.nix b/nixpkgs/pkgs/development/python-modules/azure-mgmt-batchai/default.nix
index 6f7aedacfae2..0c005c3ea3c2 100644
--- a/nixpkgs/pkgs/development/python-modules/azure-mgmt-batchai/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/azure-mgmt-batchai/default.nix
@@ -2,10 +2,9 @@
 , buildPythonPackage
 , fetchPypi
 , azure-common
+, azure-mgmt-core
 , azure-mgmt-nspkg
 , msrestazure
-, python
-, isPy3k
 }:
 
 buildPythonPackage rec {
@@ -21,8 +20,9 @@ buildPythonPackage rec {
   propagatedBuildInputs = [
     msrestazure
     azure-common
+    azure-mgmt-core
     azure-mgmt-nspkg
-  ];
+ ];
 
   pythonNamespaces = [ "azure.mgmt" ];
 
diff --git a/nixpkgs/pkgs/development/python-modules/azure-mgmt-containerinstance/default.nix b/nixpkgs/pkgs/development/python-modules/azure-mgmt-containerinstance/default.nix
index 9d83e092f5d8..45158b8015d5 100644
--- a/nixpkgs/pkgs/development/python-modules/azure-mgmt-containerinstance/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/azure-mgmt-containerinstance/default.nix
@@ -11,12 +11,12 @@
 
 buildPythonPackage rec {
   pname = "azure-mgmt-containerinstance";
-  version = "8.0.0";
+  version = "9.0.0";
 
   src = fetchPypi {
     inherit pname version;
     extension = "zip";
-    sha256 = "7aeb380af71fc35a71d6752fa25eb5b95fdb2a0027fa32e6f50bce87e2622916";
+    sha256 = "041431c5a768ac652aac318a17f2a53b90db968494c79abbafec441d0be387ff";
   };
 
   propagatedBuildInputs = [
@@ -31,6 +31,8 @@ buildPythonPackage rec {
   # has no tests
   doCheck = false;
 
+  pythonImportsCheck = [ "azure.mgmt.containerinstance" ];
+
   meta = with lib; {
     description = "This is the Microsoft Azure Container Instance Client Library";
     homepage = "https://github.com/Azure/azure-sdk-for-python";
diff --git a/nixpkgs/pkgs/development/python-modules/azure-mgmt-iothubprovisioningservices/default.nix b/nixpkgs/pkgs/development/python-modules/azure-mgmt-iothubprovisioningservices/default.nix
index 3401ed898c8f..36a797a0e834 100644
--- a/nixpkgs/pkgs/development/python-modules/azure-mgmt-iothubprovisioningservices/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/azure-mgmt-iothubprovisioningservices/default.nix
@@ -2,27 +2,28 @@
 , buildPythonPackage
 , fetchPypi
 , python
-, isPy3k
 , msrest
 , msrestazure
 , azure-common
+, azure-mgmt-core
 , azure-mgmt-nspkg
 }:
 
 buildPythonPackage rec {
   pname = "azure-mgmt-iothubprovisioningservices";
-  version = "0.2.0";
+  version = "1.0.0";
 
   src = fetchPypi {
     inherit pname version;
     extension = "zip";
-    sha256 = "8c37acfd1c33aba845f2e0302ef7266cad31cba503cc990a48684659acb7b91d";
+    sha256 = "e5871b03488b5ae6dfc441cdbda40cb39c000635ee57c513053792b3c15826a9";
   };
 
   propagatedBuildInputs = [
     msrest
     msrestazure
     azure-common
+    azure-mgmt-core
     azure-mgmt-nspkg
   ];
 
diff --git a/nixpkgs/pkgs/development/python-modules/azure-mgmt-kusto/azure-mgmt-apimanagement/default.nix b/nixpkgs/pkgs/development/python-modules/azure-mgmt-kusto/azure-mgmt-apimanagement/default.nix
index 6cf775c2118e..4c7233203bb9 100644
--- a/nixpkgs/pkgs/development/python-modules/azure-mgmt-kusto/azure-mgmt-apimanagement/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/azure-mgmt-kusto/azure-mgmt-apimanagement/default.nix
@@ -5,13 +5,13 @@
 }:
 
 buildPythonPackage rec {
-  version = "0.3.0";
+  version = "2.1.0";
   pname = "azure-mgmt-apimanagement";
   disabled = isPy27;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "ec363581ef950945447e45d259441cb690a4b790057c7b8470ad8a6eeca04feb";
+    sha256 = "58296bd45e876df33f93f3a41c866c36476f5f3bd46818e8891308794f041c94";
     extension = "zip";
   };
 
diff --git a/nixpkgs/pkgs/development/python-modules/azure-mgmt-kusto/default.nix b/nixpkgs/pkgs/development/python-modules/azure-mgmt-kusto/default.nix
index fb82c33ba9be..eeec10b5eade 100644
--- a/nixpkgs/pkgs/development/python-modules/azure-mgmt-kusto/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/azure-mgmt-kusto/default.nix
@@ -6,13 +6,13 @@
 }:
 
 buildPythonPackage rec {
-  version = "2.0.0";
+  version = "2.1.0";
   pname = "azure-mgmt-kusto";
   disabled = isPy27;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "81601479e2b6da3e69654462674ef1474218c4415ef25c1d9892939721732153";
+    sha256 = "171ea8719f543bd0dd4f3d6fa2277162d763182fe8e61b4db03f02668c1685b5";
     extension = "zip";
   };
 
diff --git a/nixpkgs/pkgs/development/python-modules/azure-mgmt-recoveryservices/default.nix b/nixpkgs/pkgs/development/python-modules/azure-mgmt-recoveryservices/default.nix
index d1f49355f8b9..29b0dd2eb1ca 100644
--- a/nixpkgs/pkgs/development/python-modules/azure-mgmt-recoveryservices/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/azure-mgmt-recoveryservices/default.nix
@@ -11,12 +11,12 @@
 
 buildPythonPackage rec {
   pname = "azure-mgmt-recoveryservices";
-  version = "1.0.0";
+  version = "2.0.0";
 
   src = fetchPypi {
     inherit pname version;
     extension = "zip";
-    sha256 = "ab87108c0d5ce27d80583b4bfad966ad07049dcbc0e9ac28c64aa6bbdae64e22";
+    sha256 = "a7d3137d5c460f50ac2d44061d60a70b4f2779d4ca844b77419b5725e65e09be";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/azure-mgmt-servicebus/default.nix b/nixpkgs/pkgs/development/python-modules/azure-mgmt-servicebus/default.nix
index 5dd689b976e4..28102aca7396 100644
--- a/nixpkgs/pkgs/development/python-modules/azure-mgmt-servicebus/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/azure-mgmt-servicebus/default.nix
@@ -11,12 +11,12 @@
 
 buildPythonPackage rec {
   pname = "azure-mgmt-servicebus";
-  version = "7.0.0";
+  version = "7.1.0";
 
   src = fetchPypi {
     inherit pname version;
     extension = "zip";
-    sha256 = "ee859efec2ec9fc8d059811967b1cb17836f4f5786e7406494a42f51f0667822";
+    sha256 = "d8ae7905fb7d3e24822daa20aa7bc5014f41aa18b48ea2d0161e997fc11a3d36";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/azure-mgmt-sqlvirtualmachine/default.nix b/nixpkgs/pkgs/development/python-modules/azure-mgmt-sqlvirtualmachine/default.nix
index a34ebae2b812..76f0d7a2b39c 100644
--- a/nixpkgs/pkgs/development/python-modules/azure-mgmt-sqlvirtualmachine/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/azure-mgmt-sqlvirtualmachine/default.nix
@@ -1,5 +1,6 @@
 { lib, buildPythonPackage, fetchPypi, isPy27
 , azure-common
+, azure-mgmt-core
 , msrest
 , msrestazure
 }:
@@ -15,7 +16,12 @@ buildPythonPackage rec {
     extension = "zip";
   };
 
-  propagatedBuildInputs = [ azure-common msrest msrestazure ];
+  propagatedBuildInputs = [
+    azure-common
+    azure-mgmt-core
+    msrest
+    msrestazure
+  ];
 
   # no tests included
   doCheck = false;
diff --git a/nixpkgs/pkgs/development/python-modules/azure-mgmt-storage/default.nix b/nixpkgs/pkgs/development/python-modules/azure-mgmt-storage/default.nix
index 86c5005c8769..3c47f7f0dad2 100644
--- a/nixpkgs/pkgs/development/python-modules/azure-mgmt-storage/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/azure-mgmt-storage/default.nix
@@ -8,14 +8,14 @@
 }:
 
 buildPythonPackage rec {
-  version = "18.0.0";
+  version = "19.0.0";
   pname = "azure-mgmt-storage";
   disabled = !isPy3k;
 
   src = fetchPypi {
     inherit pname version;
     extension = "zip";
-    sha256 = "d17beb34273797fa89863632ff0e1eb9b6a55198abb8c7f05d84980762e5f71f";
+    sha256 = "f05963e5a8696d0fd4dcadda4feecb9b382a380d2e461b3647704ac787d79876";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/azure-storage-file-share/default.nix b/nixpkgs/pkgs/development/python-modules/azure-storage-file-share/default.nix
index eb2fb40b3365..b6c639b6246b 100644
--- a/nixpkgs/pkgs/development/python-modules/azure-storage-file-share/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/azure-storage-file-share/default.nix
@@ -12,13 +12,13 @@
 
 buildPythonPackage rec {
   pname = "azure-storage-file-share";
-  version = "12.5.0";
+  version = "12.6.0";
   disabled = !isPy3k;
 
   src = fetchPypi {
     inherit pname version;
     extension = "zip";
-    sha256 = "ed82e9bf8d25d62e50996604fce701cec6a39ec0ceba6efbf8790f7f8b7746a8";
+    sha256 = "7eb0cde00fbbb6b780da8bdd81312ab79de706c4a2601e4eded1bc430da680a8";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/azure-synapse-managedprivateendpoints/default.nix b/nixpkgs/pkgs/development/python-modules/azure-synapse-managedprivateendpoints/default.nix
new file mode 100644
index 000000000000..4a8b98be01ba
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/azure-synapse-managedprivateendpoints/default.nix
@@ -0,0 +1,33 @@
+{ lib, buildPythonPackage, fetchPypi
+, azure-common
+, azure-core
+, msrest
+}:
+
+buildPythonPackage rec {
+  pname = "azure-synapse-managedprivateendpoints";
+  version = "0.4.0";
+
+  src = fetchPypi {
+    inherit pname version;
+    extension = "zip";
+    sha256 = "900eaeaccffdcd01012b248a7d049008c92807b749edd1c9074ca9248554c17e";
+  };
+
+  propagatedBuildInputs = [
+    azure-common
+    azure-core
+    msrest
+  ];
+
+  pythonNamespaces = [ "azure.synapse" ];
+
+  pythonImportsCheck = [ "azure.synapse.managedprivateendpoints" ];
+
+  meta = with lib; {
+    description = "Microsoft Azure Synapse Managed Private Endpoints Client Library for Python";
+    homepage = "https://github.com/Azure/azure-sdk-for-python";
+    license = licenses.mit;
+    maintainers = with maintainers; [ jonringer ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/backports-entry-points-selectable/default.nix b/nixpkgs/pkgs/development/python-modules/backports-entry-points-selectable/default.nix
index 02117f7282e3..abf6774ddef2 100644
--- a/nixpkgs/pkgs/development/python-modules/backports-entry-points-selectable/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/backports-entry-points-selectable/default.nix
@@ -1,36 +1,32 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pythonOlder
-, importlib-metadata
-, pytestCheckHook
-}:
+{ lib, buildPythonPackage, fetchPypi, pythonOlder, setuptools-scm, importlib-metadata }:
 
 buildPythonPackage rec {
-  pname = "backports.entry-points-selectable";
-  version = "1.0.4";
+  pname = "backports-entry-points-selectable";
+  version = "1.1.0";
 
   src = fetchPypi {
+    pname = "backports.entry_points_selectable";
     inherit version;
-    # pypi project name and tarball name differ
-    pname = builtins.replaceStrings [ "-" ] [ "_" ] pname;
-    sha256 = "4acda84d96855beece3bf9aad9a1030aceb5f744b8ce9af7d5ee6dd672cdd3bd";
+    sha256 = "988468260ec1c196dab6ae1149260e2f5472c9110334e5d51adcb77867361f6a";
   };
 
-  format = "pyproject";
+  nativeBuildInputs = [ setuptools-scm ];
 
   propagatedBuildInputs = lib.optionals (pythonOlder "3.8") [
     importlib-metadata
   ];
 
-  checkInputs = [
-    pytestCheckHook
-  ];
+  # no tests
+  doCheck = false;
+
+  pythonImportsCheck = [ "backports.entry_points_selectable" ];
+
+  pythonNamespaces = [ "backports" ];
 
   meta = with lib; {
     description = "Compatibility shim providing selectable entry points for older implementations";
-    license = licenses.mit;
-    maintainers = [ maintainers.sternenseemann ];
     homepage = "https://github.com/jaraco/backports.entry_points_selectable";
+    license = licenses.mit;
+    maintainers = with maintainers; [ SuperSandro2000 ];
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/backports_functools_lru_cache/default.nix b/nixpkgs/pkgs/development/python-modules/backports_functools_lru_cache/default.nix
index cb5665363f9c..21920c32b4d2 100644
--- a/nixpkgs/pkgs/development/python-modules/backports_functools_lru_cache/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/backports_functools_lru_cache/default.nix
@@ -30,6 +30,8 @@ buildPythonPackage rec {
   # Test fail on Python 2
   doCheck = isPy3k;
 
+  pythonNamespaces = [ "backports" ];
+
   meta = {
     description = "Backport of functools.lru_cache";
     homepage = "https://github.com/jaraco/backports.functools_lru_cache";
diff --git a/nixpkgs/pkgs/development/python-modules/bellows/default.nix b/nixpkgs/pkgs/development/python-modules/bellows/default.nix
index e52e07627dbb..8caebee0ed5d 100644
--- a/nixpkgs/pkgs/development/python-modules/bellows/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/bellows/default.nix
@@ -17,13 +17,13 @@
 
 buildPythonPackage rec {
   pname = "bellows";
-  version = "0.26.0";
+  version = "0.27.0";
 
   src = fetchFromGitHub {
     owner = "zigpy";
     repo = "bellows";
     rev = version;
-    sha256 = "0qbsk5iv3vrpwz7kfmjdbc66rfkg788p6wwxbf6jzfarfhcgrh3k";
+    sha256 = "sha256-lsGpCd4XgwP91JmRpV6ohXefd1Hm9C51Jk4shU6Irkw=";
   };
 
   propagatedBuildInputs = [
@@ -46,10 +46,9 @@ buildPythonPackage rec {
   ];
 
   disabledTests = [
-    # RuntimeError: coroutine 'test_remigrate_forcibly_downgraded_v4' was never awaited
-    #"test_remigrate_forcibly_downgraded_v4"
-    # RuntimeError: Event loop is closed
-    "test_thread_already_stopped"
+    # AssertionError: assert 65534 is None
+    # https://github.com/zigpy/bellows/issues/436
+    "test_startup_nwk_params"
   ];
 
   pythonImportsCheck = [
diff --git a/nixpkgs/pkgs/development/python-modules/beniget/default.nix b/nixpkgs/pkgs/development/python-modules/beniget/default.nix
index f8733eeed626..51f641c51eb4 100644
--- a/nixpkgs/pkgs/development/python-modules/beniget/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/beniget/default.nix
@@ -6,11 +6,11 @@
 
 buildPythonPackage rec {
   pname = "beniget";
-  version = "0.4.0";
+  version = "0.4.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "72bbd47b1ae93690f5fb2ad3902ce1ae61dcd868ce6cfbf33e9bad71f9ed8749";
+    sha256 = "75554b3b8ad0553ce2f607627dad3d95c60c441189875b98e097528f8e23ac0c";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/bids-validator/default.nix b/nixpkgs/pkgs/development/python-modules/bids-validator/default.nix
index f39e775fc257..f189572f12e3 100644
--- a/nixpkgs/pkgs/development/python-modules/bids-validator/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/bids-validator/default.nix
@@ -4,12 +4,12 @@
 }:
 
 buildPythonPackage rec {
-  version = "1.8.2";
+  version = "1.8.3";
   pname = "bids-validator";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "7969d55e9ed07f6cf7dfd72ed696a05abe56a2f35e81a1ef677f3694b2adf606";
+    sha256 = "a2940b447fdbea084311de55d415a1538299ad40ee1cc6ae711319c0734dc401";
   };
 
   # needs packages which are not available in nixpkgs
diff --git a/nixpkgs/pkgs/development/python-modules/biplist/default.nix b/nixpkgs/pkgs/development/python-modules/biplist/default.nix
index b3e9f7b83740..c6714c3d4cbc 100644
--- a/nixpkgs/pkgs/development/python-modules/biplist/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/biplist/default.nix
@@ -1,10 +1,12 @@
-{ lib, buildPythonPackage, fetchPypi
-, pytest
+{ lib
+, buildPythonPackage
+, fetchPypi
+, pytestCheckHook
 }:
 
 buildPythonPackage rec {
-  version = "1.0.3";
   pname = "biplist";
+  version = "1.0.3";
 
   src = fetchPypi {
     inherit pname version;
@@ -12,12 +14,18 @@ buildPythonPackage rec {
   };
 
   checkInputs = [
-    pytest
+    pytestCheckHook
+  ];
+
+  disabledTests = [
+    # Failing tests
+    "testConvertToXMLPlistWithData"
+    "testWriteToFile"
+    "testXMLPlist"
+    "testXMLPlistWithData"
   ];
 
-  checkPhase = ''
-    pytest
-  '';
+  pythonImportsCheck = [ "biplist" ];
 
   meta = with lib; {
     homepage = "https://bitbucket.org/wooster/biplist/src/master/";
diff --git a/nixpkgs/pkgs/development/python-modules/bitarray/default.nix b/nixpkgs/pkgs/development/python-modules/bitarray/default.nix
index ad20467f162d..43cc2dbd5bce 100644
--- a/nixpkgs/pkgs/development/python-modules/bitarray/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/bitarray/default.nix
@@ -6,11 +6,11 @@
 
 buildPythonPackage rec {
   pname = "bitarray";
-  version = "2.3.3";
+  version = "2.3.4";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-Dt9jCkRxpIYnrsC4QM87jhCQEZHTKPZRFWBCBFneKC4=";
+    sha256 = "f19c62425576d3d1821ed711b94d1a4e5ede8f05ca121e99b6d978ed49c7a765";
   };
 
   checkPhase = ''
diff --git a/nixpkgs/pkgs/development/python-modules/bitlist/default.nix b/nixpkgs/pkgs/development/python-modules/bitlist/default.nix
index 9dea05cac9ea..e985dbf28c0f 100644
--- a/nixpkgs/pkgs/development/python-modules/bitlist/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/bitlist/default.nix
@@ -8,11 +8,11 @@
 
 buildPythonPackage rec {
   pname = "bitlist";
-  version = "0.4.0";
+  version = "0.5.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-IL1tpP/F6O3BvJab6aC6r6PhRgKFpLp9aXmOK1rQXaU=";
+    sha256 = "sha256-bX/Z5FBm21gX4ax/HfqD2bNotZyNFX7dHCEN5uZzQJQ=";
   };
 
   propagatedBuildInputs = [
@@ -24,6 +24,11 @@ buildPythonPackage rec {
     nose
   ];
 
+  postPatch = ''
+    substituteInPlace setup.py \
+      --replace "parts~=1.0.3" "parts>=1.0.3"
+  '';
+
   pythonImportsCheck = [ "bitlist" ];
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/development/python-modules/black/default.nix b/nixpkgs/pkgs/development/python-modules/black/default.nix
index 772ad57e7fe3..948d734d5317 100644
--- a/nixpkgs/pkgs/development/python-modules/black/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/black/default.nix
@@ -20,13 +20,13 @@
 
 buildPythonPackage rec {
   pname = "black";
-  version = "21.8b0";
+  version = "21.9b0";
 
   disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-VwYI0oqjrxeSuYxKM326xjZ4d7R7EriKtCCVz8GmJ8I=";
+    sha256 = "sha256-feTPx+trcQ3jJXEtQBJWiRAdIdJSg+7X6ZmHIs8Q65E=";
   };
 
   nativeBuildInputs = [ setuptools-scm ];
diff --git a/nixpkgs/pkgs/development/python-modules/block-io/default.nix b/nixpkgs/pkgs/development/python-modules/block-io/default.nix
index b823b8711a53..a76132e3e211 100644
--- a/nixpkgs/pkgs/development/python-modules/block-io/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/block-io/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "block-io";
-  version = "1.1.15";
+  version = "2.0.4";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "97ea037a67af72037cb08cec7e0a9f7866ecdfaa1a8c8ebcc0f4b9359a1516d7";
+    sha256 = "817c9cd2ff76659caca4bb3d6758d5782a85f8c0ea13b08c4e14f0c2a8b7586d";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/bokeh/default.nix b/nixpkgs/pkgs/development/python-modules/bokeh/default.nix
index 6677d9ceacb9..925eb9c8f39d 100644
--- a/nixpkgs/pkgs/development/python-modules/bokeh/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/bokeh/default.nix
@@ -34,11 +34,11 @@
 buildPythonPackage rec {
   pname = "bokeh";
   # update together with panel which is not straightforward
-  version = "2.3.2";
+  version = "2.3.3";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "fcc0d0a3129ae457cdb0a4f503843a4d13d1f5d07af7748424ea8c7ddfc321f1";
+    sha256 = "a5fdcc181835561447fcc5a371300973fce4114692d5853addec284d1cdeb677";
   };
 
   patches = [
diff --git a/nixpkgs/pkgs/development/python-modules/boto3/1_17.nix b/nixpkgs/pkgs/development/python-modules/boto3/1_17.nix
new file mode 100644
index 000000000000..c8b8210f6503
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/boto3/1_17.nix
@@ -0,0 +1,50 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, botocore
+, jmespath
+, s3transfer
+, futures ? null
+, docutils
+, nose
+, mock
+, isPy3k
+}:
+
+buildPythonPackage rec {
+  pname = "boto3";
+  version = "1.17.97"; # N.B: if you change this, change botocore and awscli to a matching version
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "0ab5afc51461c30f27aebef944211d16f47697b98ff8d2e2f6e49e59584853bb";
+  };
+
+  propagatedBuildInputs = [ botocore jmespath s3transfer ] ++ lib.optionals (!isPy3k) [ futures ];
+  checkInputs = [ docutils nose mock ];
+
+  checkPhase = ''
+    runHook preCheck
+    # This method is not in mock. It might have appeared in some versions.
+    sed -i 's/action.assert_called_once()/self.assertEqual(action.call_count, 1)/' \
+      tests/unit/resources/test_factory.py
+    nosetests -d tests/unit --verbose
+    runHook postCheck
+  '';
+
+  # Network access
+  doCheck = false;
+
+  pythonImportsCheck = [ "boto3" ];
+
+  meta = {
+    homepage = "https://github.com/boto/boto3";
+    license = lib.licenses.asl20;
+    description = "AWS SDK for Python";
+    longDescription = ''
+      Boto3 is the Amazon Web Services (AWS) Software Development Kit (SDK) for
+      Python, which allows Python developers to write software that makes use of
+      services like Amazon S3 and Amazon EC2.
+    '';
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/boto3/default.nix b/nixpkgs/pkgs/development/python-modules/boto3/default.nix
index c8b8210f6503..3ecc2034d483 100644
--- a/nixpkgs/pkgs/development/python-modules/boto3/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/boto3/default.nix
@@ -13,11 +13,11 @@
 
 buildPythonPackage rec {
   pname = "boto3";
-  version = "1.17.97"; # N.B: if you change this, change botocore and awscli to a matching version
+  version = "1.18.31"; # N.B: if you change this, change botocore and awscli to a matching version
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0ab5afc51461c30f27aebef944211d16f47697b98ff8d2e2f6e49e59584853bb";
+    sha256 = "sha256-WURdDh1VyMlnVpfqQcmKDYIImkvjB26mDjqHy+lNwUE=";
   };
 
   propagatedBuildInputs = [ botocore jmespath s3transfer ] ++ lib.optionals (!isPy3k) [ futures ];
diff --git a/nixpkgs/pkgs/development/python-modules/botocore/1_20.nix b/nixpkgs/pkgs/development/python-modules/botocore/1_20.nix
new file mode 100644
index 000000000000..d05c2decf497
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/botocore/1_20.nix
@@ -0,0 +1,48 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, python-dateutil
+, jmespath
+, docutils
+, ordereddict
+, simplejson
+, mock
+, nose
+, urllib3
+}:
+
+buildPythonPackage rec {
+  pname = "botocore";
+  version = "1.20.97"; # N.B: if you change this, change boto3 and awscli to a matching version
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "f7e119cf3e0f4a36100f0e983583afa91a84fb27c479a1716820aee4f2e190ab";
+  };
+
+  propagatedBuildInputs = [
+    python-dateutil
+    jmespath
+    docutils
+    ordereddict
+    simplejson
+    urllib3
+  ];
+
+  checkInputs = [ mock nose ];
+
+  checkPhase = ''
+    nosetests -v
+  '';
+
+  # Network access
+  doCheck = false;
+
+  pythonImportsCheck = [ "botocore" ];
+
+  meta = with lib; {
+    homepage = "https://github.com/boto/botocore";
+    license = licenses.asl20;
+    description = "A low-level interface to a growing number of Amazon Web Services";
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/botocore/default.nix b/nixpkgs/pkgs/development/python-modules/botocore/default.nix
index d05c2decf497..cdb3f54c855e 100644
--- a/nixpkgs/pkgs/development/python-modules/botocore/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/botocore/default.nix
@@ -13,11 +13,11 @@
 
 buildPythonPackage rec {
   pname = "botocore";
-  version = "1.20.97"; # N.B: if you change this, change boto3 and awscli to a matching version
+  version = "1.21.31"; # N.B: if you change this, change boto3 and awscli to a matching version
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "f7e119cf3e0f4a36100f0e983583afa91a84fb27c479a1716820aee4f2e190ab";
+    sha256 = "sha256-WM0xXirglxrNs9fNqcnDa0HHMYH0GUOnRDgS1tPJrRg=";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/braintree/default.nix b/nixpkgs/pkgs/development/python-modules/braintree/default.nix
index 6d64def54ab6..17681f053337 100644
--- a/nixpkgs/pkgs/development/python-modules/braintree/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/braintree/default.nix
@@ -6,11 +6,11 @@
 
 buildPythonPackage rec {
   pname = "braintree";
-  version = "4.10.0";
+  version = "4.12.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "f934a329c7a2b3f7058d5c733cc95da694f66afb5a789162ec701ba4d26a0d90";
+    sha256 = "946abd50fe2843eec586ac3cec285d27dfae0cc5a43a64b505e8a2800b8a74a6";
   };
 
   propagatedBuildInputs = [ requests ];
diff --git a/nixpkgs/pkgs/development/python-modules/breathe/default.nix b/nixpkgs/pkgs/development/python-modules/breathe/default.nix
index d863d9463992..7770996f423d 100644
--- a/nixpkgs/pkgs/development/python-modules/breathe/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/breathe/default.nix
@@ -1,13 +1,13 @@
 { lib, fetchPypi, buildPythonPackage, docutils, six, sphinx, isPy3k, isPy27 }:
 
 buildPythonPackage rec {
-  version = "4.30.0";
+  version = "4.31.0";
   pname = "breathe";
   disabled = isPy27;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "363dec85abc0c4b3f22628b0cf82cc2dc46c4397d8a18312d1a7d1365d49b014";
+    sha256 = "925eeff96c6640cd857e4ddeae6f75464a1d5e2e08ee56dccce4043583ae2050";
   };
 
   propagatedBuildInputs = [ docutils six sphinx ];
diff --git a/nixpkgs/pkgs/development/python-modules/brotli/default.nix b/nixpkgs/pkgs/development/python-modules/brotli/default.nix
index 1edc62317a64..0556c5b4e2a2 100644
--- a/nixpkgs/pkgs/development/python-modules/brotli/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/brotli/default.nix
@@ -1,4 +1,7 @@
-{ lib, buildPythonPackage, fetchFromGitHub, pytest }:
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, pytestCheckHook }:
 
 buildPythonPackage rec {
   pname = "brotli";
@@ -16,15 +19,18 @@ buildPythonPackage rec {
 
   dontConfigure = true;
 
-  checkInputs = [ pytest ];
+  checkInputs = [
+    pytestCheckHook
+  ];
 
-  checkPhase = ''
-    pytest python/tests
-  '';
+  pytestFlagsArray = [
+    "python/tests"
+  ];
 
-  meta = {
+  meta = with lib; {
     homepage = "https://github.com/google/brotli";
     description = "Generic-purpose lossless compression algorithm";
-    license = lib.licenses.mit;
+    license = licenses.mit;
+    maintainers = with maintainers; [ ];
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/canonicaljson/default.nix b/nixpkgs/pkgs/development/python-modules/canonicaljson/default.nix
index 4a4f56f5abf5..ca64d599534e 100644
--- a/nixpkgs/pkgs/development/python-modules/canonicaljson/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/canonicaljson/default.nix
@@ -1,5 +1,11 @@
-{ lib, buildPythonPackage, fetchPypi
-, frozendict, simplejson, six, isPy27
+{ lib
+, buildPythonPackage
+, fetchPypi
+, frozendict
+, simplejson
+, six
+, isPy27
+, pytestCheckHook
 }:
 
 buildPythonPackage rec {
@@ -13,7 +19,15 @@ buildPythonPackage rec {
   };
 
   propagatedBuildInputs = [
-    frozendict simplejson six
+    frozendict
+    simplejson
+    six
+  ];
+
+  checkInputs = [ pytestCheckHook ];
+
+  disabledTests = [
+    "test_frozen_dict"
   ];
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/development/python-modules/casbin/default.nix b/nixpkgs/pkgs/development/python-modules/casbin/default.nix
index 3f2b26e9c5f9..b813eb47c697 100644
--- a/nixpkgs/pkgs/development/python-modules/casbin/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/casbin/default.nix
@@ -4,11 +4,12 @@
 , simpleeval
 , isPy27
 , coveralls
+, wcmatch
 }:
 
 buildPythonPackage rec {
   pname = "casbin";
-  version = "0.20.0";
+  version = "1.9.0";
 
   disabled = isPy27;
 
@@ -16,11 +17,12 @@ buildPythonPackage rec {
     owner = pname;
     repo = "pycasbin";
     rev = "v${version}";
-    sha256 = "1j7kd4rvf4myg4x4sm4njlhzkxm2m3cva9wmp9vx0nnpfdlyb67f";
+    sha256 = "01prcwkmh3a4ggzjiaai489rrpmgwvqpjcavwjxw60mspyhsbv86";
   };
 
   propagatedBuildInputs = [
     simpleeval
+    wcmatch
   ];
 
   checkInputs = [
@@ -31,10 +33,14 @@ buildPythonPackage rec {
     coverage run -m unittest discover -s tests -t tests
   '';
 
+  pythonImportsCheck = [
+    "casbin"
+  ];
+
   meta = with lib; {
     description = "An authorization library that supports access control models like ACL, RBAC, ABAC in Python";
     homepage = "https://github.com/casbin/pycasbin";
     license = licenses.asl20;
-    maintainers = [ maintainers.costrouc ];
+    maintainers = with maintainers; [ costrouc ];
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/censys/default.nix b/nixpkgs/pkgs/development/python-modules/censys/default.nix
index 06e619676a67..0d14441932e3 100644
--- a/nixpkgs/pkgs/development/python-modules/censys/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/censys/default.nix
@@ -15,7 +15,7 @@
 
 buildPythonPackage rec {
   pname = "censys";
-  version = "2.0.6";
+  version = "2.0.8";
   format = "pyproject";
 
   disabled = pythonOlder "3.6";
@@ -24,7 +24,7 @@ buildPythonPackage rec {
     owner = "censys";
     repo = "censys-python";
     rev = "v${version}";
-    sha256 = "sha256-Lbd2Pm79n0cFoGHC2rucxgZijzcVYVJJsq1yzqB9QLk=";
+    sha256 = "sha256-2qMUQ+MRrPzXlH+WUJ8DSXtrgaZp4OD36X8cX7cNIks=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/cffi/default.nix b/nixpkgs/pkgs/development/python-modules/cffi/default.nix
index 92899ed85e58..94aecdcc4ec4 100644
--- a/nixpkgs/pkgs/development/python-modules/cffi/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/cffi/default.nix
@@ -2,11 +2,11 @@
 
 if isPyPy then null else buildPythonPackage rec {
   pname = "cffi";
-  version = "1.14.5";
+  version = "1.14.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "fd78e5fee591709f32ef6edb9a015b4aa1a5022598e36227500c8f4e02328d9c";
+    sha256 = "c9a875ce9d7fe32887784274dd533c57909b7b1dcadcc128a2ac21331a9765dd";
   };
 
   outputs = [ "out" "dev" ];
diff --git a/nixpkgs/pkgs/development/python-modules/cfn-lint/default.nix b/nixpkgs/pkgs/development/python-modules/cfn-lint/default.nix
index d8e0af78e1cd..6f6d55502958 100644
--- a/nixpkgs/pkgs/development/python-modules/cfn-lint/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/cfn-lint/default.nix
@@ -21,13 +21,13 @@
 
 buildPythonPackage rec {
   pname = "cfn-lint";
-  version = "0.53.0";
+  version = "0.53.1";
 
   src = fetchFromGitHub {
     owner = "aws-cloudformation";
     repo = "cfn-python-lint";
     rev = "v${version}";
-    sha256 = "sha256-UHcbbBoByoxW7+AUxu5mQmcvC3irHPQvBv4CbBXPTNo=";
+    sha256 = "1wj2pzrrmrdf3mkhnz1qx41rshvfpgwlrxrb80d63r098pnq6df8";
   };
 
   postPatch = ''
diff --git a/nixpkgs/pkgs/development/python-modules/charset-normalizer/default.nix b/nixpkgs/pkgs/development/python-modules/charset-normalizer/default.nix
new file mode 100644
index 000000000000..dc0f5e1b296a
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/charset-normalizer/default.nix
@@ -0,0 +1,35 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, pytestCheckHook
+}:
+
+buildPythonPackage rec {
+  pname = "charset-normalizer";
+  version = "2.0.1";
+
+  src = fetchFromGitHub {
+    owner = "Ousret";
+    repo = "charset_normalizer";
+    rev = version;
+    sha256 = "04rnyrqay11kma9pzagi1mzhc0sq37ggpv39kad2d4ynm35v2hfq";
+  };
+
+  checkInputs = [
+    pytestCheckHook
+  ];
+
+  postPatch = ''
+    substituteInPlace setup.cfg \
+      --replace " --cov=charset_normalizer --cov-report=term-missing" ""
+  '';
+
+  pythonImportsCheck = [ "charset_normalizer" ];
+
+  meta = with lib; {
+    description = "Python module for encoding and language detection";
+    homepage = "https://charset-normalizer.readthedocs.io/";
+    license = licenses.mit;
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/chart-studio/default.nix b/nixpkgs/pkgs/development/python-modules/chart-studio/default.nix
index e059725cad24..2873b7e99ef0 100644
--- a/nixpkgs/pkgs/development/python-modules/chart-studio/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/chart-studio/default.nix
@@ -10,14 +10,14 @@
 
 buildPythonPackage rec {
   pname = "chart-studio";
-  version = "4.14.3";
+  version = "5.3.1";
 
   # chart-studio was split from plotly
   src = fetchFromGitHub {
     owner = "plotly";
     repo = "plotly.py";
     rev = "v${version}";
-    sha256 = "1yrrcn9032r3l8y2cc1wvpydg4rkqvgkpyv1s7znby5mrxa1rjma";
+    sha256 = "11jazr5s2rmcxbkpb79gllwlyxvji3f0ryfrj7mkbyvfnfv43gly";
   };
 
   sourceRoot = "source/packages/python/chart-studio";
diff --git a/nixpkgs/pkgs/development/python-modules/check-manifest/default.nix b/nixpkgs/pkgs/development/python-modules/check-manifest/default.nix
index de833e18be8e..608f3a0cac68 100644
--- a/nixpkgs/pkgs/development/python-modules/check-manifest/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/check-manifest/default.nix
@@ -12,11 +12,11 @@
 
 buildPythonPackage rec {
   pname = "check-manifest";
-  version = "0.46";
+  version = "0.47";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "5895e42a012989bdc51854a02c82c8d6898112a4ab11f2d7878200520b49d428";
+    sha256 = "56dadd260a9c7d550b159796d2894b6d0bcc176a94cbc426d9bb93e5e48d12ce";
   };
 
   # Test requires filesystem access
diff --git a/nixpkgs/pkgs/development/python-modules/claripy/default.nix b/nixpkgs/pkgs/development/python-modules/claripy/default.nix
index 5a80bb1dc360..1db9b5959e65 100644
--- a/nixpkgs/pkgs/development/python-modules/claripy/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/claripy/default.nix
@@ -13,14 +13,14 @@
 
 buildPythonPackage rec {
   pname = "claripy";
-  version = "9.0.9792";
+  version = "9.0.10010";
   disabled = pythonOlder "3.6";
 
   src = fetchFromGitHub {
     owner = "angr";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-9jwD75leV02N5B7RaLF2DbC6GjhoDQMmkfFIO9MJ4Es=";
+    sha256 = "sha256-bcVbGDUTVLQ6ybPA2HjRlHJj1gnYK2dazhZXc9k0uSY=";
   };
 
   # Use upstream z3 implementation
diff --git a/nixpkgs/pkgs/development/python-modules/cle/default.nix b/nixpkgs/pkgs/development/python-modules/cle/default.nix
index 0b4b0fc94d00..3d709b749d26 100644
--- a/nixpkgs/pkgs/development/python-modules/cle/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/cle/default.nix
@@ -15,7 +15,7 @@
 
 let
   # The binaries are following the argr projects release cycle
-  version = "9.0.9792";
+  version = "9.0.10010";
 
   # Binary files from https://github.com/angr/binaries (only used for testing and only here)
   binaries = fetchFromGitHub {
@@ -35,7 +35,7 @@ buildPythonPackage rec {
     owner = "angr";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-lCRZj0/L/XNcnJNiLxPY2mCFZowV6hLEpHOEiCsyQ/0=";
+    sha256 = "sha256-Fq/xkcG6wLRaXG37UEf/3r+EsacpkP2iA+HZLT05ETg=";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/cliff/default.nix b/nixpkgs/pkgs/development/python-modules/cliff/default.nix
index bb856736d92b..8b8f536bab6f 100644
--- a/nixpkgs/pkgs/development/python-modules/cliff/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/cliff/default.nix
@@ -1,56 +1,54 @@
 { lib
 , buildPythonPackage
 , fetchPypi
+, autopage
+, cmd2
 , pbr
 , prettytable
 , pyparsing
-, six
-, stevedore
 , pyyaml
-, cmd2
-, pytestCheckHook
-, testtools
-, fixtures
-, which
+, stevedore
+, callPackage
 }:
 
 buildPythonPackage rec {
   pname = "cliff";
-  version = "3.8.0";
+  version = "3.9.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "8dd215d0a84c9a3ab2fa2aa700849f4e7b786639f66caa0ad4108c85dca95a7c";
+    sha256 = "95363e9b43e2ec9599e33b5aea27a6953beda2d0673557916fa4f5796857daa3";
   };
 
+  postPatch = ''
+    # only a small portion of the listed packages are actually needed for running the tests
+    # so instead of removing them one by one remove everything
+    rm test-requirements.txt
+  '';
+
   propagatedBuildInputs = [
+    autopage
+    cmd2
     pbr
     prettytable
     pyparsing
-    six
-    stevedore
     pyyaml
-    cmd2
+    stevedore
   ];
 
-  postPatch = ''
-    sed -i -e '/cmd2/c\cmd2' -e '/PrettyTable/c\PrettyTable' requirements.txt
-  '';
+  # check in passthru.tests.pytest to escape infinite recursion with stestr
+  doCheck = false;
 
-  checkInputs = [ fixtures pytestCheckHook testtools which ];
-  # add some tests
-  pytestFlagsArray = [
-    "cliff/tests/test_utils.py"
-    "cliff/tests/test_app.py"
-    "cliff/tests/test_command.py"
-    "cliff/tests/test_help.py"
-    "cliff/tests/test_lister.py"
-  ];
+  pythonImportsCheck = [ "cliff" ];
+
+  passthru.tests = {
+    pytest = callPackage ./tests.nix { };
+  };
 
   meta = with lib; {
     description = "Command Line Interface Formulation Framework";
-    homepage = "https://docs.openstack.org/cliff/latest/";
+    homepage = "https://github.com/openstack/cliff";
     license = licenses.asl20;
-    maintainers = [ maintainers.costrouc ];
+    maintainers = teams.openstack.members;
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/cliff/tests.nix b/nixpkgs/pkgs/development/python-modules/cliff/tests.nix
new file mode 100644
index 000000000000..f7cc0226f2fc
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/cliff/tests.nix
@@ -0,0 +1,34 @@
+{ stdenv
+, buildPythonPackage
+, cliff
+, docutils
+, stestr
+, testscenarios
+}:
+
+buildPythonPackage rec {
+  pname = "cliff";
+  inherit (cliff) version;
+
+  src = cliff.src;
+
+  postPatch = ''
+    # only a small portion of the listed packages are actually needed for running the tests
+    # so instead of removing them one by one remove everything
+    rm test-requirements.txt
+  '';
+
+  dontBuild = true;
+  dontInstall = true;
+
+  checkInputs = [
+    cliff
+    docutils
+    stestr
+    testscenarios
+  ];
+
+  checkPhase = ''
+    stestr run
+  '';
+}
diff --git a/nixpkgs/pkgs/development/python-modules/cmd2/default.nix b/nixpkgs/pkgs/development/python-modules/cmd2/default.nix
index b5bbc88c341f..f74cf77c5e4a 100644
--- a/nixpkgs/pkgs/development/python-modules/cmd2/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/cmd2/default.nix
@@ -1,60 +1,74 @@
-{ lib, stdenv, fetchPypi, buildPythonPackage, pythonOlder, isPy3k
-, pyperclip, six, pyparsing, vim, wcwidth, colorama, attrs
-, contextlib2 ? null, typing ? null, setuptools-scm
-, pytest, mock ? null, pytest-mock
-, which, glibcLocales
+{ lib
+, stdenv
+, attrs
+, buildPythonPackage
+, colorama
+, fetchPypi
+, glibcLocales
+, importlib-metadata
+, pyperclip
+, pytest-mock
+, pytestCheckHook
+, pythonOlder
+, setuptools-scm
+, typing-extensions
+, vim
+, wcwidth
 }:
+
 buildPythonPackage rec {
   pname = "cmd2";
-  version = "1.5.0";
+  version = "2.1.2";
+
+  disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "701a8c9975c4abc45e5d13906ab149f959f812869106347323a3f89ac0e82a62";
+    sha256 = "25dbb2e9847aaa686a8a21e84e3d101db8b79f5cb992e044fc54210ab8c0ad41";
   };
 
-  LC_ALL="en_US.UTF-8";
-
-  postPatch = lib.optionalString stdenv.isDarwin ''
-    # Fake the impure dependencies pbpaste and pbcopy
-    mkdir bin
-    echo '#!${stdenv.shell}' > bin/pbpaste
-    echo '#!${stdenv.shell}' > bin/pbcopy
-    chmod +x bin/{pbcopy,pbpaste}
-    export PATH=$(realpath bin):$PATH
-  '';
-
-  disabled = !isPy3k;
+  LC_ALL = "en_US.UTF-8";
 
   buildInputs = [
     setuptools-scm
   ];
 
   propagatedBuildInputs = [
+    attrs
     colorama
     pyperclip
-    six
-    pyparsing
     wcwidth
-    attrs
-  ]
-  ++ lib.optionals (pythonOlder "3.5") [contextlib2 typing]
-  ;
+  ] ++ lib.optionals (pythonOlder "3.8") [
+    typing-extensions
+    importlib-metadata
+  ];
 
+  checkInputs = [
+    pytestCheckHook
+    glibcLocales
+    pytest-mock
+    vim
+  ];
 
-  doCheck = !stdenv.isDarwin;
-  # pytest-cov
-  # argcomplete  will generate errors
-  checkInputs= [ pytest mock which vim glibcLocales pytest-mock ]
-        ++ lib.optional (pythonOlder "3.6") [ mock ];
-  checkPhase = ''
-    # test_path_completion_user_expansion might be fixed in the next release
-    py.test -k 'not test_path_completion_user_expansion'
+  postPatch = ''
+    sed -i "/--cov/d" setup.cfg
+  '' + lib.optionalString stdenv.isDarwin ''
+    # Fake the impure dependencies pbpaste and pbcopy
+    mkdir bin
+    echo '#!${stdenv.shell}' > bin/pbpaste
+    echo '#!${stdenv.shell}' > bin/pbcopy
+    chmod +x bin/{pbcopy,pbpaste}
+    export PATH=$(realpath bin):$PATH
   '';
 
+  doCheck = !stdenv.isDarwin;
+
+  pythonImportsCheck = [ "cmd2" ];
+
   meta = with lib; {
     description = "Enhancements for standard library's cmd module";
     homepage = "https://github.com/python-cmd2/cmd2";
+    license = with licenses; [ mit ];
     maintainers = with maintainers; [ teto ];
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/colorlog/default.nix b/nixpkgs/pkgs/development/python-modules/colorlog/default.nix
index 39b64e4faf3e..6abb6ff023ad 100644
--- a/nixpkgs/pkgs/development/python-modules/colorlog/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/colorlog/default.nix
@@ -6,11 +6,11 @@
 
 buildPythonPackage rec {
   pname = "colorlog";
-  version = "5.0.1";
+  version = "6.4.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-8XwBOgaWKwL0RJ7gfP2+ayh98p78LJoVFbSjdvTliOo=";
+    sha256 = "af99440154a01f27c09256760ea3477982bf782721feaa345904e806879df4d8";
   };
 
   checkInputs = [ pytestCheckHook ];
diff --git a/nixpkgs/pkgs/development/python-modules/commoncode/default.nix b/nixpkgs/pkgs/development/python-modules/commoncode/default.nix
index 16d529b17f53..136a638c352c 100644
--- a/nixpkgs/pkgs/development/python-modules/commoncode/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/commoncode/default.nix
@@ -14,11 +14,11 @@
 }:
 buildPythonPackage rec {
   pname = "commoncode";
-  version = "21.6.11";
+  version = "21.8.31";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "d6c8c985746a541913d5bb534c770f2422e5b4ac7a4ef765abc05c287a40ff4b";
+    sha256 = "0e74c61226834393801e921ab125eae3b52361340278fb9a468c5c691d286c32";
   };
 
   dontConfigure = true;
diff --git a/nixpkgs/pkgs/development/python-modules/configargparse/default.nix b/nixpkgs/pkgs/development/python-modules/configargparse/default.nix
index 45ec7364a59a..1bb036b97df5 100644
--- a/nixpkgs/pkgs/development/python-modules/configargparse/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/configargparse/default.nix
@@ -7,13 +7,13 @@
 
 buildPythonPackage rec {
   pname = "configargparse";
-  version = "1.4.1";
+  version = "1.5.2";
 
   src = fetchFromGitHub {
     owner = "bw2";
     repo = "ConfigArgParse";
-    rev = "v${version}";
-    sha256 = "sha256-hzhjrdrXxjksvbHlTnQVsT350g0yuG1F21fElv6bLSA=";
+    rev = version;
+    sha256 = "1hgd0gfxycfnlddwsr8sl6ybxzp8rqhin16vphbl8q32wp5hhjd2";
   };
 
   checkInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/configparser/default.nix b/nixpkgs/pkgs/development/python-modules/configparser/default.nix
index a939f6623c9c..3eeae353d115 100644
--- a/nixpkgs/pkgs/development/python-modules/configparser/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/configparser/default.nix
@@ -1,6 +1,4 @@
-{ lib, stdenv, buildPythonPackage, fetchPypi, setuptools-scm
-, toml
-}:
+{ lib, stdenv, buildPythonPackage, fetchPypi, setuptools-scm }:
 
 buildPythonPackage rec {
   pname = "configparser";
@@ -14,7 +12,7 @@ buildPythonPackage rec {
   # No tests available
   doCheck = false;
 
-  nativeBuildInputs = [ setuptools-scm toml ];
+  nativeBuildInputs = [ setuptools-scm ];
 
   preConfigure = ''
     export LC_ALL=${if stdenv.isDarwin then "en_US" else "C"}.UTF-8
diff --git a/nixpkgs/pkgs/development/python-modules/contextlib2/0.nix b/nixpkgs/pkgs/development/python-modules/contextlib2/0.nix
new file mode 100644
index 000000000000..38d9fb696e28
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/contextlib2/0.nix
@@ -0,0 +1,23 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, unittest2
+}:
+
+buildPythonPackage rec {
+  pname = "contextlib2";
+  version = "0.6.0.post1";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "01f490098c18b19d2bd5bb5dc445b2054d2fa97f09a4280ba2c5f3c394c8162e";
+  };
+
+  checkInputs = [ unittest2 ];
+
+  meta = {
+    description = "Backports and enhancements for the contextlib module";
+    homepage = "https://contextlib2.readthedocs.org/";
+    license = lib.licenses.psfl;
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/contextlib2/default.nix b/nixpkgs/pkgs/development/python-modules/contextlib2/default.nix
index 38d9fb696e28..1387e786e7b7 100644
--- a/nixpkgs/pkgs/development/python-modules/contextlib2/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/contextlib2/default.nix
@@ -6,11 +6,11 @@
 
 buildPythonPackage rec {
   pname = "contextlib2";
-  version = "0.6.0.post1";
+  version = "21.6.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "01f490098c18b19d2bd5bb5dc445b2054d2fa97f09a4280ba2c5f3c394c8162e";
+    sha256 = "ab1e2bfe1d01d968e1b7e8d9023bc51ef3509bba217bb730cee3827e1ee82869";
   };
 
   checkInputs = [ unittest2 ];
diff --git a/nixpkgs/pkgs/development/python-modules/coqpit/default.nix b/nixpkgs/pkgs/development/python-modules/coqpit/default.nix
index a30c727eaa3c..c36e353e3bf2 100644
--- a/nixpkgs/pkgs/development/python-modules/coqpit/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/coqpit/default.nix
@@ -6,14 +6,14 @@
 
 buildPythonPackage rec {
   pname = "coqpit";
-  version = "0.0.13";
+  version = "0.0.14";
   format = "setuptools";
 
   src = fetchFromGitHub {
     owner = "coqui-ai";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-YzCO/i0SMyXRAgiZ8Y97bHHuGFeSF8GqUjvNoHLwXZQ=";
+    sha256 = "041sx7ph8vfx8ivvm6hjj6s83p9lni2agwyrrncqwhcbjy9pbdf1";
   };
 
   checkInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/cryptacular/default.nix b/nixpkgs/pkgs/development/python-modules/cryptacular/default.nix
index dccfddaea1ae..31c0ebace475 100644
--- a/nixpkgs/pkgs/development/python-modules/cryptacular/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/cryptacular/default.nix
@@ -3,11 +3,11 @@
 
 buildPythonPackage rec {
   pname = "cryptacular";
-  version = "1.5.5";
+  version = "1.6.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "fb4d48716e88e4d050255ff0f065f6d437caa358ceef16ba5840c95cece224f9";
+    sha256 = "7b529cb2b8a3c7e5be77921bf1ebc653d4d3a8f791375cc6f971b20db2404176";
   };
 
   buildInputs = [ coverage nose ];
diff --git a/nixpkgs/pkgs/development/python-modules/cryptography/default.nix b/nixpkgs/pkgs/development/python-modules/cryptography/default.nix
index 9b35b5654e26..2fea6e89494d 100644
--- a/nixpkgs/pkgs/development/python-modules/cryptography/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/cryptography/default.nix
@@ -23,18 +23,18 @@
 
 buildPythonPackage rec {
   pname = "cryptography";
-  version = "3.4.7"; # Also update the hash in vectors.nix
+  version = "3.4.8"; # Also update the hash in vectors.nix
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "04x7bhjkglxpllad10821vxddlmxdkd3gjvp35iljmnj2s0xw41x";
+    sha256 = "072awar70cwfd2hnx0pvp1dkc7gw45mbm3wcyddvxz5frva5xk4l";
   };
 
   cargoDeps = rustPlatform.fetchCargoTarball {
     inherit src;
     sourceRoot = "${pname}-${version}/${cargoRoot}";
     name = "${pname}-${version}";
-    sha256 = "1m6smky4nahwlp4hn6yzibrcxlbsw4nx162dsq48vlw8h1lgjl62";
+    sha256 = "01h511h6l4qvjxbaw662m1l84pb4wrhwxmnb3qj6ik13mx2m477m";
   };
 
   cargoRoot = "src/rust";
diff --git a/nixpkgs/pkgs/development/python-modules/cryptography/vectors.nix b/nixpkgs/pkgs/development/python-modules/cryptography/vectors.nix
index 0cb23d53c03c..7602582f8306 100644
--- a/nixpkgs/pkgs/development/python-modules/cryptography/vectors.nix
+++ b/nixpkgs/pkgs/development/python-modules/cryptography/vectors.nix
@@ -7,7 +7,7 @@ buildPythonPackage rec {
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1hh4j88ywil3jf62ppj1blygmdirbqz86pynd9lqfijiaym3mb57";
+    sha256 = "1wl0ynh3lzhc6q59g8mybvijmnp195x7fjxlb3h3sgcraw14312c";
   };
 
   # No tests included
diff --git a/nixpkgs/pkgs/development/python-modules/csvs-to-sqlite/default.nix b/nixpkgs/pkgs/development/python-modules/csvs-to-sqlite/default.nix
deleted file mode 100644
index ea32471f09c5..000000000000
--- a/nixpkgs/pkgs/development/python-modules/csvs-to-sqlite/default.nix
+++ /dev/null
@@ -1,44 +0,0 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, isPy3k
-, click
-, dateparser
-, pandas
-, py-lru-cache
-, six
-, pytestCheckHook
-}:
-
-buildPythonPackage rec {
-  pname = "csvs-to-sqlite";
-  version = "1.2";
-  disabled = !isPy3k;
-
-  src = fetchFromGitHub {
-    owner = "simonw";
-    repo = pname;
-    rev = version;
-    sha256 = "0p99cg76d3s7jxvigh5ad04dzhmr6g62qzzh4i6h7x9aiyvdhvk4";
-  };
-
-  propagatedBuildInputs = [
-    click
-    dateparser
-    pandas
-    py-lru-cache
-    six
-  ];
-
-  checkInputs = [
-    pytestCheckHook
-  ];
-
-  meta = with lib; {
-    description = "Convert CSV files into a SQLite database";
-    homepage = "https://github.com/simonw/csvs-to-sqlite";
-    license = licenses.asl20;
-    maintainers = [ maintainers.costrouc ];
-  };
-
-}
diff --git a/nixpkgs/pkgs/development/python-modules/cucumber-tag-expressions/default.nix b/nixpkgs/pkgs/development/python-modules/cucumber-tag-expressions/default.nix
index 6a2d1b1d31e6..09987ddb3bf2 100644
--- a/nixpkgs/pkgs/development/python-modules/cucumber-tag-expressions/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/cucumber-tag-expressions/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "cucumber-tag-expressions";
-  version = "4.0.0";
+  version = "4.0.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "83ce5fa87d1b37a690106aedf58a12d0d16758f38f73336f2c703e2bfe01d7db";
+    sha256 = "4ef4e0513d4c26d42299ffed010ed5e24125b87fc64de2e74b979d4a84c8f522";
   };
 
   checkInputs = [ pytest pytest-html ];
diff --git a/nixpkgs/pkgs/development/python-modules/cupy/default.nix b/nixpkgs/pkgs/development/python-modules/cupy/default.nix
index 6a072ab8e1a7..c165c9af7a20 100644
--- a/nixpkgs/pkgs/development/python-modules/cupy/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/cupy/default.nix
@@ -7,12 +7,12 @@
 
 buildPythonPackage rec {
   pname = "cupy";
-  version = "8.6.0";
+  version = "9.4.0";
   disabled = !isPy3k;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "f3ed02ba18e38b4f3ed2c324fa08967e6714f59357ccb0b28badd9572e77500b";
+    sha256 = "4402bd33a051e82f6888dab088a8d657714ca6d1e945b513dcc513a95a435bd5";
   };
 
   preConfigure = ''
diff --git a/nixpkgs/pkgs/development/python-modules/cvxopt/default.nix b/nixpkgs/pkgs/development/python-modules/cvxopt/default.nix
index d3cbc94f7153..70c29e1f30be 100644
--- a/nixpkgs/pkgs/development/python-modules/cvxopt/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/cvxopt/default.nix
@@ -17,13 +17,13 @@ assert (!blas.isILP64) && (!lapack.isILP64);
 
 buildPythonPackage rec {
   pname = "cvxopt";
-  version = "1.2.6";
+  version = "1.2.7";
 
   disabled = isPyPy; # hangs at [translation:info]
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "a4c433706fd0ad9d47e7f222773a7f7601766fb8e74b633524b3c3fce29aa73e";
+    sha256 = "3f9db1f4d4e820aaea81d6fc21054c89dc6327c84f935dd5a1eda1af11e1d504";
   };
 
   buildInputs = [ blas lapack ];
diff --git a/nixpkgs/pkgs/development/python-modules/cx_freeze/default.nix b/nixpkgs/pkgs/development/python-modules/cx_freeze/default.nix
index b6edb2ced1f2..42fa8fd8ddca 100644
--- a/nixpkgs/pkgs/development/python-modules/cx_freeze/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/cx_freeze/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "cx_Freeze";
-  version = "6.6";
+  version = "6.7";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "c4af8ad3f7e7d71e291c1dec5d0fb26bbe92df834b098ed35434c901fbd6762f";
+    sha256 = "050f1dd133a04810bd7f38ac7ae3b290054acb2ff4f6e73f7a286266d153495d";
   };
 
   disabled = pythonOlder "3.5";
diff --git a/nixpkgs/pkgs/development/python-modules/cxxfilt/default.nix b/nixpkgs/pkgs/development/python-modules/cxxfilt/default.nix
index 1cc5ad19bda2..117b12145764 100644
--- a/nixpkgs/pkgs/development/python-modules/cxxfilt/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/cxxfilt/default.nix
@@ -6,11 +6,11 @@
 }:
 buildPythonPackage rec {
   pname = "cxxfilt";
-  version = "0.2.2";
+  version = "0.3.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "ef6810e76d16c95c11b96371e2d8eefd1d270ec03f9bcd07590e8dcc2c69e92b";
+    sha256 = "7df6464ba5e8efbf0d8974c0b2c78b32546676f06059a83515dbdfa559b34214";
   };
 
   postPatch = let
diff --git a/nixpkgs/pkgs/development/python-modules/cymem/default.nix b/nixpkgs/pkgs/development/python-modules/cymem/default.nix
index c2de6d82a5bc..d2d010e9b12f 100644
--- a/nixpkgs/pkgs/development/python-modules/cymem/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/cymem/default.nix
@@ -17,7 +17,7 @@ buildPythonPackage rec {
   };
 
   propagatedBuildInputs = [
-   cython
+    cython
   ];
 
   prePatch = ''
@@ -34,6 +34,6 @@ buildPythonPackage rec {
     description = "Cython memory pool for RAII-style memory management";
     homepage = "https://github.com/explosion/cymem";
     license = licenses.mit;
-    maintainers = with maintainers; [ sdll ];
-    };
+    maintainers = with maintainers; [ ];
+  };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/dask-jobqueue/default.nix b/nixpkgs/pkgs/development/python-modules/dask-jobqueue/default.nix
index 7719842fbad6..5e43a8f16648 100644
--- a/nixpkgs/pkgs/development/python-modules/dask-jobqueue/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/dask-jobqueue/default.nix
@@ -8,12 +8,12 @@
 }:
 
 buildPythonPackage rec {
-  version = "0.7.2";
+  version = "0.7.3";
   pname = "dask-jobqueue";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1767f4146b2663d9d2eaef62b882a86e1df0bccdb8ae68ae3e5e546aa6796d35";
+    sha256 = "682d7cc0e6b319b6ab83a7a898680c12e9c77ddc77df380b40041290f55d4e79";
   };
 
   checkInputs = [ pytest ];
diff --git a/nixpkgs/pkgs/development/python-modules/dask-xgboost/default.nix b/nixpkgs/pkgs/development/python-modules/dask-xgboost/default.nix
index eb18ac31fd03..1f9be870c975 100644
--- a/nixpkgs/pkgs/development/python-modules/dask-xgboost/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/dask-xgboost/default.nix
@@ -7,12 +7,12 @@
 }:
 
 buildPythonPackage rec {
-  version = "0.1.11";
+  version = "0.2.0";
   pname = "dask-xgboost";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "3fbe1bf4344dc74edfbe9f928c7e3e6acc26dc57cefd8da8ae56a15469c6941c";
+    sha256 = "6d9c491dc4099f74a0df66c4d439d296c0f1fba97009fe93e21b2350f295b4ca";
   };
 
   propagatedBuildInputs = [ xgboost dask distributed ];
diff --git a/nixpkgs/pkgs/development/python-modules/dask/default.nix b/nixpkgs/pkgs/development/python-modules/dask/default.nix
index 208856490b86..7850861486c3 100644
--- a/nixpkgs/pkgs/development/python-modules/dask/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/dask/default.nix
@@ -2,44 +2,51 @@
 , stdenv
 , bokeh
 , buildPythonPackage
+, cloudpickle
+, distributed
 , fetchFromGitHub
 , fsspec
-, pytestCheckHook
-, pytest-rerunfailures
-, pythonOlder
-, cloudpickle
+, jinja2
 , numpy
-, toolz
-, dill
+, packaging
 , pandas
 , partd
+, pytest-rerunfailures
 , pytest-xdist
+, pytestCheckHook
+, pythonOlder
+, pyyaml
+, toolz
 , withExtraComplete ? false
-, distributed
 }:
 
 buildPythonPackage rec {
   pname = "dask";
-  version = "2021.06.2";
-  disabled = pythonOlder "3.5";
+  version = "2021.09.0";
+  format = "setuptools";
+
+  disabled = pythonOlder "3.7";
 
   src = fetchFromGitHub {
     owner = "dask";
     repo = pname;
     rev = version;
-    sha256 = "sha256-qvfjdijzlqaJQrDztRAVr5PudTaVd3WOTBid2ElZQgg=";
+    sha256 = "sha256-Gb6eQ5Hebx3mBNGvgB5yvM4dPsIxJl9ka++yYC/Zf7Q=";
   };
 
   propagatedBuildInputs = [
-    bokeh
     cloudpickle
-    dill
     fsspec
-    numpy
-    pandas
+    packaging
     partd
+    pyyaml
     toolz
-  ] ++ lib.optionals withExtraComplete [
+    pandas
+    jinja2
+    bokeh
+    numpy
+  ] ++ lib.optionals (withExtraComplete) [
+    # infinite recursion between distributed and dask
     distributed
   ];
 
@@ -63,7 +70,11 @@ buildPythonPackage rec {
   '';
 
   pytestFlagsArray = [
-    "-n $NIX_BUILD_CORES"
+    # parallelize
+    "--numprocesses auto"
+    # rerun failed tests up to three times
+    "--reruns 3"
+    # don't run tests that require network access
     "-m 'not network'"
   ];
 
@@ -81,7 +92,16 @@ buildPythonPackage rec {
 
   __darwinAllowLocalNetworking = true;
 
-  pythonImportsCheck = [ "dask.dataframe" "dask" "dask.array" ];
+  pythonImportsCheck = [
+    "dask"
+    "dask.array"
+    "dask.bag"
+    "dask.bytes"
+    "dask.dataframe"
+    "dask.dataframe.io"
+    "dask.dataframe.tseries"
+    "dask.diagnostics"
+  ];
 
   meta = with lib; {
     description = "Minimal task scheduling abstraction";
diff --git a/nixpkgs/pkgs/development/python-modules/databricks-connect/default.nix b/nixpkgs/pkgs/development/python-modules/databricks-connect/default.nix
index 06a5b227d29a..38095ea009df 100644
--- a/nixpkgs/pkgs/development/python-modules/databricks-connect/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/databricks-connect/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "databricks-connect";
-  version = "8.1.12";
+  version = "8.1.13";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "84e2db897731461a1d6bccd17923c7e8cd0f2512df018287b62fea55fd61891d";
+    sha256 = "2833679bccd507e3eac9ec931cfae85c8070a78ad1286159475b7d3b79a40dc2";
   };
 
   sourceRoot = ".";
diff --git a/nixpkgs/pkgs/development/python-modules/dataclasses-json/default.nix b/nixpkgs/pkgs/development/python-modules/dataclasses-json/default.nix
index bfb179f035dc..196d3b913776 100644
--- a/nixpkgs/pkgs/development/python-modules/dataclasses-json/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/dataclasses-json/default.nix
@@ -10,13 +10,13 @@
 
 buildPythonPackage rec {
   pname = "dataclasses-json";
-  version = "0.5.5";
+  version = "0.5.6";
 
   src = fetchFromGitHub {
     owner = "lidatong";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-b8oWl8AteVuGYb4E+M9aDS2ERgnKN8wS17Y/Bs7ajcI=";
+    sha256 = "09253p0zjqfaqap7jgfgjl1jswwnz7mb6x7dqix09id92mnb89mf";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/dateutils/default.nix b/nixpkgs/pkgs/development/python-modules/dateutils/default.nix
new file mode 100644
index 000000000000..faa3b1155483
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/dateutils/default.nix
@@ -0,0 +1,25 @@
+{ lib, buildPythonPackage, fetchPypi, python-dateutil, pytz }:
+
+buildPythonPackage rec {
+  pname = "dateutils";
+  version = "0.6.12";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "sha256-A92QvLIVQb1OtLATY35PG1+USIHEbMbktnpgWeNw4/E=";
+  };
+
+  propagatedBuildInputs = [
+    python-dateutil
+    pytz
+  ];
+
+  pythonImportsCheck = [ "dateutils" ];
+
+  meta = with lib; {
+    description = "Utilities for working with datetime objects.";
+    homepage = "https://github.com/jmcantrell/python-dateutils";
+    license = licenses.bsd0;
+    maintainers = with maintainers; [ SuperSandro2000 ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/debtcollector/default.nix b/nixpkgs/pkgs/development/python-modules/debtcollector/default.nix
index 75555569e235..df3d78394605 100644
--- a/nixpkgs/pkgs/development/python-modules/debtcollector/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/debtcollector/default.nix
@@ -17,7 +17,7 @@ buildPythonPackage rec {
   doCheck = false;
 
   passthru.tests = {
-    pytest = callPackage ./tests.nix { };
+    tests = callPackage ./tests.nix { };
   };
 
   pythonImportsCheck = [ "debtcollector" ];
diff --git a/nixpkgs/pkgs/development/python-modules/debugpy/default.nix b/nixpkgs/pkgs/development/python-modules/debugpy/default.nix
index 10ed4c62e764..4392a3c2ecf4 100644
--- a/nixpkgs/pkgs/development/python-modules/debugpy/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/debugpy/default.nix
@@ -62,7 +62,7 @@ buildPythonPackage rec {
       "x86_64-darwin"  = "-std=c++11 -lc -D_REENTRANT -dynamiclib -arch x86_64 -o attach_x86_64.dylib";
       "i686-darwin"    = "-std=c++11 -lc -D_REENTRANT -dynamiclib -arch i386 -o attach_x86.dylib";
       "aarch64-darwin" = "-std=c++11 -lc -D_REENTRANT -dynamiclib -arch arm64 -o attach_arm64.dylib";
-    }.${stdenv.hostPlatform.system}}
+    }.${stdenv.hostPlatform.system} or (throw "Unsupported system: ${stdenv.hostPlatform.system}")}
   )'';
 
   checkInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/decorator/4.nix b/nixpkgs/pkgs/development/python-modules/decorator/4.nix
new file mode 100644
index 000000000000..8e8fd28f0b54
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/decorator/4.nix
@@ -0,0 +1,21 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+}:
+
+buildPythonPackage rec {
+  pname = "decorator";
+  version = "4.4.2";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1rxzhk5zwiggk45hl53zydvy70lk654kg0nc1p54090p402jz9p3";
+  };
+
+  meta = with lib; {
+    homepage = "https://pypi.python.org/pypi/decorator";
+    description = "Better living through Python with decorators";
+    license = lib.licenses.mit;
+    maintainers = [ maintainers.costrouc ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/decorator/default.nix b/nixpkgs/pkgs/development/python-modules/decorator/default.nix
index 8e8fd28f0b54..f8d3f5c9ac61 100644
--- a/nixpkgs/pkgs/development/python-modules/decorator/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/decorator/default.nix
@@ -5,11 +5,11 @@
 
 buildPythonPackage rec {
   pname = "decorator";
-  version = "4.4.2";
+  version = "5.0.9";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1rxzhk5zwiggk45hl53zydvy70lk654kg0nc1p54090p402jz9p3";
+    sha256 = "72ecfba4320a893c53f9706bebb2d55c270c1e51a28789361aa93e4a21319ed5";
   };
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/development/python-modules/deemix/default.nix b/nixpkgs/pkgs/development/python-modules/deemix/default.nix
index 21c39e6d7b87..06b915e814de 100644
--- a/nixpkgs/pkgs/development/python-modules/deemix/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/deemix/default.nix
@@ -12,12 +12,12 @@
 
 buildPythonPackage rec {
   pname = "deemix";
-  version = "3.4.4";
+  version = "3.5.3";
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-HZg2zys92gH1j8WWgrzH3fpxoFDi+LPULmvlkUeB9Fw=";
+    sha256 = "36dc6279f547cc0947daceb568e2b5ac1e274655f642c133e2700c22892163ce";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/deezer-py/default.nix b/nixpkgs/pkgs/development/python-modules/deezer-py/default.nix
index 46a4774e1ca7..12ee63c0fd16 100644
--- a/nixpkgs/pkgs/development/python-modules/deezer-py/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/deezer-py/default.nix
@@ -7,12 +7,12 @@
 
 buildPythonPackage rec {
   pname = "deezer-py";
-  version = "1.1.3";
+  version = "1.2.4";
   disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-FdLSJFALeGcecLAHk9khJTKlMd3Mec/w/PGQOHqxYMQ=";
+    sha256 = "1b5664835975fda7a2519ba4b411cc5f2e4113e614ee140389b61844906d0c05";
   };
 
   propagatedBuildInputs = [ requests ];
diff --git a/nixpkgs/pkgs/development/python-modules/deezer-python/default.nix b/nixpkgs/pkgs/development/python-modules/deezer-python/default.nix
index 926dadd031cf..f8c754ebb841 100644
--- a/nixpkgs/pkgs/development/python-modules/deezer-python/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/deezer-python/default.nix
@@ -1,26 +1,27 @@
 { lib
 , buildPythonPackage
 , fetchFromGitHub
+, poetry-core
+, pytest-mock
+, pytest-vcr
+, pytestCheckHook
 , pythonOlder
 , requests
 , tornado
-, poetry-core
-, pytestCheckHook
-, pytest-cov
-, pytest-vcr
 }:
 
 buildPythonPackage rec {
   pname = "deezer-python";
-  version = "2.3.0";
-  disabled = pythonOlder "3.6";
+  version = "2.3.1";
   format = "pyproject";
 
+  disabled = pythonOlder "3.6";
+
   src = fetchFromGitHub {
     owner = "browniebroke";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-pRYC0kJHJ5SKgDdGS1KkQEbv+DkF9oPw/A1GnB0AwfQ=";
+    sha256 = "sha256-0gkPwIz+nZJjxfucy71D0A5CFkhQaW32UH5t1DkuvEs=";
   };
 
   nativeBuildInputs = [
@@ -29,8 +30,8 @@ buildPythonPackage rec {
 
   checkInputs = [
     pytestCheckHook
-    pytest-cov
     pytest-vcr
+    pytest-mock
   ];
 
   propagatedBuildInputs = [
@@ -38,6 +39,13 @@ buildPythonPackage rec {
     tornado
   ];
 
+  postPatch = ''
+    substituteInPlace pyproject.toml \
+      --replace " --cov=deezer" ""
+  '';
+
+  pythonImportsCheck = [ "deezer" ];
+
   meta = with lib; {
     description = "A friendly Python wrapper around the Deezer API";
     homepage = "https://github.com/browniebroke/deezer-python";
diff --git a/nixpkgs/pkgs/development/python-modules/distributed/default.nix b/nixpkgs/pkgs/development/python-modules/distributed/default.nix
index ce0cf13e9a92..777d6d7d7400 100644
--- a/nixpkgs/pkgs/development/python-modules/distributed/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/distributed/default.nix
@@ -19,13 +19,13 @@
 
 buildPythonPackage rec {
   pname = "distributed";
-  version = "2021.6.2";
+  version = "2021.9.0";
   disabled = pythonOlder "3.6";
 
   # get full repository need conftest.py to run tests
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-19ESqGqwSdzvo7If0brqQhKiwD0iwkvVWtONIaf10Ug=";
+    sha256 = "sha256-IiKc0rJYODCtGC9AAOkjbww/VG7PdfrqJ32IHU9xWbo=";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/distro/default.nix b/nixpkgs/pkgs/development/python-modules/distro/default.nix
index 885538de65ce..bf8675af941d 100644
--- a/nixpkgs/pkgs/development/python-modules/distro/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/distro/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "distro";
-  version = "1.5.0";
+  version = "1.6.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0e58756ae38fbd8fc3020d54badb8eae17c5b9dcbed388b17bb55b8a5928df92";
+    sha256 = "83f5e5a09f9c5f68f60173de572930effbcc0287bb84fdc4426cb4168c088424";
   };
 
   # tests are very targeted at individual linux distributions
diff --git a/nixpkgs/pkgs/development/python-modules/django-cacheops/default.nix b/nixpkgs/pkgs/development/python-modules/django-cacheops/default.nix
index c9344d3bd010..58900ac2cbf4 100644
--- a/nixpkgs/pkgs/development/python-modules/django-cacheops/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/django-cacheops/default.nix
@@ -9,11 +9,11 @@
 
 buildPythonPackage rec {
   pname = "django-cacheops";
-  version = "5.1";
+  version = "6.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-1YUc178whzhKH87PqN3bj1UDDu39b98SciW3W8oPmd0=";
+    sha256 = "78e161ebd96a32e28e19ec7da31f2afed9e62a79726b8b5f0ed12dd16c2e5841";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/django/3.nix b/nixpkgs/pkgs/development/python-modules/django/3.nix
index 7ee41a962c73..48ed4d6d0e1c 100644
--- a/nixpkgs/pkgs/development/python-modules/django/3.nix
+++ b/nixpkgs/pkgs/development/python-modules/django/3.nix
@@ -13,13 +13,13 @@
 
 buildPythonPackage rec {
   pname = "Django";
-  version = "3.2.5";
+  version = "3.2.7";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1kam3301jl53vm0mhflwwsqy5d7kb5dksmjanlaj7v7xakm5z81x";
+    sha256 = "95b318319d6997bac3595517101ad9cc83fe5672ac498ba48d1a410f47afecd2";
   };
 
   patches = lib.optional withGdal
diff --git a/nixpkgs/pkgs/development/python-modules/django_environ/default.nix b/nixpkgs/pkgs/development/python-modules/django_environ/default.nix
index 3f01a2b294a1..7c36db1d1187 100644
--- a/nixpkgs/pkgs/development/python-modules/django_environ/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/django_environ/default.nix
@@ -7,11 +7,11 @@
 
 buildPythonPackage rec {
   pname = "django-environ";
-  version = "0.4.5";
+  version = "0.7.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "6c9d87660142608f63ec7d5ce5564c49b603ea8ff25da595fd6098f6dc82afde";
+    sha256 = "b99bd3704221f8b717c8517d8146e53fdee509d9e99056be560060003b92213e";
   };
 
   # The testsuite fails to modify the base environment
diff --git a/nixpkgs/pkgs/development/python-modules/django_taggit/default.nix b/nixpkgs/pkgs/development/python-modules/django_taggit/default.nix
index cbfcc103c5c1..ab908c639a00 100644
--- a/nixpkgs/pkgs/development/python-modules/django_taggit/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/django_taggit/default.nix
@@ -11,12 +11,12 @@
 
 buildPythonPackage rec {
   pname = "django-taggit";
-  version = "1.4.0";
+  version = "1.5.1";
   disabled = !isPy3k;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "b9ed6e94bad0bed3bf062a6be7ee3db117fda02c6419c680d614197364ea018b";
+    sha256 = "e5bb62891f458d55332e36a32e19c08d20142c43f74bc5656c803f8af25c084a";
   };
 
   propagatedBuildInputs = [ isort django ];
diff --git a/nixpkgs/pkgs/development/python-modules/djangorestframework-simplejwt/default.nix b/nixpkgs/pkgs/development/python-modules/djangorestframework-simplejwt/default.nix
index 82ff51fd3821..ad9afabadf2c 100644
--- a/nixpkgs/pkgs/development/python-modules/djangorestframework-simplejwt/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/djangorestframework-simplejwt/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "djangorestframework_simplejwt";
-  version = "4.7.1";
+  version = "4.8.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "c0e9b617da337becb55e67935eb992fad84f861418e7ab5fb3e77a3fd18d4137";
+    sha256 = "153c973c5c154baf566be431de8527c2bd62557fde7373ebcb0f02b73b28e07a";
   };
 
   propagatedBuildInputs = [ django djangorestframework pyjwt ];
diff --git a/nixpkgs/pkgs/development/python-modules/dpath/default.nix b/nixpkgs/pkgs/development/python-modules/dpath/default.nix
index bfbeeaea0070..c9f3d5be6d49 100644
--- a/nixpkgs/pkgs/development/python-modules/dpath/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/dpath/default.nix
@@ -10,13 +10,13 @@
 
 buildPythonPackage rec {
   pname = "dpath";
-  version = "2.0.4";
+  version = "2.0.5";
 
   disabled = isPy27; # uses python3 imports
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0qjaa4sjw0m4b91mm18074wpkhir3xx7s87qwckmzpfb165gk837";
+    sha256 = "0kk7wl15r305496q13ka4r6n2r13j99rrrpy2b4575j704dk4x7g";
   };
 
   # use pytest as nosetests hangs
diff --git a/nixpkgs/pkgs/development/python-modules/dpkt/default.nix b/nixpkgs/pkgs/development/python-modules/dpkt/default.nix
index 74817e60cbcf..a1036e099ea8 100644
--- a/nixpkgs/pkgs/development/python-modules/dpkt/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/dpkt/default.nix
@@ -5,11 +5,11 @@
 
 buildPythonPackage rec {
   pname = "dpkt";
-  version = "1.9.7.1";
+  version = "1.9.7.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "74899d557ec4e337db29cecc80548b23a1205384d30ee407397cfb9ab178e3d4";
+    sha256 = "80f977667ebbad2b5c4f7b7f45ee8bea6622fb71723f68a9a8fe6274520c853b";
   };
 
   # Project has no tests
diff --git a/nixpkgs/pkgs/development/python-modules/dropbox/default.nix b/nixpkgs/pkgs/development/python-modules/dropbox/default.nix
index 91317eb9f093..5b46c8183c81 100644
--- a/nixpkgs/pkgs/development/python-modules/dropbox/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/dropbox/default.nix
@@ -3,11 +3,11 @@
 
 buildPythonPackage rec {
   pname = "dropbox";
-  version = "11.19.0";
+  version = "11.20.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "a56d200c47d7cd19f697e232a616342b224079f43abf4748bc55fb0c1de4346f";
+    sha256 = "1aa351ec8bbb11cf3560e731b81d25f39c7edcb5fa92c06c5d68866cb9f90d54";
   };
 
   postPatch = ''
diff --git a/nixpkgs/pkgs/development/python-modules/einops/default.nix b/nixpkgs/pkgs/development/python-modules/einops/default.nix
new file mode 100644
index 000000000000..34510762abf7
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/einops/default.nix
@@ -0,0 +1,54 @@
+{ lib
+, fetchFromGitHub
+, buildPythonPackage
+, numpy
+, nose
+, nbformat
+, nbconvert
+, jupyter
+, chainer
+, pytorch
+, mxnet
+, tensorflow
+}:
+
+buildPythonPackage rec {
+  pname = "einops";
+  version = "0.3.2";
+
+  src = fetchFromGitHub {
+    owner = "arogozhnikov";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "0ix094cfh6w4bvx6ymp5dpm35y9nkaibcn1y50g6kwdp4f0473y8";
+  };
+
+  checkInputs = [
+    nose
+    numpy
+    # For notebook tests
+    nbformat
+    nbconvert
+    jupyter
+    # For backend tests
+    chainer
+    pytorch
+    mxnet
+    tensorflow
+  ];
+
+  # No CUDA in sandbox
+  EINOPS_SKIP_CUPY = 1;
+
+  checkPhase = ''
+    export HOME=$TMPDIR
+    nosetests -v -w tests
+  '';
+
+  meta = {
+    description = "Flexible and powerful tensor operations for readable and reliable code";
+    homepage = "https://github.com/arogozhnikov/einops";
+    license = lib.licenses.mit;
+    maintainers = with lib.maintainers; [ yl3dy ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/elementpath/default.nix b/nixpkgs/pkgs/development/python-modules/elementpath/default.nix
index 538de4ba7de9..810b5dfedd01 100644
--- a/nixpkgs/pkgs/development/python-modules/elementpath/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/elementpath/default.nix
@@ -5,7 +5,7 @@
 }:
 
 buildPythonPackage rec {
-  version = "2.3.1";
+  version = "2.3.2";
   pname = "elementpath";
 
   disabled = pythonOlder "3.6";
@@ -14,7 +14,7 @@ buildPythonPackage rec {
     owner = "sissaschool";
     repo = "elementpath";
     rev = "v${version}";
-    sha256 = "1imjilhmbw08469irlbr3am5zksbg327n7mznxfixrigq9d65qx6";
+    sha256 = "01h68v077xbcnqn9v52i8d6s6i7ds3zycn3ddn11hc074m4gg3af";
   };
 
   # avoid circular dependency with xmlschema which directly depends on this
diff --git a/nixpkgs/pkgs/development/python-modules/elmax/default.nix b/nixpkgs/pkgs/development/python-modules/elmax/default.nix
index 775050acb0c9..db1ff91ee0eb 100644
--- a/nixpkgs/pkgs/development/python-modules/elmax/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/elmax/default.nix
@@ -12,7 +12,7 @@
 
 buildPythonPackage rec {
   pname = "elmax";
-  version = "0.1.2";
+  version = "0.1.3";
   format = "pyproject";
   disabled = pythonOlder "3.7";
 
@@ -20,7 +20,7 @@ buildPythonPackage rec {
     owner = "home-assistant-ecosystem";
     repo = "python-elmax";
     rev = version;
-    sha256 = "sha256-Aq/OHxOmtUUmBNlFPu892C8AkTX+Ee0oca7D79InPXQ=";
+    sha256 = "sha256-OiVPjWqQw1u0OL6/uYlT+FP2XDh7l3OZyVtQfycHICI=";
   };
 
   nativeBuildInputs = [ poetry-core ];
diff --git a/nixpkgs/pkgs/development/python-modules/emoji/default.nix b/nixpkgs/pkgs/development/python-modules/emoji/default.nix
index 0dabc80b1ca2..2b20c7de4a39 100644
--- a/nixpkgs/pkgs/development/python-modules/emoji/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/emoji/default.nix
@@ -6,13 +6,13 @@
 
 buildPythonPackage rec {
   pname = "emoji";
-  version = "1.4.2";
+  version = "1.5.2";
 
   src = fetchFromGitHub {
     owner = "carpedm20";
     repo = pname;
-    rev = "v.${version}";
-    sha256 = "072m0l1wcbz1jiyc2x5dx0b4ks5zri7m5lhjjy9sgq4qwlqsnr5n";
+    rev = "v${version}";
+    sha256 = "11v8zqz183vpiyg2cp0fghb1hxqsn3yaydm1d97nqd9g2mfy37s1";
   };
 
   checkInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/env-canada/default.nix b/nixpkgs/pkgs/development/python-modules/env-canada/default.nix
index 5ea89392826b..5e9492f90412 100644
--- a/nixpkgs/pkgs/development/python-modules/env-canada/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/env-canada/default.nix
@@ -8,17 +8,18 @@
 , pillow
 , pytestCheckHook
 , python-dateutil
+, voluptuous
 }:
 
 buildPythonPackage rec {
   pname = "env-canada";
-  version = "0.5.0";
+  version = "0.5.13";
 
   src = fetchFromGitHub {
     owner = "michaeldavie";
     repo = "env_canada";
     rev = "v${version}";
-    sha256 = "0dgw2mf760r1y0mq8bcvx6y3bcqpaf8p97rzf7pd0pbwvwrcsj3n";
+    sha256 = "sha256-Z/5YRvHcZgRuSQnaMbNIT93uSYvRzMWpdMy0M7tD2QI=";
   };
 
   propagatedBuildInputs = [
@@ -28,6 +29,7 @@ buildPythonPackage rec {
     lxml
     pillow
     python-dateutil
+    voluptuous
   ];
 
   checkInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/eternalegypt/default.nix b/nixpkgs/pkgs/development/python-modules/eternalegypt/default.nix
new file mode 100644
index 000000000000..c5c7d8a646cf
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/eternalegypt/default.nix
@@ -0,0 +1,39 @@
+{ lib
+, aiohttp
+, attrs
+, buildPythonPackage
+, fetchFromGitHub
+, pythonOlder
+}:
+
+buildPythonPackage rec {
+  pname = "eternalegypt";
+  version = "0.0.13";
+  format = "setuptools";
+
+  disabled = pythonOlder "3.8";
+
+  src = fetchFromGitHub {
+    owner = "amelchio";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "0wi2cqd81irqm873npkqg3mvdrb57idqdsp8qw8h0s7lk0kil1wi";
+  };
+
+  propagatedBuildInputs = [
+    aiohttp
+    attrs
+  ];
+
+  # Project has no tests
+  doCheck = false;
+
+  pythonImportsCheck = [ "eternalegypt" ];
+
+  meta = with lib; {
+    description = "Python API for Netgear LTE modems";
+    homepage = "https://github.com/amelchio/eternalegypt";
+    license = with licenses; [ mit ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/executing/default.nix b/nixpkgs/pkgs/development/python-modules/executing/default.nix
index f0c67f3ae591..8ab6994ac415 100644
--- a/nixpkgs/pkgs/development/python-modules/executing/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/executing/default.nix
@@ -1,6 +1,7 @@
 { lib
 , buildPythonPackage
 , fetchFromGitHub
+, setuptools-scm
 , asttokens
 }:
 
@@ -15,6 +16,10 @@ buildPythonPackage rec {
     sha256 = "1hqx94h6l2wg9sljiaajfay2nr62sqa819w3bxrz8cdki1abdygv";
   };
 
+  nativeBuildInputs = [
+    setuptools-scm
+  ];
+
   preBuild = ''
     export SETUPTOOLS_SCM_PRETEND_VERSION="${version}"
   '';
diff --git a/nixpkgs/pkgs/development/python-modules/extractcode/default.nix b/nixpkgs/pkgs/development/python-modules/extractcode/default.nix
index 28dece127b12..a39205f5aeea 100644
--- a/nixpkgs/pkgs/development/python-modules/extractcode/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/extractcode/default.nix
@@ -11,11 +11,11 @@
 }:
 buildPythonPackage rec {
   pname = "extractcode";
-  version = "21.6.2";
+  version = "21.7.23";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "e665501438fedeb6e75335d880c8913a8cd894fd8adcf9c243eb6d48fad2d01c";
+    sha256 = "58aa16d60cfcbd3695d7ea84a1e30d5ba9fa6f614b2ef4a6d0565b2ac5d4f757";
   };
 
   dontConfigure = true;
diff --git a/nixpkgs/pkgs/development/python-modules/fakeredis/default.nix b/nixpkgs/pkgs/development/python-modules/fakeredis/default.nix
index 98c7922c18f0..919c5a1aebd9 100644
--- a/nixpkgs/pkgs/development/python-modules/fakeredis/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/fakeredis/default.nix
@@ -41,8 +41,8 @@ buildPythonPackage rec {
   ];
 
   disabledTestPaths = [
-    # Missing support for later pytest-asyncio, https://github.com/jamesls/fakeredis/issues/307
-    "test/test_aioredis1.py"
+    # AttributeError: 'AsyncGenerator' object has no attribute XXXX
+    "test/test_aioredis2.py"
   ];
 
   pythonImportsCheck = [ "fakeredis" ];
diff --git a/nixpkgs/pkgs/development/python-modules/faraday-plugins/default.nix b/nixpkgs/pkgs/development/python-modules/faraday-plugins/default.nix
new file mode 100644
index 000000000000..3b6b42a7678e
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/faraday-plugins/default.nix
@@ -0,0 +1,64 @@
+{ lib
+, beautifulsoup4
+, buildPythonPackage
+, click
+, colorama
+, fetchFromGitHub
+, html2text
+, lxml
+, pytestCheckHook
+, python-dateutil
+, pytz
+, requests
+, simplejson
+, tabulate
+}:
+
+buildPythonPackage rec {
+  pname = "faraday-plugins";
+  version = "1.5.3";
+
+  src = fetchFromGitHub {
+    owner = "infobyte";
+    repo = "faraday_plugins";
+    rev = "v${version}";
+    sha256 = "0nyywpsyw7akwdah75s9mz5nz11y1hbynp08pvqifwdw49crih02";
+  };
+
+  propagatedBuildInputs = [
+    beautifulsoup4
+    click
+    colorama
+    html2text
+    lxml
+    python-dateutil
+    pytz
+    requests
+    simplejson
+    tabulate
+  ];
+
+  checkInputs = [
+    pytestCheckHook
+  ];
+
+  disabledTestPaths = [
+    # faraday itself is currently not available
+    "tests/test_report_collection.py"
+  ];
+
+  disabledTests = [
+    # Fail because of missing faraday
+    "test_detect_report"
+    "test_process_report_summary"
+  ];
+
+  pythonImportsCheck = [ "faraday_plugins" ];
+
+  meta = with lib; {
+    description = "Security tools report parsers for Faraday";
+    homepage = "https://github.com/infobyte/faraday_plugins";
+    license = with licenses; [ gpl3Only ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/fastapi/default.nix b/nixpkgs/pkgs/development/python-modules/fastapi/default.nix
index 62aedf1f2117..f068c4cb735e 100644
--- a/nixpkgs/pkgs/development/python-modules/fastapi/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/fastapi/default.nix
@@ -55,8 +55,18 @@ buildPythonPackage rec {
   # ignoring deprecation warnings to avoid test failure from
   # tests/test_tutorial/test_testing/test_tutorial001.py
 
-  pytestFlagsArray = [ "--ignore=tests/test_default_response_class.py" "-W ignore::DeprecationWarning"];
-  disabledTests = [ "test_get_custom_response" ];
+  pytestFlagsArray = [
+    "--ignore=tests/test_default_response_class.py"
+    "-W ignore::DeprecationWarning"
+  ];
+
+  disabledTests = [
+    "test_get_custom_response"
+
+    # Failed: DID NOT RAISE <class 'starlette.websockets.WebSocketDisconnect'>
+    "test_websocket_invalid_data"
+    "test_websocket_no_credentials"
+  ];
 
   meta = with lib; {
     homepage = "https://github.com/tiangolo/fastapi";
diff --git a/nixpkgs/pkgs/development/python-modules/fastavro/default.nix b/nixpkgs/pkgs/development/python-modules/fastavro/default.nix
new file mode 100644
index 000000000000..0bc1246eb326
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/fastavro/default.nix
@@ -0,0 +1,59 @@
+{ buildPythonPackage
+, cython
+, fetchFromGitHub
+, isPy38
+, lib
+, lz4
+, numpy
+, pandas
+, pytestCheckHook
+, python-dateutil
+, python-snappy
+, pythonOlder
+, zstandard
+}:
+
+buildPythonPackage rec {
+  pname = "fastavro";
+  version = "1.4.4";
+
+  disabled = pythonOlder "3.6";
+  src = fetchFromGitHub {
+    owner = pname;
+    repo = pname;
+    rev = version;
+    sha256 = "1sf8nqifwp0cggk59s22ygj3rm1nysa8b91xl8bpv2knqyjy1q32";
+  };
+
+  preBuild = ''
+    export FASTAVRO_USE_CYTHON=1
+  '';
+
+  nativeBuildInputs = [ cython ];
+
+  checkInputs = [
+    lz4
+    numpy
+    pandas
+    pytestCheckHook
+    python-dateutil
+    python-snappy
+    zstandard
+  ];
+
+  # Fails with "AttributeError: module 'fastavro._read_py' has no attribute
+  # 'CYTHON_MODULE'." Doesn't appear to be serious. See https://github.com/fastavro/fastavro/issues/112#issuecomment-387638676.
+  disabledTests = [ "test_cython_python" ];
+
+  # CLI tests are broken on Python 3.8. See https://github.com/fastavro/fastavro/issues/558.
+  disabledTestPaths = lib.optionals isPy38 [ "tests/test_main_cli.py" ];
+
+  pythonImportsCheck = [ "fastavro" ];
+
+  meta = with lib; {
+    description = "Fast read/write of AVRO files";
+    homepage = "https://github.com/fastavro/fastavro";
+    license = licenses.mit;
+    maintainers = with maintainers; [ samuela ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/fastdiff/default.nix b/nixpkgs/pkgs/development/python-modules/fastdiff/default.nix
index b3e27d7a5e81..a790f1623817 100644
--- a/nixpkgs/pkgs/development/python-modules/fastdiff/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/fastdiff/default.nix
@@ -1,30 +1,33 @@
-{ lib, buildPythonPackage, fetchPypi, pytestCheckHook, pytest-benchmark, wasmer }:
+{ stdenv, lib, buildPythonPackage, fetchPypi, wasmer, wasmer-compiler-cranelift, pytestCheckHook, pytest-benchmark }:
 
 buildPythonPackage rec {
   pname = "fastdiff";
-  version = "0.2.0";
+  version = "0.3.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1ai95vjchl4396zjl1b69xfqvn9kn1y7c40d9l0qxdss0pcx6fk2";
+    sha256 = "4dfa09c47832a8c040acda3f1f55fc0ab4d666f0e14e6951e6da78d59acd945a";
   };
 
   postPatch = ''
     substituteInPlace setup.py \
       --replace 'pytest-runner' ""
+    substituteInPlace setup.cfg \
+      --replace "collect_ignore = ['setup.py']" ""
   '';
 
-  propagatedBuildInputs = [ wasmer ];
+  propagatedBuildInputs = [ wasmer wasmer-compiler-cranelift ];
 
   checkInputs = [ pytestCheckHook pytest-benchmark ];
 
   pythonImportsCheck = [ "fastdiff" ];
-  disabledTests = [ "test_native" ];
 
   meta = with lib; {
     description = "A fast native implementation of diff algorithm with a pure Python fallback";
     homepage = "https://github.com/syrusakbary/fastdiff";
     license = licenses.mit;
     maintainers = with maintainers; [ SuperSandro2000 ];
+    # resulting compiled object panics at import
+    broken = stdenv.is32bit;
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/fastimport/default.nix b/nixpkgs/pkgs/development/python-modules/fastimport/default.nix
index fe46405eb3f1..bd5c270d686c 100644
--- a/nixpkgs/pkgs/development/python-modules/fastimport/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/fastimport/default.nix
@@ -7,13 +7,13 @@
 
 buildPythonPackage rec {
   pname = "fastimport";
-  version = "0.9.13";
+  version = "0.9.14";
 
   disabled = pythonOlder "3.5";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "486135a39edb85808fdbbe2c8009197978800a4544fca56cc2074df32e1304f3";
+    sha256 = "6ac99dda4e7b0b3ae831507b6d0094802e6dd95891feafde8cc5c405b6c149ca";
   };
 
   checkPhase = ''
diff --git a/nixpkgs/pkgs/development/python-modules/fastparquet/default.nix b/nixpkgs/pkgs/development/python-modules/fastparquet/default.nix
index 756d08726c11..56fb6a53e14a 100644
--- a/nixpkgs/pkgs/development/python-modules/fastparquet/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/fastparquet/default.nix
@@ -5,7 +5,6 @@
 , numba
 , numpy
 , pandas
-, pytest-runner
 , cramjam
 , fsspec
 , thrift
@@ -14,26 +13,32 @@
 
 buildPythonPackage rec {
   pname = "fastparquet";
-  version = "0.7.0";
+  version = "0.7.1";
 
   src = fetchFromGitHub {
     owner = "dask";
     repo = pname;
     rev = version;
-    hash = "sha256-08hanzRnt6WuMriNNtOd+ZHycr2XBeIRav+5sgvT7Do=";
+    hash = "sha256-xV0AXNZSy4LSrHf11OP/+KDbeDQu8yF1ugX+W4mie1E=";
   };
 
-  nativeBuildInputs = [ pytest-runner ];
+  postPatch = ''
+    substituteInPlace setup.py \
+      --replace "'pytest-runner'," "" \
+      --replace "oldest-supported-numpy" "numpy"
+  '';
+
   propagatedBuildInputs = [ cramjam fsspec numba numpy pandas thrift ];
   checkInputs = [ pytestCheckHook ];
 
   # Workaround https://github.com/NixOS/nixpkgs/issues/123561
   preCheck = ''
     mv fastparquet/test .
-    rm -rf fastparquet
+    rm -r fastparquet
     fastparquet_test="$out"/${python.sitePackages}/fastparquet/test
     ln -s `pwd`/test "$fastparquet_test"
   '';
+
   postCheck = ''
     rm "$fastparquet_test"
   '';
diff --git a/nixpkgs/pkgs/development/python-modules/fe25519/default.nix b/nixpkgs/pkgs/development/python-modules/fe25519/default.nix
index 466de64453f4..89890b8e8cf2 100644
--- a/nixpkgs/pkgs/development/python-modules/fe25519/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/fe25519/default.nix
@@ -10,11 +10,11 @@
 
 buildPythonPackage rec {
   pname = "fe25519";
-  version = "0.2.0";
+  version = "0.3.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1m85qvw9dwxk81mv9k45c9n75pk8wqn70qkinqh56h5zv56vgq24";
+    sha256 = "8819659f19b51713199a75fda5107c93fbb6e2cb4afef3164ce7932b5eb276b9";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/ffmpeg-progress-yield/default.nix b/nixpkgs/pkgs/development/python-modules/ffmpeg-progress-yield/default.nix
index 5d2641970721..4b4d6bdd7fc2 100644
--- a/nixpkgs/pkgs/development/python-modules/ffmpeg-progress-yield/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/ffmpeg-progress-yield/default.nix
@@ -9,11 +9,11 @@
 
 buildPythonPackage rec {
   pname = "ffmpeg-progress-yield";
-  version = "0.0.4";
+  version = "0.1.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "e944093e2c1b213da8fa4f0c276c1bad44e0b8ba8be7e4fd001f5132d16baef5";
+    sha256 = "92ae36ff5cf38428bd3695629b5065d161c658fb0de0faf2c20cd7a99dac3820";
   };
 
   propagatedBuildInputs = [ colorama tqdm ];
diff --git a/nixpkgs/pkgs/development/python-modules/filetype/default.nix b/nixpkgs/pkgs/development/python-modules/filetype/default.nix
index 4bbb6c41f543..2ec3807476d1 100644
--- a/nixpkgs/pkgs/development/python-modules/filetype/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/filetype/default.nix
@@ -6,11 +6,11 @@
 
 buildPythonPackage rec {
   pname = "filetype";
-  version = "1.0.7";
+  version = "1.0.8";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "19vav4w8vvcnrps1mirjkrv4pr1khwn5ma6m5pgpxd4qip73wffs";
+    sha256 = "77df14879b73fd9711b8bd4f465dadf2ecdafff0eac3b22c0bdb0ccba68db316";
   };
 
   checkPhase = ''
diff --git a/nixpkgs/pkgs/development/python-modules/fiona/default.nix b/nixpkgs/pkgs/development/python-modules/fiona/default.nix
index a71e6fbaa7e0..987a8ca6209e 100644
--- a/nixpkgs/pkgs/development/python-modules/fiona/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/fiona/default.nix
@@ -1,16 +1,16 @@
 { stdenv, lib, buildPythonPackage, fetchPypi, isPy3k, pythonOlder
 , attrs, click, cligj, click-plugins, six, munch, enum34
 , pytestCheckHook, boto3, mock, giflib, pytz
-, gdal
-, certifi
+, gdal, certifi
 }:
 
 buildPythonPackage rec {
-  pname = "Fiona";
+  pname = "fiona";
   version = "1.8.20";
 
   src = fetchPypi {
-    inherit pname version;
+    pname = "Fiona";
+    inherit version;
     sha256 = "a70502d2857b82f749c09cb0dea3726787747933a2a1599b5ab787d74e3c143b";
   };
 
@@ -42,11 +42,15 @@ buildPythonPackage rec {
 
   preCheck = ''
     rm -r fiona # prevent importing local fiona
+    # disable gdal deprecation warnings
+    export GDAL_ENABLE_DEPRECATED_DRIVER_GTM=YES
   '';
 
   disabledTests = [
     # Some tests access network, others test packaging
     "http" "https" "wheel"
+    # Assert not true
+    "test_no_append_driver_cannot_append"
   ];
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/development/python-modules/flask-jwt-extended/default.nix b/nixpkgs/pkgs/development/python-modules/flask-jwt-extended/default.nix
index d9eae8ffa585..22be871f745f 100644
--- a/nixpkgs/pkgs/development/python-modules/flask-jwt-extended/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/flask-jwt-extended/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "Flask-JWT-Extended";
-  version = "4.2.3";
+  version = "4.3.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "22b8ffa7587d50aaf65f3009f1d55ef7287da8260eaf4655a5837e33479216c3";
+    sha256 = "6e2b40d548b9dfc6051740c4552c097ac38e514e500c16c682d9a533d17ca418";
   };
 
   propagatedBuildInputs = [ python-dateutil flask pyjwt werkzeug ];
diff --git a/nixpkgs/pkgs/development/python-modules/flask-migrate/default.nix b/nixpkgs/pkgs/development/python-modules/flask-migrate/default.nix
index 26f2ab4aea18..9f70e129ae1a 100644
--- a/nixpkgs/pkgs/development/python-modules/flask-migrate/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/flask-migrate/default.nix
@@ -1,25 +1,51 @@
-{ lib, buildPythonPackage, fetchPypi, isPy3k, glibcLocales, flask, flask_sqlalchemy, flask_script, alembic }:
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, isPy27
+, alembic
+, flask
+, flask_script
+, flask_sqlalchemy
+, python
+}:
 
 buildPythonPackage rec {
   pname = "Flask-Migrate";
-  version = "3.0.1";
+  version = "3.1.0";
+  format = "setuptools";
+  disabled = isPy27;
 
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "00m76kgdkk0w5bfq8hbqszpyaqk0yxdvmz4s67lvd36pc7wfhhjd";
+  src = fetchFromGitHub {
+    owner = "miguelgrinberg";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "0zj7qpknvlhrh4fsp5sx4fwyx3sp41ynclka992zympm3xym9zyq";
   };
 
-  checkInputs = [ flask_script ] ++ lib.optional isPy3k glibcLocales;
-  propagatedBuildInputs = [ flask flask_sqlalchemy alembic ];
+  propagatedBuildInputs = [
+    alembic
+    flask
+    flask_sqlalchemy
+  ];
 
-  # tests invoke the flask cli which uses click and therefore has py3k encoding troubles
-  preCheck = lib.optionalString isPy3k ''
-    export LANG="en_US.UTF-8"
+  pythonImportsCheck = [
+    "flask_migrate"
+  ];
+
+  checkInputs = [
+    flask_script
+  ];
+
+  checkPhase = ''
+    runHook preCheck
+    ${python.interpreter} -m unittest discover
+    runHook postCheck
   '';
 
   meta = with lib; {
     description = "SQLAlchemy database migrations for Flask applications using Alembic";
-    license = licenses.mit;
     homepage = "https://github.com/miguelgrinberg/Flask-Migrate";
+    license = licenses.mit;
+    maintainers = with maintainers; [ ];
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/flipr-api/default.nix b/nixpkgs/pkgs/development/python-modules/flipr-api/default.nix
new file mode 100644
index 000000000000..418c7cf42fef
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/flipr-api/default.nix
@@ -0,0 +1,60 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, fetchpatch
+, poetry-core
+, requests-mock
+, pythonOlder
+, pytest-asyncio
+, pytestCheckHook
+, python-dateutil
+, requests
+}:
+
+buildPythonPackage rec {
+  pname = "flipr-api";
+  version = "1.4.1";
+  format = "pyproject";
+
+  disabled = pythonOlder "3.6";
+
+  src = fetchFromGitHub {
+    owner = "cnico";
+    repo = pname;
+    rev = version;
+    sha256 = "00qkzr2g38fpa7ndnbfx9m4d50lmz0j74nkxif3amnkbl4m6l5vn";
+  };
+
+  nativeBuildInputs = [
+    poetry-core
+  ];
+
+  propagatedBuildInputs = [
+    python-dateutil
+    requests
+  ];
+
+  checkInputs = [
+    requests-mock
+    pytest-asyncio
+    pytestCheckHook
+  ];
+
+  patches = [
+    # Switch to poetry-core, https://github.com/cnico/flipr-api/pull/4
+    (fetchpatch {
+      name = "switch-to-poetry-core.patch";
+      url = "https://github.com/cnico/flipr-api/commit/f14be1dfd4f46d4d43d9ea47e51cafca3cc18e86.patch";
+      sha256 = "1fdi19cq21zcjx4g132k480yhi5y0x5qj2l0h8k5zky5cdxs58r6";
+    })
+  ];
+
+  pythonImportsCheck = [ "flipr_api" ];
+
+  meta = with lib; {
+    description = "Python client for Flipr API";
+    homepage = "https://github.com/cnico/flipr-api";
+    license = licenses.mit;
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/flit-core/default.nix b/nixpkgs/pkgs/development/python-modules/flit-core/default.nix
index a4c6b99b07f4..7b2731595629 100644
--- a/nixpkgs/pkgs/development/python-modules/flit-core/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/flit-core/default.nix
@@ -1,7 +1,7 @@
 { lib
 , buildPythonPackage
+, callPackage
 , flit
-, isPy3k
 , toml
 , pytestCheckHook
 , testpath
@@ -12,6 +12,11 @@ buildPythonPackage rec {
   version = "3.2.0";
   format = "pyproject";
 
+  outputs = [
+    "out"
+    "testsout"
+  ];
+
   inherit (flit) src patches;
 
   preConfigure = ''
@@ -22,19 +27,23 @@ buildPythonPackage rec {
     toml
   ];
 
-  checkInputs = [
-    pytestCheckHook
-    testpath
-  ];
+  postInstall = ''
+    mkdir $testsout
+    cp -R ../tests $testsout/tests
+  '';
+
+  # check in passthru.tests.pytest to escape infinite recursion with setuptools-scm
+  doCheck = false;
 
   passthru.tests = {
     inherit flit;
+    pytest = callPackage ./tests.nix { };
   };
 
-  meta = {
+  meta = with lib; {
     description = "Distribution-building parts of Flit. See flit package for more information";
     homepage = "https://github.com/takluyver/flit";
-    license = lib.licenses.bsd3;
-    maintainers = [ lib.maintainers.fridh ];
+    license = licenses.bsd3;
+    maintainers = with maintainers; [ fridh SuperSandro2000 ];
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/flit-core/tests.nix b/nixpkgs/pkgs/development/python-modules/flit-core/tests.nix
new file mode 100644
index 000000000000..0fd13e80cb12
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/flit-core/tests.nix
@@ -0,0 +1,22 @@
+{ buildPythonPackage
+, flit
+, flit-core
+, pytestCheckHook
+, testpath
+}:
+
+buildPythonPackage rec {
+  pname = "flit-core";
+  inherit (flit-core) version;
+
+  src = flit-core.testsout;
+
+  dontBuild = true;
+  dontInstall = true;
+
+  checkInputs = [
+    flit
+    pytestCheckHook
+    testpath
+  ];
+}
diff --git a/nixpkgs/pkgs/development/python-modules/fountains/default.nix b/nixpkgs/pkgs/development/python-modules/fountains/default.nix
index b706930b3ef3..aec78779a7a4 100644
--- a/nixpkgs/pkgs/development/python-modules/fountains/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/fountains/default.nix
@@ -6,11 +6,11 @@
 
 buildPythonPackage rec {
   pname = "fountains";
-  version = "0.2.1";
+  version = "1.1.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0jk5y099g6ggaq5lwp0jlg4asyhcdxnl3him3ibmzc1k9nnknp30";
+    sha256 = "fbf4e2cb11d60d3bafca5bb7c01c254d08a5541ed7ddfe00ef975eb173fb75a4";
   };
 
   propagatedBuildInputs = [
@@ -19,6 +19,7 @@ buildPythonPackage rec {
 
   # Project has no test
   doCheck = false;
+
   pythonImportsCheck = [ "fountains" ];
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/development/python-modules/fpyutils/default.nix b/nixpkgs/pkgs/development/python-modules/fpyutils/default.nix
index 0120391aee1b..493304428524 100644
--- a/nixpkgs/pkgs/development/python-modules/fpyutils/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/fpyutils/default.nix
@@ -9,14 +9,14 @@
 
 buildPythonPackage rec {
   pname = "fpyutils";
-  version = "2.0.0";
+  version = "2.0.1";
   disabled = pythonOlder "3.5";
 
   src = fetchFromGitHub {
     owner = "frnmst";
     repo = pname;
     rev = version;
-    sha256 = "1n15fvd6191ixxsza49fdd8j43hs0agagg8k9v6rc7by1ffqnl2b";
+    sha256 = "1dksx5ykm7f1bi16wg8kqqqlnc874k3vg9kfjbbbalv8w0g2g2am";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/freetype-py/default.nix b/nixpkgs/pkgs/development/python-modules/freetype-py/default.nix
index b0035e838447..13e033e8bc36 100644
--- a/nixpkgs/pkgs/development/python-modules/freetype-py/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/freetype-py/default.nix
@@ -1,4 +1,12 @@
-{ lib, buildPythonPackage, fetchPypi, substituteAll, stdenv, setuptools-scm, freetype }:
+{ lib
+, stdenv
+, buildPythonPackage
+, fetchPypi
+, substituteAll
+, setuptools-scm
+, freetype
+, pytestCheckHook
+}:
 
 buildPythonPackage rec {
   pname = "freetype-py";
@@ -20,6 +28,14 @@ buildPythonPackage rec {
 
   propagatedBuildInputs = [ freetype ];
 
+  preCheck = ''
+    cd tests
+  '';
+
+  checkInputs = [
+    pytestCheckHook
+  ];
+
   pythonImportsCheck =  [ "freetype" ];
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/development/python-modules/frozendict/default.nix b/nixpkgs/pkgs/development/python-modules/frozendict/default.nix
index e172f3815b7e..4acf53563ded 100644
--- a/nixpkgs/pkgs/development/python-modules/frozendict/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/frozendict/default.nix
@@ -1,16 +1,47 @@
-{ lib, buildPythonPackage, fetchPypi }:
+{ lib
+, buildPythonPackage
+, fetchPypi
+, isPy3k
+, pytestCheckHook
+, setuptoolsBuildHook
+, python
+}:
 
 buildPythonPackage rec {
   pname = "frozendict";
-  version = "1.2";
+  version = "2.0.5";  # 2.0.6 breaks canonicaljson
+  format = "setuptools";
+
+  disabled = !isPy3k;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0ibf1wipidz57giy53dh7mh68f2hz38x8f4wdq88mvxj5pr7jhbp";
+    sha256 = "sha256-wb7hwHDY2fZA4SjluHV2pEAAhgCfeGLRPAv4YA5iE9M=";
   };
 
-  # frozendict does not come with tests
-  doCheck = false;
+  pythonImportsCheck = [
+    "frozendict"
+  ];
+
+  checkInputs = [
+    pytestCheckHook
+  ];
+
+  preCheck = ''
+    rm -r frozendict
+    export PYTHONPATH=$out/${python.sitePackages}:$PYTHONPATH
+  '';
+
+  disabledTests = [
+    # TypeError: unsupported operand type(s) for |=: 'frozendict.frozendict' and 'dict'
+    "test_union"
+  ];
+
+  disabledTestPaths = [
+    # unpackaged test dependency: coold
+    "test/test_coold.py"
+    "test/test_coold_subclass.py"
+  ];
 
   meta = with lib; {
     homepage = "https://github.com/slezica/python-frozendict";
diff --git a/nixpkgs/pkgs/development/python-modules/fsspec/default.nix b/nixpkgs/pkgs/development/python-modules/fsspec/default.nix
index 7b9315c8f8fd..befcde0c2838 100644
--- a/nixpkgs/pkgs/development/python-modules/fsspec/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/fsspec/default.nix
@@ -14,14 +14,14 @@
 
 buildPythonPackage rec {
   pname = "fsspec";
-  version = "2021.07.0";
+  version = "2021.08.1";
   disabled = pythonOlder "3.6";
 
   src = fetchFromGitHub {
     owner = "intake";
     repo = "filesystem_spec";
     rev = version;
-    hash = "sha256-I0oR7qxMCB2egyOx69hY0++H7fzCdK3ZyyzCvP3yXAs=";
+    sha256 = "0xxzcp69div1sy975x82k754snbsksyqr73h6jiasdxj8wka49s0";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/ftfy/default.nix b/nixpkgs/pkgs/development/python-modules/ftfy/default.nix
index 2d3ff1febf5e..5ea93ec179ec 100644
--- a/nixpkgs/pkgs/development/python-modules/ftfy/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/ftfy/default.nix
@@ -33,6 +33,6 @@ buildPythonPackage rec {
     description = "Given Unicode text, make its representation consistent and possibly less broken";
     homepage = "https://github.com/LuminosoInsight/python-ftfy";
     license = licenses.mit;
-    maintainers = with maintainers; [ sdll aborsu ];
+    maintainers = with maintainers; [ aborsu ];
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/furo/default.nix b/nixpkgs/pkgs/development/python-modules/furo/default.nix
index e51661237809..c584ce433287 100644
--- a/nixpkgs/pkgs/development/python-modules/furo/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/furo/default.nix
@@ -8,13 +8,13 @@
 
 buildPythonPackage rec {
   pname = "furo";
-  version = "2021.8.11b42";
+  version = "2021.9.22";
   format = "flit";
   disable = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-rhi2T57EfidQV1IHBkplCbzLlBCC5gVGmbkCf40s0qU=";
+    sha256 = "sha256-749l6cXyGbIarXXJmiCU0DsWQwrvH1dobOGePyT5VK8=";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/gcovr/default.nix b/nixpkgs/pkgs/development/python-modules/gcovr/default.nix
index 1332777189b1..5e9b32048f1f 100644
--- a/nixpkgs/pkgs/development/python-modules/gcovr/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/gcovr/default.nix
@@ -3,20 +3,22 @@
 , fetchPypi
 , jinja2
 , lxml
+, pygments
 }:
 
 buildPythonPackage rec {
   pname = "gcovr";
-  version = "4.2";
+  version = "5.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0gyady7x3v3l9fm1zan0idaggqqcm31y7g5vxk7h05p5h7f39bjs";
+    sha256 = "1d80264cbaadff356b3dda71b8c62b3aa803e5b3eb6d526a24932cd6660a2576";
   };
 
   propagatedBuildInputs = [
     jinja2
     lxml
+    pygments
   ];
 
   # There are no unit tests in the pypi tarball. Most of the unit tests on the
@@ -35,5 +37,4 @@ buildPythonPackage rec {
     license = licenses.bsd0;
     homepage = "https://www.gcovr.com/";
   };
-
 }
diff --git a/nixpkgs/pkgs/development/python-modules/gcsfs/default.nix b/nixpkgs/pkgs/development/python-modules/gcsfs/default.nix
index db063747e8b1..65e18513185a 100644
--- a/nixpkgs/pkgs/development/python-modules/gcsfs/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/gcsfs/default.nix
@@ -17,14 +17,14 @@
 
 buildPythonPackage rec {
   pname = "gcsfs";
-  version = "2021.07.0";
+  version = "2021.08.1";
   disabled = pythonOlder "3.6";
 
   src = fetchFromGitHub {
     owner = "dask";
     repo = pname;
     rev = version;
-    sha256 = "sha256-nC/uyhKKam3W+cOOTBULPeG6Hy2bExWYNOfDs1cPt1Y=";
+    sha256 = "sha256-SPQcSdEEbU791oqkvuwmvyvQ6HglvoWKMi5SdnRcEZI=";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/gdown/default.nix b/nixpkgs/pkgs/development/python-modules/gdown/default.nix
index bbb7c195d902..1528136bc394 100644
--- a/nixpkgs/pkgs/development/python-modules/gdown/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/gdown/default.nix
@@ -10,11 +10,11 @@
 
 buildPythonApplication rec {
   pname = "gdown";
-  version = "3.13.0";
+  version = "3.13.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "d5f9389539673875712beba4936c4ace95d24324953c6f0408a858c534c0bf21";
+    sha256 = "sha256-vh1NKRPk1e5cT3cVj8IrzmpaZ9yY2KtWrTGsCU9KkP4=";
   };
 
   propagatedBuildInputs = [ filelock requests tqdm setuptools six ];
diff --git a/nixpkgs/pkgs/development/python-modules/gensim/default.nix b/nixpkgs/pkgs/development/python-modules/gensim/default.nix
index 8972b356805a..5cf36c15dfad 100644
--- a/nixpkgs/pkgs/development/python-modules/gensim/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/gensim/default.nix
@@ -11,12 +11,12 @@
 
 buildPythonPackage rec {
   pname = "gensim";
-  version = "4.1.0";
+  version = "4.1.2";
   disabled = !isPy3k;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0b09983048a97c7915ab50500bc53eeec438d26366041598709ec156db3eef1f";
+    sha256 = "1932c257de4eccbb64cc40d46e8577a25f5f47b94b96019a969fb36150f11d15";
   };
 
   propagatedBuildInputs = [ smart-open numpy six scipy ];
diff --git a/nixpkgs/pkgs/development/python-modules/geoalchemy2/default.nix b/nixpkgs/pkgs/development/python-modules/geoalchemy2/default.nix
index c4c0f41d8d17..077523bdb482 100644
--- a/nixpkgs/pkgs/development/python-modules/geoalchemy2/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/geoalchemy2/default.nix
@@ -1,31 +1,53 @@
 { lib
 , buildPythonPackage
 , fetchPypi
-, sqlalchemy
-, shapely
+, packaging
 , setuptools-scm
-, pytest
+, shapely
+, sqlalchemy
+, psycopg2
+, pytestCheckHook
 }:
 
 buildPythonPackage rec {
   pname = "GeoAlchemy2";
-  version = "0.9.3";
+  version = "0.9.4";
+  format = "setuptools";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "56f969cf4ad6629ebcde73e807f7dac0a9375c79991b4f93efab191f37737a00";
+    sha256 = "b0e56d4a945bdc0f8fa9edd50ecc912889ea68e0e3558a19160dcb0d5b1b65fc";
   };
 
-  nativeBuildInputs = [ setuptools-scm ];
-  propagatedBuildInputs = [ sqlalchemy shapely ];
+  nativeBuildInputs = [
+    setuptools-scm
+  ];
 
-  # https://github.com/geoalchemy/geoalchemy2/blob/e05a676350b11f0e73609379dae5625c5de2e868/TEST.rst
-  doCheck = false;
+  propagatedBuildInputs = [
+    packaging
+    shapely
+    sqlalchemy
+  ];
+
+  checkInputs = [
+    psycopg2
+    pytestCheckHook
+  ];
+
+  disabledTestPaths = [
+    # tests require live postgis database
+    "tests/gallery/test_decipher_raster.py"
+    "tests/gallery/test_length_at_insert.py"
+    "tests/gallery/test_summarystatsagg.py"
+    "tests/gallery/test_type_decorator.py"
+    "tests/test_functional.py"
+  ];
 
   meta = with lib; {
+    description = "Toolkit for working with spatial databases";
     homepage =  "http://geoalchemy.org/";
     license = licenses.mit;
-    description = "Toolkit for working with spatial databases";
+    maintainers = with maintainers; [ ];
   };
 
 }
diff --git a/nixpkgs/pkgs/development/python-modules/geoip2/default.nix b/nixpkgs/pkgs/development/python-modules/geoip2/default.nix
index 7cb37780a58d..995db0636116 100644
--- a/nixpkgs/pkgs/development/python-modules/geoip2/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/geoip2/default.nix
@@ -8,13 +8,13 @@
 }:
 
 buildPythonPackage rec {
-  version = "4.2.0";
+  version = "4.3.0";
   pname = "geoip2";
   disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "906a1dbf15a179a1af3522970e8420ab15bb3e0afc526942cc179e12146d9c1d";
+    sha256 = "599914784cea08b50fb50c22ed6a59143b5ff2d027ba782d2d5b6f3668293821";
   };
 
   patchPhase = ''
diff --git a/nixpkgs/pkgs/development/python-modules/gevent-websocket/default.nix b/nixpkgs/pkgs/development/python-modules/gevent-websocket/default.nix
index 7ff62a378ca9..24af4416ab3c 100644
--- a/nixpkgs/pkgs/development/python-modules/gevent-websocket/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/gevent-websocket/default.nix
@@ -17,10 +17,16 @@ buildPythonPackage rec {
 
   propagatedBuildInputs = [ gevent gunicorn ];
 
+  # zero tests run
+  doCheck = false;
+
+  pythonImportsCheck = [ "geventwebsocket" ];
+
   meta = with lib; {
     homepage = "https://www.gitlab.com/noppo/gevent-websocket";
     description = "Websocket handler for the gevent pywsgi server, a Python network library";
     license = licenses.asl20;
+    maintainers = with maintainers; [ ];
   };
 
 }
diff --git a/nixpkgs/pkgs/development/python-modules/geventhttpclient/default.nix b/nixpkgs/pkgs/development/python-modules/geventhttpclient/default.nix
index 5563ff94baf5..fd759a0bd723 100644
--- a/nixpkgs/pkgs/development/python-modules/geventhttpclient/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/geventhttpclient/default.nix
@@ -1,32 +1,49 @@
 { lib
 , buildPythonPackage
+, pythonOlder
 , fetchPypi
-, pytest
-, gevent
+, backports_ssl_match_hostname
+, brotli
 , certifi
+, gevent
 , six
-, backports_ssl_match_hostname
-, pythonOlder
+, dpkt
+, pytestCheckHook
 }:
 
 buildPythonPackage rec {
   pname = "geventhttpclient";
-  version = "1.4.5";
+  version = "1.5.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "3f0ab18d84ef26ba0c9df73ae2a41ba30a46072b447f2e36c740400de4a63d44";
+    sha256 = "4aead64253d2769a6528544f7812ce8d71ae13551d079f2d9a3533d72818f2e0";
   };
 
-  buildInputs = [ pytest ];
-  propagatedBuildInputs = [ gevent certifi six ]
-    ++ lib.optionals (pythonOlder "3.7") [ backports_ssl_match_hostname ];
+  propagatedBuildInputs = [
+    brotli
+    certifi
+    gevent
+    six
+  ] ++ lib.optionals (pythonOlder "3.7") [
+    backports_ssl_match_hostname
+  ];
+
+  checkInputs = [
+    dpkt
+    pytestCheckHook
+  ];
 
-  # Several tests fail that require network
-  doCheck = false;
-  checkPhase = ''
-    py.test $out
-  '';
+  disabledTests = [
+    # socket.gaierror: [Errno -2] Name or service not known
+    "test_client_simple"
+    "test_client_without_leading_slas"
+    "test_request_with_headers"
+    "test_response_context_manager"
+    "test_client_ssl"
+    "test_ssl_fail_invalid_certificate"
+    "test_multi_queries_greenlet_safe"
+  ];
 
   meta = with lib; {
     homepage = "https://github.com/gwik/geventhttpclient";
diff --git a/nixpkgs/pkgs/development/python-modules/goalzero/default.nix b/nixpkgs/pkgs/development/python-modules/goalzero/default.nix
index c533af8b7fdc..b2cf6e7eadaf 100644
--- a/nixpkgs/pkgs/development/python-modules/goalzero/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/goalzero/default.nix
@@ -8,13 +8,13 @@
 
 buildPythonPackage rec {
   pname = "goalzero";
-  version = "0.1.59";
+  version = "0.2.0";
 
   disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0d0f11aa31672f3ef4ab617db92c87ef6f143804473022405f6da9d830f17638";
+    sha256 = "6cb67cf772a758225b2e23b394feb697e8cbfb1aff5a2d7a17a0d4ccf61e55cd";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/google-api-python-client/default.nix b/nixpkgs/pkgs/development/python-modules/google-api-python-client/default.nix
index 2fd9247c8825..45d6044b8ea7 100644
--- a/nixpkgs/pkgs/development/python-modules/google-api-python-client/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/google-api-python-client/default.nix
@@ -4,11 +4,11 @@
 
 buildPythonPackage rec {
   pname = "google-api-python-client";
-  version = "2.15.0";
+  version = "2.18.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-g3VIkjKCP0TGARlqlgUF4D7FjJXdtkFcax0ddrRo+Lo=";
+    sha256 = "a25661ec6cf4c159f41fe9c061c2bee31b2dddaf2ad787e23617048a25b53842";
   };
 
   # No tests included in archive
diff --git a/nixpkgs/pkgs/development/python-modules/google-cloud-audit-log/default.nix b/nixpkgs/pkgs/development/python-modules/google-cloud-audit-log/default.nix
index 7d101c32284e..88e2378aaf74 100644
--- a/nixpkgs/pkgs/development/python-modules/google-cloud-audit-log/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/google-cloud-audit-log/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "google-cloud-audit-log";
-  version = "0.1.0";
+  version = "0.1.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "5bf5a53c641b13828154ab21fb209669be69d71cd462f5d6456bf87722fc0eeb";
+    sha256 = "a87fdf3c393b830b35c8f7db09094790d0d7babb35068736bea64e1618d286fe";
   };
 
   propagatedBuildInputs = [ googleapis-common-protos protobuf ];
diff --git a/nixpkgs/pkgs/development/python-modules/google-cloud-bigquery-datatransfer/default.nix b/nixpkgs/pkgs/development/python-modules/google-cloud-bigquery-datatransfer/default.nix
index f6a62c544cf4..62956e1e46de 100644
--- a/nixpkgs/pkgs/development/python-modules/google-cloud-bigquery-datatransfer/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/google-cloud-bigquery-datatransfer/default.nix
@@ -11,11 +11,11 @@
 
 buildPythonPackage rec {
   pname = "google-cloud-bigquery-datatransfer";
-  version = "3.3.1";
+  version = "3.3.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-oCktt8wAYKewz6Ga4mIGVy0IWonXTqQvaO5MT4MkHMY=";
+    sha256 = "fcb71ebe5c5b232d24fe7d666b65709e4fc8db43263c8182e5ed8e5a52abefec";
   };
 
   propagatedBuildInputs = [ google-api-core libcst proto-plus ];
diff --git a/nixpkgs/pkgs/development/python-modules/google-cloud-dns/default.nix b/nixpkgs/pkgs/development/python-modules/google-cloud-dns/default.nix
index be463f6a9633..05b2d954c4b8 100644
--- a/nixpkgs/pkgs/development/python-modules/google-cloud-dns/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/google-cloud-dns/default.nix
@@ -9,11 +9,11 @@
 
 buildPythonPackage rec {
   pname = "google-cloud-dns";
-  version = "0.33.0";
+  version = "0.33.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-iPAJMzxefRjLA0tGUfjAs15ZJvcyBUJB1QCMfMBo96I=";
+    sha256 = "e4aa73fc6ca22764fd7294de19b602dff084d924c77366c136fb9c28e70ae739";
   };
 
   propagatedBuildInputs = [ google-api-core google-cloud-core ];
diff --git a/nixpkgs/pkgs/development/python-modules/google-cloud-firestore/default.nix b/nixpkgs/pkgs/development/python-modules/google-cloud-firestore/default.nix
index 00276d581761..c0ec04b4330f 100644
--- a/nixpkgs/pkgs/development/python-modules/google-cloud-firestore/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/google-cloud-firestore/default.nix
@@ -13,11 +13,11 @@
 
 buildPythonPackage rec {
   pname = "google-cloud-firestore";
-  version = "2.3.1";
+  version = "2.3.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "8f8e513cae105ba17c4d3949091bd816cbf6075c6ac91b1f7acb4d40359f8a5a";
+    sha256 = "6e2eb65ccd75c6579214fb2099cfb98c57b2b4907ccb38a2ed21f00f492b7a50";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/google-cloud-runtimeconfig/default.nix b/nixpkgs/pkgs/development/python-modules/google-cloud-runtimeconfig/default.nix
index 7784b910e188..0da292a342c6 100644
--- a/nixpkgs/pkgs/development/python-modules/google-cloud-runtimeconfig/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/google-cloud-runtimeconfig/default.nix
@@ -9,11 +9,11 @@
 
 buildPythonPackage rec {
   pname = "google-cloud-runtimeconfig";
-  version = "0.32.4";
+  version = "0.32.5";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "ee239455a5393b51018071678ec0f4cc58ddf0904390e9f317f704f158ab16ab";
+    sha256 = "2f7b2a69f4506239a54f2d88dda872db27fdb0fdfa0d5a9494fefb7ae360aa20";
   };
 
   propagatedBuildInputs = [ google-api-core google-cloud-core ];
diff --git a/nixpkgs/pkgs/development/python-modules/google-cloud-secret-manager/default.nix b/nixpkgs/pkgs/development/python-modules/google-cloud-secret-manager/default.nix
index 30174afcbb05..6436fe9d6089 100644
--- a/nixpkgs/pkgs/development/python-modules/google-cloud-secret-manager/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/google-cloud-secret-manager/default.nix
@@ -12,11 +12,11 @@
 
 buildPythonPackage rec {
   pname = "google-cloud-secret-manager";
-  version = "2.7.0";
+  version = "2.7.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-gfNoCfh2ssHgYcQ1kfQedcfhpqsu3x50hdYrm11SKGo=";
+    sha256 = "84ae86a2320425df2e78d981d4ab26bff591ade1b978c18c929188b741a7b37d";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/google-cloud-spanner/default.nix b/nixpkgs/pkgs/development/python-modules/google-cloud-spanner/default.nix
index e84e7cc06dbf..1832978aab31 100644
--- a/nixpkgs/pkgs/development/python-modules/google-cloud-spanner/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/google-cloud-spanner/default.nix
@@ -14,11 +14,11 @@
 
 buildPythonPackage rec {
   pname = "google-cloud-spanner";
-  version = "3.9.0";
+  version = "3.10.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "53fe3d903363fb17db155fd05f5356d9b310a519fbebd53903aa426a31cad706";
+    sha256 = "49b946f9ae67ebae69d39f1f4ceabe88971b880b92277ce037651db49e5cf167";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/google-cloud-speech/default.nix b/nixpkgs/pkgs/development/python-modules/google-cloud-speech/default.nix
index 7c414cc1321f..59d08bd8e5e9 100644
--- a/nixpkgs/pkgs/development/python-modules/google-cloud-speech/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/google-cloud-speech/default.nix
@@ -11,11 +11,11 @@
 
 buildPythonPackage rec {
   pname = "google-cloud-speech";
-  version = "2.8.0";
+  version = "2.9.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "3750fd988082b880ed1ec6f3d59c4f29f4cd0df3804a58d6c151d4bf15d3a597";
+    sha256 = "2368beb60e5cdeb6db527509cdcc8fc1156eddfc0c73da8f62d60658a551eee1";
   };
 
   propagatedBuildInputs = [ libcst google-api-core proto-plus ];
diff --git a/nixpkgs/pkgs/development/python-modules/google-cloud-testutils/default.nix b/nixpkgs/pkgs/development/python-modules/google-cloud-testutils/default.nix
index 05a66406ce02..2c208511ee3f 100644
--- a/nixpkgs/pkgs/development/python-modules/google-cloud-testutils/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/google-cloud-testutils/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "google-cloud-testutils";
-  version = "1.0.0";
+  version = "1.1.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-2RaRhRvgnmr/trjAE+RBlVO5AZ54YEFcoRwcPCKCTKs=";
+    sha256 = "3d79051b6ca170c2a4f159bf56ac3f66c1e5360486121e72c06fdaa3911154bf";
   };
 
   propagatedBuildInputs = [ click google-auth six ];
diff --git a/nixpkgs/pkgs/development/python-modules/google-crc32c/default.nix b/nixpkgs/pkgs/development/python-modules/google-crc32c/default.nix
index b36635654a9d..1e010f956013 100644
--- a/nixpkgs/pkgs/development/python-modules/google-crc32c/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/google-crc32c/default.nix
@@ -2,13 +2,13 @@
 
 buildPythonPackage rec {
   pname = "google-crc32c";
-  version = "1.1.2";
+  version = "1.2.0";
 
   src = fetchFromGitHub {
     owner = "googleapis";
     repo = "python-crc32c";
     rev = "v${version}";
-    sha256 = "058g69yp7x41mv0d84yp31jv64fpm4r25b86rvvqgc6n74w6jj7k";
+    sha256 = "0snpqmj2avgqvfd7w26g03w78s6phwd8h55bvpjwm4lwj8hm8id7";
   };
 
   buildInputs = [ crc32c ];
diff --git a/nixpkgs/pkgs/development/python-modules/google-resumable-media/default.nix b/nixpkgs/pkgs/development/python-modules/google-resumable-media/default.nix
index f29604c9da30..ad5cc9922c06 100644
--- a/nixpkgs/pkgs/development/python-modules/google-resumable-media/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/google-resumable-media/default.nix
@@ -12,11 +12,11 @@
 
 buildPythonPackage rec {
   pname = "google-resumable-media";
-  version = "2.0.2";
+  version = "2.0.3";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "36d682161fdcbfa29681212c210fabecbf6849a505a0cbc54b7f70a10a5278a2";
+    sha256 = "b4b4709d04a6a03cbec746c2b5cb18f1f9878bf1ef3cd61908842a3d94c20471";
   };
 
   propagatedBuildInputs = [ google-auth google-crc32c requests ];
diff --git a/nixpkgs/pkgs/development/python-modules/gradient/default.nix b/nixpkgs/pkgs/development/python-modules/gradient/default.nix
index 57b58699ec38..a0788070a965 100644
--- a/nixpkgs/pkgs/development/python-modules/gradient/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/gradient/default.nix
@@ -22,11 +22,11 @@
 
 buildPythonPackage rec {
   pname = "gradient";
-  version = "1.5.5";
+  version = "1.7.4";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "fee5016afe5e61a640bb9d7e234a10926c17c9e83c876b617438ff5f5ce039ad";
+    sha256 = "de1d33672f13d4de37a66ba9aebfd503a098d0ca26e5eb8b071e1c0dacd557ea";
   };
 
   postPatch = ''
@@ -67,5 +67,8 @@ buildPythonPackage rec {
     license = licenses.isc;
     platforms = platforms.unix;
     maintainers = with maintainers; [ thoughtpolice ];
+    # There is no support for click > 8
+    # https://github.com/Paperspace/gradient-cli/issues/368
+    broken = true;
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/graphql-core/default.nix b/nixpkgs/pkgs/development/python-modules/graphql-core/default.nix
index 7ac25424616a..1909dd99fe0f 100644
--- a/nixpkgs/pkgs/development/python-modules/graphql-core/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/graphql-core/default.nix
@@ -8,14 +8,14 @@
 
 buildPythonPackage rec {
   pname = "graphql-core";
-  version = "3.1.5";
+  version = "3.1.6";
   disabled = pythonOlder "3.6";
 
   src = fetchFromGitHub {
     owner = "graphql-python";
     repo = pname;
     rev = "v${version}";
-    sha256 = "055gfvyax781f4zk4pl60y8yd90bnn4rkqh5i48pczaff0lwlfj1";
+    sha256 = "1ip0yrqmnqncgpwvba18x020gkwr7csiw4zdy6mrdnvwf5qyam4x";
   };
 
   checkInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/green/default.nix b/nixpkgs/pkgs/development/python-modules/green/default.nix
index 934c363245d7..540d3027b94e 100644
--- a/nixpkgs/pkgs/development/python-modules/green/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/green/default.nix
@@ -1,29 +1,40 @@
-{ lib, buildPythonPackage, fetchPypi, isPy3k
+{ lib
+, buildPythonPackage
+, isPy3k
+, fetchPypi
 , colorama
 , coverage
-, termstyle
-, lxml
 , unidecode
+, lxml
 }:
 
 buildPythonPackage rec {
   pname = "green";
-  version = "3.2.6";
+  version = "3.3.0";
 
   disabled = !isPy3k;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "e51d4ff6e6885942d944304fedc7440a8f87917aa09526beeecb31a0dae655b8";
+    sha256 = "a4d86f2dfa4ccbc86f24bcb9c9ab8bf34219c876c24e9f0603aab4dfe73bb575";
   };
 
+  patches = [
+    ./tests.patch
+  ];
+
+  postPatch = ''
+    substituteInPlace green/test/test_integration.py \
+      --subst-var-by green "$out/bin/green"
+  '';
+
   propagatedBuildInputs = [
-    colorama coverage termstyle unidecode lxml
+    colorama coverage unidecode lxml
   ];
 
   # let green run it's own test suite
   checkPhase = ''
-    $out/bin/green green
+    $out/bin/green -tvvv green
   '';
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/development/python-modules/green/tests.patch b/nixpkgs/pkgs/development/python-modules/green/tests.patch
new file mode 100644
index 000000000000..7e1c3be62e3f
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/green/tests.patch
@@ -0,0 +1,22 @@
+diff --git a/green/test/test_integration.py b/green/test/test_integration.py
+index 0cf8cbb..40d9f6b 100644
+--- a/green/test/test_integration.py
++++ b/green/test/test_integration.py
+@@ -41,9 +41,7 @@ class TestFinalizer(unittest.TestCase):
+             )
+             fh.close()
+         args = [
+-            sys.executable,
+-            "-m",
+-            "green.cmdline",
++            "@green@",
+             "--finalizer=test_finalizer0.msg",
+             "--maxtasksperchild=1",
+         ]
+@@ -58,6 +56,5 @@ class TestFinalizer(unittest.TestCase):
+             stdout=subprocess.PIPE,
+             stderr=subprocess.STDOUT,
+             env=env,
+-            timeout=10,
+         ).stdout.decode("utf-8")
+         self.assertIn("finalizer worked", output)
diff --git a/nixpkgs/pkgs/development/python-modules/greenlet/default.nix b/nixpkgs/pkgs/development/python-modules/greenlet/default.nix
index 4d829f3d6473..e997c7da3987 100644
--- a/nixpkgs/pkgs/development/python-modules/greenlet/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/greenlet/default.nix
@@ -9,12 +9,12 @@
 
 buildPythonPackage rec {
   pname = "greenlet";
-  version = "1.1.0";
+  version = "1.1.1";
   disabled = isPyPy;  # builtin for pypy
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "c87df8ae3f01ffb4483c796fe1b15232ce2b219f0b18126948616224d3f658ee";
+    sha256 = "c0f22774cd8294078bdf7392ac73cf00bfa1e5e0ed644bd064fdabc5f2a2f481";
   };
 
   checkPhase = ''
diff --git a/nixpkgs/pkgs/development/python-modules/gssapi/default.nix b/nixpkgs/pkgs/development/python-modules/gssapi/default.nix
index cbb81d3c7f61..ce2ba8d3730f 100644
--- a/nixpkgs/pkgs/development/python-modules/gssapi/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/gssapi/default.nix
@@ -17,14 +17,14 @@
 
 buildPythonPackage rec {
   pname = "gssapi";
-  version = "1.6.14";
+  version = "1.7.0";
   disabled = pythonOlder "3.6";
 
   src = fetchFromGitHub {
     owner = "pythongssapi";
     repo = "python-${pname}";
     rev = "v${version}";
-    sha256 = "sha256-pL8uvHUdev+nDG0nGh7j7VIJCIQv0egPoTa9hUMuEZc=";
+    sha256 = "0ybijgsr4ra7x1w86sva4qljhm54ilm2zv4z0ry1r14kq9hmjfa4";
   };
 
   # It's used to locate headers
diff --git a/nixpkgs/pkgs/development/python-modules/h5py/default.nix b/nixpkgs/pkgs/development/python-modules/h5py/default.nix
index 9e5921bb412d..dfa4288e54fc 100644
--- a/nixpkgs/pkgs/development/python-modules/h5py/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/h5py/default.nix
@@ -8,13 +8,13 @@ let
   mpi = hdf5.mpi;
   mpiSupport = hdf5.mpiSupport;
 in buildPythonPackage rec {
-  version = "3.2.1";
+  version = "3.4.0";
   pname = "h5py";
   disabled = isPy27;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-iUdL6RG/zbNMvw2YuOxItXjCeon9sa5O51E/HvjZJJ4=";
+    sha256 = "ee1c683d91ab010d5e85cb61e8f9e7ee0d8eab545bf3dd50a9618f1d0e8f615e";
   };
 
   # avoid strict pinning of numpy
diff --git a/nixpkgs/pkgs/development/python-modules/hdate/default.nix b/nixpkgs/pkgs/development/python-modules/hdate/default.nix
index 5c8a2c1e9fc5..42736d0a04c2 100644
--- a/nixpkgs/pkgs/development/python-modules/hdate/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/hdate/default.nix
@@ -10,7 +10,7 @@
 
 buildPythonPackage rec {
   pname = "hdate";
-  version = "0.10.3";
+  version = "0.10.4";
   disabled = pythonOlder "3.6";
   format = "pyproject";
 
@@ -18,7 +18,7 @@ buildPythonPackage rec {
     owner = "py-libhdate";
     repo = "py-libhdate";
     rev = "v${version}";
-    sha256 = "sha256-6rOsG6qgq4woBhj25SNWvKshvFLBL/6MJiBZb+NPvdk=";
+    sha256 = "sha256-NF2ZA9ruW7sL2tLY11VAtyPRxGg2o5/mpv3ZsH/Zxb8=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/hdbscan/default.nix b/nixpkgs/pkgs/development/python-modules/hdbscan/default.nix
index bf48d6cf5e76..9fa932c7e418 100644
--- a/nixpkgs/pkgs/development/python-modules/hdbscan/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/hdbscan/default.nix
@@ -44,6 +44,8 @@ buildPythonPackage rec {
     "test_hdbscan_boruvka_balltree_matches"
   ];
 
+  pythonImportsCheck = [ "hdbscan" ];
+
   meta = with lib; {
     description = "Hierarchical Density-Based Spatial Clustering of Applications with Noise, a clustering algorithm with a scikit-learn compatible API";
     homepage =  "https://github.com/scikit-learn-contrib/hdbscan";
diff --git a/nixpkgs/pkgs/development/python-modules/herepy/default.nix b/nixpkgs/pkgs/development/python-modules/herepy/default.nix
index 13454e4e1966..9b1a50a532fa 100644
--- a/nixpkgs/pkgs/development/python-modules/herepy/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/herepy/default.nix
@@ -20,6 +20,11 @@ buildPythonPackage rec {
     sha256 = "sha256-05x3EQoyv38j4UcixN0sf5BI2oTjfasAIQyZqQSjdPM=";
   };
 
+  postPatch = ''
+    substituteInPlace requirements.txt \
+      --replace "requests==2.25.1" "requests>=2.25.1"
+  '';
+
   propagatedBuildInputs = [
     requests
   ];
diff --git a/nixpkgs/pkgs/development/python-modules/hiyapyco/default.nix b/nixpkgs/pkgs/development/python-modules/hiyapyco/default.nix
index f443c58723e8..79693747cfac 100644
--- a/nixpkgs/pkgs/development/python-modules/hiyapyco/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/hiyapyco/default.nix
@@ -6,7 +6,7 @@
 }:
 
 buildPythonPackage rec {
-  pname = "HiYaPyCo";
+  pname = "hiyapyco";
   version = "0.4.16";
 
   src = fetchFromGitHub {
@@ -16,17 +16,29 @@ buildPythonPackage rec {
     sha256 = "1ams9dp05yhgbg6255wrjgchl2mqg0s34d8b8prvql9lsh59s1fj";
   };
 
-  propagatedBuildInputs = [ pyyaml jinja2 ];
+  propagatedBuildInputs = [
+    pyyaml
+    jinja2
+  ];
+
+  postPatch = ''
+    # Should no longer be needed with the next release
+    # https://github.com/zerwes/hiyapyco/pull/42
+    substituteInPlace setup.py \
+      --replace "Jinja2>1,<3" "Jinja2>1"
+  '';
 
   checkPhase = ''
     set -e
     find test -name 'test_*.py' -exec python {} \;
   '';
 
+  pythonImportsCheck = [ "hiyapyco" ];
+
   meta = with lib; {
-    description = "A simple python lib allowing hierarchical overlay of config files in YAML syntax, offering different merge methods and variable interpolation based on jinja2.";
+    description = "Python library allowing hierarchical overlay of config files in YAML syntax";
     homepage = "https://github.com/zerwes/hiyapyco";
-    license = licenses.gpl3;
+    license = licenses.gpl3Plus;
     maintainers = with maintainers; [ veehaitch ];
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/hstspreload/default.nix b/nixpkgs/pkgs/development/python-modules/hstspreload/default.nix
index 7b92aeb269df..ecdfb790ebca 100644
--- a/nixpkgs/pkgs/development/python-modules/hstspreload/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/hstspreload/default.nix
@@ -6,14 +6,14 @@
 
 buildPythonPackage rec {
   pname = "hstspreload";
-  version = "2021.8.1";
+  version = "2021.9.1";
   disabled = isPy27;
 
   src = fetchFromGitHub {
     owner = "sethmlarson";
     repo = pname;
     rev = version;
-    sha256 = "0si22p461qydh874gkidiar89hrfx7lm7r7g6d1qi7lz8wlwcplv";
+    sha256 = "sha256-CZlXnRe4yA6VJF48t73m2PbBRFzg0XTgT7J1N83Ojc4=";
   };
 
   # tests require network connection
diff --git a/nixpkgs/pkgs/development/python-modules/html5-parser/default.nix b/nixpkgs/pkgs/development/python-modules/html5-parser/default.nix
index d20f0a9abfdb..3909c352185f 100644
--- a/nixpkgs/pkgs/development/python-modules/html5-parser/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/html5-parser/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "html5-parser";
-  version = "0.4.9";
+  version = "0.4.10";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "25fe8f6848cbc15187f6748c0695df32bcf1b37df6420b6a01b4ebe1ec1ed48f";
+    sha256 = "f9294418c0da95c2d5facc19d3dc32941093a6b8e3b3e4b36cc7b5a1697fbca4";
   };
 
   nativeBuildInputs = [ pkg-config ];
diff --git a/nixpkgs/pkgs/development/python-modules/httpcore/default.nix b/nixpkgs/pkgs/development/python-modules/httpcore/default.nix
index c6c7b3372140..089c2d9fcc42 100644
--- a/nixpkgs/pkgs/development/python-modules/httpcore/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/httpcore/default.nix
@@ -17,14 +17,14 @@
 
 buildPythonPackage rec {
   pname = "httpcore";
-  version = "0.13.6";
+  version = "0.13.7";
   disabled = pythonOlder "3.6";
 
   src = fetchFromGitHub {
     owner = "encode";
     repo = pname;
     rev = version;
-    sha256 = "sha256-7G7jchOQTgcFSGZfoMPFm0NY9ofg5MM5Xn5lV+W9w8k=";
+    sha256 = "sha256-9hG9MqqEYMT2j7tXafToGYwHbJfp9/klNqZozHSbweE=";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/httpretty/default.nix b/nixpkgs/pkgs/development/python-modules/httpretty/default.nix
index f0c0b9b2ee99..78a529666139 100644
--- a/nixpkgs/pkgs/development/python-modules/httpretty/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/httpretty/default.nix
@@ -19,7 +19,7 @@
 
 buildPythonPackage rec {
   pname = "httpretty";
-  version = "1.1.3";
+  version = "1.1.4";
 
   # drop this for version > 0.9.7
   # Flaky tests: https://github.com/gabrielfalcao/HTTPretty/pull/394
@@ -27,7 +27,7 @@ buildPythonPackage rec {
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "229ade39175ea4324e767f29dc24e5f846fbc72bf80e1a919b2547a6574ff601";
+    sha256 = "20de0e5dd5a18292d36d928cc3d6e52f8b2ac73daec40d41eb62dee154933b68";
   };
 
   propagatedBuildInputs = [ six ];
diff --git a/nixpkgs/pkgs/development/python-modules/httptools/default.nix b/nixpkgs/pkgs/development/python-modules/httptools/default.nix
index 54b512be1fd4..0a5b510b0ad9 100644
--- a/nixpkgs/pkgs/development/python-modules/httptools/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/httptools/default.nix
@@ -6,12 +6,12 @@
 
 buildPythonPackage rec {
   pname = "httptools";
-  version = "0.2.0";
+  version = "0.3.0";
   disabled = isPy27;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "94505026be56652d7a530ab03d89474dc6021019d6b8682281977163b3471ea0";
+    sha256 = "3f9b4856d46ba1f0c850f4e84b264a9a8b4460acb20e865ec00978ad9fbaa4cf";
   };
 
   # tests are not included in pypi tarball
diff --git a/nixpkgs/pkgs/development/python-modules/httpx/default.nix b/nixpkgs/pkgs/development/python-modules/httpx/default.nix
index 6a9300566d59..014272bcc107 100644
--- a/nixpkgs/pkgs/development/python-modules/httpx/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/httpx/default.nix
@@ -4,6 +4,7 @@
 , fetchFromGitHub
 , brotlicffi
 , certifi
+, charset-normalizer
 , h2
 , httpcore
 , rfc3986
@@ -18,19 +19,20 @@
 
 buildPythonPackage rec {
   pname = "httpx";
-  version = "0.18.2";
+  version = "0.19.0";
   disabled = pythonOlder "3.6";
 
   src = fetchFromGitHub {
     owner = "encode";
     repo = pname;
     rev = version;
-    sha256 = "0rr5b6z96yipvp4riqmmbkbcy0sdyzykcdwf5y9ryh27pxr8q8x4";
+    sha256 = "sha256-bUxxeUYqOHBmSL2gPQG5cIq6k5QY4Kyhj9ToA5yZXPA=";
   };
 
   propagatedBuildInputs = [
     brotlicffi
     certifi
+    charset-normalizer
     h2
     httpcore
     rfc3986
diff --git a/nixpkgs/pkgs/development/python-modules/humanize/default.nix b/nixpkgs/pkgs/development/python-modules/humanize/default.nix
index 4c5bd0e3af25..85ec6257ea5d 100644
--- a/nixpkgs/pkgs/development/python-modules/humanize/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/humanize/default.nix
@@ -9,13 +9,13 @@
 }:
 
 buildPythonPackage rec {
-  version = "3.9.0";
+  version = "3.11.0";
   pname = "humanize";
   disabled = isPy27; # setup.py no longer compatible
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "892a5b7b87763c4c6997a58382c2b1f4614048a2e01c23ef1bb0456e6f9d4d5d";
+    sha256 = "4160cdc63fcd0daac27d2e1e218a31bb396fc3fe5712d153675d89432a03778f";
   };
 
   nativeBuildInputs = [ setuptools-scm ];
diff --git a/nixpkgs/pkgs/development/python-modules/hvac/default.nix b/nixpkgs/pkgs/development/python-modules/hvac/default.nix
index 5eaf6f1199eb..c30566a45109 100644
--- a/nixpkgs/pkgs/development/python-modules/hvac/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/hvac/default.nix
@@ -8,11 +8,11 @@
 
 buildPythonPackage rec {
   pname = "hvac";
-  version = "0.11.0";
+  version = "0.11.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "9d5504e35388e665db5086edf75d2425831573c6569bb0bf3c2c6eaff30e034e";
+    sha256 = "f905c59d32d88d3f67571fe5a8a78de4659e04798ad809de439f667247d13626";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/hypothesis/default.nix b/nixpkgs/pkgs/development/python-modules/hypothesis/default.nix
index 35f53864eb9d..4d0a1713d954 100644
--- a/nixpkgs/pkgs/development/python-modules/hypothesis/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/hypothesis/default.nix
@@ -18,14 +18,14 @@ buildPythonPackage rec {
   # If you need these, you can just add them to your environment.
 
   pname = "hypothesis";
-  version = "6.14.0";
+  version = "6.17.3";
 
   # Use github tarballs that includes tests
   src = fetchFromGitHub {
     owner = "HypothesisWorks";
     repo = "hypothesis-python";
     rev = "hypothesis-python-${version}";
-    sha256 = "0yns81j3fnpdfaphk722xcnidqhgy0kmd7ik6aw7l795l0wivhxj";
+    sha256 = "1g96q3l97lq3xps36cv147dvj44nh1b0k67z817x7zfwyw844sgn";
   };
 
   postUnpack = "sourceRoot=$sourceRoot/hypothesis-python";
diff --git a/nixpkgs/pkgs/development/python-modules/hypothesmith/default.nix b/nixpkgs/pkgs/development/python-modules/hypothesmith/default.nix
index 4bf1ca8d02f7..0d175989271c 100644
--- a/nixpkgs/pkgs/development/python-modules/hypothesmith/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/hypothesmith/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "hypothesmith";
-  version = "0.1.8";
+  version = "0.1.9";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-+f8EexXE7TEs49pX6idXD4bWtTzhKvnyXlnmV2oAQQo=";
+    sha256 = "039fd6aa0102f89df9df7ad4cff70aa8068678c13c3be2713c92568917317a04";
   };
 
   propagatedBuildInputs = [ hypothesis lark-parser libcst ];
diff --git a/nixpkgs/pkgs/development/python-modules/ibm-cloud-sdk-core/default.nix b/nixpkgs/pkgs/development/python-modules/ibm-cloud-sdk-core/default.nix
index 8e7f4832c254..cc7572499da1 100644
--- a/nixpkgs/pkgs/development/python-modules/ibm-cloud-sdk-core/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/ibm-cloud-sdk-core/default.nix
@@ -1,11 +1,8 @@
 { lib
 , buildPythonPackage
 , fetchPypi
-, codecov
 , pyjwt
-, pylint
 , pytestCheckHook
-, pytest-cov
 , python-dateutil
 , requests
 , responses
@@ -14,30 +11,27 @@
 
 buildPythonPackage rec {
   pname = "ibm-cloud-sdk-core";
-  version = "3.10.0";
+  version = "3.11.3";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "ab9520be99066ec41a24e31ac653c28953adc8fc349f0fa53a598e1802a79cd6";
+    sha256 = "c855d0111dd570f36497cdb8c11510ae8d14fb70698f20529e19f88485266233";
   };
 
-  checkInputs = [
-    codecov
-    pylint
-    pytestCheckHook
-    pytest-cov
-    responses
-    tox
-  ];
-
   propagatedBuildInputs = [
     pyjwt
     python-dateutil
     requests
   ];
 
-  # Various tests try to access credential files which are not included with the source distribution
+  checkInputs = [
+    pytestCheckHook
+    responses
+    tox
+  ];
+
   disabledTests = [
+    # Various tests try to access credential files which are not included with the source distribution
     "test_configure_service"
     "test_cp4d_authenticator"
     "test_cwd"
@@ -49,6 +43,12 @@ buildPythonPackage rec {
     "test_iam"
     "test_read_external_sources_2"
     "test_retry_config_external"
+    # assertion error due to requests brotli support
+    "test_http_client"
+  ];
+
+  disabledTestPaths = [
+    "test/test_container_token_manager.py"
   ];
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/development/python-modules/ibm-watson/default.nix b/nixpkgs/pkgs/development/python-modules/ibm-watson/default.nix
index 49e4541143e9..a0c12758069b 100644
--- a/nixpkgs/pkgs/development/python-modules/ibm-watson/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/ibm-watson/default.nix
@@ -14,13 +14,13 @@
 
 buildPythonPackage rec {
   pname = "ibm-watson";
-  version = "5.2.2";
+  version = "5.3.0";
 
   src = fetchFromGitHub {
     owner = "watson-developer-cloud";
     repo = "python-sdk";
     rev = "v${version}";
-    sha256 = "sha256-bK6lcTKAVwAJDb5LqKRWR/4wcOKx7bRwWYC+WB5qJE4=";
+    sha256 = "0g63h7rf0710bxcsr115857bvz69sl2g5d13k5a7qi7hjh33bxrk";
   };
 
   checkInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/identify/default.nix b/nixpkgs/pkgs/development/python-modules/identify/default.nix
index 8146d47c7b25..409653dec52a 100644
--- a/nixpkgs/pkgs/development/python-modules/identify/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/identify/default.nix
@@ -7,14 +7,14 @@
 
 buildPythonPackage rec {
   pname = "identify";
-  version = "2.2.14";
+  version = "2.2.15";
 
 
   src = fetchFromGitHub {
     owner = "pre-commit";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-hQpI69jBEtKYQuB+lx4oF2Ud77IajlAPYWl8IxtSTNo=";
+    sha256 = "sha256-mr778CszspTuKSPwXBDaehCMqbfkNFgAVzpkn7seVoU=";
   };
 
   checkInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/imageio-ffmpeg/default.nix b/nixpkgs/pkgs/development/python-modules/imageio-ffmpeg/default.nix
index 9d1755d81b97..a249b2dbfe19 100644
--- a/nixpkgs/pkgs/development/python-modules/imageio-ffmpeg/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/imageio-ffmpeg/default.nix
@@ -9,13 +9,13 @@
 
 buildPythonPackage rec {
   pname = "imageio-ffmpeg";
-  version = "0.4.4";
+  version = "0.4.5";
 
   disabled = !isPy3k;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "73640a7a54f95e607addd637c766d56be31d975a64ddb97d14df012575ef1a5d";
+    sha256 = "f2ea4245a2adad25dedf98d343159579167e549ac8c4691cef5eff980e20c139";
   };
 
   patches = [
diff --git a/nixpkgs/pkgs/development/python-modules/imap-tools/default.nix b/nixpkgs/pkgs/development/python-modules/imap-tools/default.nix
index d1cecdda42d9..392663e391d1 100644
--- a/nixpkgs/pkgs/development/python-modules/imap-tools/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/imap-tools/default.nix
@@ -7,7 +7,7 @@
 
 buildPythonPackage rec {
   pname = "imap-tools";
-  version = "0.44.0";
+  version = "0.48.1";
 
   disabled = isPy27;
 
@@ -15,7 +15,7 @@ buildPythonPackage rec {
     owner = "ikvk";
     repo = "imap_tools";
     rev = "v${version}";
-    sha256 = "sha256-C9396yRSowaLe3E1s+rw8bah77znjfoIhLwJpcqhN6Y=";
+    sha256 = "sha256-AS407jsDk+dAz1DPM44vTUQEleohr9xKnjgCw5Rjs9M=";
   };
 
   checkInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/imdbpy/default.nix b/nixpkgs/pkgs/development/python-modules/imdbpy/default.nix
index dea62f080093..ab4d2a5ce0c1 100644
--- a/nixpkgs/pkgs/development/python-modules/imdbpy/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/imdbpy/default.nix
@@ -1,25 +1,34 @@
-{ lib, buildPythonPackage, fetchPypi, lxml, sqlalchemy }:
+{ lib
+, buildPythonPackage
+, fetchPypi
+, lxml
+, sqlalchemy
+}:
 
 buildPythonPackage rec {
-  pname = "IMDbPY";
-  version = "2020.9.25";
+  pname = "imdbpy";
+  version = "2021.4.18";
 
   src = fetchPypi {
-    inherit pname version;
-    sha256 = "1p3j9j1jcgbw4626cvgpryhvczy9gzlg0laz6lflgq17m129gin2";
+    pname = "IMDbPY";
+    inherit version;
+    sha256 = "af57f03638ba3b8ab3d696bfef0eeaf6414385c85f09260aba0a16b32174853f";
   };
 
-  patches = [ ./sql_error.patch ]; # Already fixed in master, but not yet in the current release. This can be removed upon the next version update
+  propagatedBuildInputs = [
+    lxml
+    sqlalchemy
+  ];
 
-  propagatedBuildInputs = [ lxml sqlalchemy ];
+  # Tests require networking, and https://github.com/alberanid/imdbpy/issues/240
+  doCheck = false;
 
-  doCheck = false; # Tests require networking, and https://github.com/alberanid/imdbpy/issues/240
   pythonImportsCheck = [ "imdb" ];
 
   meta = with lib; {
+    description = "Python package for retrieving and managing the data of the IMDb database";
     homepage = "https://imdbpy.github.io/";
-    description = "A Python package for retrieving and managing the data of the IMDb database";
-    maintainers = [ maintainers.ivar ];
     license = licenses.gpl2Only;
+    maintainers = with maintainers; [ ivar ];
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/imdbpy/sql_error.patch b/nixpkgs/pkgs/development/python-modules/imdbpy/sql_error.patch
deleted file mode 100644
index 10770f4f1135..000000000000
--- a/nixpkgs/pkgs/development/python-modules/imdbpy/sql_error.patch
+++ /dev/null
@@ -1,39 +0,0 @@
-diff --git a/imdb/parser/sql/__init__.py b/imdb/parser/sql/__init__.py
-index cd4a3e3..3fcfdd4 100644
---- a/imdb/parser/sql/__init__.py
-+++ b/imdb/parser/sql/__init__.py
-@@ -557,7 +557,6 @@ class IMDbSqlAccessSystem(IMDbBase):
-     """The class used to access IMDb's data through a SQL database."""
-
-     accessSystem = 'sql'
--    _sql_logger = logging.getLogger('imdbpy.parser.sql')
-
-     def __init__(self, uri, adultSearch=True, *arguments, **keywords):
-         """Initialize the access system."""
-@@ -582,7 +581,7 @@ class IMDbSqlAccessSystem(IMDbBase):
-         except ImportError as e:
-             raise IMDbError('unable to import SQLAlchemy')
-         # Set the connection to the database.
--        self._sql_logger.debug('connecting to %s', uri)
-+        logger.debug('connecting to %s', uri)
-         try:
-             self._connection = setConnection(uri, DB_TABLES)
-         except AssertionError as e:
-@@ -593,7 +592,7 @@ class IMDbSqlAccessSystem(IMDbBase):
-         # Maps some IDs to the corresponding strings.
-         self._kind = {}
-         self._kindRev = {}
--        self._sql_logger.debug('reading constants from the database')
-+        logger.debug('reading constants from the database')
-         try:
-             for kt in KindType.select():
-                 self._kind[kt.id] = kt.kind
-@@ -1616,7 +1615,7 @@ class IMDbSqlAccessSystem(IMDbBase):
-         return
-         if not hasattr(self, '_connection'):
-             return
--        self._sql_logger.debug('closing connection to the database')
-+        logger.debug('closing connection to the database')
-         try:
-             self._connection.close()
-         except:
diff --git a/nixpkgs/pkgs/development/python-modules/iminuit/default.nix b/nixpkgs/pkgs/development/python-modules/iminuit/default.nix
index 42a1d7c4ffdb..306d242d68a3 100644
--- a/nixpkgs/pkgs/development/python-modules/iminuit/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/iminuit/default.nix
@@ -2,12 +2,12 @@
 
 buildPythonPackage rec {
   pname = "iminuit";
-  version = "2.6.1";
+  version = "2.8.3";
   disabled = !isPy3k;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "5fb8786bcad53762648ddacb008d18b49704ba5c011ade240004bfc5a628b4f6";
+    sha256 = "8e22d81a53ce3316f0253bf0b7831bd72ac1122ca78896c2ee2e585178c5c9ae";
   };
 
   nativeBuildInputs = [ cmake ];
diff --git a/nixpkgs/pkgs/development/python-modules/immutabledict/default.nix b/nixpkgs/pkgs/development/python-modules/immutabledict/default.nix
index 54fef8720ca5..b45b852f85fc 100644
--- a/nixpkgs/pkgs/development/python-modules/immutabledict/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/immutabledict/default.nix
@@ -7,22 +7,16 @@
 
 buildPythonPackage rec {
   pname = "immutabledict";
-  version = "2.1.0";
+  version = "2.2.0";
   format = "pyproject";
 
   src = fetchFromGitHub {
     owner = "corenting";
     repo = "immutabledict";
     rev = "v${version}";
-    sha256 = "1n71154nfb6vr41iv00xcwkxmwnn1vwzbr3s23bjvlhvmnjb48a8";
+    sha256 = "sha256-Jf7ad3ImPfEvCBrUZ1NVXMCBqwLmd0hwpKfe9rVsehc=";
   };
 
-  # https://github.com/corenting/immutabledict/issues/56
-  postPatch = ''
-    substituteInPlace pyproject.toml \
-      --replace "poetry.masonry.api" "poetry.core.masonry.api"
-  '';
-
   nativeBuildInputs = [
     poetry-core
   ];
diff --git a/nixpkgs/pkgs/development/python-modules/impacket/default.nix b/nixpkgs/pkgs/development/python-modules/impacket/default.nix
index 71f932ebe958..1c4106babe28 100644
--- a/nixpkgs/pkgs/development/python-modules/impacket/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/impacket/default.nix
@@ -1,4 +1,4 @@
-{ lib, buildPythonPackage, fetchPypi, flask, ldapdomaindump, pycryptodomex, pyasn1, pyopenssl, chardet }:
+{ lib, buildPythonPackage, fetchPypi, flask, ldapdomaindump, pycryptodomex, pyasn1, pyopenssl, chardet, setuptools }:
 
 buildPythonPackage rec {
   pname = "impacket";
@@ -9,7 +9,7 @@ buildPythonPackage rec {
     sha256 = "1c1be8a50cdbe3cffc566ba64f552b1b28bcc79b7a406b833956b49c56d77184";
   };
 
-  propagatedBuildInputs = [ flask ldapdomaindump pycryptodomex pyasn1 pyopenssl chardet ];
+  propagatedBuildInputs = [ flask ldapdomaindump pycryptodomex pyasn1 pyopenssl chardet setuptools ];
 
   # fail with:
   # RecursionError: maximum recursion depth exceeded
diff --git a/nixpkgs/pkgs/development/python-modules/importlib-metadata/default.nix b/nixpkgs/pkgs/development/python-modules/importlib-metadata/default.nix
index d430c4cf29c2..d67a6c947517 100644
--- a/nixpkgs/pkgs/development/python-modules/importlib-metadata/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/importlib-metadata/default.nix
@@ -10,13 +10,13 @@
 
 buildPythonPackage rec {
   pname = "importlib-metadata";
-  version = "4.0.1";
+  version = "4.6.4";
   disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     pname = "importlib_metadata";
     inherit version;
-    sha256 = "sha256-jFARluSfud9d9DgzvbHkMo9khHdj7IpQcDFItzeE1YE=";
+    sha256 = "sha256-ezCnjbKSLXim9H+zBoMVahTzxqpcwj93zIln6astAC8=";
   };
 
   nativeBuildInputs = [ setuptools-scm ];
diff --git a/nixpkgs/pkgs/development/python-modules/importlib-resources/default.nix b/nixpkgs/pkgs/development/python-modules/importlib-resources/default.nix
index 2388fb1b26df..ca361f5b1191 100644
--- a/nixpkgs/pkgs/development/python-modules/importlib-resources/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/importlib-resources/default.nix
@@ -11,12 +11,12 @@
 
 buildPythonPackage rec {
   pname = "importlib-resources";
-  version = "5.1.2";
+  version = "5.2.2";
 
   src = fetchPypi {
     pname = "importlib_resources";
     inherit version;
-    sha256 = "642586fc4740bd1cad7690f836b3321309402b20b332529f25617ff18e8e1370";
+    sha256 = "sha256-pliCpND+X79wInNFa6LOdP5EiSwl5C4FespSa3AqbUs=";
   };
 
   nativeBuildInputs = [ setuptools-scm ];
diff --git a/nixpkgs/pkgs/development/python-modules/in-place/default.nix b/nixpkgs/pkgs/development/python-modules/in-place/default.nix
new file mode 100644
index 000000000000..6490aea35983
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/in-place/default.nix
@@ -0,0 +1,33 @@
+{ buildPythonPackage
+, fetchFromGitHub
+, lib
+, pytestCheckHook
+}:
+
+buildPythonPackage rec {
+  pname = "in-place";
+  version = "0.5.0";
+  format = "pyproject";
+
+  src = fetchFromGitHub {
+    owner = "jwodder";
+    repo = "inplace";
+    rev = "v${version}";
+    sha256 = "1w6q3d0gqz4mxvspd08l1nhsrw6rpzv1gnyj4ckx61b24f84p5gk";
+  };
+
+  postPatch = ''
+    substituteInPlace tox.ini --replace "--cov=in_place --no-cov-on-fail" ""
+  '';
+
+  checkInputs = [ pytestCheckHook ];
+
+  pythonImportsCheck = [ "in_place" ];
+
+  meta = with lib; {
+    description = "In-place file processing";
+    homepage = "https://github.com/jwodder/inplace";
+    license = licenses.mit;
+    maintainers = with maintainers; [ samuela ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/inflect/default.nix b/nixpkgs/pkgs/development/python-modules/inflect/default.nix
index 9081a30ac6be..ca454d432317 100644
--- a/nixpkgs/pkgs/development/python-modules/inflect/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/inflect/default.nix
@@ -3,7 +3,6 @@
 , fetchPypi
 , isPy27
 , setuptools-scm
-, toml
 , pytestCheckHook
 }:
 
@@ -17,7 +16,7 @@ buildPythonPackage rec {
     sha256 = "41a23f6788962e9775e40e2ecfb1d6455d02de315022afeedd3c5dc070019d73";
   };
 
-  nativeBuildInputs = [ setuptools-scm toml ];
+  nativeBuildInputs = [ setuptools-scm ];
 
   checkInputs = [ pytestCheckHook ];
 
diff --git a/nixpkgs/pkgs/development/python-modules/influxdb-client/default.nix b/nixpkgs/pkgs/development/python-modules/influxdb-client/default.nix
index 437c10c3d849..6d2f9f30a4e5 100644
--- a/nixpkgs/pkgs/development/python-modules/influxdb-client/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/influxdb-client/default.nix
@@ -14,14 +14,14 @@
 
 buildPythonPackage rec {
   pname = "influxdb-client";
-  version = "1.20.0";
+  version = "1.21.0";
   disabled = pythonOlder "3.6";
 
   src = fetchFromGitHub {
     owner = "influxdata";
     repo = "influxdb-client-python";
     rev = "v${version}";
-    sha256 = "sha256-VBKGzoLn71BQ5drbdiDjbpfHuYKGqHhuSwq0iNwdfh4=";
+    sha256 = "081pwd3aa7kbgxqcl1hfi2ny4iapnxkcp9ypsfslr69d0khvfc4s";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/inform/default.nix b/nixpkgs/pkgs/development/python-modules/inform/default.nix
index 2397c0bc4db6..9ef6fd1e0a1d 100644
--- a/nixpkgs/pkgs/development/python-modules/inform/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/inform/default.nix
@@ -7,13 +7,13 @@
 
 buildPythonPackage rec {
   pname = "inform";
-  version = "1.24";
+  version = "1.25";
 
   src = fetchFromGitHub {
     owner = "KenKundert";
     repo = "inform";
     rev = "v${version}";
-    sha256 = "114cyff00j9r7qm2ld4w1a4kklr5gx570vk67p56gpr2553dkmly";
+    sha256 = "1r56wmn21c7ggy33548l6dfjswhadkp2iaalfb7xgsxmq7qfcnax";
   };
 
   postPatch = ''
diff --git a/nixpkgs/pkgs/development/python-modules/intake-parquet/default.nix b/nixpkgs/pkgs/development/python-modules/intake-parquet/default.nix
new file mode 100644
index 000000000000..49d5e1ed4b93
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/intake-parquet/default.nix
@@ -0,0 +1,45 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, pythonOlder
+, pandas
+, dask
+, fastparquet
+, pyarrow
+}:
+
+buildPythonPackage rec {
+  pname = "intake-parquet";
+  version = "0.2.3";
+
+  src = fetchFromGitHub {
+    owner = "intake";
+    repo = pname;
+    rev = version;
+    sha256 = "037jd3qkk6dybssp570kzvaln2c6pk2avd2b5mll42gaxdxxnp02";
+  };
+
+  propagatedBuildInputs = [
+    pandas
+    dask
+    fastparquet
+    pyarrow
+  ];
+
+  postPatch = ''
+    # Break circular dependency
+    substituteInPlace requirements.txt \
+      --replace "intake" ""
+  '';
+
+  doCheck = false;
+
+  #pythonImportsCheck = [ "intake_parquet" ];
+
+  meta = with lib; {
+    description = "Parquet plugin for Intake";
+    homepage = "https://github.com/intake/intake-parquet";
+    license = licenses.bsd2;
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/intake/default.nix b/nixpkgs/pkgs/development/python-modules/intake/default.nix
index fff6d74b56a1..361469f540e1 100644
--- a/nixpkgs/pkgs/development/python-modules/intake/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/intake/default.nix
@@ -5,12 +5,14 @@
 , dask
 , holoviews
 , hvplot
+, fsspec
 , jinja2
 , msgpack
 , msgpack-numpy
 , numpy
 , pandas
 , panel
+, intake-parquet
 , pyarrow
 , pytestCheckHook
 , pythonOlder
@@ -23,12 +25,13 @@
 
 buildPythonPackage rec {
   pname = "intake";
-  version = "0.6.2";
+  version = "0.6.3";
+
   disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "b0cab1d185a703acb38eecb9cff3edd5cc7004fe18a36d5e42a8f7fffc9cca1c";
+    sha256 = "f64543353f30d9440b953984f78b7a0954e5756d70c64243609d307ba488014f";
   };
 
   propagatedBuildInputs = [
@@ -49,7 +52,12 @@ buildPythonPackage rec {
     tornado
   ];
 
-  checkInputs = [ pyarrow pytestCheckHook ];
+  checkInputs = [
+    fsspec
+    intake-parquet
+    pyarrow
+    pytestCheckHook
+  ];
 
   postPatch = ''
     # Is in setup_requires but not used in setup.py...
@@ -64,14 +72,12 @@ buildPythonPackage rec {
   '';
 
   disabledTests = [
-    # disable tests which touch network
+    # disable tests which touch network and are broken
     "test_discover"
     "test_filtered_compressed_cache"
     "test_get_dir"
     "test_remote_cat"
     "http"
-
-    # broken test
     "test_read_pattern"
     "test_remote_arr"
   ];
@@ -80,6 +86,6 @@ buildPythonPackage rec {
     description = "Data load and catalog system";
     homepage = "https://github.com/ContinuumIO/intake";
     license = licenses.bsd2;
-    maintainers = [ maintainers.costrouc ];
+    maintainers = with maintainers; [ costrouc ];
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/intensity-normalization/default.nix b/nixpkgs/pkgs/development/python-modules/intensity-normalization/default.nix
new file mode 100644
index 000000000000..d050bd1c8d15
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/intensity-normalization/default.nix
@@ -0,0 +1,54 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, pythonOlder
+, pytestCheckHook
+, matplotlib
+, nibabel
+, numpy
+, scikit-fuzzy
+, scikitimage
+, scikit-learn
+, scipy
+, statsmodels
+}:
+
+buildPythonPackage rec {
+  pname = "intensity-normalization";
+  version = "2.0.1";
+  disabled = pythonOlder "3.6";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1c6inlhpxarvkniq8j5j2pgl32dmggn14s8c3c0xx15j7cg90413";
+  };
+
+  postPatch = ''
+    substituteInPlace setup.cfg --replace "pytest-runner" ""
+  '';
+
+  checkInputs = [ pytestCheckHook ];
+  pythonImportsCheck = [
+    "intensity_normalization"
+    "intensity_normalization.normalize"
+    "intensity_normalization.plot"
+    "intensity_normalization.util"
+  ];
+  propagatedBuildInputs = [
+    matplotlib
+    nibabel
+    numpy
+    scikit-fuzzy
+    scikitimage
+    scikit-learn
+    scipy
+    statsmodels
+  ];
+
+  meta = with lib; {
+    homepage = "https://github.com/jcreinhold/intensity-normalization";
+    description = "MRI intensity normalization tools";
+    maintainers = with maintainers; [ bcdarwin ];
+    license = licenses.asl20;
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/invoke/default.nix b/nixpkgs/pkgs/development/python-modules/invoke/default.nix
index 08d72cec4961..45c341c209cf 100644
--- a/nixpkgs/pkgs/development/python-modules/invoke/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/invoke/default.nix
@@ -6,11 +6,11 @@
 
 buildPythonPackage rec {
   pname = "invoke";
-  version = "1.5.0";
+  version = "1.6.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "f0c560075b5fb29ba14dad44a7185514e94970d1b9d57dcd3723bec5fed92650";
+    sha256 = "374d1e2ecf78981da94bfaf95366216aaec27c2d6a7b7d5818d92da55aa258d3";
   };
 
   patchPhase = ''
diff --git a/nixpkgs/pkgs/development/python-modules/iotawattpy/default.nix b/nixpkgs/pkgs/development/python-modules/iotawattpy/default.nix
new file mode 100644
index 000000000000..7eca486eea0b
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/iotawattpy/default.nix
@@ -0,0 +1,36 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, httpx
+, pythonOlder
+}:
+
+buildPythonPackage rec {
+  pname = "iotawattpy";
+  version = "0.1.0";
+  format = "setuptools";
+
+  disabled = pythonOlder "3.8";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1pyxm87lvd6zy0rx7r9jivk2li267r3xr0b9p6vf0v0vp9fmgsw3";
+  };
+
+  propagatedBuildInputs = [
+    httpx
+  ];
+
+  # Project doesn't tag releases or ship the tests with PyPI
+  # https://github.com/gtdiehl/iotawattpy/issues/14
+  doCheck = false;
+
+  pythonImportsCheck = [ "iotawattpy" ];
+
+  meta = with lib; {
+    description = "Python interface for the IoTaWatt device";
+    homepage = "https://github.com/gtdiehl/iotawattpy";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/ipykernel/default.nix b/nixpkgs/pkgs/development/python-modules/ipykernel/default.nix
index 0d44c406349d..041818900978 100644
--- a/nixpkgs/pkgs/development/python-modules/ipykernel/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/ipykernel/default.nix
@@ -1,56 +1,39 @@
 { lib
 , stdenv
 , buildPythonPackage
+, callPackage
 , fetchPypi
-, flaky
+, debugpy
 , ipython
 , jupyter_client
-, traitlets
 , tornado
+, traitlets
 , pythonOlder
-, pytestCheckHook
-, nose
 }:
 
 buildPythonPackage rec {
   pname = "ipykernel";
-  version = "5.5.5";
+  version = "6.3.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "e976751336b51082a89fc2099fb7f96ef20f535837c398df6eab1283c2070884";
+    sha256 = "5314690a638f893e2cc3bf3d25042920e9fbb873f7d8263033390264caeb95f4";
   };
 
-  propagatedBuildInputs = [ ipython jupyter_client traitlets tornado ];
-
-  checkInputs = [ pytestCheckHook nose flaky ];
-  dontUseSetuptoolsCheck = true;
-  preCheck = ''
-    export HOME=$(mktemp -d)
-  '';
-  disabledTests = lib.optionals stdenv.isDarwin ([
-    # see https://github.com/NixOS/nixpkgs/issues/76197
-    "test_subprocess_print"
-    "test_subprocess_error"
-    "test_ipython_start_kernel_no_userns"
+  propagatedBuildInputs = [
+    debugpy
+    ipython
+    jupyter_client
+    tornado
+    traitlets
+  ];
 
-    # https://github.com/ipython/ipykernel/issues/506
-    "test_unc_paths"
-  ] ++ lib.optionals (pythonOlder "3.8") [
-    # flaky test https://github.com/ipython/ipykernel/issues/485
-    "test_shutdown"
+  # check in passthru.tests.pytest to escape infinite recursion with ipyparallel
+  doCheck = false;
 
-    # test regression https://github.com/ipython/ipykernel/issues/486
-    "test_sys_path_profile_dir"
-    "test_save_history"
-    "test_help_output"
-    "test_write_kernel_spec"
-    "test_ipython_start_kernel_userns"
-    "ZMQDisplayPublisherTests"
-  ]);
-
-  # Some of the tests use localhost networking.
-  __darwinAllowLocalNetworking = true;
+  passthru.tests = {
+    pytest = callPackage ./tests.nix { };
+  };
 
   meta = {
     description = "IPython Kernel for Jupyter";
diff --git a/nixpkgs/pkgs/development/python-modules/ipykernel/tests.nix b/nixpkgs/pkgs/development/python-modules/ipykernel/tests.nix
new file mode 100644
index 000000000000..9375dbc2bfdc
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/ipykernel/tests.nix
@@ -0,0 +1,57 @@
+{ lib
+, stdenv
+, buildPythonPackage
+, pythonOlder
+, flaky
+, ipykernel
+, ipyparallel
+, nose
+, pytestCheckHook
+
+}:
+
+buildPythonPackage rec {
+  pname = "ipykernel-tests";
+  inherit (ipykernel) version;
+
+  src = ipykernel.src;
+
+  dontBuild = true;
+  dontInstall = true;
+
+  checkInputs = [
+    flaky
+    ipykernel
+    ipyparallel
+    nose
+    pytestCheckHook
+  ];
+
+  preCheck = ''
+    export HOME=$(mktemp -d)
+  '';
+
+  disabledTests = lib.optionals stdenv.isDarwin ([
+    # see https://github.com/NixOS/nixpkgs/issues/76197
+    "test_subprocess_print"
+    "test_subprocess_error"
+    "test_ipython_start_kernel_no_userns"
+
+    # https://github.com/ipython/ipykernel/issues/506
+    "test_unc_paths"
+  ] ++ lib.optionals (pythonOlder "3.8") [
+    # flaky test https://github.com/ipython/ipykernel/issues/485
+    "test_shutdown"
+
+    # test regression https://github.com/ipython/ipykernel/issues/486
+    "test_sys_path_profile_dir"
+    "test_save_history"
+    "test_help_output"
+    "test_write_kernel_spec"
+    "test_ipython_start_kernel_userns"
+    "ZMQDisplayPublisherTests"
+  ]);
+
+  # Some of the tests use localhost networking.
+  __darwinAllowLocalNetworking = true;
+}
diff --git a/nixpkgs/pkgs/development/python-modules/ipython/default.nix b/nixpkgs/pkgs/development/python-modules/ipython/default.nix
index e036a3378643..548ba874cd70 100644
--- a/nixpkgs/pkgs/development/python-modules/ipython/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/ipython/default.nix
@@ -23,12 +23,12 @@
 
 buildPythonPackage rec {
   pname = "ipython";
-  version = "7.24.1";
+  version = "7.27.0";
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "9bc24a99f5d19721fb8a2d1408908e9c0520a17fff2233ffe82620847f17f1b6";
+    sha256 = "58b55ebfdfa260dad10d509702dc2857cb25ad82609506b070cf2d7b7df5af13";
   };
 
   prePatch = lib.optionalString stdenv.isDarwin ''
diff --git a/nixpkgs/pkgs/development/python-modules/irc/default.nix b/nixpkgs/pkgs/development/python-modules/irc/default.nix
index 60a960a204c4..423ec4ecf292 100644
--- a/nixpkgs/pkgs/development/python-modules/irc/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/irc/default.nix
@@ -1,6 +1,6 @@
 { lib, buildPythonPackage, fetchPypi, isPy3k
 , six, jaraco_logging, jaraco_text, jaraco_stream, pytz, jaraco_itertools
-, setuptools-scm, jaraco_collections, importlib-metadata, toml
+, setuptools-scm, jaraco_collections, importlib-metadata
 }:
 
 buildPythonPackage rec {
@@ -28,7 +28,6 @@ buildPythonPackage rec {
     pytz
     jaraco_itertools
     jaraco_collections
-    toml
   ];
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/development/python-modules/islpy/default.nix b/nixpkgs/pkgs/development/python-modules/islpy/default.nix
index 736588aa4504..918d8be8e9f1 100644
--- a/nixpkgs/pkgs/development/python-modules/islpy/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/islpy/default.nix
@@ -11,12 +11,12 @@
 
 buildPythonPackage rec {
   pname = "islpy";
-  version = "2020.2.2";
+  version = "2021.1";
   disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "7eb7dfa41d6a67d9ee4ea4bb9f08bdbcbee42b364502136b7882cfd80ff427e0";
+    sha256 = "b3f49de925149dbf2482e648016507cd66d0dce6668a1bc4de5e7a937e9c576d";
   };
 
   postConfigure = ''
diff --git a/nixpkgs/pkgs/development/python-modules/isort/default.nix b/nixpkgs/pkgs/development/python-modules/isort/default.nix
index 1195f0f6b097..b55fb9156814 100644
--- a/nixpkgs/pkgs/development/python-modules/isort/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/isort/default.nix
@@ -6,17 +6,16 @@
 , pytestCheckHook
 }:
 
-let
-in buildPythonPackage rec {
+buildPythonPackage rec {
   pname = "isort";
-  version = "5.6.4";
+  version = "5.9.3";
   format = "pyproject";
 
   src = fetchFromGitHub {
     owner = "PyCQA";
     repo = "isort";
     rev = version;
-    sha256 = "1m7jpqssnbsn1ydrw1dn7nrcrggqcvj9v6mk5ampxmvk94xd2r2q";
+    sha256 = "sha256-JbRZ/3Xz35tGoCNnQesR08Sjoz3yimxZyxhhOXGvmXw=";
   };
 
   nativeBuildInputs = [
@@ -46,6 +45,7 @@ in buildPythonPackage rec {
   '';
 
   pytestFlagsArray = [
+    "--ignore=tests/benchmark/" # requires pytest-benchmark
     "--ignore=tests/integration/" # pulls in 10 other packages
     "--ignore=tests/unit/profiles/test_black.py" # causes infinite recursion to include black
   ];
@@ -63,6 +63,7 @@ in buildPythonPackage rec {
     # plugin not available
     "test_isort_literals_issue_1358"
     "test_isort_supports_formatting_plugins_issue_1353"
+    "test_sort_configurable_sort_issue_1732"
     "test_value_assignment_list"
     # profiles not available
     "test_isort_supports_shared_profiles_issue_970"
diff --git a/nixpkgs/pkgs/development/python-modules/iterm2/default.nix b/nixpkgs/pkgs/development/python-modules/iterm2/default.nix
index 3b98f25c566f..a1b777c1bb76 100644
--- a/nixpkgs/pkgs/development/python-modules/iterm2/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/iterm2/default.nix
@@ -5,11 +5,11 @@
 
 buildPythonPackage rec {
   pname = "iterm2";
-  version = "1.21";
+  version = "1.27";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "06be59e0314a2f0f32753eb2d44eb563e85253875bc8da64df5b4eeba7fc05bd";
+    sha256 = "dcbd89d0502e72a9a41b055f5cf10b5a991f60fb12df29918d9c2183d1389abd";
   };
 
   propagatedBuildInputs = [ protobuf websockets ];
diff --git a/nixpkgs/pkgs/development/python-modules/jaraco_classes/default.nix b/nixpkgs/pkgs/development/python-modules/jaraco_classes/default.nix
index a727e774ec30..aadb9f9028f1 100644
--- a/nixpkgs/pkgs/development/python-modules/jaraco_classes/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/jaraco_classes/default.nix
@@ -1,5 +1,5 @@
 { lib, buildPythonPackage, fetchFromGitHub, isPy27
-, setuptools-scm, toml
+, setuptools-scm
 , more-itertools
 , pytestCheckHook
 }:
@@ -20,7 +20,7 @@ buildPythonPackage rec {
 
   SETUPTOOLS_SCM_PRETEND_VERSION = version;
 
-  nativeBuildInputs = [ setuptools-scm toml ];
+  nativeBuildInputs = [ setuptools-scm ];
 
   propagatedBuildInputs = [ more-itertools ];
 
diff --git a/nixpkgs/pkgs/development/python-modules/jaraco_collections/default.nix b/nixpkgs/pkgs/development/python-modules/jaraco_collections/default.nix
index 060d45938118..46f2bfdff3fc 100644
--- a/nixpkgs/pkgs/development/python-modules/jaraco_collections/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/jaraco_collections/default.nix
@@ -4,10 +4,10 @@
 
 buildPythonPackage rec {
   pname = "jaraco.collections";
-  version = "3.3.0";
+  version = "3.4.0";
   src = fetchPypi {
     inherit pname version;
-    sha256 = "3662267424b55f10bf15b6f5dee6a6e48a2865c0ec50cc7a16040c81c55a98dc";
+    sha256 = "344d14769d716e7496af879ac71b3c6ebdd46abc64bd9ec21d15248365aa3ac9";
   };
 
   pythonNamespaces = [ "jaraco" ];
diff --git a/nixpkgs/pkgs/development/python-modules/jaraco_functools/default.nix b/nixpkgs/pkgs/development/python-modules/jaraco_functools/default.nix
index 1fca58ebf733..3ad652af7643 100644
--- a/nixpkgs/pkgs/development/python-modules/jaraco_functools/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/jaraco_functools/default.nix
@@ -1,5 +1,5 @@
 { lib, buildPythonPackage, fetchPypi
-, setuptools-scm, toml
+, setuptools-scm
 , more-itertools, backports_functools_lru_cache }:
 
 buildPythonPackage rec {
@@ -11,7 +11,7 @@ buildPythonPackage rec {
     sha256 = "bfcf7da71e2a0e980189b0744b59dba6c1dcf66dcd7a30f8a4413e478046b314";
   };
 
-  nativeBuildInputs = [ setuptools-scm toml ];
+  nativeBuildInputs = [ setuptools-scm ];
 
   propagatedBuildInputs = [ more-itertools backports_functools_lru_cache ];
 
diff --git a/nixpkgs/pkgs/development/python-modules/jaraco_text/default.nix b/nixpkgs/pkgs/development/python-modules/jaraco_text/default.nix
index 3126ab999674..32e8aa23aeb4 100644
--- a/nixpkgs/pkgs/development/python-modules/jaraco_text/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/jaraco_text/default.nix
@@ -6,11 +6,11 @@
 
 buildPythonPackage rec {
   pname = "jaraco.text";
-  version = "3.5.0";
+  version = "3.5.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "f07f1076814a17a98eb915948b9a0dc71b1891c833588066ec1feb04ea4389b1";
+    sha256 = "ede4e9103443b62b3d1d193257dfb85aab7c69a6cef78a0887d64bb307a03bc3";
   };
 
   pythonNamespaces = [ "jaraco" ];
diff --git a/nixpkgs/pkgs/development/python-modules/jdatetime/default.nix b/nixpkgs/pkgs/development/python-modules/jdatetime/default.nix
index 90f7c310faa8..96e8e4d7c34f 100644
--- a/nixpkgs/pkgs/development/python-modules/jdatetime/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/jdatetime/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "jdatetime";
-  version = "3.6.2";
+  version = "3.6.4";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "a589e35f0dab89283c1a3de9d70ed6cf657932aaed8e8ce1b0e5801aaab1da67";
+    sha256 = "39d0be41076b3a3850c3bfa90817e7ed459edc0e9cadce37dc7229b11f121c7e";
   };
 
   propagatedBuildInputs = [ six ];
diff --git a/nixpkgs/pkgs/development/python-modules/jeepney/default.nix b/nixpkgs/pkgs/development/python-modules/jeepney/default.nix
index 2acf0361bcbc..3079f152e444 100644
--- a/nixpkgs/pkgs/development/python-modules/jeepney/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/jeepney/default.nix
@@ -2,6 +2,7 @@
 , buildPythonPackage
 , fetchPypi
 , pythonOlder
+, async-timeout
 , dbus
 , pytest
 , pytest-trio
@@ -12,16 +13,17 @@
 
 buildPythonPackage rec {
   pname = "jeepney";
-  version = "0.7.0";
+  version = "0.7.1";
 
   disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1237cd64c8f7ac3aa4b3f332c4d0fb4a8216f39eaa662ec904302d4d77de5a54";
+    sha256 = "fa9e232dfa0c498bd0b8a3a73b8d8a31978304dcef0515adc859d4e096f96f4f";
   };
 
   checkInputs = [
+    async-timeout
     dbus
     pytest
     pytest-trio
diff --git a/nixpkgs/pkgs/development/python-modules/jira/default.nix b/nixpkgs/pkgs/development/python-modules/jira/default.nix
index a3f790abfc51..c7d8207aa3d9 100644
--- a/nixpkgs/pkgs/development/python-modules/jira/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/jira/default.nix
@@ -1,34 +1,56 @@
-{ lib, buildPythonPackage, fetchPypi, isPy3k
-, pytest, pytest-runner, pbr, glibcLocales , pytest-cov
-, requests, requests_oauthlib, requests-toolbelt, defusedxml
-, ipython
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, defusedxml
+, flaky
+, keyring
+, requests-mock
+, requests_oauthlib
+, requests-toolbelt
+, setuptools-scm
+, setuptools-scm-git-archive
+, pytestCheckHook
 }:
 
 buildPythonPackage rec {
   pname = "jira";
-  version = "2.0.0";
+  version = "3.0.1";
 
-  PBR_VERSION = version;
-
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "e2a94adff98e45b29ded030adc76103eab34fa7d4d57303f211f572bedba0e93";
+  src = fetchFromGitHub {
+    owner = "pycontribs";
+    repo = pname;
+    rev = version;
+    sha256 = "sha256-hAUAzkHPXFDlKEom+dkzr8GQ+sqK2Ci1/k+QuSNvifE=";
   };
 
-  buildInputs = [ glibcLocales pytest pytest-cov pytest-runner pbr ];
-  propagatedBuildInputs = [ requests requests_oauthlib requests-toolbelt defusedxml pbr ipython ];
+  postPatch = ''
+    substituteInPlace setup.cfg \
+      --replace "--cov-report=xml --cov jira" ""
+  '';
 
-  # impure tests because of connectivity attempts to jira servers
-  doCheck = false;
+  nativeBuildInputs = [ setuptools-scm setuptools-scm-git-archive ];
 
-  patches = [ ./sphinx-fix.patch ];
+  SETUPTOOLS_SCM_PRETEND_VERSION = version;
 
-  LC_ALL = "en_US.utf8";
+  propagatedBuildInputs = [
+    defusedxml
+    keyring
+    requests_oauthlib
+    requests-toolbelt
+  ];
 
-  disabled = !isPy3k;
+  checkInputs = [
+    flaky
+    pytestCheckHook
+    requests-mock
+  ];
+
+  # impure tests because of connectivity attempts to jira servers
+  doCheck = false;
 
   meta = with lib; {
     description = "This library eases the use of the JIRA REST API from Python.";
+    homepage = "https://github.com/pycontribs/jira";
     license = licenses.bsd2;
     maintainers = with maintainers; [ globin ];
   };
diff --git a/nixpkgs/pkgs/development/python-modules/jira/sphinx-fix.patch b/nixpkgs/pkgs/development/python-modules/jira/sphinx-fix.patch
deleted file mode 100644
index ccc47ac4b9cf..000000000000
--- a/nixpkgs/pkgs/development/python-modules/jira/sphinx-fix.patch
+++ /dev/null
@@ -1,11 +0,0 @@
-diff --git a/setup.py b/setup.py
-index c49a24d..31aeec2 100644
---- a/setup.py
-+++ b/setup.py
-@@ -11,5 +11,5 @@ except ImportError:
- 
- 
- setuptools.setup(
--    setup_requires=['pbr>=3.0.0', 'setuptools>=17.1', 'pytest-runner', 'sphinx>=1.6.5'],
-+    setup_requires=['pbr>=3.0.0', 'setuptools>=17.1', 'pytest-runner'],
-     pbr=True)
diff --git a/nixpkgs/pkgs/development/python-modules/jupyter-repo2docker/default.nix b/nixpkgs/pkgs/development/python-modules/jupyter-repo2docker/default.nix
index 1b352f1e24c9..f4eb9190aa4b 100644
--- a/nixpkgs/pkgs/development/python-modules/jupyter-repo2docker/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/jupyter-repo2docker/default.nix
@@ -12,13 +12,13 @@
 }:
 
 buildPythonPackage rec {
-  version = "2021.3.0";
+  version = "2021.8.0";
   pname = "jupyter-repo2docker";
   disabled = pythonOlder "3.4";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "42e0cf67181bdd03b54dabde695befec0586ed68a4ec1240104e209997d776c4";
+    sha256 = "9d1b3c3ec7944ea6b0a234d6fa77293a2d1ed1c080eba8466aba94f811b3465d";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/jupyter_client/default.nix b/nixpkgs/pkgs/development/python-modules/jupyter_client/default.nix
index fbc37c3f581b..e30b3cb63a71 100644
--- a/nixpkgs/pkgs/development/python-modules/jupyter_client/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/jupyter_client/default.nix
@@ -1,30 +1,34 @@
 { lib
 , buildPythonPackage
 , fetchPypi
-, traitlets
+, entrypoints
 , jupyter_core
-, pyzmq
+, nest-asyncio
 , python-dateutil
+, pyzmq
+, tornado
+, traitlets
 , isPyPy
 , py
-, tornado
 }:
 
 buildPythonPackage rec {
   pname = "jupyter_client";
-  version = "6.1.12";
+  version = "7.0.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "c4bca1d0846186ca8be97f4d2fa6d2bae889cce4892a167ffa1ba6bd1f73e782";
+    sha256 = "0c6cabd07e003a2e9692394bf1ae794188ad17d2e250ed747232d7a473aa772c";
   };
 
   propagatedBuildInputs = [
-    traitlets
+    entrypoints
     jupyter_core
-    pyzmq
+    nest-asyncio
     python-dateutil
+    pyzmq
     tornado
+    traitlets
   ] ++ lib.optional isPyPy py;
 
   # Circular dependency with ipykernel
diff --git a/nixpkgs/pkgs/development/python-modules/jupyter_server/default.nix b/nixpkgs/pkgs/development/python-modules/jupyter_server/default.nix
index 72e1540e0781..76d0617f4c8a 100644
--- a/nixpkgs/pkgs/development/python-modules/jupyter_server/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/jupyter_server/default.nix
@@ -21,16 +21,17 @@
 , anyio
 , websocket-client
 , requests
+, requests-unixsocket
 }:
 
 buildPythonPackage rec {
   pname = "jupyter_server";
-  version = "1.8.0";
+  version = "1.11.0";
   disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "8f0c75e0a577536125ad62a442ebb7cf02746f1a69d907e8a273c6225d281237";
+    sha256 = "sha256-irT0hKSiaY91fP8HadJ7XZkeAjKmZtVPTWraTmphMws=";
   };
 
   propagatedBuildInputs = [
@@ -49,6 +50,7 @@ buildPythonPackage rec {
     prometheus-client
     anyio
     websocket-client
+    requests-unixsocket
   ];
 
   checkInputs = [
@@ -59,9 +61,10 @@ buildPythonPackage rec {
 
   preCheck = ''
     export HOME=$(mktemp -d)
+    export PATH=$out/bin:$PATH
   '';
 
-  pytestFlagsArray = [ "jupyter_server/tests/" ];
+  pytestFlagsArray = [ "jupyter_server" ];
 
   # disabled failing tests
   disabledTests = [
diff --git a/nixpkgs/pkgs/development/python-modules/jupyterlab-git/default.nix b/nixpkgs/pkgs/development/python-modules/jupyterlab-git/default.nix
index 67769e24b328..dbff1660b1cc 100644
--- a/nixpkgs/pkgs/development/python-modules/jupyterlab-git/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/jupyterlab-git/default.nix
@@ -10,12 +10,12 @@
 
 buildPythonPackage rec {
   pname = "jupyterlab_git";
-  version = "0.30.1";
+  version = "0.32.2";
   disabled = pythonOlder "3.5";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "f44a33cf59b424e0b5ff984b18eae33e45dab1ef9dc1901b1dd23f9adff15df2";
+    sha256 = "4c5743a05150ed7736e028aac15787a66735f160e9ae198dacc5a4bd1a727ce2";
   };
 
   propagatedBuildInputs = [ notebook nbdime git ];
diff --git a/nixpkgs/pkgs/development/python-modules/jupyterlab/default.nix b/nixpkgs/pkgs/development/python-modules/jupyterlab/default.nix
index 6264bbb5c44e..9ab6b3b8423f 100644
--- a/nixpkgs/pkgs/development/python-modules/jupyterlab/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/jupyterlab/default.nix
@@ -10,12 +10,12 @@
 
 buildPythonPackage rec {
   pname = "jupyterlab";
-  version = "3.1.6";
+  version = "3.1.13";
   disabled = pythonOlder "3.5";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "6d2ada6a333861f33a1b555d3cb7b07aa9d1ab80f07997b3d0c43878a98c1174";
+    sha256 = "48a6214ba8310d8bdb3eb6bac8eedf449c77d1bbb6f81b586267c158ad00b899";
   };
 
   nativeBuildInputs = [ jupyter-packaging ];
diff --git a/nixpkgs/pkgs/development/python-modules/jupyterlab_server/default.nix b/nixpkgs/pkgs/development/python-modules/jupyterlab_server/default.nix
index cca40463b024..a56b5d86abef 100644
--- a/nixpkgs/pkgs/development/python-modules/jupyterlab_server/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/jupyterlab_server/default.nix
@@ -16,12 +16,12 @@
 
 buildPythonPackage rec {
   pname = "jupyterlab_server";
-  version = "2.7.0";
+  version = "2.8.1";
   disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "31457ef564febc42043bc539356c804f6f9144f602e2852150bf0820ed6d7e18";
+    sha256 = "39fd519e9b3275873bd15de891363c28f2649814f7bbc11c57469c60e8408e97";
   };
 
   postPatch = ''
diff --git a/nixpkgs/pkgs/development/python-modules/k5test/default.nix b/nixpkgs/pkgs/development/python-modules/k5test/default.nix
index 80b62f1e4483..0079194f4fa7 100644
--- a/nixpkgs/pkgs/development/python-modules/k5test/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/k5test/default.nix
@@ -2,19 +2,21 @@
 , buildPythonPackage
 , fetchPypi
 , substituteAll
-, six
 , krb5Full
 , findutils
 , which
+, pythonOlder
 }:
 
 buildPythonPackage rec {
   pname = "k5test";
-  version = "0.9.2";
+  version = "0.10.0";
+
+  disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1lqp3jgfngyhaxjgj3n230hn90wsylwilh120yjf62h7b1s02mh8";
+    sha256 = "fc5e7e5e286b2f331c1396c33f2a1cd8cf34e78d8d482168a50ffd8576a1455c";
   };
 
   patches = [
@@ -27,17 +29,15 @@ buildPythonPackage rec {
     })
   ];
 
-  propagatedBuildInputs = [
-    six
-  ];
-
   # No tests
   doCheck = false;
 
+  pythonImportsCheck = [ "k5test" ];
+
   meta = with lib; {
     description = "Library for setting up self-contained Kerberos 5 environment";
     homepage = "https://github.com/pythongssapi/k5test";
     license = licenses.mit;
-    maintainers = [ ];
+    maintainers = with maintainers; [ ];
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/k5test/fix-paths.patch b/nixpkgs/pkgs/development/python-modules/k5test/fix-paths.patch
index f99835b5f2a3..dc6caf815809 100644
--- a/nixpkgs/pkgs/development/python-modules/k5test/fix-paths.patch
+++ b/nixpkgs/pkgs/development/python-modules/k5test/fix-paths.patch
@@ -45,42 +45,74 @@ index e289fac..e2f486a 100644
      if options_raw:
          return options_raw.split('\n')
 diff --git a/k5test/realm.py b/k5test/realm.py
-index f57946b..ad78579 100644
+index 161e5ad..9f50049 100644
 --- a/k5test/realm.py
 +++ b/k5test/realm.py
-@@ -181,19 +181,13 @@ class K5Realm(object):
-             return path
+@@ -90,7 +90,7 @@ class K5Realm(metaclass=abc.ABCMeta):
+ 
+         if provider_cls == K5Realm:
+             krb5_config = _discover_path('krb5-config',
+-                                         '/usr/bin/krb5-config', kwargs)
++                                         '@krb5Full@/bin/krb5-config', kwargs)
+ 
+             try:
+                 krb5_version = subprocess.check_output(
+@@ -101,7 +101,7 @@ class K5Realm(metaclass=abc.ABCMeta):
+                 # macOS output doesn't contain Heimdal
+                 if 'heimdal' in krb5_version.lower() or (
+                         sys.platform == 'darwin' and
+-                        krb5_config == '/usr/bin/krb5-config'):
++                        krb5_config == '@krb5Full@/bin/krb5-config'):
+                     provider_cls = HeimdalRealm
+                 else:
+                     provider_cls = MITRealm
+@@ -434,14 +434,14 @@ class MITRealm(K5Realm):
+     @property
+     def _default_paths(self):
+         return [
+-            ('kdb5_util', 'kdb5_util', '/usr/sbin/kdb5_util'),
+-            ('krb5kdc', 'krb5kdc', '/usr/sbin/kdb5kdc'),
+-            ('kadmin', 'kadmin', '/usr/bin/admin'),
+-            ('kadmin_local', 'kadmin.local', '/usr/sbin/kadmin.local'),
+-            ('kadmind', 'kadmind', '/usr/sbin/kadmind'),
+-            ('kprop', 'kprop', '/usr/sbin/kprop'),
+-            ('_kinit', 'kinit', '/usr/bin/kinit'),
+-            ('_klist', 'klist', '/usr/bin/klist'),
++            ('kdb5_util', 'kdb5_util', '@krb5Full@/bin/kdb5_util'),
++            ('krb5kdc', 'krb5kdc', '@krb5Full@/bin/kdb5kdc'),
++            ('kadmin', 'kadmin', '@krb5Full@/bin/admin'),
++            ('kadmin_local', 'kadmin.local', '@krb5Full@/bin/kadmin.local'),
++            ('kadmind', 'kadmind', '@krb5Full@/bin/kadmind'),
++            ('kprop', 'kprop', '@krb5Full@/bin/kprop'),
++            ('_kinit', 'kinit', '@krb5Full@/bin/kinit'),
++            ('_klist', 'klist', '@krb5Full@/bin/klist'),
+         ]
+ 
+     @property
+@@ -585,12 +585,12 @@ class HeimdalRealm(K5Realm):
  
-     def _init_paths(self, **paths):
--        self.kdb5_util = self._discover_path('kdb5_util',
--                                             '/usr/sbin/kdb5_util', paths)
--        self.krb5kdc = self._discover_path('krb5kdc',
--                                           '/usr/sbin/krb5kdc', paths)
--        self.kadmin_local = self._discover_path('kadmin_local',
--                                                '/usr/sbin/kadmin.local',
--                                                paths)
--        self.kprop = self._discover_path('kprop', '/usr/sbin/kprop', paths)
--        self.kadmind = self._discover_path('kadmind',
--                                           '/usr/sbin/kadmind', paths)
--
--        self._kinit = self._discover_path('kinit', '/usr/bin/kinit', paths)
--        self._klist = self._discover_path('klist', '/usr/bin/klist', paths)
-+        self.kdb5_util = '@krb5Full@/bin/kdb5_util'
-+        self.krb5kdc = '@krb5Full@/bin/krb5kdc'
-+        self.kadmin_local = '@krb5Full@/bin/kadmin.local'
-+        self.kprop = '@krb5Full@/bin/kprop'
-+        self.kadmind = '@krb5Full@/bin/kadmind'
-+        self._kinit = '@krb5Full@/bin/kinit'
-+        self._klist = '@krb5Full@/bin/klist'
+         return [
+             ('krb5kdc', 'kdc', os.path.join(base, 'kdc')),
+-            ('kadmin', 'kadmin', '/usr/bin/kadmin'),
+-            ('kadmin_local', 'kadmin', '/usr/bin/kadmin'),
++            ('kadmin', 'kadmin', '@krb5Full@/bin/kadmin'),
++            ('kadmin_local', 'kadmin', '@krb5Full@/bin/kadmin'),
+             ('kadmind', 'kadmind', os.path.join(base, 'kadmind')),
+-            ('_kinit', 'kinit', '/usr/bin/kinit'),
+-            ('_klist', 'klist', '/usr/bin/klist'),
+-            ('_ktutil', 'ktutil', '/usr/bin/ktutil'),
++            ('_kinit', 'kinit', '@krb5Full@/bin/kinit'),
++            ('_klist', 'klist', '@krb5Full@/bin/klist'),
++            ('_ktutil', 'ktutil', '@krb5Full@/bin/ktutil'),
+         ]
  
-     def _create_conf(self, profile, filename):
-         with open(filename, 'w') as conf_file:
+     @property
 diff --git a/k5test/unit.py b/k5test/unit.py
-index 4ee7f98..543d662 100644
+index 3c64b9e..59da1ab 100644
 --- a/k5test/unit.py
 +++ b/k5test/unit.py
 @@ -38,7 +38,7 @@ _KRB_VERSION = None
- def krb_minversion_test(target_version, problem):
+ def krb_minversion_test(target_version, problem, provider=None):
      global _KRB_VERSION
      if _KRB_VERSION is None:
 -        _KRB_VERSION = _utils.get_output("krb5-config --version")
diff --git a/nixpkgs/pkgs/development/python-modules/keyring/default.nix b/nixpkgs/pkgs/development/python-modules/keyring/default.nix
index cea38abee395..cf765c06d869 100644
--- a/nixpkgs/pkgs/development/python-modules/keyring/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/keyring/default.nix
@@ -13,12 +13,12 @@
 
 buildPythonPackage rec {
   pname = "keyring";
-  version = "23.0.1";
+  version = "23.1.0";
   disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "045703609dd3fccfcdb27da201684278823b72af515aedec1a8515719a038cb8";
+    sha256 = "b7e0156667f5dcc73c1f63a518005cd18a4eb23fe77321194fefcc03748b21a4";
   };
 
   nativeBuildInputs = [
@@ -48,6 +48,9 @@ buildPythonPackage rec {
   disabledTests = lib.optionals (stdenv.isDarwin) [
     "test_multiprocess_get"
     "test_multiprocess_get_after_native_get"
+  ] ++ [
+    # E       ValueError: too many values to unpack (expected 1)
+    "test_entry_point"
   ];
 
   disabledTestPaths = [
diff --git a/nixpkgs/pkgs/development/python-modules/keyrings-alt/default.nix b/nixpkgs/pkgs/development/python-modules/keyrings-alt/default.nix
index abcd04a1d307..a45be02b55b2 100644
--- a/nixpkgs/pkgs/development/python-modules/keyrings-alt/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/keyrings-alt/default.nix
@@ -1,15 +1,15 @@
 { lib, buildPythonPackage, fetchPypi, pythonOlder, isPy27, six
-, pytest, backports_unittest-mock, keyring, setuptools-scm, toml
+, pytest, backports_unittest-mock, keyring, setuptools-scm
 }:
 
 buildPythonPackage rec {
   pname = "keyrings.alt";
-  version = "4.0.2";
+  version = "4.1.0";
   disabled = isPy27;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "cc475635099d6edd7e475c5a479e5b4da5e811a3af04495a1e9ada488d16fe25";
+    sha256 = "52ccb61d6f16c10f32f30d38cceef7811ed48e086d73e3bae86f0854352c4ab2";
   };
 
   postPatch = ''
@@ -17,7 +17,7 @@ buildPythonPackage rec {
       --replace "--flake8" ""
   '';
 
-  nativeBuildInputs = [ setuptools-scm toml ];
+  nativeBuildInputs = [ setuptools-scm ];
   propagatedBuildInputs = [ six ];
 
   checkInputs = [ pytest keyring ] ++ lib.optional (pythonOlder "3.3") backports_unittest-mock;
diff --git a/nixpkgs/pkgs/development/python-modules/keystoneauth1/default.nix b/nixpkgs/pkgs/development/python-modules/keystoneauth1/default.nix
index 9eeb42b0b8c4..cecbc6fd1d26 100644
--- a/nixpkgs/pkgs/development/python-modules/keystoneauth1/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/keystoneauth1/default.nix
@@ -24,11 +24,11 @@
 
 buildPythonPackage rec {
   pname = "keystoneauth1";
-  version = "4.3.1";
+  version = "4.4.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "93605430a6d1424f31659bc5685e9dc1be9a6254e88c99f00cffc0a60c648a64";
+    sha256 = "34662a6be67ab29424aabe6f99a8d7eb6b88d293109a07e60fea123ebffb314f";
   };
 
   postPatch = ''
diff --git a/nixpkgs/pkgs/development/python-modules/kiwisolver/default.nix b/nixpkgs/pkgs/development/python-modules/kiwisolver/default.nix
index 2b157494f919..e5649c58e465 100644
--- a/nixpkgs/pkgs/development/python-modules/kiwisolver/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/kiwisolver/default.nix
@@ -8,11 +8,11 @@
 
 buildPythonPackage rec {
   pname = "kiwisolver";
-  version = "1.3.1";
+  version = "1.3.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "950a199911a8d94683a6b10321f9345d5a3a8433ec58b217ace979e18f16e248";
+    sha256 = "fc4453705b81d03568d5b808ad8f09c77c47534f6ac2e72e733f9ca4714aa75c";
   };
 
   NIX_CFLAGS_COMPILE = lib.optionalString stdenv.isDarwin "-I${lib.getDev libcxx}/include/c++/v1";
diff --git a/nixpkgs/pkgs/development/python-modules/kubernetes/default.nix b/nixpkgs/pkgs/development/python-modules/kubernetes/default.nix
index 952527d5cab7..da3c36f6ce04 100644
--- a/nixpkgs/pkgs/development/python-modules/kubernetes/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/kubernetes/default.nix
@@ -1,34 +1,58 @@
-{ lib, buildPythonPackage, fetchPypi, pythonAtLeast,
-  ipaddress, websocket-client, urllib3, pyyaml, requests_oauthlib, python-dateutil, google-auth, adal,
-  isort, pytest, coverage, mock, sphinx, autopep8, pep8, codecov, recommonmark, nose }:
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, pythonOlder
+
+# propgatedBuildInputs
+, adal
+, certifi
+, google-auth
+, python-dateutil
+, pyyaml
+, requests
+, requests_oauthlib
+, urllib3
+, websocket-client
+
+# tests
+, pytestCheckHook
+, mock
+}:
 
 buildPythonPackage rec {
   pname = "kubernetes";
-  version = "12.0.1";
-
-  prePatch = ''
-    sed -e 's/sphinx>=1.2.1,!=1.3b1,<1.4 # BSD/sphinx/' -i test-requirements.txt
-
-    # This is used to randomize tests, which is not reproducible. Drop it.
-    sed -e '/randomize/d' -i test-requirements.txt
-  ''
-  # This is a python2 and python3.2 only requiremet since it is a backport of a python-3.3 api.
-  + (if (pythonAtLeast "3.3")  then ''
-    sed -e '/ipaddress/d' -i requirements.txt
-  '' else "");
-
-  doCheck = pythonAtLeast "3";
-  checkPhase = ''
-    py.test --ignore=kubernetes/dynamic/test_client.py
-  '';
-
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "ec52ea01d52e2ec3da255992f7e859f3a76f2bdb51cf65ba8cd71dfc309d8daa";
+  version = "18.20.0";
+  format = "setuptools";
+  disabled = pythonOlder "3.6";
+
+  src = fetchFromGitHub {
+    owner = "kubernetes-client";
+    repo = "python";
+    rev = "v${version}";
+    sha256 = "1sawp62j7h0yksmg9jlv4ik9b9i1a1w9syywc9mv8x89wibf5ql1";
+    fetchSubmodules = true;
   };
 
-  checkInputs = [ isort coverage pytest mock sphinx autopep8 pep8 codecov recommonmark nose ];
-  propagatedBuildInputs = [ ipaddress websocket-client urllib3 pyyaml requests_oauthlib python-dateutil google-auth adal ];
+  propagatedBuildInputs = [
+    adal
+    certifi
+    google-auth
+    python-dateutil
+    pyyaml
+    requests
+    requests_oauthlib
+    urllib3
+    websocket-client
+  ];
+
+  pythonImportsCheck = [
+    "kubernetes"
+  ];
+
+  checkInputs = [
+    mock
+    pytestCheckHook
+  ];
 
   meta = with lib; {
     description = "Kubernetes python client";
diff --git a/nixpkgs/pkgs/development/python-modules/labelbox/default.nix b/nixpkgs/pkgs/development/python-modules/labelbox/default.nix
index 423185b6f226..5f8057df849d 100644
--- a/nixpkgs/pkgs/development/python-modules/labelbox/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/labelbox/default.nix
@@ -19,14 +19,14 @@
 
 buildPythonPackage rec {
   pname = "labelbox";
-  version = "2.6.0";
+  version = "3.2.0";
   disabled = pythonOlder "3.6";
 
   src = fetchFromGitHub {
     owner = "Labelbox";
     repo = "labelbox-python";
     rev = "V${version}";
-    sha256 = "1lkvc926i3c7isqhaja6k013qgla44cdhvkx76gpdyywq53i9mcb";
+    sha256 = "0vp1lk7hipa4ixa1zcy99r9b5xb1gv54h4i0izx6fv4zf9m0gmw1";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/labgrid/default.nix b/nixpkgs/pkgs/development/python-modules/labgrid/default.nix
index 86edc2f8d5e3..7aedf44d0676 100644
--- a/nixpkgs/pkgs/development/python-modules/labgrid/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/labgrid/default.nix
@@ -22,13 +22,13 @@
 
 buildPythonPackage rec {
   pname = "labgrid";
-  version = "0.3.3";
+  version = "0.4.0";
 
   src = fetchFromGitHub {
     owner = "labgrid-project";
     repo = "labgrid";
     rev = "v${version}";
-    sha256 = "03dg0c5vahrdj1153pmd4653hjisq3cc6niqnwayjx5pjb15ikxk";
+    sha256 = "17j013dw66h4jm1hl92g892sx9r9c48pnl7d58p1y0l4jfca8gmn";
   };
 
   patches = [
diff --git a/nixpkgs/pkgs/development/python-modules/lark-parser/default.nix b/nixpkgs/pkgs/development/python-modules/lark-parser/default.nix
index 9f787563e5a4..c1c67fd4c1ea 100644
--- a/nixpkgs/pkgs/development/python-modules/lark-parser/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/lark-parser/default.nix
@@ -7,13 +7,13 @@
 
 buildPythonPackage rec {
   pname = "lark-parser";
-  version = "0.11.3";
+  version = "0.12.0";
 
   src = fetchFromGitHub {
     owner = "lark-parser";
     repo = "lark";
     rev = version;
-    sha256 = "1ggvlzpdzlrxl46fgi8cfq2rzlwn21shpdkm4pknnhfjlsinv913";
+    sha256 = "sha256-zcMGCn3ixD3dJg3GlC/ijs+U1JN1BodHLTXZc/5UR7Y=";
   };
 
   # Optional import, but fixes some re known bugs & allows advanced regex features
diff --git a/nixpkgs/pkgs/development/python-modules/launchpadlib/default.nix b/nixpkgs/pkgs/development/python-modules/launchpadlib/default.nix
index e39e313baa7f..14833f7f622c 100644
--- a/nixpkgs/pkgs/development/python-modules/launchpadlib/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/launchpadlib/default.nix
@@ -15,11 +15,11 @@
 
 buildPythonPackage rec {
   pname = "launchpadlib";
-  version = "1.10.13";
+  version = "1.10.14";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "5804d68ec93247194449d17d187e949086da0a4d044f12155fad269ef8515435";
+    sha256 = "5edfc7f615c88475b3d8549731cb57e2d9bf15d0b9bc21a43e88626b67deef4b";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/lazr-restfulclient/default.nix b/nixpkgs/pkgs/development/python-modules/lazr-restfulclient/default.nix
index cb78dfff1a29..74197621ee17 100644
--- a/nixpkgs/pkgs/development/python-modules/lazr-restfulclient/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/lazr-restfulclient/default.nix
@@ -16,13 +16,13 @@
 
 buildPythonPackage rec {
   pname = "lazr.restfulclient";
-  version = "0.14.3";
+  version = "0.14.4";
 
   disabled = isPy27; # namespace is broken for python2
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "9f28bbb7c00374159376bd4ce36b4dacde7c6b86a0af625aa5e3ae214651a690";
+    sha256 = "bf0fd6b2749b3a2d02711f854c9d23704756f7afed21fb5d5b9809d72aa6d087";
   };
 
   propagatedBuildInputs = [ distro httplib2 oauthlib setuptools six wadllib ];
diff --git a/nixpkgs/pkgs/development/python-modules/lazr-uri/default.nix b/nixpkgs/pkgs/development/python-modules/lazr-uri/default.nix
index 080eb4cdb0ed..4ba3b5d1cdcd 100644
--- a/nixpkgs/pkgs/development/python-modules/lazr-uri/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/lazr-uri/default.nix
@@ -7,13 +7,13 @@
 
 buildPythonPackage rec {
   pname = "lazr.uri";
-  version = "1.0.5";
+  version = "1.0.6";
 
   disabled = isPy27; # namespace is broken for python2
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "f36e7e40d5f8f2cf20ff2c81784a14a546e6c19c216d40a6617ebe0c96c92c49";
+    sha256 = "5026853fcbf6f91d5a6b11ea7860a641fe27b36d4172c731f4aa16b900cf8464";
   };
 
   propagatedBuildInputs = [ setuptools ];
diff --git a/nixpkgs/pkgs/development/python-modules/ldap3/default.nix b/nixpkgs/pkgs/development/python-modules/ldap3/default.nix
index 3c613d74e272..cf82b166ec6d 100644
--- a/nixpkgs/pkgs/development/python-modules/ldap3/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/ldap3/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "ldap3";
-  version = "2.9";
+  version = "2.9.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "18c3ee656a6775b9b0d60f7c6c5b094d878d1d90fc03d56731039f0a4b546a91";
+    sha256 = "f3e7fc4718e3f09dda568b57100095e0ce58633bcabbed8667ce3f8fbaa4229f";
   };
 
   propagatedBuildInputs = [ pyasn1 ];
diff --git a/nixpkgs/pkgs/development/python-modules/ledgerblue/default.nix b/nixpkgs/pkgs/development/python-modules/ledgerblue/default.nix
index bb5f71d73206..84c3ad8c614d 100644
--- a/nixpkgs/pkgs/development/python-modules/ledgerblue/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/ledgerblue/default.nix
@@ -5,11 +5,11 @@
 
 buildPythonPackage rec {
   pname = "ledgerblue";
-  version = "0.1.37";
+  version = "0.1.38";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "f34945c9bd4b9846ed9e48ecc239d3e9aec64c3a45411092d133260246169854";
+    sha256 = "df1fffc4f586eaa95b8cf910176d28997e65a3ecd43d9c0af34e46078b6b6ee3";
   };
 
   propagatedBuildInputs = [
@@ -19,6 +19,8 @@ buildPythonPackage rec {
   # No tests
   doCheck = false;
 
+  pythonImportsCheck = [ "ledgerblue" ];
+
   meta = with lib; {
     description = "Python library to communicate with Ledger Blue/Nano S";
     homepage = "https://github.com/LedgerHQ/blue-loader-python";
diff --git a/nixpkgs/pkgs/development/python-modules/lexid/default.nix b/nixpkgs/pkgs/development/python-modules/lexid/default.nix
index 4307d52d8913..5ef175d57878 100644
--- a/nixpkgs/pkgs/development/python-modules/lexid/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/lexid/default.nix
@@ -2,13 +2,19 @@
 
 buildPythonPackage rec {
   pname = "lexid";
-  version = "2020.1005";
+  version = "2021.1006";
   disabled = pythonOlder "3.6";
   src = fetchPypi {
     inherit pname version;
-    sha256 = "52333a2b9ebd14aa0dfeb33de72bd159c2dc31adb9c59cddfc486e2b69bfdcd1";
+    sha256 = "509a3a4cc926d3dbf22b203b18a4c66c25e6473fb7c0e0d30374533ac28bafe5";
   };
 
+  prePatch = ''
+    # Disable lib3to6, since we're only building this on 3.6+ anyway.
+    substituteInPlace setup.py \
+      --replace 'if any(arg.startswith("bdist") for arg in sys.argv):' 'if False:'
+  '';
+
   propagatedBuildInputs = [ click ];
 
   checkInputs = [ pytestCheckHook ];
diff --git a/nixpkgs/pkgs/development/python-modules/libarchive-c/default.nix b/nixpkgs/pkgs/development/python-modules/libarchive-c/default.nix
index 73d99afda674..48262398fcbf 100644
--- a/nixpkgs/pkgs/development/python-modules/libarchive-c/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/libarchive-c/default.nix
@@ -1,23 +1,26 @@
-{ lib, stdenv
+{ lib
+, stdenv
 , buildPythonPackage
-, fetchPypi
-, pytest
-, glibcLocales
+, pythonAtLeast
+, fetchFromGitHub
 , libarchive
+, glibcLocales
 , mock
+, pytestCheckHook
 }:
 
 buildPythonPackage rec {
   pname = "libarchive-c";
-  version = "2.9";
-
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "9919344cec203f5db6596a29b5bc26b07ba9662925a05e24980b84709232ef60";
+  version = "3.1";
+  format = "setuptools";
+
+  src = fetchFromGitHub {
+    owner = "Changaco";
+    repo = "python-${pname}";
+    rev = version;
+    sha256 = "1z4lqy9zlzymshzrcldsc9ipys2l7grqg4yff6ndl6dgbfb0g4jb";
   };
 
-  checkInputs = [ mock pytest glibcLocales ];
-
   LC_ALL="en_US.UTF-8";
 
   postPatch = ''
@@ -25,9 +28,20 @@ buildPythonPackage rec {
       "find_library('archive')" "'${libarchive.lib}/lib/libarchive${stdenv.hostPlatform.extensions.sharedLibrary}'"
   '';
 
-  checkPhase = ''
-    py.test tests -k 'not test_check_archiveentry_with_unicode_entries_and_name_zip and not test_check_archiveentry_using_python_testtar'
-  '';
+  pythonImportsCheck = [
+    "libarchive"
+  ];
+
+  checkInputs = [
+    glibcLocales
+    mock
+    pytestCheckHook
+  ];
+
+  disabledTests = lib.optionals (pythonAtLeast "3.9") [
+    # causes python3.9 to segfault
+    "test_custom_writer_and_stream_reader"
+  ];
 
   meta = with lib; {
     homepage = "https://github.com/Changaco/python-libarchive-c";
diff --git a/nixpkgs/pkgs/development/python-modules/libarcus/default.nix b/nixpkgs/pkgs/development/python-modules/libarcus/default.nix
index 7b0b09dcb14c..4002f527a451 100644
--- a/nixpkgs/pkgs/development/python-modules/libarcus/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/libarcus/default.nix
@@ -1,4 +1,5 @@
 { lib, buildPythonPackage, python, fetchFromGitHub
+, fetchpatch
 , cmake, sip_4, protobuf, pythonOlder }:
 
 buildPythonPackage rec {
@@ -13,7 +14,16 @@ buildPythonPackage rec {
     sha256 = "1ahka8s8fjwymyr7pca7i7h51ikfr35zy4nkzfcjn946x7p0dprf";
   };
 
-  disabled = pythonOlder "3.4.0";
+  patches = [
+    # Fix build against protobuf 3.18+
+    # https://github.com/Ultimaker/libArcus/issues/121
+    (fetchpatch {
+      url = "https://raw.githubusercontent.com/coryan/vcpkg/f69b85aa403b04e7d442c90db3418d484e44024f/ports/arcus/0001-fix-protobuf-deprecated.patch";
+      sha256 = "0bqj7pxzpwsamknd6gadj419x6mwx8wnlfzg4zqn6cax3cmasjb2";
+    })
+  ];
+
+  disabled = pythonOlder "3.4";
 
   propagatedBuildInputs = [ sip_4 ];
   nativeBuildInputs = [ cmake ];
diff --git a/nixpkgs/pkgs/development/python-modules/libcst/default.nix b/nixpkgs/pkgs/development/python-modules/libcst/default.nix
index 5a1ef3b7f737..5b950ab57397 100644
--- a/nixpkgs/pkgs/development/python-modules/libcst/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/libcst/default.nix
@@ -15,7 +15,7 @@
 
 buildPythonPackage rec {
   pname = "libcst";
-  version = "0.3.19";
+  version = "0.3.20";
   disabled = pythonOlder "3.6";
 
   # Some files for tests missing from PyPi
@@ -24,7 +24,7 @@ buildPythonPackage rec {
     owner = "instagram";
     repo = pname;
     rev = "v${version}";
-    sha256 = "012g1hyaj015k2sf38a7jnpzjic0f8j97ar84d0f00w2ifzwx4ma";
+    sha256 = "063bl21gyyd25i2v0j6kz29cxxdfhng2nins4i2qblmac90f2nqy";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/libgpuarray/default.nix b/nixpkgs/pkgs/development/python-modules/libgpuarray/default.nix
index d061356490cb..2be115ae3658 100644
--- a/nixpkgs/pkgs/development/python-modules/libgpuarray/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/libgpuarray/default.nix
@@ -1,5 +1,6 @@
 { stdenv
 , lib
+, addOpenGLRunpath
 , buildPythonPackage
 , fetchFromGitHub
 , cmake
@@ -8,13 +9,10 @@
 , six
 , nose
 , Mako
-, cudaSupport ? false, cudatoolkit , nvidia_x11
+, cudaSupport ? false, cudatoolkit
 , openclSupport ? true, ocl-icd, clblas
 }:
 
-assert cudaSupport -> nvidia_x11 != null
-                   && cudatoolkit != null;
-
 buildPythonPackage rec {
   pname = "libgpuarray";
   version = "0.7.6";
@@ -32,8 +30,7 @@ buildPythonPackage rec {
   configurePhase = "cmakeConfigurePhase";
 
   libraryPath = lib.makeLibraryPath (
-    []
-    ++ lib.optionals cudaSupport [ cudatoolkit.lib cudatoolkit.out nvidia_x11 ]
+    lib.optionals cudaSupport [ cudatoolkit.lib cudatoolkit.out ]
     ++ lib.optionals openclSupport ([ clblas ] ++ lib.optional (!stdenv.isDarwin) ocl-icd)
   );
 
@@ -55,6 +52,8 @@ buildPythonPackage rec {
     }
 
     fixRunPath $out/lib/libgpuarray.so
+  '' + lib.optionalString cudaSupport ''
+    addOpenGLRunpath $out/lib/libgpuarray.so
   '';
 
   propagatedBuildInputs = [
@@ -63,7 +62,12 @@ buildPythonPackage rec {
     Mako
   ];
 
-  nativeBuildInputs = [ cmake ];
+  nativeBuildInputs = [
+    cmake
+  ] ++ lib.optionals cudaSupport [
+    addOpenGLRunpath
+  ];
+
 
   buildInputs = [
     cython
diff --git a/nixpkgs/pkgs/development/python-modules/llvmlite/default.nix b/nixpkgs/pkgs/development/python-modules/llvmlite/default.nix
index c7d2221a22e2..e3b9e3bb7c8a 100644
--- a/nixpkgs/pkgs/development/python-modules/llvmlite/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/llvmlite/default.nix
@@ -12,17 +12,17 @@
 
 buildPythonPackage rec {
   pname = "llvmlite";
-  version = "0.36.0";
+  version = "0.37.0";
 
   disabled = isPyPy || !isPy3k;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "765128fdf5f149ed0b889ffbe2b05eb1717f8e20a5c87fa2b4018fbcce0fcfc9";
+    sha256 = "6392b870cd018ec0c645d6bbb918d6aa0eeca8c62674baaee30862d6b6865b15";
   };
 
   nativeBuildInputs = [ llvm ];
-  propagatedBuildInputs = [ ] ++ lib.optional (pythonOlder "3.4") enum34;
+  propagatedBuildInputs = lib.optional (pythonOlder "3.4") enum34;
 
   # Disable static linking
   # https://github.com/numba/llvmlite/issues/93
@@ -31,10 +31,12 @@ buildPythonPackage rec {
 
     substituteInPlace llvmlite/tests/test_binding.py --replace "test_linux" "nope"
   '';
+
   # Set directory containing llvm-config binary
   preConfigure = ''
     export LLVM_CONFIG=${llvm.dev}/bin/llvm-config
   '';
+
   checkPhase = ''
     ${python.executable} runtests.py
   '';
diff --git a/nixpkgs/pkgs/development/python-modules/mailsuite/default.nix b/nixpkgs/pkgs/development/python-modules/mailsuite/default.nix
new file mode 100644
index 000000000000..23167af45b0e
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/mailsuite/default.nix
@@ -0,0 +1,39 @@
+{ buildPythonPackage
+, fetchPypi
+, pythonOlder
+, lib
+
+# pythonPackages
+, dnspython
+, html2text
+, mail-parser
+, IMAPClient
+}:
+
+buildPythonPackage rec {
+  pname = "mailsuite";
+  version = "1.6.1";
+
+  disabled = pythonOlder "3.6";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "17bsnfjjzv8hx5h397p5pa92l6cqc53i0zjjz2p7bjj3xqzhs45a";
+  };
+
+  propagatedBuildInputs = [
+    dnspython
+    html2text
+    mail-parser
+    IMAPClient
+  ];
+
+  pythonImportsCheck = [ "mailsuite" ];
+
+  meta = {
+    description = "A Python package to simplify receiving, parsing, and sending email";
+    homepage = "https://seanthegeek.github.io/mailsuite/";
+    maintainers = with lib.maintainers; [ talyz ];
+    license = lib.licenses.asl20;
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/marisa-trie/default.nix b/nixpkgs/pkgs/development/python-modules/marisa-trie/default.nix
index ade031409b41..4daa619acc4f 100644
--- a/nixpkgs/pkgs/development/python-modules/marisa-trie/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/marisa-trie/default.nix
@@ -9,11 +9,11 @@
 
 buildPythonPackage rec {
   pname = "marisa-trie";
-  version = "0.7.5";
+  version = "0.7.7";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "c73bc25d868e8c4ea7aa7f1e19892db07bba2463351269b05340ccfa06eb2baf";
+    sha256 = "bbeafb7d92839dc221365340e79d012cb50ee48a1f3f30dd916eb35a8b93db00";
   };
 
   postPatch = ''
diff --git a/nixpkgs/pkgs/development/python-modules/markdown-it-py/default.nix b/nixpkgs/pkgs/development/python-modules/markdown-it-py/default.nix
index 8d75139dddcb..8ed57f3ff031 100644
--- a/nixpkgs/pkgs/development/python-modules/markdown-it-py/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/markdown-it-py/default.nix
@@ -1,7 +1,6 @@
 { lib
 , buildPythonPackage
 , fetchFromGitHub
-, fetchpatch
 , pytestCheckHook
 , pythonOlder
 , attrs
@@ -14,7 +13,7 @@
 
 buildPythonPackage rec {
   pname = "markdown-it-py";
-  version = "1.0.0";
+  version = "1.1.0";
   format = "pyproject";
 
   disabled = pythonOlder "3.6";
@@ -23,18 +22,9 @@ buildPythonPackage rec {
     owner = "executablebooks";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-GA7P2I8N+i2ISsVgx58zyhrfKMcZ7pL4X9T/trbsr1Y=";
+    sha256 = "0h7rn3rcqfwmnqs97qczwkw9w5g4df8bgn6sw7k149svfqgrkf56";
   };
 
-  patches = [
-    (fetchpatch {
-      # :arrow_up: UPGRADE: attrs -> v21 (#165)
-      # https://github.com/executablebooks/markdown-it-py/pull/165
-      url = "https://github.com/executablebooks/markdown-it-py/commit/78381ffe1a651741594dc93e693b761422512fa2.patch";
-      sha256 = "1kxhblpi4sycrs3rv50achr8g0wlgq33abg2acra26l736hlsya1";
-    })
-  ];
-
   propagatedBuildInputs = [ attrs linkify-it-py ]
     ++ lib.optional (pythonOlder "3.8") typing-extensions;
 
diff --git a/nixpkgs/pkgs/development/python-modules/marshmallow-dataclass/default.nix b/nixpkgs/pkgs/development/python-modules/marshmallow-dataclass/default.nix
new file mode 100644
index 000000000000..145005fd5e39
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/marshmallow-dataclass/default.nix
@@ -0,0 +1,45 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, marshmallow
+, marshmallow-enum
+, pytestCheckHook
+, pythonOlder
+, typeguard
+, typing-inspect
+}:
+
+buildPythonPackage rec {
+  pname = "marshmallow-dataclass";
+  version = "8.5.3";
+  format = "setuptools";
+
+  disabled = pythonOlder "3.6";
+
+  src = fetchFromGitHub {
+    owner = "lovasoa";
+    repo = "marshmallow_dataclass";
+    rev = "v${version}";
+    sha256 = "0mngkjfs2nxxr0y77n429hb22rmjxbnn95j4vwqr9y6q16bqxs0w";
+  };
+
+  propagatedBuildInputs = [
+    marshmallow
+    typing-inspect
+  ];
+
+  checkInputs = [
+    marshmallow-enum
+    pytestCheckHook
+    typeguard
+  ];
+
+  pythonImportsCheck = [ "marshmallow_dataclass" ];
+
+  meta = with lib; {
+    description = "Automatic generation of marshmallow schemas from dataclasses";
+    homepage = "https://github.com/lovasoa/marshmallow_dataclass";
+    license = with licenses; [ mit ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/marshmallow-oneofschema/default.nix b/nixpkgs/pkgs/development/python-modules/marshmallow-oneofschema/default.nix
index 343c5952a434..a4b15ce9a544 100644
--- a/nixpkgs/pkgs/development/python-modules/marshmallow-oneofschema/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/marshmallow-oneofschema/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "marshmallow-oneofschema";
-  version = "2.1.0";
+  version = "3.0.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0s0yr7nv06sfgxglghl2vq74g3m49j60k1hi2qzfsv4bj8hvs35k";
+    sha256 = "62cd2099b29188c92493c2940ee79d1bf2f2619a71721664e5a98ec2faa58237";
   };
 
   propagatedBuildInputs = [ marshmallow setuptools ];
diff --git a/nixpkgs/pkgs/development/python-modules/marshmallow-polyfield/default.nix b/nixpkgs/pkgs/development/python-modules/marshmallow-polyfield/default.nix
index aa2784cd1dbb..6b5394ac2770 100644
--- a/nixpkgs/pkgs/development/python-modules/marshmallow-polyfield/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/marshmallow-polyfield/default.nix
@@ -1,32 +1,43 @@
-{ buildPythonPackage
+{ lib
+, buildPythonPackage
 , fetchFromGitHub
-, lib
 , marshmallow
-  # Check Inputs
+, pythonOlder
 , pytestCheckHook
-, pytest-cov
 }:
 
 buildPythonPackage rec {
   pname = "marshmallow-polyfield";
-  version = "5.9";
+  version = "5.10";
+
+  disabled = pythonOlder "3.6";
 
   src = fetchFromGitHub {
     owner = "Bachmann1234";
     repo = pname;
     rev = "v${version}";
-    sha256 = "15yx8ib5yx1xx6kq8wnfdmv9zm43k7y33c6zpq5rba6a30v4lcnd";
+    sha256 = "sha256-oF5LBuDK4kqsAcKwidju+wFjigjy4CNbJ6bfWpGO1yQ=";
   };
 
   propagatedBuildInputs = [
     marshmallow
   ];
 
-  # setuptools check can run, but won't find tests
-  checkInputs = [ pytestCheckHook pytest-cov ];
+  checkInputs = [
+    pytestCheckHook
+  ];
+
+  postPatch = ''
+    substituteInPlace setup.cfg \
+      --replace "--cov=marshmallow_polyfield" ""
+  '';
+
+  pythonImportsCheck = [
+    "marshmallow"
+  ];
 
   meta = with lib; {
-    description = "An unofficial extension to Marshmallow to allow for polymorphic fields";
+    description = "Extension to Marshmallow to allow for polymorphic fields";
     homepage = "https://github.com/Bachmann1234/marshmallow-polyfield";
     license = licenses.asl20;
     maintainers = with maintainers; [ drewrisinger ];
diff --git a/nixpkgs/pkgs/development/python-modules/marshmallow/default.nix b/nixpkgs/pkgs/development/python-modules/marshmallow/default.nix
index 3de64fea37fa..a4f60d8202a4 100644
--- a/nixpkgs/pkgs/development/python-modules/marshmallow/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/marshmallow/default.nix
@@ -9,26 +9,27 @@
 
 buildPythonPackage rec {
   pname = "marshmallow";
-  version = "3.11.1";
-  disabled = pythonOlder "3.5";
+  version = "3.13.0";
+
+  disabled = pythonOlder "3.6";
 
   src = fetchFromGitHub {
     owner = "marshmallow-code";
     repo = pname;
     rev = version;
-    sha256 = "1ypm142y3giaqydc7fkigm9r057yp2sd1ng5zr2x3w3wbbj5yfm6";
+    sha256 = "sha256-tP/RKo2Hzxz2bT7ybRs9wGzq7TpsmzmOPi3BGuSLDA0=";
   };
 
-  pythonImportsCheck = [
-    "marshmallow"
-  ];
-
   checkInputs = [
     pytestCheckHook
     pytz
     simplejson
   ];
 
+  pythonImportsCheck = [
+    "marshmallow"
+  ];
+
   meta = with lib; {
     description = ''
       A lightweight library for converting complex objects to and from
@@ -38,5 +39,4 @@ buildPythonPackage rec {
     license = licenses.mit;
     maintainers = with maintainers; [ cript0nauta ];
   };
-
 }
diff --git a/nixpkgs/pkgs/development/python-modules/mat2/default.nix b/nixpkgs/pkgs/development/python-modules/mat2/default.nix
index 99d94d3d1a80..0d54656c1586 100644
--- a/nixpkgs/pkgs/development/python-modules/mat2/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/mat2/default.nix
@@ -3,7 +3,6 @@
 , python
 , pythonOlder
 , fetchFromGitLab
-, fetchpatch
 , substituteAll
 , bubblewrap
 , exiftool
@@ -22,7 +21,7 @@
 
 buildPythonPackage rec {
   pname = "mat2";
-  version = "0.12.1";
+  version = "0.12.2";
 
   disabled = pythonOlder "3.5";
 
@@ -31,7 +30,7 @@ buildPythonPackage rec {
     owner = "jvoisin";
     repo = "mat2";
     rev = version;
-    sha256 = "sha256-TxHelOr7ygp4R+dW+oJ034l2w9zrB4gn0QLs5Pa4EFE=";
+    sha256 = "sha256-KaHdBmTeBlCRaVkG3WsfDtFo45s/X69x7VGDYY7W5O8=";
   };
 
   patches = [
@@ -50,18 +49,6 @@ buildPythonPackage rec {
     ./executable-name.patch
     # hardcode path to mat2 executable
     ./tests.patch
-    # remove for next release
-    (fetchpatch {
-      name = "fix-tests-ffmpeg-4.4.patch";
-      url = "https://0xacab.org/jvoisin/mat2/-/commit/c9be50f968212b01f8d8ad85e59e19c3e67d8578.patch";
-      sha256 = "0895dkv6575ps3drdfnli15cggx27n9irjx0axigrm4ql4ma0648";
-    })
-    # fix white space error in the tests for exiftool, remove for next release
-    (fetchpatch {
-      name = "fix-tests-exiftool.patch";
-      url = "https://0xacab.org/jvoisin/mat2/-/commit/6df615281b2a649b85ff7670f6d87d3beed0b977.patch";
-      sha256 = "1gix63n0mzavnqjq5ll0v210z4vdz4f93aq03bfzlgifxcd9vl1x";
-    })
   ];
 
   postPatch = ''
diff --git a/nixpkgs/pkgs/development/python-modules/mat2/paths.patch b/nixpkgs/pkgs/development/python-modules/mat2/paths.patch
index e0144be9fef6..7e828d3f5339 100644
--- a/nixpkgs/pkgs/development/python-modules/mat2/paths.patch
+++ b/nixpkgs/pkgs/development/python-modules/mat2/paths.patch
@@ -1,15 +1,17 @@
 diff --git a/dolphin/mat2.desktop b/dolphin/mat2.desktop
-index e623962..5d69ae2 100644
+index d365bc5..56313e2 100644
 --- a/dolphin/mat2.desktop
 +++ b/dolphin/mat2.desktop
-@@ -7,5 +7,5 @@ Type=Service
- [Desktop Action cleanMetadata]
+@@ -8,6 +8,6 @@ Type=Service
  Name=Clean metadata
+ Name[de]=Metadaten löschen
  Name[es]=Limpiar metadatos
 -Icon=/usr/share/icons/hicolor/scalable/apps/mat2.svg
 -Exec=kdialog --yesno  "$( mat2 -s %U )" --title "Clean Metadata?" && mat2 %U
+-Exec[de]=kdialog --yesno  "$( mat2 -s %U )" --title "Metadaten löschen?" && mat2 %U
 +Icon=@mat2svg@
-+Exec=@kdialog@ --yesno  "$( @mat2@ -s %U )" --title "Clean Metadata?" && @mat2@ %U
++Exec=@kdialog@ --yesno  "$( mat2 -s %U )" --title "Clean Metadata?" && mat2 %U
++Exec[de]=@kdialog@ --yesno  "$( mat2 -s %U )" --title "Metadaten löschen?" && mat2 %U
 diff --git a/libmat2/bubblewrap.py b/libmat2/bubblewrap.py
 index 970d5dd..5d3c0b7 100644
 --- a/libmat2/bubblewrap.py
diff --git a/nixpkgs/pkgs/development/python-modules/matplotlib/default.nix b/nixpkgs/pkgs/development/python-modules/matplotlib/default.nix
index beddaf6810dd..0e874d25f679 100644
--- a/nixpkgs/pkgs/development/python-modules/matplotlib/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/matplotlib/default.nix
@@ -17,14 +17,14 @@ let
 in
 
 buildPythonPackage rec {
-  version = "3.4.2";
+  version = "3.4.3";
   pname = "matplotlib";
 
   disabled = !isPy3k;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "d8d994cefdff9aaba45166eb3de4f5211adb4accac85cbf97137e98f26ea0219";
+    sha256 = "06032j0ccjxldx4z9kf97qps2g36mfgvy1nap3b9n75kzmnm4kzw";
   };
 
   XDG_RUNTIME_DIR = "/tmp";
diff --git a/nixpkgs/pkgs/development/python-modules/mattermostdriver/default.nix b/nixpkgs/pkgs/development/python-modules/mattermostdriver/default.nix
index 7d9421b5d949..6a0be0696063 100644
--- a/nixpkgs/pkgs/development/python-modules/mattermostdriver/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/mattermostdriver/default.nix
@@ -8,13 +8,13 @@
 
 buildPythonPackage rec {
   pname = "mattermostdriver";
-  version = "7.3.0";
+  version = "7.3.1";
 
   disabled = pythonOlder "3.5";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "17jqcpa1xd9n7bf4d5l7wmscls34kymv27gi17pyyfjxbwk5gsga";
+    sha256 = "bf629c4b8f825bd7196208aa93995ac5077bd60939ba67cca314a7f13c1dbcea";
   };
 
   propagatedBuildInputs = [ websockets requests ];
diff --git a/nixpkgs/pkgs/development/python-modules/mautrix/default.nix b/nixpkgs/pkgs/development/python-modules/mautrix/default.nix
index f0005eef61bf..1b8bcb293892 100644
--- a/nixpkgs/pkgs/development/python-modules/mautrix/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/mautrix/default.nix
@@ -4,11 +4,11 @@
 
 buildPythonPackage rec {
   pname = "mautrix";
-  version = "0.10.5";
+  version = "0.10.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "b7d52d72a9739963b6d39d5e58ef367c00490a90cf7795f23c8b2e2c140c8882";
+    sha256 = "2738370469f8ce27efc37aa6e17319a4149246c9a0da822c8d81d948f0c7e1a7";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/maxcube-api/default.nix b/nixpkgs/pkgs/development/python-modules/maxcube-api/default.nix
new file mode 100644
index 000000000000..36bcc35fc036
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/maxcube-api/default.nix
@@ -0,0 +1,42 @@
+{ lib
+, buildPythonPackage
+, pythonOlder
+, fetchFromGitHub
+, python
+}:
+
+buildPythonPackage rec {
+  pname = "maxcube-api";
+  version = "0.4.3";
+  format = "setuptools";
+  disabled = pythonOlder "3.7";
+
+  src = fetchFromGitHub {
+    owner = "hackercowboy";
+    repo = "python-${pname}";
+    rev = "V${version}";
+    sha256 = "10k61gfpnqljf3p3qxr97xq7j67a9cr4ivd9v72hdni0znrbx6ym";
+  };
+
+  postPatch = ''
+    substituteInPlace setup.py --replace "license=license" "license='MIT'"
+  '';
+
+  pythonImportsCheck = [
+    "maxcube"
+    "maxcube.cube"
+  ];
+
+  checkPhase = ''
+    runHook preCheck
+    ${python.interpreter} -m unittest discover
+    runHook postCheck
+  '';
+
+  meta = with lib; {
+    description = "eQ-3/ELV MAX! Cube Python API";
+    homepage = "https://github.com/hackercowboy/python-maxcube-api";
+    license = licenses.mit;
+    maintainers = with maintainers; [ hexa ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/maxminddb/default.nix b/nixpkgs/pkgs/development/python-modules/maxminddb/default.nix
index d101cdfd0c2e..f33e63db02fe 100644
--- a/nixpkgs/pkgs/development/python-modules/maxminddb/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/maxminddb/default.nix
@@ -7,13 +7,13 @@
 }:
 
 buildPythonPackage rec {
-  version = "2.0.3";
+  version = "2.1.0";
   pname = "maxminddb";
   disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "47e86a084dd814fac88c99ea34ba3278a74bc9de5a25f4b815b608798747c7dc";
+    sha256 = "c47b8acba98d03b8c762684d899623c257976f3eb0c9d557ff865d20cddc9d6b";
   };
 
   buildInputs = [ libmaxminddb ];
diff --git a/nixpkgs/pkgs/development/python-modules/mechanize/default.nix b/nixpkgs/pkgs/development/python-modules/mechanize/default.nix
index 5309855fb49e..aa309ff33cea 100644
--- a/nixpkgs/pkgs/development/python-modules/mechanize/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/mechanize/default.nix
@@ -6,11 +6,11 @@
 
 buildPythonPackage rec {
   pname = "mechanize";
-  version = "0.4.6";
+  version = "0.4.7";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "d16cea241253b5eb6380bf8a46627cad91d1f2c3f93a33279a31ce276d6c5d44";
+    sha256 = "1773a8f5818398e0010e781dc0f942cd88b107a57424c904d545cd827c216809";
   };
 
   propagatedBuildInputs = [ html5lib ];
diff --git a/nixpkgs/pkgs/development/python-modules/migen/default.nix b/nixpkgs/pkgs/development/python-modules/migen/default.nix
new file mode 100644
index 000000000000..41396e1c623b
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/migen/default.nix
@@ -0,0 +1,32 @@
+{ lib
+, buildPythonPackage
+, pythonOlder
+, fetchFromGitHub
+, colorama
+}:
+
+buildPythonPackage rec {
+  pname = "migen";
+  version = "unstable-2021-09-14";
+  disabled = pythonOlder "3.3";
+
+  src = fetchFromGitHub {
+    owner = "m-labs";
+    repo = "migen";
+    rev = "a5bc262560238f93ceaad423820eb06843326274";
+    sha256 = "32UjaIam/B7Gx6XbPcR067LcXfokJH2mATG9mU38a6o=";
+  };
+
+  propagatedBuildInputs = [
+    colorama
+  ];
+
+  pythonImportsCheck = [ "migen" ];
+
+  meta = with lib; {
+    description = " A Python toolbox for building complex digital hardware";
+    homepage = "https://m-labs.hk/migen";
+    license = licenses.bsd2;
+    maintainers = with maintainers; [ l-as ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/minidump/default.nix b/nixpkgs/pkgs/development/python-modules/minidump/default.nix
index 6c00ad650bb5..2f1f4718c611 100644
--- a/nixpkgs/pkgs/development/python-modules/minidump/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/minidump/default.nix
@@ -5,11 +5,11 @@
 
 buildPythonPackage rec {
   pname = "minidump";
-  version = "0.0.18";
+  version = "0.0.20";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-uf4KZc9C1gWRgHu4ttk1fpL2pG8oUb79uvCIlHItB/8=";
+    sha256 = "1rr91nnlzv7gnbcvv8qhbyx1kh2s4jdv7nv0qka5jya32rzjaigm";
   };
 
   # Upstream doesn't have tests
diff --git a/nixpkgs/pkgs/development/python-modules/mitmproxy/default.nix b/nixpkgs/pkgs/development/python-modules/mitmproxy/default.nix
index f9535ac0f31f..bd6ada6ecd10 100644
--- a/nixpkgs/pkgs/development/python-modules/mitmproxy/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/mitmproxy/default.nix
@@ -45,14 +45,14 @@
 
 buildPythonPackage rec {
   pname = "mitmproxy";
-  version = "7.0.2";
+  version = "7.0.3";
   disabled = pythonOlder "3.8";
 
   src = fetchFromGitHub {
     owner = pname;
     repo = pname;
     rev = "v${version}";
-    sha256 = "0y5zsay9b6xgibs6m4gckw63jip35vsdfajsh1nw2zcb2xs1a7qs";
+    sha256 = "sha256-j1lipshccPUpMR+o28hDyaJbrVgj6AHijFqOgVmrBkg=";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/mkl-service/default.nix b/nixpkgs/pkgs/development/python-modules/mkl-service/default.nix
index c54da3055e7c..be0ac454ee98 100644
--- a/nixpkgs/pkgs/development/python-modules/mkl-service/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/mkl-service/default.nix
@@ -2,13 +2,13 @@
 
 buildPythonPackage rec {
   pname = "mkl-service";
-  version = "2.4.0";
+  version = "2.4.0.post1";
 
   src = fetchFromGitHub {
     owner = "IntelPython";
     repo = "mkl-service";
     rev = "v${version}";
-    sha256 = "1x8j0ij582dyhay0gaqq45a2jz1m4fr8xw0v65ngviajj3cxmcpb";
+    sha256 = "0ysjn8z1hkscb4cycbrvcb93r04w5793yylsy40h5dvjd04ns5jc";
   };
 
   MKLROOT = mkl;
diff --git a/nixpkgs/pkgs/development/python-modules/mlflow/default.nix b/nixpkgs/pkgs/development/python-modules/mlflow/default.nix
index 2940c111e5dc..b50d98513a2f 100644
--- a/nixpkgs/pkgs/development/python-modules/mlflow/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/mlflow/default.nix
@@ -25,12 +25,12 @@
 
 buildPythonPackage rec {
   pname = "mlflow";
-  version = "1.18.0";
+  version = "1.20.1";
   disabled = isPy27;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "8942089589d08c05c8a7fc66828c02a9233be462c421881b50bc2a0b183dfdbe";
+    sha256 = "71764443c4942f181fee2d5bf44dd74a0507bcc5b62a1f1e08079d1f40a15fc0";
   };
 
   # run into https://stackoverflow.com/questions/51203641/attributeerror-module-alembic-context-has-no-attribute-config
diff --git a/nixpkgs/pkgs/development/python-modules/mne-python/default.nix b/nixpkgs/pkgs/development/python-modules/mne-python/default.nix
index 2dfe06d51770..8e17eacbf7b5 100644
--- a/nixpkgs/pkgs/development/python-modules/mne-python/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/mne-python/default.nix
@@ -16,7 +16,7 @@
 
 buildPythonPackage rec {
   pname = "mne-python";
-  version = "0.23.0";
+  version = "0.23.4";
 
   disabled = isPy27;
 
@@ -25,7 +25,7 @@ buildPythonPackage rec {
     owner = "mne-tools";
     repo = pname;
     rev = "v${version}";
-    sha256 = "02fcnfsrc6sccv6x2rnx86g0zw0ivk5s8gx230g6pxfg3lap6knv";
+    sha256 = "1kik52ssa6difkqz8xnvrcbpp4p7792hj1rcgyypb4q7sc048aqy";
   };
 
   propagatedBuildInputs = [ numpy scipy ];
diff --git a/nixpkgs/pkgs/development/python-modules/mocket/default.nix b/nixpkgs/pkgs/development/python-modules/mocket/default.nix
index 73a3b07a64c3..8739c0812833 100644
--- a/nixpkgs/pkgs/development/python-modules/mocket/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/mocket/default.nix
@@ -19,12 +19,12 @@
 
 buildPythonPackage rec {
   pname = "mocket";
-  version = "3.9.42";
+  version = "3.10.0";
   disabled = !isPy3k;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1vvlbnbypd4z1pjlvhwhd89fn0mis5acfx4v25f1mfl04k63ffah";
+    sha256 = "1fcb4203ae257145b97c865135b3a064b47f20f42dde88c8579f43d88f1a7dfb";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/monotonic/default.nix b/nixpkgs/pkgs/development/python-modules/monotonic/default.nix
index e93bf206edaa..d775d5157191 100644
--- a/nixpkgs/pkgs/development/python-modules/monotonic/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/monotonic/default.nix
@@ -5,11 +5,11 @@
 
 buildPythonPackage rec {
   pname = "monotonic";
-  version = "1.5";
+  version = "1.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "23953d55076df038541e648a53676fb24980f7a1be290cdda21300b3bc21dfb0";
+    sha256 = "3a55207bcfed53ddd5c5bae174524062935efed17792e9de2ad0205ce9ad63f7";
   };
 
   __propagatedImpureHostDeps = lib.optional stdenv.isDarwin "/usr/lib/libc.dylib";
diff --git a/nixpkgs/pkgs/development/python-modules/monty/default.nix b/nixpkgs/pkgs/development/python-modules/monty/default.nix
index ff236d9becc4..73325c24d94c 100644
--- a/nixpkgs/pkgs/development/python-modules/monty/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/monty/default.nix
@@ -5,6 +5,7 @@
 , msgpack
 , pytestCheckHook
 , numpy
+, pandas
 , pydantic
 , pymongo
 , ruamel_yaml
@@ -13,17 +14,21 @@
 
 buildPythonPackage rec {
   pname = "monty";
-  version = "2021.6.10";
+  version = "2021.8.17";
   disabled = pythonOlder "3.5"; # uses type annotations
 
-  # No tests in Pypi
   src = fetchFromGitHub {
     owner = "materialsvirtuallab";
     repo = pname;
     rev = "v${version}";
-    sha256 = "01fhl4pl5gj4ahph4lxcm0fmglh0bjw6jz9ckmgzviasg4l1j6h4";
+    sha256 = "0lg6d0qk6iv476rcn45p5f50kips5g9s709cxddwnk5yrz57c4d0";
   };
 
+  postPatch = ''
+    substituteInPlace tests/test_os.py \
+      --replace 'self.assertEqual("/usr/bin/find", which("/usr/bin/find"))' '#'
+  '';
+
   propagatedBuildInputs = [
     ruamel_yaml
     tqdm
@@ -33,15 +38,11 @@ buildPythonPackage rec {
   checkInputs = [
     pytestCheckHook
     numpy
+    pandas
     pydantic
     pymongo
   ];
 
-  preCheck = ''
-    substituteInPlace tests/test_os.py \
-      --replace 'self.assertEqual("/usr/bin/find", which("/usr/bin/find"))' '#'
-  '';
-
   meta = with lib; {
     description = "Serves as a complement to the Python standard library by providing a suite of tools to solve many common problems";
     longDescription = "
diff --git a/nixpkgs/pkgs/development/python-modules/motor/default.nix b/nixpkgs/pkgs/development/python-modules/motor/default.nix
index 318d519e57ce..b75936817426 100644
--- a/nixpkgs/pkgs/development/python-modules/motor/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/motor/default.nix
@@ -1,23 +1,29 @@
-{ lib, buildPythonPackage, fetchFromGitHub
-, pymongo, mockupdb
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, mockupdb
+, pymongo
+, pythonOlder
 }:
 
 buildPythonPackage rec {
   pname = "motor";
-  version = "2.4.0";
+  version = "2.5.1";
+  disabled = pythonOlder "3.6";
 
   src = fetchFromGitHub {
     owner = "mongodb";
     repo = pname;
     rev = version;
-    sha256 = "1sgaqg98h35lazzdi015q1i60ig7krid8b10a5rm6lf755y8yj2c";
+    sha256 = "sha256-r+HyIEC+Jafn7eMqkAldsZ5hbem+n+P76RJGAymmBks=";
   };
 
   propagatedBuildInputs = [ pymongo ];
 
+  checkInputs = [ mockupdb ];
+
   # network connections
   doCheck = false;
-  checkInputs = [ mockupdb ];
 
   pythonImportsCheck = [ "motor" ];
 
diff --git a/nixpkgs/pkgs/development/python-modules/moviepy/default.nix b/nixpkgs/pkgs/development/python-modules/moviepy/default.nix
index c3acdbe71ec2..a353816d252e 100644
--- a/nixpkgs/pkgs/development/python-modules/moviepy/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/moviepy/default.nix
@@ -1,7 +1,7 @@
 { lib
 , buildPythonPackage
 , fetchPypi
-, pythonAtLeast
+, pythonOlder
 , numpy
 , decorator
 , imageio
@@ -9,44 +9,56 @@
 , proglog
 , requests
 , tqdm
-# Advanced image processing (triples size of output)
+  # Advanced image processing (triples size of output)
 , advancedProcessing ? false
-, opencv3 ? null
-, scikitimage ? null
-, scikit-learn ? null
-, scipy ? null
-, matplotlib ? null
-, youtube-dl ? null
+, opencv3
+, scikitimage
+, scikit-learn
+, scipy
+, matplotlib
+, youtube-dl
 }:
 
-assert advancedProcessing -> (
-  opencv3 != null && scikitimage != null && scikit-learn != null
-  && scipy != null && matplotlib != null && youtube-dl != null);
-
 buildPythonPackage rec {
   pname = "moviepy";
   version = "1.0.3";
 
-  disabled = !(pythonAtLeast "3.4");
+  disabled = pythonOlder "3.5";
 
   src = fetchPypi {
     inherit pname version;
     sha256 = "2884e35d1788077db3ff89e763c5ba7bfddbd7ae9108c9bc809e7ba58fa433f5";
   };
 
+  postPatch = ''
+    substituteInPlace setup.py \
+      --replace "decorator>=4.0.2,<5.0" "decorator>=4.0.2,<6.0"
+  '';
+
   # No tests, require network connection
   doCheck = false;
 
   propagatedBuildInputs = [
-    numpy decorator imageio imageio-ffmpeg tqdm requests proglog
-  ] ++ (lib.optionals advancedProcessing [
-    opencv3 scikitimage scikit-learn scipy matplotlib youtube-dl
-  ]);
+    numpy
+    decorator
+    imageio
+    imageio-ffmpeg
+    tqdm
+    requests
+    proglog
+  ] ++ lib.optionals advancedProcessing [
+    opencv3
+    scikitimage
+    scikit-learn
+    scipy
+    matplotlib
+    youtube-dl
+  ];
 
   meta = with lib; {
     description = "Video editing with Python";
     homepage = "https://zulko.github.io/moviepy/";
     license = licenses.mit;
+    maintainers = with maintainers; [ ];
   };
-
 }
diff --git a/nixpkgs/pkgs/development/python-modules/murmurhash/default.nix b/nixpkgs/pkgs/development/python-modules/murmurhash/default.nix
index ca2ffea183b7..297026c18f72 100644
--- a/nixpkgs/pkgs/development/python-modules/murmurhash/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/murmurhash/default.nix
@@ -32,6 +32,6 @@ buildPythonPackage rec {
     description = "Cython bindings for MurmurHash2";
     homepage = "https://github.com/explosion/murmurhash";
     license = licenses.mit;
-    maintainers = with maintainers; [ aborsu sdll ];
+    maintainers = with maintainers; [ aborsu ];
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/mypy-boto3-builder/default.nix b/nixpkgs/pkgs/development/python-modules/mypy-boto3-builder/default.nix
index 0c871c90a3a5..e0a67d4f6505 100644
--- a/nixpkgs/pkgs/development/python-modules/mypy-boto3-builder/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/mypy-boto3-builder/default.nix
@@ -3,10 +3,11 @@
 , boto3
 , buildPythonPackage
 , fetchFromGitHub
+, isort
 , jinja2
 , md-toc
-, isort
 , mdformat
+, poetry-core
 , pyparsing
 , pytestCheckHook
 , pythonOlder
@@ -14,16 +15,22 @@
 
 buildPythonPackage rec {
   pname = "mypy-boto3-builder";
-  version = "4.14.1";
-  disabled = pythonOlder "3.6";
+  version = "5.4.0";
+  format = "pyproject";
+
+  disabled = pythonOlder "3.8";
 
   src = fetchFromGitHub {
     owner = "vemel";
     repo = "mypy_boto3_builder";
     rev = version;
-    sha256 = "sha256-y55bPi70ldd528Olr2atXHm5JHiLNBZ396D9qwbBmkc=";
+    sha256 = "sha256-PS2MMpI/ezjHnI6vUoHTt0uuuB/w94OrOYBLNCpSxIE=";
   };
 
+  nativeBuildInputs = [
+    poetry-core
+  ];
+
   propagatedBuildInputs = [
     black
     boto3
@@ -38,6 +45,11 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
+  disabledTests = [
+    # Should be fixed with 5.x
+    "test_get_types"
+  ];
+
   pythonImportsCheck = [ "mypy_boto3_builder" ];
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/development/python-modules/mypy-boto3-s3/default.nix b/nixpkgs/pkgs/development/python-modules/mypy-boto3-s3/default.nix
index b25e838c96ff..8a92882ff364 100644
--- a/nixpkgs/pkgs/development/python-modules/mypy-boto3-s3/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/mypy-boto3-s3/default.nix
@@ -8,12 +8,12 @@
 
 buildPythonPackage rec {
   pname = "mypy-boto3-s3";
-  version = "1.17.97";
+  version = "1.18.47";
   disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "cc12897498213e6aa1530d9f75dadb3916fcd3ce376639560c2fede2c93c51b9";
+    sha256 = "0687354a1970a157f293ff57f8b38379497b606643633912cc28f76e0333b301";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/mypy-protobuf/default.nix b/nixpkgs/pkgs/development/python-modules/mypy-protobuf/default.nix
index 6c6ea7b7b1c9..c7194d19b5cb 100644
--- a/nixpkgs/pkgs/development/python-modules/mypy-protobuf/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/mypy-protobuf/default.nix
@@ -1,17 +1,17 @@
-{ lib, fetchPypi, buildPythonApplication, protobuf, pythonOlder }:
+{ lib, fetchPypi, buildPythonApplication, protobuf, types-protobuf, grpcio-tools, pythonOlder }:
 
 buildPythonApplication rec {
   pname = "mypy-protobuf";
-  version = "2.4";
+  version = "2.9";
 
   disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "77e10c476cdd3ee14535c2357e64deac6b1a69f33eb500d795b064acda48c66f";
+    sha256 = "278172935d7121c2f8c7c0a05518dd565a2b76d9e9c4a0a3fcd08a21fa685d43";
   };
 
-  propagatedBuildInputs = [ protobuf ];
+  propagatedBuildInputs = [ protobuf types-protobuf grpcio-tools ];
 
   meta = with lib; {
     description = "Generate mypy stub files from protobuf specs";
diff --git a/nixpkgs/pkgs/development/python-modules/nbclient/default.nix b/nixpkgs/pkgs/development/python-modules/nbclient/default.nix
index 169b89f7b892..3b9986bae048 100644
--- a/nixpkgs/pkgs/development/python-modules/nbclient/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/nbclient/default.nix
@@ -6,12 +6,12 @@
 
 buildPythonPackage rec {
   pname = "nbclient";
-  version = "0.5.3";
+  version = "0.5.4";
   disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "db17271330c68c8c88d46d72349e24c147bb6f34ec82d8481a8f025c4d26589c";
+    sha256 = "6c8ad36a28edad4562580847f9f1636fe5316a51a323ed85a24a4ad37d4aefce";
   };
 
   inherit doCheck;
diff --git a/nixpkgs/pkgs/development/python-modules/nbconvert/default.nix b/nixpkgs/pkgs/development/python-modules/nbconvert/default.nix
index 02eda2beb195..67d08f9e50ff 100644
--- a/nixpkgs/pkgs/development/python-modules/nbconvert/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/nbconvert/default.nix
@@ -23,11 +23,11 @@
 
 buildPythonPackage rec {
   pname = "nbconvert";
-  version = "6.0.7";
+  version = "6.1.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "cbbc13a86dfbd4d1b5dee106539de0795b4db156c894c2c5dc382062bbc29002";
+    sha256 = "d22a8ff202644d31db254d24d52c3a96c82156623fcd7c7f987bba2612303ec9";
   };
 
   # Add $out/share/jupyter to the list of paths that are used to search for
diff --git a/nixpkgs/pkgs/development/python-modules/nbdime/default.nix b/nixpkgs/pkgs/development/python-modules/nbdime/default.nix
index 96fc94d43e85..a4cbe11fbe7a 100644
--- a/nixpkgs/pkgs/development/python-modules/nbdime/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/nbdime/default.nix
@@ -24,12 +24,12 @@
 
 buildPythonPackage rec {
   pname = "nbdime";
-  version = "2.1.0";
+  version = "3.1.0";
   disabled = !isPy3k;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "4e3efdcfda31c3074cb565cd8e76e2e5421b1c4560c3a00c56f8679dd15590e5";
+    sha256 = "12dc4390b355b26d07ac8d11d50efbcb54bae0ad5842b817131babd2f4567963";
   };
 
   checkInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/niluclient/default.nix b/nixpkgs/pkgs/development/python-modules/niluclient/default.nix
new file mode 100644
index 000000000000..7f6aa69da61e
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/niluclient/default.nix
@@ -0,0 +1,35 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, pythonOlder
+, requests
+}:
+
+buildPythonPackage rec {
+  pname = "niluclient";
+  version = "0.1.2";
+  format = "setuptools";
+
+  disabled = pythonOlder "3.6";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "11ymn0cr4lchrcnf2xxlgljw223gwln01gxwr7mcgf95yc4006iq";
+  };
+
+  propagatedBuildInputs = [
+    requests
+  ];
+
+  # Project has no tests
+  doCheck = false;
+
+  pythonImportsCheck = [ "niluclient" ];
+
+  meta = with lib; {
+    description = "Python client for getting air pollution data from NILU sensor stations";
+    homepage = "https://github.com/hfurubotten/niluclient";
+    license = with licenses; [ mit ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/node-semver/default.nix b/nixpkgs/pkgs/development/python-modules/node-semver/default.nix
index 535ff621de5c..276011e65ea6 100644
--- a/nixpkgs/pkgs/development/python-modules/node-semver/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/node-semver/default.nix
@@ -1,14 +1,14 @@
 { lib, fetchPypi, buildPythonPackage, pytest }:
 
 buildPythonPackage rec {
-  version = "0.7.0";
+  version = "0.8.1";
   pname = "node-semver";
 
   checkInputs = [ pytest ];
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1p7ink1wajkc31r05k1yn37gk377033a9vhin8v4j757d4ha1f91";
+    sha256 = "281600d009606f4f63ddcbe148992e235b39a69937b9c20359e2f4a2adbb1e00";
   };
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/development/python-modules/notus-scanner/default.nix b/nixpkgs/pkgs/development/python-modules/notus-scanner/default.nix
new file mode 100644
index 000000000000..dbf01f3698d5
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/notus-scanner/default.nix
@@ -0,0 +1,56 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, fetchpatch
+, paho-mqtt
+, poetry-core
+, psutil
+, pytestCheckHook
+, pythonOlder
+}:
+
+buildPythonPackage rec {
+  pname = "notus-scanner";
+  version = "unstable-2021-09-05";
+  format = "pyproject";
+
+  disabled = pythonOlder "3.7";
+
+  src = fetchFromGitHub {
+    owner = "greenbone";
+    repo = pname;
+    rev = "049f9a5e6439e4e5113e3b8f30b25ead12d42a56";
+    sha256 = "1fjxyn8wg2kf6xy3pbh7d7yn20dk529p03xpqyz7s40n9nsxhnza";
+  };
+
+  nativeBuildInputs = [
+    poetry-core
+  ];
+
+  propagatedBuildInputs = [
+    paho-mqtt
+    psutil
+  ];
+
+  checkInputs = [
+    pytestCheckHook
+  ];
+
+  patches = [
+    # Switch to poetry-core, https://github.com/greenbone/notus-scanner/pull/31
+    (fetchpatch {
+      name = "switch-to-poetry-core.patch";
+      url = "https://github.com/greenbone/notus-scanner/commit/b52eea317faca30d411096044f9e5ea20b58da65.patch";
+      sha256 = "0q11aslhva47kkpsnpayra7spa849j894vqv34pjqhcnlyipqw6d";
+    })
+  ];
+
+  pythonImportsCheck = [ "notus.scanner" ];
+
+  meta = with lib; {
+    description = "Helper to create results from local security checks";
+    homepage = "https://github.com/greenbone/notus-scanner";
+    license = with licenses; [ agpl3Plus ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/ntc-templates/default.nix b/nixpkgs/pkgs/development/python-modules/ntc-templates/default.nix
index dcb326a05a94..d7b3db1f452a 100644
--- a/nixpkgs/pkgs/development/python-modules/ntc-templates/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/ntc-templates/default.nix
@@ -11,7 +11,7 @@
 
 buildPythonPackage rec {
   pname = "ntc-templates";
-  version = "2.3.1";
+  version = "2.3.2";
   format = "pyproject";
   disabled = isPy27;
 
@@ -19,7 +19,7 @@ buildPythonPackage rec {
     owner = "networktocode";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0s4my422cdmjfz787a7697938qfnllxwx004jfp3a8alzw2h30g1";
+    sha256 = "0sga86ajbh3a8wsb7q5mxzxhlg4fds8pr33ybjgi1sda4bvp2dvp";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/numba/default.nix b/nixpkgs/pkgs/development/python-modules/numba/default.nix
index 74f7d4003dcd..287737900b89 100644
--- a/nixpkgs/pkgs/development/python-modules/numba/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/numba/default.nix
@@ -12,28 +12,39 @@
 }:
 
 buildPythonPackage rec {
-  version = "0.53.1";
+  version = "0.54.0";
   pname = "numba";
   disabled = pythonOlder "3.6" || pythonAtLeast "3.10";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "9cd4e5216acdc66c4e9dab2dfd22ddb5bef151185c070d4a3cd8e78638aff5b0";
+    sha256 = "bad6bd98ab2e41c34aa9c80b8d9737e07d92a53df4f74d3ada1458b0b516ccff";
   };
 
+  postPatch = ''
+    substituteInPlace setup.py \
+      --replace "1.21" "1.22"
+
+    substituteInPlace numba/__init__.py \
+      --replace "(1, 20)" "(1, 21)"
+  '';
+
   NIX_CFLAGS_COMPILE = lib.optionalString stdenv.isDarwin "-I${lib.getDev libcxx}/include/c++/v1";
 
   propagatedBuildInputs = [ numpy llvmlite setuptools ];
-  pythonImportsCheck = [ "numba" ];
+
   # Copy test script into $out and run the test suite.
   checkPhase = ''
     ${python.interpreter} -m numba.runtests
   '';
+
   # ImportError: cannot import name '_typeconv'
   doCheck = false;
 
+  pythonImportsCheck = [ "numba" ];
+
   meta =  with lib; {
-    homepage = "http://numba.pydata.org/";
+    homepage = "https://numba.pydata.org/";
     license = licenses.bsd2;
     description = "Compiling Python code using LLVM";
     maintainers = with maintainers; [ fridh ];
diff --git a/nixpkgs/pkgs/development/python-modules/numpy/default.nix b/nixpkgs/pkgs/development/python-modules/numpy/default.nix
index dbbd750acf5b..60f3bf1091ec 100644
--- a/nixpkgs/pkgs/development/python-modules/numpy/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/numpy/default.nix
@@ -40,14 +40,14 @@ let
   };
 in buildPythonPackage rec {
   pname = "numpy";
-  version = "1.20.3";
+  version = "1.21.2";
   format = "pyproject.toml";
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
     extension = "zip";
-    sha256 = "e55185e51b18d788e49fe8305fd73ef4470596b33fc2c1ceb304566b99c71a69";
+    sha256 = "423216d8afc5923b15df86037c6053bf030d15cc9e3224206ef868c2d63dd6dc";
   };
 
   patches = lib.optionals python.hasDistutilsCxxPatch [
@@ -73,6 +73,10 @@ in buildPythonPackage rec {
     ln -s ${cfg} site.cfg
   '';
 
+  # Workaround flakey compiler feature detection
+  # https://github.com/numpy/numpy/issues/19624
+  hardeningDisable = [ "strictoverflow" ];
+
   enableParallelBuilding = true;
 
   checkInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/nunavut/default.nix b/nixpkgs/pkgs/development/python-modules/nunavut/default.nix
index e8d032e16aba..c628abad8691 100644
--- a/nixpkgs/pkgs/development/python-modules/nunavut/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/nunavut/default.nix
@@ -7,12 +7,12 @@
 
  buildPythonPackage rec {
   pname = "nunavut";
-  version = "1.2.2";
+  version = "1.4.2";
   disabled = pythonOlder "3.5"; # only python>=3.5 is supported
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "78ab56951172ecd92f9b66dbf9b0ea986dcc6899d462eeef74563ddf33a5a9a5";
+    sha256 = "7238780e42a8d6b7fd3296273c76d35dbebb4520d6778472d556b68b77e2aade";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/ocrmypdf/default.nix b/nixpkgs/pkgs/development/python-modules/ocrmypdf/default.nix
new file mode 100644
index 000000000000..531e042c5b95
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/ocrmypdf/default.nix
@@ -0,0 +1,84 @@
+{ lib
+, buildPythonPackage
+, cffi
+, coloredlogs
+, fetchFromGitHub
+, ghostscript
+, img2pdf
+, importlib-resources
+, jbig2enc
+, leptonica
+, pdfminer
+, pikepdf
+, pillow
+, pluggy
+, pngquant
+, pytest-xdist
+, pytestCheckHook
+, reportlab
+, setuptools
+, setuptools-scm
+, setuptools-scm-git-archive
+, stdenv
+, substituteAll
+, tesseract4
+, tqdm
+, unpaper
+}:
+
+buildPythonPackage rec {
+  pname = "ocrmypdf";
+  version = "12.5.0";
+
+  src = fetchFromGitHub {
+    owner = "jbarlow83";
+    repo = "OCRmyPDF";
+    rev = "v${version}";
+    sha256 = "sha256-g80WedX+TGHE9EJ/RSgOc53PM17V3WZslUNaHoqKTo0=";
+  };
+
+  patches = [
+    (substituteAll {
+      src = ./paths.patch;
+      gs = "${lib.getBin ghostscript}/bin/gs";
+      jbig2 = "${lib.getBin jbig2enc}/bin/jbig2";
+      liblept = "${lib.getLib leptonica}/lib/liblept${stdenv.hostPlatform.extensions.sharedLibrary}";
+      pngquant = "${lib.getBin pngquant}/bin/pngquant";
+      tesseract = "${lib.getBin tesseract4}/bin/tesseract";
+      unpaper = "${lib.getBin unpaper}/bin/unpaper";
+    })
+  ];
+
+  nativeBuildInputs = [
+    setuptools-scm-git-archive
+    setuptools-scm
+  ];
+
+  propagatedBuildInputs = [
+    cffi
+    coloredlogs
+    img2pdf
+    importlib-resources
+    pdfminer
+    pikepdf
+    pillow
+    pluggy
+    reportlab
+    setuptools
+    tqdm
+  ];
+
+  checkInputs = [
+    pytest-xdist
+    pytestCheckHook
+  ];
+
+  meta = with lib; {
+    homepage = "https://github.com/jbarlow83/OCRmyPDF";
+    description = "Adds an OCR text layer to scanned PDF files, allowing them to be searched";
+    license = with licenses; [ mpl20 mit ];
+    platforms = platforms.linux;
+    maintainers = with maintainers; [ kiwi dotlambda ];
+    changelog = "https://github.com/jbarlow83/OCRmyPDF/blob/v${version}/docs/release_notes.rst";
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/ocrmypdf/paths.patch b/nixpkgs/pkgs/development/python-modules/ocrmypdf/paths.patch
new file mode 100644
index 000000000000..9bfcc7285541
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/ocrmypdf/paths.patch
@@ -0,0 +1,160 @@
+diff --git a/src/ocrmypdf/_exec/ghostscript.py b/src/ocrmypdf/_exec/ghostscript.py
+index 5c357f1b..f459763a 100644
+--- a/src/ocrmypdf/_exec/ghostscript.py
++++ b/src/ocrmypdf/_exec/ghostscript.py
+@@ -25,28 +25,7 @@ from ocrmypdf.subprocess import get_version, run, run_polling_stderr
+ 
+ log = logging.getLogger(__name__)
+ 
+-missing_gs_error = """
+----------------------------------------------------------------------
+-This error normally occurs when ocrmypdf find can't Ghostscript.
+-Please ensure Ghostscript is installed and its location is added to
+-the system PATH environment variable.
+-
+-For details see:
+-    https://ocrmypdf.readthedocs.io/en/latest/installation.html
+----------------------------------------------------------------------
+-"""
+-
+-_gswin = None
+-if os.name == 'nt':
+-    _gswin = which('gswin64c')
+-    if not _gswin:
+-        _gswin = which('gswin32c')
+-        if not _gswin:
+-            raise MissingDependencyError(missing_gs_error)
+-    _gswin = Path(_gswin).stem
+-
+-GS = _gswin if _gswin else 'gs'
+-del _gswin
++GS = '@gs@'
+ 
+ 
+ def version():
+diff --git a/src/ocrmypdf/_exec/jbig2enc.py b/src/ocrmypdf/_exec/jbig2enc.py
+index 2e8a058b..65a09088 100644
+--- a/src/ocrmypdf/_exec/jbig2enc.py
++++ b/src/ocrmypdf/_exec/jbig2enc.py
+@@ -14,7 +14,7 @@ from ocrmypdf.subprocess import get_version, run
+ 
+ 
+ def version():
+-    return get_version('jbig2', regex=r'jbig2enc (\d+(\.\d+)*).*')
++    return get_version('@jbig2@', regex=r'jbig2enc (\d+(\.\d+)*).*')
+ 
+ 
+ def available():
+@@ -27,7 +27,7 @@ def available():
+ 
+ def convert_group(*, cwd, infiles, out_prefix):
+     args = [
+-        'jbig2',
++        '@jbig2@',
+         '-b',
+         out_prefix,
+         '-s',  # symbol mode (lossy)
+@@ -46,7 +46,7 @@ def convert_group_mp(args):
+ 
+ 
+ def convert_single(*, cwd, infile, outfile):
+-    args = ['jbig2', '-p', infile]
++    args = ['@jbig2@', '-p', infile]
+     with open(outfile, 'wb') as fstdout:
+         proc = run(args, cwd=cwd, stdout=fstdout, stderr=PIPE)
+     proc.check_returncode()
+diff --git a/src/ocrmypdf/_exec/pngquant.py b/src/ocrmypdf/_exec/pngquant.py
+index ca8a4542..d0544174 100644
+--- a/src/ocrmypdf/_exec/pngquant.py
++++ b/src/ocrmypdf/_exec/pngquant.py
+@@ -19,7 +19,7 @@ from ocrmypdf.subprocess import get_version, run
+ 
+ 
+ def version():
+-    return get_version('pngquant', regex=r'(\d+(\.\d+)*).*')
++    return get_version('@pngquant@', regex=r'(\d+(\.\d+)*).*')
+ 
+ 
+ def available():
+@@ -46,7 +46,7 @@ def input_as_png(input_file: Path):
+ def quantize(input_file: Path, output_file: Path, quality_min: int, quality_max: int):
+     with input_as_png(input_file) as input_stream:
+         args = [
+-            'pngquant',
++            '@pngquant@',
+             '--force',
+             '--skip-if-larger',
+             '--quality',
+diff --git a/src/ocrmypdf/_exec/tesseract.py b/src/ocrmypdf/_exec/tesseract.py
+index 33ead41e..5840f7c1 100644
+--- a/src/ocrmypdf/_exec/tesseract.py
++++ b/src/ocrmypdf/_exec/tesseract.py
+@@ -78,7 +78,7 @@ class TesseractVersion(StrictVersion):
+ 
+ 
+ def version():
+-    return get_version('tesseract', regex=r'tesseract\s(.+)')
++    return get_version('@tesseract@', regex=r'tesseract\s(.+)')
+ 
+ 
+ def has_user_words():
+@@ -100,7 +100,7 @@ def get_languages():
+         msg += output
+         return msg
+ 
+-    args_tess = ['tesseract', '--list-langs']
++    args_tess = ['@tesseract@', '--list-langs']
+     try:
+         proc = run(
+             args_tess,
+@@ -122,7 +122,7 @@ def get_languages():
+ 
+ 
+ def tess_base_args(langs: List[str], engine_mode: Optional[int]) -> List[str]:
+-    args = ['tesseract']
++    args = ['@tesseract@']
+     if langs:
+         args.extend(['-l', '+'.join(langs)])
+     if engine_mode is not None:
+diff --git a/src/ocrmypdf/_exec/unpaper.py b/src/ocrmypdf/_exec/unpaper.py
+index 3c3ae72c..d269966a 100644
+--- a/src/ocrmypdf/_exec/unpaper.py
++++ b/src/ocrmypdf/_exec/unpaper.py
+@@ -31,7 +31,7 @@ log = logging.getLogger(__name__)
+ 
+ 
+ def version() -> str:
+-    return get_version('unpaper')
++    return get_version('@unpaper@')
+ 
+ 
+ def _setup_unpaper_io(tmpdir: Path, input_file: Path) -> Tuple[Path, Path]:
+@@ -71,7 +71,7 @@ def _setup_unpaper_io(tmpdir: Path, input_file: Path) -> Tuple[Path, Path]:
+ def run(
+     input_file: Path, output_file: Path, *, dpi: DecFloat, mode_args: List[str]
+ ) -> None:
+-    args_unpaper = ['unpaper', '-v', '--dpi', str(round(dpi, 6))] + mode_args
++    args_unpaper = ['@unpaper@', '-v', '--dpi', str(round(dpi, 6))] + mode_args
+ 
+     with TemporaryDirectory() as tmpdir:
+         input_pnm, output_pnm = _setup_unpaper_io(Path(tmpdir), input_file)
+diff --git a/src/ocrmypdf/leptonica.py b/src/ocrmypdf/leptonica.py
+index e4814f1a..fdaf7ea4 100644
+--- a/src/ocrmypdf/leptonica.py
++++ b/src/ocrmypdf/leptonica.py
+@@ -33,14 +33,7 @@ from ocrmypdf.lib._leptonica import ffi
+ 
+ logger = logging.getLogger(__name__)
+ 
+-if os.name == 'nt':
+-    from ocrmypdf.subprocess._windows import shim_env_path
+-
+-    libname = 'liblept-5'
+-    os.environ['PATH'] = shim_env_path()
+-else:
+-    libname = 'lept'
+-_libpath = find_library(libname)
++_libpath = '@liblept@'
+ if not _libpath:
+     raise MissingDependencyError(
+         """
diff --git a/nixpkgs/pkgs/development/python-modules/openshift/default.nix b/nixpkgs/pkgs/development/python-modules/openshift/default.nix
index 052d364982b3..78e0c53c9112 100644
--- a/nixpkgs/pkgs/development/python-modules/openshift/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/openshift/default.nix
@@ -1,23 +1,33 @@
-{
-  lib
-  , buildPythonPackage
-  , fetchPypi
-  , jinja2
-  , kubernetes
-  , ruamel-yaml
-  , six
-  , python-string-utils
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, jinja2
+, kubernetes
+, ruamel-yaml
+, six
+, python-string-utils
+, pytest-bdd
+, pytestCheckHook
 }:
 
 buildPythonPackage rec {
   pname = "openshift";
-  version = "0.12.0";
+  version = "0.12.1";
 
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "sha256-aggRnD4goiZJPp4cngp8AIrJC/V46378cwUSfq8Xml4=";
+  src = fetchFromGitHub {
+    owner = "openshift";
+    repo = "openshift-restclient-python";
+    rev = "v${version}";
+    sha256 = "1di55xg3nl4dwrrfw314p4mfm6593kdi7ia517v1sm6x5p4hjl78";
   };
 
+  postPatch = ''
+    substituteInPlace requirements.txt \
+      --replace "kubernetes ~= 12.0" "kubernetes"
+
+    sed -i '/--cov/d' setup.cfg
+  '';
+
   propagatedBuildInputs = [
     jinja2
     kubernetes
@@ -26,10 +36,18 @@ buildPythonPackage rec {
     six
   ];
 
-  # tries to connect to the network
-  doCheck = false;
   pythonImportsCheck = ["openshift"];
 
+  checkInputs = [
+    pytest-bdd
+    pytestCheckHook
+  ];
+
+  disabledTestPaths = [
+    # requires docker
+    "test/functional"
+  ];
+
   meta = with lib; {
     description = "Python client for the OpenShift API";
     homepage = "https://github.com/openshift/openshift-restclient-python";
diff --git a/nixpkgs/pkgs/development/python-modules/openstacksdk/default.nix b/nixpkgs/pkgs/development/python-modules/openstacksdk/default.nix
index 5e7442ebc5f0..ec45fd8d09b8 100644
--- a/nixpkgs/pkgs/development/python-modules/openstacksdk/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/openstacksdk/default.nix
@@ -1,26 +1,20 @@
 { lib
 , buildPythonPackage
+, callPackage
 , fetchPypi
 , appdirs
 , cryptography
-, ddt
 , dogpile_cache
-, hacking
 , jmespath
 , jsonpatch
-, jsonschema
 , keystoneauth1
 , munch
 , netifaces
 , os-service-types
-, oslo-config
-, oslotest
 , pbr
-, prometheus-client
-, requests-mock
+, pyyaml
 , requestsexceptions
-, stestr
-, testscenarios
+, stdenv
 }:
 
 buildPythonPackage rec {
@@ -44,35 +38,15 @@ buildPythonPackage rec {
     os-service-types
     pbr
     requestsexceptions
+    pyyaml
   ];
 
-  checkInputs = [
-    ddt
-    hacking
-    jsonschema
-    oslo-config
-    oslotest
-    prometheus-client
-    requests-mock
-    stestr
-    testscenarios
-  ];
+  # Checks moved to 'passthru.tests' to workaround slowness
+  doCheck = false;
 
-  checkPhase = ''
-    stestr run -e <(echo "
-    openstack.tests.unit.cloud.test_image.TestImage.test_create_image_task
-    openstack.tests.unit.image.v2.test_proxy.TestImageProxy.test_wait_for_task_error_396
-    openstack.tests.unit.image.v2.test_proxy.TestImageProxy.test_wait_for_task_wait
-    openstack.tests.unit.test_resource.TestWaitForStatus.test_status_fails
-    openstack.tests.unit.test_resource.TestWaitForStatus.test_status_fails_different_attribute
-    openstack.tests.unit.test_resource.TestWaitForStatus.test_status_match
-    openstack.tests.unit.test_resource.TestWaitForStatus.test_status_match_with_none
-    openstack.tests.unit.test_stats.TestStats.test_list_projects
-    openstack.tests.unit.test_stats.TestStats.test_projects
-    openstack.tests.unit.test_stats.TestStats.test_servers
-    openstack.tests.unit.test_stats.TestStats.test_servers_no_detail
-    ")
-  '';
+  passthru.tests = {
+    tests = callPackage ./tests.nix { };
+  };
 
   pythonImportsCheck = [ "openstack" ];
 
diff --git a/nixpkgs/pkgs/development/python-modules/openstacksdk/tests.nix b/nixpkgs/pkgs/development/python-modules/openstacksdk/tests.nix
new file mode 100644
index 000000000000..7a379d3a019e
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/openstacksdk/tests.nix
@@ -0,0 +1,65 @@
+{ buildPythonPackage
+, ddt
+, hacking
+, jsonschema
+, lib
+, openstacksdk
+, oslo-config
+, oslotest
+, prometheus-client
+, requests-mock
+, stdenv
+, stestr
+, testscenarios
+}:
+
+buildPythonPackage rec {
+  pname = "openstacksdk-tests";
+  inherit (openstacksdk) version;
+
+  src = openstacksdk.src;
+
+  dontBuild = true;
+  dontInstall = true;
+
+  checkInputs = [
+    ddt
+    hacking
+    jsonschema
+    openstacksdk
+    oslo-config
+    oslotest
+    prometheus-client
+    requests-mock
+    stestr
+    testscenarios
+  ];
+
+  checkPhase =
+    let aarch64TestsExcluded = lib.optionalString stdenv.hostPlatform.isAarch64 ''
+      openstack.tests.unit.cloud.test_baremetal_node.TestBaremetalNode.test_node_set_provision_state_with_retries
+      openstack.tests.unit.cloud.test_role_assignment.TestRoleAssignment.test_grant_role_user_domain_exists
+      openstack.tests.unit.cloud.test_volume_backups.TestVolumeBackups.test_delete_volume_backup_force
+      openstack.tests.unit.object_store.v1.test_proxy.TestTempURLBytesPathAndKey.test_set_account_temp_url_key_second
+      openstack.tests.unit.cloud.test_security_groups.TestSecurityGroups.test_delete_security_group_neutron_not_found
+    ''; in
+    ''
+      stestr run -e <(echo "${aarch64TestsExcluded}
+      openstack.tests.unit.cloud.test_baremetal_node.TestBaremetalNode.test_wait_for_baremetal_node_lock_locked
+      openstack.tests.unit.cloud.test_baremetal_node.TestBaremetalNode.test_inspect_machine_inspect_failed
+      openstack.tests.unit.cloud.test_baremetal_node.TestBaremetalNode.test_inspect_machine_available_wait
+      openstack.tests.unit.cloud.test_baremetal_node.TestBaremetalNode.test_inspect_machine_wait
+      openstack.tests.unit.cloud.test_image.TestImage.test_create_image_task
+      openstack.tests.unit.image.v2.test_proxy.TestImageProxy.test_wait_for_task_error_396
+      openstack.tests.unit.image.v2.test_proxy.TestImageProxy.test_wait_for_task_wait
+      openstack.tests.unit.test_resource.TestWaitForStatus.test_status_fails
+      openstack.tests.unit.test_resource.TestWaitForStatus.test_status_fails_different_attribute
+      openstack.tests.unit.test_resource.TestWaitForStatus.test_status_match
+      openstack.tests.unit.test_resource.TestWaitForStatus.test_status_match_with_none
+      openstack.tests.unit.test_stats.TestStats.test_list_projects
+      openstack.tests.unit.test_stats.TestStats.test_projects
+      openstack.tests.unit.test_stats.TestStats.test_servers
+      openstack.tests.unit.test_stats.TestStats.test_servers_no_detail
+      ")
+    '';
+}
diff --git a/nixpkgs/pkgs/development/python-modules/optuna/default.nix b/nixpkgs/pkgs/development/python-modules/optuna/default.nix
index 0b496b5ef0f8..457d796d0b78 100644
--- a/nixpkgs/pkgs/development/python-modules/optuna/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/optuna/default.nix
@@ -30,14 +30,14 @@
 
 buildPythonPackage rec {
   pname = "optuna";
-  version = "2.8.0";
+  version = "2.9.1";
   disabled = isPy27;
 
   src = fetchFromGitHub {
     owner = "optuna";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1w5vyl36mbk78a5028qa7dlzhavrs1dkx3q8m50ij37pa5cnyksz";
+    sha256 = "1fx80qjrkmnvn2mg9fx26qn3sjlwnwqlmkaf6sqhdw79pn6khlpi";
   };
 
   checkInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/orjson/default.nix b/nixpkgs/pkgs/development/python-modules/orjson/default.nix
new file mode 100644
index 000000000000..55fbb2df8e25
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/orjson/default.nix
@@ -0,0 +1,61 @@
+{ lib
+, stdenv
+, pythonOlder
+, rustPlatform
+, fetchFromGitHub
+, buildPythonPackage
+, libiconv
+, numpy
+, psutil
+, pytestCheckHook
+, python-dateutil
+, pytz
+, xxhash
+}:
+
+buildPythonPackage rec {
+  pname = "orjson";
+  version = "3.6.3";
+  disabled = pythonOlder "3.7";
+
+  src = fetchFromGitHub {
+    owner = "ijl";
+    repo = pname;
+    rev = version;
+    sha256 = "10clf13bp3fqd9b7n1isrfwz7sngcl1j6birqc1xyg9wzfw1kslj";
+  };
+
+  cargoDeps = rustPlatform.fetchCargoTarball {
+    inherit src;
+    name = "${pname}-${version}";
+    sha256 = "163rf8k7qb1whjf78i8v5dlyif1sgvd9xkj8li81j45abgzkq86w";
+  };
+
+  format = "pyproject";
+
+  nativeBuildInputs = with rustPlatform; [
+    cargoSetupHook
+    maturinBuildHook
+  ];
+
+  buildInputs = lib.optionals stdenv.isDarwin [ libiconv ];
+
+  checkInputs = [
+    numpy
+    psutil
+    pytestCheckHook
+    python-dateutil
+    pytz
+    xxhash
+  ];
+
+  pythonImportsCheck = [ pname ];
+
+  meta = with lib; {
+    description = "Fast, correct Python JSON library supporting dataclasses, datetimes, and numpy";
+    homepage = "https://github.com/ijl/orjson";
+    license = with licenses; [ asl20 mit ];
+    platforms = platforms.unix;
+    maintainers = with maintainers; [ misuzu ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/os-service-types/default.nix b/nixpkgs/pkgs/development/python-modules/os-service-types/default.nix
index 990af2ce6b9d..147685fb2b91 100644
--- a/nixpkgs/pkgs/development/python-modules/os-service-types/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/os-service-types/default.nix
@@ -27,7 +27,7 @@ buildPythonPackage rec {
   doCheck = false;
 
   passthru.tests = {
-    pytest = callPackage ./tests.nix { };
+    tests = callPackage ./tests.nix { };
   };
 
   pythonImportsCheck = [ "os_service_types" ];
diff --git a/nixpkgs/pkgs/development/python-modules/osc-lib/default.nix b/nixpkgs/pkgs/development/python-modules/osc-lib/default.nix
index 8d0f9d51fb00..560c8869b00f 100644
--- a/nixpkgs/pkgs/development/python-modules/osc-lib/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/osc-lib/default.nix
@@ -13,11 +13,11 @@
 
 buildPythonPackage rec {
   pname = "osc-lib";
-  version = "2.4.1";
+  version = "2.4.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1ianpk32vwdllpbk4zhfifqb5b064cbmia2hm02lcrh2m76z0zi5";
+    sha256 = "d6b530e3e50646840a6a5ef134e00f285cc4a04232c163f28585226ed40cc968";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/oslo-config/default.nix b/nixpkgs/pkgs/development/python-modules/oslo-config/default.nix
index fface886eb94..125481d1e026 100644
--- a/nixpkgs/pkgs/development/python-modules/oslo-config/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/oslo-config/default.nix
@@ -43,7 +43,7 @@ buildPythonPackage rec {
   doCheck = false;
 
   passthru.tests = {
-    pytest = callPackage ./tests.nix {};
+    tests = callPackage ./tests.nix {};
   };
 
   pythonImportsCheck = [ "oslo_config" ];
diff --git a/nixpkgs/pkgs/development/python-modules/oslotest/default.nix b/nixpkgs/pkgs/development/python-modules/oslotest/default.nix
index 66e06c8b3e72..aa646a08ee90 100644
--- a/nixpkgs/pkgs/development/python-modules/oslotest/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/oslotest/default.nix
@@ -27,7 +27,7 @@ buildPythonPackage rec {
   doCheck = false;
 
   passthru.tests = {
-    pytest = callPackage ./tests.nix {};
+    tests = callPackage ./tests.nix {};
   };
 
   pythonImportsCheck = [ "oslotest" ];
diff --git a/nixpkgs/pkgs/development/python-modules/ospd/default.nix b/nixpkgs/pkgs/development/python-modules/ospd/default.nix
new file mode 100644
index 000000000000..2c90a0e066d7
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/ospd/default.nix
@@ -0,0 +1,53 @@
+{ lib
+, stdenv
+, buildPythonPackage
+, defusedxml
+, deprecated
+, fetchFromGitHub
+, lxml
+, paramiko
+, poetry
+, psutil
+, pytestCheckHook
+, pythonOlder
+}:
+
+buildPythonPackage rec {
+  pname = "ospd";
+  version = "21.4.3";
+  format = "pyproject";
+
+  disabled = pythonOlder "3.7" || stdenv.isDarwin;
+
+  src = fetchFromGitHub {
+    owner = "greenbone";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "1i4nfvxgxibqmqb6jwih951960sm2zy00i1wnjfnwb6za1xkpbkp";
+  };
+
+  nativeBuildInputs = [
+    poetry
+  ];
+
+  propagatedBuildInputs = [
+    defusedxml
+    deprecated
+    lxml
+    paramiko
+    psutil
+  ];
+
+  checkInputs = [
+    pytestCheckHook
+  ];
+
+  pythonImportsCheck = [ "ospd" ];
+
+  meta = with lib; {
+    description = "Framework for vulnerability scanners which support OSP";
+    homepage = "https://github.com/greenbone/ospd";
+    license = with licenses; [ agpl3Plus ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/p1monitor/default.nix b/nixpkgs/pkgs/development/python-modules/p1monitor/default.nix
new file mode 100644
index 000000000000..4a7ce2aec3f2
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/p1monitor/default.nix
@@ -0,0 +1,45 @@
+{ lib
+, aiohttp
+, aresponses
+, buildPythonPackage
+, fetchFromGitHub
+, poetry-core
+, pythonOlder
+, yarl
+}:
+
+buildPythonPackage rec {
+  pname = "p1monitor";
+  version = "1.0.0";
+  format = "pyproject";
+
+  disabled = pythonOlder "3.8";
+
+  src = fetchFromGitHub {
+    owner = "klaasnicolaas";
+    repo = "python-p1monitor";
+    rev = "v${version}";
+    sha256 = "1xfr097hmjppp6cfdvfjypxmr1sb9dasq1s3np2vd5d93w0p5123";
+  };
+
+  nativeBuildInputs = [
+    poetry-core
+  ];
+
+  propagatedBuildInputs = [
+    aiohttp
+    yarl
+  ];
+
+  # Project has no tests
+  doCheck = false;
+
+  pythonImportsCheck = [ "p1monitor" ];
+
+  meta = with lib; {
+    description = "Python client for the P1 Monitor";
+    homepage = "https://github.com/klaasnicolaas/python-p1monitor";
+    license = with licenses; [ mit ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/pandas/default.nix b/nixpkgs/pkgs/development/python-modules/pandas/default.nix
index b7e237a3e3ba..52a77826f2d6 100644
--- a/nixpkgs/pkgs/development/python-modules/pandas/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pandas/default.nix
@@ -33,11 +33,11 @@
 
 buildPythonPackage rec {
   pname = "pandas";
-  version = "1.2.4";
+  version = "1.3.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "649ecab692fade3cbfcf967ff936496b0cfba0af00a55dfaacd82bdda5cb2279";
+    sha256 = "cbcb84d63867af3411fa063af3de64902665bb5b3d40b25b2059e40603594e87";
   };
 
   nativeBuildInputs = [ cython ];
@@ -105,6 +105,8 @@ buildPythonPackage rec {
     "test_missing_required_dependency"
     # AssertionError with 1.2.3
     "test_from_coo"
+    # AssertionError: No common DType exists for the given inputs
+    "test_comparison_invalid"
   ] ++ lib.optionals stdenv.isDarwin [
     "test_locale"
     "test_clipboard"
diff --git a/nixpkgs/pkgs/development/python-modules/panel/default.nix b/nixpkgs/pkgs/development/python-modules/panel/default.nix
index 58ae09af14b9..3f6875f4986f 100644
--- a/nixpkgs/pkgs/development/python-modules/panel/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/panel/default.nix
@@ -1,6 +1,7 @@
 { lib
 , buildPythonPackage
 , fetchPypi
+, bleach
 , bokeh
 , param
 , pyviz-comms
@@ -12,10 +13,11 @@
 }:
 
 let
-  node = callPackage ./node {};
-in buildPythonPackage rec {
+  node = callPackage ./node { };
+in
+buildPythonPackage rec {
   pname = "panel";
-  version = "0.11.3";
+  version = "0.12.1";
 
   # Don't forget to also update the node packages
   # 1. retrieve the package.json file
@@ -23,7 +25,7 @@ in buildPythonPackage rec {
   # 3. node2nix
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-HpHYHysPE6MRxR0kek5C7sunHMfBsUGdZfxamz2jcLc=";
+    sha256 = "e4898d60abdb82f8a429df7f59dbf8bcaf7e19b3e633555512ceb4ce06678458";
   };
 
   # Since 0.10.0 panel attempts to fetch from the web.
@@ -42,6 +44,7 @@ in buildPythonPackage rec {
   '';
 
   propagatedBuildInputs = [
+    bleach
     bokeh
     param
     pyviz-comms
diff --git a/nixpkgs/pkgs/development/python-modules/panel/node/node-env.nix b/nixpkgs/pkgs/development/python-modules/panel/node/node-env.nix
index c2b723195b77..21089c4d5459 100644
--- a/nixpkgs/pkgs/development/python-modules/panel/node/node-env.nix
+++ b/nixpkgs/pkgs/development/python-modules/panel/node/node-env.nix
@@ -391,13 +391,14 @@ let
     , dontStrip ? true
     , unpackPhase ? "true"
     , buildPhase ? "true"
+    , meta ? {}
     , ... }@args:
 
     let
-      extraArgs = removeAttrs args [ "name" "dependencies" "buildInputs" "dontStrip" "dontNpmInstall" "preRebuild" "unpackPhase" "buildPhase" ];
+      extraArgs = removeAttrs args [ "name" "dependencies" "buildInputs" "dontStrip" "dontNpmInstall" "preRebuild" "unpackPhase" "buildPhase" "meta" ];
     in
     stdenv.mkDerivation ({
-      name = "node_${name}-${version}";
+      name = "${name}-${version}";
       buildInputs = [ tarWrapper python nodejs ]
         ++ lib.optional (stdenv.isLinux) utillinux
         ++ lib.optional (stdenv.isDarwin) libtool
@@ -446,6 +447,11 @@ let
         # Run post install hook, if provided
         runHook postInstall
       '';
+
+      meta = {
+        # default to Node.js' platforms
+        platforms = nodejs.meta.platforms;
+      } // meta;
     } // extraArgs);
 
   # Builds a node environment (a node_modules folder and a set of binaries)
diff --git a/nixpkgs/pkgs/development/python-modules/panel/node/node-packages.nix b/nixpkgs/pkgs/development/python-modules/panel/node/node-packages.nix
index 6e45b64d5c6f..78c7c4ac37d1 100644
--- a/nixpkgs/pkgs/development/python-modules/panel/node/node-packages.nix
+++ b/nixpkgs/pkgs/development/python-modules/panel/node/node-packages.nix
@@ -4,13 +4,22 @@
 
 let
   sources = {
-    "@bokeh/bokehjs-2.3.1" = {
+    "@babel/runtime-7.15.3" = {
+      name = "_at_babel_slash_runtime";
+      packageName = "@babel/runtime";
+      version = "7.15.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/runtime/-/runtime-7.15.3.tgz";
+        sha512 = "OvwMLqNXkCXSz1kSm58sEsNuhqOx/fKpnUnKnFB5v8uDda5bLNEHNgKPvhDN6IU0LDcnHQ90LlJ0Q6jnyBSIBA==";
+      };
+    };
+    "@bokeh/bokehjs-2.3.3" = {
       name = "_at_bokeh_slash_bokehjs";
       packageName = "@bokeh/bokehjs";
-      version = "2.3.1";
+      version = "2.3.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@bokeh/bokehjs/-/bokehjs-2.3.1.tgz";
-        sha512 = "DlNZaqAJFUw38IuSk2TUOcfyiK8Ya3kDRpYt/RgVUftIDW2CWLbBo47kbug9+ykEF49rcnlxcCXhNXzpg4V7gw==";
+        url = "https://registry.npmjs.org/@bokeh/bokehjs/-/bokehjs-2.3.3.tgz";
+        sha512 = "Zev3p5xnS47YsZo5hcGGNUdISH3mkVLKSc6LMVqEIRlnc7Ay79TD9bnApeYh90k0JU1pcMh0gEqHgwVOGPTZ/w==";
       };
     };
     "@bokeh/numbro-1.6.2" = {
@@ -31,13 +40,13 @@ let
         sha512 = "W9tm8Qdw5BrylbZbaVWaQMgLfW/klesnj6J3FnyWpo18hCCOFApccUD8iOnRv7bF6PHlgWk84mW3JT5RSzYKjA==";
       };
     };
-    "@luma.gl/constants-8.4.4" = {
+    "@luma.gl/constants-8.5.5" = {
       name = "_at_luma.gl_slash_constants";
       packageName = "@luma.gl/constants";
-      version = "8.4.4";
+      version = "8.5.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@luma.gl/constants/-/constants-8.4.4.tgz";
-        sha512 = "4e58QW6UKXkxiIvWSLoAnTc4cT8nvb0PhLzu1h8KiCuaDT5Vq8csOymcNOy/jhpfcIhHlmT1KwowF5m/DcOlKg==";
+        url = "https://registry.npmjs.org/@luma.gl/constants/-/constants-8.5.5.tgz";
+        sha512 = "3pDC7jFaXliDP7Gvr6pPkorLFBXDnuakNeN87aEYcIM+p3XrkF0rPnDQJEzwScWS9RIopXT858xmL3vG7IYsDw==";
       };
     };
     "@types/debounce-1.2.0" = {
@@ -58,31 +67,31 @@ let
         sha512 = "0L8Mq1+oaIW0oVzGUDbSW+HnTjCNb4CmoIQE5BkoHt/A7x20z0MJ1PnwfH3atty/vbWLGgvJwVu2Mz3SKFiEFw==";
       };
     };
-    "@types/jquery-3.5.5" = {
+    "@types/jquery-3.5.6" = {
       name = "_at_types_slash_jquery";
       packageName = "@types/jquery";
-      version = "3.5.5";
+      version = "3.5.6";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@types/jquery/-/jquery-3.5.5.tgz";
-        sha512 = "6RXU9Xzpc6vxNrS6FPPapN1SxSHgQ336WC6Jj/N8q30OiaBZ00l1GBgeP7usjVZPivSkGUfL1z/WW6TX989M+w==";
+        url = "https://registry.npmjs.org/@types/jquery/-/jquery-3.5.6.tgz";
+        sha512 = "SmgCQRzGPId4MZQKDj9Hqc6kSXFNWZFHpELkyK8AQhf8Zr6HKfCzFv9ZC1Fv3FyQttJZOlap3qYb12h61iZAIg==";
       };
     };
-    "@types/sizzle-2.3.2" = {
+    "@types/sizzle-2.3.3" = {
       name = "_at_types_slash_sizzle";
       packageName = "@types/sizzle";
-      version = "2.3.2";
+      version = "2.3.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@types/sizzle/-/sizzle-2.3.2.tgz";
-        sha512 = "7EJYyKTL7tFR8+gDbB6Wwz/arpGa0Mywk1TJbNzKzHtzbwVmY4HR9WqS5VV7dsBUKQmPNr192jHr/VpBluj/hg==";
+        url = "https://registry.npmjs.org/@types/sizzle/-/sizzle-2.3.3.tgz";
+        sha512 = "JYM8x9EGF163bEyhdJBpR2QX1R5naCJHC8ucJylJ3w9/CVBaskdQ8WqBf8MmQrd1kRvp/a4TS8HJ+bxzR7ZJYQ==";
       };
     };
-    "@types/slickgrid-2.1.30" = {
+    "@types/slickgrid-2.1.31" = {
       name = "_at_types_slash_slickgrid";
       packageName = "@types/slickgrid";
-      version = "2.1.30";
+      version = "2.1.31";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@types/slickgrid/-/slickgrid-2.1.30.tgz";
-        sha512 = "9nTqNWD3BtEVK0CP+G+mBtvSrKTfQy3Dg5/al+GdTSVMHFm37UxsHJ1eURwPg7rYu6vc7xU95fGTCKMZbxsD5w==";
+        url = "https://registry.npmjs.org/@types/slickgrid/-/slickgrid-2.1.31.tgz";
+        sha512 = "t/LodOkh8yP+o2jKcHsC0hAjDh1kl4RSFXKWmR9+U5FwXE7VpipqiAkE1W3NnGNA3ni5xnKQJt/CNXurJWTQ6w==";
       };
     };
     "choices.js-9.0.1" = {
@@ -202,13 +211,13 @@ let
         sha1 = "df8c69eef1647923c7157b9ce83840610b02cc39";
       };
     };
-    "ext-1.4.0" = {
+    "ext-1.5.0" = {
       name = "ext";
       packageName = "ext";
-      version = "1.4.0";
+      version = "1.5.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/ext/-/ext-1.4.0.tgz";
-        sha512 = "Key5NIsUxdqKg3vIsdw9dSuXpPCQ297y6wBjL30edxwPgt2E44WcWBZey/ZvUc6sERLTxKdyCu4gZFmUbk1Q7A==";
+        url = "https://registry.npmjs.org/ext/-/ext-1.5.0.tgz";
+        sha512 = "+ONcYoWj/SoQwUofMr94aGu05Ou4FepKi7N7b+O8T4jVfyIsZQV1/xeS8jpaBzF0csAk0KLXoHCxU7cKYZjo1Q==";
       };
     };
     "fast-deep-equal-2.0.1" = {
@@ -283,13 +292,13 @@ let
         sha1 = "04ef77862cff2bb79d30f7692095930222bf60f1";
       };
     };
-    "htm-3.0.4" = {
+    "htm-3.1.0" = {
       name = "htm";
       packageName = "htm";
-      version = "3.0.4";
+      version = "3.1.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/htm/-/htm-3.0.4.tgz";
-        sha512 = "VRdvxX3tmrXuT/Ovt59NMp/ORMFi4bceFMDjos1PV4E0mV+5votuID8R60egR9A4U8nLt238R/snlJGz3UYiTQ==";
+        url = "https://registry.npmjs.org/htm/-/htm-3.1.0.tgz";
+        sha512 = "L0s3Sid5r6YwrEvkig14SK3Emmc+kIjlfLhEGn2Vy3bk21JyDEes4MoDsbJk6luaPp8bugErnxPz86ZuAw6e5Q==";
       };
     };
     "jquery-3.6.0" = {
@@ -310,15 +319,6 @@ let
         sha1 = "bcb4045c8dd0539c134bc1488cdd3e768a7a9e51";
       };
     };
-    "js-tokens-4.0.0" = {
-      name = "js-tokens";
-      packageName = "js-tokens";
-      version = "4.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz";
-        sha512 = "RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==";
-      };
-    };
     "json-formatter-js-2.3.4" = {
       name = "json-formatter-js";
       packageName = "json-formatter-js";
@@ -328,15 +328,6 @@ let
         sha512 = "gmAzYRtPRmYzeAT4T7+t3NhTF89JOAIioCVDddl9YDb3ls3kWcskirafw/MZGJaRhEU6fRimGJHl7CC7gaAI2Q==";
       };
     };
-    "loose-envify-1.4.0" = {
-      name = "loose-envify";
-      packageName = "loose-envify";
-      version = "1.4.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz";
-        sha512 = "lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==";
-      };
-    };
     "mgrs-1.0.0" = {
       name = "mgrs";
       packageName = "mgrs";
@@ -364,31 +355,40 @@ let
         sha512 = "4RtQ1+LHJKesDCNJrXkQcwXAWCrC2aggdLYMstS/G5fEWL+fXZbUA9pwVNHFghMGuFGRATlDLNInRaPeRKzpFQ==";
       };
     };
-    "preact-10.5.13" = {
+    "preact-10.5.14" = {
       name = "preact";
       packageName = "preact";
-      version = "10.5.13";
+      version = "10.5.14";
       src = fetchurl {
-        url = "https://registry.npmjs.org/preact/-/preact-10.5.13.tgz";
-        sha512 = "q/vlKIGNwzTLu+jCcvywgGrt+H/1P/oIRSD6mV4ln3hmlC+Aa34C7yfPI4+5bzW8pONyVXYS7SvXosy2dKKtWQ==";
+        url = "https://registry.npmjs.org/preact/-/preact-10.5.14.tgz";
+        sha512 = "KojoltCrshZ099ksUZ2OQKfbH66uquFoxHSbnwKbTJHeQNvx42EmC7wQVWNuDt6vC5s3nudRHFtKbpY4ijKlaQ==";
       };
     };
-    "proj4-2.7.2" = {
+    "proj4-2.7.5" = {
       name = "proj4";
       packageName = "proj4";
-      version = "2.7.2";
+      version = "2.7.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/proj4/-/proj4-2.7.2.tgz";
-        sha512 = "x/EboBmIq48a9FED0Z9zWCXkd8VIpXHLsyEXljGtsnzeztC41bFjPjJ0S//wBbNLDnDYRe0e6c3FSSiqMCebDA==";
+        url = "https://registry.npmjs.org/proj4/-/proj4-2.7.5.tgz";
+        sha512 = "5ecXUXbHAfvdhfBQpU7EhUfPCQGUCPmVup/4gnZA3bJY3JcK/xxzm4QQDz1xiXokN6ux65VDczlCtBtKrTSpAQ==";
       };
     };
-    "redux-4.0.5" = {
+    "redux-4.1.1" = {
       name = "redux";
       packageName = "redux";
-      version = "4.0.5";
+      version = "4.1.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/redux/-/redux-4.0.5.tgz";
-        sha512 = "VSz1uMAH24DM6MF72vcojpYPtrTUu3ByVWfPL1nPfVRb5mZVTve5GnNCUV53QM/BZ66xfWrm0CTWoM+Xlz8V1w==";
+        url = "https://registry.npmjs.org/redux/-/redux-4.1.1.tgz";
+        sha512 = "hZQZdDEM25UY2P493kPYuKqviVwZ58lEmGQNeQ+gXa+U0gYPUBf7NKYazbe3m+bs/DzM/ahN12DbF+NG8i0CWw==";
+      };
+    };
+    "regenerator-runtime-0.13.9" = {
+      name = "regenerator-runtime";
+      packageName = "regenerator-runtime";
+      version = "0.13.9";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz";
+        sha512 = "p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA==";
       };
     };
     "sprintf-js-1.1.2" = {
@@ -400,15 +400,6 @@ let
         sha512 = "VE0SOVEHCk7Qc8ulkWw3ntAzXuqf7S2lvwQaDLRnUeIEaKNQJzV6BwmLKhOqT61aGhfUMrXeaBk+oDGCzvhcug==";
       };
     };
-    "symbol-observable-1.2.0" = {
-      name = "symbol-observable";
-      packageName = "symbol-observable";
-      version = "1.2.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/symbol-observable/-/symbol-observable-1.2.0.tgz";
-        sha512 = "e900nM8RRtGhlV36KGEU9k65K3mPb1WV70OdjfxlG2EAuM1noi/E/BaW/uMhL7bPEssK8QV57vN3esixjUvcXQ==";
-      };
-    };
     "timezone-1.0.23" = {
       name = "timezone";
       packageName = "timezone";
@@ -427,13 +418,13 @@ let
         sha512 = "Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==";
       };
     };
-    "tslib-2.2.0" = {
+    "tslib-2.3.1" = {
       name = "tslib";
       packageName = "tslib";
-      version = "2.2.0";
+      version = "2.3.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/tslib/-/tslib-2.2.0.tgz";
-        sha512 = "gS9GVHRU+RGn5KQM2rllAlR3dU6m7AcpJKdtH8gFvQiC4Otgk98XnmMU+nZenHt/+VhnBPWwgrJsyrdcw6i23w==";
+        url = "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz";
+        sha512 = "77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==";
       };
     };
     "type-1.2.0" = {
@@ -463,35 +454,36 @@ let
         sha1 = "3013e0ea181756306f1609e959cafbc722adb3e9";
       };
     };
-    "wkt-parser-1.2.4" = {
+    "wkt-parser-1.3.1" = {
       name = "wkt-parser";
       packageName = "wkt-parser";
-      version = "1.2.4";
+      version = "1.3.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/wkt-parser/-/wkt-parser-1.2.4.tgz";
-        sha512 = "ZzKnc7ml/91fOPh5bANBL4vUlWPIYYv11waCtWTkl2TRN+LEmBg60Q1MA8gqV4hEp4MGfSj9JiHz91zw/gTDXg==";
+        url = "https://registry.npmjs.org/wkt-parser/-/wkt-parser-1.3.1.tgz";
+        sha512 = "XK5qV+Y5gsygQfHx2/cS5a7Zxsgleaw8iX5UPC5eOXPc0TgJAu1JB9lr0iYYX3zAnN3p0aNiaN5c+1Bdblxwrg==";
       };
     };
   };
   args = {
     name = "_at_holoviz_slash_panel";
     packageName = "@holoviz/panel";
-    version = "0.11.3";
+    version = "0.12.1";
     src = ./.;
     dependencies = [
-      sources."@bokeh/bokehjs-2.3.1"
+      sources."@babel/runtime-7.15.3"
+      sources."@bokeh/bokehjs-2.3.3"
       sources."@bokeh/numbro-1.6.2"
       (sources."@bokeh/slickgrid-2.4.2702" // {
         dependencies = [
           sources."tslib-1.14.1"
         ];
       })
-      sources."@luma.gl/constants-8.4.4"
+      sources."@luma.gl/constants-8.5.5"
       sources."@types/debounce-1.2.0"
       sources."@types/gl-matrix-2.4.5"
-      sources."@types/jquery-3.5.5"
-      sources."@types/sizzle-2.3.2"
-      sources."@types/slickgrid-2.1.30"
+      sources."@types/jquery-3.5.6"
+      sources."@types/sizzle-2.3.3"
+      sources."@types/slickgrid-2.1.31"
       sources."choices.js-9.0.1"
       sources."d-1.0.1"
       sources."debounce-1.2.1"
@@ -508,7 +500,7 @@ let
       sources."es6-symbol-3.1.3"
       sources."es6-weak-map-2.0.3"
       sources."event-emitter-0.3.5"
-      (sources."ext-1.4.0" // {
+      (sources."ext-1.5.0" // {
         dependencies = [
           sources."type-2.5.0"
         ];
@@ -521,25 +513,23 @@ let
       sources."fuse.js-3.6.1"
       sources."gl-matrix-3.3.0"
       sources."hammerjs-2.0.8"
-      sources."htm-3.0.4"
+      sources."htm-3.1.0"
       sources."jquery-3.6.0"
       sources."jquery-ui-1.12.1"
-      sources."js-tokens-4.0.0"
       sources."json-formatter-js-2.3.4"
-      sources."loose-envify-1.4.0"
       sources."mgrs-1.0.0"
       sources."next-tick-1.0.0"
       sources."nouislider-14.7.0"
-      sources."preact-10.5.13"
-      sources."proj4-2.7.2"
-      sources."redux-4.0.5"
+      sources."preact-10.5.14"
+      sources."proj4-2.7.5"
+      sources."redux-4.1.1"
+      sources."regenerator-runtime-0.13.9"
       sources."sprintf-js-1.1.2"
-      sources."symbol-observable-1.2.0"
       sources."timezone-1.0.23"
-      sources."tslib-2.2.0"
+      sources."tslib-2.3.1"
       sources."type-1.2.0"
       sources."underscore.template-0.1.7"
-      sources."wkt-parser-1.2.4"
+      sources."wkt-parser-1.3.1"
     ];
     buildInputs = globalBuildInputs;
     meta = {
diff --git a/nixpkgs/pkgs/development/python-modules/panel/node/package.json b/nixpkgs/pkgs/development/python-modules/panel/node/package.json
index f40e3773e23b..dc1d13ab4875 100644
--- a/nixpkgs/pkgs/development/python-modules/panel/node/package.json
+++ b/nixpkgs/pkgs/development/python-modules/panel/node/package.json
@@ -1,6 +1,6 @@
 {
   "name": "@holoviz/panel",
-  "version": "0.11.1",
+  "version": "0.12.1",
   "description": "A high level dashboarding library for python visualization libraries.",
   "license": "BSD-3-Clause",
   "repository": {
@@ -8,7 +8,7 @@
     "url": "https://github.com/holoviz/panel.git"
   },
   "dependencies": {
-    "@bokeh/bokehjs": "^2.3.0",
+    "@bokeh/bokehjs": "^2.3.3",
     "@luma.gl/constants": "^8.0.3",
     "@types/debounce": "^1.2.0",
     "@types/gl-matrix": "^2.4.5",
diff --git a/nixpkgs/pkgs/development/python-modules/panflute/default.nix b/nixpkgs/pkgs/development/python-modules/panflute/default.nix
index 332c4c16bd6a..4e161d4bfa3c 100644
--- a/nixpkgs/pkgs/development/python-modules/panflute/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/panflute/default.nix
@@ -4,6 +4,7 @@
 , pyyaml
 , buildPythonPackage
 , isPy3k
+, fetchpatch
 }:
 
 buildPythonPackage rec{
@@ -16,6 +17,14 @@ buildPythonPackage rec{
     inherit pname version;
     sha256 = "8a3d5dd2a10c3aa6fa8167713fedb47400f0e8ae6ea8346fd4b599842bb1882d";
   };
+  patches = [
+    # Upstream has relaxed the version constaints for the click dependency
+    # but there hasn't been a release since then
+    (fetchpatch {
+      url = "https://github.com/sergiocorreia/panflute/commit/dee6c716a73072a968d67f8638a61de44025d8de.patch";
+      sha256 = "sha256-Kj/NTcXsSkevpfr8OwoIQi0p6ChXDM6YgYDPNHJtJZo=";
+    })
+  ];
 
   propagatedBuildInputs = [ click pyyaml ];
 
diff --git a/nixpkgs/pkgs/development/python-modules/paramiko/default.nix b/nixpkgs/pkgs/development/python-modules/paramiko/default.nix
index c2237f68524f..88d63f0de93f 100644
--- a/nixpkgs/pkgs/development/python-modules/paramiko/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/paramiko/default.nix
@@ -6,7 +6,7 @@
 , invoke
 , pynacl
 , pyasn1
-, pytest
+, pytestCheckHook
 , pytest-relaxed
 , mock
 }:
@@ -20,25 +20,21 @@ buildPythonPackage rec {
     sha256 = "7f36f4ba2c0d81d219f4595e35f70d56cc94f9ac40a6acdf51d6ca210ce65035";
   };
 
-  checkInputs = [ invoke pytest mock pytest-relaxed ];
   propagatedBuildInputs = [ bcrypt cryptography pynacl pyasn1 ];
 
-  __darwinAllowLocalNetworking = true;
+  checkInputs = [ invoke pytestCheckHook pytest-relaxed mock ];
+
+  disabledTestPaths = [
+    "tests/test_sftp.py"
+    "tests/test_config.py"
+  ];
 
-  # 2 sftp tests fail (skip for now)
-  # test_config relies on artifacts to be to downloaded
-  # RSA tests don't have valid keys
-  checkPhase = ''
-    pytest tests \
-      --ignore=tests/test_sftp.py \
-      --ignore=tests/test_config.py
-  '';
+  __darwinAllowLocalNetworking = true;
 
   meta = with pkgs.lib; {
     homepage = "https://github.com/paramiko/paramiko/";
     description = "Native Python SSHv2 protocol library";
     license = licenses.lgpl21Plus;
-
     longDescription = ''
       This is a library for making SSH2 connections (client or server).
       Emphasis is on using SSH2 as an alternative to SSL for making secure
diff --git a/nixpkgs/pkgs/development/python-modules/parquet/default.nix b/nixpkgs/pkgs/development/python-modules/parquet/default.nix
new file mode 100644
index 000000000000..ceaba917e832
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/parquet/default.nix
@@ -0,0 +1,44 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, pytestCheckHook
+, python-snappy
+, pythonOlder
+, thriftpy2
+}:
+
+buildPythonPackage rec {
+  pname = "parquet";
+  version = "1.3.1";
+
+  src = fetchFromGitHub {
+    owner = "jcrobak";
+    repo = "parquet-python";
+    rev = "v${version}";
+    sha256 = "1ahvg4dz9fzi4vdm9jmslq3v3jahjj17fdcc5fljgcw6h9yxyl2r";
+  };
+
+  propagatedBuildInputs = [
+    python-snappy
+    thriftpy2
+  ];
+
+  checkInputs = [
+    pytestCheckHook
+  ];
+
+  disabledTests = [
+    # Fails with AttributeError
+    "test_bson"
+    "testFromExample"
+  ];
+
+  pythonImportsCheck = [ "thriftpy2" ];
+
+  meta = with lib; {
+    description = "Python implementation of the parquet columnar file format";
+    homepage = "https://github.com/jcrobak/parquet-python";
+    license = licenses.bsd2;
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/parsedmarc/default.nix b/nixpkgs/pkgs/development/python-modules/parsedmarc/default.nix
new file mode 100644
index 000000000000..b9fb35016c3b
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/parsedmarc/default.nix
@@ -0,0 +1,74 @@
+{ buildPythonPackage
+, fetchPypi
+, fetchurl
+, pythonOlder
+, lib
+, nixosTests
+
+# pythonPackages
+, tqdm
+, dnspython
+, expiringdict
+, urllib3
+, requests
+, publicsuffix2
+, xmltodict
+, geoip2
+, IMAPClient
+, dateparser
+, elasticsearch-dsl
+, kafka-python
+, mailsuite
+, lxml
+, boto3
+}:
+
+let
+  dashboard = fetchurl {
+    url = "https://raw.githubusercontent.com/domainaware/parsedmarc/77331b55c54cb3269205295bd57d0ab680638964/grafana/Grafana-DMARC_Reports.json";
+    sha256 = "0wbihyqbb4ndjg79qs8088zgrcg88km8khjhv2474y7nzjzkf43i";
+  };
+in
+buildPythonPackage rec {
+  pname = "parsedmarc";
+  version = "7.0.1";
+
+  disabled = pythonOlder "3.7";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1mi4hx410y7ikpfy1582lm252si0c3yryj0idqgqbx417fm21jjc";
+  };
+
+  propagatedBuildInputs = [
+    tqdm
+    dnspython
+    expiringdict
+    urllib3
+    requests
+    publicsuffix2
+    xmltodict
+    geoip2
+    IMAPClient
+    dateparser
+    elasticsearch-dsl
+    kafka-python
+    mailsuite
+    lxml
+    boto3
+  ];
+
+  pythonImportsCheck = [ "parsedmarc" ];
+
+  passthru = {
+    inherit dashboard;
+    tests = nixosTests.parsedmarc;
+  };
+
+  meta = {
+    description = "Python module and CLI utility for parsing DMARC reports";
+    homepage = "https://domainaware.github.io/parsedmarc/";
+    maintainers = with lib.maintainers; [ talyz ];
+    license = lib.licenses.asl20;
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/parts/default.nix b/nixpkgs/pkgs/development/python-modules/parts/default.nix
index 83d7d7046f99..c615fe5a0307 100644
--- a/nixpkgs/pkgs/development/python-modules/parts/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/parts/default.nix
@@ -5,11 +5,11 @@
 
 buildPythonPackage rec {
   pname = "parts";
-  version = "1.0.3";
+  version = "1.1.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "a4137612bc050f606b4d6f9e6a554ebfb50633c8dd9699481f82271f84d9425f";
+    sha256 = "2212129476f6d285c3aaab309b80b83664d13dca5a42c5ca3500bd32130af7ec";
   };
 
   # Project has no tests
diff --git a/nixpkgs/pkgs/development/python-modules/pathlib2/default.nix b/nixpkgs/pkgs/development/python-modules/pathlib2/default.nix
index b21536060d3a..757ddc7d9746 100644
--- a/nixpkgs/pkgs/development/python-modules/pathlib2/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pathlib2/default.nix
@@ -10,11 +10,11 @@
 
 buildPythonPackage rec {
   pname = "pathlib2";
-  version = "2.3.5";
+  version = "2.3.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "6cd9a47b597b37cc57de1c05e56fb1a1c9cc9fab04fe78c29acd090418529868";
+    sha256 = "7d8bcb5555003cdf4a8d2872c538faa3a0f5d20630cb360e518ca3b981795e5f";
   };
 
   propagatedBuildInputs = [ six ] ++ lib.optional (pythonOlder "3.5") scandir;
diff --git a/nixpkgs/pkgs/development/python-modules/pathspec/default.nix b/nixpkgs/pkgs/development/python-modules/pathspec/default.nix
index 1ad8a7564dd0..6a0281b756ec 100644
--- a/nixpkgs/pkgs/development/python-modules/pathspec/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pathspec/default.nix
@@ -9,7 +9,7 @@ buildPythonPackage rec {
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-5WRJlDWiZz1Yb2shMLtblfBKO6Bvgbj4lbZRo8dqq7E=";
+    sha256 = "e564499435a2673d586f6b2130bb5b95f04a3ba06f81b8f895b651a3c76aabb1";
   };
 
   meta = {
diff --git a/nixpkgs/pkgs/development/python-modules/pathy/default.nix b/nixpkgs/pkgs/development/python-modules/pathy/default.nix
index d656a752cf55..9108c3656dbd 100644
--- a/nixpkgs/pkgs/development/python-modules/pathy/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pathy/default.nix
@@ -12,11 +12,11 @@
 
 buildPythonPackage rec {
   pname = "pathy";
-  version = "0.5.2";
+  version = "0.6.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-nb8my/5rkc7thuHnXZHe1Hg8j+sLBlYyJcLHWrrKZ5M=";
+    sha256 = "f83f1eddf77dd86e824143eef8d9adbe0785c3cdd5ec0ed6c0edea3227385048";
   };
 
   propagatedBuildInputs = [ smart-open typer google-cloud-storage ];
diff --git a/nixpkgs/pkgs/development/python-modules/pbr/default.nix b/nixpkgs/pkgs/development/python-modules/pbr/default.nix
index 9ce3d72a20d9..77e8d5c210a2 100644
--- a/nixpkgs/pkgs/development/python-modules/pbr/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pbr/default.nix
@@ -1,4 +1,9 @@
-{ lib, buildPythonPackage, fetchPypi }:
+{ lib
+, buildPythonPackage
+, fetchPypi
+, setuptools
+, callPackage
+}:
 
 buildPythonPackage rec {
   pname = "pbr";
@@ -9,12 +14,21 @@ buildPythonPackage rec {
     sha256 = "42df03e7797b796625b1029c0400279c7c34fd7df24a7d7818a1abb5b38710dd";
   };
 
-  # circular dependencies with fixtures
+  propagatedBuildInputs = [ setuptools ];
+
+  # check in passthru.tests.pytest to escape infinite recursion with fixtures
   doCheck = false;
 
+  passthru.tests = {
+    tests = callPackage ./tests.nix { };
+  };
+
+  pythonImportsCheck = [ "pbr" ];
+
   meta = with lib; {
-    homepage = "http://docs.openstack.org/developer/pbr/";
-    license = licenses.asl20;
     description = "Python Build Reasonableness";
+    homepage = "https://github.com/openstack/pbr";
+    license = licenses.asl20;
+    maintainers = teams.openstack.members;
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/pbr/tests.nix b/nixpkgs/pkgs/development/python-modules/pbr/tests.nix
new file mode 100644
index 000000000000..a1c57684ce46
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/pbr/tests.nix
@@ -0,0 +1,49 @@
+{ stdenv
+, buildPythonPackage
+, git
+, gnupg
+, pbr
+, mock
+, sphinx
+, stestr
+, testresources
+, testscenarios
+, virtualenv
+}:
+
+buildPythonPackage rec {
+  pname = "pbr";
+  inherit (pbr) version;
+
+  src = pbr.src;
+
+  postPatch = ''
+    # only a small portion of the listed packages are actually needed for running the tests
+    # so instead of removing them one by one remove everything
+    rm test-requirements.txt
+  '';
+
+  dontBuild = true;
+  dontInstall = true;
+
+  checkInputs = [
+    pbr
+    git
+    gnupg
+    mock
+    sphinx
+    stestr
+    testresources
+    testscenarios
+    virtualenv
+  ];
+
+  checkPhase = ''
+    stestr run -e <(echo "
+    pbr.tests.test_core.TestCore.test_console_script_develop
+    pbr.tests.test_core.TestCore.test_console_script_install
+    pbr.tests.test_wsgi.TestWsgiScripts.test_with_argument
+    pbr.tests.test_wsgi.TestWsgiScripts.test_wsgi_script_run
+    ")
+  '';
+}
diff --git a/nixpkgs/pkgs/development/python-modules/pdoc3/default.nix b/nixpkgs/pkgs/development/python-modules/pdoc3/default.nix
index 66bed253cb86..1a3996311570 100644
--- a/nixpkgs/pkgs/development/python-modules/pdoc3/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pdoc3/default.nix
@@ -8,12 +8,12 @@
 
 buildPythonPackage rec {
   pname = "pdoc3";
-  version = "0.9.2";
+  version = "0.10.0";
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "9df5d931f25f353c69c46819a3bd03ef96dd286f2a70bb1b93a23a781f91faa1";
+    sha256 = "5f22e7bcb969006738e1aa4219c75a32f34c2d62d46dc9d2fb2d3e0b0287e4b7";
   };
 
   nativeBuildInputs = [ setuptools-git setuptools-scm ];
diff --git a/nixpkgs/pkgs/development/python-modules/pefile/default.nix b/nixpkgs/pkgs/development/python-modules/pefile/default.nix
index 508ba27b2943..1a793644fb29 100644
--- a/nixpkgs/pkgs/development/python-modules/pefile/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pefile/default.nix
@@ -8,14 +8,14 @@
 
 buildPythonPackage rec {
   pname = "pefile";
-  version = "2021.9.2";
+  version = "2021.9.3";
   disabled = pythonOlder "3.6";
 
   src = fetchFromGitHub {
     owner = "erocarrera";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1pgsw84i9r6ydkfzqifgl5lvcz3cf3xz5c2543kl3q8mgb21wxaz";
+    sha256 = "0sr17rmqpr874m8rpkp8xdz8kjshhimbfgq13qy4lscaiznmlf0d";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/pex/default.nix b/nixpkgs/pkgs/development/python-modules/pex/default.nix
index 96eaa96aef85..ad8aca089e37 100644
--- a/nixpkgs/pkgs/development/python-modules/pex/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pex/default.nix
@@ -6,11 +6,11 @@
 
 buildPythonPackage rec {
   pname = "pex";
-  version = "2.1.49";
+  version = "2.1.50";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "af536388eeede93111d8ef0af4a80cbb3d847c1a1470c6f34f3abe83deac1b91";
+    sha256 = "c67365b26060452631c0083a0f5d50af3cba9287b84b2c157404c959cb4bb74d";
   };
 
   nativeBuildInputs = [ setuptools ];
diff --git a/nixpkgs/pkgs/development/python-modules/pg8000/default.nix b/nixpkgs/pkgs/development/python-modules/pg8000/default.nix
index d8a002231057..aadcec698ae2 100644
--- a/nixpkgs/pkgs/development/python-modules/pg8000/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pg8000/default.nix
@@ -8,12 +8,12 @@
 
 buildPythonPackage rec {
   pname = "pg8000";
-  version = "1.21.1";
+  version = "1.21.2";
   disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-HMvuyTtw4uhTLfOr3caQXHghkJyW3Oqu91G1fFKRhpo=";
+    sha256 = "36a3b517408334967c1fa0d29656da03608d63122a372ec92c85f49aed2d24e3";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/phik/default.nix b/nixpkgs/pkgs/development/python-modules/phik/default.nix
index b309fb287d80..09a240f4c4a6 100644
--- a/nixpkgs/pkgs/development/python-modules/phik/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/phik/default.nix
@@ -16,14 +16,14 @@
 
 buildPythonPackage rec {
   pname = "phik";
-  version = "0.10.0";
+  version = "0.12.0";
   format = "wheel";
   disabled = !isPy3k;
 
   src = fetchPypi {
     inherit pname version format;
     python = "py3";
-    sha256 = "b745313c5ff9d6a3092eefa97f83fa4dbed178c9ce69161b655e95497cb2f38b";
+    sha256 = "57db39d1c74c84a24d0270b63d1c629a5cb975462919895b96a8522ae0678408";
   };
 
   checkInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/phonenumbers/default.nix b/nixpkgs/pkgs/development/python-modules/phonenumbers/default.nix
index c04ccbd5281e..0b33c2ff56a6 100644
--- a/nixpkgs/pkgs/development/python-modules/phonenumbers/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/phonenumbers/default.nix
@@ -6,11 +6,11 @@
 
 buildPythonPackage rec {
   pname = "phonenumbers";
-  version = "8.12.31";
+  version = "8.12.32";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-CR7SsxWFZ/EsmfcZVwocys4AF585tE8ea4lfWdk9rcg=";
+    sha256 = "c52c9c3607483072303ba8d8759063edc44d2f8fe7b85afef40bd8d1aafb6483";
   };
 
   checkInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/pikepdf/default.nix b/nixpkgs/pkgs/development/python-modules/pikepdf/default.nix
index a7d9faf98a9c..027369d3d01a 100644
--- a/nixpkgs/pkgs/development/python-modules/pikepdf/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pikepdf/default.nix
@@ -5,13 +5,12 @@
 , fetchPypi
 , hypothesis
 , isPy3k
+, jbig2dec
 , lxml
+, mupdf
 , pillow
 , psutil
 , pybind11
-, pytest-cov
-, pytest-helpers-namespace
-, pytest-timeout
 , pytest-xdist
 , pytestCheckHook
 , python-dateutil
@@ -20,18 +19,27 @@
 , setuptools
 , setuptools-scm
 , setuptools-scm-git-archive
+, substituteAll
 }:
 
 buildPythonPackage rec {
   pname = "pikepdf";
-  version = "2.16.1";
+  version = "3.1.0";
   disabled = ! isPy3k;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-4k3/avMfHrcy/LXbRniDXR8xJkOZb9zZ2+uKylK8Dd4=";
+    sha256 = "aeb813b5f36534d2bedf08487ab2b022c43f4c8a3e86e611c5f7c8fb97309db5";
   };
 
+  patches = [
+    (substituteAll {
+      src = ./paths.patch;
+      jbig2dec = "${lib.getBin jbig2dec}/bin/jbig2dec";
+      mudraw = "${lib.getBin mupdf}/bin/mudraw";
+    })
+  ];
+
   buildInputs = [
     pybind11
     qpdf
@@ -45,11 +53,8 @@ buildPythonPackage rec {
   checkInputs = [
     attrs
     hypothesis
-    pytest-helpers-namespace
-    pytest-timeout
     pytest-xdist
     psutil
-    pytest-cov
     pytestCheckHook
     python-dateutil
     python-xmp-toolkit
@@ -62,17 +67,13 @@ buildPythonPackage rec {
     setuptools
   ];
 
-  preBuild = ''
-    HOME=$TMPDIR
-  '';
-
   pythonImportsCheck = [ "pikepdf" ];
 
   meta = with lib; {
     homepage = "https://github.com/pikepdf/pikepdf";
     description = "Read and write PDFs with Python, powered by qpdf";
     license = licenses.mpl20;
-    maintainers = [ maintainers.kiwi ];
+    maintainers = with maintainers; [ kiwi dotlambda ];
     changelog = "https://github.com/pikepdf/pikepdf/blob/${version}/docs/release_notes.rst";
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/pikepdf/paths.patch b/nixpkgs/pkgs/development/python-modules/pikepdf/paths.patch
new file mode 100644
index 000000000000..807041696ad6
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/pikepdf/paths.patch
@@ -0,0 +1,26 @@
+diff --git a/src/pikepdf/_methods.py b/src/pikepdf/_methods.py
+index 70cdc9e..c3a14d0 100644
+--- a/src/pikepdf/_methods.py
++++ b/src/pikepdf/_methods.py
+@@ -190,7 +190,7 @@ def _mudraw(buffer, fmt) -> bytes:
+         tmp_in.flush()
+ 
+         proc = run(
+-            ['mudraw', '-F', fmt, '-o', '-', tmp_in.name],
++            ['@mudraw@', '-F', fmt, '-o', '-', tmp_in.name],
+             stdout=PIPE,
+             stderr=PIPE,
+             check=True,
+diff --git a/src/pikepdf/jbig2.py b/src/pikepdf/jbig2.py
+index 80cc910..64f6d31 100644
+--- a/src/pikepdf/jbig2.py
++++ b/src/pikepdf/jbig2.py
+@@ -25,7 +25,7 @@ def extract_jbig2(
+         global_path = Path(tmpdir) / "global"
+         output_path = Path(tmpdir) / "outfile"
+ 
+-        args = ["jbig2dec", "-e", "-o", os.fspath(output_path)]
++        args = ["@jbig2dec@", "-e", "-o", os.fspath(output_path)]
+ 
+         # Get the raw stream, because we can't decode im_obj - that is why we are here
+         # (Strictly speaking we should remove any non-JBIG2 filters if double encoded)
diff --git a/nixpkgs/pkgs/development/python-modules/pillow/default.nix b/nixpkgs/pkgs/development/python-modules/pillow/default.nix
index af6c3d80deaf..c6bb944c232b 100644
--- a/nixpkgs/pkgs/development/python-modules/pillow/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pillow/default.nix
@@ -5,13 +5,13 @@
 
 import ./generic.nix (rec {
   pname = "Pillow";
-  version = "8.3.1";
+  version = "8.3.2";
 
   disabled = !isPy3k;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "2cac53839bfc5cece8fdbe7f084d5e3ee61e1303cccc86511d351adcb9e2c792";
+    sha256 = "1361y215ydmdh4il1vay5831aqivmpwgzjqrphqjdiq0ipnz7qyx";
   };
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/development/python-modules/pkgconfig/default.nix b/nixpkgs/pkgs/development/python-modules/pkgconfig/default.nix
index d51a83a05478..fc593e6a48fb 100644
--- a/nixpkgs/pkgs/development/python-modules/pkgconfig/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pkgconfig/default.nix
@@ -2,7 +2,7 @@
 
 buildPythonPackage rec {
   pname = "pkgconfig";
-  version = "1.5.4";
+  version = "1.5.5";
 
   inherit (pkg-config)
     setupHooks
@@ -14,7 +14,7 @@ buildPythonPackage rec {
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "c34503829fd226822fd93c902b1cf275516908a023a24be0a02ba687f3a00399";
+    sha256 = "deb4163ef11f75b520d822d9505c1f462761b4309b1bb713d08689759ea8b899";
   };
 
 
diff --git a/nixpkgs/pkgs/development/python-modules/pkginfo/default.nix b/nixpkgs/pkgs/development/python-modules/pkginfo/default.nix
index 1b1834e324bb..6bfed6305a8a 100644
--- a/nixpkgs/pkgs/development/python-modules/pkginfo/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pkginfo/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "pkginfo";
-  version = "1.7.0";
+  version = "1.7.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "029a70cb45c6171c329dfc890cde0879f8c52d6f3922794796e06f577bb03db4";
+    sha256 = "e7432f81d08adec7297633191bbf0bd47faf13cd8724c3a13250e51d542635bd";
   };
 
   doCheck = false; # I don't know why, but with doCheck = true it fails.
diff --git a/nixpkgs/pkgs/development/python-modules/plac/default.nix b/nixpkgs/pkgs/development/python-modules/plac/default.nix
index bf66f7d01f19..2bd50d87dc0b 100644
--- a/nixpkgs/pkgs/development/python-modules/plac/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/plac/default.nix
@@ -13,14 +13,14 @@ buildPythonPackage rec {
   };
 
   checkPhase = ''
-      cd doc
-      ${python.interpreter} -m unittest discover -p "*test_plac*"
-    '';
+    cd doc
+    ${python.interpreter} -m unittest discover -p "*test_plac*"
+  '';
 
   meta = with lib; {
     description = "Parsing the Command Line the Easy Way";
     homepage = "https://github.com/micheles/plac";
     license = licenses.bsdOriginal;
-    maintainers = with maintainers; [ sdll ];
-    };
+    maintainers = with maintainers; [ ];
+  };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/plaid-python/default.nix b/nixpkgs/pkgs/development/python-modules/plaid-python/default.nix
index 567fdd42d0d3..b864dedecfe7 100644
--- a/nixpkgs/pkgs/development/python-modules/plaid-python/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/plaid-python/default.nix
@@ -1,12 +1,12 @@
 { lib, buildPythonPackage, fetchPypi, requests, pytest }:
 
 buildPythonPackage rec {
-  version = "7.4.0";
+  version = "8.1.0";
   pname = "plaid-python";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "ab70467116adc110b56eb5a1fdeed726307cc216e04dda46a782aa1a1468ce0e";
+    sha256 = "b1f7b5b58ba3c171bb795352119d54797c8c50877bc376d26cd756de2453e9fd";
   };
 
   checkInputs = [ pytest ];
diff --git a/nixpkgs/pkgs/development/python-modules/platformdirs/default.nix b/nixpkgs/pkgs/development/python-modules/platformdirs/default.nix
index 90eb35f993a3..f49b8716211e 100644
--- a/nixpkgs/pkgs/development/python-modules/platformdirs/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/platformdirs/default.nix
@@ -11,14 +11,14 @@
 
 buildPythonPackage rec {
   pname = "platformdirs";
-  version = "2.2.0";
+  version = "2.3.0";
   disabled = pythonOlder "3.6";
 
   src = fetchFromGitHub {
     owner = pname;
     repo = pname;
     rev = version;
-    sha256 = "15f08czqfmxy1y947rlrsjs20jgsy2vc1wqhv4b08b3ijxj0jpqh";
+    sha256 = "sha256-g2DPNN7VxK3EjOXOpSWA4a+PghZ7v2jmjw9+VQyCTBI=";
   };
 
   SETUPTOOLS_SCM_PRETEND_VERSION = version;
diff --git a/nixpkgs/pkgs/development/python-modules/plexapi/default.nix b/nixpkgs/pkgs/development/python-modules/plexapi/default.nix
index 2df3e3a17c84..eba416fd3562 100644
--- a/nixpkgs/pkgs/development/python-modules/plexapi/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/plexapi/default.nix
@@ -9,14 +9,14 @@
 
 buildPythonPackage rec {
   pname = "plexapi";
-  version = "4.7.0";
+  version = "4.7.1";
   disabled = pythonOlder "3.5";
 
   src = fetchFromGitHub {
     owner = "pkkid";
     repo = "python-plexapi";
     rev = version;
-    sha256 = "1gh36ln9ki69rs7ml9syqq956i996rdi145qffjwb3736zylrzkp";
+    sha256 = "sha256-kZREcjLBSWXGULEKfWiherRCl5UXLOw4f3JFaqs8dXw=";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/plotly/default.nix b/nixpkgs/pkgs/development/python-modules/plotly/default.nix
index e2496d6097d9..4b849dd016b8 100644
--- a/nixpkgs/pkgs/development/python-modules/plotly/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/plotly/default.nix
@@ -1,38 +1,35 @@
 { lib
 , buildPythonPackage
 , fetchPypi
-, decorator
-, nbformat
 , pytz
 , requests
-, retrying
 , six
+, tenacity
 }:
 
 buildPythonPackage rec {
   pname = "plotly";
-  version = "4.14.3";
+  version = "5.3.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "14cxlfl79i9bh3awsf4xgwr14ywm7lnrz2a81s7gp0if77nsx2kx";
+    sha256 = "b6dc306c56e7d5fa7d017718894099b27290b427abf4acad8e5b77fdc3bd32ec";
   };
 
   propagatedBuildInputs = [
-    decorator
-    nbformat
     pytz
     requests
-    retrying
     six
+    tenacity
   ];
 
   # No tests in archive
   doCheck = false;
 
-  meta = {
+  meta = with lib; {
     description = "Python plotting library for collaborative, interactive, publication-quality graphs";
     homepage = "https://plot.ly/python/";
-    license = with lib.licenses; [ mit ];
+    license = with licenses; [ mit ];
+    maintainers = with maintainers; [ ];
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/pluggy/0.nix b/nixpkgs/pkgs/development/python-modules/pluggy/0.nix
new file mode 100644
index 000000000000..30fa2e1945b2
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/pluggy/0.nix
@@ -0,0 +1,34 @@
+{ buildPythonPackage
+, lib
+, fetchPypi
+, setuptools-scm
+, importlib-metadata
+}:
+
+buildPythonPackage rec {
+  pname = "pluggy";
+  version = "0.13.1";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "15b2acde666561e1298d71b523007ed7364de07029219b604cf808bfa1c765b0";
+  };
+
+  checkPhase = ''
+    py.test
+  '';
+
+  # To prevent infinite recursion with pytest
+  doCheck = false;
+
+  nativeBuildInputs = [ setuptools-scm ];
+
+  propagatedBuildInputs = [ importlib-metadata ];
+
+  meta = {
+    description = "Plugin and hook calling mechanisms for Python";
+    homepage = "https://github.com/pytest-dev/pluggy";
+    license = lib.licenses.mit;
+    maintainers = with lib.maintainers; [ ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/pluggy/default.nix b/nixpkgs/pkgs/development/python-modules/pluggy/default.nix
index 30fa2e1945b2..1a1c23f22d0a 100644
--- a/nixpkgs/pkgs/development/python-modules/pluggy/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pluggy/default.nix
@@ -7,11 +7,11 @@
 
 buildPythonPackage rec {
   pname = "pluggy";
-  version = "0.13.1";
+  version = "1.0.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "15b2acde666561e1298d71b523007ed7364de07029219b604cf808bfa1c765b0";
+    sha256 = "4224373bacce55f955a878bf9cfa763c1e360858e330072059e10bad68531159";
   };
 
   checkPhase = ''
diff --git a/nixpkgs/pkgs/development/python-modules/plugwise/default.nix b/nixpkgs/pkgs/development/python-modules/plugwise/default.nix
index ececea7d7ddc..ca8af15b53ee 100644
--- a/nixpkgs/pkgs/development/python-modules/plugwise/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/plugwise/default.nix
@@ -19,13 +19,13 @@
 
 buildPythonPackage rec {
   pname = "plugwise";
-  version = "0.13.1";
+  version = "0.14.5";
 
   src = fetchFromGitHub {
     owner = pname;
     repo = "python-plugwise";
     rev = "v${version}";
-    sha256 = "1sv421aa6ip74ajxa5imnh188hyx9dq3vwkb6aifi14h2wpr9lh3";
+    sha256 = "1kwks87raxs04dvnpmpn8l1cbzg5yb5nyinaqzxdsc6al83isbik";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/plyer/default.nix b/nixpkgs/pkgs/development/python-modules/plyer/default.nix
new file mode 100644
index 000000000000..88dfd9a4a2bf
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/plyer/default.nix
@@ -0,0 +1,63 @@
+{ lib, buildPythonPackage, fetchFromGitHub, fetchpatch, keyring, mock, pytestCheckHook, stdenv }:
+
+buildPythonPackage rec {
+  pname = "plyer";
+  version = "2.0.0";
+
+  src = fetchFromGitHub {
+    owner = "kivy";
+    repo = pname;
+    rev = version;
+    sha256 = "15z1wpq6s69s76r6akzgg340bpc21l2r1j8270gp7i1rpnffcjwm";
+  };
+
+  patches = [
+    # fix naming of the DOCUMENTS dir
+    (fetchpatch {
+      url = "https://github.com/rski/plyer/commit/99dabb2d62248fc3ea5705c2720abf71c9fc378b.patch";
+      sha256 = "sha256-bbnw0TxH4FGTso5dopzquDCjrjZAy+6CJauqi/nfstA=";
+    })
+    # fix handling of the ~/.config/user-dirs.dir file
+    (fetchpatch {
+      url = "https://github.com/rski/plyer/commit/f803697a1fe4fb5e9c729ee6ef1997b8d64f3ccd.patch";
+      sha256 = "sha256-akuh//P5puz2PwcBRXZQ4KoGk+fxi4jn2H3pTIT5M78=";
+    })
+  ];
+
+  postPatch = ''
+    rm -r examples
+    # remove all the wifi stuff. Depends on a python wifi module that has not been updated since 2016
+    find -iname "wifi*" -exec rm {} \;
+    substituteInPlace plyer/__init__.py \
+      --replace "wifi = Proxy('wifi', facades.Wifi)" "" \
+      --replace "'wifi'" ""
+    substituteInPlace plyer/facades/__init__.py \
+      --replace "from plyer.facades.wifi import Wifi" ""
+  '';
+
+  propagatedBuildInputs = [ keyring ];
+
+  checkInputs = [ mock pytestCheckHook ];
+
+  pytestFlagsArray = [ "plyer/tests" ];
+  disabledTests = [
+    # assumes dbus is not installed, it fails and is not very robust.
+    "test_notification_notifysend"
+    # fails during nix-build, but I am not able to explain why.
+    # The test and the API under test do work outside the nix build.
+    "test_uniqueid"
+  ];
+  preCheck = ''
+    HOME=$(mktemp -d)
+    mkdir -p $HOME/.config/ $HOME/Pictures
+  '';
+
+  pythonImportsCheck = [ "plyer" ];
+
+  meta = with lib; {
+    description = "Plyer is a platform-independent api to use features commonly found on various platforms";
+    homepage = "https://github.com/kivy/plyer";
+    license = licenses.mit;
+    maintainers = with maintainers; [ rski ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/poetry-core/default.nix b/nixpkgs/pkgs/development/python-modules/poetry-core/default.nix
index 4d8c444dcd20..7eef9e740d31 100644
--- a/nixpkgs/pkgs/development/python-modules/poetry-core/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/poetry-core/default.nix
@@ -1,7 +1,6 @@
 { lib, buildPythonPackage, fetchFromGitHub, pythonOlder, isPy27
 , importlib-metadata
 , intreehooks
-, isort
 , pathlib2
 , pep517
 , pytest-mock
@@ -13,14 +12,14 @@
 
 buildPythonPackage rec {
   pname = "poetry-core";
-  version = "1.0.3";
+  version = "1.0.4";
   format = "pyproject";
 
   src = fetchFromGitHub {
     owner = "python-poetry";
     repo = pname;
     rev = version;
-    sha256 = "07x0zagf9cfr7g3132jjd5byywkbnzpfbxjfjzpzpj70fqw70qrc";
+    sha256 = "0jgd4d7m5y8ly8n0l9lcq7cjab2y3hifk90f343ksmjzssfd5lg3";
   };
 
   postPatch = lib.optionalString (pythonOlder "3.8") ''
@@ -54,6 +53,9 @@ buildPythonPackage rec {
 
   pythonImportsCheck = [ "poetry.core" ];
 
+  # allow for package to use pep420's native namespaces
+  pythonNamespaces = [ "poetry" ];
+
   meta = with lib; {
     description = "Core utilities for Poetry";
     homepage = "https://github.com/python-poetry/poetry-core/";
diff --git a/nixpkgs/pkgs/development/python-modules/poetry/default.nix b/nixpkgs/pkgs/development/python-modules/poetry/default.nix
index 7287797ef331..29477474c845 100644
--- a/nixpkgs/pkgs/development/python-modules/poetry/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/poetry/default.nix
@@ -24,7 +24,7 @@
 
 buildPythonPackage rec {
   pname = "poetry";
-  version = "1.1.7";
+  version = "1.1.8";
   format = "pyproject";
   disabled = isPy27;
 
@@ -32,7 +32,7 @@ buildPythonPackage rec {
     owner = "python-poetry";
     repo = pname;
     rev = version;
-    sha256 = "03cbzjw0sb8rs85iq191ndk9523d6qpymh2nhw5bvcxfvsf9042d";
+    sha256 = "0qcgjb78nj69sppd8146519q9422xxg1bi34gyxy51sjkvd5lxhz";
   };
 
   postPatch = ''
@@ -99,6 +99,9 @@ buildPythonPackage rec {
     })
   ];
 
+  # allow for package to use pep420's native namespaces
+  pythonNamespaces = [ "poetry" ];
+
   meta = with lib; {
     homepage = "https://python-poetry.org/";
     description = "Python dependency management and packaging made easy";
diff --git a/nixpkgs/pkgs/development/python-modules/pontos/default.nix b/nixpkgs/pkgs/development/python-modules/pontos/default.nix
index 8ee1e6d784e3..1264e40f30d1 100644
--- a/nixpkgs/pkgs/development/python-modules/pontos/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pontos/default.nix
@@ -1,7 +1,7 @@
 { lib
 , buildPythonPackage
 , fetchFromGitHub
-, poetry
+, poetry-core
 , pytestCheckHook
 , pythonOlder
 , colorful
@@ -12,7 +12,7 @@
 
 buildPythonPackage rec {
   pname = "pontos";
-  version = "21.7.4";
+  version = "21.9.1";
   format = "pyproject";
 
   disabled = pythonOlder "3.7";
@@ -21,11 +21,11 @@ buildPythonPackage rec {
     owner = "greenbone";
     repo = pname;
     rev = "v${version}";
-    sha256 = "12z74fp21kv6jf4cwc4hd5xvl5lilhmpprcqimdg85pcddc4zwc2";
+    sha256 = "1pgvpg5sjmd9p1i9lm39k4r5qsz158wfgwfa56rx0p8xqf00h1xp";
   };
 
   nativeBuildInputs = [
-    poetry
+    poetry-core
   ];
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/pook/default.nix b/nixpkgs/pkgs/development/python-modules/pook/default.nix
index 480dc7dcba64..35829044c3cf 100644
--- a/nixpkgs/pkgs/development/python-modules/pook/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pook/default.nix
@@ -2,7 +2,6 @@
 , aiohttp
 , buildPythonPackage
 , fetchFromGitHub
-, fetchpatch
 , furl
 , jsonschema
 , nose
@@ -14,25 +13,16 @@
 
 buildPythonPackage rec {
   pname = "pook";
-  version = "1.0.1";
+  version = "1.0.2";
   disabled = pythonOlder "3.5";
 
   src = fetchFromGitHub {
     owner = "h2non";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0z48vswj07kr2sdvq5qzrwqyijpmj2rlnh2z2b32id1mckr6nnz8";
+    sha256 = "sha256-4OGcnuajGdBRlXCYwbTK/zLNQRrir60qCYajHRRCpkU=";
   };
 
-  patches = [
-    (fetchpatch {
-      # Will be fixed with the new release, https://github.com/h2non/pook/issues/69
-      name = "use-match-keyword-in-pytest.patch";
-      url = "https://github.com/h2non/pook/commit/2071da27701c82ce02b015e01e2aa6fd203e7bb5.patch";
-      sha256 = "0i3qcpbdqqsnbygi46dyqamgkh9v8rhpbm4lkl75riw48j4n080k";
-    })
-  ];
-
   propagatedBuildInputs = [
     aiohttp
     furl
diff --git a/nixpkgs/pkgs/development/python-modules/prance/default.nix b/nixpkgs/pkgs/development/python-modules/prance/default.nix
index 0f18a6ad2072..105fa9e180b7 100644
--- a/nixpkgs/pkgs/development/python-modules/prance/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/prance/default.nix
@@ -1,51 +1,43 @@
 { lib
 , buildPythonPackage
-, fetchPypi
+, fetchFromGitHub
 , chardet
-, pyyaml
 , requests
+, ruamel_yaml
 , six
 , semver
 , pytestCheckHook
-, pytest-cov
-, pytest-runner
 , openapi-spec-validator
 }:
 
 buildPythonPackage rec {
   pname = "prance";
-  version = "0.21.2";
-
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "43ebe3a5b38f0c65c428427004c4d8ce8d7155ddad50610276c89c192680f138";
+  version = "0.21.8.0";
+
+  src = fetchFromGitHub {
+    owner = "RonnyPfannschmidt";
+    repo = pname;
+    rev = "v${version}";
+    fetchSubmodules = true;
+    sha256 = "sha256-kGANMHfWwhW3ZBw2ZVCJZR/bV2EPhcydMKhDeDTVwcQ=";
   };
 
-  buildInputs = [
-    pytest-runner
-  ];
-
   propagatedBuildInputs = [
     chardet
-    pyyaml
     requests
+    ruamel_yaml
     six
     semver
   ];
 
   checkInputs = [
     pytestCheckHook
-    pytest-cov
     openapi-spec-validator
   ];
 
   postPatch = ''
-    substituteInPlace setup.py \
-      --replace "tests_require = dev_require," "tests_require = None," \
-      --replace "chardet~=4.0" "" \
-      --replace "semver~=2.13" ""
     substituteInPlace setup.cfg \
-      --replace "--cov-fail-under=90" ""
+      --replace "--cov=prance --cov-report=term-missing --cov-fail-under=90" ""
   '';
 
   # Disable tests that require network
diff --git a/nixpkgs/pkgs/development/python-modules/preshed/default.nix b/nixpkgs/pkgs/development/python-modules/preshed/default.nix
index 4fc1adfbf018..a945dcf8f4e7 100644
--- a/nixpkgs/pkgs/development/python-modules/preshed/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/preshed/default.nix
@@ -17,9 +17,9 @@ buildPythonPackage rec {
   };
 
   propagatedBuildInputs = [
-   cython
-   cymem
-   murmurhash
+    cython
+    cymem
+    murmurhash
   ];
 
   checkInputs = [
@@ -34,6 +34,6 @@ buildPythonPackage rec {
     description = "Cython hash tables that assume keys are pre-hashed";
     homepage = "https://github.com/explosion/preshed";
     license = licenses.mit;
-    maintainers = with maintainers; [ sdll ];
-    };
+    maintainers = with maintainers; [ ];
+  };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/prettytable/default.nix b/nixpkgs/pkgs/development/python-modules/prettytable/default.nix
index 23702f8e8cfb..5b3253b31b39 100644
--- a/nixpkgs/pkgs/development/python-modules/prettytable/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/prettytable/default.nix
@@ -10,11 +10,11 @@
 
 buildPythonPackage rec {
   pname = "prettytable";
-  version = "2.1.0";
+  version = "2.2.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "5882ed9092b391bb8f6e91f59bcdbd748924ff556bb7c634089d5519be87baa0";
+    sha256 = "bd81678c108e6c73d4f1e47cd4283de301faaa6ff6220bcd1d4022038c56b416";
   };
 
   nativeBuildInputs = [ setuptools-scm ];
diff --git a/nixpkgs/pkgs/development/python-modules/priority/deadline.patch b/nixpkgs/pkgs/development/python-modules/priority/deadline.patch
deleted file mode 100644
index f028953c28ab..000000000000
--- a/nixpkgs/pkgs/development/python-modules/priority/deadline.patch
+++ /dev/null
@@ -1,39 +0,0 @@
-From 9d933c3c6535c1c63291e3d35f4ada9135d422df Mon Sep 17 00:00:00 2001
-From: Alyssa Ross <hi@alyssa.is>
-Date: Mon, 11 Mar 2019 02:08:43 +0000
-Subject: [PATCH] Allow test_period_of_repetition to be slow
-
-Recent versions of hypothesis default to a 200ms timeout, which wasn't
-enough for my Thinkpad X220 to run this test. I've increased the timeout
-for this single test to hopefully a reasonable amount for older
-hardware.
-
-(cherry picked from commit 752beb3a32b59f54168816da531c9d2a387f9715)
----
- test/test_priority.py | 3 ++-
- 1 file changed, 2 insertions(+), 1 deletion(-)
-
-diff --git a/test/test_priority.py b/test/test_priority.py
-index c98a28d..013ce30 100644
---- a/test/test_priority.py
-+++ b/test/test_priority.py
-@@ -12,7 +12,7 @@ import itertools
-
- import pytest
-
--from hypothesis import given
-+from hypothesis import given, settings
- from hypothesis.strategies import (
-     integers, lists, tuples, sampled_from
- )
-@@ -489,6 +489,7 @@ class TestPriorityTreeOutput(object):
-     fairness and equidistribution.
-     """
-     @given(STREAMS_AND_WEIGHTS)
-+    @settings(deadline=None)
-     def test_period_of_repetition(self, streams_and_weights):
-         """
-         The period of repetition of a priority sequence is given by the sum of
---
-2.19.2
-
diff --git a/nixpkgs/pkgs/development/python-modules/priority/default.nix b/nixpkgs/pkgs/development/python-modules/priority/default.nix
index a699f6ff812f..16908e90c9e6 100644
--- a/nixpkgs/pkgs/development/python-modules/priority/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/priority/default.nix
@@ -1,28 +1,35 @@
-{ lib, buildPythonPackage, fetchPypi, pytest, hypothesis }:
+{ lib
+, buildPythonPackage
+, pythonOlder
+, fetchPypi
+, hypothesis
+, pytestCheckHook
+}:
 
 buildPythonPackage rec {
   pname = "priority";
-  version = "1.3.0";
+  version = "2.0.0";
+  format = "setuptools";
+  disabled = pythonOlder "3.6.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1gpzn9k9zgks0iw5wdmad9b4dry8haiz2sbp6gycpjkzdld9dhbb";
+    sha256 = "c965d54f1b8d0d0b19479db3924c7c36cf672dbf2aec92d43fbdaf4492ba18c0";
   };
 
-  patches = [
-    # https://github.com/python-hyper/priority/pull/135
-    ./deadline.patch
+  pythonImportsCheck = [
+     "priority"
   ];
 
-  checkInputs = [ pytest hypothesis ];
-  checkPhase = ''
-    PYTHONPATH="src:$PYTHONPATH" pytest
-  '';
+  checkInputs = [
+    hypothesis
+    pytestCheckHook
+  ];
 
   meta = with lib; {
-    homepage = "https://python-hyper.org/priority/";
     description = "A pure-Python implementation of the HTTP/2 priority tree";
+    homepage = "https://github.com/python-hyper/priority/";
     license = licenses.mit;
-    maintainers = [ maintainers.qyliss ];
+    maintainers = with maintainers; [ qyliss ];
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/progressbar2/default.nix b/nixpkgs/pkgs/development/python-modules/progressbar2/default.nix
index 60844bdc9e6f..972c0f0bb754 100644
--- a/nixpkgs/pkgs/development/python-modules/progressbar2/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/progressbar2/default.nix
@@ -7,11 +7,11 @@
 
 buildPythonPackage rec {
   pname = "progressbar2";
-  version = "3.53.2";
+  version = "3.53.3";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "8c150baaa33448c1e34a2cafa5108285d96f2c877bdf64fcbd77f26cb135435d";
+    sha256 = "f4e1c2d48e608850c59f793d6e74ccdebbcbaac7ffe917d45e9646ec0d664d6d";
   };
 
   propagatedBuildInputs = [ python-utils ];
diff --git a/nixpkgs/pkgs/development/python-modules/psd-tools/default.nix b/nixpkgs/pkgs/development/python-modules/psd-tools/default.nix
index 92810ec6a5fb..a642d6ba10d1 100644
--- a/nixpkgs/pkgs/development/python-modules/psd-tools/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/psd-tools/default.nix
@@ -6,11 +6,11 @@
 
 buildPythonPackage rec {
   pname = "psd-tools";
-  version = "1.9.17";
+  version = "1.9.18";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "d01e11581442dfcc1bd73ac3278bdf1f98e9df8f083a11e5989632ff97322b65";
+    sha256 = "d7e510790512f0bb8150c508531c8681c3d9d0ea63b3ba9b11bbf0952cbd69a8";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/ptpython/default.nix b/nixpkgs/pkgs/development/python-modules/ptpython/default.nix
index f6befe1bd622..cfe65a24ece3 100644
--- a/nixpkgs/pkgs/development/python-modules/ptpython/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/ptpython/default.nix
@@ -10,12 +10,12 @@
 
 buildPythonPackage rec {
   pname = "ptpython";
-  version = "3.0.19";
+  version = "3.0.20";
   disabled = !isPy3k;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "b3d41ce7c2ce0e7e55051347eae400fc56b9b42b1c4a9db25b19ccf6195bfc12";
+    sha256 = "eafd4ced27ca5dc370881d4358d1ab5041b32d88d31af8e3c24167fe4af64ed6";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/pudb/default.nix b/nixpkgs/pkgs/development/python-modules/pudb/default.nix
index af653f260cd3..6df85ca5f089 100644
--- a/nixpkgs/pkgs/development/python-modules/pudb/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pudb/default.nix
@@ -8,11 +8,11 @@
 
 buildPythonPackage rec {
   pname = "pudb";
-  version = "2020.1";
+  version = "2021.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "2ef23d3371439f13fffbe7f8b9fc180a19d4183dc9cab204d878d7c7766464bf";
+    sha256 = "309ee82b45a0ffca0bc4c7f521fd3e357589c764f339bdf9dcabb7ad40692d6e";
   };
 
   propagatedBuildInputs = [ pygments urwid ];
diff --git a/nixpkgs/pkgs/development/python-modules/py-air-control-exporter/default.nix b/nixpkgs/pkgs/development/python-modules/py-air-control-exporter/default.nix
index d67ddba02b9c..d3150b453a63 100644
--- a/nixpkgs/pkgs/development/python-modules/py-air-control-exporter/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/py-air-control-exporter/default.nix
@@ -8,23 +8,18 @@
 , prometheus-client
 , py-air-control
 , pytestCheckHook
-, setuptools-scm
 }:
 
 buildPythonPackage rec {
   pname = "py-air-control-exporter";
-  version = "0.3.0";
+  version = "0.3.1";
   disabled = isPy27;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "ece2e446273542e5c0352c9d6e80d8279132c6ada3649c59e87a711448801a3b";
+    sha256 = "0cwhcyyjzc6wlj7jp5h7fcj1hl03wzrz1if3sg205kh2hfrzzlqq";
   };
 
-  nativeBuildInputs = [
-    setuptools-scm
-  ];
-
   propagatedBuildInputs = [
     click
     flask
@@ -36,19 +31,6 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
-  postPatch = ''
-    substituteInPlace setup.py \
-      --replace "pytest-runner" ""
-    substituteInPlace setup.cfg \
-      --replace "--cov=py_air_control_exporter" ""
-  '';
-
-  disabledTests = [
-    # Tests are outdated
-    "test_help"
-    "test_unknown_protocol"
-  ];
-
   pythonImportsCheck = [ "py_air_control_exporter" ];
 
   passthru.tests = { inherit (nixosTests.prometheus-exporters) py-air-control; };
diff --git a/nixpkgs/pkgs/development/python-modules/py3status/default.nix b/nixpkgs/pkgs/development/python-modules/py3status/default.nix
index c8d5068e4e73..e027aaeb294b 100644
--- a/nixpkgs/pkgs/development/python-modules/py3status/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/py3status/default.nix
@@ -24,11 +24,11 @@
 
 buildPythonPackage rec {
   pname = "py3status";
-  version = "3.38";
+  version = "3.39";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "5660163a91590f320685263a738ab910c7a86346d9c85a68639a19ab83433ce6";
+    sha256 = "d2a11dde0cc82d0eb5e938fe624f223d852ed848c57299ff562827bc4557375f";
   };
 
   doCheck = false;
diff --git a/nixpkgs/pkgs/development/python-modules/pyTelegramBotAPI/default.nix b/nixpkgs/pkgs/development/python-modules/pyTelegramBotAPI/default.nix
index 58d1d0c694a7..e0ff93697395 100644
--- a/nixpkgs/pkgs/development/python-modules/pyTelegramBotAPI/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyTelegramBotAPI/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "pyTelegramBotAPI";
-  version = "3.8.3";
+  version = "4.1.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "afdd887fff42a963f13d09a1f4f5fd24aef08f4b8a594f2ac11e0a29022f1518";
+    sha256 = "c84218af7e08e859e07cfe5645d9586ceaad51c24f0f4529a9ed0adafd5aa0bf";
   };
 
   propagatedBuildInputs = [ requests ];
diff --git a/nixpkgs/pkgs/development/python-modules/pyads/default.nix b/nixpkgs/pkgs/development/python-modules/pyads/default.nix
index 5b710b0da156..232221365fa4 100644
--- a/nixpkgs/pkgs/development/python-modules/pyads/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyads/default.nix
@@ -8,14 +8,14 @@
 
 buildPythonPackage rec {
   pname = "pyads";
-  version = "3.3.7";
+  version = "3.3.8";
   disabled = pythonOlder "3.6";
 
   src = fetchFromGitHub {
     owner = "stlehmann";
     repo = pname;
     rev = version;
-    sha256 = "sha256-h3c6z+dmrOc1Q7E8YVJZJD2FsxoxqQX5J92SEweIpto=";
+    sha256 = "sha256-jhEVBndUOKM8rBX0LEqPTMLqbpizCiD7T+OCzbVgLM8=";
   };
 
   buildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/pybids/default.nix b/nixpkgs/pkgs/development/python-modules/pybids/default.nix
index 97187abd7591..daa879a58a0d 100644
--- a/nixpkgs/pkgs/development/python-modules/pybids/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pybids/default.nix
@@ -14,12 +14,12 @@
 }:
 
 buildPythonPackage rec {
-  version = "0.13.1";
+  version = "0.13.2";
   pname = "pybids";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-ySDhVX4drotnFiXXDK+9woQ3uigistudpMJYenYl47o=";
+    sha256 = "9692013af3b86b096b5423b88179c6c9b604baff5a6b6f89ba5f40429feb7a3e";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/pybind11/default.nix b/nixpkgs/pkgs/development/python-modules/pybind11/default.nix
index 3f825a06cd3c..e6be3f063fef 100644
--- a/nixpkgs/pkgs/development/python-modules/pybind11/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pybind11/default.nix
@@ -12,13 +12,13 @@
 
 buildPythonPackage rec {
   pname = "pybind11";
-  version = "2.7.0";
+  version = "2.7.1";
 
   src = fetchFromGitHub {
     owner = "pybind";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-iEXoNTsfsDq79bKV7A4aOCHr11rT/cqnyLghEtGsaks=";
+    sha256 = "13nq16pxz4vck7jn936ymhm0y0q82hd7kkw0ip7k85cx7wywzbql";
   };
 
   nativeBuildInputs = [ cmake ];
diff --git a/nixpkgs/pkgs/development/python-modules/pybullet/default.nix b/nixpkgs/pkgs/development/python-modules/pybullet/default.nix
index 4d97b535606f..3a5d68f37e4a 100644
--- a/nixpkgs/pkgs/development/python-modules/pybullet/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pybullet/default.nix
@@ -8,11 +8,11 @@
 
 buildPythonPackage rec {
   pname = "pybullet";
-  version = "3.1.8";
+  version = "3.1.9";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "a7e6c7c77cab39e1559c98e4290c5138247b15d3a26a76a23b2737c159f3f905";
+    sha256 = "6fb4d48d5ba9c09cdd1ed732e8a1d48b41bca379e072268af3831774d8391300";
   };
 
   buildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/pychromecast/default.nix b/nixpkgs/pkgs/development/python-modules/pychromecast/default.nix
index 6c97b3e3f440..e01c5e181981 100644
--- a/nixpkgs/pkgs/development/python-modules/pychromecast/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pychromecast/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "PyChromecast";
-  version = "9.2.0";
+  version = "9.2.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "6d34593575cf77565df47af4c75dd47c6a65831ec18a8c10b5367b2f1c172f0a";
+    sha256 = "sha256-iD1ug2/18QaKi9ADZKFbTJhUKTCGSV6f2crNm01UwL8=";
   };
 
   disabled = !isPy3k;
diff --git a/nixpkgs/pkgs/development/python-modules/pydeconz/default.nix b/nixpkgs/pkgs/development/python-modules/pydeconz/default.nix
index fb0852e2bf11..07fe662f6ec0 100644
--- a/nixpkgs/pkgs/development/python-modules/pydeconz/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pydeconz/default.nix
@@ -10,14 +10,14 @@
 
 buildPythonPackage rec {
   pname = "pydeconz";
-  version = "82";
+  version = "83";
   disabled = pythonOlder "3.7";
 
   src = fetchFromGitHub {
     owner = "Kane610";
     repo = "deconz";
     rev = "v${version}";
-    sha256 = "sha256-DdZ6bf+2rMjgjm5aRxcSRI/hN0zfP7uV8PaM40c9IJo=";
+    sha256 = "0azpdgmfby8plsp22hy1ip9vzbnmvf9brmah7hcwkpypg31rb61y";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/pyfaidx/default.nix b/nixpkgs/pkgs/development/python-modules/pyfaidx/default.nix
index c179688a8a5b..317691066f47 100644
--- a/nixpkgs/pkgs/development/python-modules/pyfaidx/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyfaidx/default.nix
@@ -6,11 +6,11 @@
 
 buildPythonPackage rec {
   pname = "pyfaidx";
-  version = "0.6.1";
+  version = "0.6.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "fae5d2264f62f40e6f37090422a764197de610df36afb5ae827b167d34b8621a";
+    sha256 = "d1258f8d053cba0c90fe329254e8ec59eb28b535b48d9d06e8c7f1d74b8e4531";
   };
 
   propagatedBuildInputs = [ six ];
diff --git a/nixpkgs/pkgs/development/python-modules/pyfakefs/default.nix b/nixpkgs/pkgs/development/python-modules/pyfakefs/default.nix
index ab4c2f360760..217e552aa0e1 100644
--- a/nixpkgs/pkgs/development/python-modules/pyfakefs/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyfakefs/default.nix
@@ -7,13 +7,13 @@
 }:
 
 buildPythonPackage rec {
-  version = "4.5.0";
+  version = "4.5.1";
   pname = "pyfakefs";
   disabled = pythonOlder "3.5";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "58b017b3437bbe97803a23755876c6d6aeb5aea37e52cec15e5d86b59c4c7295";
+    sha256 = "002a065dcbf59c2caa039e4fc4ba01d1d636aa63ee9c794d4c9fc01f0e2d6dc0";
   };
 
   postPatch = ''
diff --git a/nixpkgs/pkgs/development/python-modules/pyfronius/default.nix b/nixpkgs/pkgs/development/python-modules/pyfronius/default.nix
index 682ae2ff620b..c6a68401342d 100644
--- a/nixpkgs/pkgs/development/python-modules/pyfronius/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyfronius/default.nix
@@ -8,14 +8,15 @@
 
 buildPythonPackage rec {
   pname = "pyfronius";
-  version = "0.6.3";
+  version = "0.7.0";
+
   disabled = pythonOlder "3.6";
 
   src = fetchFromGitHub {
     owner = "nielstron";
     repo = pname;
     rev = "release-${version}";
-    sha256 = "19cgr0y4zfyghpw9hwl9immh5c464dlasnfd8q570k9f0q682249";
+    sha256 = "1jp9vsllvzfnrkzmln2sp1ggr4pwaj47744n2ijz1wsf8v38nw2j";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/pyglet/default.nix b/nixpkgs/pkgs/development/python-modules/pyglet/default.nix
index 66129553b736..7addcf531426 100644
--- a/nixpkgs/pkgs/development/python-modules/pyglet/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyglet/default.nix
@@ -18,13 +18,13 @@
 }:
 
 buildPythonPackage rec {
-  version = "1.5.20";
+  version = "1.5.21";
   pname = "pyglet";
   disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "ce76ce598ac910fbae6aae0db00aac21d19d62bdc8c616ed6e6a6a395dc44513";
+    sha256 = "5aaaddb06dc4b6f9ba08254d8d806a2bd2406925a9caf3a51fdffbd5d09728e2";
     extension = "zip";
   };
 
diff --git a/nixpkgs/pkgs/development/python-modules/pyiqvia/default.nix b/nixpkgs/pkgs/development/python-modules/pyiqvia/default.nix
index 5dce573eaebb..89df38b80c50 100644
--- a/nixpkgs/pkgs/development/python-modules/pyiqvia/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyiqvia/default.nix
@@ -2,6 +2,7 @@
 , buildPythonPackage
 , aiohttp
 , aresponses
+, backoff
 , fetchFromGitHub
 , poetry-core
 , pytest-aiohttp
@@ -12,7 +13,7 @@
 
 buildPythonPackage rec {
   pname = "pyiqvia";
-  version = "1.0.1";
+  version = "1.1.0";
   format = "pyproject";
 
   disabled = pythonOlder "3.6";
@@ -21,7 +22,7 @@ buildPythonPackage rec {
     owner = "bachya";
     repo = pname;
     rev = version;
-    sha256 = "18qzxxn9xw9rwv3qz8k3zxh9xxy8c7rs8xlsrdrcq9wb0dhd7p0r";
+    sha256 = "sha256-uDcBpPHh+wQHI2vGjnumwVGt5ZOreVq+L3kOam97uW4=";
   };
 
   nativeBuildInputs = [
@@ -30,6 +31,7 @@ buildPythonPackage rec {
 
   propagatedBuildInputs = [
     aiohttp
+    backoff
   ];
 
   checkInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/pykka/default.nix b/nixpkgs/pkgs/development/python-modules/pykka/default.nix
index 075b607c772e..dfd84fe066d0 100644
--- a/nixpkgs/pkgs/development/python-modules/pykka/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pykka/default.nix
@@ -1,21 +1,39 @@
-{ lib, buildPythonPackage, fetchPypi, pytestCheckHook, pytest-mock }:
+{ lib
+, buildPythonPackage
+, pythonOlder
+, fetchFromGitHub
+, poetry-core
+, pytestCheckHook
+, pytest-mock
+}:
 
 buildPythonPackage rec {
-  pname = "Pykka";
-  version = "2.0.3";
+  pname = "pykka";
+  version = "3.0.1";
+  format = "pyproject";
+  disabled = pythonOlder "3.6.1";
 
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "4b9d2363365b3455a0204bf163f09bd351d24b938c618c79d975a9510e128e95";
+  src = fetchFromGitHub {
+    owner = "jodal";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "1h3brgm8y4a9s991y0drkp0vvmxix9f2b49f9w6ibhkhr37gc0lh";
   };
 
-  checkInputs = [ pytestCheckHook pytest-mock ];
+  nativeBuildInputs = [
+    poetry-core
+  ];
+
+  checkInputs = [
+    pytestCheckHook
+    pytest-mock
+  ];
 
   meta = with lib; {
     homepage = "https://www.pykka.org/";
     description = "A Python implementation of the actor model";
     changelog = "https://github.com/jodal/pykka/blob/v${version}/docs/changes.rst";
-    maintainers = [ maintainers.marsam ];
+    maintainers = with maintainers; [ marsam ];
     license = licenses.asl20;
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/pykodi/default.nix b/nixpkgs/pkgs/development/python-modules/pykodi/default.nix
index a0ca9a4c5737..d754a44ffd38 100644
--- a/nixpkgs/pkgs/development/python-modules/pykodi/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pykodi/default.nix
@@ -8,11 +8,11 @@
 
 buildPythonPackage rec {
   pname = "pykodi";
-  version = "0.2.5";
+  version = "0.2.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1al2q4jiqxjnz0j2xvs2hqzrz6fm3hmda5zjnkp8gdvgchd1cmn7";
+    sha256 = "sha256-SDp2S9HeqejRM3cf4x+5RLUQMPhjieQaXoubwf9Q/d4=";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/pylint/default.nix b/nixpkgs/pkgs/development/python-modules/pylint/default.nix
index ef42bd43239a..2e4953ec7b9b 100644
--- a/nixpkgs/pkgs/development/python-modules/pylint/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pylint/default.nix
@@ -1,12 +1,13 @@
 { stdenv
 , lib
 , buildPythonPackage
-, fetchPypi
+, fetchFromGitHub
 , pythonOlder
 , installShellFiles
 , astroid
 , isort
 , mccabe
+, platformdirs
 , toml
 , pytest-benchmark
 , pytest-xdist
@@ -15,13 +16,15 @@
 
 buildPythonPackage rec {
   pname = "pylint";
-  version = "2.7.4";
+  version = "2.10.2";
 
   disabled = pythonOlder "3.6";
 
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "bd38914c7731cdc518634a8d3c5585951302b6e2b6de60fbb3f7a0220e21eeee";
+  src = fetchFromGitHub {
+    owner = "PyCQA";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "sha256-hkrkgUdC5LO1oSPFL6gvIk0zFpMw45gCmnoRbdPZuRs=";
   };
 
   nativeBuildInputs = [
@@ -32,6 +35,7 @@ buildPythonPackage rec {
     astroid
     isort
     mccabe
+    platformdirs
     toml
   ];
 
@@ -58,6 +62,12 @@ buildPythonPackage rec {
     "-n auto"
   ];
 
+  disabledTestPaths = [
+    # tests miss multiple input files
+    # FileNotFoundError: [Errno 2] No such file or directory
+    "tests/pyreverse/test_writer.py"
+  ];
+
   disabledTests = lib.optionals stdenv.isDarwin [
     "test_parallel_execution"
     "test_py3k_jobs_option"
diff --git a/nixpkgs/pkgs/development/python-modules/pylitterbot/default.nix b/nixpkgs/pkgs/development/python-modules/pylitterbot/default.nix
index 08924d515732..ac4531328fcf 100644
--- a/nixpkgs/pkgs/development/python-modules/pylitterbot/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pylitterbot/default.nix
@@ -11,14 +11,14 @@
 
 buildPythonPackage rec {
   pname = "pylitterbot";
-  version = "2021.8.0";
+  version = "2021.9.0";
   disabled = pythonOlder "3.6";
 
   src = fetchFromGitHub {
     owner = "natekspencer";
     repo = pname;
     rev = version;
-    sha256 = "sha256-Z7/j5ZZd8cOJhY/GfKUcDSJZvmU/TR/KDK60j1eYsik=";
+    sha256 = "sha256-S25x9k6vBwnmJq15y5PVUWaTujT9UNHvgIX9uH+N8dY=";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/pymatgen/default.nix b/nixpkgs/pkgs/development/python-modules/pymatgen/default.nix
index 364514b6b5d0..56e436e96d2c 100644
--- a/nixpkgs/pkgs/development/python-modules/pymatgen/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pymatgen/default.nix
@@ -21,11 +21,11 @@
 
 buildPythonPackage rec {
   pname = "pymatgen";
-  version = "2022.0.11";
+  version = "2022.0.12";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "901d00105142c9added48275188e289e91b3098251ec107aef90acaef3ea6d0d";
+    sha256 = "bad712c883a12d774a8a58c35abc5d582c5e5eafdbb5351dc06ebe98c28bd135";
   };
 
   nativeBuildInputs = [ glibcLocales ];
diff --git a/nixpkgs/pkgs/development/python-modules/pymavlink/default.nix b/nixpkgs/pkgs/development/python-modules/pymavlink/default.nix
index 894e5c128e9e..5de1776d8244 100644
--- a/nixpkgs/pkgs/development/python-modules/pymavlink/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pymavlink/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "pymavlink";
-  version = "2.4.15";
+  version = "2.4.16";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "106va20k0ahy0l2qvxf8k5pvqkgdmxbgzd9kij9fkrahlba5mx3v";
+    sha256 = "99b77fdc1389dea7c9dbbfb70143fed707238e00c961ada73b79bcf15b21ca19";
   };
 
   propagatedBuildInputs = [ future lxml ];
diff --git a/nixpkgs/pkgs/development/python-modules/pymc3/default.nix b/nixpkgs/pkgs/development/python-modules/pymc3/default.nix
index e322bb14f7ba..095f3baf97ae 100644
--- a/nixpkgs/pkgs/development/python-modules/pymc3/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pymc3/default.nix
@@ -20,12 +20,12 @@
 
 buildPythonPackage rec {
   pname = "pymc3";
-  version = "3.11.2";
+  version = "3.11.4";
   disabled = pythonOlder "3.5";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "d3b93c8923ae8c8107c5adfd22f7c37fa0849a00a9723e0e0a0ca6afb582d6c3";
+    sha256 = "3b88d1e6c85f7fb8a9b99d6f136ac860672170370ec4146338fdd160c3b3fd3f";
   };
 
   # No need for coverage stats in Nix builds
diff --git a/nixpkgs/pkgs/development/python-modules/pymodbus/default.nix b/nixpkgs/pkgs/development/python-modules/pymodbus/default.nix
index b96c5f8d15da..40dae5c6997b 100644
--- a/nixpkgs/pkgs/development/python-modules/pymodbus/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pymodbus/default.nix
@@ -18,13 +18,13 @@
 
 buildPythonPackage rec {
   pname = "pymodbus";
-  version = "2.5.2";
+  version = "2.5.3rc1";
 
   src = fetchFromGitHub {
     owner = "riptideio";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-jqVfBAjIdRBB5AYd0ZkMi7qAUR6vSYeBI4OYEv+mKwE=";
+    sha256 = "sha256-jynljjTipN/Yx97RSWikcotxCqosNWSDH7GdwcSIiRU=";
   };
 
   # Twisted asynchronous version is not supported due to a missing dependency
diff --git a/nixpkgs/pkgs/development/python-modules/pymongo/default.nix b/nixpkgs/pkgs/development/python-modules/pymongo/default.nix
index b81edaac6688..0d18175d7e6d 100644
--- a/nixpkgs/pkgs/development/python-modules/pymongo/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pymongo/default.nix
@@ -1,20 +1,28 @@
-{ lib, buildPythonPackage, fetchPypi }:
+{ lib
+, buildPythonPackage
+, fetchPypi
+, pythonOlder
+}:
 
 buildPythonPackage rec {
   pname = "pymongo";
-  version = "3.11.4";
+  version = "3.12.0";
+  disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "539d4cb1b16b57026999c53e5aab857fe706e70ae5310cc8c232479923f932e6";
+    sha256 = "sha256-uI0XQhWbyToHhzP5eJ9WPO8m9eNw66gQR2pxqpjl+8I=";
   };
 
   # Tests call a running mongodb instance
   doCheck = false;
 
+  pythonImportsCheck = [ "pymongo" ];
+
   meta = with lib; {
+    description = "Python driver for MongoDB";
     homepage = "https://github.com/mongodb/mongo-python-driver";
     license = licenses.asl20;
-    description = "Python driver for MongoDB";
+    maintainers = with maintainers; [ ];
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/pymyq/default.nix b/nixpkgs/pkgs/development/python-modules/pymyq/default.nix
index 04a8b596e844..5f151aa46e23 100644
--- a/nixpkgs/pkgs/development/python-modules/pymyq/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pymyq/default.nix
@@ -9,14 +9,14 @@
 
 buildPythonPackage rec {
   pname = "pymyq";
-  version = "3.1.3";
+  version = "3.1.4";
   disabled = pythonOlder "3.8";
 
   src = fetchFromGitHub {
     owner = "arraylabs";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-V2u2wUSPwiF6o6OWhQVKiHtzhn0/rzyM6e2+a+D7UNA=";
+    sha256 = "sha256-B8CnyM0nQr8HWnD5toMd8A57j/UtnQ2aWys0netOAtA=";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/pynanoleaf/default.nix b/nixpkgs/pkgs/development/python-modules/pynanoleaf/default.nix
index 9bdf4885dd4f..9fab8f7b31c0 100644
--- a/nixpkgs/pkgs/development/python-modules/pynanoleaf/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pynanoleaf/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "pynanoleaf";
-  version = "0.1.0";
+  version = "0.1.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-BiLJgsey7kIIeN5+CKKnrTB2bSKMNEbeMLwGi2LRLcg=";
+    sha256 = "32a083759c4f99e019e0013670487841f8edf807c7a07742a971fa18707072a7";
   };
 
   disabled = !isPy3k;
diff --git a/nixpkgs/pkgs/development/python-modules/pynndescent/default.nix b/nixpkgs/pkgs/development/python-modules/pynndescent/default.nix
index fa9db26b5e39..7256749f8dec 100644
--- a/nixpkgs/pkgs/development/python-modules/pynndescent/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pynndescent/default.nix
@@ -1,43 +1,40 @@
 { lib
 , buildPythonPackage
 , fetchPypi
-, nose
+, joblib
+, llvmlite
+, numba
 , scikit-learn
 , scipy
-, numba
-, llvmlite
-, joblib
+, pytestCheckHook
 }:
 
 buildPythonPackage rec {
   pname = "pynndescent";
-  version = "0.5.2";
+  version = "0.5.4";
+  format = "setuptools";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0w87c2v0li2rdbx6qfc2lb6y6bxpdy3jwfgzfs1kcr4d1chj5zfr";
+    sha256 = "221124cbad8e3cf3ed421a4089d80ac5a29d3215e76cb49effc1df887533d2a8";
   };
 
   propagatedBuildInputs = [
+    joblib
+    llvmlite
+    numba
     scikit-learn
     scipy
-    numba
-    llvmlite
-    joblib
   ];
 
   checkInputs = [
-    nose
+    pytestCheckHook
   ];
 
-  checkPhase = ''
-    nosetests
-  '';
-
   meta = with lib; {
     description = "Nearest Neighbor Descent";
     homepage = "https://github.com/lmcinnes/pynndescent";
     license = licenses.bsd2;
-    maintainers = [ maintainers.mic92 ];
+    maintainers = with maintainers; [ mic92 ];
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/pyocr/default.nix b/nixpkgs/pkgs/development/python-modules/pyocr/default.nix
index 099c9e237111..df20d3bb6c47 100644
--- a/nixpkgs/pkgs/development/python-modules/pyocr/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyocr/default.nix
@@ -1,6 +1,16 @@
-{ lib, fetchFromGitLab, buildPythonPackage, pillow, setuptools-scm,
-setuptools-scm-git-archive , tesseract, cuneiform, isPy3k, substituteAll,
-pytest, tox }:
+{ lib
+, fetchFromGitLab
+, buildPythonPackage
+, pillow
+, setuptools-scm
+, setuptools-scm-git-archive
+, tesseract
+, cuneiform
+, isPy3k
+, substituteAll
+, pytestCheckHook
+, tox
+}:
 
 buildPythonPackage rec {
   pname = "pyocr";
@@ -17,20 +27,25 @@ buildPythonPackage rec {
     sha256 = "09ab86bmizpv94w3mdvdqkjyyvk1vafw3jqhkiw5xx7p180xn3il";
   };
 
-  patches = [ (substituteAll {
-    src = ./paths.patch;
-    inherit cuneiform tesseract;
-  })
+  patches = [
+    (substituteAll {
+      src = ./paths.patch;
+      inherit cuneiform tesseract;
+    })
   ];
 
+  SETUPTOOLS_SCM_PRETEND_VERSION = version;
+
   buildInputs = [ setuptools-scm setuptools-scm-git-archive ];
+
   propagatedBuildInputs = [ pillow ];
-  checkInputs = [ pytest tox ];
-  checkPhase = "pytest";
 
-  meta = {
+  checkInputs = [ pytestCheckHook ];
+
+  meta = with lib; {
     inherit (src.meta) homepage;
     description = "A Python wrapper for Tesseract and Cuneiform";
-    license = lib.licenses.gpl3Plus;
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ ];
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/pyopenuv/default.nix b/nixpkgs/pkgs/development/python-modules/pyopenuv/default.nix
index 5560f3811fa3..f30f3758f31b 100644
--- a/nixpkgs/pkgs/development/python-modules/pyopenuv/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyopenuv/default.nix
@@ -14,14 +14,14 @@
 
 buildPythonPackage rec {
   pname = "pyopenuv";
-  version = "2.1.0";
+  version = "2.2.1";
   format = "pyproject";
 
   src = fetchFromGitHub {
     owner = "bachya";
     repo = pname;
     rev = version;
-    sha256 = "sha256-S2X7cTArjiWOFjQGnrZ4AuhgN8t18wf9d6i9X5thRZg=";
+    sha256 = "sha256-9hpXVKCpVbUAoTxd5mHP9NK1dZxbrQUxrQrOEVHpaPo=";
   };
 
   nativeBuildInputs = [ poetry-core ];
diff --git a/nixpkgs/pkgs/development/python-modules/pyosmium/default.nix b/nixpkgs/pkgs/development/python-modules/pyosmium/default.nix
index 6bd360036000..bd6b5d701dda 100644
--- a/nixpkgs/pkgs/development/python-modules/pyosmium/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyosmium/default.nix
@@ -1,10 +1,10 @@
 { lib, buildPythonPackage, fetchFromGitHub, cmake, python
 , libosmium, protozero, boost, expat, bzip2, zlib, pybind11
-, nose, shapely, pythonOlder, isPyPy, lz4 }:
+, nose, shapely, pythonOlder, isPyPy, lz4, requests }:
 
 buildPythonPackage rec {
   pname = "pyosmium";
-  version = "3.1.3";
+  version = "3.2.0";
 
   disabled = pythonOlder "3.4" || isPyPy;
 
@@ -12,11 +12,12 @@ buildPythonPackage rec {
     owner = "osmcode";
     repo = pname;
     rev = "v${version}";
-    sha256 = "11ma8nr7k2ixwwb55fiqvrj5qbmpgkyfk0canz4l0m8b7rcw3qsc";
+    sha256 = "0s9h1blz4vrgcvdiikbpi2d4cy69kg2s8ki4dzampm1s0pa92if5";
   };
 
   nativeBuildInputs = [ cmake ];
   buildInputs = [ libosmium protozero boost expat bzip2 zlib pybind11 lz4 ];
+  propagatedBuildInputs = [ requests ];
 
   preBuild = "cd ..";
 
diff --git a/nixpkgs/pkgs/development/python-modules/pyp/default.nix b/nixpkgs/pkgs/development/python-modules/pyp/default.nix
new file mode 100644
index 000000000000..4ef79bc90716
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/pyp/default.nix
@@ -0,0 +1,43 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, pytestCheckHook
+, coreutils
+, pythonOlder
+, astunparse
+, jq
+, bc
+}:
+
+buildPythonPackage rec {
+  pname = "pyp";
+  version = "0.3.4";
+
+  src = fetchFromGitHub {
+    owner = "hauntsaninja";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "sha256-K9dGmvy4siurmhqwNfg1dT0TWc6tCSaxfPyaJkYM2Vw=";
+  };
+
+  propagatedBuildInputs = lib.optionals (pythonOlder "3.9") [
+    astunparse
+  ];
+
+  preCheck = ''
+    export PATH=$out/bin:$PATH
+  '';
+  checkInputs = [
+    pytestCheckHook
+    coreutils
+    jq
+    bc
+  ];
+
+  meta = with lib; {
+    description = "Easily run Python at the shell! Magical, but never mysterious.";
+    homepage = "https://github.com/hauntsaninja/pyp";
+    license = licenses.mit;
+    maintainers = with maintainers; [ rmcgibbo ];
+   };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/pypandoc/default.nix b/nixpkgs/pkgs/development/python-modules/pypandoc/default.nix
index 3d3af7f4669b..ecb87d951b31 100644
--- a/nixpkgs/pkgs/development/python-modules/pypandoc/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pypandoc/default.nix
@@ -4,13 +4,13 @@
 
 buildPythonPackage rec {
   pname = "pypandoc";
-  version = "1.6.3";
+  version = "1.6.4";
 
   src = fetchFromGitHub {
     owner = "NicklasTegner";
     repo = pname;
-    rev = version;
-    sha256 = "163wkcm06klr68dadr9mb8gblj0ls26w097bjrg4f5j0533ysdpp";
+    rev = "v${version}";
+    sha256 = "0rssjig3nwdi4qvsjq7v7k8jyv6l9szfl5dp1a8s54c4j4dw37nh";
   };
 
   patches = [
diff --git a/nixpkgs/pkgs/development/python-modules/pyphen/default.nix b/nixpkgs/pkgs/development/python-modules/pyphen/default.nix
index 2f573b67838b..74581ba7e33c 100644
--- a/nixpkgs/pkgs/development/python-modules/pyphen/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyphen/default.nix
@@ -1,14 +1,26 @@
-{ lib, buildPythonPackage, fetchPypi }:
+{ lib
+, buildPythonPackage
+, fetchPypi
+, pytestCheckHook
+}:
 
 buildPythonPackage rec {
-  pname = "Pyphen";
-  version = "0.10.0";
+  pname = "pyphen";
+  version = "0.11.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "719b21dfb4b04fbc11cc0f6112418535fe35474021120cccfffc43a25fe63128";
+    sha256 = "e2c3ed82c3a04317df5102addafe89652b0876bc6c6265f5dd4c3efaf02315e8";
   };
 
+  preCheck = ''
+    sed -i '/addopts/d' pyproject.toml
+  '';
+
+  checkInputs = [
+    pytestCheckHook
+  ];
+
   meta = with lib; {
     description = "Pure Python module to hyphenate text";
     homepage = "https://github.com/Kozea/Pyphen";
diff --git a/nixpkgs/pkgs/development/python-modules/pyramid/default.nix b/nixpkgs/pkgs/development/python-modules/pyramid/default.nix
index 95333f746d0c..da9569b7fb73 100644
--- a/nixpkgs/pkgs/development/python-modules/pyramid/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyramid/default.nix
@@ -18,11 +18,11 @@
 
 buildPythonPackage rec {
   pname = "pyramid";
-  version = "1.10.8";
+  version = "2.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "b7cd66595bef92f81764b976ddde2b2fa8e4f5f325e02f65f6ec7f3708b29cf6";
+    sha256 = "45431b387587ed0fac6213b54d6e9f0936f0cc85238a8f5af7852fc9484c5c77";
   };
 
   checkInputs = [ webtest zope_component ];
diff --git a/nixpkgs/pkgs/development/python-modules/pyramid_mako/default.nix b/nixpkgs/pkgs/development/python-modules/pyramid_mako/default.nix
index 47aa1deb5e26..9acffbde4333 100644
--- a/nixpkgs/pkgs/development/python-modules/pyramid_mako/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyramid_mako/default.nix
@@ -23,5 +23,8 @@ buildPythonPackage rec {
     description = "Mako template bindings for the Pyramid web framework";
     license = licenses.bsd0;
     maintainers = with maintainers; [];
+    # broken on pyramid>=2.0
+    # https://github.com/Pylons/pyramid_mako/issues/53
+    broken = true;
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/pyro4/default.nix b/nixpkgs/pkgs/development/python-modules/pyro4/default.nix
index 3de7afd9668d..ffb8584f9411 100644
--- a/nixpkgs/pkgs/development/python-modules/pyro4/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyro4/default.nix
@@ -12,13 +12,13 @@
 
 buildPythonPackage rec {
   pname = "Pyro4";
-  version = "4.80";
+  version = "4.81";
 
   disabled = isPy27;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "46847ca703de3f483fbd0b2d22622f36eff03e6ef7ec7704d4ecaa3964cb2220";
+    sha256 = "e130da06478b813173b959f7013d134865e07fbf58cc5f1a2598f99479cdac5f";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/pyroma/default.nix b/nixpkgs/pkgs/development/python-modules/pyroma/default.nix
index 03eea0b8b5e9..9d2c220c472f 100644
--- a/nixpkgs/pkgs/development/python-modules/pyroma/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyroma/default.nix
@@ -2,10 +2,10 @@
 , buildPythonPackage
 , fetchFromGitHub
 , docutils
+, python
 , pygments
 , setuptools
 , requests
-, pytestCheckHook
 }:
 
 buildPythonPackage rec {
@@ -26,16 +26,11 @@ buildPythonPackage rec {
     requests
   ];
 
-  checkInputs = [
-    pytestCheckHook
-  ];
-
-  pytestFlagsArray = [ "pyroma/tests.py" ];
-
-  disabledTests = [
-    # PyPI tests require network access
-    "PyPITest"
-  ];
+  # https://github.com/regebro/pyroma/blob/3.2/Makefile#L23
+  # PyPITest requires network access
+  checkPhase = ''
+    ${python.interpreter} -m unittest -k 'not PyPITest' pyroma.tests
+  '';
 
   pythonImportsCheck = [ "pyroma" ];
 
@@ -43,6 +38,6 @@ buildPythonPackage rec {
     description = "Test your project's packaging friendliness";
     homepage = "https://github.com/regebro/pyroma";
     license = licenses.mit;
-    maintainers = with maintainers; [ ];
+    maintainers = with maintainers; [ kamadorueda ];
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/pyroute2-core/default.nix b/nixpkgs/pkgs/development/python-modules/pyroute2-core/default.nix
index b61437134714..fe92d88beaec 100644
--- a/nixpkgs/pkgs/development/python-modules/pyroute2-core/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyroute2-core/default.nix
@@ -6,12 +6,12 @@
 
 buildPythonPackage rec {
   pname = "pyroute2-core";
-  version = "0.6.4";
+  version = "0.6.5";
 
   src = fetchPypi {
     pname = "pyroute2.core";
     inherit version;
-    sha256 = "1kd5wda7nqcmrwy6b42nqgz570y99yjw3m6a1kxr8ag3859fwga5";
+    sha256 = "sha256-Jm10Dq5A+mTdBFQfAH0022ls7PMVTLpb4w+nWmfUOFI=";
   };
 
   # pyroute2 sub-modules have no tests
diff --git a/nixpkgs/pkgs/development/python-modules/pyroute2-ethtool/default.nix b/nixpkgs/pkgs/development/python-modules/pyroute2-ethtool/default.nix
index 812b71ef756e..6f2695507863 100644
--- a/nixpkgs/pkgs/development/python-modules/pyroute2-ethtool/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyroute2-ethtool/default.nix
@@ -6,12 +6,12 @@
 
 buildPythonPackage rec {
   pname = "pyroute2-ethtool";
-  version = "0.6.4";
+  version = "0.6.5";
 
   src = fetchPypi {
     pname = "pyroute2.ethtool";
     inherit version;
-    sha256 = "04wxx2nn3rdsjcmck7fidzfdc42gpsjva2jc8p7a987b0j58r17s";
+    sha256 = "sha256-yvgBS2dlIRNcR2DXLPWu72q7x/onUhD36VMzBzzHcVo=";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/pyroute2-ipdb/default.nix b/nixpkgs/pkgs/development/python-modules/pyroute2-ipdb/default.nix
index 0e9c457698bc..7411f49cb52a 100644
--- a/nixpkgs/pkgs/development/python-modules/pyroute2-ipdb/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyroute2-ipdb/default.nix
@@ -6,12 +6,12 @@
 
 buildPythonPackage rec {
   pname = "pyroute2-ipdb";
-  version = "0.6.4";
+  version = "0.6.5";
 
   src = fetchPypi {
     pname = "pyroute2.ipdb";
     inherit version;
-    sha256 = "0r4xq7h39qac309lpl7haaa4rqf6qzsypkgnsiran3w9jgr1hg75";
+    sha256 = "sha256-8gKP0QE9iviIFQ0DPuz3U3ZXpL434MzOqYAICZYetXc=";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/pyroute2-ipset/default.nix b/nixpkgs/pkgs/development/python-modules/pyroute2-ipset/default.nix
index 34a99898e74c..5ab21f8f22c7 100644
--- a/nixpkgs/pkgs/development/python-modules/pyroute2-ipset/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyroute2-ipset/default.nix
@@ -6,12 +6,12 @@
 
 buildPythonPackage rec {
   pname = "pyroute2-ipset";
-  version = "0.6.4";
+  version = "0.6.5";
 
   src = fetchPypi {
     pname = "pyroute2.ipset";
     inherit version;
-    sha256 = "sha256-V6aUGYv4PGhxHoEjgNuqoRbd6ftqirO/ofNDQEACTy8=";
+    sha256 = "sha256-rlJ8D5mXSCMKH2iNmit8JXst9tdDafROylMNAHeTt50=";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/pyroute2-ndb/default.nix b/nixpkgs/pkgs/development/python-modules/pyroute2-ndb/default.nix
index 4dcb6544074a..7caa902dfa7d 100644
--- a/nixpkgs/pkgs/development/python-modules/pyroute2-ndb/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyroute2-ndb/default.nix
@@ -6,12 +6,12 @@
 
 buildPythonPackage rec {
   pname = "pyroute2-ndb";
-  version = "0.6.4";
+  version = "0.6.5";
 
   src = fetchPypi {
     pname = "pyroute2.ndb";
     inherit version;
-    sha256 = "0q3py2n6w7nhdxi4l6vx8xpxh5if6hav4lcl5nwk8c4pgcrfd4vn";
+    sha256 = "sha256-pNMJWE6e9seEKvT4MrSPxTRKsiXnDjhLrtG3/iuU2fg=";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/pyroute2-nftables/default.nix b/nixpkgs/pkgs/development/python-modules/pyroute2-nftables/default.nix
index 9554dd8cbe33..ec5ada77dd2e 100644
--- a/nixpkgs/pkgs/development/python-modules/pyroute2-nftables/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyroute2-nftables/default.nix
@@ -6,12 +6,12 @@
 
 buildPythonPackage rec {
   pname = "pyroute2-nftables";
-  version = "0.6.4";
+  version = "0.6.5";
 
   src = fetchPypi {
     pname = "pyroute2.nftables";
     inherit version;
-    sha256 = "0mj897h86ifk4ncms71nz6qrrfzfq8hd81198vf1hm41wppgyxn1";
+    sha256 = "sha256-sUVaY6PvwFDRCNVQ0cr9AR7d7W6JTZnnvfoC1ZK/bxY=";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/pyroute2-nslink/default.nix b/nixpkgs/pkgs/development/python-modules/pyroute2-nslink/default.nix
index e5b6fae90246..722ea0a12f9c 100644
--- a/nixpkgs/pkgs/development/python-modules/pyroute2-nslink/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyroute2-nslink/default.nix
@@ -6,12 +6,12 @@
 
 buildPythonPackage rec {
   pname = "pyroute2-nslink";
-  version = "0.6.4";
+  version = "0.6.5";
 
   src = fetchPypi {
     pname = "pyroute2.nslink";
     inherit version;
-    sha256 = "0iz4vrv05x678ihhl2wdppxda82fxrq3d3sh7mka0pyb66a8mrik";
+    sha256 = "sha256-KS5sKDKnNUTBxtW6cn9xF6qEflX4jXjpS31GB7KZmZ4=";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/pyroute2-protocols/default.nix b/nixpkgs/pkgs/development/python-modules/pyroute2-protocols/default.nix
index bce291494a2d..ec3226f0cd98 100644
--- a/nixpkgs/pkgs/development/python-modules/pyroute2-protocols/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyroute2-protocols/default.nix
@@ -6,12 +6,12 @@
 
 buildPythonPackage rec {
   pname = "pyroute2-protocols";
-  version = "0.6.4";
+  version = "0.6.5";
 
   src = fetchPypi {
     pname = "pyroute2.protocols";
     inherit version;
-    sha256 = "0gb5r1msd14fhalfknhmg67l2hm802r4771i1srgl4rix1sk0yw8";
+    sha256 = "sha256-lj9Q8ew+44m+Y72miQyuZhzjHmdLqYB+c2FK+ph1d84=";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/pyroute2/default.nix b/nixpkgs/pkgs/development/python-modules/pyroute2/default.nix
index b4e035e89cce..9afea342e6d7 100644
--- a/nixpkgs/pkgs/development/python-modules/pyroute2/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyroute2/default.nix
@@ -13,11 +13,11 @@
 
 buildPythonPackage rec {
   pname = "pyroute2";
-  version = "0.6.4";
+  version = "0.6.5";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "560b48a751b1150056ba553c89a31d563cc18ae2675b3793666adcaeb4fabfda";
+    sha256 = "sha256-0JlciuuWwOTu1NYul8nXlQAKGjO3R9bcVDJmZYV88Rw=";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/pyrsistent/default.nix b/nixpkgs/pkgs/development/python-modules/pyrsistent/default.nix
index 8a6eb47a46c7..75cecc7d7091 100644
--- a/nixpkgs/pkgs/development/python-modules/pyrsistent/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyrsistent/default.nix
@@ -9,13 +9,13 @@
 
 buildPythonPackage rec {
   pname = "pyrsistent";
-  version = "0.17.3";
+  version = "0.18.0";
 
   disabled = isPy27;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "2e636185d9eb976a18a8a8e96efce62f2905fea90041958d8cc2a189756ebf3e";
+    sha256 = "773c781216f8c2900b42a7b638d5b517bb134ae1acbebe4d1e8f1f41ea60eb4b";
   };
 
   propagatedBuildInputs = [ six ];
diff --git a/nixpkgs/pkgs/development/python-modules/pysatochip/default.nix b/nixpkgs/pkgs/development/python-modules/pysatochip/default.nix
index f24571a78cf1..a2e726903554 100644
--- a/nixpkgs/pkgs/development/python-modules/pysatochip/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pysatochip/default.nix
@@ -1,17 +1,35 @@
-{ lib, buildPythonPackage, fetchPypi, pyscard, ecdsa, pyaes
-, pythonOlder }:
+{ lib
+, buildPythonPackage
+, fetchPypi
+, certifi
+, cryptography
+, ecdsa
+, pyaes
+, pyopenssl
+, pyscard
+, pythonOlder
+}:
 
 buildPythonPackage rec {
   pname = "pysatochip";
-  version = "0.11.4";
+  version = "0.12.3";
   disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-Jj/zZIS9aXmZ2xdi29Eun7iRIrIk9oBlrtN9+6opIMo=";
+    sha256 = "24db358a65c0402c299c0c62efcfbbfc98e494181cd30d3996949ac667d5b4d4";
   };
 
-  propagatedBuildInputs = [ pyscard ecdsa pyaes ];
+  postPatch = ''
+    substituteInPlace requirements.txt \
+      --replace "cryptography==3.3.2" "cryptography" \
+      --replace "ecdsa==0.15" "ecdsa" \
+      --replace "pyopenssl==20.0.0" "pyopenssl"
+  '';
+
+  propagatedBuildInputs = [ cryptography ecdsa pyaes pyopenssl pyscard ];
+
+  checkInputs = [ certifi ];
 
   pythonImportsCheck = [ "pysatochip" ];
 
diff --git a/nixpkgs/pkgs/development/python-modules/pyscf/default.nix b/nixpkgs/pkgs/development/python-modules/pyscf/default.nix
index 0af38e3f8bea..0be40b5dfe7c 100644
--- a/nixpkgs/pkgs/development/python-modules/pyscf/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyscf/default.nix
@@ -13,6 +13,10 @@ buildPythonPackage rec {
     sha256  = "0xbwkjxxysfpqz72qn6n4a0zr2h6sprbcal8j7kzymh7swjy117w";
   };
 
+  # Backport from the 2.0.0 alpha releases of PySCF.
+  # H5Py > 3.3 deprecates the file modes, that PySCF sets.
+  patches = [ ./h5py.patch ];
+
   buildInputs = [
     libcint
     libxc
diff --git a/nixpkgs/pkgs/development/python-modules/pyscf/h5py.patch b/nixpkgs/pkgs/development/python-modules/pyscf/h5py.patch
new file mode 100644
index 000000000000..160128633208
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/pyscf/h5py.patch
@@ -0,0 +1,13 @@
+diff --git a/pyscf/lib/misc.py b/pyscf/lib/misc.py
+index ed43689ff..a8a0d0e20 100644
+--- a/pyscf/lib/misc.py
++++ b/pyscf/lib/misc.py
+@@ -42,8 +42,6 @@ if h5py.version.version[:4] == '2.2.':
+     sys.stderr.write('h5py-%s is found in your environment. '
+                      'h5py-%s has bug in threading mode.\n'
+                      'Async-IO is disabled.\n' % ((h5py.version.version,)*2))
+-if h5py.version.version[:2] == '3.':
+-    h5py.get_config().default_file_mode = 'a'
+ 
+ c_double_p = ctypes.POINTER(ctypes.c_double)
+ c_int_p = ctypes.POINTER(ctypes.c_int)
diff --git a/nixpkgs/pkgs/development/python-modules/pysdcp/default.nix b/nixpkgs/pkgs/development/python-modules/pysdcp/default.nix
new file mode 100644
index 000000000000..b6b1798f7ae1
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/pysdcp/default.nix
@@ -0,0 +1,31 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, pythonOlder
+}:
+
+buildPythonPackage rec {
+  pname = "pysdcp";
+  version = "1";
+  format = "setuptools";
+
+  disabled = pythonOlder "3.6";
+
+  src = fetchPypi {
+    pname = "pySDCP";
+    inherit version;
+    sha256 = "07396lsn610izaravqc6j5f6m0wjrzgc0d1r9dwqzj15g5zfc7wm";
+  };
+
+  # Project has no tests
+  doCheck = false;
+
+  pythonImportsCheck = [ "pysdcp" ];
+
+  meta = with lib; {
+    description = "Python library to control SONY projectors";
+    homepage = "https://github.com/Galala7/pySDCP";
+    license = licenses.mit;
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/pysdl2/PySDL2-dll.patch b/nixpkgs/pkgs/development/python-modules/pysdl2/PySDL2-dll.patch
index db6895edfbf8..37b318ebb7c7 100644
--- a/nixpkgs/pkgs/development/python-modules/pysdl2/PySDL2-dll.patch
+++ b/nixpkgs/pkgs/development/python-modules/pysdl2/PySDL2-dll.patch
@@ -1,100 +1,127 @@
-diff -ru PySDL2-0.9.7-old/sdl2/dll.py PySDL2-0.9.7/sdl2/dll.py
---- PySDL2-0.9.7-old/sdl2/dll.py	2020-02-15 09:36:29.000000000 +0100
-+++ PySDL2-0.9.7/sdl2/dll.py	2020-09-23 20:24:09.365497270 +0200
-@@ -94,15 +94,16 @@
-     """Function wrapper around the different DLL functions. Do not use or

-     instantiate this one directly from your user code.

-     """

--    def __init__(self, libinfo, libnames, path=None):

-+    def __init__(self, libinfo, libfile):

-         self._dll = None

-         self._libname = libinfo

-         self._version = None

--        foundlibs = _findlib(libnames, path)

--        dllmsg = "PYSDL2_DLL_PATH: %s" % (os.getenv("PYSDL2_DLL_PATH") or "unset")

--        if len(foundlibs) == 0:

--            raise RuntimeError("could not find any library for %s (%s)" %

--                               (libinfo, dllmsg))

-+        #foundlibs = _findlib(libnames, path)

-+        #dllmsg = "PYSDL2_DLL_PATH: %s" % (os.getenv("PYSDL2_DLL_PATH") or "unset")

-+        #if len(foundlibs) == 0:

-+        #    raise RuntimeError("could not find any library for %s (%s)" %

-+        #                       (libinfo, dllmsg))

-+        foundlibs = [ libfile ]

-         for libfile in foundlibs:

-             try:

-                 self._dll = CDLL(libfile)

-@@ -117,9 +118,9 @@
-         if self._dll is None:

-             raise RuntimeError("found %s, but it's not usable for the library %s" %

-                                (foundlibs, libinfo))

--        if path is not None and sys.platform in ("win32",) and \

--            path in self._libfile:

--            os.environ["PATH"] = "%s;%s" % (path, os.environ["PATH"])

-+        #if path is not None and sys.platform in ("win32",) and \

-+        #    path in self._libfile:

-+        #    os.environ["PATH"] = "%s;%s" % (path, os.environ["PATH"])

- 

-     def bind_function(self, funcname, args=None, returns=None, added=None):

-         """Binds the passed argument and return value types to the specified

-@@ -220,7 +221,7 @@
-     return

- 

- try:

--    dll = DLL("SDL2", ["SDL2", "SDL2-2.0"], os.getenv("PYSDL2_DLL_PATH"))

-+    dll = DLL("SDL2", "@sdl2@")

- except RuntimeError as exc:

-     raise ImportError(exc)

- 

-diff -ru PySDL2-0.9.7-old/sdl2/sdlgfx.py PySDL2-0.9.7/sdl2/sdlgfx.py
---- PySDL2-0.9.7-old/sdl2/sdlgfx.py	2020-02-02 11:07:00.000000000 +0100
-+++ PySDL2-0.9.7/sdl2/sdlgfx.py	2020-09-23 20:23:56.997419129 +0200
-@@ -39,8 +39,7 @@
-            ]

- 

- try:

--    dll = DLL("SDL2_gfx", ["SDL2_gfx", "SDL2_gfx-1.0"],

--              os.getenv("PYSDL2_DLL_PATH"))

-+    dll = DLL("SDL2_gfx", "@sdl2_gfx@")

- except RuntimeError as exc:

-     raise ImportError(exc)

- 

-diff -ru PySDL2-0.9.7-old/sdl2/sdlimage.py PySDL2-0.9.7/sdl2/sdlimage.py
---- PySDL2-0.9.7-old/sdl2/sdlimage.py	2020-02-02 11:07:00.000000000 +0100
-+++ PySDL2-0.9.7/sdl2/sdlimage.py	2020-09-23 20:23:50.085375658 +0200
-@@ -27,8 +27,7 @@
-            ]

- 

- try:

--    dll = DLL("SDL2_image", ["SDL2_image", "SDL2_image-2.0"],

--              os.getenv("PYSDL2_DLL_PATH"))

-+    dll = DLL("SDL2_image", "@sdl2_image@")

- except RuntimeError as exc:

-     raise ImportError(exc)

- 

-diff -ru PySDL2-0.9.7-old/sdl2/sdlmixer.py PySDL2-0.9.7/sdl2/sdlmixer.py
---- PySDL2-0.9.7-old/sdl2/sdlmixer.py	2020-02-02 11:07:00.000000000 +0100
-+++ PySDL2-0.9.7/sdl2/sdlmixer.py	2020-09-23 20:23:46.117350771 +0200
-@@ -53,8 +53,7 @@
-           ]

- 

- try:

--    dll = DLL("SDL2_mixer", ["SDL2_mixer", "SDL2_mixer-2.0"],

--              os.getenv("PYSDL2_DLL_PATH"))

-+    dll = DLL("SDL2_mixer", "@sdl2_mixer@")

- except RuntimeError as exc:

-     raise ImportError(exc)

- 

-diff -ru PySDL2-0.9.7-old/sdl2/sdlttf.py PySDL2-0.9.7/sdl2/sdlttf.py
---- PySDL2-0.9.7-old/sdl2/sdlttf.py	2020-02-02 11:07:00.000000000 +0100
-+++ PySDL2-0.9.7/sdl2/sdlttf.py	2020-09-23 20:23:40.069312931 +0200
-@@ -39,8 +39,7 @@
-           ]

- 

- try:

--    dll = DLL("SDL2_ttf", ["SDL2_ttf", "SDL2_ttf-2.0"],

--              os.getenv("PYSDL2_DLL_PATH"))

-+    dll = DLL("SDL2_ttf", "@sdl2_ttf@")

- except RuntimeError as exc:

-     raise ImportError(exc)

- 

+diff --git a/sdl2/dll.py b/sdl2/dll.py
+index 6e30259..12e1f7d 100644
+--- a/sdl2/dll.py
++++ b/sdl2/dll.py
+@@ -145,7 +145,7 @@ class DLL(object):
+     """Function wrapper around the different DLL functions. Do not use or
+     instantiate this one directly from your user code.
+     """
+-    def __init__(self, libinfo, libnames, path=None):
++    def __init__(self, libinfo, libfile):
+         self._dll = None
+         self._deps = None
+         self._libname = libinfo
+@@ -157,11 +157,12 @@ class DLL(object):
+             "SDL2_image": 2001,
+             "SDL2_gfx": 1003
+         }
+-        foundlibs = _findlib(libnames, path)
+-        dllmsg = "PYSDL2_DLL_PATH: %s" % (os.getenv("PYSDL2_DLL_PATH") or "unset")
+-        if len(foundlibs) == 0:
+-            raise RuntimeError("could not find any library for %s (%s)" %
+-                               (libinfo, dllmsg))
++        #foundlibs = _findlib(libnames, path)
++        #dllmsg = "PYSDL2_DLL_PATH: %s" % (os.getenv("PYSDL2_DLL_PATH") or "unset")
++        #if len(foundlibs) == 0:
++        #    raise RuntimeError("could not find any library for %s (%s)" %
++        #                       (libinfo, dllmsg))
++        foundlibs = [ libfile ]
+         for libfile in foundlibs:
+             try:
+                 self._dll = CDLL(libfile)
+@@ -185,19 +186,19 @@ class DLL(object):
+                                (foundlibs, libinfo))
+         if _using_ms_store_python():
+             self._deps = _preload_deps(libinfo, self._libfile)
+-        if path is not None and sys.platform in ("win32",) and \
+-            path in self._libfile:
+-            os.environ["PATH"] = "%s;%s" % (path, os.environ["PATH"])
++        #if path is not None and sys.platform in ("win32",) and \
++        #    path in self._libfile:
++        #    os.environ["PATH"] = "%s;%s" % (path, os.environ["PATH"])
+ 
+     def bind_function(self, funcname, args=None, returns=None, added=None):
+         """Binds the passed argument and return value types to the specified
+         function. If the version of the loaded library is older than the
+         version where the function was added, an informative exception will
+         be raised if the bound function is called.
+         
+         Args:
+             funcname (str): The name of the function to bind.
+             args (List or None, optional): The data types of the C function's 
+                 arguments. Should be 'None' if function takes no arguments.
+             returns (optional): The return type of the bound C function. Should
+                 be 'None' if function returns 'void'.
+@@ -288,7 +289,7 @@ def nullfunc(*args):
+     return
+ 
+ try:
+-    dll = DLL("SDL2", ["SDL2", "SDL2-2.0", "SDL2-2.0.0"], os.getenv("PYSDL2_DLL_PATH"))
++    dll = DLL("SDL2", "@sdl2@")
+ except RuntimeError as exc:
+     raise ImportError(exc)
+ 
+diff --git a/sdl2/sdlgfx.py b/sdl2/sdlgfx.py
+index 090752e..a8a7488 100644
+--- a/sdl2/sdlgfx.py
++++ b/sdl2/sdlgfx.py
+@@ -50,8 +50,7 @@ __all__ = [
+ 
+ 
+ try:
+-    dll = DLL("SDL2_gfx", ["SDL2_gfx", "SDL2_gfx-1.0"],
+-              os.getenv("PYSDL2_DLL_PATH"))
++    dll = DLL("SDL2_gfx", "@sdl2_gfx@")
+ except RuntimeError as exc:
+     raise ImportError(exc)
+ 
+diff --git a/sdl2/sdlimage.py b/sdl2/sdlimage.py
+index a6884e8..95d96df 100644
+--- a/sdl2/sdlimage.py
++++ b/sdl2/sdlimage.py
+@@ -32,15 +32,14 @@ __all__ = [
+     "IMG_LoadXCF_RW", "IMG_LoadWEBP_RW", "IMG_LoadXPM_RW",
+     "IMG_LoadXV_RW", "IMG_ReadXPMFromArray",
+     "IMG_GetError", "IMG_SetError", "IMG_SaveJPG", "IMG_SaveJPG_RW",
+-    
++
+     # Python Functions
+     "get_dll_file"
+ ]
+ 
+ 
+ try:
+-    dll = DLL("SDL2_image", ["SDL2_image", "SDL2_image-2.0"],
+-              os.getenv("PYSDL2_DLL_PATH"))
++    dll = DLL("SDL2_image", "@sdl2_image@")
+ except RuntimeError as exc:
+     raise ImportError(exc)
+ 
+diff --git a/sdl2/sdlmixer.py b/sdl2/sdlmixer.py
+index 9ad9b85..1c36289 100644
+--- a/sdl2/sdlmixer.py
++++ b/sdl2/sdlmixer.py
+@@ -76,8 +76,7 @@ __all__ = [
+ ]
+ 
+ try:
+-    dll = DLL("SDL2_mixer", ["SDL2_mixer", "SDL2_mixer-2.0"],
+-              os.getenv("PYSDL2_DLL_PATH"))
++    dll = DLL("SDL2_mixer", "@sdl2_mixer@")
+ except RuntimeError as exc:
+     raise ImportError(exc)
+ 
+diff --git a/sdl2/sdlttf.py b/sdl2/sdlttf.py
+index 9c2d951..bd5a16a 100644
+--- a/sdl2/sdlttf.py
++++ b/sdl2/sdlttf.py
+@@ -54,8 +54,7 @@ __all__ = [
+ 
+ 
+ try:
+-    dll = DLL("SDL2_ttf", ["SDL2_ttf", "SDL2_ttf-2.0"],
+-              os.getenv("PYSDL2_DLL_PATH"))
++    dll = DLL("SDL2_ttf", "@sdl2_ttf@")
+ except RuntimeError as exc:
+     raise ImportError(exc)
+ 
diff --git a/nixpkgs/pkgs/development/python-modules/pysdl2/default.nix b/nixpkgs/pkgs/development/python-modules/pysdl2/default.nix
index be9663245bb5..10515ed7a6e9 100644
--- a/nixpkgs/pkgs/development/python-modules/pysdl2/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pysdl2/default.nix
@@ -2,7 +2,7 @@
 
 buildPythonPackage rec {
   pname = "PySDL2";
-  version = "0.9.7";
+  version = "0.9.9";
   # The tests use OpenGL using find_library, which would have to be
   # patched; also they seem to actually open X windows and test stuff
   # like "screensaver disabling", which would have to be cleverly
@@ -11,7 +11,7 @@ buildPythonPackage rec {
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "e4fcc8aa1108e4917cb56794575ee08c2a3d9c2c52620474e3ecc8538dadf209";
+    sha256 = "45879ae588038d7cf7cb0289ae47af60722b394d0efa527bf4327103dc4dc918";
   };
 
   # Deliberately not in propagated build inputs; users can decide
diff --git a/nixpkgs/pkgs/development/python-modules/pysiaalarm/default.nix b/nixpkgs/pkgs/development/python-modules/pysiaalarm/default.nix
index 206d24a40dc5..6d59006fab47 100644
--- a/nixpkgs/pkgs/development/python-modules/pysiaalarm/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pysiaalarm/default.nix
@@ -12,13 +12,13 @@
 
 buildPythonPackage rec {
   pname = "pysiaalarm";
-  version = "3.0.0";
+  version = "3.0.1";
 
   disabled = pythonOlder "3.8";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "b1c3a3d48d399bc91014167f59b23af601044d182db9267c23a9cf3559922122";
+    sha256 = "sha256-96LSD1jL4Za7HF9vgplImeY57EQ9qa/hOdjQ/PPBq4A=";
   };
 
   postPatch = ''
diff --git a/nixpkgs/pkgs/development/python-modules/pyspcwebgw/default.nix b/nixpkgs/pkgs/development/python-modules/pyspcwebgw/default.nix
new file mode 100644
index 000000000000..8c901f17747a
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/pyspcwebgw/default.nix
@@ -0,0 +1,46 @@
+{ lib
+, aiohttp
+, aioresponses
+, asynccmd
+, buildPythonPackage
+, fetchFromGitHub
+, pytest-asyncio
+, pytestCheckHook
+, pythonOlder
+, requests
+}:
+
+buildPythonPackage rec {
+  pname = "pyspcwebgw";
+  version = "0.5.0";
+  format = "setuptools";
+
+  disabled = pythonOlder "3.6";
+
+  src = fetchFromGitHub {
+    owner = "mbrrg";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "0pc25myjc2adqcx2lbns9kw0gy17x1qjgicmfj46n6fn0c786p9v";
+  };
+
+  propagatedBuildInputs = [
+    asynccmd
+    aiohttp
+  ];
+
+  checkInputs = [
+    aioresponses
+    pytest-asyncio
+    pytestCheckHook
+  ];
+
+  pythonImportsCheck = [ "pyspcwebgw" ];
+
+  meta = with lib; {
+    description = "Python module for the SPC Web Gateway REST API";
+    homepage = "https://github.com/mbrrg/pyspcwebgw";
+    license = with licenses; [ mit ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/pyspnego/default.nix b/nixpkgs/pkgs/development/python-modules/pyspnego/default.nix
index 2f8e775e3404..a1793118d28d 100644
--- a/nixpkgs/pkgs/development/python-modules/pyspnego/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyspnego/default.nix
@@ -2,6 +2,9 @@
 , buildPythonPackage
 , cryptography
 , fetchFromGitHub
+, gssapi
+, krb5
+, ruamel-yaml
 , pytest-mock
 , pytestCheckHook
 , pythonOlder
@@ -10,18 +13,22 @@
 
 buildPythonPackage rec {
   pname = "pyspnego";
-  version = "0.1.6";
-  disabled = pythonOlder "3.6";
+  version = "0.2.0";
+
+  disabled = pythonOlder "3.7";
 
   src = fetchFromGitHub {
     owner = "jborean93";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0pfh2x0539f0k2qi2pbjm64b2fqp64c63xxpinvg1yfaw915kgpb";
+    sha256 = "sha256-puv9aq53NbjSuN561XFou404N9pIxvvMjZMgnNx3SjM=";
   };
 
   propagatedBuildInputs = [
     cryptography
+    gssapi
+    krb5
+    ruamel-yaml
   ];
 
   checkInputs = [
@@ -30,6 +37,11 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
+  disabledTests = [
+    # struct.error: unpack requires a buffer of 1 bytes
+    "test_credssp_invalid_client_authentication"
+  ];
+
   LC_ALL = "en_US.UTF-8";
 
   pythonImportsCheck = [ "spnego" ];
diff --git a/nixpkgs/pkgs/development/python-modules/pysyncobj/default.nix b/nixpkgs/pkgs/development/python-modules/pysyncobj/default.nix
index 3afdacd18034..13936ba090c2 100644
--- a/nixpkgs/pkgs/development/python-modules/pysyncobj/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pysyncobj/default.nix
@@ -5,13 +5,13 @@
 
 buildPythonPackage rec {
   pname = "pysyncobj";
-  version = "0.3.8";
+  version = "0.3.10";
 
   src = fetchFromGitHub {
     owner = "bakwc";
     repo = "PySyncObj";
     rev = version;
-    sha256 = "sha256-T7ecy5/1eF0pYaOv74SBEp6V6Z23E2b9lo5Q/gig3Cw=";
+    sha256 = "sha256-tcoG0KZewPRYPwDSV7aqrAGw3NF4yj/Ukc+I7HHI9+I=";
   };
 
   # Tests require network features
diff --git a/nixpkgs/pkgs/development/python-modules/pytest-cases/default.nix b/nixpkgs/pkgs/development/python-modules/pytest-cases/default.nix
index 592a13506936..b8c1ab527220 100644
--- a/nixpkgs/pkgs/development/python-modules/pytest-cases/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pytest-cases/default.nix
@@ -10,12 +10,12 @@
 
 buildPythonPackage rec {
   pname = "pytest-cases";
-  version = "3.6.3";
+  version = "3.6.4";
   disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-ExNiaSQGFbx5BB+K+PyW4OPghdpy3SKxhiVFH9okQ7g=";
+    sha256 = "sha256-m2oxE7q46TWadhZgpwTAHKep5ZN9LG1VNCRJkPz5W1E=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/pytest-doctestplus/default.nix b/nixpkgs/pkgs/development/python-modules/pytest-doctestplus/default.nix
index 01ec38458c9f..8cd73f483fa8 100644
--- a/nixpkgs/pkgs/development/python-modules/pytest-doctestplus/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pytest-doctestplus/default.nix
@@ -1,40 +1,50 @@
 { lib
 , buildPythonPackage
 , fetchPypi
-, isPy27
-, six
+, pythonOlder
+, packaging
 , pytest
 , pytestCheckHook
-, numpy
 , setuptools-scm
 }:
 
 buildPythonPackage rec {
   pname = "pytest-doctestplus";
-  version = "0.9.0";
-  disabled = isPy27; # abandoned upstream
+  version = "0.10.1";
+  disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "6fe747418461d7b202824a3486ba8f4fa17a9bd0b1eddc743ba1d6d87f03391a";
+    sha256 = "7e9e0912c206c53cd6ee996265aa99d5c99c9334e37d025ce6114bc0416ffc14";
   };
 
   nativeBuildInputs = [
     setuptools-scm
   ];
+
   buildInputs = [
     pytest
   ];
 
   propagatedBuildInputs = [
-    six
-    numpy
+    packaging
   ];
 
   checkInputs = [
     pytestCheckHook
   ];
 
+  disabledTests = [
+    # ERROR: usage: __main__.py [options] [file_or_dir] [file_or_dir] [...]
+    # __main__.py: error: unrecognized arguments: --remote-data
+    "test_remote_data_url"
+    "test_remote_data_float_cmp"
+    "test_remote_data_ignore_whitespace"
+    "test_remote_data_ellipsis"
+    "test_remote_data_requires"
+    "test_remote_data_ignore_warnings"
+  ];
+
   meta = with lib; {
     description = "Pytest plugin with advanced doctest features";
     homepage = "https://astropy.org";
diff --git a/nixpkgs/pkgs/development/python-modules/pytest-httpx/default.nix b/nixpkgs/pkgs/development/python-modules/pytest-httpx/default.nix
index 6e7fd37b915e..b0bc07b6c162 100644
--- a/nixpkgs/pkgs/development/python-modules/pytest-httpx/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pytest-httpx/default.nix
@@ -9,13 +9,13 @@
 
 buildPythonPackage rec {
   pname = "pytest-httpx";
-  version = "0.12.1";
+  version = "0.13.0";
 
   src = fetchFromGitHub {
     owner = "Colin-b";
     repo = "pytest_httpx";
     rev = "v${version}";
-    sha256 = "sha256-eyR0h0fW5a+L6QslTnM0TPvQCto06aMcKCE+b8LqHcQ=";
+    sha256 = "0lh7df3ysxmjzvx6242xb6qiwpfxrnj70kjmw5sndvzmy5dfpxfc";
   };
 
   buildInputs = [ pytest ];
diff --git a/nixpkgs/pkgs/development/python-modules/pytest-isort/default.nix b/nixpkgs/pkgs/development/python-modules/pytest-isort/default.nix
index fe74f692df5e..e628e6a158c5 100644
--- a/nixpkgs/pkgs/development/python-modules/pytest-isort/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pytest-isort/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "pytest-isort";
-  version = "1.3.0";
+  version = "2.0.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "46a12331a701e2f21d48548b2828c8b0a7956dbf1cd5347163f537deb24332dd";
+    sha256 = "821a8c5c9c4f3a3c52cfa9c541fbe89ac9e28728125125af53724c4c3f129117";
   };
 
   propagatedBuildInputs = [ isort ];
diff --git a/nixpkgs/pkgs/development/python-modules/pytest-randomly/default.nix b/nixpkgs/pkgs/development/python-modules/pytest-randomly/default.nix
index 0020a4bf433f..734e0e64b31d 100644
--- a/nixpkgs/pkgs/development/python-modules/pytest-randomly/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pytest-randomly/default.nix
@@ -1,11 +1,11 @@
 { lib, buildPythonPackage, fetchFromGitHub, pythonOlder
-, factory_boy, faker, numpy, backports-entry-points-selectable
+, factory_boy, faker, numpy, importlib-metadata
 , pytestCheckHook, pytest-xdist
 }:
 
 buildPythonPackage rec {
   pname = "pytest-randomly";
-  version = "3.6.0";
+  version = "3.10.1";
 
   disabled = pythonOlder "3.6";
 
@@ -14,11 +14,11 @@ buildPythonPackage rec {
     repo = pname;
     owner = "pytest-dev";
     rev = version;
-    sha256 = "17s7gx8b7sl7mp77f5dxzwbb32qliz9awrp6xz58bhjqp7pcsa5h";
+    sha256 = "10z7hsr8yd80sf5113i61p0g1c0nqkx7p4xi19v3d133f6vjbh3k";
   };
 
-  propagatedBuildInputs = [
-    backports-entry-points-selectable
+  propagatedBuildInputs = lib.optionals (pythonOlder "3.10") [
+    importlib-metadata
   ];
 
   checkInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/pytest-relaxed/default.nix b/nixpkgs/pkgs/development/python-modules/pytest-relaxed/default.nix
index 19d031b6a2b1..1030f76050ca 100644
--- a/nixpkgs/pkgs/development/python-modules/pytest-relaxed/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pytest-relaxed/default.nix
@@ -4,6 +4,7 @@
 , pytest
 , six
 , decorator
+, pytestCheckHook
 }:
 
 buildPythonPackage rec {
@@ -15,22 +16,23 @@ buildPythonPackage rec {
     sha256 = "e39a7e5b14e14dfff0de0ad720dfffa740c128d599ab14cfac13f4deb34164a6";
   };
 
+  # newer decorator versions are incompatible and cause the test suite to fail
+  # but only a few utility functions are used from this package which means it has no actual impact on test execution in paramiko and Fabric
+  postPatch = ''
+    substituteInPlace setup.py \
+      --replace "decorator>=4,<5" "decorator>=4" \
+      --replace "pytest>=3,<5" "pytest>=3"
+  '';
+
   buildInputs = [ pytest ];
-  checkInputs = [ pytest ];
 
   propagatedBuildInputs = [ six decorator ];
 
-  patchPhase = ''
-    sed -i "s/pytest>=3,<5/pytest/g" setup.py
-  '';
+  checkInputs = [ pytestCheckHook ];
 
-  # skip tests due to dir requirements
+  # lots of assertion errors mainly around decorator
   doCheck = false;
 
-  checkPhase = ''
-    pytest tests
-  '';
-
   meta = with lib; {
     homepage = "https://pytest-relaxed.readthedocs.io/";
     description = "Relaxed test discovery/organization for pytest";
diff --git a/nixpkgs/pkgs/development/python-modules/pytest-snapshot/default.nix b/nixpkgs/pkgs/development/python-modules/pytest-snapshot/default.nix
index 140994cbf266..e5f8ce159f1f 100644
--- a/nixpkgs/pkgs/development/python-modules/pytest-snapshot/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pytest-snapshot/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "pytest-snapshot";
-  version = "0.6.1";
+  version = "0.7.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "ee8e9af118ff55ed13bf8e8b520714c52665ae44f6228563a600a08d62839b54";
+    sha256 = "427b5ab088b25a1c8b63ce99725040664c840ff1f5a3891252723cce972897f9";
   };
 
   nativeBuildInputs = [ setuptools-scm ];
diff --git a/nixpkgs/pkgs/development/python-modules/pytest-testmon/default.nix b/nixpkgs/pkgs/development/python-modules/pytest-testmon/default.nix
index d7b0b660be98..94f587999773 100644
--- a/nixpkgs/pkgs/development/python-modules/pytest-testmon/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pytest-testmon/default.nix
@@ -8,12 +8,12 @@
 
 buildPythonPackage rec {
   pname = "pytest-testmon";
-  version = "1.1.2";
+  version = "1.2.0";
   disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "91f4513f7e5a1cf4f1eda25ab7f310497abe30e5f19b612fd80ba7d5f60b58a6";
+    sha256 = "2c61ae6185ea7dc07ea0d4db3984be62f1a176a5c16615fd208c5945aa411599";
   };
 
   propagatedBuildInputs = [ coverage ];
diff --git a/nixpkgs/pkgs/development/python-modules/pytest-xprocess/default.nix b/nixpkgs/pkgs/development/python-modules/pytest-xprocess/default.nix
index 0695b49191b4..fcd72ce9b976 100644
--- a/nixpkgs/pkgs/development/python-modules/pytest-xprocess/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pytest-xprocess/default.nix
@@ -6,11 +6,11 @@
 
 buildPythonPackage rec {
   pname = "pytest-xprocess";
-  version = "0.17.1";
+  version = "0.18.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "59c739edee7f3f2258e7c77989241698e356c552f5efb28bb46b478616888bf6";
+    sha256 = "fd9f30ed1584b5833bc34494748adf0fb9de3ca7bacc4e88ad71989c21cba266";
   };
 
   nativeBuildInputs = [ setuptools-scm ];
diff --git a/nixpkgs/pkgs/development/python-modules/pytest/4.nix b/nixpkgs/pkgs/development/python-modules/pytest/4.nix
index c764b55d1f10..fd6d3507afb8 100644
--- a/nixpkgs/pkgs/development/python-modules/pytest/4.nix
+++ b/nixpkgs/pkgs/development/python-modules/pytest/4.nix
@@ -11,6 +11,11 @@ buildPythonPackage rec {
     sha256 = "50fa82392f2120cc3ec2ca0a75ee615be4c479e66669789771f1758332be4353";
   };
 
+  postPatch = ''
+    substituteInPlace setup.py \
+      --replace "pluggy>=0.12,<1.0" "pluggy>=0.12,<2.0"
+  '';
+
   checkInputs = [ hypothesis mock ];
   buildInputs = [ setuptools-scm ];
   propagatedBuildInputs = [ attrs py setuptools six pluggy more-itertools atomicwrites wcwidth packaging ]
diff --git a/nixpkgs/pkgs/development/python-modules/pytest/5.nix b/nixpkgs/pkgs/development/python-modules/pytest/5.nix
index b3e69578d7eb..b38c1a759fe3 100644
--- a/nixpkgs/pkgs/development/python-modules/pytest/5.nix
+++ b/nixpkgs/pkgs/development/python-modules/pytest/5.nix
@@ -30,6 +30,11 @@ buildPythonPackage rec {
     sha256 = "1n67lk8iwlsmfdm8663k8l7isllg1xd3n9p1yla7885szhdk6ybr";
   };
 
+  postPatch = ''
+    substituteInPlace setup.py \
+      --replace "pluggy>=0.12,<1.0" "pluggy>=0.12,<2.0"
+  '';
+
   checkInputs = [ hypothesis pygments ];
   nativeBuildInputs = [ setuptools-scm ];
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/pytest/default.nix b/nixpkgs/pkgs/development/python-modules/pytest/default.nix
index 19289426d71a..f2438622f6a6 100644
--- a/nixpkgs/pkgs/development/python-modules/pytest/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pytest/default.nix
@@ -19,14 +19,19 @@
 
 buildPythonPackage rec {
   pname = "pytest";
-  version = "6.2.4";
+  version = "6.2.5";
   disabled = !isPy3k;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "50bcad0a0b9c5a72c8e4e7c9855a3ad496ca6a881a3641b4260605450772c54b";
+    sha256 = "131b36680866a76e6781d13f101efb86cf674ebb9762eb70d3082b6f29889e89";
   };
 
+  postPatch = ''
+    substituteInPlace setup.cfg \
+      --replace "pluggy>=0.12,<1.0.0a1" "pluggy>=0.23,<2.0"
+  '';
+
   nativeBuildInputs = [ setuptools-scm ];
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/python-daemon/default.nix b/nixpkgs/pkgs/development/python-modules/python-daemon/default.nix
index 246e253e191d..9df9bf8a593b 100644
--- a/nixpkgs/pkgs/development/python-modules/python-daemon/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/python-daemon/default.nix
@@ -1,9 +1,12 @@
-{ lib, buildPythonPackage, fetchPypi
+{ lib
+, buildPythonPackage
+, fetchPypi
 , docutils
 , lockfile
 , mock
 , pytest_4
 , testscenarios
+, testtools
 , twine
 }:
 
@@ -16,13 +19,31 @@ buildPythonPackage rec {
     sha256 = "bda993f1623b1197699716d68d983bb580043cf2b8a66a01274d9b8297b0aeaf";
   };
 
-  nativeBuildInputs = [ twine ];
-  propagatedBuildInputs = [ docutils lockfile ];
+  nativeBuildInputs = [
+    twine
+  ];
+
+  propagatedBuildInputs = [
+    docutils
+    lockfile
+  ];
+
+  checkInputs = [
+    pytest_4
+    mock
+    testscenarios
+    testtools
+  ];
 
-  checkInputs = [ pytest_4 mock testscenarios ];
+  # tests disabled due to incompatibilities with testtools>=2.5.0
   checkPhase = ''
-    pytest -k 'not detaches_process_context \
-                and not standard_stream_file_descriptors'
+    runHook preCheck
+    pytest -k ' \
+      not detaches_process_context and \
+      not standard_stream_file_descriptors and \
+      not test_module_has_attribute and \
+      not test_module_attribute_has_duck_type'
+    runHook postCheck
   '';
 
   pythonImportsCheck = [
@@ -35,6 +56,10 @@ buildPythonPackage rec {
   meta = with lib; {
     description = "Library to implement a well-behaved Unix daemon process";
     homepage = "https://pagure.io/python-daemon/";
-    license = [ licenses.gpl3Plus licenses.asl20 ];
+    license = with licenses; [
+      gpl3Plus
+      asl20
+    ];
+    maintainers = with maintainers; [ ];
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/python-dotenv/default.nix b/nixpkgs/pkgs/development/python-modules/python-dotenv/default.nix
index 6fbda114d338..22bf7ea7ece4 100644
--- a/nixpkgs/pkgs/development/python-modules/python-dotenv/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/python-dotenv/default.nix
@@ -11,12 +11,12 @@
 
 buildPythonPackage rec {
   pname = "python-dotenv";
-  version = "0.17.1";
+  version = "0.19.0";
   disabled = pythonOlder "3.5";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "b1ae5e9643d5ed987fc57cc2583021e38db531946518130777734f9589b3141f";
+    sha256 = "f521bc2ac9a8e03c736f62911605c5d83970021e3fa95b37d769e2bbbe9b6172";
   };
 
   propagatedBuildInputs = [ click ];
diff --git a/nixpkgs/pkgs/development/python-modules/python-ethtool/default.nix b/nixpkgs/pkgs/development/python-modules/python-ethtool/default.nix
index 03c147397068..e758f4a1ef71 100644
--- a/nixpkgs/pkgs/development/python-modules/python-ethtool/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/python-ethtool/default.nix
@@ -8,13 +8,13 @@
 
 buildPythonPackage rec {
   pname = "python-ethtool";
-  version = "0.14";
+  version = "0.15";
 
   src = fetchFromGitHub {
     owner = "fedora-python";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-Sp7ssfLZ/1FEKrvX257pKcaureZ5mdpJ7jCEh/ft1l0=";
+    sha256 = "0arkcfq64a4fl88vjjsx4gd3mhcpa7mpq6sblpkgs4k4m9mccz6i";
   };
 
   postPatch = ''
diff --git a/nixpkgs/pkgs/development/python-modules/python-gitlab/default.nix b/nixpkgs/pkgs/development/python-modules/python-gitlab/default.nix
index 831ae6e39668..a5c40533c169 100644
--- a/nixpkgs/pkgs/development/python-modules/python-gitlab/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/python-gitlab/default.nix
@@ -10,12 +10,12 @@
 
 buildPythonPackage rec {
   pname = "python-gitlab";
-  version = "2.10.0";
+  version = "2.10.1";
   disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-N2s+mCOBzsc0RxxQKz2ixueFio300DyZNJnmp1k5UOY=";
+    sha256 = "7afa7d7c062fa62c173190452265a30feefb844428efc58ea5244f3b9fc0d40f";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/python-glanceclient/default.nix b/nixpkgs/pkgs/development/python-modules/python-glanceclient/default.nix
new file mode 100644
index 000000000000..754bac51ea68
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/python-glanceclient/default.nix
@@ -0,0 +1,65 @@
+{ lib
+, buildPythonApplication
+, fetchPypi
+, coreutils
+, pbr
+, prettytable
+, keystoneauth1
+, requests
+, warlock
+, oslo-utils
+, oslo-i18n
+, wrapt
+, pyopenssl
+, stestr
+, testscenarios
+, ddt
+, requests-mock
+}:
+
+buildPythonApplication rec {
+  pname = "python-glanceclient";
+  version = "3.5.0";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "417b9d814b43e62df4351f26a0d5569b801e9f99f7758bd8c82ef994c3629356";
+  };
+
+  postPatch = ''
+    substituteInPlace glanceclient/tests/unit/v1/test_shell.py \
+      --replace "/bin/echo" "${coreutils}/bin/echo"
+  '';
+
+  propagatedBuildInputs = [
+    pbr
+    prettytable
+    keystoneauth1
+    requests
+    warlock
+    oslo-utils
+    oslo-i18n
+    wrapt
+    pyopenssl
+  ];
+
+  checkInputs = [
+    stestr
+    testscenarios
+    ddt
+    requests-mock
+  ];
+
+  checkPhase = ''
+    stestr run
+  '';
+
+  pythonImportsCheck = [ "glanceclient" ];
+
+  meta = with lib; {
+    description = "Python bindings for the OpenStack Images API";
+    homepage = "https://github.com/openstack/python-glanceclient/";
+    license = licenses.asl20;
+    maintainers = teams.openstack.members;
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/python-heatclient/default.nix b/nixpkgs/pkgs/development/python-modules/python-heatclient/default.nix
new file mode 100644
index 000000000000..cab28ef016d9
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/python-heatclient/default.nix
@@ -0,0 +1,69 @@
+{ lib
+, buildPythonApplication
+, fetchPypi
+, pbr
+, Babel
+, cliff
+, iso8601
+, osc-lib
+, prettytable
+, oslo-i18n
+, oslo-serialization
+, oslo-utils
+, keystoneauth1
+, python-swiftclient
+, pyyaml
+, requests
+, six
+, stestr
+, testscenarios
+, requests-mock
+}:
+
+buildPythonApplication rec {
+  pname = "python-heatclient";
+  version = "2.4.0";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "b53529eb73f08c384181a580efaa42293cc35e0e1ecc4b0bc14a5c7b202019bb";
+  };
+
+  propagatedBuildInputs = [
+    pbr
+    Babel
+    cliff
+    iso8601
+    osc-lib
+    prettytable
+    oslo-i18n
+    oslo-serialization
+    oslo-utils
+    keystoneauth1
+    python-swiftclient
+    pyyaml
+    requests
+    six
+  ];
+
+  checkInputs = [
+    stestr
+    testscenarios
+    requests-mock
+  ];
+
+  checkPhase = ''
+    stestr run -e <(echo "
+      heatclient.tests.unit.test_common_http.HttpClientTest.test_get_system_ca_file
+    ")
+  '';
+
+  pythonImportsCheck = [ "heatclient" ];
+
+  meta = with lib; {
+    description = "A client library for Heat built on the Heat orchestration API";
+    homepage = "https://github.com/openstack/python-heatclient";
+    license = licenses.asl20;
+    maintainers = teams.openstack.members;
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/python-hosts/default.nix b/nixpkgs/pkgs/development/python-modules/python-hosts/default.nix
index 861addf81eef..934f15a7a464 100644
--- a/nixpkgs/pkgs/development/python-modules/python-hosts/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/python-hosts/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "python-hosts";
-  version = "1.0.1";
+  version = "1.0.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "5b9749ce807170fb340d044d3f971e1da4dac0ae6af8ce8db00b6758a920a2bc";
+    sha256 = "8f827da4a1bf69d4f4f881f7d7ebc8b378967b60924aa4baea2c9d1debedf5fc";
   };
 
   # win_inet_pton is required for windows support
diff --git a/nixpkgs/pkgs/development/python-modules/python-http-client/default.nix b/nixpkgs/pkgs/development/python-modules/python-http-client/default.nix
index 8eece2ed4fee..b69c478ef27d 100644
--- a/nixpkgs/pkgs/development/python-modules/python-http-client/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/python-http-client/default.nix
@@ -7,13 +7,13 @@
 
 buildPythonPackage rec {
   pname = "python_http_client";
-  version = "3.3.2";
+  version = "3.3.3";
 
   src = fetchFromGitHub {
     owner = "sendgrid";
     repo = "python-http-client";
     rev = version;
-    sha256 = "0z7nvfq9wdcprwh88xn9p3vm15gb3ijdc8pxn0a133ini9hxxlpx";
+    sha256 = "sha256-cZqyu67xP0UIKYbhYYTNL5kLiPjjMjayde75sqkHZhg=";
   };
 
   checkInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/python-ironicclient/default.nix b/nixpkgs/pkgs/development/python-modules/python-ironicclient/default.nix
new file mode 100644
index 000000000000..a09a65a2b4d0
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/python-ironicclient/default.nix
@@ -0,0 +1,63 @@
+{ lib
+, buildPythonApplication
+, fetchPypi
+, pbr
+, appdirs
+, cliff
+, dogpile_cache
+, jsonschema
+, keystoneauth1
+, openstacksdk
+, osc-lib
+, oslo-utils
+, pyyaml
+, requests
+, stevedore
+, stestr
+, requests-mock
+, oslotest
+}:
+
+buildPythonApplication rec {
+  pname = "python-ironicclient";
+  version = "4.8.0";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "b55516a72b995f92fb434619cbc1e2effa604c7fcaa6ac4afb8f5af1ea8193a4";
+  };
+
+  propagatedBuildInputs = [
+    pbr
+    appdirs
+    cliff
+    dogpile_cache
+    jsonschema
+    keystoneauth1
+    openstacksdk
+    osc-lib
+    oslo-utils
+    pyyaml
+    requests
+    stevedore
+  ];
+
+  checkInputs = [
+    stestr
+    requests-mock
+    oslotest
+  ];
+
+  checkPhase = ''
+    stestr run
+  '';
+
+  pythonImportsCheck = [ "ironicclient" ];
+
+  meta = with lib; {
+    description = "A client for OpenStack bare metal provisioning API, includes a Python module (ironicclient) and CLI (baremetal).";
+    homepage = "https://github.com/openstack/python-ironicclient";
+    license = licenses.asl20;
+    maintainers = teams.openstack.members;
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/python-keystoneclient/default.nix b/nixpkgs/pkgs/development/python-modules/python-keystoneclient/default.nix
index d91a3a9d3139..8bf7ac5619a4 100644
--- a/nixpkgs/pkgs/development/python-modules/python-keystoneclient/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/python-keystoneclient/default.nix
@@ -14,11 +14,11 @@
 
 buildPythonPackage rec {
   pname = "python-keystoneclient";
-  version = "4.2.0";
+  version = "4.3.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "12jsiw82x2zcn8sf78xisf85kr28gl3jqj46a0wxx59v91p44j02";
+    sha256 = "fd09b7790ce53c20dc94318ec4d76e1cf71908aed59baeb4c7a61c17afd3aad5";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/python-lsp-server/default.nix b/nixpkgs/pkgs/development/python-modules/python-lsp-server/default.nix
index 8a9fca2c5d0f..7d2bdf6c9929 100644
--- a/nixpkgs/pkgs/development/python-modules/python-lsp-server/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/python-lsp-server/default.nix
@@ -45,6 +45,12 @@ buildPythonPackage rec {
     sha256 = "sha256-RuZfCvYeO4mthZrg06UhwPp57qvuUI1yYyne5nzIHhE=";
   };
 
+  postPatch = ''
+    substituteInPlace setup.cfg \
+      --replace "--cov-report html --cov-report term --junitxml=pytest.xml" "" \
+      --replace "--cov pylsp --cov test" ""
+  '';
+
   propagatedBuildInputs = [
     jedi
     pluggy
@@ -52,14 +58,14 @@ buildPythonPackage rec {
     setuptools
     ujson
   ] ++ lib.optional withAutopep8 autopep8
-    ++ lib.optional withFlake8 flake8
-    ++ lib.optional withMccabe mccabe
-    ++ lib.optional withPycodestyle pycodestyle
-    ++ lib.optional withPydocstyle pydocstyle
-    ++ lib.optional withPyflakes pyflakes
-    ++ lib.optional withPylint pylint
-    ++ lib.optional withRope rope
-    ++ lib.optional withYapf yapf;
+  ++ lib.optional withFlake8 flake8
+  ++ lib.optional withMccabe mccabe
+  ++ lib.optional withPycodestyle pycodestyle
+  ++ lib.optional withPydocstyle pydocstyle
+  ++ lib.optional withPyflakes pyflakes
+  ++ lib.optional withPylint pylint
+  ++ lib.optional withRope rope
+  ++ lib.optional withYapf yapf;
 
   checkInputs = [
     flaky
@@ -70,7 +76,10 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
-  disabledTests = lib.optional (!withPycodestyle) "test_workspace_loads_pycodestyle_config";
+  disabledTests = [
+    # pytlint output changed
+    "test_lint_free_pylint"
+  ] ++ lib.optional (!withPycodestyle) "test_workspace_loads_pycodestyle_config";
 
   disabledTestPaths = lib.optional (!withAutopep8) "test/plugins/test_autopep8_format.py"
     ++ lib.optional (!withRope) "test/plugins/test_completion.py"
@@ -83,12 +92,6 @@ buildPythonPackage rec {
     ++ lib.optional (!withRope) "test/plugins/test_rope_rename.py"
     ++ lib.optional (!withYapf) "test/plugins/test_yapf_format.py";
 
-  postPatch = ''
-    substituteInPlace setup.cfg \
-      --replace "--cov-report html --cov-report term --junitxml=pytest.xml" "" \
-      --replace "--cov pylsp --cov test" ""
-  '';
-
   preCheck = ''
     export HOME=$(mktemp -d);
   '';
diff --git a/nixpkgs/pkgs/development/python-modules/python-manilaclient/default.nix b/nixpkgs/pkgs/development/python-modules/python-manilaclient/default.nix
new file mode 100644
index 000000000000..5ffe1a1ea730
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/python-manilaclient/default.nix
@@ -0,0 +1,58 @@
+{ lib
+, buildPythonApplication
+, fetchPypi
+, pbr
+, oslo-config
+, oslo-log
+, oslo-serialization
+, oslo-utils
+, prettytable
+, requests
+, simplejson
+, Babel
+, osc-lib
+, python-keystoneclient
+, debtcollector
+, callPackage
+}:
+
+buildPythonApplication rec {
+  pname = "python-manilaclient";
+  version = "3.0.0";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "2d90af35c5beccc53fa6b0f5a3c4b330a065e86924c33c42b017f18943ab2b05";
+  };
+
+  propagatedBuildInputs = [
+    pbr
+    oslo-config
+    oslo-log
+    oslo-serialization
+    oslo-utils
+    prettytable
+    requests
+    simplejson
+    Babel
+    osc-lib
+    python-keystoneclient
+    debtcollector
+  ];
+
+  # Checks moved to 'passthru.tests' to workaround infinite recursion
+  doCheck = false;
+
+  passthru.tests = {
+    tests = callPackage ./tests.nix { };
+  };
+
+  pythonImportsCheck = [ "manilaclient" ];
+
+  meta = with lib; {
+    description = "Client library for OpenStack Manila API";
+    homepage = "https://github.com/openstack/python-manilaclient";
+    license = licenses.asl20;
+    maintainers = teams.openstack.members;
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/python-manilaclient/tests.nix b/nixpkgs/pkgs/development/python-modules/python-manilaclient/tests.nix
new file mode 100644
index 000000000000..61615456225a
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/python-manilaclient/tests.nix
@@ -0,0 +1,31 @@
+{ buildPythonPackage
+, python-manilaclient
+, stestr
+, ddt
+, tempest
+, mock
+, python-openstackclient
+}:
+
+buildPythonPackage rec {
+  pname = "python-manilaclient-tests";
+  inherit (python-manilaclient) version;
+
+  src = python-manilaclient.src;
+
+  dontBuild = true;
+  dontInstall = true;
+
+  checkInputs = [
+    python-manilaclient
+    stestr
+    ddt
+    tempest
+    mock
+    python-openstackclient
+  ];
+
+  checkPhase = ''
+    stestr run
+  '';
+}
diff --git a/nixpkgs/pkgs/development/python-modules/python-osc/default.nix b/nixpkgs/pkgs/development/python-modules/python-osc/default.nix
new file mode 100644
index 000000000000..5f060fd9b9e4
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/python-osc/default.nix
@@ -0,0 +1,23 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+}:
+
+buildPythonPackage rec {
+  pname = "python-osc";
+  version = "1.7.7";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "4c7d68a7719d9425ab2a4ee9a2b9d5a9f5b66593fb46e20e38f91e1452bea2d2";
+  };
+
+  pythonImportsCheck = [ "pythonosc" ];
+
+  meta = with lib; {
+    description = "Open Sound Control server and client in pure python";
+    homepage = "https://github.com/attwad/python-osc";
+    license = licenses.unlicense;
+    maintainers = with maintainers; [ anirrudh ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/python-rapidjson/default.nix b/nixpkgs/pkgs/development/python-modules/python-rapidjson/default.nix
index 63dc4018b27d..a939caf49703 100644
--- a/nixpkgs/pkgs/development/python-modules/python-rapidjson/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/python-rapidjson/default.nix
@@ -8,13 +8,13 @@
 }:
 
 buildPythonPackage rec {
-  version = "1.0";
+  version = "1.4";
   pname = "python-rapidjson";
   disabled = pythonOlder "3.4";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "a61fa61e41b0b85ba9e78444242fddcb3be724de1df79314e6b4766b66e4e11c";
+    sha256 = "018c20d3983cccfdc9cfed64407d4ba861ef3d64fe324a486f7130431afdefa7";
   };
 
   LC_ALL="en_US.utf-8";
diff --git a/nixpkgs/pkgs/development/python-modules/python-sql/default.nix b/nixpkgs/pkgs/development/python-modules/python-sql/default.nix
index a07941e5de4a..a32dcfa5f003 100644
--- a/nixpkgs/pkgs/development/python-modules/python-sql/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/python-sql/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "python-sql";
-  version = "1.2.2";
+  version = "1.3.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "2d916357a0172c35eccac29064cd18cd41616fc60109a37dac0e9d11a0b1183a";
+    sha256 = "9d603a6273f2f5966bab7ce77e1f50e88818d5237ac85e566e2dc84ebfabd176";
   };
 
   meta = {
diff --git a/nixpkgs/pkgs/development/python-modules/python-status/default.nix b/nixpkgs/pkgs/development/python-modules/python-status/default.nix
new file mode 100644
index 000000000000..2633d93c312f
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/python-status/default.nix
@@ -0,0 +1,26 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+}:
+
+buildPythonPackage rec {
+  pname = "python-status";
+  version = "1.0.1";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "0lryrvmi04g7d38ilm4wfw717m0ddhylrzb5cm59lrp3ai3q572f";
+  };
+
+  # Project doesn't ship tests yet
+  doCheck = false;
+
+  pythonImportsCheck = [ "status" ];
+
+  meta = with lib; {
+    description = "HTTP Status for Humans";
+    homepage = "https://github.com/avinassh/status/";
+    license = with licenses; [ mit ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/python-swiftclient/default.nix b/nixpkgs/pkgs/development/python-modules/python-swiftclient/default.nix
index b932d5c51e4c..aebc5d75988c 100644
--- a/nixpkgs/pkgs/development/python-modules/python-swiftclient/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/python-swiftclient/default.nix
@@ -1,4 +1,12 @@
-{ lib, buildPythonApplication, fetchPypi, requests, six, pbr, setuptools }:
+{ lib
+, buildPythonApplication
+, fetchPypi
+, mock
+, openstacksdk
+, pbr
+, python-keystoneclient
+, stestr
+}:
 
 buildPythonApplication rec {
   pname = "python-swiftclient";
@@ -9,26 +17,24 @@ buildPythonApplication rec {
     sha256 = "sha256-MTtEShTQ+bYoy/PoxS8sQnFlj56KM9QiKFHC5PD3t6A=";
   };
 
-  nativeBuildInputs = [ pbr ];
+  propagatedBuildInputs = [ pbr python-keystoneclient ];
 
-  propagatedBuildInputs = [ requests six setuptools ];
+  checkInputs = [
+    mock
+    openstacksdk
+    stestr
+  ];
 
-  # For the tests the following requirements are needed:
-  # https://github.com/openstack/python-swiftclient/blob/master/test-requirements.txt
-  #
-  # The ones missing in nixpkgs (currently) are:
-  # - hacking
-  # - keystoneauth
-  # - oslosphinx
-  # - stestr
-  # - reno
-  # - openstackdocstheme
-  doCheck = false;
+  checkPhase = ''
+    stestr run
+  '';
+
+  pythonImportsCheck = [ "swiftclient" ];
 
   meta = with lib; {
     homepage = "https://github.com/openstack/python-swiftclient";
     description = "Python bindings to the OpenStack Object Storage API";
     license = licenses.asl20;
-    maintainers = with maintainers; [ c0deaddict SuperSandro2000 ];
+    maintainers = teams.openstack.members;
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/python3-application/default.nix b/nixpkgs/pkgs/development/python-modules/python3-application/default.nix
new file mode 100644
index 000000000000..cddb354a5db2
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/python3-application/default.nix
@@ -0,0 +1,47 @@
+{ lib, isPy3k, buildPythonPackage, fetchFromGitHub, fetchpatch, zope_interface, twisted }:
+
+buildPythonPackage rec {
+  pname = "python3-application";
+  version = "3.0.3";
+
+  disabled = !isPy3k;
+
+  src = fetchFromGitHub {
+    owner = "AGProjects";
+    repo = pname;
+    rev = version;
+    sha256 = "sha256-oscUI/Ag/UXmAi/LN1pPTdyqQe9aAfeQzhKFxaTmW3A=";
+  };
+
+  patches = [
+    # Apply bugfix commit that is not yet part of a release
+    (fetchpatch {
+      name = "fix-time-import.patch";
+      url = "https://github.com/AGProjects/${pname}/commit/695f7d769e69c84e065872ffb403157d0af282fd.patch";
+      sha256 = "sha256-MGs8uUIFXkPXStOn5oCNNEMVmcKrq8YPl8Xvl3OTOUM=";
+    })
+  ];
+
+  propagatedBuildInputs = [ zope_interface twisted ];
+
+  pythonImportsCheck = [ "application" ];
+
+  meta = with lib; {
+    description = "A collection of modules that are useful when building python applications";
+    homepage = "https://github.com/AGProjects/python3-application";
+    license = licenses.lgpl21Plus;
+    maintainers = with maintainers; [ chanley ];
+    longDescription = ''
+      This package is a collection of modules that are useful when building python applications. Their purpose is to eliminate the need to divert resources into implementing the small tasks that every application needs to do in order to run successfully and focus instead on the application logic itself.
+      The modules that the application package provides are:
+        1. process - UNIX process and signal management.
+        2. python - python utility classes and functions.
+        3. configuration - a simple interface to handle configuration files.
+        4. log - an extensible system logger for console and syslog.
+        5. debug - memory troubleshooting and execution timing.
+        6. system - interaction with the underlying operating system.
+        7. notification - an application wide notification system.
+        8. version - manage version numbers for applications and packages.
+    '';
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/python3-eventlib/default.nix b/nixpkgs/pkgs/development/python-modules/python3-eventlib/default.nix
new file mode 100644
index 000000000000..3c2413ff5943
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/python3-eventlib/default.nix
@@ -0,0 +1,34 @@
+{ lib, fetchFromGitHub, buildPythonPackage, isPy3k, zope_interface, twisted, greenlet }:
+
+buildPythonPackage rec {
+  pname = "python3-eventlib";
+  version = "0.3.0";
+
+  disabled = !isPy3k;
+
+  src = fetchFromGitHub {
+    owner = "AGProjects";
+    repo = "python3-eventlib";
+    rev = version;
+    sha256 = "sha256-LFW3rCGa7A8tk6SjgYgjkLQ+72GE2WN8wG+XkXYTAoQ=";
+  };
+
+  propagatedBuildInputs = [ zope_interface twisted greenlet ];
+
+  dontUseSetuptoolsCheck = true;
+
+  pythonImportsCheck = [ "eventlib" ];
+
+  meta = with lib; {
+    description = "A networking library written in Python";
+    homepage = "https://github.com/AGProjects/python3-eventlib";
+    license = licenses.lgpl21Plus;
+    maintainers = with maintainers; [ chanley ];
+    longDescription = ''
+      Eventlib is a networking library written in Python. It achieves high
+      scalability by using non-blocking I/O while at the same time retaining
+      high programmer usability by using coroutines to make the non-blocking io
+      operations appear blocking at the source code level.
+    '';
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/python3-gnutls/default.nix b/nixpkgs/pkgs/development/python-modules/python3-gnutls/default.nix
new file mode 100644
index 000000000000..cda828113971
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/python3-gnutls/default.nix
@@ -0,0 +1,52 @@
+{ lib, fetchFromGitHub, substituteAll, buildPythonPackage, isPy3k, gnutls
+, twisted, pyopenssl, service-identity }:
+
+buildPythonPackage rec {
+  pname = "python3-gnutls";
+  version = "3.1.9";
+
+  disabled = !isPy3k;
+
+  src = fetchFromGitHub {
+    owner = "AGProjects";
+    repo = "python3-gnutls";
+    rev = "324b78f7cd3d9fe58c89c7f0b2bf94199bd6a6e5"; # version not tagged
+    sha256 = "sha256-18T8bAHlNERHobsspUFvSC6ulN55nrFFb5aqNwU8T00=";
+  };
+
+  propagatedBuildInputs = [ twisted pyopenssl service-identity ];
+
+  patches = [
+    (substituteAll {
+      src = ./libgnutls-path.patch;
+      gnutlslib = "${lib.getLib gnutls}/lib";
+    })
+   ];
+
+  pythonImportsCheck = [ "gnutls" ];
+
+  meta = with lib; {
+    description = "Python wrapper for the GnuTLS library";
+    homepage = "https://github.com/AGProjects/python3-gnutls";
+    license = licenses.lgpl21Plus;
+    maintainers = with maintainers; [ chanley ];
+    longDescription = ''
+      This package provides a high level object oriented wrapper around libgnutls,
+      as well as low level bindings to the GnuTLS types and functions via ctypes.
+      The high level wrapper hides the details of accessing the GnuTLS library via
+      ctypes behind a set of classes that encapsulate GnuTLS sessions, certificates
+      and credentials and expose them to python applications using a simple API.
+
+      The package also includes a Twisted interface that has seamless intergration
+      with Twisted, providing connectTLS and listenTLS methods on the Twisted
+      reactor once imported (the methods are automatically attached to the reactor
+      by simply importing the GnuTLS Twisted interface module).
+
+      The high level wrapper is written using the GnuTLS library bindings that are
+      made available via ctypes. This makes the wrapper very powerful and flexible
+      as it has direct access to all the GnuTLS internals and is also very easy to
+      extend without any need to write C code or recompile anything.
+
+    '';
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/python3-gnutls/libgnutls-path.patch b/nixpkgs/pkgs/development/python-modules/python3-gnutls/libgnutls-path.patch
new file mode 100644
index 000000000000..ff9b3aa69328
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/python3-gnutls/libgnutls-path.patch
@@ -0,0 +1,42 @@
+diff --git a/gnutls/library/__init__.py b/gnutls/library/__init__.py
+index c1d898a..b87bd2e 100644
+--- a/gnutls/library/__init__.py
++++ b/gnutls/library/__init__.py
+@@ -18,35 +18,19 @@ def _library_locations(abi_version):
+     system = _get_system_name()
+     if system == "darwin":
+         library_names = ["libgnutls.%d.dylib" % abi_version]
+-        dynamic_loader_env_vars = ["DYLD_LIBRARY_PATH", "LD_LIBRARY_PATH"]
+-        additional_paths = ["/usr/local/lib", "/opt/local/lib", "/sw/lib"]
+     elif system == "windows":
+         library_names = ["libgnutls-%d.dll" % abi_version]
+-        dynamic_loader_env_vars = ["PATH"]
+-        additional_paths = ["."]
+     elif system == "cygwin":
+         library_names = ["cyggnutls-%d.dll" % abi_version]
+-        dynamic_loader_env_vars = ["LD_LIBRARY_PATH"]
+-        additional_paths = ["/usr/bin"]
+     else:
+         # Debian uses libgnutls-deb0.so.28, go figure
+         library_names = [
+             "libgnutls.so.%d" % abi_version,
+             "libgnutls-deb0.so.%d" % abi_version,
+         ]
+-        dynamic_loader_env_vars = ["LD_LIBRARY_PATH"]
+-        additional_paths = ["/usr/local/lib"]
+     for library_name in library_names:
+-        for path in (
+-            path
+-            for env_var in dynamic_loader_env_vars
+-            for path in os.environ.get(env_var, "").split(":")
+-            if os.path.isdir(path)
+-        ):
+-            yield os.path.join(path, library_name)
+-        yield library_name
+-        for path in additional_paths:
+-            yield os.path.join(path, library_name)
++        path = "@gnutlslib@"
++        yield os.path.join(path, library_name)
+ 
+ 
+ def _load_library(abi_versions):
diff --git a/nixpkgs/pkgs/development/python-modules/pythran/default.nix b/nixpkgs/pkgs/development/python-modules/pythran/default.nix
index cb25b09dad72..382a01e7b870 100644
--- a/nixpkgs/pkgs/development/python-modules/pythran/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pythran/default.nix
@@ -2,6 +2,7 @@
 , python
 , buildPythonPackage
 , fetchFromGitHub
+, openmp
 , pytest-runner
 , ply
 , networkx
@@ -34,7 +35,7 @@ in buildPythonPackage rec {
     # Hardcode path to mp library
     (substituteAll {
       src = ./0001-hardcode-path-to-libgomp.patch;
-      gomp = "${stdenv.cc.cc.lib}/lib/libgomp${stdenv.hostPlatform.extensions.sharedLibrary}";
+      gomp = "${if stdenv.cc.isClang then openmp else stdenv.cc.cc.lib}/lib/libgomp${stdenv.hostPlatform.extensions.sharedLibrary}";
     })
   ];
 
diff --git a/nixpkgs/pkgs/development/python-modules/pytibber/default.nix b/nixpkgs/pkgs/development/python-modules/pytibber/default.nix
index e036197a1eca..1ca78b51e983 100644
--- a/nixpkgs/pkgs/development/python-modules/pytibber/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pytibber/default.nix
@@ -12,7 +12,7 @@
 
 buildPythonPackage rec {
   pname = "pytibber";
-  version = "0.19.0";
+  version = "0.20.0";
 
   disabled = pythonOlder "3.7";
 
@@ -20,7 +20,7 @@ buildPythonPackage rec {
     owner = "Danielhiversen";
     repo = "pyTibber";
     rev = version;
-    sha256 = "sha256-9xKt6OspdM7zWbVzjtvDPYuGyIW3K6ioASt53LOgdvk=";
+    sha256 = "sha256-q7DNRCJrt4B/u7QV4MocxmlfEdLmJMP7umv3+PJjIoE=";
   };
 
   propagatedBuildInputs = [
@@ -43,7 +43,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "tibber" ];
 
   meta = with lib; {
-    description = "A python3 library to communicate with Tibber";
+    description = "Python library to communicate with Tibber";
     homepage = "https://github.com/Danielhiversen/pyTibber";
     license = licenses.mit;
     maintainers = with maintainers; [ dotlambda ];
diff --git a/nixpkgs/pkgs/development/python-modules/pytorch/bin.nix b/nixpkgs/pkgs/development/python-modules/pytorch/bin.nix
index 593635ab42f8..e9bc58321df5 100644
--- a/nixpkgs/pkgs/development/python-modules/pytorch/bin.nix
+++ b/nixpkgs/pkgs/development/python-modules/pytorch/bin.nix
@@ -18,7 +18,7 @@ let
   pyVerNoDot = builtins.replaceStrings [ "." ] [ "" ] python.pythonVersion;
   srcs = import ./binary-hashes.nix version;
   unsupported = throw "Unsupported system";
-  version = "1.9.0";
+  version = "1.9.1";
 in buildPythonPackage {
   inherit version;
 
@@ -67,6 +67,6 @@ in buildPythonPackage {
     changelog = "https://github.com/pytorch/pytorch/releases/tag/v${version}";
     license = licenses.unfree; # Includes CUDA and Intel MKL.
     platforms = platforms.linux;
-    maintainers = with maintainers; [ ];
+    maintainers = with maintainers; [ junjihashimoto ];
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/pytorch/binary-hashes.nix b/nixpkgs/pkgs/development/python-modules/pytorch/binary-hashes.nix
index d6fbde19f0f3..0fbf9ae91287 100644
--- a/nixpkgs/pkgs/development/python-modules/pytorch/binary-hashes.nix
+++ b/nixpkgs/pkgs/development/python-modules/pytorch/binary-hashes.nix
@@ -1,17 +1,26 @@
-version: {
-  x86_64-linux-37 = {
-    name = "torch-${version}-cp37-cp37m-linux_x86_64.whl";
-    url = "https://download.pytorch.org/whl/cu111/torch-${version}%2Bcu111-cp37-cp37m-linux_x86_64.whl";
-    hash = "sha256-GOTC4HpSxd+3V4LNPy3Ig1+IAhm3U+6s/gOkKxD4AJE=";
-  };
-  x86_64-linux-38 = {
-    name = "torch-${version}-cp38-cp38-linux_x86_64.whl";
-    url = "https://download.pytorch.org/whl/cu111/torch-${version}%2Bcu111-cp38-cp38-linux_x86_64.whl";
-    hash = "sha256-29KiXQJWCRRn92+ZddBq3Q+zYIKavUxB5HL3HafO0gc=";
-  };
-  x86_64-linux-39 = {
-    name = "torch-${version}-cp39-cp39-linux_x86_64.whl";
-    url = "https://download.pytorch.org/whl/cu111/torch-${version}%2Bcu111-cp39-cp39-linux_x86_64.whl";
-    hash = "sha256-VCLRkELiF8KqlAMLFrP+TaW+m6jupG5+WdQKEQlVli0=";
+# Warning: use the same CUDA version as pytorch-bin.
+#
+# Precompiled wheels can be found at:
+# https://download.pytorch.org/whl/torch_stable.html
+
+# To add a new version, run "prefetch.sh 'new-version'" to paste the generated file as follows.
+
+version : builtins.getAttr version {
+  "1.9.1" = {
+    x86_64-linux-37 = {
+      name = "torch-1.9.1-cp37-cp37m-linux_x86_64.whl";
+      url = "https://download.pytorch.org/whl/cu111/torch-1.9.1%2Bcu111-cp37-cp37m-linux_x86_64.whl";
+      hash = "sha256-qzXbbpLX+ZlRv41oAyQRk3guU0n/6vuNzWw+nOieL6s=";
+    };
+    x86_64-linux-38 = {
+      name = "torch-1.9.1-cp38-cp38-linux_x86_64.whl";
+      url = "https://download.pytorch.org/whl/cu111/torch-1.9.1%2Bcu111-cp38-cp38-linux_x86_64.whl";
+      hash = "sha256-JUbcqugax08/iN1LKfXq0ohSpejmbKhbT0by7qMGAzw=";
+    };
+    x86_64-linux-39 = {
+      name = "torch-1.9.1-cp39-cp39-linux_x86_64.whl";
+      url = "https://download.pytorch.org/whl/cu111/torch-1.9.1%2Bcu111-cp39-cp39-linux_x86_64.whl";
+      hash = "sha256-wNLLtR9ZxKkVOTzwbAikM5H83pXyH+aPHVFyfrO4c1M=";
+    };
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/pytorch/prefetch.sh b/nixpkgs/pkgs/development/python-modules/pytorch/prefetch.sh
new file mode 100755
index 000000000000..65007f11bf7b
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/pytorch/prefetch.sh
@@ -0,0 +1,36 @@
+#!/usr/bin/env nix-shell
+#!nix-shell -i bash -p nix-prefetch-scripts
+
+version=$1
+
+bucket="https://download.pytorch.org/whl/cu111"
+
+url_and_key_list=(
+"x86_64-linux-37 $bucket/torch-${version}%2Bcu111-cp37-cp37m-linux_x86_64.whl torch-${version}-cp37-cp37m-linux_x86_64.whl"
+"x86_64-linux-38 $bucket/torch-${version}%2Bcu111-cp38-cp38-linux_x86_64.whl torch-${version}-cp38-cp38-linux_x86_64.whl"
+"x86_64-linux-39 $bucket/torch-${version}%2Bcu111-cp39-cp39-linux_x86_64.whl torch-${version}-cp39-cp39-linux_x86_64.whl"
+)
+
+hashfile=binary-hashes-"$version".nix
+rm -f $hashfile
+echo "  \"$version\" = {" >> $hashfile
+
+for url_and_key in "${url_and_key_list[@]}"; do
+  key=$(echo "$url_and_key" | cut -d' ' -f1)
+  url=$(echo "$url_and_key" | cut -d' ' -f2)
+  name=$(echo "$url_and_key" | cut -d' ' -f3)
+
+  echo "prefetching ${url}..."
+  hash=$(nix hash to-sri --type sha256 `nix-prefetch-url "$url" --name "$name"`)
+
+  echo "    $key = {" >> $hashfile
+  echo "      name = \"$name\";" >> $hashfile
+  echo "      url = \"$url\";" >> $hashfile
+  echo "      hash = \"$hash\";" >> $hashfile
+  echo "    };" >> $hashfile
+
+  echo
+done
+
+echo "  };" >> $hashfile
+echo "done."
diff --git a/nixpkgs/pkgs/development/python-modules/pytube/default.nix b/nixpkgs/pkgs/development/python-modules/pytube/default.nix
index 93ff39360830..bd5b9e374f16 100644
--- a/nixpkgs/pkgs/development/python-modules/pytube/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pytube/default.nix
@@ -7,7 +7,7 @@
 
 buildPythonPackage rec {
   pname = "pytube";
-  version = "10.9.3";
+  version = "11.0.1";
 
   disabled = pythonOlder "3.6";
 
@@ -15,7 +15,7 @@ buildPythonPackage rec {
     owner = "pytube";
     repo = "pytube";
     rev = "v${version}";
-    sha256 = "sha256-x4u68O9dNhDZ+1Q+S4ou6zPqoR2/Yn5lcKgR2kyM/uo=";
+    sha256 = "04s4hganb6x0dlfyyg9gjah5z0vxd7bxzqwgvd28hqnf0iwc2byb";
   };
 
   checkInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/pyturbojpeg/default.nix b/nixpkgs/pkgs/development/python-modules/pyturbojpeg/default.nix
index 50f5c4559e4e..c9c97ad621f8 100644
--- a/nixpkgs/pkgs/development/python-modules/pyturbojpeg/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyturbojpeg/default.nix
@@ -10,12 +10,12 @@
 
 buildPythonPackage rec {
   pname = "pyturbojpeg";
-  version = "1.5.1";
+  version = "1.5.4";
 
   src = fetchPypi {
     pname = "PyTurboJPEG";
     inherit version;
-    sha256 = "sha256-56FnJpnQzFPlz0v506CrwIHf9uV3R1LibnuEL7RcFCg=";
+    sha256 = "sha256-KU24J6iU2y8iLyxjJiuh6Zqx+t1PVBrleOf/mWnfA4I=";
   };
 
   patches = [
diff --git a/nixpkgs/pkgs/development/python-modules/pytwitchapi/default.nix b/nixpkgs/pkgs/development/python-modules/pytwitchapi/default.nix
index 78cd978bc9ad..943642bfd64c 100644
--- a/nixpkgs/pkgs/development/python-modules/pytwitchapi/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pytwitchapi/default.nix
@@ -10,14 +10,14 @@
 
 buildPythonPackage rec {
   pname = "pytwitchapi";
-  version = "2.3.0";
+  version = "2.4.2";
   disabled = pythonOlder "3.7";
 
   src = fetchFromGitHub {
     owner = "Teekeks";
     repo = "pyTwitchAPI";
     rev = "v${version}";
-    sha256 = "sha256-ax3FHyyyRfXSWKsoUi8ao5TL2alo0bQP+lWiDaPjf34=";
+    sha256 = "0fq1ky6nbrb47mlznl3vq8m86lqb6p78fvbcy8x3rm3m5zngxnz7";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/pyupgrade/default.nix b/nixpkgs/pkgs/development/python-modules/pyupgrade/default.nix
index 636a05718420..2b7b56a340d1 100644
--- a/nixpkgs/pkgs/development/python-modules/pyupgrade/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyupgrade/default.nix
@@ -8,14 +8,14 @@
 
 buildPythonPackage rec {
   pname = "pyupgrade";
-  version = "2.25.0";
+  version = "2.27.0";
   disabled = pythonOlder "3.6";
 
   src = fetchFromGitHub {
     owner = "asottile";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0mbx5gv6ns896mxzml8q9r9dn5wvnrb7gc5iw49fdwbb0yw9yhyx";
+    sha256 = "1j14m4mdvpq740bxz3mhs5k02jfp425xig4yb13drx37p4yyl9zn";
   };
 
   checkInputs = [ pytestCheckHook ];
diff --git a/nixpkgs/pkgs/development/python-modules/pyusb/default.nix b/nixpkgs/pkgs/development/python-modules/pyusb/default.nix
index 43ae18741e1d..05fb6b682716 100644
--- a/nixpkgs/pkgs/development/python-modules/pyusb/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyusb/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "pyusb";
-  version = "1.1.1";
+  version = "1.2.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "7d449ad916ce58aff60b89aae0b65ac130f289c24d6a5b7b317742eccffafc38";
+    sha256 = "a4cc7404a203144754164b8b40994e2849fde1cfff06b08492f12fff9d9de7b9";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/pyvera/default.nix b/nixpkgs/pkgs/development/python-modules/pyvera/default.nix
index 2439bd468568..70392eda7b1d 100644
--- a/nixpkgs/pkgs/development/python-modules/pyvera/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyvera/default.nix
@@ -12,14 +12,14 @@
 
 buildPythonPackage rec {
   pname = "pyvera";
-  version = "0.3.13";
+  version = "0.3.14";
   format = "pyproject";
 
   src = fetchFromGitHub {
     owner = "pavoni";
     repo = pname;
     rev = version;
-    sha256 = "0vh82bwgbq93jrwi9q4da534paknpak8hxi4wwlxh3qcvnpy1njv";
+    sha256 = "sha256-CuXsyHlRw5zqDrQfMT4BzHsmox8MLRKxFKwR5M0XoEM=";
   };
 
   nativeBuildInputs = [ poetry-core ];
diff --git a/nixpkgs/pkgs/development/python-modules/pyvex/default.nix b/nixpkgs/pkgs/development/python-modules/pyvex/default.nix
index 4e3200c3fe70..786eb560662c 100644
--- a/nixpkgs/pkgs/development/python-modules/pyvex/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyvex/default.nix
@@ -11,11 +11,11 @@
 
 buildPythonPackage rec {
   pname = "pyvex";
-  version = "9.0.9792";
+  version = "9.0.10010";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-8AF7dCvQvBDjITRwi40KqMXcgiJpmKcK16ys1ybFIyk=";
+    sha256 = "sha256-1vAiDXMYiclK5P8QZUBuy6KllcAQm8d7rQpN+CBDVVA=";
   };
 
   postPatch = lib.optionalString stdenv.isDarwin ''
diff --git a/nixpkgs/pkgs/development/python-modules/pyvips/default.nix b/nixpkgs/pkgs/development/python-modules/pyvips/default.nix
index ea40fc573b63..c3eb750783fd 100644
--- a/nixpkgs/pkgs/development/python-modules/pyvips/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyvips/default.nix
@@ -3,11 +3,11 @@
 
 buildPythonPackage rec {
   pname = "pyvips";
-  version = "2.1.14";
+  version = "2.1.15";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "244e79c625be65237677c79424d4476de6c406805910015d4adbd0186c64a6a2";
+    sha256 = "8bca4077dbdc1434dcbc6759407367b6561e3505aa9555b1bc0b45989dcf50b2";
   };
 
   nativeBuildInputs = [ pytest-runner pkgconfig pkg-config ];
diff --git a/nixpkgs/pkgs/development/python-modules/pyvolumio/default.nix b/nixpkgs/pkgs/development/python-modules/pyvolumio/default.nix
index da3ac35c4622..f4164b884c74 100644
--- a/nixpkgs/pkgs/development/python-modules/pyvolumio/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyvolumio/default.nix
@@ -7,20 +7,22 @@
 
 buildPythonPackage rec {
   pname = "pyvolumio";
-  version = "0.1.3";
+  version = "0.1.4";
+
   disabled = pythonOlder "3.7";
 
   src = fetchFromGitHub {
     owner = "OnFreund";
     repo = "PyVolumio";
     rev = "v${version}";
-    sha256 = "0x2dzmd9lwnak2iy6v54y24qjq37y3nlfhsvx7hddgv8jj1klvap";
+    sha256 = "0c6kcz9x0n9w67h2gncyhq0dw3q17nmzipcgx59pwqnn33jan5nf";
   };
 
   propagatedBuildInputs = [ aiohttp ];
 
   # Project has no tests
   doCheck = false;
+
   pythonImportsCheck = [ "pyvolumio" ];
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/development/python-modules/pyzmq/default.nix b/nixpkgs/pkgs/development/python-modules/pyzmq/default.nix
index 5aca8d6d66c6..816c46204f88 100644
--- a/nixpkgs/pkgs/development/python-modules/pyzmq/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyzmq/default.nix
@@ -9,11 +9,11 @@
 
 buildPythonPackage rec {
   pname = "pyzmq";
-  version = "22.1.0";
+  version = "22.2.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "7040d6dd85ea65703904d023d7f57fab793d7ffee9ba9e14f3b897f34ff2415d";
+    sha256 = "6d18c76676771fd891ca8e0e68da0bbfb88e30129835c0ade748016adb3b6242";
   };
 
   checkInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/qtpy/default.nix b/nixpkgs/pkgs/development/python-modules/qtpy/default.nix
index 17e1d9dbe83b..7ee51449ed90 100644
--- a/nixpkgs/pkgs/development/python-modules/qtpy/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/qtpy/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "QtPy";
-  version = "1.9.0";
+  version = "1.10.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "13cw8l7zrhbdi03k1wl1pg9xdl4ahdfa7yz8gd0f23sxnm22rdrd";
+    sha256 = "3d20f010caa3b2c04835d6a2f66f8873b041bdaf7a76085c2a0d7890cdd65ea9";
   };
 
   # no concrete propagatedBuildInputs as multiple backends are supposed
diff --git a/nixpkgs/pkgs/development/python-modules/quantities/default.nix b/nixpkgs/pkgs/development/python-modules/quantities/default.nix
index 233eb8a44b32..28e08eade43d 100644
--- a/nixpkgs/pkgs/development/python-modules/quantities/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/quantities/default.nix
@@ -2,7 +2,7 @@
 , buildPythonPackage
 , fetchPypi
 , numpy
-, python
+, pytestCheckHook
 }:
 
 buildPythonPackage rec {
@@ -14,15 +14,27 @@ buildPythonPackage rec {
     sha256 = "67546963cb2a519b1a4aa43d132ef754360268e5d551b43dd1716903d99812f0";
   };
 
-  propagatedBuildInputs = [ numpy ];
+  propagatedBuildInputs = [
+    numpy
+  ];
 
-  checkPhase = ''
-    ${python.interpreter} setup.py test -V 1
-  '';
+  checkInputs = [
+    pytestCheckHook
+  ];
 
-  meta = {
-    description = "Quantities is designed to handle arithmetic and";
+  disabledTests = [
+    # Tests don't work with current numpy
+    # https://github.com/python-quantities/python-quantities/pull/195
+    "test_arctan2"
+    "test_fix"
+  ];
+
+  pythonImportsCheck = [ "quantities" ];
+
+  meta = with lib; {
+    description = "Quantities is designed to handle arithmetic and conversions of physical quantities";
     homepage = "https://python-quantities.readthedocs.io/";
-    license = lib.licenses.bsd2;
+    license = licenses.bsd2;
+    maintainers = with maintainers; [ ];
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/queuelib/default.nix b/nixpkgs/pkgs/development/python-modules/queuelib/default.nix
index 7534974237a9..cd83914669e5 100644
--- a/nixpkgs/pkgs/development/python-modules/queuelib/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/queuelib/default.nix
@@ -6,11 +6,11 @@
 
 buildPythonPackage rec {
   pname = "queuelib";
-  version = "1.6.1";
+  version = "1.6.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "631d067c9be57e395c382d680d3653ca1452cd29e8da25c5e8d94b5c0c528c31";
+    sha256 = "4b207267f2642a8699a1f806045c56eb7ad1a85a10c0e249884580d139c2fcd2";
   };
 
   buildInputs = [ pytest ];
diff --git a/nixpkgs/pkgs/development/python-modules/r2pipe/default.nix b/nixpkgs/pkgs/development/python-modules/r2pipe/default.nix
index 3fbb0fb4042c..fb767e5c4685 100644
--- a/nixpkgs/pkgs/development/python-modules/r2pipe/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/r2pipe/default.nix
@@ -9,7 +9,7 @@
 
 buildPythonPackage rec {
   pname = "r2pipe";
-  version = "1.5.3";
+  version = "1.6.2";
 
   postPatch = let
     r2lib = "${lib.getOutput "lib" radare2}/lib";
@@ -27,7 +27,7 @@ buildPythonPackage rec {
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "8f3708195c8a6e91c5753940fd348cd821df1389d23b889b01b3e88acf407485";
+    sha256 = "088e1a0778f8021af90b9458c9b706ae3d303a3e6a5064e1ca25d4fd737dc3c7";
   };
 
   # Tiny sanity check to make sure r2pipe finds radare2 (since r2pipe doesn't
@@ -38,7 +38,6 @@ buildPythonPackage rec {
     import r2pipe
     r2 = r2pipe.open('${coreutils}/bin/ls')
     r2.cmd('a')
-    r2.quit()
     EOF
   '';
 
diff --git a/nixpkgs/pkgs/development/python-modules/rapidfuzz/default.nix b/nixpkgs/pkgs/development/python-modules/rapidfuzz/default.nix
index 9c19f91b20f4..d02c557027f3 100644
--- a/nixpkgs/pkgs/development/python-modules/rapidfuzz/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/rapidfuzz/default.nix
@@ -10,7 +10,7 @@
 
 buildPythonPackage rec {
   pname = "rapidfuzz";
-  version = "1.6.0";
+  version = "1.6.2";
 
   disabled = pythonOlder "3.5";
 
@@ -19,7 +19,7 @@ buildPythonPackage rec {
     repo = "RapidFuzz";
     rev = "v${version}";
     fetchSubmodules = true;
-    sha256 = "sha256-dJz6OzzjqWZwzDVJzJVUshK0HDP/Bz5cML0TrwVVcvg=";
+    sha256 = "sha256-tzjtvM5b9RD+Uqg5wT+FtSgjbAc0IgoDAmUFNpXQ9KA=";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/rdflib-jsonld/default.nix b/nixpkgs/pkgs/development/python-modules/rdflib-jsonld/default.nix
index 6e038dd33433..9a0b02c329f7 100644
--- a/nixpkgs/pkgs/development/python-modules/rdflib-jsonld/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/rdflib-jsonld/default.nix
@@ -17,5 +17,7 @@ buildPythonPackage rec {
     license = licenses.bsdOriginal;
     description = "rdflib extension adding JSON-LD parser and serializer";
     maintainers = [ maintainers.koslambrou ];
+    # incomptiable with rdflib 6.0.0, half of the test suite fails with import and atrribute errors
+    broken = true;
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/rdflib/default.nix b/nixpkgs/pkgs/development/python-modules/rdflib/default.nix
index 261ba794e70a..5b16e2f744e2 100644
--- a/nixpkgs/pkgs/development/python-modules/rdflib/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/rdflib/default.nix
@@ -10,11 +10,11 @@
 
 buildPythonPackage rec {
   pname = "rdflib";
-  version = "5.0.0";
+  version = "6.0.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0mdi7xh4zcr3ngqwlgqdqf0i5bxghwfddyxdng1zwpiqkpa9s53q";
+    sha256 = "7ce4d757eb26f4dd43205ec340d8c097f29e5adfe45d6ea20238c731dc679879";
   };
 
   propagatedBuildInputs = [isodate html5lib SPARQLWrapper ];
diff --git a/nixpkgs/pkgs/development/python-modules/regex/default.nix b/nixpkgs/pkgs/development/python-modules/regex/default.nix
index 0445b02c1f33..92ce64d186db 100644
--- a/nixpkgs/pkgs/development/python-modules/regex/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/regex/default.nix
@@ -7,11 +7,11 @@
 
 buildPythonPackage rec {
   pname = "regex";
-  version = "2021.4.4";
+  version = "2021.8.28";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-Uro9P5uULEnX5LwQW7KFUcRAZfE5plBiq3kSvvEMmvs=";
+    sha256 = "f585cbbeecb35f35609edccb95efd95a3e35824cd7752b586503f7e6087303f1";
   };
 
   # Sources for different Python releases are located in same folder
diff --git a/nixpkgs/pkgs/development/python-modules/renault-api/default.nix b/nixpkgs/pkgs/development/python-modules/renault-api/default.nix
new file mode 100644
index 000000000000..9508a86e33b6
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/renault-api/default.nix
@@ -0,0 +1,68 @@
+{ lib
+, aiohttp
+, aioresponses
+, buildPythonPackage
+, click
+, dateparser
+, fetchFromGitHub
+, fetchpatch
+, marshmallow-dataclass
+, poetry-core
+, pyjwt
+, pythonOlder
+, pytest-asyncio
+, pytestCheckHook
+, tabulate
+}:
+
+buildPythonPackage rec {
+  pname = "renault-api";
+  version = "0.1.4";
+  format = "pyproject";
+
+  disabled = pythonOlder "3.7";
+
+  src = fetchFromGitHub {
+    owner = "hacf-fr";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "049kh63yk0r0falqbl5akcwgzqjrkqqhf9y537rrlzc85ihf28b8";
+  };
+
+  nativeBuildInputs = [
+    poetry-core
+  ];
+
+  propagatedBuildInputs = [
+    aiohttp
+    click
+    dateparser
+    marshmallow-dataclass
+    pyjwt
+    tabulate
+  ];
+
+  checkInputs = [
+    aioresponses
+    pytest-asyncio
+    pytestCheckHook
+  ];
+
+  patches = [
+    # Switch to poetry-core, https://github.com/hacf-fr/renault-api/pull/371
+    (fetchpatch {
+      name = "switch-to-poetry-core.patch";
+      url = "https://github.com/hacf-fr/renault-api/commit/5457a612b9ff9f323e8449cbe9dbce465bd65a79.patch";
+      sha256 = "0ds9m4j2qpv0nyg9p8dk9klnarl8wckwclddgnii6h47qci362yy";
+    })
+  ];
+
+  pythonImportsCheck = [ "renault_api" ];
+
+  meta = with lib; {
+    description = "Python library to interact with the Renault API";
+    homepage = "https://github.com/hacf-fr/renault-api";
+    license = licenses.mit;
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/reportlab/default.nix b/nixpkgs/pkgs/development/python-modules/reportlab/default.nix
index c9f2600efe1e..71d4cd7425d1 100644
--- a/nixpkgs/pkgs/development/python-modules/reportlab/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/reportlab/default.nix
@@ -11,11 +11,11 @@ let
   ft = freetype.overrideAttrs (oldArgs: { dontDisableStatic = true; });
 in buildPythonPackage rec {
   pname = "reportlab";
-  version = "3.5.67";
+  version = "3.6.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0cf2206c73fbca752c8bd39e12bb9ad7f2d01e6fcb2b25b9eaf94ea042fe86c9";
+    sha256 = "68f9324000cfc5570b5a59a92306691b5d655078a399f20bc72c2581fe903261";
   };
 
   checkInputs = [ glibcLocales ];
diff --git a/nixpkgs/pkgs/development/python-modules/requests-cache/default.nix b/nixpkgs/pkgs/development/python-modules/requests-cache/default.nix
index 787e9a6e279c..ca6cb7d23075 100644
--- a/nixpkgs/pkgs/development/python-modules/requests-cache/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/requests-cache/default.nix
@@ -1,6 +1,8 @@
 { lib
+, appdirs
 , attrs
 , buildPythonPackage
+, bson
 , cattrs
 , fetchFromGitHub
 , itsdangerous
@@ -18,15 +20,16 @@
 
 buildPythonPackage rec {
   pname = "requests-cache";
-  version = "0.7.4";
-  disabled = pythonOlder "3.6";
+  version = "0.8.1";
   format = "pyproject";
 
+  disabled = pythonOlder "3.7";
+
   src = fetchFromGitHub {
     owner = "reclosedev";
     repo = "requests-cache";
     rev = "v${version}";
-    sha256 = "sha256-FndKFdmEsp3TF2W4b7nhARi9ZOutlE43vvzYxiwbL08=";
+    sha256 = "sha256-HzOcPWmvUhqPtb/7Mnw6wWY7a4CwGRwPgq+7QoHJAc8=";
   };
 
   nativeBuildInputs = [
@@ -34,7 +37,9 @@ buildPythonPackage rec {
   ];
 
   propagatedBuildInputs = [
+    appdirs
     attrs
+    bson
     cattrs
     itsdangerous
     pyyaml
diff --git a/nixpkgs/pkgs/development/python-modules/requests-pkcs12/default.nix b/nixpkgs/pkgs/development/python-modules/requests-pkcs12/default.nix
index 9ebfaa77da5c..00277daf8a3e 100644
--- a/nixpkgs/pkgs/development/python-modules/requests-pkcs12/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/requests-pkcs12/default.nix
@@ -7,13 +7,13 @@
 
 buildPythonPackage rec {
   pname = "requests-pkcs12";
-  version = "1.12";
+  version = "1.13";
 
   src = fetchFromGitHub {
     owner = "m-click";
     repo = "requests_pkcs12";
     rev = version;
-    sha256 = "sha256-fMmca3QNr9UBpSHcVf0nHmGmvkW99bnmigHcWj0D2g0=";
+    sha256 = "0mc9zpa0d9gijf56mxmsxy4qdcm200ixhnm6i3y5xc2yfv9r6xqy";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/requests/default.nix b/nixpkgs/pkgs/development/python-modules/requests/default.nix
index 8b5514f63936..f7c2cdbf27ac 100644
--- a/nixpkgs/pkgs/development/python-modules/requests/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/requests/default.nix
@@ -1,7 +1,10 @@
 { lib
+, brotli
+, brotlicffi
 , buildPythonPackage
 , certifi
 , chardet
+, charset-normalizer
 , fetchPypi
 , idna
 , pytest-mock
@@ -9,18 +12,23 @@
 , pytestCheckHook
 , urllib3
 , isPy27
+, isPy3k
+, trustme
 }:
 
 buildPythonPackage rec {
   pname = "requests";
-  version = "2.25.1";
+  version = "2.26.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-J5c91KkEpPE7JjoZyGbBO5KjntHJZGVfAl8/jT11uAQ=";
+    sha256 = "sha256-uKpY+M95P/2HgtPYyxnmbvNverpDU+7IWedGeLAbB6c=";
   };
 
-  patches = [ ./0001-Prefer-NixOS-Nix-default-CA-bundles-over-certifi.patch ];
+  patches = [
+    # Use the default NixOS CA bundle from the certifi package
+    ./0001-Prefer-NixOS-Nix-default-CA-bundles-over-certifi.patch
+  ];
 
   postPatch = ''
     # Use latest idna
@@ -28,16 +36,24 @@ buildPythonPackage rec {
   '';
 
   propagatedBuildInputs = [
+    brotlicffi
     certifi
+    charset-normalizer
     chardet
     idna
     urllib3
+  ] ++ lib.optionals (isPy3k) [
+    brotlicffi
+    charset-normalizer
+  ] ++ lib.optionals (isPy27) [
+    brotli
   ];
 
   checkInputs = [
     pytest-mock
     pytest-xdist
     pytestCheckHook
+    trustme
   ];
 
   # AttributeError: 'KeywordMapping' object has no attribute 'get'
diff --git a/nixpkgs/pkgs/development/python-modules/rich/default.nix b/nixpkgs/pkgs/development/python-modules/rich/default.nix
index 323bd8ba8685..6c953a4579ea 100644
--- a/nixpkgs/pkgs/development/python-modules/rich/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/rich/default.nix
@@ -13,7 +13,7 @@
 
 buildPythonPackage rec {
   pname = "rich";
-  version = "10.7.0";
+  version = "10.9.0";
   format = "pyproject";
   disabled = pythonOlder "3.6";
 
@@ -21,7 +21,7 @@ buildPythonPackage rec {
     owner = "willmcgugan";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1drh08cmcn8dqi0mpfwscz3ljsv2s60kyhxy6iiw5si7rf717j4p";
+    sha256 = "0lf2s7n9b31aavwl5xjl3x1pjc756s8pbk0whh5kag80z5v6qc32";
   };
 
   nativeBuildInputs = [ poetry-core ];
diff --git a/nixpkgs/pkgs/development/python-modules/robotframework-requests/default.nix b/nixpkgs/pkgs/development/python-modules/robotframework-requests/default.nix
index f5ab684f746f..b43227c8f539 100644
--- a/nixpkgs/pkgs/development/python-modules/robotframework-requests/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/robotframework-requests/default.nix
@@ -8,12 +8,12 @@
 }:
 
 buildPythonPackage rec {
-  version = "0.9.1";
+  version = "0.9.2";
   pname = "robotframework-requests";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "22ea105846b28ddfc49713c59a363ad636ece5e308476dea59e73e3c9b544755";
+    sha256 = "b40f7869312b37975b6705057f73ee335dba8176bb784b607680c57d58c9ef62";
   };
 
   buildInputs = [ unittest2 ];
diff --git a/nixpkgs/pkgs/development/python-modules/robotframework-sshlibrary/default.nix b/nixpkgs/pkgs/development/python-modules/robotframework-sshlibrary/default.nix
index 4d72a2b3b0a1..82a5fd3fed67 100644
--- a/nixpkgs/pkgs/development/python-modules/robotframework-sshlibrary/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/robotframework-sshlibrary/default.nix
@@ -7,12 +7,12 @@
 }:
 
 buildPythonPackage rec {
-  version = "3.6.0";
+  version = "3.7.0";
   pname = "robotframework-sshlibrary";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "169c343f4db71e1969169fa6f383ca7fff549aa8f83bdd3d9cbd03cea928b688";
+    sha256 = "55bd5a11bb1fe60a5a83446e6a3e1e81b13fc671e3b660aa55912a263c1f63aa";
   };
 
   # unit tests are impure
diff --git a/nixpkgs/pkgs/development/python-modules/ruamel_yaml/default.nix b/nixpkgs/pkgs/development/python-modules/ruamel_yaml/default.nix
index 863b62c1bcce..efd418e454d4 100644
--- a/nixpkgs/pkgs/development/python-modules/ruamel_yaml/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/ruamel_yaml/default.nix
@@ -10,11 +10,11 @@
 
 buildPythonPackage rec {
   pname = "ruamel.yaml";
-  version = "0.17.9";
+  version = "0.17.16";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "374373b4743aee9f6d9f40bea600fe020a7ac7ae36b838b4a6a93f72b584a14c";
+    sha256 = "1a771fc92d3823682b7f0893ad56cb5a5c87c48e62b5399d6f42c8759a583b33";
   };
 
   # Tests use relative paths
diff --git a/nixpkgs/pkgs/development/python-modules/s3fs/default.nix b/nixpkgs/pkgs/development/python-modules/s3fs/default.nix
index 882f9e90e3f2..645a0b3566f9 100644
--- a/nixpkgs/pkgs/development/python-modules/s3fs/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/s3fs/default.nix
@@ -8,11 +8,11 @@
 
 buildPythonPackage rec {
   pname = "s3fs";
-  version = "2021.7.0";
+  version = "2021.8.1";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-KTKU7I7QhgVhfbRA46UCKaQT3Bbc8yyUj66MvZsCrpY=";
+    sha256 = "0zwy2fr95s5wzrr2iwbayjh9xh421p6wf0m75szl7rw930v1kb2y";
   };
 
   buildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/s3transfer/0_4.nix b/nixpkgs/pkgs/development/python-modules/s3transfer/0_4.nix
new file mode 100644
index 000000000000..8cfd324f00a5
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/s3transfer/0_4.nix
@@ -0,0 +1,52 @@
+{ lib
+, fetchPypi
+, pythonOlder
+, buildPythonPackage
+, docutils
+, mock
+, nose
+, coverage
+, wheel
+, unittest2
+, botocore
+, futures ? null
+}:
+
+buildPythonPackage rec {
+  pname = "s3transfer";
+  version = "0.4.2";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "sha256-ywIvSxZVHt67sxo3fT8JYA262nNj2MXbeXbn9Hcy4bI=";
+  };
+
+  propagatedBuildInputs =
+    [
+      botocore
+    ] ++ lib.optional (pythonOlder "3") futures;
+
+  buildInputs = [
+    docutils
+    mock
+    nose
+    coverage
+    wheel
+    unittest2
+  ];
+
+  checkPhase = ''
+    pushd s3transfer/tests
+    nosetests -v unit/ functional/
+    popd
+  '';
+
+  # version on pypi has no tests/ dir
+  doCheck = false;
+
+  meta = with lib; {
+    homepage = "https://github.com/boto/s3transfer";
+    license = licenses.asl20;
+    description = "A library for managing Amazon S3 transfers";
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/s3transfer/default.nix b/nixpkgs/pkgs/development/python-modules/s3transfer/default.nix
index e41e4165b9cb..9ed50fb9e49e 100644
--- a/nixpkgs/pkgs/development/python-modules/s3transfer/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/s3transfer/default.nix
@@ -14,15 +14,16 @@
 
 buildPythonPackage rec {
   pname = "s3transfer";
-  version = "0.4.2";
+  version = "0.5.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-ywIvSxZVHt67sxo3fT8JYA262nNj2MXbeXbn9Hcy4bI=";
+    sha256 = "sha256-UO2CPh3FhorUDI3JIHL3V6oOZToZKEXJSjtnb0pi2kw=";
   };
 
   propagatedBuildInputs =
-    [ botocore
+    [
+      botocore
     ] ++ lib.optional (pythonOlder "3") futures;
 
   buildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/sagemaker/default.nix b/nixpkgs/pkgs/development/python-modules/sagemaker/default.nix
index 2b16b99bea73..23fa728a78a0 100644
--- a/nixpkgs/pkgs/development/python-modules/sagemaker/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/sagemaker/default.nix
@@ -16,11 +16,11 @@
 
 buildPythonPackage rec {
   pname = "sagemaker";
-  version = "2.54.0";
+  version = "2.57.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-uLsBHqzpcuTugRXBihdbib64l396m+os39OhP+tLLCM=";
+    sha256 = "b03b340fe54f91b0533d3ce19d5b7fdf403da21b5befab70a9915466e48f6e75";
   };
 
   pythonImportsCheck = [
diff --git a/nixpkgs/pkgs/development/python-modules/sanic-testing/default.nix b/nixpkgs/pkgs/development/python-modules/sanic-testing/default.nix
index b59781e5c459..5e7deb51362e 100644
--- a/nixpkgs/pkgs/development/python-modules/sanic-testing/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/sanic-testing/default.nix
@@ -19,6 +19,13 @@ buildPythonPackage rec {
     sha256 = "1pf619cd3dckn3d8gh18vbn7dflvb0mzpf6frx4y950x2j3rdplk";
   };
 
+  postPatch = ''
+    # https://github.com/sanic-org/sanic-testing/issues/19
+    substituteInPlace setup.py \
+      --replace '"websockets==8.1",' '"websockets>=9.1",' \
+      --replace "httpx==0.18.*" "httpx"
+  '';
+
   propagatedBuildInputs = [
     httpx
     sanic
@@ -30,12 +37,6 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
-  postPatch = ''
-    # https://github.com/sanic-org/sanic-testing/issues/19
-    substituteInPlace setup.py \
-      --replace '"websockets==8.1",' '"websockets>=9.1",'
-  '';
-
   # `sanic` is explicitly set to null when building `sanic` itself
   # to prevent infinite recursion.  In that case we skip running
   # the package at all.
diff --git a/nixpkgs/pkgs/development/python-modules/scancode-toolkit/default.nix b/nixpkgs/pkgs/development/python-modules/scancode-toolkit/default.nix
index fa7dabc27293..177032aea7f3 100644
--- a/nixpkgs/pkgs/development/python-modules/scancode-toolkit/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/scancode-toolkit/default.nix
@@ -37,12 +37,12 @@
 }:
 buildPythonPackage rec {
   pname = "scancode-toolkit";
-  version = "21.6.7";
+  version = "21.8.4";
   disabled = !isPy3k;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "056923ce556cd6d402e5cc98567cb0331a1b6349d03ec565f8ce1c9c37f3a783";
+    sha256 = "c18340067244274c67e166f701c60e747e1d0bccb17efc99f277a4bc0a5a13c6";
   };
 
   dontConfigure = true;
diff --git a/nixpkgs/pkgs/development/python-modules/schema-salad/default.nix b/nixpkgs/pkgs/development/python-modules/schema-salad/default.nix
index 007cca251436..e6342b90bba4 100644
--- a/nixpkgs/pkgs/development/python-modules/schema-salad/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/schema-salad/default.nix
@@ -12,11 +12,11 @@
 
 buildPythonPackage rec {
   pname = "schema-salad";
-  version = "8.1.20210716111910";
+  version = "8.1.20210721123742";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "3f851b385d044c58d359285ba471298b6199478a4978f892a83b15cbfb282f25";
+    sha256 = "1549555b9b5656cfc690716f04fb76b9fa002feb278638c446522f030632b450";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/scikit-fuzzy/default.nix b/nixpkgs/pkgs/development/python-modules/scikit-fuzzy/default.nix
index 7923565c3f4f..ef921c543e1f 100644
--- a/nixpkgs/pkgs/development/python-modules/scikit-fuzzy/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/scikit-fuzzy/default.nix
@@ -12,19 +12,22 @@
 
 buildPythonPackage rec {
   pname = "scikit-fuzzy";
-  version = "unstable-2020-10-03";
+  version = "unstable-2021-03-31";
   disabled = isPy27;
 
   src = fetchFromGitHub {
     owner = pname;
     repo = pname;
-    rev = "eecf303b701e3efacdc9b9066207ef605d4facaa";
-    sha256 = "18dl0017iqwc7446hqgabhibgjwdakhmycpis6zpvvkkv4ip5062";
+    rev = "92ad3c382ac19707086204ac6cdf6e81353345a7";
+    sha256 = "0q89p385nsg3lymlsqm3mw6y45vgrk6w9p30igbm59b7r9mkgdj8";
   };
 
   propagatedBuildInputs = [ networkx numpy scipy ];
   checkInputs = [ matplotlib nose pytestCheckHook ];
 
+  # test error: "ValueError: could not convert string to float: '2.6.2'"
+  disabledTestPaths = [ "skfuzzy/control/tests/test_controlsystem.py" ];
+
   meta = with lib; {
     homepage = "https://github.com/scikit-fuzzy/scikit-fuzzy";
     description = "Fuzzy logic toolkit for scientific Python";
diff --git a/nixpkgs/pkgs/development/python-modules/scikit-hep-testdata/default.nix b/nixpkgs/pkgs/development/python-modules/scikit-hep-testdata/default.nix
index ae982e4d3755..d4e31966da2c 100644
--- a/nixpkgs/pkgs/development/python-modules/scikit-hep-testdata/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/scikit-hep-testdata/default.nix
@@ -11,7 +11,7 @@
 
 buildPythonPackage rec {
   pname = "scikit-hep-testdata";
-  version = "0.4.7";
+  version = "0.4.8";
   format = "pyproject";
 
   # fetch from github as we want the data files
@@ -20,7 +20,7 @@ buildPythonPackage rec {
     owner = "scikit-hep";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0bydqgl7pxmj7nb952p08q64d15d8hbvfdnzkbx9wr71mw7cf3vm";
+    sha256 = "0x5p42c9iqwdx15gdvccddlx4a5a8aix7h01345afrlgpnnpqcv4";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/scikit-image/default.nix b/nixpkgs/pkgs/development/python-modules/scikit-image/default.nix
index f7d3fd63b17b..b34d3ff7b8de 100644
--- a/nixpkgs/pkgs/development/python-modules/scikit-image/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/scikit-image/default.nix
@@ -18,11 +18,11 @@
 
 buildPythonPackage rec {
   pname = "scikit-image";
-  version = "0.18.1";
+  version = "0.18.3";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "fbb618ca911867bce45574c1639618cdfb5d94e207432b19bc19563d80d2f171";
+    sha256 = "ecae99f93f4c5e9b1bf34959f4dc596c41f2f6b2fc407d9d9ddf85aebd3137ca";
   };
 
   nativeBuildInputs = [ cython ];
diff --git a/nixpkgs/pkgs/development/python-modules/scikit-learn-extra/default.nix b/nixpkgs/pkgs/development/python-modules/scikit-learn-extra/default.nix
new file mode 100644
index 000000000000..a91f4ed74f17
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/scikit-learn-extra/default.nix
@@ -0,0 +1,57 @@
+{ lib
+, fetchFromGitHub
+, buildPythonPackage
+, numpy
+, cython
+, scipy
+, scikit-learn
+, matplotlib
+, pytestCheckHook
+}:
+
+buildPythonPackage rec {
+  pname = "scikit-learn-extra";
+  version = "0.2.0";
+
+  src = fetchFromGitHub {
+    owner = "scikit-learn-contrib";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "09v7a9jdycdrlqq349m1gbn8ppzv1bl5g3l72k6ywsx2xb01qw13";
+  };
+
+  nativeBuildInputs = [ numpy cython ];
+  propagatedBuildInputs = [ numpy scipy scikit-learn ];
+  checkInputs = [ matplotlib pytestCheckHook ];
+
+  preCheck = ''
+    # Remove the package in the build dir, because Python defaults to it and
+    # ignores the one in Nix store with cythonized modules.
+    rm -r sklearn_extra
+  '';
+
+  pytestFlagsArray = [ "--pyargs sklearn_extra" ];
+  disabledTestPaths = [
+    "benchmarks"
+    "examples"
+    "doc"
+  ];
+  disabledTests = [
+    "build"   # needs network connection
+  ];
+
+  # Check packages with cythonized modules
+  pythonImportsCheck = [
+    "sklearn_extra"
+    "sklearn_extra.cluster"
+    "sklearn_extra.robust"
+    "sklearn_extra.utils"
+  ];
+
+  meta = {
+    description = "A set of tools for scikit-learn";
+    homepage = "https://github.com/scikit-learn-contrib/scikit-learn-extra";
+    license = lib.licenses.bsd3;
+    maintainers = with lib.maintainers; [ yl3dy ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/scikit-learn/0.20.nix b/nixpkgs/pkgs/development/python-modules/scikit-learn/0.20.nix
index 81915e83d2dc..0ed863755897 100644
--- a/nixpkgs/pkgs/development/python-modules/scikit-learn/0.20.nix
+++ b/nixpkgs/pkgs/development/python-modules/scikit-learn/0.20.nix
@@ -16,7 +16,8 @@ buildPythonPackage rec {
     sha256 = "1z3w2c50dwwa297j88pr16pyrjysagsvdj7vrlq40q8777rs7a6z";
   };
 
-  buildInputs = [ pillow gfortran glibcLocales ];
+  nativeBuildInputs = [ gfortran ];
+  buildInputs = [ pillow glibcLocales ];
   propagatedBuildInputs = [ numpy scipy numpy.blas ];
   checkInputs = [ pytest ];
 
diff --git a/nixpkgs/pkgs/development/python-modules/scikit-learn/default.nix b/nixpkgs/pkgs/development/python-modules/scikit-learn/default.nix
index 6f4ad1d2bd15..e7ac79b42837 100644
--- a/nixpkgs/pkgs/development/python-modules/scikit-learn/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/scikit-learn/default.nix
@@ -38,7 +38,6 @@ buildPythonPackage rec {
 
   buildInputs = [
     pillow
-    gfortran
     glibcLocales
   ] ++ lib.optionals stdenv.cc.isClang [
     llvmPackages.openmp
@@ -46,6 +45,7 @@ buildPythonPackage rec {
 
   nativeBuildInputs = [
     cython
+    gfortran
   ];
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/scikits-odes/default.nix b/nixpkgs/pkgs/development/python-modules/scikits-odes/default.nix
index 8921e0061aa6..f8f48793e902 100644
--- a/nixpkgs/pkgs/development/python-modules/scikits-odes/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/scikits-odes/default.nix
@@ -16,13 +16,13 @@
 
 buildPythonPackage rec {
   pname = "scikits.odes";
-  version = "2.6.1";
+  version = "2.6.2";
 
   disabled = isPy27;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0kbf2n16h9s35x6pavlx6sff0pqr68i0x0609z92a4vadni32n6b";
+    sha256 = "267d8bfa1e18d075d574158053d887562381e88176ebab856516b52b14860983";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/scipy/default.nix b/nixpkgs/pkgs/development/python-modules/scipy/default.nix
index 7a9643aa7d24..2e19d2d42042 100644
--- a/nixpkgs/pkgs/development/python-modules/scipy/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/scipy/default.nix
@@ -3,7 +3,9 @@
 , fetchPypi
 , python
 , buildPythonPackage
+, cython
 , gfortran
+, pythran
 , nose
 , pytest
 , pytest-xdist
@@ -13,18 +15,21 @@
 
 buildPythonPackage rec {
   pname = "scipy";
-  version = "1.6.3";
+  version = "1.7.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "a75b014d3294fce26852a9d04ea27b5671d86736beb34acdfc05859246260707";
+    sha256 = "6b47d5fa7ea651054362561a28b1ccc8da9368a39514c1bbf6c0977a1c376764";
   };
 
-  checkInputs = [ nose pytest pytest-xdist ];
-  nativeBuildInputs = [ gfortran ];
+  nativeBuildInputs = [ cython gfortran pythran ];
+
   buildInputs = [ numpy.blas pybind11 ];
+
   propagatedBuildInputs = [ numpy ];
 
+  checkInputs = [ nose pytest pytest-xdist ];
+
   # Remove tests because of broken wrapper
   prePatch = ''
     rm scipy/linalg/tests/test_lapack.py
@@ -41,7 +46,6 @@ buildPythonPackage rec {
     ln -s ${numpy.cfg} site.cfg
   '';
 
-
   # disable stackprotector on aarch64-darwin for now
   #
   # build error:
diff --git a/nixpkgs/pkgs/development/python-modules/scp/default.nix b/nixpkgs/pkgs/development/python-modules/scp/default.nix
index cba6ddc0acf6..47276ad305c7 100644
--- a/nixpkgs/pkgs/development/python-modules/scp/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/scp/default.nix
@@ -7,11 +7,11 @@
 
 buildPythonPackage rec {
   pname = "scp";
-  version = "0.14.0";
+  version = "0.14.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "ddbdb3ef8c068aa1fd37a5fa65a122a80673c9fd73fdc5668a4604f99ccf5943";
+    sha256 = "b776bd6ce8c8385aa9a025b64a9815b5d798f12d4ef0d712d569503f62aece8b";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/scrapy-deltafetch/default.nix b/nixpkgs/pkgs/development/python-modules/scrapy-deltafetch/default.nix
index 006c8ed03023..95091a0be765 100644
--- a/nixpkgs/pkgs/development/python-modules/scrapy-deltafetch/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/scrapy-deltafetch/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "scrapy-deltafetch";
-  version = "1.2.1";
+  version = "2.0.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1m511psddvlapg492ny36l8rzy7z4i39yx6a1agxzfz6s9b83fq8";
+    sha256 = "13f7968bd0ffae133e2a1dede215e683b8c95285f046260603a5c3e25f2d57b0";
   };
 
   propagatedBuildInputs = [ bsddb3 scrapy ];
diff --git a/nixpkgs/pkgs/development/python-modules/screeninfo/default.nix b/nixpkgs/pkgs/development/python-modules/screeninfo/default.nix
index 80933043b3b9..21b3f30e1323 100644
--- a/nixpkgs/pkgs/development/python-modules/screeninfo/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/screeninfo/default.nix
@@ -1,36 +1,50 @@
-{ lib, buildPythonApplication, fetchPypi, isPy27, isPy36, dataclasses, libX11, libXinerama, libXrandr }:
+{ lib
+, buildPythonApplication
+, dataclasses
+, fetchPypi
+, libX11
+, libXinerama
+, libXrandr
+, pytestCheckHook
+, pythonOlder
+}:
 
 buildPythonApplication rec {
   pname = "screeninfo";
-  version = "0.6.7";
-  disabled = isPy27; # dataclasses isn't available for python2
+  version = "0.7";
+
+  disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1c4bac1ca329da3f68cbc4d2fbc92256aa9bb8ff8583ee3e14f91f0a7baa69cb";
+    sha256 = "12a97c3527e3544ac5dbd7c1204283e2653d655cbd15844c990a83b1b13ef500";
   };
 
-  # dataclasses is a compatibility shim for python 3.6 ONLY
-  patchPhase = if isPy36 then "" else ''
-    substituteInPlace setup.py \
-      --replace "\"dataclasses\"," ""
-  '' + ''
-    substituteInPlace screeninfo/enumerators/xinerama.py \
-      --replace "load_library(\"X11\")" "ctypes.cdll.LoadLibrary(\"${libX11}/lib/libX11.so\")" \
-      --replace "load_library(\"Xinerama\")" "ctypes.cdll.LoadLibrary(\"${libXinerama}/lib/libXinerama.so\")"
-    substituteInPlace screeninfo/enumerators/xrandr.py \
-      --replace "load_library(\"X11\")" "ctypes.cdll.LoadLibrary(\"${libX11}/lib/libX11.so\")" \
-      --replace "load_library(\"Xrandr\")" "ctypes.cdll.LoadLibrary(\"${libXrandr}/lib/libXrandr.so\")"
-  '';
+  propagatedBuildInputs = lib.optionals (pythonOlder "3.7") [
+    dataclasses
+  ];
+
+  buildInputs = [
+    libX11
+    libXinerama
+    libXrandr
+  ];
+
+  checkInputs = [
+    pytestCheckHook
+  ];
 
-  propagatedBuildInputs = lib.optional isPy36 dataclasses;
+  disabledTestPaths = [
+    # We don't have a screen
+    "screeninfo/test_screeninfo.py"
+  ];
 
-  buildInputs = [ libX11 libXinerama libXrandr];
+  pythonImportsCheck = [ "screeninfo" ];
 
   meta = with lib; {
     description = "Fetch location and size of physical screens";
     homepage = "https://github.com/rr-/screeninfo";
     license = licenses.mit;
-    maintainers = [ maintainers.nickhu ];
+    maintainers = with maintainers; [ nickhu ];
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/screenlogicpy/default.nix b/nixpkgs/pkgs/development/python-modules/screenlogicpy/default.nix
index c8e7a81df1f6..1032f6256bb6 100644
--- a/nixpkgs/pkgs/development/python-modules/screenlogicpy/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/screenlogicpy/default.nix
@@ -7,14 +7,14 @@
 
 buildPythonPackage rec {
   pname = "screenlogicpy";
-  version = "0.4.2";
+  version = "0.4.3";
   disabled = pythonOlder "3.6";
 
   src = fetchFromGitHub {
     owner = "dieselrabbit";
     repo = pname;
     rev = "v${version}";
-    sha256 = "158y34d140bh93l143plq53l7n7mcnmqi5mj7hj0j1ljccxpjcnj";
+    sha256 = "0v0nbwz0w2m7kzvcl0fh2v2rk5ldsq22siyxq6d401pkpzwih25c";
   };
 
   checkInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/sendgrid/default.nix b/nixpkgs/pkgs/development/python-modules/sendgrid/default.nix
index 5aabcc2d0f10..a9492c3e8fdf 100644
--- a/nixpkgs/pkgs/development/python-modules/sendgrid/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/sendgrid/default.nix
@@ -11,13 +11,13 @@
 
 buildPythonPackage rec {
   pname = "sendgrid";
-  version = "6.8.1";
+  version = "6.8.2";
 
   src = fetchFromGitHub {
     owner = pname;
     repo = "sendgrid-python";
     rev = version;
-    sha256 = "sha256-rK/GouOv5RMDsn5NrCEtIz5a9wO6YATlhsRuhFuHaXY=";
+    sha256 = "sha256-TaewVBWQ6D5TH1TGXlXVBnW7K4HS/cFxJ6bcMv2DB+c=";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/sentry-sdk/default.nix b/nixpkgs/pkgs/development/python-modules/sentry-sdk/default.nix
index ff58edbeb313..2f8930cd6767 100644
--- a/nixpkgs/pkgs/development/python-modules/sentry-sdk/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/sentry-sdk/default.nix
@@ -29,11 +29,11 @@
 
 buildPythonPackage rec {
   pname = "sentry-sdk";
-  version = "1.3.1";
+  version = "1.4.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0v72zzghlk6kvjg7fg4c4mfr1kasnwlpjzk1wyqd864nz9293sgb";
+    sha256 = "4297555ddc37c7136740e6b547b7d68f5bca0b4832f94ac097e5d531a4c77528";
   };
 
   checkInputs = [ blinker botocore chalice django flask tornado bottle rq falcon sqlalchemy werkzeug trytond
diff --git a/nixpkgs/pkgs/development/python-modules/service_identity/default.nix b/nixpkgs/pkgs/development/python-modules/service_identity/default.nix
index 5465fe7c9942..d7c37e7c433b 100644
--- a/nixpkgs/pkgs/development/python-modules/service_identity/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/service_identity/default.nix
@@ -1,37 +1,47 @@
 { lib
+, attrs
 , buildPythonPackage
-, fetchFromGitHub
-, pythonOlder
 , cryptography
+, fetchFromGitHub
+, idna
 , ipaddress
 , pyasn1
 , pyasn1-modules
-, idna
-, attrs
-, pytest
+, pytestCheckHook
+, pythonOlder
 }:
 
 buildPythonPackage rec {
-  pname = "service_identity";
-  version = "18.1.0";
+  pname = "service-identity";
+  version = "21.1.0";
 
   src = fetchFromGitHub {
     owner = "pyca";
     repo = pname;
     rev = version;
-    sha256 = "1aw475ksmd4vpl8cwfdcsw2v063nbhnnxpy633sb75iqp9aazhlx";
+    sha256 = "sha256-pWc2rU3ULqEukMhd1ySY58lTm3s8f/ayQ7CY4nG24AQ=";
   };
 
   propagatedBuildInputs = [
-    pyasn1 pyasn1-modules idna attrs cryptography
-  ] ++ lib.optionals (pythonOlder "3.3") [ ipaddress ];
+    attrs
+    cryptography
+    idna
+    pyasn1
+    pyasn1-modules
+  ] ++ lib.optionals (pythonOlder "3.3") [
+    ipaddress
+  ];
+
+  checkInputs = [
+    pytestCheckHook
+  ];
 
-  checkInputs = [ pytest ];
-  checkPhase = "py.test";
+  pythonImportsCheck = [ "service_identity" ];
 
   meta = with lib; {
     description = "Service identity verification for pyOpenSSL";
-    license = licenses.mit;
     homepage = "https://service-identity.readthedocs.io";
+    license = licenses.mit;
+    maintainers = with maintainers; [ fab ];
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/setuptools-scm/default.nix b/nixpkgs/pkgs/development/python-modules/setuptools-scm/default.nix
index a4cff6d056b0..6713e5e84f4b 100644
--- a/nixpkgs/pkgs/development/python-modules/setuptools-scm/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/setuptools-scm/default.nix
@@ -1,19 +1,36 @@
-{ lib, buildPythonPackage, fetchPypi, toml }:
+{ buildPythonPackage
+, callPackage
+, fetchPypi
+, packaging
+, tomli
+, lib
+}:
 
 buildPythonPackage rec {
-  pname = "setuptools_scm";
-  version = "6.0.1";
+  pname = "setuptools-scm";
+  version = "6.3.1";
 
   src = fetchPypi {
-    inherit pname version;
-    sha256 = "d1925a69cb07e9b29416a275b9fadb009a23c148ace905b2fb220649a6c18e92";
+    pname = "setuptools_scm";
+    inherit version;
+    sha256 = "sha256-D2omORKxN5jAKLmicdka873g5CeECRx5fezMOtOn9ZY=";
   };
 
-  propagatedBuildInputs = [ toml ];
+  propagatedBuildInputs = [
+    packaging
+    tomli
+  ];
 
-  # Requires pytest, circular dependency
+  pythonImportsCheck = [
+    "setuptools_scm"
+  ];
+
+  # check in passhtru.tests.pytest to escape infinite recursion on pytest
   doCheck = false;
-  pythonImportsCheck = [ "setuptools_scm" ];
+
+  passthru.tests = {
+    pytest = callPackage ./tests.nix { };
+  };
 
   meta = with lib; {
     homepage = "https://github.com/pypa/setuptools_scm/";
diff --git a/nixpkgs/pkgs/development/python-modules/setuptools-scm/tests.nix b/nixpkgs/pkgs/development/python-modules/setuptools-scm/tests.nix
new file mode 100644
index 000000000000..174b54aca9cd
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/setuptools-scm/tests.nix
@@ -0,0 +1,33 @@
+{ lib
+, buildPythonPackage
+, setuptools-scm
+, pytestCheckHook
+, git
+, mercurial
+, pip
+, virtualenv
+}:
+
+buildPythonPackage rec {
+  pname = "setuptools-scm-tests";
+  inherit (setuptools-scm) version;
+
+  src = setuptools-scm.src;
+
+  dontBuild = true;
+  dontInstall = true;
+
+  checkInputs = [
+    pytestCheckHook
+    setuptools-scm
+    pip
+    virtualenv
+    git
+    mercurial
+  ];
+
+  disabledTests = [
+    # network access
+    "test_pip_download"
+  ];
+}
diff --git a/nixpkgs/pkgs/development/python-modules/simple-rest-client/default.nix b/nixpkgs/pkgs/development/python-modules/simple-rest-client/default.nix
new file mode 100644
index 000000000000..b9b1cbe7b058
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/simple-rest-client/default.nix
@@ -0,0 +1,55 @@
+{ lib
+, asynctest
+, buildPythonPackage
+, fetchFromGitHub
+, httpx
+, pytest-asyncio
+, pytest-httpserver
+, pytestCheckHook
+, python-slugify
+, python-status
+, pythonOlder
+}:
+
+buildPythonPackage rec {
+  pname = "simple-rest-client";
+  version = "1.0.8";
+
+  disabled = pythonOlder "3.6";
+
+  src = fetchFromGitHub {
+    owner = "allisson";
+    repo = "python-simple-rest-client";
+    rev = version;
+    sha256 = "12qxhrjhlbyyr1pkvwfkcxbsmyns5b0mfdn42vz310za5x76ldj3";
+  };
+
+  propagatedBuildInputs = [
+    httpx
+    python-slugify
+    python-status
+  ];
+
+  checkInputs = [
+    asynctest
+    pytest-asyncio
+    pytest-httpserver
+    pytestCheckHook
+  ];
+
+  postPatch = ''
+    substituteInPlace setup.py \
+      --replace "pytest-runner" ""
+    substituteInPlace pytest.ini \
+      --replace " --cov=simple_rest_client --cov-report=term-missing" ""
+  '';
+
+  pythonImportsCheck = [ "simple_rest_client" ];
+
+  meta = with lib; {
+    description = "Simple REST client for Python";
+    homepage = "https://github.com/allisson/python-simple-rest-client";
+    license = with licenses; [ mit ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/simple-salesforce/default.nix b/nixpkgs/pkgs/development/python-modules/simple-salesforce/default.nix
index 592e23578095..ee0d273c1869 100644
--- a/nixpkgs/pkgs/development/python-modules/simple-salesforce/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/simple-salesforce/default.nix
@@ -12,13 +12,13 @@
 
 buildPythonPackage rec {
   pname = "simple-salesforce";
-  version = "1.11.2";
+  version = "1.11.4";
 
   src = fetchFromGitHub {
     owner = pname;
     repo = pname;
     rev = "v${version}";
-    sha256 = "1xysym0b1qnxck4hbj5d0l5wapwfahmkr280f6iskz2hi5j2j1yb";
+    sha256 = "17d6g7zfhlgd2n4mimjarl2x4hl7ww2lb4izidlns1hzqm8igg4y";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/simplejson/default.nix b/nixpkgs/pkgs/development/python-modules/simplejson/default.nix
index 0d4d45cce5d6..52e55c71aff0 100644
--- a/nixpkgs/pkgs/development/python-modules/simplejson/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/simplejson/default.nix
@@ -7,13 +7,13 @@
 
 buildPythonPackage rec {
   pname = "simplejson";
-  version = "3.17.3";
+  version = "3.17.5";
 
   src = fetchFromGitHub {
     owner = pname;
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-Ev1vKyxexPvTT+esf9ngUcHu70Brl27P3qbS5fK2HxU=";
+    sha256 = "1vljsd5bk12gasadkxcddwhmp38fj64x1aqi4frk3frq9lp8h3a1";
   };
 
   checkInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/simplekml/default.nix b/nixpkgs/pkgs/development/python-modules/simplekml/default.nix
index 42e93d63faee..0d5020c59958 100644
--- a/nixpkgs/pkgs/development/python-modules/simplekml/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/simplekml/default.nix
@@ -5,11 +5,11 @@
 
 buildPythonPackage rec {
   pname = "simplekml";
-  version = "1.3.5";
+  version = "1.3.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "17h48r1dsfz4g9xcxh1xq85h20hiz7qzzymc1gla96bj2wh4wyv5";
+    sha256 = "cda687be2754395fcab664e908ebf589facd41e8436d233d2be37a69efb1c536";
   };
 
   # no tests are defined in 1.3.5
diff --git a/nixpkgs/pkgs/development/python-modules/singledispatch/default.nix b/nixpkgs/pkgs/development/python-modules/singledispatch/default.nix
index 8fa62e835f22..837271b4d57c 100644
--- a/nixpkgs/pkgs/development/python-modules/singledispatch/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/singledispatch/default.nix
@@ -8,11 +8,11 @@
 
 buildPythonPackage rec {
   pname = "singledispatch";
-  version = "3.6.2";
+  version = "3.7.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "d5bb9405a4b8de48e36709238e8b91b4f6f300f81a5132ba2531a9a738eca391";
+    sha256 = "c1a4d5c1da310c3fd8fccfb8d4e1cb7df076148fd5d858a819e37fffe44f3092";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/skytemple-files/default.nix b/nixpkgs/pkgs/development/python-modules/skytemple-files/default.nix
index d1ea00b7f3e5..f1be3dad3fb1 100644
--- a/nixpkgs/pkgs/development/python-modules/skytemple-files/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/skytemple-files/default.nix
@@ -4,13 +4,13 @@
 
 buildPythonPackage rec {
   pname = "skytemple-files";
-  version = "1.3.0";
+  version = "1.3.1";
 
   src = fetchFromGitHub {
     owner = "SkyTemple";
     repo = pname;
     rev = version;
-    sha256 = "1gpmgdas7x1zmszs9hlxjb6nk683901cy1kc0gyhz0rzdn5jg3lb";
+    sha256 = "04n2g2lbff0fr3mkqma39j6acpbj73dbizz9hw5m15110idc577h";
     fetchSubmodules = true;
   };
 
diff --git a/nixpkgs/pkgs/development/python-modules/slack-sdk/default.nix b/nixpkgs/pkgs/development/python-modules/slack-sdk/default.nix
index 6183ee7b0cba..7d2391daad9b 100644
--- a/nixpkgs/pkgs/development/python-modules/slack-sdk/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/slack-sdk/default.nix
@@ -20,14 +20,14 @@
 
 buildPythonPackage rec {
   pname = "slack-sdk";
-  version = "3.10.0";
+  version = "3.11.2";
   disabled = pythonOlder "3.6";
 
   src = fetchFromGitHub {
     owner = "slackapi";
     repo = "python-slack-sdk";
     rev = "v${version}";
-    sha256 = "sha256-FOpUO9bXrEOgYGmRmAhHnovzBafu6D2ZSLcgw0+0uzs=";
+    sha256 = "sha256-jfFNka+PZXXYz6r7gwoxoqK7SX2RRcDNlCSqVG3JPY0=";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/slowapi/default.nix b/nixpkgs/pkgs/development/python-modules/slowapi/default.nix
index 921a191d5fa1..9ae293e455c7 100644
--- a/nixpkgs/pkgs/development/python-modules/slowapi/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/slowapi/default.nix
@@ -2,7 +2,6 @@
 , buildPythonPackage
 , fastapi
 , fetchFromGitHub
-, fetchpatch
 , limits
 , mock
 , hiro
@@ -15,7 +14,7 @@
 
 buildPythonPackage rec {
   pname = "slowapi";
-  version = "0.1.4";
+  version = "0.1.5";
   format = "pyproject";
   disabled = pythonOlder "3.6";
 
@@ -23,7 +22,7 @@ buildPythonPackage rec {
     owner = "laurentS";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0bnnzgv2wy145sdab54hljwv1b5029ndrr0y9rc2q0mraz8lf8lm";
+    sha256 = "1wjnlhjfgil86h6i5yij723ncg18rqdprs1q6i68w4msaspwpxg9";
   };
 
   nativeBuildInputs = [
@@ -43,13 +42,10 @@ buildPythonPackage rec {
     starlette
   ];
 
-  patches = [
-    # Switch to poetry-core, https://github.com/laurentS/slowapi/pull/54
-    (fetchpatch {
-      name = "switch-to-poetry-core.patch";
-      url = "https://github.com/laurentS/slowapi/commit/fe165f2d479f4f8e4b7dd9cd88ec0ae847b490c5.patch";
-      sha256 = "16vjxdjjiyg8zjrgfyg9q2ym2lmnms2zy5d2cg3ccg51cfl715fi";
-    })
+  disabledTests = [
+    # E       AssertionError: Regex pattern 'parameter `request` must be an instance of starlette.requests.Request' does not match 'This portal is not running'.
+    "test_endpoint_request_param_invalid"
+    "test_endpoint_response_param_invalid"
   ];
 
   pythonImportsCheck = [ "slowapi" ];
diff --git a/nixpkgs/pkgs/development/python-modules/smart-meter-texas/default.nix b/nixpkgs/pkgs/development/python-modules/smart-meter-texas/default.nix
index f8bd6825673c..a9364ad0d1f2 100644
--- a/nixpkgs/pkgs/development/python-modules/smart-meter-texas/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/smart-meter-texas/default.nix
@@ -3,13 +3,14 @@
 , pythonOlder
 , fetchFromGitHub
 , aiohttp
+, asn1
 , python-dateutil
 , tenacity
 }:
 
 buildPythonPackage rec {
   pname = "smart-meter-texas";
-  version = "0.4.4";
+  version = "0.4.7";
 
   disabled = pythonOlder "3.6";
 
@@ -17,7 +18,7 @@ buildPythonPackage rec {
     owner = "grahamwetzler";
     repo = "smart-meter-texas";
     rev = "v${version}";
-    sha256 = "sha256-jewibcsqWnl0OQ2oEEOSOcyyDCIGZiG4EZQfuFUbxK4=";
+    sha256 = "1hfvv3kpkc7i9mn58bjgvwjj0mi2syr8fv4r8bwbhq5sailma27j";
   };
 
   postPatch = ''
@@ -27,6 +28,7 @@ buildPythonPackage rec {
 
   propagatedBuildInputs = [
     aiohttp
+    asn1
     python-dateutil
     tenacity
   ];
diff --git a/nixpkgs/pkgs/development/python-modules/smart-open/default.nix b/nixpkgs/pkgs/development/python-modules/smart-open/default.nix
index 5e86281642af..bbe8b1b468ee 100644
--- a/nixpkgs/pkgs/development/python-modules/smart-open/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/smart-open/default.nix
@@ -15,7 +15,7 @@
 
 buildPythonPackage rec {
   pname = "smart-open";
-  version = "5.2.0";
+  version = "5.2.1";
 
   disabled = pythonOlder "3.5";
 
@@ -23,7 +23,7 @@ buildPythonPackage rec {
     owner = "RaRe-Technologies";
     repo = "smart_open";
     rev = "v${version}";
-    sha256 = "sha256-eC9BYHeACzGp382QBNgLcNMYDkHi0WXyEj/Re9ShXuA=";
+    sha256 = "13a1qsb4vwrhx45hz4qcl0d7bgv20ai5vsy7cq0q6qbj212nff19";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/smbprotocol/default.nix b/nixpkgs/pkgs/development/python-modules/smbprotocol/default.nix
index 93f158508eb6..05825c6c9640 100644
--- a/nixpkgs/pkgs/development/python-modules/smbprotocol/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/smbprotocol/default.nix
@@ -12,14 +12,14 @@
 
 buildPythonPackage rec {
   pname = "smbprotocol";
-  version = "1.6.2";
+  version = "1.7.0";
   disabled = pythonOlder "3.6";
 
   src = fetchFromGitHub {
     owner = "jborean93";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-nSWZfhZD++I5hM2ijqft2U95kyEe3h/nrSfiT3sQiKE=";
+    sha256 = "sha256-4nhgt9/LgoGucNehZkgs4XcneCq+fihWQHtwMbuSp2s=";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/snitun/default.nix b/nixpkgs/pkgs/development/python-modules/snitun/default.nix
index f09876eadb16..293b8069b58f 100644
--- a/nixpkgs/pkgs/development/python-modules/snitun/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/snitun/default.nix
@@ -11,13 +11,13 @@
 
 buildPythonPackage rec {
   pname = "snitun";
-  version = "0.27.0";
+  version = "0.30.0";
 
   src = fetchFromGitHub {
     owner = "NabuCasa";
     repo = pname;
     rev = version;
-    sha256 = "sha256-vx9F+Nat69Yadd+YpsnBCstnxCEICFJI14TdG6PvstI=";
+    sha256 = "sha256-IjdgxX6ed9IWMFaMXIXQWZWoODrZBzXtMAcMOIhPFVQ=";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/snowflake-connector-python/default.nix b/nixpkgs/pkgs/development/python-modules/snowflake-connector-python/default.nix
index 0b0c961e7d09..e0f6c1b14d19 100644
--- a/nixpkgs/pkgs/development/python-modules/snowflake-connector-python/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/snowflake-connector-python/default.nix
@@ -24,12 +24,12 @@
 
 buildPythonPackage rec {
   pname = "snowflake-connector-python";
-  version = "2.5.1";
+  version = "2.6.1";
   disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "8af2a51ac890d9e0ffe0cd509ba83198076e2564fb8fdc63c6814b773e70b33a";
+    sha256 = "dbe6f7d84debd27b117e17fdb280be27695cf6ae54009c49495584d1b7776d1b";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/snowflake-sqlalchemy/default.nix b/nixpkgs/pkgs/development/python-modules/snowflake-sqlalchemy/default.nix
index fd3385e858c5..1433ee1185f4 100644
--- a/nixpkgs/pkgs/development/python-modules/snowflake-sqlalchemy/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/snowflake-sqlalchemy/default.nix
@@ -7,11 +7,11 @@
 
 buildPythonPackage rec {
   pname = "snowflake-sqlalchemy";
-  version = "1.3.1";
+  version = "1.3.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "f7c220db11c1abf3df67177fbcf0ea58d33d8531963f2d5df5f09fdac09b912f";
+    sha256 = "51d9d923ebbfefe392582f6e3d0faa83f52e5eb6f190607820e055318dd2d2f8";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/snscrape/default.nix b/nixpkgs/pkgs/development/python-modules/snscrape/default.nix
index a8f565aa3533..98933759f0bb 100644
--- a/nixpkgs/pkgs/development/python-modules/snscrape/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/snscrape/default.nix
@@ -1,33 +1,48 @@
 { lib
+, beautifulsoup4
 , buildPythonPackage
-, isPy3k
-, fetchPypi
-, setuptools-scm
-, setuptools
-, requests
+, fetchFromGitHub
 , lxml
-, beautifulsoup4
+, pythonOlder
+, pytz
+, requests
+, setuptools-scm
 }:
 
 buildPythonPackage rec {
   pname = "snscrape";
-  version = "0.3.4";
+  version = "unstable-2021-08-30";
 
-  disabled = !isPy3k;
+  disabled = pythonOlder "3.8";
 
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "36ba7f95c8bf5202749189f760e591952f19c849379c35ff598aafafe5d0cfef";
+  src = fetchFromGitHub {
+    owner = "JustAnotherArchivist";
+    repo = pname;
+    rev = "c76f1637ce1d7a154af83495b67ead2559cd5715";
+    sha256 = "01x4961fxj1p98y6fcyxw5sv8fa87x41fdx9p31is12bdkmqxi6v";
   };
 
+  SETUPTOOLS_SCM_PRETEND_VERSION = version;
+
+  nativeBuildInputs = [
+    setuptools-scm
+  ];
+
+  propagatedBuildInputs = [
+    beautifulsoup4
+    lxml
+    requests
+  ] ++ lib.optionals (pythonOlder "3.9") [
+    pytz
+  ];
+
   # There are no tests; make sure the executable works.
   checkPhase = ''
     export PATH=$PATH:$out/bin
     snscrape --help
   '';
 
-  nativeBuildInputs = [ setuptools-scm ];
-  propagatedBuildInputs = [ setuptools requests lxml beautifulsoup4 ];
+  pythonImportsCheck = [ "snscrape" ];
 
   meta = with lib; {
     homepage = "https://github.com/JustAnotherArchivist/snscrape";
diff --git a/nixpkgs/pkgs/development/python-modules/soco/default.nix b/nixpkgs/pkgs/development/python-modules/soco/default.nix
index 2360cc81e39a..624ef4e30fc9 100644
--- a/nixpkgs/pkgs/development/python-modules/soco/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/soco/default.nix
@@ -14,14 +14,14 @@
 
 buildPythonPackage rec {
   pname = "soco";
-  version = "0.23.3";
+  version = "0.24.0";
   disabled = pythonOlder "3.6";
 
   src = fetchFromGitHub {
     owner = "SoCo";
     repo = "SoCo";
     rev = "v${version}";
-    sha256 = "sha256-T6gDImH/HfHg8e1YzUYB8zr2GJHRtF6vdYm2cSiXSb0=";
+    sha256 = "sha256-3VL2JFlukfQdjTP65X40OOsuCUVsY9kuvRKUZ3qEd+s=";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/sopel/default.nix b/nixpkgs/pkgs/development/python-modules/sopel/default.nix
index d4052d8b12c8..ec4947ebfc45 100644
--- a/nixpkgs/pkgs/development/python-modules/sopel/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/sopel/default.nix
@@ -13,12 +13,12 @@
 
 buildPythonPackage rec {
   pname = "sopel";
-  version = "7.1.3";
+  version = "7.1.4";
   disabled = isPyPy;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0f9e673a7eac9dd3619c2e398e58fa2d8117afca5adb550ba07c66e16a90dbdb";
+    sha256 = "d778ec2b92866eddf97d0809968bc5f9887cb5a000a518a4b67d8eb999cb775c";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/spacy/default.nix b/nixpkgs/pkgs/development/python-modules/spacy/default.nix
index 3cabc1d6ba20..376686e0a6e5 100644
--- a/nixpkgs/pkgs/development/python-modules/spacy/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/spacy/default.nix
@@ -78,6 +78,6 @@ buildPythonPackage rec {
     description = "Industrial-strength Natural Language Processing (NLP) with Python and Cython";
     homepage = "https://github.com/explosion/spaCy";
     license = licenses.mit;
-    maintainers = with maintainers; [ sdll ];
+    maintainers = with maintainers; [ ];
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/spacy/legacy.nix b/nixpkgs/pkgs/development/python-modules/spacy/legacy.nix
index f8b011d83ccf..9bb37e9beb18 100644
--- a/nixpkgs/pkgs/development/python-modules/spacy/legacy.nix
+++ b/nixpkgs/pkgs/development/python-modules/spacy/legacy.nix
@@ -6,11 +6,11 @@
 
 buildPythonPackage rec {
   pname = "spacy-legacy";
-  version = "3.0.5";
+  version = "3.0.8";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-Uy94rjFllSj622RTzd6UJaQmIniCw4gpeq/X57QcIpA=";
+    sha256 = "b4725c5c161f0685ab4fce3fc912bc68aefdb7e102ba9848e852bb5842256c2f";
   };
 
   # checkInputs = [ pytestCheckHook spacy ];
diff --git a/nixpkgs/pkgs/development/python-modules/sphinx-argparse/default.nix b/nixpkgs/pkgs/development/python-modules/sphinx-argparse/default.nix
index 3f1a80c3c97b..bd7197b2bf2b 100644
--- a/nixpkgs/pkgs/development/python-modules/sphinx-argparse/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/sphinx-argparse/default.nix
@@ -7,11 +7,11 @@
 
 buildPythonPackage rec {
   pname = "sphinx-argparse";
-  version = "0.2.5";
+  version = "0.3.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "05wc8f5hb3jsg2vh2jf7jsyan8d4i09ifrz2c8fp6f7x1zw9iav0";
+    sha256 = "82151cbd43ccec94a1530155f4ad34f251aaca6a0ffd5516d7fadf952d32dc1e";
   };
 
   checkInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/sphinx/default.nix b/nixpkgs/pkgs/development/python-modules/sphinx/default.nix
index d37ccd3e4489..a04a0585019f 100644
--- a/nixpkgs/pkgs/development/python-modules/sphinx/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/sphinx/default.nix
@@ -2,6 +2,7 @@
 , buildPythonPackage
 , pythonOlder
 , fetchFromGitHub
+, fetchpatch
 # propagatedBuildInputs
 , Babel
 , alabaster
@@ -22,7 +23,6 @@
 , sphinxcontrib-websupport
 # check phase
 , html5lib
-, imagemagick
 , pytestCheckHook
 , typed-ast
 }:
@@ -39,6 +39,14 @@ buildPythonPackage rec {
     sha256 = "sha256-0QdgHFX4r40BDHjpi9R40lXqT4n5ZgrIny+w070LZPE=";
   };
 
+  patches = [
+    (fetchpatch {
+      # Fix tests with pygments 2.10
+      url = "https://github.com/sphinx-doc/sphinx/commit/bde6c8d2effc56dc8b9098abee796167f972c306.patch";
+      sha256 = "0d0ddhgrrh7z9ix0f3zrc2gjb4d73f6ffm98zl62fzv5l4fd00lr";
+    })
+  ];
+
   propagatedBuildInputs = [
     Babel
     alabaster
@@ -61,7 +69,6 @@ buildPythonPackage rec {
   ];
 
   checkInputs = [
-    imagemagick
     html5lib
     pytestCheckHook
   ] ++ lib.optionals (pythonOlder "3.8") [
@@ -74,6 +81,10 @@ buildPythonPackage rec {
     "test_defaults"
     "test_defaults_json"
     "test_latex_images"
+
+    # requires imagemagick (increases build closure size), doesn't
+    # test anything substantial
+    "test_ext_imgconverter"
   ];
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/development/python-modules/sphinxcontrib-autoapi/default.nix b/nixpkgs/pkgs/development/python-modules/sphinxcontrib-autoapi/default.nix
index 484b692f69f8..9f72e6f3d64f 100644
--- a/nixpkgs/pkgs/development/python-modules/sphinxcontrib-autoapi/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/sphinxcontrib-autoapi/default.nix
@@ -13,12 +13,12 @@
 
 buildPythonPackage rec {
   pname = "sphinx-autoapi";
-  version = "1.8.1";
+  version = "1.8.4";
   disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "842c0a8f49c824803f7edee31cb1cabd5001a987553bec7b4681283ec9e47d4a";
+    sha256 = "8c4ec5fbedc1e6e8f4692bcc4fcd1abcfb9e8dfca8a4ded60ad811a743c22ccc";
   };
 
   propagatedBuildInputs = [ astroid jinja2 pyyaml sphinx unidecode ];
diff --git a/nixpkgs/pkgs/development/python-modules/sphinxcontrib-htmlhelp/default.nix b/nixpkgs/pkgs/development/python-modules/sphinxcontrib-htmlhelp/default.nix
index 8ca631a2b3c9..4efdb2633f28 100644
--- a/nixpkgs/pkgs/development/python-modules/sphinxcontrib-htmlhelp/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/sphinxcontrib-htmlhelp/default.nix
@@ -6,12 +6,12 @@
 
 buildPythonPackage rec {
   pname = "sphinxcontrib-htmlhelp";
-  version = "1.0.3";
+  version = "2.0.0";
   disabled = isPy27;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "e8f5bb7e31b2dbb25b9cc435c8ab7a79787ebf7f906155729338f3156d93659b";
+    sha256 = "f5f8bb2d0d629f398bf47d0d69c07bc13b65f75a81ad9e2f71a63d4b7a2f6db2";
   };
 
 
diff --git a/nixpkgs/pkgs/development/python-modules/sphinxcontrib-tikz/binary-paths.patch b/nixpkgs/pkgs/development/python-modules/sphinxcontrib-tikz/binary-paths.patch
deleted file mode 100644
index 847a6e076918..000000000000
--- a/nixpkgs/pkgs/development/python-modules/sphinxcontrib-tikz/binary-paths.patch
+++ /dev/null
@@ -1,22 +0,0 @@
-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/nixpkgs/pkgs/development/python-modules/sphinxcontrib-tikz/default.nix b/nixpkgs/pkgs/development/python-modules/sphinxcontrib-tikz/default.nix
index 19f386d7d278..cc5412fe42ff 100644
--- a/nixpkgs/pkgs/development/python-modules/sphinxcontrib-tikz/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/sphinxcontrib-tikz/default.nix
@@ -9,19 +9,18 @@
 
 buildPythonPackage rec {
   pname = "sphinxcontrib-tikz";
-  version = "0.4.13";
+  version = "0.4.14";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "882e3ccfa202559bf77b90c93ee5eb13ec50cdd7714b3673dc6580dea7236740";
+    sha256 = "1614a45c960b80009dd42f96689122c9c0781018a0c5ec5828f4cdc5e35b11ad";
   };
 
-  patches = [
-    (substituteAll {
-      src = ./binary-paths.patch;
-      inherit texLive pdf2svg;
-    })
-  ];
+  postPatch = ''
+    substituteInPlace sphinxcontrib/tikz.py \
+      --replace "config.latex_engine" "${texLive}/bin/pdflatex" \
+      --replace "system(['pdf2svg'" "system(['${pdf2svg}/bin/pdf2svg'"
+  '';
 
   propagatedBuildInputs = [ sphinx ];
 
diff --git a/nixpkgs/pkgs/development/python-modules/sphinxcontrib_httpdomain/default.nix b/nixpkgs/pkgs/development/python-modules/sphinxcontrib_httpdomain/default.nix
index 21ada23d47f4..75e6dc8a61b2 100644
--- a/nixpkgs/pkgs/development/python-modules/sphinxcontrib_httpdomain/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/sphinxcontrib_httpdomain/default.nix
@@ -6,11 +6,11 @@
 
 buildPythonPackage rec {
   pname = "sphinxcontrib-httpdomain";
-  version = "1.7.0";
+  version = "1.8.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "ac40b4fba58c76b073b03931c7b8ead611066a6aebccafb34dc19694f4eb6335";
+    sha256 = "2059cfabd0cca8fcc3455cc8ffad92f0915a7d3bb03bfddba078a6a0f35beec5";
   };
 
   propagatedBuildInputs = [ sphinx ];
diff --git a/nixpkgs/pkgs/development/python-modules/spyder-kernels/default.nix b/nixpkgs/pkgs/development/python-modules/spyder-kernels/default.nix
index fa29236563e4..5ce41d8d7575 100644
--- a/nixpkgs/pkgs/development/python-modules/spyder-kernels/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/spyder-kernels/default.nix
@@ -3,11 +3,11 @@
 
 buildPythonPackage rec {
   pname = "spyder-kernels";
-  version = "1.10.3";
+  version = "2.1.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "cecb0ca0115a42bab864c199a737c859a8534a510fc7edfa33dc42abcbb5287f";
+    sha256 = "6c287207c7855bb581eae66ef8d990407382d5f9caccb1e0cabf909aaaf10c9b";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/spyder/default.nix b/nixpkgs/pkgs/development/python-modules/spyder/default.nix
index 5aaf4cb4a757..dbe54d52e3a9 100644
--- a/nixpkgs/pkgs/development/python-modules/spyder/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/spyder/default.nix
@@ -8,13 +8,13 @@
 
 buildPythonPackage rec {
   pname = "spyder";
-  version = "4.2.5";
+  version = "5.1.1";
 
   disabled = isPy27;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "03159003f6ea51458e10000091e65e77888b095dba48e64ca2b36c75a648580c";
+    sha256 = "6551acfd6fedfebd1f938ef67d3db415b33540f8377e7de3f4d4a2a11dd1b915";
   };
 
   nativeBuildInputs = [ pyqtwebengine.wrapQtAppsHook ];
diff --git a/nixpkgs/pkgs/development/python-modules/sqlalchemy/default.nix b/nixpkgs/pkgs/development/python-modules/sqlalchemy/default.nix
index 37e89abf8da9..819f29497246 100644
--- a/nixpkgs/pkgs/development/python-modules/sqlalchemy/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/sqlalchemy/default.nix
@@ -13,11 +13,11 @@
 
 buildPythonPackage rec {
   pname = "SQLAlchemy";
-  version = "1.4.22";
+  version = "1.4.23";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-7BvibNzNYNGANZpSfVmA2VmiYmmix7GzJ6HuoMqzftg=";
+    sha256 = "sha256-dv8kaIH1KAib8ZOFExuWYZe7SUZTmQOW0s4TjipEdYM=";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/sqlite-utils/default.nix b/nixpkgs/pkgs/development/python-modules/sqlite-utils/default.nix
index 35f7d7c07c98..8f5f7fd619c5 100644
--- a/nixpkgs/pkgs/development/python-modules/sqlite-utils/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/sqlite-utils/default.nix
@@ -4,36 +4,38 @@
 , pythonOlder
 , click
 , click-default-group
+, dateutils
 , sqlite-fts4
 , tabulate
 , pytestCheckHook
-, pytest-runner
-, black
 , hypothesis
-, sqlite
 }:
 
 buildPythonPackage rec {
   pname = "sqlite-utils";
-  version = "3.9.1";
+  version = "3.17";
   disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "a08ed62eb269e26ae9c35b9be9cd3d395b0522157e6543128a40cc5302d8aa81";
+    sha256 = "77acd202aa568a1f6888c5d8879f306bb3f8acedc82df0df98eb615caa491abb";
   };
 
+  postPatch = ''
+    substituteInPlace setup.py \
+      --replace '"pytest-runner"' ""
+  '';
+
   propagatedBuildInputs = [
     click
     click-default-group
+    dateutils
     sqlite-fts4
     tabulate
   ];
 
   checkInputs = [
     pytestCheckHook
-    pytest-runner
-    black
     hypothesis
   ];
 
@@ -43,5 +45,4 @@ buildPythonPackage rec {
     license = licenses.asl20;
     maintainers = with maintainers; [ meatcar ];
   };
-
 }
diff --git a/nixpkgs/pkgs/development/python-modules/ssdp/default.nix b/nixpkgs/pkgs/development/python-modules/ssdp/default.nix
index ac39cffa393e..bd73a6abaead 100644
--- a/nixpkgs/pkgs/development/python-modules/ssdp/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/ssdp/default.nix
@@ -1,31 +1,51 @@
 { lib
 , buildPythonPackage
-, fetchPypi
-, isPy27
+, fetchFromGitHub
 , pbr
-, pytest
-, isPy3k
+, pytestCheckHook
+, pythonOlder
+, setuptools-scm
 }:
 
 buildPythonPackage rec {
   pname = "ssdp";
-  version = "1.0.1";
-  disabled = !isPy3k;
+  version = "1.1.0";
 
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "0yhjqs9jyvwmba8fi72xfi9k8pxy11wkz4iywayrg71ka3la49bk";
+  disabled = pythonOlder "3.6";
+
+  src = fetchFromGitHub {
+    owner = "codingjoe";
+    repo = pname;
+    rev = version;
+    sha256 = "19d2b5frpq2qkfkpz173wpjk5jwhkjpk75p8q92nm8iv41nrzljy";
   };
 
-  buildInputs = [ pbr ];
-  checkInputs = [ pytest ];
+  SETUPTOOLS_SCM_PRETEND_VERSION = version;
+
+  nativeBuildInputs = [
+    setuptools-scm
+  ];
+
+  buildInputs = [
+    pbr
+  ];
+
+  checkInputs = [
+    pytestCheckHook
+  ];
+
+  postPatch = ''
+    substituteInPlace setup.cfg \
+      --replace "pytest-runner" "" \
+      --replace "--cov=ssdp" ""
+  '';
 
-  # test suite uses new async primitives
-  doCheck = !isPy27;
+  pythonImportsCheck = [ "ssdp" ];
 
   meta = with lib; {
+    description = "Python asyncio library for Simple Service Discovery Protocol (SSDP)";
     homepage = "https://github.com/codingjoe/ssdp";
-    description = "Python asyncio library for Simple Service Discovery Protocol (SSDP).";
     license = licenses.mit;
+    maintainers = with maintainers; [ fab ];
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/sseclient-py/default.nix b/nixpkgs/pkgs/development/python-modules/sseclient-py/default.nix
index 05c3fc807465..54dfdd9d9498 100644
--- a/nixpkgs/pkgs/development/python-modules/sseclient-py/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/sseclient-py/default.nix
@@ -2,13 +2,13 @@
 
 buildPythonPackage rec {
   pname = "sseclient-py";
-  version = "1.7";
+  version = "1.7.2";
 
   src = fetchFromGitHub {
     owner = "mpetazzoni";
     repo = "sseclient";
     rev = "sseclient-py-${version}";
-    sha256 = "0iar4w8gryhjzqwy5k95q9gsv6xpmnwxkpz33418nw8hxlp86wfl";
+    sha256 = "096spyv50jir81xiwkg9l88ycp1897d3443r6gi1by8nkp4chvix";
   };
 
   # based on tox.ini
diff --git a/nixpkgs/pkgs/development/python-modules/starlette/default.nix b/nixpkgs/pkgs/development/python-modules/starlette/default.nix
index 3079b60564f1..e8c130692125 100644
--- a/nixpkgs/pkgs/development/python-modules/starlette/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/starlette/default.nix
@@ -4,6 +4,8 @@
 , fetchFromGitHub
 , isPy27
 , aiofiles
+, anyio
+, contextlib2
 , graphene
 , itsdangerous
 , jinja2
@@ -12,22 +14,24 @@
 , requests
 , aiosqlite
 , databases
-, pytestCheckHook
 , pytest-asyncio
+, pytestCheckHook
+, pythonOlder
+, trio
 , typing-extensions
 , ApplicationServices
 }:
 
 buildPythonPackage rec {
   pname = "starlette";
-  version = "0.14.2";
-  disabled = isPy27;
+  version = "0.16.0";
+  disabled = pythonOlder "3.6";
 
   src = fetchFromGitHub {
     owner = "encode";
     repo = pname;
     rev = version;
-    sha256 = "0fz28czvwiww693ig9vwdja59xxs7m0yp1df32ms1hzr99666bia";
+    sha256 = "sha256-/NYhRRZdi6I7CtLCohAqK4prsSUayOxa6sBKIJhPv+w=";
   };
 
   postPatch = ''
@@ -37,19 +41,27 @@ buildPythonPackage rec {
 
   propagatedBuildInputs = [
     aiofiles
+    anyio
     graphene
     itsdangerous
     jinja2
     python-multipart
     pyyaml
     requests
-  ] ++ lib.optional stdenv.isDarwin [ ApplicationServices ];
+  ] ++ lib.optionals (pythonOlder "3.8") [
+    typing-extensions
+  ] ++ lib.optionals (pythonOlder "3.7") [
+    contextlib2
+  ] ++ lib.optional stdenv.isDarwin [
+    ApplicationServices
+  ];
 
   checkInputs = [
     aiosqlite
     databases
     pytest-asyncio
     pytestCheckHook
+    trio
     typing-extensions
   ];
 
@@ -57,8 +69,12 @@ buildPythonPackage rec {
     # fails to import graphql, but integrated graphql support is about to
     # be removed in 0.15, see https://github.com/encode/starlette/pull/1135.
     "tests/test_graphql.py"
-    # contextfunction was removed in Jinja 3.1
-    "tests/test_templates.py"
+  ];
+
+  disabledTests = [
+    # asserts fail due to inclusion of br in Accept-Encoding
+    "test_websocket_headers"
+    "test_request_headers"
   ];
 
   pythonImportsCheck = [ "starlette" ];
diff --git a/nixpkgs/pkgs/development/python-modules/stdlib-list/default.nix b/nixpkgs/pkgs/development/python-modules/stdlib-list/default.nix
new file mode 100644
index 000000000000..d654d2588066
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/stdlib-list/default.nix
@@ -0,0 +1,32 @@
+{ lib
+, buildPythonPackage
+, isPy27
+, fetchPypi
+, python
+}:
+
+buildPythonPackage rec {
+  pname = "stdlib-list";
+  version = "0.8.0";
+  format = "setuptools";
+  disabled = isPy27;
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "17vdn4q0sdlndc2fr9svapxx6366hnrhkn0fswp1xmr0jxqh7rd1";
+  };
+
+  pythonImportsCheck = [
+    "stdlib_list"
+  ];
+
+  # tests see mismatches to our standard library
+  doCheck = false;
+
+  meta = with lib; {
+    description = "A list of Python Standard Libraries";
+    homepage = "https://github.com/jackmaney/python-stdlib-list";
+    license = licenses.mit;
+    maintainers = with maintainers; [ hexa ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/stestr/default.nix b/nixpkgs/pkgs/development/python-modules/stestr/default.nix
index 88259dc718e1..1e5f965a8026 100644
--- a/nixpkgs/pkgs/development/python-modules/stestr/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/stestr/default.nix
@@ -40,7 +40,7 @@ buildPythonPackage rec {
   doCheck = false;
 
   passthru.tests = {
-    pytest = callPackage ./tests.nix { };
+    tests = callPackage ./tests.nix { };
   };
 
   pythonImportsCheck = [ "stestr" ];
diff --git a/nixpkgs/pkgs/development/python-modules/streamlabswater/default.nix b/nixpkgs/pkgs/development/python-modules/streamlabswater/default.nix
new file mode 100644
index 000000000000..fc90ea222c77
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/streamlabswater/default.nix
@@ -0,0 +1,37 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, pythonOlder
+, requests
+}:
+
+buildPythonPackage rec {
+  pname = "streamlabswater";
+  version = "0.3.2";
+  format = "setuptools";
+
+  disabled = pythonOlder "3.6";
+
+  src = fetchFromGitHub {
+    owner = pname;
+    repo = "stream-python";
+    rev = "v${version}";
+    sha256 = "1lh1i1ksic9yhxnwc7mqm5qla98x85dfwj846kwldwam0vcrqlk7";
+  };
+
+  propagatedBuildInputs = [
+    requests
+  ];
+
+  # Project has no tests
+  doCheck = false;
+
+  pythonImportsCheck = [ "streamlabswater" ];
+
+  meta = with lib; {
+    description = "Python library for the StreamLabs API";
+    homepage = "https://github.com/streamlabswater/stream-python";
+    license = with licenses; [ mit ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/sure/default.nix b/nixpkgs/pkgs/development/python-modules/sure/default.nix
index ee21e9c45168..b8bb9a36586a 100644
--- a/nixpkgs/pkgs/development/python-modules/sure/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/sure/default.nix
@@ -9,12 +9,12 @@
 
 buildPythonPackage rec {
   pname = "sure";
-  version = "1.4.11";
+  version = "2.0.0";
   disabled = isPyPy;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "3c8d5271fb18e2c69e2613af1ad400d8df090f1456081635bd3171847303cdaa";
+    sha256 = "34ae88c846046742ef074036bf311dc90ab152b7bc09c342b281cebf676727a2";
   };
 
   buildInputs = [ rednose ];
diff --git a/nixpkgs/pkgs/development/python-modules/symengine/default.nix b/nixpkgs/pkgs/development/python-modules/symengine/default.nix
index c20f2338fa2a..673e2682660b 100644
--- a/nixpkgs/pkgs/development/python-modules/symengine/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/symengine/default.nix
@@ -11,18 +11,19 @@
 
 buildPythonPackage rec {
   pname = "symengine";
-  version = "0.7.2";
+  version = "0.8.1";
 
   src = fetchFromGitHub {
     owner = "symengine";
     repo = "symengine.py";
     rev = "v${version}";
-    sha256 = "1xaclpvk7m6mbp70zrsvi3blz4v89pbsf7b6rpmx5903m6kxqr4m";
+    sha256 = "0yyi3w03fk19i32jmns1baq3rpmf7xfykzkivc7dmnxmjmxvq2gr";
   };
 
   postConfigure = ''
     substituteInPlace setup.py \
-      --replace "\"cmake\"" "\"${cmake}/bin/cmake\""
+      --replace "\"cmake\"" "\"${cmake}/bin/cmake\"" \
+      --replace "'cython>=0.29.24'" "'cython'"
 
     substituteInPlace cmake/FindCython.cmake \
       --replace "SET(CYTHON_BIN cython" "SET(CYTHON_BIN ${cython}/bin/cython"
diff --git a/nixpkgs/pkgs/development/python-modules/tableaudocumentapi/default.nix b/nixpkgs/pkgs/development/python-modules/tableaudocumentapi/default.nix
index 5260a678e8c7..56a3b27e7b96 100644
--- a/nixpkgs/pkgs/development/python-modules/tableaudocumentapi/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/tableaudocumentapi/default.nix
@@ -5,11 +5,11 @@
 
 buildPythonPackage rec {
   pname = "tableaudocumentapi";
-  version = "0.6";
+  version = "0.7";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "fc6d44b62cf6ea29916c073686e2f9f35c9902eccd57b8493f8d44a59a2f60d9";
+    sha256 = "5b1d04817a0fba43d58e1ce23c64ad8dfe54dc029ba5ccae3908944555bb13e0";
   };
 
   # tests not inclued with release
diff --git a/nixpkgs/pkgs/development/python-modules/tasklib/default.nix b/nixpkgs/pkgs/development/python-modules/tasklib/default.nix
index 591f4cdabe96..8cb2a2f0278d 100644
--- a/nixpkgs/pkgs/development/python-modules/tasklib/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/tasklib/default.nix
@@ -8,11 +8,11 @@ wsl_stub = writeShellScriptBin "wsl" "true";
 
 in buildPythonPackage rec {
   pname = "tasklib";
-  version = "2.3.0";
+  version = "2.4.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "7fe8676acb4559129c4e958be7704c12dccdbae302fff47c5398bc0dd1c9e563";
+    sha256 = "3645594147107c92780e19ac437f09eb8b8eac950209fb92d3f71869a721234e";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/tempest/default.nix b/nixpkgs/pkgs/development/python-modules/tempest/default.nix
new file mode 100644
index 000000000000..c85e4f5b29fe
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/tempest/default.nix
@@ -0,0 +1,89 @@
+{ lib
+, buildPythonApplication
+, fetchPypi
+, pbr
+, cliff
+, jsonschema
+, testtools
+, paramiko
+, netaddr
+, oslo-concurrency
+, oslo-config
+, oslo-log
+, stestr
+, oslo-serialization
+, oslo-utils
+, fixtures
+, pyyaml
+, subunit
+, stevedore
+, prettytable
+, urllib3
+, debtcollector
+, unittest2
+, hacking
+, oslotest
+, bash
+, python3
+}:
+
+buildPythonApplication rec {
+  pname = "tempest";
+  version = "29.0.0";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "2045963560f91241c56940af741f081e59212c65c9867dfcdabfe07f9dd4d255";
+  };
+
+  propagatedBuildInputs = [
+    pbr
+    cliff
+    jsonschema
+    testtools
+    paramiko
+    netaddr
+    oslo-concurrency
+    oslo-config
+    oslo-log
+    stestr
+    oslo-serialization
+    oslo-utils
+    fixtures
+    pyyaml
+    subunit
+    stevedore
+    prettytable
+    urllib3
+    debtcollector
+    unittest2
+  ];
+
+  checkInputs = [
+    stestr
+    hacking
+    oslotest
+  ];
+
+  checkPhase = ''
+    # Tests expect these applications available as such.
+    mkdir -p bin
+    export PATH="$PWD/bin:$PATH"
+    printf '#!${bash}/bin/bash\nexec ${python3.interpreter} -m tempest.cmd.main "$@"\n' > bin/tempest
+    printf '#!${bash}/bin/bash\nexec ${python3.interpreter} -m tempest.cmd.subunit_describe_calls "$@"\n' > bin/subunit-describe-calls
+    chmod +x bin/*
+
+    stestr --test-path tempest/tests run -e <(echo "
+      tempest.tests.lib.cli.test_execute.TestExecute.test_execute_with_prefix
+    ")
+  '';
+
+  pythonImportsCheck = [ "tempest" ];
+
+  meta = with lib; {
+    description = "An OpenStack integration test suite that runs against live OpenStack cluster and validates an OpenStack deployment";
+    homepage = "https://github.com/openstack/tempest";
+    license = licenses.asl20;
+    maintainers = teams.openstack.members;
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/tempora/default.nix b/nixpkgs/pkgs/development/python-modules/tempora/default.nix
index 8da8d622a7b3..7bd7605fc3ff 100644
--- a/nixpkgs/pkgs/development/python-modules/tempora/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/tempora/default.nix
@@ -6,11 +6,11 @@
 
 buildPythonPackage rec {
   pname = "tempora";
-  version = "4.0.2";
+  version = "4.1.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "10fdc29bf85fa0df39a230a225bb6d093982fc0825b648a414bbc06bddd79909";
+    sha256 = "c54da0f05405f04eb67abbb1dff4448fd91428b58cb00f0f645ea36f6a927950";
   };
 
   disabled = pythonOlder "3.2";
diff --git a/nixpkgs/pkgs/development/python-modules/tensorboard-plugin-profile/default.nix b/nixpkgs/pkgs/development/python-modules/tensorboard-plugin-profile/default.nix
index 1ae1aa471be5..843b9d6c3199 100644
--- a/nixpkgs/pkgs/development/python-modules/tensorboard-plugin-profile/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/tensorboard-plugin-profile/default.nix
@@ -6,14 +6,15 @@
 
 buildPythonPackage rec {
   pname = "tensorboard_plugin_profile";
-  version = "2.4.0";
+  version = "2.5.0";
   format = "wheel";
 
   src = fetchPypi {
     inherit pname version;
     format = "wheel";
+    dist = "py3";
     python = "py3";
-    sha256 = "0z6dcjvkk3pzmmmjxi2ybawnfshz5qa3ga92kqj69ld1g9k3i9bj";
+    sha256 = "16jch9py98h7wrffdiz6j0i3kdykxdp5m0kfxr1fxy2phqanpjqk";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/terminado/default.nix b/nixpkgs/pkgs/development/python-modules/terminado/default.nix
index 27c159349b0a..aff355d963ce 100644
--- a/nixpkgs/pkgs/development/python-modules/terminado/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/terminado/default.nix
@@ -7,11 +7,11 @@
 
 buildPythonPackage rec {
   pname = "terminado";
-  version = "0.10.1";
+  version = "0.11.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "89d5dac2f4e2b39758a0ff9a3b643707c95a020a6df36e70583b88297cd59cbe";
+    sha256 = "962b402edbb480718054dc37027bada293972ecadfb587b89f01e2b8660a2132";
   };
 
   propagatedBuildInputs = [ ptyprocess tornado ];
diff --git a/nixpkgs/pkgs/development/python-modules/termplotlib/default.nix b/nixpkgs/pkgs/development/python-modules/termplotlib/default.nix
index dae40dcb993a..492d51dcb2ca 100644
--- a/nixpkgs/pkgs/development/python-modules/termplotlib/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/termplotlib/default.nix
@@ -9,13 +9,13 @@
 
 buildPythonPackage rec {
   pname = "termplotlib";
-  version = "0.3.5";
+  version = "0.3.8";
 
   src = fetchFromGitHub {
     owner = "nschloe";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1z6bw6lkbrgjyq3ndsx20gwpai4scm1q9rjh4rdz0rvja4jdcv3z";
+    sha256 = "10k70pb7554cc2zwkcgxfak8nb7iqqw6njbnaqfdz07l4v9f6smm";
   };
 
   format = "pyproject";
diff --git a/nixpkgs/pkgs/development/python-modules/tern/default.nix b/nixpkgs/pkgs/development/python-modules/tern/default.nix
index 0468ee6f84b1..b8aee5ab9315 100644
--- a/nixpkgs/pkgs/development/python-modules/tern/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/tern/default.nix
@@ -16,11 +16,11 @@
 
 buildPythonPackage rec {
   pname = "tern";
-  version = "2.6.1";
+  version = "2.7.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "749c18ef493ebe3ac28624b2b26c6e38f77de2afd6a6579d2c92393d8fbdbd46";
+    sha256 = "cfd59431cafd6adf05ccb94be964098d9301f83a03bf715def7861811e4a4b74";
   };
 
   preBuild = ''
diff --git a/nixpkgs/pkgs/development/python-modules/teslajsonpy/default.nix b/nixpkgs/pkgs/development/python-modules/teslajsonpy/default.nix
index 750b070804c3..d66ce20d697e 100644
--- a/nixpkgs/pkgs/development/python-modules/teslajsonpy/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/teslajsonpy/default.nix
@@ -14,14 +14,14 @@
 
 buildPythonPackage rec {
   pname = "teslajsonpy";
-  version = "0.18.3";
+  version = "0.21.0";
   format = "pyproject";
 
   src = fetchFromGitHub {
     owner = "zabuldon";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1hdc5gm6dg1vw6qfs3z6mg2m94scrvjphj0lin6pi8n3zqj1h26k";
+    sha256 = "1rwp3aag21hdkis2wx680ckja0203grm7naldaj8d2kpy4697m54";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/testtools/default.nix b/nixpkgs/pkgs/development/python-modules/testtools/default.nix
index 8ef3d9c4320f..a07117a1e46d 100644
--- a/nixpkgs/pkgs/development/python-modules/testtools/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/testtools/default.nix
@@ -11,11 +11,11 @@
 
 buildPythonPackage rec {
   pname = "testtools";
-  version = "2.4.0";
+  version = "2.5.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "64c974a6cca4385d05f4bbfa2deca1c39ce88ede31c3448bee86a7259a9a61c8";
+    sha256 = "57c13433d94f9ffde3be6534177d10fb0c1507cc499319128958ca91a65cb23f";
   };
 
   propagatedBuildInputs = [ pbr python_mimeparse extras unittest2 ];
diff --git a/nixpkgs/pkgs/development/python-modules/texttable/default.nix b/nixpkgs/pkgs/development/python-modules/texttable/default.nix
index a8c6d9dcfda8..b104bd845962 100644
--- a/nixpkgs/pkgs/development/python-modules/texttable/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/texttable/default.nix
@@ -5,11 +5,11 @@
 
 buildPythonPackage rec {
   pname = "texttable";
-  version = "1.6.3";
+  version = "1.6.4";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "ce0faf21aa77d806bbff22b107cc22cce68dc9438f97a2df32c93e9afa4ce436";
+    sha256 = "42ee7b9e15f7b225747c3fa08f43c5d6c83bc899f80ff9bae9319334824076e9";
   };
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/development/python-modules/thinc/default.nix b/nixpkgs/pkgs/development/python-modules/thinc/default.nix
index 4aac0d756d46..6ad29d5736d6 100644
--- a/nixpkgs/pkgs/development/python-modules/thinc/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/thinc/default.nix
@@ -78,6 +78,6 @@ buildPythonPackage rec {
     description = "Practical Machine Learning for NLP in Python";
     homepage = "https://github.com/explosion/thinc";
     license = licenses.mit;
-    maintainers = with maintainers; [ aborsu sdll ];
+    maintainers = with maintainers; [ aborsu ];
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/thriftpy2/default.nix b/nixpkgs/pkgs/development/python-modules/thriftpy2/default.nix
new file mode 100644
index 000000000000..0d5f5afe4a5c
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/thriftpy2/default.nix
@@ -0,0 +1,45 @@
+{ lib
+, buildPythonPackage
+, cython
+, fetchFromGitHub
+, pythonOlder
+, ply
+, six
+, tornado
+}:
+
+buildPythonPackage rec {
+  pname = "thriftpy2";
+  version = "0.4.14";
+
+  disabled = pythonOlder "3.6";
+
+  src = fetchFromGitHub {
+    owner = "Thriftpy";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "17f57vsbym4c9yax128bhrwg2zjxcsgl3ja6422y8hyb38v5mdc3";
+  };
+
+  nativeBuildInputs = [
+    cython
+  ];
+
+  propagatedBuildInputs = [
+    ply
+    six
+    tornado
+  ];
+
+  # Not all needed files seems to be present
+  doCheck = false;
+
+  pythonImportsCheck = [ "thriftpy2" ];
+
+  meta = with lib; {
+    description = "Python module for Apache Thrift";
+    homepage = "https://github.com/Thriftpy/thriftpy2";
+    license = licenses.mit;
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/tifffile/default.nix b/nixpkgs/pkgs/development/python-modules/tifffile/default.nix
index 40654366ea21..236f3443ca6b 100644
--- a/nixpkgs/pkgs/development/python-modules/tifffile/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/tifffile/default.nix
@@ -13,11 +13,11 @@
 
 buildPythonPackage rec {
   pname = "tifffile";
-  version = "2021.6.14";
+  version = "2021.8.8";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "a2f83d82800a8d83cbd04340f9d65a6873a970874947a6b823b1b1238e84cba6";
+    sha256 = "8260f31c4700143e8374ff6cde5cef7fe54fc9b7313afe88329f407881901dc5";
   };
 
   patches = lib.optional isPy27 ./python2-regex-compat.patch;
diff --git a/nixpkgs/pkgs/development/python-modules/tinydb/default.nix b/nixpkgs/pkgs/development/python-modules/tinydb/default.nix
index 118317781281..958624f80935 100644
--- a/nixpkgs/pkgs/development/python-modules/tinydb/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/tinydb/default.nix
@@ -10,7 +10,7 @@
 
 buildPythonPackage rec {
   pname = "tinydb";
-  version = "4.5.1";
+  version = "4.5.2";
   disabled = pythonOlder "3.5";
   format = "pyproject";
 
@@ -18,7 +18,7 @@ buildPythonPackage rec {
     owner = "msiemens";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1p0whrljjh7cpigr1glszssxsi6adi4cj7y3976q8sj9z47bdx8a";
+    sha256 = "0gyc9rk1adw4gynwnv4kfas0hxv1cql0sm5b3fsms39088ha894l";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/tlsh/default.nix b/nixpkgs/pkgs/development/python-modules/tlsh/default.nix
index fbe474166c11..dfa7a95e3970 100644
--- a/nixpkgs/pkgs/development/python-modules/tlsh/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/tlsh/default.nix
@@ -4,15 +4,15 @@
 , cmake
 }:
 
-buildPythonPackage {
+buildPythonPackage rec {
   pname = "tlsh";
-  version = "4.5.0";
+  version = "4.10.0";
 
   src = fetchFromGitHub {
     owner = "trendmicro";
     repo = "tlsh";
-    rev = "f2bb7a97cfb0f9418a750ba92c182d1091e6c159";
-    sha256 = "1kxfhdwqjd4pjdlr1gjh2am8mxpaqmfq7rrxkjfi0mbisl1krkwb";
+    rev = version;
+    sha256 = "sha256-9Vkj7a5xU/coFyM/8i8JB0DdnbgDAEMOjmmMF8ckKuE=";
   };
 
   nativeBuildInputs = [ cmake ];
@@ -26,7 +26,7 @@ buildPythonPackage {
 
   meta = with lib; {
     description = "Trend Micro Locality Sensitive Hash";
-    homepage = "http://tlsh.org/";
+    homepage = "https://tlsh.org/";
     license = licenses.asl20;
     platforms = platforms.unix;
   };
diff --git a/nixpkgs/pkgs/development/python-modules/tomli/default.nix b/nixpkgs/pkgs/development/python-modules/tomli/default.nix
index c658339dcd9c..79cd5a4f500c 100644
--- a/nixpkgs/pkgs/development/python-modules/tomli/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/tomli/default.nix
@@ -1,9 +1,8 @@
 { lib
 , buildPythonPackage
+, callPackage
 , fetchFromGitHub
 , flit-core
-, pytestCheckHook
-, python-dateutil
 }:
 
 buildPythonPackage rec {
@@ -11,6 +10,11 @@ buildPythonPackage rec {
   version = "1.1.0";
   format = "pyproject";
 
+  outputs = [
+    "out"
+    "testsout"
+  ];
+
   src = fetchFromGitHub {
     owner = "hukkin";
     repo = pname;
@@ -20,17 +24,24 @@ buildPythonPackage rec {
 
   nativeBuildInputs = [ flit-core ];
 
-  checkInputs = [
-    pytestCheckHook
-    python-dateutil
-  ];
+  postInstall = ''
+    mkdir $testsout
+    cp -R benchmark/ pyproject.toml tests/ $testsout/
+  '';
 
   pythonImportsCheck = [ "tomli" ];
 
+  # check in passthru.tests.pytest to escape infinite recursion with setuptools-scm
+  doCheck = false;
+
+  passthru.tests = {
+    pytest = callPackage ./tests.nix { };
+  };
+
   meta = with lib; {
     description = "A Python library for parsing TOML, fully compatible with TOML v1.0.0";
     homepage = "https://github.com/hukkin/tomli";
     license = licenses.mit;
-    maintainers = with maintainers; [ veehaitch ];
+    maintainers = with maintainers; [ veehaitch SuperSandro2000 ];
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/tomli/tests.nix b/nixpkgs/pkgs/development/python-modules/tomli/tests.nix
new file mode 100644
index 000000000000..5d3d67dbd128
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/tomli/tests.nix
@@ -0,0 +1,21 @@
+{ buildPythonPackage
+, tomli
+, pytestCheckHook
+, python-dateutil
+}:
+
+buildPythonPackage rec {
+  pname = "tomli-tests";
+  inherit (tomli) version;
+
+  src = tomli.testsout;
+
+  dontBuild = true;
+  dontInstall = true;
+
+  checkInputs = [
+    pytestCheckHook
+    python-dateutil
+    tomli
+  ];
+}
diff --git a/nixpkgs/pkgs/development/python-modules/toonapi/default.nix b/nixpkgs/pkgs/development/python-modules/toonapi/default.nix
index 003670989920..8df8fa89a2ca 100644
--- a/nixpkgs/pkgs/development/python-modules/toonapi/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/toonapi/default.nix
@@ -8,13 +8,13 @@
 
 buildPythonPackage rec {
   pname = "toonapi";
-  version = "0.2.0";
+  version = "0.2.1";
 
   src = fetchFromGitHub {
     owner = "frenck";
     repo = "python-toonapi";
     rev = "v${version}";
-    sha256 = "1d4n615vlcgkvmchrfjw4h3ndav3ljmcfydxr2b41zn83mzizqdf";
+    sha256 = "10jh6p0ww51cb9f8amd9jq3lmvby6n2k08qwcr2n8ijbbgyp0ibf";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/torchvision/bin.nix b/nixpkgs/pkgs/development/python-modules/torchvision/bin.nix
index ce91599da992..a69531f2d062 100644
--- a/nixpkgs/pkgs/development/python-modules/torchvision/bin.nix
+++ b/nixpkgs/pkgs/development/python-modules/torchvision/bin.nix
@@ -15,7 +15,7 @@ let
   pyVerNoDot = builtins.replaceStrings [ "." ] [ "" ] python.pythonVersion;
   srcs = import ./binary-hashes.nix version;
   unsupported = throw "Unsupported system";
-  version = "0.9.1";
+  version = "0.10.1";
 in buildPythonPackage {
   inherit version;
 
@@ -54,6 +54,6 @@ in buildPythonPackage {
     changelog = "https://github.com/pytorch/vision/releases/tag/v${version}";
     license = licenses.bsd3;
     platforms = platforms.linux;
-    maintainers = with maintainers; [ ];
+    maintainers = with maintainers; [ junjihashimoto ];
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/torchvision/binary-hashes.nix b/nixpkgs/pkgs/development/python-modules/torchvision/binary-hashes.nix
index b9a991e24abb..239db8bdb864 100644
--- a/nixpkgs/pkgs/development/python-modules/torchvision/binary-hashes.nix
+++ b/nixpkgs/pkgs/development/python-modules/torchvision/binary-hashes.nix
@@ -3,20 +3,24 @@
 # Precompiled wheels can be found at:
 # https://download.pytorch.org/whl/torch_stable.html
 
-version: {
-  x86_64-linux-37 = {
-    name = "torchvision-${version}-cp37-cp37m-linux_x86_64.whl";
-    url = "https://download.pytorch.org/whl/cu111/torchvision-${version}%2Bcu111-cp37-cp37m-linux_x86_64.whl";
-    hash = "sha256-7EMVB8KZg2I3P4RqnIVk/7OOAPA1OWOipns58cSCUrw=";
-  };
-  x86_64-linux-38 = {
-    name = "torchvision-${version}-cp38-cp38-linux_x86_64.whl";
-    url = "https://download.pytorch.org/whl/cu111/torchvision-${version}%2Bcu111-cp38-cp38-linux_x86_64.whl";
-    hash = "sha256-VjsCBW9Lusr4aDQLqaFh5dpV/5ZJ5PDs7nY4CbCHDTA=";
-  };
-  x86_64-linux-39 = {
-    name = "torchvision-${version}-cp39-cp39-linux_x86_64.whl";
-    url = "https://download.pytorch.org/whl/cu111/torchvision-${version}%2Bcu111-cp39-cp39-linux_x86_64.whl";
-    hash = "sha256-pzR7TBE+WcAmozskoeOVBuMkGJf9tvsaXsUkTcu86N8=";
+# To add a new version, run "prefetch.sh 'new-version'" to paste the generated file as follows.
+
+version : builtins.getAttr version {
+  "0.10.1" = {
+    x86_64-linux-37 = {
+      name = "torchvision-0.10.1-cp37-cp37m-linux_x86_64.whl";
+      url = "https://download.pytorch.org/whl/cu111/torchvision-0.10.1%2Bcu111-cp37-cp37m-linux_x86_64.whl";
+      hash = "sha256-1MdsCrOLGkYpfbtv011/b6QG+yKaE+O0jUKeUVj2BJY=";
+    };
+    x86_64-linux-38 = {
+      name = "torchvision-0.10.1-cp38-cp38-linux_x86_64.whl";
+      url = "https://download.pytorch.org/whl/cu111/torchvision-0.10.1%2Bcu111-cp38-cp38-linux_x86_64.whl";
+      hash = "sha256-LtmsnNSa9g3tCdjW1jhu7AZlGgfyYIVh5/2R+WwcxSo=";
+    };
+    x86_64-linux-39 = {
+      name = "torchvision-0.10.1-cp39-cp39-linux_x86_64.whl";
+      url = "https://download.pytorch.org/whl/cu111/torchvision-0.10.1%2Bcu111-cp39-cp39-linux_x86_64.whl";
+      hash = "sha256-ZOC/angyiLeOhe+7dAs0W6XlQRKK00T/iI+aBgFNpA0=";
+    };
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/torchvision/prefetch.sh b/nixpkgs/pkgs/development/python-modules/torchvision/prefetch.sh
new file mode 100755
index 000000000000..f57ac96bdb63
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/torchvision/prefetch.sh
@@ -0,0 +1,36 @@
+#!/usr/bin/env nix-shell
+#!nix-shell -i bash -p nix-prefetch-scripts
+
+version=$1
+
+bucket="https://download.pytorch.org/whl/cu111"
+
+url_and_key_list=(
+"x86_64-linux-37 $bucket/torchvision-${version}%2Bcu111-cp37-cp37m-linux_x86_64.whl torchvision-${version}-cp37-cp37m-linux_x86_64.whl"
+"x86_64-linux-38 $bucket/torchvision-${version}%2Bcu111-cp38-cp38-linux_x86_64.whl torchvision-${version}-cp38-cp38-linux_x86_64.whl"
+"x86_64-linux-39 $bucket/torchvision-${version}%2Bcu111-cp39-cp39-linux_x86_64.whl torchvision-${version}-cp39-cp39-linux_x86_64.whl"
+)
+
+hashfile=binary-hashes-"$version".nix
+rm -f $hashfile
+echo "  \"$version\" = {" >> $hashfile
+
+for url_and_key in "${url_and_key_list[@]}"; do
+  key=$(echo "$url_and_key" | cut -d' ' -f1)
+  url=$(echo "$url_and_key" | cut -d' ' -f2)
+  name=$(echo "$url_and_key" | cut -d' ' -f3)
+
+  echo "prefetching ${url}..."
+  hash=$(nix hash to-sri --type sha256 `nix-prefetch-url "$url" --name "$name"`)
+
+  echo "    $key = {" >> $hashfile
+  echo "      name = \"$name\";" >> $hashfile
+  echo "      url = \"$url\";" >> $hashfile
+  echo "      hash = \"$hash\";" >> $hashfile
+  echo "    };" >> $hashfile
+
+  echo
+done
+
+echo "  };" >> $hashfile
+echo "done."
diff --git a/nixpkgs/pkgs/development/python-modules/towncrier/default.nix b/nixpkgs/pkgs/development/python-modules/towncrier/default.nix
index 6b699a2fbc24..83215f5e0af3 100644
--- a/nixpkgs/pkgs/development/python-modules/towncrier/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/towncrier/default.nix
@@ -3,6 +3,7 @@
 , click-default-group
 , incremental
 , jinja2
+, mock
 , pytestCheckHook
 , toml
 , twisted
@@ -11,11 +12,11 @@
 
 buildPythonPackage rec {
   pname = "towncrier";
-  version = "19.9.0";
+  version = "21.3.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "19916889879353a8863f3de8cb1ef19b305a0b5cfd9d36159d76ca2fef08e9aa";
+    sha256 = "6eed0bc924d72c98c000cb8a64de3bd566e5cb0d11032b73fcccf8a8f956ddfe";
   };
 
   propagatedBuildInputs = [
@@ -28,7 +29,12 @@ buildPythonPackage rec {
 
   # zope.interface collision
   doCheck = !isPy27;
-  checkInputs = [ git twisted pytestCheckHook ];
+  checkInputs = [
+    git
+    mock
+    twisted
+    pytestCheckHook
+  ];
   pythonImportsCheck = [ "towncrier" ];
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/development/python-modules/tox/default.nix b/nixpkgs/pkgs/development/python-modules/tox/default.nix
index 035bb9701bb5..c660327ad72e 100644
--- a/nixpkgs/pkgs/development/python-modules/tox/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/tox/default.nix
@@ -13,7 +13,7 @@
 
 buildPythonPackage rec {
   pname = "tox";
-  version = "3.23.1";
+  version = "3.24.3";
 
   buildInputs = [ setuptools-scm ];
   propagatedBuildInputs = [ packaging pluggy py six virtualenv toml filelock ];
@@ -22,7 +22,7 @@ buildPythonPackage rec {
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "307a81ddb82bd463971a273f33e9533a24ed22185f27db8ce3386bff27d324e3";
+    sha256 = "c6c4e77705ada004283610fd6d9ba4f77bc85d235447f875df9f0ba1bc23b634";
   };
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/development/python-modules/tqdm/default.nix b/nixpkgs/pkgs/development/python-modules/tqdm/default.nix
index fe2eb35d4df7..babea4357a79 100644
--- a/nixpkgs/pkgs/development/python-modules/tqdm/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/tqdm/default.nix
@@ -14,11 +14,11 @@
 
 buildPythonPackage rec {
   pname = "tqdm";
-  version = "4.61.1";
+  version = "4.62.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "24be966933e942be5f074c29755a95b315c69a91f839a29139bf26ffffe2d3fd";
+    sha256 = "a4d6d112e507ef98513ac119ead1159d286deab17dffedd96921412c2d236ff5";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/traitlets/default.nix b/nixpkgs/pkgs/development/python-modules/traitlets/default.nix
index 3bc05897af66..23412d0a6940 100644
--- a/nixpkgs/pkgs/development/python-modules/traitlets/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/traitlets/default.nix
@@ -13,12 +13,12 @@
 
 buildPythonPackage rec {
   pname = "traitlets";
-  version = "5.0.5";
+  version = "5.1.0";
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "178f4ce988f69189f7e523337a3e11d91c786ded9360174a3d9ca83e79bc5396";
+    sha256 = "bd382d7ea181fbbcce157c133db9a829ce06edffe097bcf3ab945b435452b46d";
   };
 
   checkInputs = [ glibcLocales pytest mock ];
diff --git a/nixpkgs/pkgs/development/python-modules/transmission-rpc/default.nix b/nixpkgs/pkgs/development/python-modules/transmission-rpc/default.nix
index 7f6ef31d318e..1a06448db996 100644
--- a/nixpkgs/pkgs/development/python-modules/transmission-rpc/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/transmission-rpc/default.nix
@@ -10,12 +10,12 @@
 
 buildPythonPackage rec {
   pname = "transmission-rpc";
-  version = "3.2.7";
+  version = "3.2.8";
   disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "36c022fddb45084c0d9f63db34abf79b66a0f2bab6484f4ac32eb2744a06fa15";
+    sha256 = "821eda19809dca7ad50eaf42ed8debb72ec0e3b1f04f63b8b2414a05075c132e";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/trimesh/default.nix b/nixpkgs/pkgs/development/python-modules/trimesh/default.nix
index 12179e6a60a7..1da8a14e43bf 100644
--- a/nixpkgs/pkgs/development/python-modules/trimesh/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/trimesh/default.nix
@@ -6,11 +6,11 @@
 
 buildPythonPackage rec {
   pname = "trimesh";
-  version = "3.9.29";
+  version = "3.9.31";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-YEddrun9rLcWk2u3Tfus8W014bU4BKWXWOOhCW/jSlY=";
+    sha256 = "cdb7e5b996a2ea180a53b283ac8fac4a8978ae31c860b55c14a205fc772144c2";
   };
 
   propagatedBuildInputs = [ numpy ];
diff --git a/nixpkgs/pkgs/development/python-modules/trustme/default.nix b/nixpkgs/pkgs/development/python-modules/trustme/default.nix
index 556ca3e2e6ed..103878ccac69 100644
--- a/nixpkgs/pkgs/development/python-modules/trustme/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/trustme/default.nix
@@ -13,11 +13,11 @@
 
 buildPythonPackage rec {
   pname = "trustme";
-  version = "0.8.0";
+  version = "0.9.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "3dcfbe186bf33d146347c6180b67564257f2708960027ab6d24fea2865daabca";
+    sha256 = "sha256-XgeyPXDO7WTzuzauS5q8UjVMFsmNRasDe+4rX7/+WGw=";
   };
 
   checkInputs = [
@@ -42,10 +42,12 @@ buildPythonPackage rec {
   # Some of the tests use localhost networking.
   __darwinAllowLocalNetworking = true;
 
-  meta = {
+  pythonImportsCheck = [ "trustme" ];
+
+  meta = with lib; {
     description = "High quality TLS certs while you wait, for the discerning tester";
     homepage = "https://github.com/python-trio/trustme";
-    license = with lib.licenses; [ mit asl20 ];
-    maintainers = with lib.maintainers; [ catern ];
+    license = with licenses; [ mit asl20 ];
+    maintainers = with maintainers; [ catern ];
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/trytond/default.nix b/nixpkgs/pkgs/development/python-modules/trytond/default.nix
index d5ddf8f58802..75e1ee68e4b3 100644
--- a/nixpkgs/pkgs/development/python-modules/trytond/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/trytond/default.nix
@@ -23,12 +23,12 @@
 
 buildPythonApplication rec {
   pname = "trytond";
-  version = "5.8.9";
+  version = "6.0.5";
   disabled = pythonOlder "3.5";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "5f14e9615ff91e18c146c74eb4c1cd56112662361a52c73389f15baced0bef18";
+    sha256 = "3ccb98dbf905d99991ed0151e13c91cd9267e4aa104fa40097df4e02580dadfc";
   };
 
   # Tells the tests which database to use
diff --git a/nixpkgs/pkgs/development/python-modules/twine/default.nix b/nixpkgs/pkgs/development/python-modules/twine/default.nix
index da5c4a9c3f51..f5809b0a9b90 100644
--- a/nixpkgs/pkgs/development/python-modules/twine/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/twine/default.nix
@@ -14,12 +14,13 @@
 
 buildPythonPackage rec {
   pname = "twine";
-  version = "3.4.1";
+  version = "3.4.2";
+  format = "pyproject";
   disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "a56c985264b991dc8a8f4234eb80c5af87fa8080d0c224ad8f2cd05a2c22e83b";
+    sha256 = "4caec0f1ed78dc4c9b83ad537e453d03ce485725f2aea57f1bb3fdde78dae936";
   };
 
   nativeBuildInputs = [ setuptools-scm ];
diff --git a/nixpkgs/pkgs/development/python-modules/types-futures/default.nix b/nixpkgs/pkgs/development/python-modules/types-futures/default.nix
new file mode 100644
index 000000000000..5e9ebe7fa7fd
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/types-futures/default.nix
@@ -0,0 +1,18 @@
+{ buildPythonPackage, fetchPypi, lib }:
+
+buildPythonPackage rec {
+  pname = "types-futures";
+  version = "3.3.0";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1p00wb93af01b6fw9wxk9qm4kbhqwb48nszmm16slsrc1nx4px25";
+  };
+
+  meta = with lib; {
+    description = "Typing stubs for futures";
+    homepage = "https://github.com/python/typeshed";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ andersk ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/types-protobuf/default.nix b/nixpkgs/pkgs/development/python-modules/types-protobuf/default.nix
new file mode 100644
index 000000000000..5d9737c5803e
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/types-protobuf/default.nix
@@ -0,0 +1,20 @@
+{ buildPythonPackage, fetchPypi, lib, types-futures }:
+
+buildPythonPackage rec {
+  pname = "types-protobuf";
+  version = "3.17.4";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "0r42kzspqna2b2jiz9bjzagrd4gbh0sd6jp4v7i9nv09y0ifrkrn";
+  };
+
+  propagatedBuildInputs = [ types-futures ];
+
+  meta = with lib; {
+    description = "Typing stubs for protobuf";
+    homepage = "https://github.com/python/typeshed";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ andersk ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/types-pytz/default.nix b/nixpkgs/pkgs/development/python-modules/types-pytz/default.nix
index 2fc5cc0d4503..4b3f9c1726c8 100644
--- a/nixpkgs/pkgs/development/python-modules/types-pytz/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/types-pytz/default.nix
@@ -5,11 +5,11 @@
 
 buildPythonPackage rec {
   pname = "types-pytz";
-  version = "2021.1.0";
+  version = "2021.1.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0hzjz6wgzfyybcfli4rpmfxk49cn6x3slbs2xdmlnckvlahs5pxd";
+    sha256 = "448828a06f2aaa840e57364d866c661645a045e532f817e4f10c8c3ab2b66651";
   };
 
   # Modules doesn't have tests
diff --git a/nixpkgs/pkgs/development/python-modules/types-requests/default.nix b/nixpkgs/pkgs/development/python-modules/types-requests/default.nix
index 2d7ccc052287..464b0d58762e 100644
--- a/nixpkgs/pkgs/development/python-modules/types-requests/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/types-requests/default.nix
@@ -5,11 +5,11 @@
 
 buildPythonPackage rec {
   pname = "types-requests";
-  version = "2.25.6";
+  version = "2.25.9";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1vh203dppi6457lwv7z46dc8rpanjlahk4v3394nq1jwyp0425g2";
+    sha256 = "sha256-Tsi3Hac+U0Stub7nJadOyFmOcob5vLF1ANYn8ln+T7k=";
   };
 
   # Modules doesn't have tests
diff --git a/nixpkgs/pkgs/development/python-modules/typing-extensions/default.nix b/nixpkgs/pkgs/development/python-modules/typing-extensions/default.nix
index fd8a25a485b9..939ca25eb1a3 100644
--- a/nixpkgs/pkgs/development/python-modules/typing-extensions/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/typing-extensions/default.nix
@@ -4,11 +4,11 @@ let
 
 in buildPythonPackage rec {
   pname = "typing_extensions";
-  version = "3.10.0.0";
+  version = "3.10.0.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "50b6f157849174217d0656f99dc82fe932884fb250826c18350e159ec6cdf342";
+    sha256 = "49f75d16ff11f1cd258e1b988ccff82a3ca5570217d7ad8c5f48205dd99a677e";
   };
 
   checkInputs = lib.optional (pythonOlder "3.5") typing;
diff --git a/nixpkgs/pkgs/development/python-modules/tzlocal/default.nix b/nixpkgs/pkgs/development/python-modules/tzlocal/default.nix
index c5514cfa53a4..363e1d12a55e 100644
--- a/nixpkgs/pkgs/development/python-modules/tzlocal/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/tzlocal/default.nix
@@ -3,7 +3,7 @@
 
 buildPythonPackage rec {
   pname = "tzlocal";
-  version = "2.1";
+  version = "2.1"; # version needs to be compatible with APScheduler
 
   propagatedBuildInputs = [ pytz ];
 
diff --git a/nixpkgs/pkgs/development/python-modules/userpath/default.nix b/nixpkgs/pkgs/development/python-modules/userpath/default.nix
index d619cba0649d..6ce92e9f3b47 100644
--- a/nixpkgs/pkgs/development/python-modules/userpath/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/userpath/default.nix
@@ -6,11 +6,11 @@
 
 buildPythonPackage rec {
   pname = "userpath";
-  version = "1.6.0";
+  version = "1.7.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256="1xpgdmdvhmmmdlivsqlzx1xvyj0gcnfp0j2ba5izmv3q2k5abfdj";
+    sha256="sha256-3NZsX6mxo8EjYvMJu7W8eZK6yK+G0XtOaxpLFmoRxD8=";
   };
 
   propagatedBuildInputs = [ click ];
diff --git a/nixpkgs/pkgs/development/python-modules/uvloop/default.nix b/nixpkgs/pkgs/development/python-modules/uvloop/default.nix
index a762ec55ee36..c7e11ab6c258 100644
--- a/nixpkgs/pkgs/development/python-modules/uvloop/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/uvloop/default.nix
@@ -15,12 +15,12 @@
 
 buildPythonPackage rec {
   pname = "uvloop";
-  version = "0.15.2";
+  version = "0.16.0";
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "2bb0624a8a70834e54dde8feed62ed63b50bad7a1265c40d6403a2ac447bce01";
+    sha256 = "f74bc20c7b67d1c27c72601c78cf95be99d5c2cdd4514502b4f3eb0933ff1228";
   };
 
   buildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/velbus-aio/default.nix b/nixpkgs/pkgs/development/python-modules/velbus-aio/default.nix
new file mode 100644
index 000000000000..b9d6b7151665
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/velbus-aio/default.nix
@@ -0,0 +1,38 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, pythonOlder
+, pyserial-asyncio
+, pytestCheckHook
+}:
+
+buildPythonPackage rec {
+  pname = "velbus-aio";
+  version = "2021.9.4";
+
+  disabled = pythonOlder "3.7";
+
+  src = fetchFromGitHub {
+    owner = "Cereal2nd";
+    repo = pname;
+    rev = version;
+    sha256 = "sha256-WywJ70tVniUX9RZTh9aswHgCEvWTggzABhSWoSRydUc=";
+  };
+
+  propagatedBuildInputs = [
+    pyserial-asyncio
+  ];
+
+  checkInputs = [
+    pytestCheckHook
+  ];
+
+  pythonImportsCheck = [ " velbusaio" ];
+
+  meta = with lib; {
+    description = "Python library to support the Velbus home automation system";
+    homepage = "https://github.com/Cereal2nd/velbus-aio";
+    license = with licenses; [ asl20 ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/vidstab/default.nix b/nixpkgs/pkgs/development/python-modules/vidstab/default.nix
index 7137205b3508..b4a16c44a072 100644
--- a/nixpkgs/pkgs/development/python-modules/vidstab/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/vidstab/default.nix
@@ -9,12 +9,12 @@
 }:
 
 buildPythonPackage rec {
-  version = "1.7.3";
+  version = "1.7.4";
   pname = "vidstab";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "649a77a0c1b670d13a1bf411451945d7da439364dc0c33ee3636a23f1d82b456";
+    sha256 = "865c4a097e2a8527aa8bfc96ab0bcc0d280a88cc93eabcc36531268f5d343ce1";
   };
 
   propagatedBuildInputs = [ numpy pandas imutils progress matplotlib ];
diff --git a/nixpkgs/pkgs/development/python-modules/virtualenv/default.nix b/nixpkgs/pkgs/development/python-modules/virtualenv/default.nix
index 2bcfa88b6ae4..10e1ebbc87bc 100644
--- a/nixpkgs/pkgs/development/python-modules/virtualenv/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/virtualenv/default.nix
@@ -1,6 +1,9 @@
-{ buildPythonPackage
-, appdirs
-, contextlib2
+{ stdenv
+, lib
+, buildPythonPackage
+, pythonOlder
+, isPy27
+, backports-entry-points-selectable
 , cython
 , distlib
 , fetchPypi
@@ -8,26 +11,23 @@
 , flaky
 , importlib-metadata
 , importlib-resources
-, isPy27
-, lib
 , pathlib2
+, platformdirs
 , pytest-freezegun
 , pytest-mock
 , pytest-timeout
 , pytestCheckHook
-, pythonOlder
 , setuptools-scm
 , six
-, stdenv
 }:
 
 buildPythonPackage rec {
   pname = "virtualenv";
-  version = "20.4.7";
+  version = "20.7.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "14fdf849f80dbb29a4eb6caa9875d476ee2a5cf76a5f5415fa2f1606010ab467";
+    sha256 = "9ef4e8ee4710826e98ff3075c9a4739e2cb1040de6a2a8d35db0055840dc96a0";
   };
 
   nativeBuildInputs = [
@@ -35,13 +35,12 @@ buildPythonPackage rec {
   ];
 
   propagatedBuildInputs = [
-    appdirs
+    backports-entry-points-selectable
     distlib
     filelock
+    platformdirs
     six
-  ] ++ lib.optionals isPy27 [
-    contextlib2
-  ] ++ lib.optionals (isPy27 && !stdenv.hostPlatform.isWindows) [
+  ] ++ lib.optionals (pythonOlder "3.4" && !stdenv.hostPlatform.isWindows) [
     pathlib2
   ] ++ lib.optionals (pythonOlder "3.7") [
     importlib-resources
diff --git a/nixpkgs/pkgs/development/python-modules/vispy/default.nix b/nixpkgs/pkgs/development/python-modules/vispy/default.nix
index 849f25ef0df3..9ebbfcd77e87 100644
--- a/nixpkgs/pkgs/development/python-modules/vispy/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/vispy/default.nix
@@ -1,15 +1,26 @@
-{ lib, buildPythonPackage, substituteAll, stdenv,
-  fetchPypi, numpy, cython, freetype-py, fontconfig, libGL,
-  setuptools-scm, setuptools-scm-git-archive
-  }:
+{ lib
+, stdenv
+, buildPythonPackage
+, substituteAll
+, fetchPypi
+, cython
+, fontconfig
+, freetype-py
+, hsluv
+, kiwisolver
+, libGL
+, numpy
+, setuptools-scm
+, setuptools-scm-git-archive
+}:
 
 buildPythonPackage rec {
   pname = "vispy";
-  version = "0.6.6";
+  version = "0.8.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "6f3c4d00be9e6761c046d520a86693d78a0925d47eeb2fc095e95dac776f74ee";
+    sha256 = "6e482e68487f5384205d349f288580d6287fd690df4cdc3ad4c573afc39990f1";
   };
 
   patches = [
@@ -21,15 +32,37 @@ buildPythonPackage rec {
   ];
 
   nativeBuildInputs = [
-    cython setuptools-scm setuptools-scm-git-archive
+    cython
+    setuptools-scm
+    setuptools-scm-git-archive
+  ];
+
+  buildInputs = [
+    libGL
   ];
 
   propagatedBuildInputs = [
-    numpy freetype-py fontconfig libGL
+    fontconfig
+    freetype-py
+    hsluv
+    kiwisolver
+    numpy
   ];
 
   doCheck = false;  # otherwise runs OSX code on linux.
-  pythonImportsCheck = [ "vispy" ];
+
+  pythonImportsCheck = [
+    "vispy"
+    "vispy.color"
+    "vispy.geometry"
+    "vispy.gloo"
+    "vispy.glsl"
+    "vispy.io"
+    "vispy.plot"
+    "vispy.scene"
+    "vispy.util"
+    "vispy.visuals"
+  ];
 
   meta = with lib; {
     homepage = "https://vispy.org/index.html";
diff --git a/nixpkgs/pkgs/development/python-modules/vivisect/default.nix b/nixpkgs/pkgs/development/python-modules/vivisect/default.nix
index 43e54bda9d6c..5dc8bc2254d4 100644
--- a/nixpkgs/pkgs/development/python-modules/vivisect/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/vivisect/default.nix
@@ -10,12 +10,12 @@
 }:
 buildPythonPackage rec {
   pname = "vivisect";
-  version = "0.2.1";
+  version = "1.0.4";
   disabled = isPy3k;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "8fc4d2097a1d0d8d97aa8c540984cb52432df759f04f2281a21a4e1b7d1a95a7";
+    sha256 = "bd47b2cf5874cd2f74e6c36b8a97bf301785bacf9ac0297bbe78ec1b8c86c755";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/vowpalwabbit/default.nix b/nixpkgs/pkgs/development/python-modules/vowpalwabbit/default.nix
index 0a75600bb0f0..1a1c6a33acb3 100644
--- a/nixpkgs/pkgs/development/python-modules/vowpalwabbit/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/vowpalwabbit/default.nix
@@ -15,11 +15,11 @@
 
 buildPythonPackage rec {
   pname = "vowpalwabbit";
-  version = "8.10.2";
+  version = "8.11.0";
 
   src = fetchPypi{
     inherit pname version;
-    sha256 = "e9f7d525a6e88ebff41406409a5c31f79bb008f524fc63a61dc74bac6a1ac887";
+    sha256 = "cfde0515a3fa4d224aad5461135372f3441ae1a64717ae6bff5e23509d70b0bd";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/wadllib/default.nix b/nixpkgs/pkgs/development/python-modules/wadllib/default.nix
index fcddf538d88d..b169a93ff87f 100644
--- a/nixpkgs/pkgs/development/python-modules/wadllib/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/wadllib/default.nix
@@ -8,11 +8,11 @@
 
 buildPythonPackage rec {
   pname = "wadllib";
-  version = "1.3.5";
+  version = "1.3.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "84fecbaec2fef5ae2d7717a8115d271f18c6b5441eac861c58be8ca57f63c1d3";
+    sha256 = "acd9ad6a2c1007d34ca208e1da6341bbca1804c0e6850f954db04bdd7666c5fc";
   };
 
   propagatedBuildInputs = [ setuptools lazr-uri ];
diff --git a/nixpkgs/pkgs/development/python-modules/wasmer/default.nix b/nixpkgs/pkgs/development/python-modules/wasmer/default.nix
index d3881032af13..dff14d15b901 100644
--- a/nixpkgs/pkgs/development/python-modules/wasmer/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/wasmer/default.nix
@@ -1,45 +1,99 @@
-{ lib
-, stdenv
+{ stdenv
+, lib
 , rustPlatform
+, callPackage
 , fetchFromGitHub
 , buildPythonPackage
 , libiconv
+, llvm_11
+, libffi
+, libxml2
+, ncurses
+, zlib
 }:
 
-buildPythonPackage rec {
-  pname = "wasmer";
-  version = "1.0.0";
+let
+  common =
+    { pname
+    , buildAndTestSubdir
+    , cargoHash
+    , extraNativeBuildInputs ? [ ]
+    , extraBuildInputs ? [ ]
+    }: buildPythonPackage rec {
+      inherit pname;
+      version = "1.0.0";
+      format = "pyproject";
 
-  src = fetchFromGitHub {
-    owner = "wasmerio";
-    repo = "wasmer-python";
-    rev = version;
-    hash = "sha256-I1GfjLaPYMIHKh2m/5IQepUsJNiVUEJg49wyuuzUYtY=";
-  };
+      outputs = [ "out" ] ++ lib.optional (pname == "wasmer") "testsout";
 
-  cargoDeps = rustPlatform.fetchCargoTarball {
-    inherit src;
-    name = "${pname}-${version}";
-    hash = "sha256-txOOia1C4W+nsXuXp4EytEn82CFfSmiOYwRLC4WPImc=";
-  };
+      src = fetchFromGitHub {
+        owner = "wasmerio";
+        repo = "wasmer-python";
+        rev = version;
+        hash = "sha256-I1GfjLaPYMIHKh2m/5IQepUsJNiVUEJg49wyuuzUYtY=";
+      };
+
+      cargoDeps = rustPlatform.fetchCargoTarball {
+        inherit src;
+        name = "${pname}-${version}";
+        sha256 = cargoHash;
+      };
+
+      nativeBuildInputs = (with rustPlatform; [ cargoSetupHook maturinBuildHook ])
+        ++ extraNativeBuildInputs;
+
+      buildInputs = lib.optionals stdenv.isDarwin [ libiconv ]
+        ++ extraBuildInputs;
 
-  format = "pyproject";
+      inherit buildAndTestSubdir;
 
-  nativeBuildInputs = with rustPlatform; [ cargoSetupHook maturinBuildHook ];
+      postInstall = lib.optionalString (pname == "wasmer") ''
+        mkdir $testsout
+        cp -R tests $testsout/tests
+      '';
 
-  buildInputs = lib.optionals stdenv.isDarwin [ libiconv ];
+      # check in passthru.tests.pytest because all packages are required to run the tests
+      doCheck = false;
 
-  buildAndTestSubdir = "packages/api";
+      passthru.tests = lib.optionalAttrs (pname == "wasmer") {
+        pytest = callPackage ./tests.nix { };
+      };
 
-  doCheck = false;
+      pythonImportsCheck = [ "${lib.replaceStrings ["-"] ["_"] pname}" ];
 
-  pythonImportsCheck = [ "wasmer" ];
+      meta = with lib; {
+        description = "Python extension to run WebAssembly binaries";
+        homepage = "https://github.com/wasmerio/wasmer-python";
+        license = licenses.mit;
+        platforms = platforms.unix;
+        maintainers = with maintainers; [ SuperSandro2000 ];
+      };
+    };
+in
+rec {
+  wasmer = common {
+    pname = "wasmer";
+    buildAndTestSubdir = "packages/api";
+    cargoHash = "sha256-txOOia1C4W+nsXuXp4EytEn82CFfSmiOYwRLC4WPImc=";
+  };
+
+  wasmer-compiler-cranelift = common {
+    pname = "wasmer-compiler-cranelift";
+    buildAndTestSubdir = "packages/compiler-cranelift";
+    cargoHash = "sha256-cHgAUwqnbQV3E5nUYGYQ48ntbIFfq4JXfU5IrSFZ3zI=";
+  };
+
+  wasmer-compiler-llvm = common {
+    pname = "wasmer-compiler-llvm";
+    buildAndTestSubdir = "packages/compiler-llvm";
+    cargoHash = "sha256-Jm22CC5S3pN/vdVvsGZdvtoAgPzWVLto8wavSJdxY3A=";
+    extraNativeBuildInputs = [ llvm_11 ];
+    extraBuildInputs = [ libffi libxml2.out ncurses zlib ];
+  };
 
-  meta = with lib; {
-    description = "Python extension to run WebAssembly binaries";
-    homepage = "https://github.com/wasmerio/wasmer-python";
-    license = licenses.mit;
-    platforms = platforms.unix;
-    maintainers = with maintainers; [ SuperSandro2000 ];
+  wasmer-compiler-singlepass = common {
+    pname = "wasmer-compiler-singlepass";
+    buildAndTestSubdir = "packages/compiler-singlepass";
+    cargoHash = "sha256-lmqEo3+jYoN+4EEYphcoE4b84jdFcvYVycjrJ956Bh8=";
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/wasmer/tests.nix b/nixpkgs/pkgs/development/python-modules/wasmer/tests.nix
new file mode 100644
index 000000000000..bdb3adfe93ce
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/wasmer/tests.nix
@@ -0,0 +1,25 @@
+{ buildPythonPackage
+, wasmer
+, pytestCheckHook
+, wasmer-compiler-cranelift
+, wasmer-compiler-llvm
+, wasmer-compiler-singlepass
+}:
+
+buildPythonPackage rec {
+  pname = "wasmer-tests";
+  inherit (wasmer) version;
+
+  src = wasmer.testsout;
+
+  dontBuild = true;
+  dontInstall = true;
+
+  checkInputs = [
+    pytestCheckHook
+    wasmer
+    wasmer-compiler-cranelift
+    wasmer-compiler-llvm
+    wasmer-compiler-singlepass
+  ];
+}
diff --git a/nixpkgs/pkgs/development/python-modules/watchdog/default.nix b/nixpkgs/pkgs/development/python-modules/watchdog/default.nix
index 921ed5af4aa1..7dab01b3ca09 100644
--- a/nixpkgs/pkgs/development/python-modules/watchdog/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/watchdog/default.nix
@@ -13,11 +13,11 @@
 
 buildPythonPackage rec {
   pname = "watchdog";
-  version = "2.1.3";
+  version = "2.1.5";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-5SNqjoYCq220uHNmTC01bDZas8rJb73sSXCtYWQV3UU=";
+    sha256 = "5563b005907613430ef3d4aaac9c78600dd5704e84764cb6deda4b3d72807f09";
   };
 
   buildInputs = lib.optionals stdenv.isDarwin [ CoreServices ];
diff --git a/nixpkgs/pkgs/development/python-modules/webargs/default.nix b/nixpkgs/pkgs/development/python-modules/webargs/default.nix
index 6db909992f48..63ad60c9f084 100644
--- a/nixpkgs/pkgs/development/python-modules/webargs/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/webargs/default.nix
@@ -4,12 +4,12 @@
 
 buildPythonPackage rec {
   pname = "webargs";
-  version = "8.0.0";
+  version = "8.0.1";
   disabled = isPy27;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0xy6na8axc5wnp2wg3kvqbpl2iv0hx0rsnlrmrgkgp88znx6cmjn";
+    sha256 = "bcce022250ee97cfbb0ad07b02388ac90a226ef4b479ec84317152345a565614";
   };
 
   pythonImportsCheck = [
diff --git a/nixpkgs/pkgs/development/python-modules/werkzeug/default.nix b/nixpkgs/pkgs/development/python-modules/werkzeug/default.nix
index d3dce5018d97..898fa4556ec3 100644
--- a/nixpkgs/pkgs/development/python-modules/werkzeug/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/werkzeug/default.nix
@@ -8,15 +8,16 @@
 , pytest-timeout
 , pytest-xprocess
 , pytestCheckHook
- }:
+}:
 
 buildPythonPackage rec {
-  pname = "Werkzeug";
+  pname = "werkzeug";
   version = "2.0.1";
   disabled = pythonOlder "3.6";
 
   src = fetchPypi {
-    inherit pname version;
+    pname = "Werkzeug";
+    inherit version;
     sha256 = "0hlwawnn8c41f254qify5jnjj8xb97n294h09bqimzqhs0qdpq8x";
   };
 
diff --git a/nixpkgs/pkgs/development/python-modules/wsgiprox/default.nix b/nixpkgs/pkgs/development/python-modules/wsgiprox/default.nix
new file mode 100644
index 000000000000..af35c23e455f
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/wsgiprox/default.nix
@@ -0,0 +1,36 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, six
+, certauth
+}:
+
+buildPythonPackage rec {
+  pname = "wsgiprox";
+  version = "1.5.2";
+
+  src = fetchFromGitHub {
+    owner = "webrecorder";
+    repo = "wsgiprox";
+    # https://github.com/webrecorder/wsgiprox/issues/8
+    rev = "004870a87959e68ff28ff4362e4f0df28ec22030";
+    sha256 = "sha256-EquddaNrVceyJHuQMCajKHGZX2Q7ebR0Zhvi2pl2WEw=";
+  };
+
+  propagatedBuildInputs = [
+    six
+    certauth
+  ];
+
+  pythonImportsCheck = [ "wsgiprox" ];
+
+  # See https://github.com/webrecorder/wsgiprox/issues/6
+  doCheck = false;
+
+  meta = with lib; {
+    description = "Python WSGI Middleware for adding HTTP/S proxy support to any WSGI Application";
+    homepage = "https://github.com/webrecorder/wsgiprox";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ Luflosi ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/xarray/default.nix b/nixpkgs/pkgs/development/python-modules/xarray/default.nix
index 675461a63cc6..ee07adeb9d5b 100644
--- a/nixpkgs/pkgs/development/python-modules/xarray/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/xarray/default.nix
@@ -11,12 +11,12 @@
 
 buildPythonPackage rec {
   pname = "xarray";
-  version = "0.18.2";
+  version = "0.19.0";
   disabled = !isPy3k;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "5d2e72a228286fcf60f66e16876bd27629a1a70bf64822c565f16515c4d10284";
+    sha256 = "3a365ce09127fc841ba88baa63f37ca61376ffe389a6c5e66d52f2c88c23a62b";
   };
 
   nativeBuildInputs = [ setuptools-scm ];
diff --git a/nixpkgs/pkgs/development/python-modules/xml2rfc/default.nix b/nixpkgs/pkgs/development/python-modules/xml2rfc/default.nix
index c975218e5b1d..de17aa849227 100644
--- a/nixpkgs/pkgs/development/python-modules/xml2rfc/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/xml2rfc/default.nix
@@ -1,15 +1,34 @@
-{ lib, fetchPypi, buildPythonPackage, pythonAtLeast, intervaltree, pyflakes, requests, lxml, google-i18n-address
-, pycountry, html5lib, six, kitchen, pypdf2, dict2xml, weasyprint, pyyaml, jinja2, configargparse, appdirs
+{ lib
+, fetchPypi
+, buildPythonPackage
+, pythonOlder
+, intervaltree
+, pyflakes
+, requests
+, lxml
+, google-i18n-address
+, pycountry
+, html5lib
+, six
+, kitchen
+, pypdf2
+, dict2xml
+, weasyprint
+, pyyaml
+, jinja2
+, configargparse
+, appdirs
 }:
 
 buildPythonPackage rec {
   pname = "xml2rfc";
-  version = "3.8.0";
-  disabled = pythonAtLeast "3.9";
+  version = "3.10.0";
+
+  disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "8e25a9d73acf57ade798fc67841277dbbdb81ced390e6f84362370305b127426";
+    sha256 = "sha256-DJjGQAYFhXjAiJhWzxpQ0jRUSrnsNCcNz1KfPEjBoKE=";
   };
 
   propagatedBuildInputs = [
@@ -31,12 +50,18 @@ buildPythonPackage rec {
     appdirs
   ];
 
+  postPatch = ''
+    substituteInPlace requirements.txt \
+      --replace "jinja2>=2.11,<3.0" "jinja2>=2.11"
+  '';
+
   preCheck = ''
     export HOME=$(mktemp -d)
   '';
 
   # lxml tries to fetch from the internet
   doCheck = false;
+
   pythonImportsCheck = [ "xml2rfc" ];
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/development/python-modules/xmlsec/default.nix b/nixpkgs/pkgs/development/python-modules/xmlsec/default.nix
index b8c60f1b6425..0a9a0af0e543 100644
--- a/nixpkgs/pkgs/development/python-modules/xmlsec/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/xmlsec/default.nix
@@ -9,18 +9,17 @@
 , xmlsec
 , pkgconfig
 , setuptools-scm
-, toml
 , lxml
 , hypothesis
 }:
 
 buildPythonPackage rec {
   pname = "xmlsec";
-  version = "1.3.11";
+  version = "1.3.12";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-zS6q/38xeEoH3ZnOgfp2cxPfO6GDT6pBQ+4sBwAMrHo=";
+    sha256 = "2c86ac6ce570c9e04f04da0cd5e7d3db346e4b5b1d006311606368f17c756ef9";
   };
 
   # https://github.com/mehcode/python-xmlsec/issues/84#issuecomment-632930116
@@ -28,7 +27,7 @@ buildPythonPackage rec {
     ./reset-lxml-in-tests.patch
   ];
 
-  nativeBuildInputs = [ pkg-config pkgconfig setuptools-scm toml ];
+  nativeBuildInputs = [ pkg-config pkgconfig setuptools-scm ];
 
   buildInputs = [ xmlsec libxslt libxml2 libtool ];
 
diff --git a/nixpkgs/pkgs/development/python-modules/yamlloader/default.nix b/nixpkgs/pkgs/development/python-modules/yamlloader/default.nix
index d2b66cb073d7..97da02102c7f 100644
--- a/nixpkgs/pkgs/development/python-modules/yamlloader/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/yamlloader/default.nix
@@ -4,11 +4,11 @@
 
 buildPythonPackage rec {
   pname = "yamlloader";
-  version = "1.0.0";
+  version = "1.1.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "e96dc3dc6895d814c330c054c966d993fc81ef1dbf5a30a4bdafeb256359e058";
+    sha256 = "8a297c7a197683ba02e5e2b882ffd6c6180d01bdefb534b69cd3962df020bfe6";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/yeelight/default.nix b/nixpkgs/pkgs/development/python-modules/yeelight/default.nix
index 9416ff7ef4e2..b7472d68a83d 100644
--- a/nixpkgs/pkgs/development/python-modules/yeelight/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/yeelight/default.nix
@@ -9,14 +9,14 @@
 
 buildPythonPackage rec {
   pname = "yeelight";
-  version = "0.7.3";
+  version = "0.7.5";
   disabled = pythonOlder "3.4";
 
   src = fetchFromGitLab {
     owner = "stavros";
     repo = "python-yeelight";
     rev = "v${version}";
-    sha256 = "sha256-sdSzriAgY3LSOeyPB2Pe1k9iamStZ1OlYXJZviRa+TY=";
+    sha256 = "sha256-lEroQ2Gy1ldeIkkSMYcXJk6j6Ls2zigImrIWOPq70D0=";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/youtube-search-python/default.nix b/nixpkgs/pkgs/development/python-modules/youtube-search-python/default.nix
index 818baf6b36f9..8f31c892d0d8 100644
--- a/nixpkgs/pkgs/development/python-modules/youtube-search-python/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/youtube-search-python/default.nix
@@ -2,13 +2,13 @@
 
 buildPythonPackage rec {
   pname = "youtube-search-python";
-  version = "1.4.7";
+  version = "1.4.8";
 
   disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "7f93d9ecfd9b965dc93782d8174b1c1888f8900e2a303254037ba34e1d0ebed4";
+    sha256 = "aafa940d77ecd37bb7af802da53caed9be8861c6abe3004abb04315155b4a3ad";
   };
 
   propagatedBuildInputs = [ httpx ];
diff --git a/nixpkgs/pkgs/development/python-modules/yt/default.nix b/nixpkgs/pkgs/development/python-modules/yt/default.nix
index 42bde9909b8c..9611b2722295 100644
--- a/nixpkgs/pkgs/development/python-modules/yt/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/yt/default.nix
@@ -15,12 +15,12 @@
 
 buildPythonPackage rec {
   pname = "yt";
-  version = "3.6.1";
+  version = "4.0.1";
   disabled = isPy3k;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "be454f9d05dcbe0623328b4df43a1bfd1f0925e516be97399710452931a19bb0";
+    sha256 = "6219cbf971871320a13679a57722c0363e50db5e6d4d64ea9d197461b2a7f70f";
   };
 
   buildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/ytmusicapi/default.nix b/nixpkgs/pkgs/development/python-modules/ytmusicapi/default.nix
index 6ec5fda2ca58..8bf781ef3a42 100644
--- a/nixpkgs/pkgs/development/python-modules/ytmusicapi/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/ytmusicapi/default.nix
@@ -7,13 +7,13 @@
 
 buildPythonPackage rec {
   pname = "ytmusicapi";
-  version = "0.18.0";
+  version = "0.19.3";
 
   disabled = isPy27;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-RH0ballPSZQvesdUEsulnBkbbzVA2YrGWhMzRFvuwW0=";
+    sha256 = "dfd0271f7177173cea9c255730151a10a2fe4a32f9accd2fe31e7645936c90c5";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/zarr/default.nix b/nixpkgs/pkgs/development/python-modules/zarr/default.nix
index 9fc5589d281d..cc47fe9e5ac1 100644
--- a/nixpkgs/pkgs/development/python-modules/zarr/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/zarr/default.nix
@@ -12,12 +12,12 @@
 
 buildPythonPackage rec {
   pname = "zarr";
-  version = "2.9.1";
+  version = "2.10.0";
   disabled = isPy27;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "688afec069e0f85b87c1ef4572766f998309c64ab7bea1884cec60e92d109544";
+    sha256 = "8ca8e505cadb4f7f97aab4e4193bb302b6338bf54593c98fe7581bf574ed864c";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/zconfig/default.nix b/nixpkgs/pkgs/development/python-modules/zconfig/default.nix
index a6a00ad821b8..521bca4ece8c 100644
--- a/nixpkgs/pkgs/development/python-modules/zconfig/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/zconfig/default.nix
@@ -1,32 +1,27 @@
-{ lib, stdenv
+{ lib
+, stdenv
 , fetchPypi
-, fetchpatch
 , buildPythonPackage
 , zope_testrunner
 , manuel
 , docutils
-, pythonAtLeast
+, pygments
 }:
 
 buildPythonPackage rec {
   pname = "ZConfig";
-  version = "3.5.0";
+  version = "3.6.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0s7aycxna07a04b4rswbkj4y5qh3gxy2mcsqb9dmy0iimj9f9550";
+    sha256 = "sha256-oo6VoK4zV5V0fsytNbLLcI831Ex/Ml4qyyAemDMLFuU=";
   };
 
-  patches = [
-    # fixes 3.8+ logger validation issues, has been merged into master, remove next bump
-    (fetchpatch {
-      url = "https://github.com/zopefoundation/ZConfig/commit/f0c2990d35ac3c924ecc8be4a5c71c8e4abbd0e5.patch";
-      sha256 = "1bjg3wrvii0rwzf3s0vlpzgg2ckj0h2zxkyxwjcr64s4k2vaq9ij";
-    })
-  ] ++ lib.optional stdenv.hostPlatform.isMusl ./remove-setlocale-test.patch;
+  patches = lib.optional stdenv.hostPlatform.isMusl ./remove-setlocale-test.patch;
 
   buildInputs = [ manuel docutils ];
   propagatedBuildInputs = [ zope_testrunner ];
+  checkInputs = [ pygments ];
 
   meta = with lib; {
     description = "Structured Configuration Library";
diff --git a/nixpkgs/pkgs/development/python-modules/zeroconf/default.nix b/nixpkgs/pkgs/development/python-modules/zeroconf/default.nix
index 618396a90b42..46377a238bfe 100644
--- a/nixpkgs/pkgs/development/python-modules/zeroconf/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/zeroconf/default.nix
@@ -10,7 +10,7 @@
 
 buildPythonPackage rec {
   pname = "zeroconf";
-  version = "0.36.2";
+  version = "0.36.7";
   format = "setuptools";
   disabled = pythonOlder "3.6";
 
@@ -19,7 +19,7 @@ buildPythonPackage rec {
     owner = "jstasiak";
     repo = "python-zeroconf";
     rev = version;
-    sha256 = "sha256-3QRrGfyMXiSas70IL19/DQAPf7I6vdg/itiZlD4/pvg=";
+    sha256 = "sha256-jGbYd56JCXYUE4N2He5Ds8vVcgfny1kUYbd1rL7upcM=";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/zha-quirks/default.nix b/nixpkgs/pkgs/development/python-modules/zha-quirks/default.nix
index 89db9de12b75..38a6d236d83c 100644
--- a/nixpkgs/pkgs/development/python-modules/zha-quirks/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/zha-quirks/default.nix
@@ -9,13 +9,13 @@
 
 buildPythonPackage rec {
   pname = "zha-quirks";
-  version = "0.0.59";
+  version = "0.0.61";
 
   src = fetchFromGitHub {
     owner = "zigpy";
     repo = "zha-device-handlers";
     rev = version;
-    sha256 = "1x6s44apl393as847ghbqr26h0y0h4w3wp53bs0m2nfbzjwin3i7";
+    sha256 = "sha256-uDQAXH0p8Ly0ZbwNlkVo1b7fAXSu77U7v3BHd0B1YQk=";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/zigpy-deconz/default.nix b/nixpkgs/pkgs/development/python-modules/zigpy-deconz/default.nix
index f41b3836db93..466026556e0a 100644
--- a/nixpkgs/pkgs/development/python-modules/zigpy-deconz/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/zigpy-deconz/default.nix
@@ -11,13 +11,13 @@
 
 buildPythonPackage rec {
   pname = "zigpy-deconz";
-  version = "0.12.1";
+  version = "0.13.0";
 
   src = fetchFromGitHub {
     owner = "zigpy";
     repo = pname;
     rev = version;
-    sha256 = "sha256-NpLhVQfezXbJQMvqqZjr9sc8tCjJgGu5Xk3C5/IDeUQ=";
+    sha256 = "sha256-9rxdnY5tMtPJLE/lRaphNR1L1vdhAxnIDoh8xCHmzjc=";
   };
 
   propagatedBuildInputs = [ pyserial pyserial-asyncio zigpy ];
diff --git a/nixpkgs/pkgs/development/python-modules/zigpy-xbee/default.nix b/nixpkgs/pkgs/development/python-modules/zigpy-xbee/default.nix
index 1279bb804de6..be522214164b 100644
--- a/nixpkgs/pkgs/development/python-modules/zigpy-xbee/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/zigpy-xbee/default.nix
@@ -7,11 +7,12 @@
 , pytest-asyncio
 , pytestCheckHook
 , pythonOlder
-, zigpy }:
+, zigpy
+}:
 
 buildPythonPackage rec {
   pname = "zigpy-xbee";
-  version = "0.13.0";
+  version = "0.14.0";
   # https://github.com/Martiusweb/asynctest/issues/152
   # broken by upstream python bug with asynctest and
   # is used exclusively by home-assistant with python 3.8
@@ -21,7 +22,7 @@ buildPythonPackage rec {
     owner = "zigpy";
     repo = "zigpy-xbee";
     rev = version;
-    sha256 = "Krdqb9bYKwUC2cdNppB2+tLwWjzmzIHhXnQ1KRduofU=";
+    sha256 = "sha256-veAkaBHPYgVd3iwvnH/A2upYX4T/qXXNRcaysbRQvNI=";
   };
 
   buildInputs = [
@@ -36,6 +37,12 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
+  disabledTests = [
+    # assertion failure
+    # E       assert ff:ff:ff:ff:ff:ff:ff:ff is None
+    "test_startup_api_mode_config_fails"
+  ];
+
   meta = with lib; {
     description = "A library which communicates with XBee radios for zigpy";
     homepage = "https://github.com/zigpy/zigpy-xbee";
diff --git a/nixpkgs/pkgs/development/python-modules/zigpy-znp/default.nix b/nixpkgs/pkgs/development/python-modules/zigpy-znp/default.nix
index 474e7f309e34..f8413d9aa17f 100644
--- a/nixpkgs/pkgs/development/python-modules/zigpy-znp/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/zigpy-znp/default.nix
@@ -18,13 +18,13 @@
 
 buildPythonPackage rec {
   pname = "zigpy-znp";
-  version = "0.5.3";
+  version = "0.5.4";
 
   src = fetchFromGitHub {
     owner = "zigpy";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-nnA/gVXBpCZFkspcO6kF3ZkEDu0vV0d9p1WNGVrN0u8=";
+    sha256 = "0jki9qmjazh0by02c0w17dyaz0nl3gzjiy064mj6pi502d175831";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/zigpy/default.nix b/nixpkgs/pkgs/development/python-modules/zigpy/default.nix
index 7dab5cda6cc5..af498c59cf06 100644
--- a/nixpkgs/pkgs/development/python-modules/zigpy/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/zigpy/default.nix
@@ -15,13 +15,13 @@
 
 buildPythonPackage rec {
   pname = "zigpy";
-  version = "0.36.1";
+  version = "0.37.1";
 
   src = fetchFromGitHub {
     owner = "zigpy";
     repo = "zigpy";
     rev = version;
-    sha256 = "0rfif8ds6m9ndxnc0f02fivc2pwidf476ylyx9y2b1sa2qz36z5w";
+    sha256 = "sha256-tDpu6tv8qwIPB3G5GKURtDi6QOYxF5jEVbzmJ2Px5W4=";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/zipp/default.nix b/nixpkgs/pkgs/development/python-modules/zipp/default.nix
index 7ef26dbd7606..c070e2327772 100644
--- a/nixpkgs/pkgs/development/python-modules/zipp/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/zipp/default.nix
@@ -2,31 +2,22 @@
 , buildPythonPackage
 , fetchPypi
 , setuptools-scm
-, pytest
-, pytest-flake8
 , more-itertools
-, toml
 }:
 
 buildPythonPackage rec {
   pname = "zipp";
-  version = "3.4.1";
+  version = "3.5.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "3607921face881ba3e026887d8150cca609d517579abe052ac81fc5aeffdbd76";
+    sha256 = "f5812b1e007e48cff63449a5e9f4e7ebea716b4111f9c4f9a645f91d579bf0c4";
   };
 
-  nativeBuildInputs = [ setuptools-scm toml ];
+  nativeBuildInputs = [ setuptools-scm ];
 
   propagatedBuildInputs = [ more-itertools ];
 
-  checkInputs = [ pytest pytest-flake8 ];
-
-  checkPhase = ''
-    pytest
-  '';
-
   # Prevent infinite recursion with pytest
   doCheck = false;
 
@@ -34,5 +25,6 @@ buildPythonPackage rec {
     description = "Pathlib-compatible object wrapper for zip files";
     homepage = "https://github.com/jaraco/zipp";
     license = licenses.mit;
+    maintainers = with maintainers; [ ];
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/zodb/default.nix b/nixpkgs/pkgs/development/python-modules/zodb/default.nix
index aa7cc6c97ebd..e4f1e403cd97 100644
--- a/nixpkgs/pkgs/development/python-modules/zodb/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/zodb/default.nix
@@ -2,7 +2,6 @@
 , fetchPypi
 , buildPythonPackage
 , python
-, pythonAtLeast
 , zope_testrunner
 , transaction
 , six
@@ -16,46 +15,43 @@
 }:
 
 buildPythonPackage rec {
-    pname = "ZODB";
-    version = "5.6.0";
-
-    src = fetchPypi {
-      inherit pname version;
-      sha256 = "1zh7rd182l15swkbkm3ib0wgyn16xasdz2mzry8k4lwk6dagnm26";
-    };
-
-    # remove broken test
-    postPatch = ''
-      rm -vf src/ZODB/tests/testdocumentation.py
-    '';
-
-    # ZConfig 3.5.0 is not compatible with Python 3.8
-    disabled = pythonAtLeast "3.8";
-
-    propagatedBuildInputs = [
-      transaction
-      six
-      zope_interface
-      zodbpickle
-      zconfig
-      persistent
-      zc_lockfile
-      BTrees
-    ];
-
-    checkInputs = [
-      manuel
-      zope_testrunner
-    ];
-
-    checkPhase = ''
-      ${python.interpreter} -m zope.testrunner --test-path=src []
-    '';
-
-    meta = with lib; {
-      description = "Zope Object Database: object database and persistence";
-      homepage = "https://pypi.python.org/pypi/ZODB";
-      license = licenses.zpl21;
-      maintainers = with maintainers; [ goibhniu ];
-    };
+  pname = "ZODB";
+  version = "5.6.0";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1zh7rd182l15swkbkm3ib0wgyn16xasdz2mzry8k4lwk6dagnm26";
+  };
+
+  # remove broken test
+  postPatch = ''
+    rm -vf src/ZODB/tests/testdocumentation.py
+  '';
+
+  propagatedBuildInputs = [
+    transaction
+    six
+    zope_interface
+    zodbpickle
+    zconfig
+    persistent
+    zc_lockfile
+    BTrees
+  ];
+
+  checkInputs = [
+    manuel
+    zope_testrunner
+  ];
+
+  checkPhase = ''
+    ${python.interpreter} -m zope.testrunner --test-path=src []
+  '';
+
+  meta = with lib; {
+    description = "Zope Object Database: object database and persistence";
+    homepage = "https://pypi.python.org/pypi/ZODB";
+    license = licenses.zpl21;
+    maintainers = with maintainers; [ goibhniu ];
+  };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/zope_component/default.nix b/nixpkgs/pkgs/development/python-modules/zope_component/default.nix
index 41c15fcd1307..a5cbcffe4336 100644
--- a/nixpkgs/pkgs/development/python-modules/zope_component/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/zope_component/default.nix
@@ -12,11 +12,11 @@
 
 buildPythonPackage rec {
   pname = "zope.component";
-  version = "5.0.0";
+  version = "5.0.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "df541a0501c79123f9ac30c6686a9e45c2690c5c3ae4f2b7f4c6fd1a3aaaf614";
+    sha256 = "32cbe426ba8fa7b62ce5b211f80f0718a0c749cc7ff09e3f4b43a57f7ccdf5e5";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/zope_proxy/default.nix b/nixpkgs/pkgs/development/python-modules/zope_proxy/default.nix
index 67e8a191d97a..2d1a5880d0de 100644
--- a/nixpkgs/pkgs/development/python-modules/zope_proxy/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/zope_proxy/default.nix
@@ -6,11 +6,11 @@
 
 buildPythonPackage rec {
   pname = "zope.proxy";
-  version = "4.3.5";
+  version = "4.4.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "a66a0d94e5b081d5d695e66d6667e91e74d79e273eee95c1747717ba9cb70792";
+    sha256 = "b244904c5148067c3f1899d29a2c1a28faca747b143192c0f825e6bf3170a347";
   };
 
   propagatedBuildInputs = [ zope_interface ];
diff --git a/nixpkgs/pkgs/development/python-modules/zwave-js-server-python/default.nix b/nixpkgs/pkgs/development/python-modules/zwave-js-server-python/default.nix
index 067b35dde6ad..a37ee67ed828 100644
--- a/nixpkgs/pkgs/development/python-modules/zwave-js-server-python/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/zwave-js-server-python/default.nix
@@ -9,7 +9,7 @@
 
 buildPythonPackage rec {
   pname = "zwave-js-server-python";
-  version = "0.28.0";
+  version = "0.30.0";
   disabled = pythonOlder "3.8";
 
 
@@ -17,7 +17,7 @@ buildPythonPackage rec {
     owner = "home-assistant-libs";
     repo = pname;
     rev = version;
-    sha256 = "137m9052ndbii0q6zw9vmwsfimai05q9np4wv06nw2p2mhy5x48p";
+    sha256 = "sha256-KYMq0qDVLHzgaYljwYeK58aggD5kBAI1J/RsirGcVvs=";
   };
 
   propagatedBuildInputs = [