about summary refs log tree commit diff
path: root/nixpkgs/pkgs/development/python-modules
diff options
context:
space:
mode:
authorAlyssa Ross <hi@alyssa.is>2021-01-26 18:06:19 +0000
committerAlyssa Ross <hi@alyssa.is>2021-01-26 18:21:18 +0000
commit7ac6743433dd45ceaead2ca96f6356dc0d064ce6 (patch)
treeb68ec89d7d2a8d2b6e6b1ff94ba26d6af4096350 /nixpkgs/pkgs/development/python-modules
parentc5c7451dbef37b51f52792d6395a670ef5183d27 (diff)
parent891f607d5301d6730cb1f9dcf3618bcb1ab7f10e (diff)
downloadnixlib-7ac6743433dd45ceaead2ca96f6356dc0d064ce6.tar
nixlib-7ac6743433dd45ceaead2ca96f6356dc0d064ce6.tar.gz
nixlib-7ac6743433dd45ceaead2ca96f6356dc0d064ce6.tar.bz2
nixlib-7ac6743433dd45ceaead2ca96f6356dc0d064ce6.tar.lz
nixlib-7ac6743433dd45ceaead2ca96f6356dc0d064ce6.tar.xz
nixlib-7ac6743433dd45ceaead2ca96f6356dc0d064ce6.tar.zst
nixlib-7ac6743433dd45ceaead2ca96f6356dc0d064ce6.zip
Merge commit '891f607d5301d6730cb1f9dcf3618bcb1ab7f10e'
Diffstat (limited to 'nixpkgs/pkgs/development/python-modules')
-rw-r--r--nixpkgs/pkgs/development/python-modules/APScheduler/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/Cython/default.nix8
-rw-r--r--nixpkgs/pkgs/development/python-modules/FormEncode/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/HTSeq/default.nix8
-rw-r--r--nixpkgs/pkgs/development/python-modules/IPy/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/JPype1/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/MechanicalSoup/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/PyLD/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/ROPGadget/default.nix8
-rw-r--r--nixpkgs/pkgs/development/python-modules/Rtree/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/Theano/default.nix12
-rw-r--r--nixpkgs/pkgs/development/python-modules/Wand/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/WazeRouteCalculator/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/aadict/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/aafigure/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/acebinf/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/acme-tiny/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/actdiag/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/adafruit-platformdetect/default.nix28
-rw-r--r--nixpkgs/pkgs/development/python-modules/adafruit-pureio/default.nix29
-rw-r--r--nixpkgs/pkgs/development/python-modules/adal/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/adext/default.nix33
-rw-r--r--nixpkgs/pkgs/development/python-modules/advantage-air/default.nix26
-rw-r--r--nixpkgs/pkgs/development/python-modules/aenum/default.nix8
-rw-r--r--nixpkgs/pkgs/development/python-modules/afdko/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/agate-dbf/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/agate-sql/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/agent-py/default.nix26
-rw-r--r--nixpkgs/pkgs/development/python-modules/aiodns/default.nix10
-rw-r--r--nixpkgs/pkgs/development/python-modules/aioeafm/default.nix44
-rw-r--r--nixpkgs/pkgs/development/python-modules/aioesphomeapi/default.nix12
-rw-r--r--nixpkgs/pkgs/development/python-modules/aioeventlet/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/aioflo/default.nix45
-rw-r--r--nixpkgs/pkgs/development/python-modules/aioguardian/default.nix62
-rw-r--r--nixpkgs/pkgs/development/python-modules/aioh2/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/aiohomekit/default.nix56
-rw-r--r--nixpkgs/pkgs/development/python-modules/aiohttp-remotes/default.nix11
-rw-r--r--nixpkgs/pkgs/development/python-modules/aioimaplib/default.nix41
-rw-r--r--nixpkgs/pkgs/development/python-modules/aiokef/default.nix44
-rw-r--r--nixpkgs/pkgs/development/python-modules/aiolifx/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/aioredis/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/aioshelly/default.nix35
-rw-r--r--nixpkgs/pkgs/development/python-modules/aiosqlite/default.nix27
-rw-r--r--nixpkgs/pkgs/development/python-modules/aiostream/default.nix30
-rw-r--r--nixpkgs/pkgs/development/python-modules/aioswitcher/default.nix45
-rw-r--r--nixpkgs/pkgs/development/python-modules/aiowinreg/default.nix28
-rw-r--r--nixpkgs/pkgs/development/python-modules/aiozeroconf/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/airly/default.nix35
-rw-r--r--nixpkgs/pkgs/development/python-modules/ajpy/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/alabaster/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/alarmdecoder/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/alembic/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/alerta-server/default.nix8
-rw-r--r--nixpkgs/pkgs/development/python-modules/alerta/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/alot/default.nix2
-rw-r--r--nixpkgs/pkgs/development/python-modules/altair/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/amazon_kclpy/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/amcrest/default.nix43
-rw-r--r--nixpkgs/pkgs/development/python-modules/amply/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/amqp/default.nix8
-rw-r--r--nixpkgs/pkgs/development/python-modules/amqplib/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/aniso8601/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/annoy/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/anonip/default.nix2
-rw-r--r--nixpkgs/pkgs/development/python-modules/ansi/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/ansicolor/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/ansicolors/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/ansiconv/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/apipkg/default.nix10
-rw-r--r--nixpkgs/pkgs/development/python-modules/apprise/default.nix18
-rw-r--r--nixpkgs/pkgs/development/python-modules/approvaltests/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/apptools/default.nix2
-rw-r--r--nixpkgs/pkgs/development/python-modules/apsw/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/archinfo/default.nix32
-rw-r--r--nixpkgs/pkgs/development/python-modules/aresponses/default.nix40
-rw-r--r--nixpkgs/pkgs/development/python-modules/argh/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/args/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/aria2p/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/asana/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/asgi-csrf/default.nix24
-rw-r--r--nixpkgs/pkgs/development/python-modules/asgiref/default.nix7
-rw-r--r--nixpkgs/pkgs/development/python-modules/asn1ate/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/astral/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/astunparse/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/asyncio-dgram/default.nix37
-rw-r--r--nixpkgs/pkgs/development/python-modules/asyncssh/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/asyncwhois/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/asysocks/default.nix25
-rw-r--r--nixpkgs/pkgs/development/python-modules/atenpdu/default.nix28
-rw-r--r--nixpkgs/pkgs/development/python-modules/atomiclong/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/atomicwrites/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/atomman/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/atsim_potentials/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/attrdict/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/audio-metadata/default.nix8
-rw-r--r--nixpkgs/pkgs/development/python-modules/authlib/default.nix8
-rw-r--r--nixpkgs/pkgs/development/python-modules/authres/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/autograd/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/autologging/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/automat/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/autopep8/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/av/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/avea/default.nix32
-rw-r--r--nixpkgs/pkgs/development/python-modules/avro/default.nix10
-rw-r--r--nixpkgs/pkgs/development/python-modules/avro3k/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/awesome-slugify/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/awesomeversion/default.nix39
-rw-r--r--nixpkgs/pkgs/development/python-modules/awkward/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/awkward0/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/awsiotpythonsdk/default.nix27
-rw-r--r--nixpkgs/pkgs/development/python-modules/axis/default.nix38
-rw-r--r--nixpkgs/pkgs/development/python-modules/azure-core/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/azure-eventgrid/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/azure-identity/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/azure-mgmt-advisor/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/azure-mgmt-apimanagement/default.nix12
-rw-r--r--nixpkgs/pkgs/development/python-modules/azure-mgmt-batch/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/azure-mgmt-cognitiveservices/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/azure-mgmt-commerce/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/azure-mgmt-compute/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/azure-mgmt-consumption/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/azure-mgmt-datafactory/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/azure-mgmt-datalake-store/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/azure-mgmt-devtestlabs/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/azure-mgmt-eventgrid/default.nix7
-rw-r--r--nixpkgs/pkgs/development/python-modules/azure-mgmt-hdinsight/default.nix12
-rw-r--r--nixpkgs/pkgs/development/python-modules/azure-mgmt-iotcentral/default.nix8
-rw-r--r--nixpkgs/pkgs/development/python-modules/azure-mgmt-iothub/default.nix8
-rw-r--r--nixpkgs/pkgs/development/python-modules/azure-mgmt-loganalytics/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/azure-mgmt-logic/default.nix7
-rw-r--r--nixpkgs/pkgs/development/python-modules/azure-mgmt-marketplaceordering/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/azure-mgmt-monitor/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/azure-mgmt-netapp/default.nix12
-rw-r--r--nixpkgs/pkgs/development/python-modules/azure-mgmt-notificationhubs/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/azure-mgmt-policyinsights/default.nix9
-rw-r--r--nixpkgs/pkgs/development/python-modules/azure-mgmt-rdbms/default.nix9
-rw-r--r--nixpkgs/pkgs/development/python-modules/azure-mgmt-recoveryservices/default.nix9
-rw-r--r--nixpkgs/pkgs/development/python-modules/azure-mgmt-recoveryservicesbackup/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/azure-mgmt-relay/default.nix7
-rw-r--r--nixpkgs/pkgs/development/python-modules/azure-mgmt-search/default.nix11
-rw-r--r--nixpkgs/pkgs/development/python-modules/azure-mgmt-security/default.nix12
-rw-r--r--nixpkgs/pkgs/development/python-modules/azure-mgmt-subscription/default.nix9
-rw-r--r--nixpkgs/pkgs/development/python-modules/azure-servicebus/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/azure-storage-blob/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-artifacts/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/b2sdk/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/babelfish/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/backports-datetime-fromisoformat/default.nix23
-rw-r--r--nixpkgs/pkgs/development/python-modules/backports-shutil-which/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/backports_csv/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/backports_os/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/backports_unittest-mock/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/backports_weakref/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/bacpypes/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/bap/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/base36/default.nix35
-rw-r--r--nixpkgs/pkgs/development/python-modules/base58/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/basemap/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/bash_kernel/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/batinfo/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/bayespy/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/bc-python-hcl2/default.nix49
-rw-r--r--nixpkgs/pkgs/development/python-modules/bcdoc/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/bcrypt/default.nix10
-rw-r--r--nixpkgs/pkgs/development/python-modules/beancount/default.nix8
-rw-r--r--nixpkgs/pkgs/development/python-modules/beanstalkc/default.nix8
-rw-r--r--nixpkgs/pkgs/development/python-modules/beautifulsoup4/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/bedup/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/behave/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/bellows/default.nix27
-rw-r--r--nixpkgs/pkgs/development/python-modules/bespon/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/betacode/default.nix2
-rw-r--r--nixpkgs/pkgs/development/python-modules/betamax-matchers/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/betamax-serializers/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/betamax/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/bidict/default.nix13
-rw-r--r--nixpkgs/pkgs/development/python-modules/billiard/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/binho-host-adapter/default.nix28
-rw-r--r--nixpkgs/pkgs/development/python-modules/binwalk/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/bitarray/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/bitbox02/default.nix24
-rw-r--r--nixpkgs/pkgs/development/python-modules/bitbucket-api/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/bitbucket-cli/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/bitmath/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/bitstring/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/bjoern/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/black-macchiato/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/bleak/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/blessed/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/blessings/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/blinker/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/blis/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/blist/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/blivet/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/block-io/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/blockdiag/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/bluepy/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/boltons/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/boltztrap2/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/bootstrapped-pip/default.nix8
-rw-r--r--nixpkgs/pkgs/development/python-modules/boto3/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/botocore/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/bottle/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/box2d/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/bpython/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/bravado-core/default.nix2
-rw-r--r--nixpkgs/pkgs/development/python-modules/breathe/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/browser-cookie3/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/bsblan/default.nix53
-rw-r--r--nixpkgs/pkgs/development/python-modules/bsddb3/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/bsdiff4/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/bt-proximity/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/btchip/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/btrees/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/btrfs/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/bugsnag/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/bugwarrior/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/bugz/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/bugzilla/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/build/default.nix16
-rw-r--r--nixpkgs/pkgs/development/python-modules/buildout-nix/default.nix8
-rw-r--r--nixpkgs/pkgs/development/python-modules/buildout/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/bumps/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/bunch/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/bwapy/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/cachecontrol/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/cachelib/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/cachetools/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/cadquery/default.nix2
-rw-r--r--nixpkgs/pkgs/development/python-modules/cairosvg/1_x.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/cairosvg/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/canonicaljson/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/capstone/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/carbon/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/carrot/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/casbin/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/case/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/casttube/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/catalogue/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/catboost/default.nix56
-rw-r--r--nixpkgs/pkgs/development/python-modules/catboost/nix-support.patch181
-rw-r--r--nixpkgs/pkgs/development/python-modules/cattrs/default.nix35
-rw-r--r--nixpkgs/pkgs/development/python-modules/cbor/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/cbor2/default.nix18
-rw-r--r--nixpkgs/pkgs/development/python-modules/cccolutils/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/cddb/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/cdecimal/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/cement/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/censys/default.nix50
-rw-r--r--nixpkgs/pkgs/development/python-modules/cerberus/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/cert-chain-resolver/default.nix36
-rw-r--r--nixpkgs/pkgs/development/python-modules/certbot/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/certifi/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/certipy/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/cffi/default.nix10
-rw-r--r--nixpkgs/pkgs/development/python-modules/cfn-lint/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/cftime/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/cgroup-utils/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/chai/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/chainmap/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/chalice/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/chameleon/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/channels-redis/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/channels/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/chardet/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/check-manifest/default.nix10
-rw-r--r--nixpkgs/pkgs/development/python-modules/cheetah3/default.nix8
-rw-r--r--nixpkgs/pkgs/development/python-modules/cherrypy/17.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/cherrypy/default.nix8
-rw-r--r--nixpkgs/pkgs/development/python-modules/cirq/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/cjson/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/ckcc-protocol/default.nix2
-rw-r--r--nixpkgs/pkgs/development/python-modules/cld2-cffi/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/clf/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/cliapp/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/click-completion/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/click-didyoumean/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/click-help-colors/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/click-log/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/click-plugins/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/click-repl/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/clickclick/default.nix2
-rw-r--r--nixpkgs/pkgs/development/python-modules/cliff/default.nix26
-rw-r--r--nixpkgs/pkgs/development/python-modules/clifford/default.nix24
-rw-r--r--nixpkgs/pkgs/development/python-modules/cligj/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/clint/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/clize/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/closure-linter/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/cloudpickle/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/cloudscraper/default.nix38
-rw-r--r--nixpkgs/pkgs/development/python-modules/clustershell/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/cmd2/default.nix10
-rw-r--r--nixpkgs/pkgs/development/python-modules/cmdline/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/cmdtest/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/cntk/default.nix8
-rw-r--r--nixpkgs/pkgs/development/python-modules/cocotb/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/codecov/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/cogapp/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/coilmq/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/colanderalchemy/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/colorama/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/colorcet/default.nix8
-rw-r--r--nixpkgs/pkgs/development/python-modules/colorclass/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/colored/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/coloredlogs/default.nix11
-rw-r--r--nixpkgs/pkgs/development/python-modules/colorlog/default.nix22
-rw-r--r--nixpkgs/pkgs/development/python-modules/colorlover/default.nix10
-rw-r--r--nixpkgs/pkgs/development/python-modules/colour/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/commandparse/default.nix25
-rw-r--r--nixpkgs/pkgs/development/python-modules/configobj/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/configparser/4.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/configparser/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/configshell/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/confluent-kafka/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/constantly/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/construct/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/consul/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/contexter/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/convertdate/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/cookiecutter/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/cookies/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/coreapi/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/coreschema/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/cornice/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/coronavirus/default.nix32
-rw-r--r--nixpkgs/pkgs/development/python-modules/cot/default.nix9
-rw-r--r--nixpkgs/pkgs/development/python-modules/cov-core/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/cppheaderparser/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/crate/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/crayons/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/crc16/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/crccheck/default.nix19
-rw-r--r--nixpkgs/pkgs/development/python-modules/crcmod/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/credstash/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/croniter/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/cryptacular/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/cryptography/3.3.nix12
-rw-r--r--nixpkgs/pkgs/development/python-modules/cryptography/default.nix12
-rw-r--r--nixpkgs/pkgs/development/python-modules/crytic-compile/default.nix5
-rw-r--r--nixpkgs/pkgs/development/python-modules/csscompressor/default.nix7
-rw-r--r--nixpkgs/pkgs/development/python-modules/cssmin/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/cssselect/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/cssutils/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/csvw/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/cupy/default.nix8
-rw-r--r--nixpkgs/pkgs/development/python-modules/curtsies/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/curve25519-donna/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/cx_freeze/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/cx_oracle/default.nix8
-rw-r--r--nixpkgs/pkgs/development/python-modules/cymem/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/cypari2/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/daemonize/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/daphne/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/darcsver/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/dask-glm/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/dask-image/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/dask-jobqueue/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/dask-ml/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/dask-mpi/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/dask-xgboost/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/dask/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/databricks-cli/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/databricks-connect/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/dataclasses/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/datadiff/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/datamodeldict/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/dateutil/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/datrie/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/dbf/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/dbfread/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/dbus-next/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/dbus/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/dbutils/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/dcmstack/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/deap/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/debian/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/deep_merge/default.nix24
-rw-r--r--nixpkgs/pkgs/development/python-modules/deluge-client/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/demjson/default.nix11
-rw-r--r--nixpkgs/pkgs/development/python-modules/dependency-injector/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/deprecated/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/derpconf/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/descartes/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/deskcon/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/devolo-home-control-api/default.nix49
-rw-r--r--nixpkgs/pkgs/development/python-modules/diff_cover/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/digi-xbee/default.nix2
-rw-r--r--nixpkgs/pkgs/development/python-modules/digitalocean/default.nix27
-rw-r--r--nixpkgs/pkgs/development/python-modules/discid/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/discogs_client/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/discordpy/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/diskcache/default.nix18
-rw-r--r--nixpkgs/pkgs/development/python-modules/distlib/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/distorm3/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/distro/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/distutils_extra/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/dj-email-url/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/dj-search-url/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/django-allauth/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/django-anymail/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/django-auth-ldap/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/django-cache-url/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/django-cleanup/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/django-compat/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/django-configurations/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/django-csp/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/django-discover-runner/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/django-dynamic-preferences/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/django-filter/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/django-gravatar2/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/django-hijack-admin/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/django-hijack/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/django-logentry-admin/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/django-mailman3/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/django-maintenance-mode/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/django-oauth-toolkit/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/django-paintstore/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/django-polymorphic/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/django-postgresql-netfields/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/django-q/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/django-ranged-response/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/django-raster/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/django-storages/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/django-versatileimagefield/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/django-widget-tweaks/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/django/2.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/django/3.nix10
-rw-r--r--nixpkgs/pkgs/development/python-modules/django_appconf/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/django_classytags/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/django_colorful/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/django_compressor/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/django_contrib_comments/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/django_environ/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/django_evolution/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/django_guardian/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/django_modelcluster/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/django_nose/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/django_redis/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/django_reversion/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/django_silk/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/django_taggit/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/django_treebeard/default.nix8
-rw-r--r--nixpkgs/pkgs/development/python-modules/djangoql/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/djangorestframework/default.nix14
-rw-r--r--nixpkgs/pkgs/development/python-modules/dkimpy/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/dlib/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/dnachisel/default.nix37
-rw-r--r--nixpkgs/pkgs/development/python-modules/docker-pycreds/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/docker/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/dockerfile-parse/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/dockerpty/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/docopt/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/doctest-ignore-unicode/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/dogpile.cache/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/dogpile.core/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/doit/default.nix48
-rw-r--r--nixpkgs/pkgs/development/python-modules/dot2tex/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/dotty-dict/default.nix26
-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/drf-yasg/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/dropbox/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/ds-store/default.nix31
-rw-r--r--nixpkgs/pkgs/development/python-modules/dtopt/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/dufte/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/dulwich/0_19.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/dulwich/default.nix17
-rw-r--r--nixpkgs/pkgs/development/python-modules/dyn/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/dynd/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/easydict/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/easygui/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/easyprocess/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/ecdsa/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/ed25519/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/editorconfig/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/edward/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/eggdeps/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/elasticsearch-dsl/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/elasticsearch/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/elementpath/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/eliot/default.nix8
-rw-r--r--nixpkgs/pkgs/development/python-modules/emcee/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/emoji/default.nix2
-rw-r--r--nixpkgs/pkgs/development/python-modules/emv/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/enum/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/enum34/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/enzyme/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/epc/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/ephem/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/et_xmlfile/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/etcd/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/etebase/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/eth-utils/default.nix17
-rw-r--r--nixpkgs/pkgs/development/python-modules/evdev/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/eve/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/eventlet/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/eventlib/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/evernote/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/exchangelib/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/execnet/default.nix2
-rw-r--r--nixpkgs/pkgs/development/python-modules/exifread/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/eyed3/default.nix2
-rw-r--r--nixpkgs/pkgs/development/python-modules/ezdxf/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/face/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/face_recognition/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/face_recognition_models/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/fake-useragent/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/fake_factory/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/faker/default.nix48
-rw-r--r--nixpkgs/pkgs/development/python-modules/falcon/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/fastapi/default.nix49
-rw-r--r--nixpkgs/pkgs/development/python-modules/fastdiff/default.nix30
-rw-r--r--nixpkgs/pkgs/development/python-modules/fasteners/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/fastentrypoints/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/fastimport/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/fastpair/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/fastpbkdf2/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/fastprogress/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/fastrlock/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/fasttext/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/fdint/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/feedgen/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/feedgenerator/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/feedparser/5.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/feedparser/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/filebrowser_safe/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/filebytes/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/filelock/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/filterpy/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/fints/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/fire/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/first/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/fixerio/default.nix45
-rw-r--r--nixpkgs/pkgs/development/python-modules/flake8-blind-except/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/flake8/default.nix12
-rw-r--r--nixpkgs/pkgs/development/python-modules/flaky/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/flask-babel/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/flask-common/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/flask-compress/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/flask-cors/default.nix8
-rw-r--r--nixpkgs/pkgs/development/python-modules/flask-elastic/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/flask-jwt-extended/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/flask-ldap-login/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/flask-limiter/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/flask-login/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/flask-migrate/default.nix10
-rw-r--r--nixpkgs/pkgs/development/python-modules/flask-reverse-proxy-fix/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/flask-silk/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/flask-socketio/default.nix24
-rw-r--r--nixpkgs/pkgs/development/python-modules/flask-sqlalchemy/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/flask-swagger-ui/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/flask-swagger/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/flask-testing/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/flask-versioned/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/flask-wtf/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/flask/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/flaskbabel/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/flatbuffers/default.nix8
-rw-r--r--nixpkgs/pkgs/development/python-modules/flowlogs_reader/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/flufl/i18n.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/flup/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/flux-led/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/fnvhash/default.nix28
-rw-r--r--nixpkgs/pkgs/development/python-modules/folium/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/foolscap/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/forbiddenfruit/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/fortiosapi/default.nix40
-rw-r--r--nixpkgs/pkgs/development/python-modules/foxdot/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/freezegun/0.3.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/freezegun/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/fritzconnection/default.nix27
-rw-r--r--nixpkgs/pkgs/development/python-modules/frozendict/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/ftfy/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/ftputil/default.nix2
-rw-r--r--nixpkgs/pkgs/development/python-modules/fudge/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/funcparserlib/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/funcsigs/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/functools32/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/funcy/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/furl/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/fuse-python/default.nix14
-rw-r--r--nixpkgs/pkgs/development/python-modules/fusepy/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/fuzzywuzzy/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/gast/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/gateone/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/gcovr/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/gdata/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/gdrivefs/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/geeknote/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/genanki/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/genome-collector/default.nix34
-rw-r--r--nixpkgs/pkgs/development/python-modules/genpy/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/genshi/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/genzshcomp/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/geoalchemy2/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/geographiclib/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/geojson-client/default.nix39
-rw-r--r--nixpkgs/pkgs/development/python-modules/geopandas/default.nix13
-rw-r--r--nixpkgs/pkgs/development/python-modules/geopy/2.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/geopy/default.nix42
-rw-r--r--nixpkgs/pkgs/development/python-modules/gevent-socketio/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/gevent-websocket/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/gevent/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/geventhttpclient/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/ghdiff/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/gipc/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/git-annex-adapter/default.nix9
-rw-r--r--nixpkgs/pkgs/development/python-modules/git-sweep/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/glances-api/default.nix34
-rw-r--r--nixpkgs/pkgs/development/python-modules/globre/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/glom/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/glymur/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/gmpy2/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/gmusicapi/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/gnureadline/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/gnutls/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/goobook/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/goocalendar/default.nix10
-rw-r--r--nixpkgs/pkgs/development/python-modules/google-api-core/default.nix (renamed from nixpkgs/pkgs/development/python-modules/google_api_core/default.nix)37
-rw-r--r--nixpkgs/pkgs/development/python-modules/google-api-python-client/default.nix12
-rw-r--r--nixpkgs/pkgs/development/python-modules/google-apputils/default.nix (renamed from nixpkgs/pkgs/development/python-modules/google_apputils/default.nix)10
-rw-r--r--nixpkgs/pkgs/development/python-modules/google-auth-httplib2/default.nix35
-rw-r--r--nixpkgs/pkgs/development/python-modules/google-auth-oauthlib/default.nix29
-rw-r--r--nixpkgs/pkgs/development/python-modules/google-auth/default.nix54
-rw-r--r--nixpkgs/pkgs/development/python-modules/google-cloud-access-context-manager/default.nix12
-rw-r--r--nixpkgs/pkgs/development/python-modules/google-cloud-asset/default.nix54
-rw-r--r--nixpkgs/pkgs/development/python-modules/google-cloud-automl/default.nix59
-rw-r--r--nixpkgs/pkgs/development/python-modules/google-cloud-bigquery-datatransfer/default.nix35
-rw-r--r--nixpkgs/pkgs/development/python-modules/google-cloud-bigquery/default.nix58
-rw-r--r--nixpkgs/pkgs/development/python-modules/google-cloud-bigtable/default.nix (renamed from nixpkgs/pkgs/development/python-modules/google_cloud_bigtable/default.nix)10
-rw-r--r--nixpkgs/pkgs/development/python-modules/google-cloud-container/default.nix43
-rw-r--r--nixpkgs/pkgs/development/python-modules/google-cloud-core/default.nix (renamed from nixpkgs/pkgs/development/python-modules/google_cloud_core/default.nix)29
-rw-r--r--nixpkgs/pkgs/development/python-modules/google-cloud-dataproc/default.nix42
-rw-r--r--nixpkgs/pkgs/development/python-modules/google-cloud-datastore/default.nix46
-rw-r--r--nixpkgs/pkgs/development/python-modules/google-cloud-dlp/default.nix42
-rw-r--r--nixpkgs/pkgs/development/python-modules/google-cloud-dns/default.nix41
-rw-r--r--nixpkgs/pkgs/development/python-modules/google-cloud-error-reporting/default.nix (renamed from nixpkgs/pkgs/development/python-modules/google_cloud_error_reporting/default.nix)31
-rw-r--r--nixpkgs/pkgs/development/python-modules/google-cloud-firestore/default.nix64
-rw-r--r--nixpkgs/pkgs/development/python-modules/google-cloud-iam/default.nix25
-rw-r--r--nixpkgs/pkgs/development/python-modules/google-cloud-iot/default.nix42
-rw-r--r--nixpkgs/pkgs/development/python-modules/google-cloud-kms/default.nix (renamed from nixpkgs/pkgs/development/python-modules/google_cloud_kms/default.nix)25
-rw-r--r--nixpkgs/pkgs/development/python-modules/google-cloud-language/default.nix37
-rw-r--r--nixpkgs/pkgs/development/python-modules/google-cloud-logging/default.nix59
-rw-r--r--nixpkgs/pkgs/development/python-modules/google-cloud-monitoring/default.nix42
-rw-r--r--nixpkgs/pkgs/development/python-modules/google-cloud-org-policy/default.nix8
-rw-r--r--nixpkgs/pkgs/development/python-modules/google-cloud-os-config/default.nix29
-rw-r--r--nixpkgs/pkgs/development/python-modules/google-cloud-pubsub/default.nix42
-rw-r--r--nixpkgs/pkgs/development/python-modules/google-cloud-redis/default.nix37
-rw-r--r--nixpkgs/pkgs/development/python-modules/google-cloud-resource-manager/default.nix36
-rw-r--r--nixpkgs/pkgs/development/python-modules/google-cloud-runtimeconfig/default.nix39
-rw-r--r--nixpkgs/pkgs/development/python-modules/google-cloud-secret-manager/default.nix47
-rw-r--r--nixpkgs/pkgs/development/python-modules/google-cloud-securitycenter/default.nix39
-rw-r--r--nixpkgs/pkgs/development/python-modules/google-cloud-spanner/default.nix54
-rw-r--r--nixpkgs/pkgs/development/python-modules/google-cloud-speech/default.nix43
-rw-r--r--nixpkgs/pkgs/development/python-modules/google-cloud-storage/default.nix64
-rw-r--r--nixpkgs/pkgs/development/python-modules/google-cloud-tasks/default.nix44
-rw-r--r--nixpkgs/pkgs/development/python-modules/google-cloud-testutils/default.nix (renamed from nixpkgs/pkgs/development/python-modules/google_cloud_testutils/default.nix)12
-rw-r--r--nixpkgs/pkgs/development/python-modules/google-cloud-texttospeech/default.nix43
-rw-r--r--nixpkgs/pkgs/development/python-modules/google-cloud-trace/default.nix44
-rw-r--r--nixpkgs/pkgs/development/python-modules/google-cloud-translate/default.nix46
-rw-r--r--nixpkgs/pkgs/development/python-modules/google-cloud-videointelligence/default.nix45
-rw-r--r--nixpkgs/pkgs/development/python-modules/google-cloud-vision/default.nix41
-rw-r--r--nixpkgs/pkgs/development/python-modules/google-cloud-websecurityscanner/default.nix36
-rw-r--r--nixpkgs/pkgs/development/python-modules/google-crc32c/default.nix14
-rw-r--r--nixpkgs/pkgs/development/python-modules/google-i18n-address/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/google-music-proto/default.nix8
-rw-r--r--nixpkgs/pkgs/development/python-modules/google-music-utils/default.nix31
-rw-r--r--nixpkgs/pkgs/development/python-modules/google-music/default.nix13
-rw-r--r--nixpkgs/pkgs/development/python-modules/google-resumable-media/default.nix46
-rw-r--r--nixpkgs/pkgs/development/python-modules/google_auth/default.nix44
-rw-r--r--nixpkgs/pkgs/development/python-modules/google_cloud_asset/default.nix38
-rw-r--r--nixpkgs/pkgs/development/python-modules/google_cloud_automl/default.nix39
-rw-r--r--nixpkgs/pkgs/development/python-modules/google_cloud_bigquery/default.nix47
-rw-r--r--nixpkgs/pkgs/development/python-modules/google_cloud_bigquery_datatransfer/default.nix31
-rw-r--r--nixpkgs/pkgs/development/python-modules/google_cloud_container/default.nix29
-rw-r--r--nixpkgs/pkgs/development/python-modules/google_cloud_dataproc/default.nix33
-rw-r--r--nixpkgs/pkgs/development/python-modules/google_cloud_datastore/default.nix33
-rw-r--r--nixpkgs/pkgs/development/python-modules/google_cloud_dlp/default.nix32
-rw-r--r--nixpkgs/pkgs/development/python-modules/google_cloud_dns/default.nix33
-rw-r--r--nixpkgs/pkgs/development/python-modules/google_cloud_firestore/default.nix35
-rw-r--r--nixpkgs/pkgs/development/python-modules/google_cloud_iot/default.nix33
-rw-r--r--nixpkgs/pkgs/development/python-modules/google_cloud_language/default.nix32
-rw-r--r--nixpkgs/pkgs/development/python-modules/google_cloud_logging/default.nix38
-rw-r--r--nixpkgs/pkgs/development/python-modules/google_cloud_monitoring/default.nix32
-rw-r--r--nixpkgs/pkgs/development/python-modules/google_cloud_pubsub/default.nix35
-rw-r--r--nixpkgs/pkgs/development/python-modules/google_cloud_redis/default.nix38
-rw-r--r--nixpkgs/pkgs/development/python-modules/google_cloud_resource_manager/default.nix34
-rw-r--r--nixpkgs/pkgs/development/python-modules/google_cloud_runtimeconfig/default.nix34
-rw-r--r--nixpkgs/pkgs/development/python-modules/google_cloud_secret_manager/default.nix36
-rw-r--r--nixpkgs/pkgs/development/python-modules/google_cloud_securitycenter/default.nix33
-rw-r--r--nixpkgs/pkgs/development/python-modules/google_cloud_spanner/default.nix33
-rw-r--r--nixpkgs/pkgs/development/python-modules/google_cloud_speech/default.nix26
-rw-r--r--nixpkgs/pkgs/development/python-modules/google_cloud_storage/default.nix48
-rw-r--r--nixpkgs/pkgs/development/python-modules/google_cloud_tasks/default.nix33
-rw-r--r--nixpkgs/pkgs/development/python-modules/google_cloud_texttospeech/default.nix27
-rw-r--r--nixpkgs/pkgs/development/python-modules/google_cloud_trace/default.nix32
-rw-r--r--nixpkgs/pkgs/development/python-modules/google_cloud_translate/default.nix40
-rw-r--r--nixpkgs/pkgs/development/python-modules/google_cloud_videointelligence/default.nix31
-rw-r--r--nixpkgs/pkgs/development/python-modules/google_cloud_vision/default.nix33
-rw-r--r--nixpkgs/pkgs/development/python-modules/google_cloud_websecurityscanner/default.nix24
-rw-r--r--nixpkgs/pkgs/development/python-modules/google_resumable_media/default.nix38
-rw-r--r--nixpkgs/pkgs/development/python-modules/googleapis_common_protos/default.nix31
-rw-r--r--nixpkgs/pkgs/development/python-modules/googlemaps/default.nix11
-rw-r--r--nixpkgs/pkgs/development/python-modules/googletrans/default.nix11
-rw-r--r--nixpkgs/pkgs/development/python-modules/gorilla/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/gpapi/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/gphoto2/default.nix8
-rw-r--r--nixpkgs/pkgs/development/python-modules/gplaycli/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/gps3/default.nix27
-rw-r--r--nixpkgs/pkgs/development/python-modules/gpsoauth/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/gpy/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/gpyopt/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/gradient_sdk/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/gradient_statsd/default.nix2
-rw-r--r--nixpkgs/pkgs/development/python-modules/graphene/default.nix50
-rw-r--r--nixpkgs/pkgs/development/python-modules/graphite-web/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/graphite_beacon/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/graphql-relay/default.nix24
-rw-r--r--nixpkgs/pkgs/development/python-modules/graphviz/default.nix12
-rw-r--r--nixpkgs/pkgs/development/python-modules/graphviz/hardcode-graphviz-path.patch56
-rw-r--r--nixpkgs/pkgs/development/python-modules/grappelli_safe/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/grequests/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/grip/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/grpc_google_iam_v1/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/grpcio-gcp/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/grpcio-tools/default.nix10
-rw-r--r--nixpkgs/pkgs/development/python-modules/grpcio/default.nix35
-rw-r--r--nixpkgs/pkgs/development/python-modules/gsd/1.7.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/gspread/default.nix8
-rw-r--r--nixpkgs/pkgs/development/python-modules/gst-python/default.nix13
-rw-r--r--nixpkgs/pkgs/development/python-modules/gtimelog/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/guestfs/default.nix8
-rw-r--r--nixpkgs/pkgs/development/python-modules/gumath/default.nix5
-rw-r--r--nixpkgs/pkgs/development/python-modules/gunicorn/19.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/gunicorn/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/guzzle_sphinx_theme/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/gviz-api/default.nix26
-rw-r--r--nixpkgs/pkgs/development/python-modules/gyp/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/h11/default.nix25
-rw-r--r--nixpkgs/pkgs/development/python-modules/h2/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/h3/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/h5py/default.nix21
-rw-r--r--nixpkgs/pkgs/development/python-modules/ha-ffmpeg/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/handout/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/hass-nabucasa/default.nix41
-rw-r--r--nixpkgs/pkgs/development/python-modules/hatasmota/default.nix34
-rw-r--r--nixpkgs/pkgs/development/python-modules/haversine/default.nix32
-rw-r--r--nixpkgs/pkgs/development/python-modules/hawkauthlib/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/hbmqtt/default.nix7
-rw-r--r--nixpkgs/pkgs/development/python-modules/hcs_utils/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/hdmedians/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/heapdict/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/helper/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/hetzner/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/heudiconv/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/hg-evolve/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/hg-git/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/hglib/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/hgsvn/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/hidapi/default.nix12
-rw-r--r--nixpkgs/pkgs/development/python-modules/hieroglyph/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/hiredis/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/hiro/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/hjson/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/hkdf/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/hocr-tools/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/holidays/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/hoomd-blue/default.nix10
-rw-r--r--nixpkgs/pkgs/development/python-modules/hpack/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/hsaudiotag/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/hsaudiotag3k/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/html2text/2018.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/html5-parser/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/htmllaundry/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/htmlmin/default.nix7
-rw-r--r--nixpkgs/pkgs/development/python-modules/httmock/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/http_signature/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/httpauth/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/httpbin/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/httpretty/0.nix8
-rw-r--r--nixpkgs/pkgs/development/python-modules/httpretty/default.nix8
-rw-r--r--nixpkgs/pkgs/development/python-modules/httpx/default.nix2
-rw-r--r--nixpkgs/pkgs/development/python-modules/hug/default.nix31
-rw-r--r--nixpkgs/pkgs/development/python-modules/humanize/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/hupper/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/hwi/default.nix41
-rw-r--r--nixpkgs/pkgs/development/python-modules/hwi/relax-deps.patch16
-rw-r--r--nixpkgs/pkgs/development/python-modules/hydrawiser/default.nix43
-rw-r--r--nixpkgs/pkgs/development/python-modules/hyperframe/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/hyperopt/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/i3-py/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/i3ipc/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/icalendar/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/icmplib/default.nix38
-rw-r--r--nixpkgs/pkgs/development/python-modules/ics/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/identify/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/ifaddr/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/ifconfig-parser/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/ifcopenshell/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/ijson/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/image-match/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/imagecorruptions/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/imageio/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/imagesize/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/imapclient/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/imbalanced-learn/0.4.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/imbalanced-learn/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/imgaug/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/imgsize/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/importmagic/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/imread/default.nix8
-rw-r--r--nixpkgs/pkgs/development/python-modules/imutils/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/inflection/default.nix2
-rw-r--r--nixpkgs/pkgs/development/python-modules/influxdb/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/influxgraph/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/infoqscraper/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/inifile/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/iniparse/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/inquirer/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/interruptingcow/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/intervaltree/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/ipaddr/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/ipaddress/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/ipdb/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/ipdbplugin/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/ipfsapi/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/iptools/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/ipython/5.nix2
-rw-r--r--nixpkgs/pkgs/development/python-modules/ipyvue/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/isbnlib/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/iso3166/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/isodate/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/itemloaders/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/itsdangerous/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/itypes/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/j2cli/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/jabberbot/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/jc/default.nix11
-rw-r--r--nixpkgs/pkgs/development/python-modules/jdatetime/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/jedi/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/jenkins-job-builder/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/jenkinsapi/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/jinja2/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/jinja2_pluralize/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/jinja2_time/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/jmespath/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/johnnycanencrypt/Cargo.lock.patch1194
-rw-r--r--nixpkgs/pkgs/development/python-modules/johnnycanencrypt/default.nix99
-rw-r--r--nixpkgs/pkgs/development/python-modules/jpylyzer/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/json-schema-for-humans/default.nix35
-rw-r--r--nixpkgs/pkgs/development/python-modules/jsonfield/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/jsonpath_rw/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/jsonpointer/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/jsonref/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/jsonrpc-async/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/jsonrpc-base/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/jsonrpc-websocket/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/jsonwatch/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/jug/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/junos-eznc/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/jupyter-repo2docker/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/jupyter-telemetry/default.nix2
-rw-r--r--nixpkgs/pkgs/development/python-modules/jupyter/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/jupyterhub-systemdspawner/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/jupyterlab-git/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/jupyterlab_server/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/kaa-base/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/kaa-metadata/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/kafka-python/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/kaitaistruct/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/kajiki/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/kaptan/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/kazoo/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/keep/default.nix5
-rw-r--r--nixpkgs/pkgs/development/python-modules/keepalive/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/keepkey/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/keepkey_agent/default.nix7
-rw-r--r--nixpkgs/pkgs/development/python-modules/keras/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/kerberos/default.nix8
-rw-r--r--nixpkgs/pkgs/development/python-modules/keyring/2.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/keyrings-alt/default.nix10
-rw-r--r--nixpkgs/pkgs/development/python-modules/kitchen/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/kiwisolver/1_1.nix2
-rw-r--r--nixpkgs/pkgs/development/python-modules/kiwisolver/default.nix2
-rw-r--r--nixpkgs/pkgs/development/python-modules/koji/default.nix8
-rw-r--r--nixpkgs/pkgs/development/python-modules/korean-lunar-calendar/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/kubernetes/default.nix8
-rw-r--r--nixpkgs/pkgs/development/python-modules/labelbox/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/larch/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/lasagne/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/latexcodec/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/lazy-object-proxy/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/lazy_import/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/ldap/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/ldap3/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/ldappool/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/ldaptor/default.nix13
-rw-r--r--nixpkgs/pkgs/development/python-modules/le/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/leather/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/ledger_agent/default.nix7
-rw-r--r--nixpkgs/pkgs/development/python-modules/ledgerblue/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/ledgerwallet/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/libagent/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/libais/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/libarchive-c/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/libarcus/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/libasyncns/default.nix8
-rw-r--r--nixpkgs/pkgs/development/python-modules/libcloud/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/libcst/default.nix5
-rw-r--r--nixpkgs/pkgs/development/python-modules/libevdev/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/libgpuarray/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/libkeepass/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/liblarch/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/libmr/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/libnacl/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/librosa/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/libsavitar/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/libsoundtouch/default.nix2
-rw-r--r--nixpkgs/pkgs/development/python-modules/libthumbor/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/libtmux/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/libusb1/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/libversion/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/libvirt/5.9.0.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/libvirt/default.nix10
-rw-r--r--nixpkgs/pkgs/development/python-modules/lightblue/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/lightgbm/default.nix8
-rw-r--r--nixpkgs/pkgs/development/python-modules/lightning/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/limits/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/limnoria/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/linecache2/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/linode-api/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/linode/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/liquidctl/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/livelossplot/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/livestreamer-curses/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/livestreamer/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/llfuse/default.nix20
-rw-r--r--nixpkgs/pkgs/development/python-modules/llvmlite/default.nix13
-rw-r--r--nixpkgs/pkgs/development/python-modules/lmdb/default.nix20
-rw-r--r--nixpkgs/pkgs/development/python-modules/lmtpd/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/localzone/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/locket/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/logilab/common.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/logilab/constraint.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/logilab_astng/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/loguru/default.nix8
-rw-r--r--nixpkgs/pkgs/development/python-modules/logutils/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/lpod/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/lsassy/default.nix37
-rw-r--r--nixpkgs/pkgs/development/python-modules/lsi/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/lxc/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/lyricwikia/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/m2crypto/default.nix2
-rw-r--r--nixpkgs/pkgs/development/python-modules/m2r/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/maestral/default.nix12
-rw-r--r--nixpkgs/pkgs/development/python-modules/magic-wormhole-mailbox-server/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/magic-wormhole/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/magic/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/mahotas/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/mailcap-fix/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/mailchimp/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/mailman-hyperkitty/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/mailman-rss/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/mailmanclient/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/manhole/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/manticore/default.nix109
-rw-r--r--nixpkgs/pkgs/development/python-modules/manuel/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/mapsplotlib/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/marionette-harness/mozdevice.nix3
-rw-r--r--nixpkgs/pkgs/development/python-modules/marionette-harness/mozinfo.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/marisa/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/markdown-macros/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/markdown2/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/markdownsuperscript/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/markerlib/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/markupsafe/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/matplotlib/2.nix27
-rw-r--r--nixpkgs/pkgs/development/python-modules/matplotlib/default.nix23
-rw-r--r--nixpkgs/pkgs/development/python-modules/matrix-client/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/mautrix/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/maya/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/mccabe/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/mdp/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/mechanize/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/meinheld/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/meld3/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/meliae/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/memcached/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/memory_profiler/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/mergedeep/default.nix8
-rw-r--r--nixpkgs/pkgs/development/python-modules/mesa/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/metaphone/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/mezzanine/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/micawber/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/midiutil/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/milc/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/minidump/default.nix25
-rw-r--r--nixpkgs/pkgs/development/python-modules/minikerberos/default.nix32
-rw-r--r--nixpkgs/pkgs/development/python-modules/minimock/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/miniupnpc/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/mitmproxy/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/mlflow/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/mlrose/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/mlxtend/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/mmpython/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/mocket/default.nix52
-rw-r--r--nixpkgs/pkgs/development/python-modules/mockito/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/modestmaps/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/mongodict/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/mongoengine/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/monotonic/default.nix8
-rw-r--r--nixpkgs/pkgs/development/python-modules/moretools/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/moviepy/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/mox/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/mox3/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/mozsvc/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/mpd/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/mpd2/default.nix10
-rw-r--r--nixpkgs/pkgs/development/python-modules/mpi4py/default.nix9
-rw-r--r--nixpkgs/pkgs/development/python-modules/mpmath/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/mpv/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/mrbob/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/msal/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/msgpack-numpy/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/msldap/default.nix42
-rw-r--r--nixpkgs/pkgs/development/python-modules/msrest/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/msrplib/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/mulpyplexer/default.nix25
-rw-r--r--nixpkgs/pkgs/development/python-modules/multi_key_dict/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/munch/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/munkres/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/murmurhash/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/musicbrainzngs/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/mutag/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/muttils/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/mwclient/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/mwlib-ext/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/mwlib-rl/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/mwlib/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/mwparserfromhell/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/mxnet/default.nix8
-rw-r--r--nixpkgs/pkgs/development/python-modules/mygpoclient/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/mypy-protobuf/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/mypy/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/mypy/extensions.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/mysql-connector/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/mysqlclient/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/namebench/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/nameparser/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/nanoleaf/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/nanomsg-python/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/nassl/default.nix43
-rw-r--r--nixpkgs/pkgs/development/python-modules/nassl/nix-ssl-cert-file.patch14
-rw-r--r--nixpkgs/pkgs/development/python-modules/nbclient/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/nbxmpp/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/ncclient/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/ndg-httpsclient/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/ndtypes/default.nix5
-rw-r--r--nixpkgs/pkgs/development/python-modules/netaddr/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/netcdf4/default.nix2
-rw-r--r--nixpkgs/pkgs/development/python-modules/netdisco/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/netifaces/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/neuronpy/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/nevow/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/nibabel/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/nidaqmx/default.nix2
-rw-r--r--nixpkgs/pkgs/development/python-modules/nimfa/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/nine/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/nipy/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/nipype/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/nitime/default.nix13
-rw-r--r--nixpkgs/pkgs/development/python-modules/nixpkgs/default.nix8
-rw-r--r--nixpkgs/pkgs/development/python-modules/node-semver/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/noise/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/noiseprotocol/default.nix26
-rw-r--r--nixpkgs/pkgs/development/python-modules/nose-cover3/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/nose-cprof/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/nose-focus/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/nose-of-yeti/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/nose-pattern-exclude/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/nose/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/nose2/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/nose_progressive/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/nosejs/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/nosexcover/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/notebook/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/notify/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/notmuch/2.nix9
-rw-r--r--nixpkgs/pkgs/development/python-modules/notmuch/default.nix9
-rw-r--r--nixpkgs/pkgs/development/python-modules/ntplib/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/nuitka/default.nix8
-rw-r--r--nixpkgs/pkgs/development/python-modules/numba/default.nix13
-rw-r--r--nixpkgs/pkgs/development/python-modules/numericalunits/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/nvchecker/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/nwdiag/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/nxt-python/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/oath/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/oauth/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/oauth2/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/oauthlib/3.1.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/oauthlib/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/obfsproxy/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/objgraph/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/offtrac/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/ofxclient/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/ofxhome/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/ofxparse/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/ofxtools/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/olefile/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/omegaconf/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/onkyo-eiscp/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/openant/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/openbabel-bindings/default.nix27
-rw-r--r--nixpkgs/pkgs/development/python-modules/openidc-client/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/openrazer/common.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/openrazer/daemon.nix5
-rw-r--r--nixpkgs/pkgs/development/python-modules/openrazer/pylib.nix5
-rw-r--r--nixpkgs/pkgs/development/python-modules/openwebifpy/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/optuna/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/opuslib/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/ordereddict/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/orderedmultidict/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/orderedset/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/orm/default.nix10
-rw-r--r--nixpkgs/pkgs/development/python-modules/orvibo/default.nix33
-rw-r--r--nixpkgs/pkgs/development/python-modules/osc/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/oset/default.nix6
-rwxr-xr-xnixpkgs/pkgs/development/python-modules/osmnx/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/osqp/default.nix11
-rw-r--r--nixpkgs/pkgs/development/python-modules/ovito/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/packaging/2.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/packaging/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pagelabels/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pagerduty/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/palettable/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pamela/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/pamqp/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pandas-datareader/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pandas/2.nix27
-rw-r--r--nixpkgs/pkgs/development/python-modules/pandas/default.nix26
-rw-r--r--nixpkgs/pkgs/development/python-modules/pandocfilters/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/paperspace/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/parameterized/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/paramz/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/parse-type/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/parse/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/parsedatetime/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/parsimonious/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/paste/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pastedeploy/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pastescript/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/patator/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/patch-ng/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/patch/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/path-and-address/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pathos/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pathtools/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/paver/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pbkdf2/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pbr/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/pc-ble-driver-py/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pcpp/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pdf2image/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pdfkit/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pdfminer_six/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pdfposter/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pdfrw/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pdfx/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pecan/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/peewee/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/pelican/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pep257/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pep517/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pep8/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/peppercorn/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/persisting-theory/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pex/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pexif/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pg8000/1_12.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pg8000/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pgpdump/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pgpy/default.nix14
-rw-r--r--nixpkgs/pkgs/development/python-modules/pgsanity/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/pgspecial/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/phe/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/phonenumbers/default.nix8
-rw-r--r--nixpkgs/pkgs/development/python-modules/phonopy/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/phx-class-registry/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pickleshare/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/pid/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/piep/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/piexif/default.nix26
-rw-r--r--nixpkgs/pkgs/development/python-modules/pika-pool/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pika/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pikepdf/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pilkit/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pillow/6.nix10
-rw-r--r--nixpkgs/pkgs/development/python-modules/pillow/default.nix10
-rw-r--r--nixpkgs/pkgs/development/python-modules/pillowfight/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pims/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pint/default.nix2
-rw-r--r--nixpkgs/pkgs/development/python-modules/pip-tools/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/pipx/default.nix16
-rw-r--r--nixpkgs/pkgs/development/python-modules/pivy/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pkgconfig/default.nix15
-rw-r--r--nixpkgs/pkgs/development/python-modules/pkginfo/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pkuseg/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/plac/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pluginbase/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/plyvel/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/pocket/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/polib/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pomegranate/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pony/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pooch/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/poolsense/default.nix28
-rw-r--r--nixpkgs/pkgs/development/python-modules/poppler-qt5/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/portend/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/posix_ipc/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/poster3/default.nix3
-rw-r--r--nixpkgs/pkgs/development/python-modules/potr/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/power/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pox/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/poyo/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/ppft/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/ppscore/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/praw/6.3.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/praw/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/prawcore/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/preggy/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/preshed/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pretend/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/prettytable/1.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/prettytable/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/primer3/default.nix32
-rw-r--r--nixpkgs/pkgs/development/python-modules/privacyidea/ldap-proxy.nix5
-rw-r--r--nixpkgs/pkgs/development/python-modules/proboscis/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/process-tests/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/proglog/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/progress/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/progressbar/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/progressbar2/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/progressbar231/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/progressbar33/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/proto-plus/default.nix17
-rw-r--r--nixpkgs/pkgs/development/python-modules/protobuf/default.nix43
-rw-r--r--nixpkgs/pkgs/development/python-modules/prov/default.nix18
-rw-r--r--nixpkgs/pkgs/development/python-modules/psutil/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/ptable/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/ptest/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/ptpython/default.nix2
-rw-r--r--nixpkgs/pkgs/development/python-modules/publicsuffix/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/publicsuffix2/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pubnub/default.nix57
-rw-r--r--nixpkgs/pkgs/development/python-modules/pubnubsub-handler/default.nix34
-rw-r--r--nixpkgs/pkgs/development/python-modules/pudb/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pulp/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pure-pcapy3/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/purepng/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pushover/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pvlib/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pweave/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pwntools/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/pxml/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/py-radix/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/py-sonic/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/py/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/py3buddy/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/py3dns/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/py3exiv2/default.nix12
-rw-r--r--nixpkgs/pkgs/development/python-modules/py3status/default.nix7
-rw-r--r--nixpkgs/pkgs/development/python-modules/py4j/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyGithub/default.nix8
-rw-r--r--nixpkgs/pkgs/development/python-modules/py_scrypt/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyacoustid/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyahocorasick/default.nix34
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyairvisual/default.nix16
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyalgotrade/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyamf/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyannotate/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyarlo/default.nix41
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyarrow/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyasn1-modules/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyasn1/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyatmo/default.nix10
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyatspi/default.nix8
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyatv/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyaudio/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyaxmlparser/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pybase64/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pybindgen/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyblackbird/default.nix34
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyblock/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyblosxom/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pybluez/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pybotvac/default.nix27
-rw-r--r--nixpkgs/pkgs/development/python-modules/pybrowserid/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pybtex-docutils/default.nix10
-rw-r--r--nixpkgs/pkgs/development/python-modules/pybtex/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/pycallgraph/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pycangjie/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/pycapnp/default.nix35
-rw-r--r--nixpkgs/pkgs/development/python-modules/pycarddav/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pycares/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pycassa/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/pycdio/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/pycfdns/default.nix34
-rw-r--r--nixpkgs/pkgs/development/python-modules/pychart/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pychef/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pychromecast/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyclipper/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pycm/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pycognito/default.nix23
-rw-r--r--nixpkgs/pkgs/development/python-modules/pycoin/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pycollada/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pycontracts/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pycountry/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pycparser/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pycryptodome/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/pycryptopp/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pycuda/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/pydenticon/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pydexcom/default.nix30
-rw-r--r--nixpkgs/pkgs/development/python-modules/pydicom/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pydispatcher/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pydns/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pydotplus/default.nix28
-rw-r--r--nixpkgs/pkgs/development/python-modules/pydub/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyechonest/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyee/default.nix2
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyelftools/default.nix14
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyemd/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyenchant/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyeverlights/default.nix30
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyevmasm/default.nix30
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyexcelerator/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyexiv2/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyext/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyface/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyfakefs/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyfantom/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyfftw/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyfido/default.nix28
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyfiglet/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyflakes/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyfnip/default.nix28
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyfribidi/default.nix9
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyftdi/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyftpdlib/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyfttt/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pygal/default.nix19
-rw-r--r--nixpkgs/pkgs/development/python-modules/pygame_sdl2/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pygccxml/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pygeoip/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyglet/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pygments-better-html/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pygments-markdown-lexer/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pygmt/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pygobject/3.36.nix10
-rw-r--r--nixpkgs/pkgs/development/python-modules/pygobject/3.nix10
-rw-r--r--nixpkgs/pkgs/development/python-modules/pygobject/default.nix13
-rw-r--r--nixpkgs/pkgs/development/python-modules/pygpgme/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pygraphviz/default.nix8
-rw-r--r--nixpkgs/pkgs/development/python-modules/pygreat/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pygtk/default.nix14
-rw-r--r--nixpkgs/pkgs/development/python-modules/pygtksourceview/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyhamcrest/1.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyhamcrest/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyhaversion/default.nix50
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyhomematic/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyicu/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyinotify/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyinputevent/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyinsteon/default.nix60
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyipp/default.nix35
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyiqvia/default.nix53
-rw-r--r--nixpkgs/pkgs/development/python-modules/pykdtree/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pykerberos/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pykickstart/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pykira/default.nix25
-rw-r--r--nixpkgs/pkgs/development/python-modules/pylacrosse/default.nix37
-rw-r--r--nixpkgs/pkgs/development/python-modules/pylast/default.nix8
-rw-r--r--nixpkgs/pkgs/development/python-modules/pylibconfig2/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyliblo/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pylibmc/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyls-spyder/default.nix24
-rw-r--r--nixpkgs/pkgs/development/python-modules/pylutron/default.nix25
-rw-r--r--nixpkgs/pkgs/development/python-modules/pymaging/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pymaging_png/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pymata-express/default.nix38
-rw-r--r--nixpkgs/pkgs/development/python-modules/pymatgen/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pymediainfo/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pymeeus/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pymemoize/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pymetar/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pymetno/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pymodbus/default.nix59
-rw-r--r--nixpkgs/pkgs/development/python-modules/pympler/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pymsgbox/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pymupdf/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pymyq/default.nix36
-rw-r--r--nixpkgs/pkgs/development/python-modules/pymysqlsa/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pynac/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pynacl/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pync/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/pynest2d/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pynisher/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pynput/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/pynzb/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyobjc/default.nix8
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyodbc/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyopencl/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyopengl/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyopenssl/default.nix17
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyopnsense/default.nix45
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyosmium/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pypandoc/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyparsing/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyparted/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/pypass/default.nix16
-rw-r--r--nixpkgs/pkgs/development/python-modules/pypck/default.nix45
-rw-r--r--nixpkgs/pkgs/development/python-modules/pypdf/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pypdf2/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pypeg2/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyphen/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pypillowfight/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyplatec/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pypoppler/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyppeteer/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyprind/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyptlib/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pypugjs/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pypykatz/default.nix40
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyqt/4.x.nix16
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyqt/5.x.nix77
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyqtgraph/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyqtwebengine/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyquery/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyramid/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyramid_beaker/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyramid_chameleon/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyramid_exclog/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyramid_hawkauth/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyramid_jinja2/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyramid_mako/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyramid_multiauth/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyregion/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyreport/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyres/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyrfc3339/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyro4/default.nix2
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyroma/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyroute2/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyrr/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyrsistent/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyrss2gen/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pysaml2/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyscard/default.nix17
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyscss/default.nix8
-rw-r--r--nixpkgs/pkgs/development/python-modules/pysendfile/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pysensors/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyserial-asyncio/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pysftp/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyshp/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyside/apiextractor.nix10
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyside/default.nix2
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyside/generatorrunner.nix10
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyside/shiboken.nix2
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyside2-tools/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyside2/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pysigset/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pysmbc/default.nix8
-rw-r--r--nixpkgs/pkgs/development/python-modules/pysmf/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pysmi/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pysnmp/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pysocks/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pysoma/default.nix25
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyspark/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyspice/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyspotify/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyspread/default.nix56
-rw-r--r--nixpkgs/pkgs/development/python-modules/pysqlite/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/pysqueezebox/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pysrt/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyssim/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pystache/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pystemd/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pystemmer/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pysvn/default.nix2
-rw-r--r--nixpkgs/pkgs/development/python-modules/pytabix/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pytado/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyte/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pytest-aiohttp/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pytest-annotate/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pytest-ansible/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pytest-asyncio/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/pytest-bdd/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pytest-catchlog/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pytest-celery/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pytest-check/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pytest-cov/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pytest-datadir/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pytest-datafiles/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pytest-dependency/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pytest-django/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pytest-factoryboy/default.nix32
-rw-r--r--nixpkgs/pkgs/development/python-modules/pytest-fixture-config/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pytest-flakes/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pytest-flask/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pytest-helpers-namespace/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pytest-html/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pytest-instafail/default.nix24
-rw-r--r--nixpkgs/pkgs/development/python-modules/pytest-metadata/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pytest-mpl/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pytest-pep257/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pytest-quickcheck/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pytest-raisesregexp/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pytest-random-order/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pytest-relaxed/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pytest-rerunfailures/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pytest-server-fixtures/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pytest-shutil/default.nix2
-rw-r--r--nixpkgs/pkgs/development/python-modules/pytest-snapshot/default.nix26
-rw-r--r--nixpkgs/pkgs/development/python-modules/pytest-subtesthack/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pytest-vcr/default.nix36
-rw-r--r--nixpkgs/pkgs/development/python-modules/pytest-virtualenv/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/pytest-xdist/1.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pytest-xdist/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pytest/4.nix8
-rw-r--r--nixpkgs/pkgs/development/python-modules/pytest/5.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/pytest/default.nix12
-rw-r--r--nixpkgs/pkgs/development/python-modules/pytestcache/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pytestrunner/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/python-doi/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/python-editor/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/python-efl/default.nix8
-rw-r--r--nixpkgs/pkgs/development/python-modules/python-engineio/default.nix29
-rw-r--r--nixpkgs/pkgs/development/python-modules/python-etcd/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/python-forecastio/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/python-frontmatter/default.nix2
-rw-r--r--nixpkgs/pkgs/development/python-modules/python-gitlab/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/python-gnupg/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/python-hosts/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/python-hpilo/default.nix28
-rw-r--r--nixpkgs/pkgs/development/python-modules/python-http-client/default.nix34
-rw-r--r--nixpkgs/pkgs/development/python-modules/python-igraph/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/python-jose/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/python-json-logger/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/python-jsonrpc-server/default.nix32
-rw-r--r--nixpkgs/pkgs/development/python-modules/python-language-server/default.nix49
-rw-r--r--nixpkgs/pkgs/development/python-modules/python-ldap-test/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/python-levenshtein/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/python-ly/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/python-lzf/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/python-mapnik/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/python-miio/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/python-mnist/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/python-nomad/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/python-otr/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/python-packer/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/python-pipedrive/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/python-ptrace/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/python-rapidjson/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/python-redis-lock/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/python-simple-hipchat/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/python-slugify/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/python-socketio/default.nix42
-rw-r--r--nixpkgs/pkgs/development/python-modules/python-telegram-bot/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/python-twitter/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/python-u2flib-host/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/python-uinput/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/python-unshare/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/python-vipaccess/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/python-wifi/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/python-wink/default.nix28
-rw-r--r--nixpkgs/pkgs/development/python-modules/python-xmp-toolkit/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/python2-pythondialog/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/python3-openid/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/python_fedora/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/python_keyczar/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/python_mimeparse/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/python_openzwave/default.nix8
-rw-r--r--nixpkgs/pkgs/development/python-modules/python_statsd/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pythondialog/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pythonirclib/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pythonix/default.nix18
-rw-r--r--nixpkgs/pkgs/development/python-modules/pythonnet/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pythonocc-core/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/pytidylib/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pytile/default.nix59
-rw-r--r--nixpkgs/pkgs/development/python-modules/pytimeparse/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pytmx/default.nix17
-rw-r--r--nixpkgs/pkgs/development/python-modules/pytoml/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pytorch/bin.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/pytorch/default.nix10
-rw-r--r--nixpkgs/pkgs/development/python-modules/pytrends/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pytricia/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pytun/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pytzdata/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyunifi/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyupdate/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyusb/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyutil/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyuv/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyvera/default.nix54
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyvlx/default.nix35
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyvoro/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pywatchman/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pywebdav/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pywilight/default.nix32
-rw-r--r--nixpkgs/pkgs/development/python-modules/pywizlight/default.nix34
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyx/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyxeoma/default.nix28
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyzufall/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/qdldl/default.nix40
-rw-r--r--nixpkgs/pkgs/development/python-modules/qpid-python/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/qrcode/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/qscintilla/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/qserve/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/qtawesome/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/qtpy/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/querystring-parser/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/queuelib/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/r2pipe/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/rabbitpy/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/rachiopy/default.nix35
-rw-r--r--nixpkgs/pkgs/development/python-modules/radicale_infcloud/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/rainbowstream/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/ramlfications/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/random2/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/rarfile/default.nix7
-rw-r--r--nixpkgs/pkgs/development/python-modules/ratelimiter/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/rawkit/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/rbtools/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/rcssmin/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/readchar/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/readme/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/rebulk/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/recaptcha_client/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/rednose/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/reedsolo/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/reikna/default.nix12
-rw-r--r--nixpkgs/pkgs/development/python-modules/remotecv/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/rencode/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/repeated_test/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/repocheck/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/repoze_lru/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/repoze_sphinx_autointerface/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/repoze_who/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/requests-cache/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/requests-http-signature/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/requests-kerberos/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/requests-oauthlib/default.nix32
-rw-r--r--nixpkgs/pkgs/development/python-modules/requests/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/resampy/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/respx/default.nix50
-rw-r--r--nixpkgs/pkgs/development/python-modules/rethinkdb/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/retry_decorator/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/retrying/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/rfc-bibtex/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/rfc3986/default.nix15
-rw-r--r--nixpkgs/pkgs/development/python-modules/rfc3987/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/rfc6555/default.nix8
-rw-r--r--nixpkgs/pkgs/development/python-modules/rich/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/rjsmin/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/rl-coach/default.nix2
-rw-r--r--nixpkgs/pkgs/development/python-modules/robomachine/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/roboschool/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/robot-detection/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/robotframework-databaselibrary/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/robotframework-requests/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/robotframework-ride/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/robotframework-selenium2library/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/robotframework-seleniumlibrary/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/robotframework-sshlibrary/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/robotframework-tools/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/robotframework/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/robotstatuschecker/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/robotsuite/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/roku/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/roman/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/roombapy/default.nix37
-rw-r--r--nixpkgs/pkgs/development/python-modules/rope/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/ropper/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/routes/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/rpdb/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/rpkg/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/rply/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/rpmfluff/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/rpy2/default.nix41
-rw-r--r--nixpkgs/pkgs/development/python-modules/rpyc/default.nix28
-rw-r--r--nixpkgs/pkgs/development/python-modules/rq/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/rsa/4_0.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/rsa/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/rtslib/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/ruamel_base/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/ruamel_ordereddict/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/ruamel_yaml_clib/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/rubymarshal/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/ruffus/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/runsnakerun/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/s3fs/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/s3transfer/default.nix8
-rw-r--r--nixpkgs/pkgs/development/python-modules/sacremoses/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/safe/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/salmon-mail/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/samplerate/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/samsungtvws/default.nix8
-rw-r--r--nixpkgs/pkgs/development/python-modules/sandboxlib/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/sane/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/sanic-auth/default.nix12
-rw-r--r--nixpkgs/pkgs/development/python-modules/sanic/default.nix2
-rw-r--r--nixpkgs/pkgs/development/python-modules/sapi-python-client/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/scales/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/schedule/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/schema/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/scikit-bio/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/scikitlearn/0.20.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/scikitlearn/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/scikits-odes/default.nix2
-rw-r--r--nixpkgs/pkgs/development/python-modules/scipy/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/scp/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/scrapy-deltafetch/default.nix8
-rw-r--r--nixpkgs/pkgs/development/python-modules/scrapy-fake-useragent/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/scrapy-splash/default.nix10
-rw-r--r--nixpkgs/pkgs/development/python-modules/scrapy/default.nix12
-rw-r--r--nixpkgs/pkgs/development/python-modules/screeninfo/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/scripttest/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/sdnotify/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/seabreeze/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/secp256k1/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/seekpath/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/segments/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/selectors2/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/selectors34/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/selenium/default.nix2
-rw-r--r--nixpkgs/pkgs/development/python-modules/semantic/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/semver/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/send2trash/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/sendgrid/default.nix49
-rw-r--r--nixpkgs/pkgs/development/python-modules/sentencepiece/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/sentry-sdk/default.nix22
-rw-r--r--nixpkgs/pkgs/development/python-modules/sepaxml/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/seqdiag/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/serpent/default.nix2
-rw-r--r--nixpkgs/pkgs/development/python-modules/serversyncstorage/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/setproctitle/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/setuptools-git/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/setuptools-lint/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/setuptools-rust/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/setuptools-scm-git-archive/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/setuptools/44.0.nix2
-rw-r--r--nixpkgs/pkgs/development/python-modules/setuptools/default.nix2
-rw-r--r--nixpkgs/pkgs/development/python-modules/setuptools_scm/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/setuptoolsdarcs/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/setuptoolstrial/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/sexpdata/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/shap/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/shapely/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/shellingham/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/shiboken2/default.nix7
-rw-r--r--nixpkgs/pkgs/development/python-modules/shippai/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/shortuuid/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/should-dsl/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/shouldbe/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/signedjson/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/sigtools/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/simanneal/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/simple-websocket-server/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/simpleai/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/simplebayes/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/simpleparse/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/sip/5.x.nix26
-rw-r--r--nixpkgs/pkgs/development/python-modules/sipsimple/default.nix2
-rw-r--r--nixpkgs/pkgs/development/python-modules/skein/default.nix2
-rw-r--r--nixpkgs/pkgs/development/python-modules/sklearn-deap/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/slackclient/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/sleekxmpp/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/slicer/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/slicerator/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/slither-analyzer/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/slob/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/slowaes/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/smartdc/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/smartypants/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/smbus-cffi/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/snakeviz/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/snapcast/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/snappergui/default.nix30
-rw-r--r--nixpkgs/pkgs/development/python-modules/snapshottest/default.nix33
-rw-r--r--nixpkgs/pkgs/development/python-modules/snowballstemmer/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/snowflake-connector-python/default.nix5
-rw-r--r--nixpkgs/pkgs/development/python-modules/socksipy-branch/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/somajo/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/sopel/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/sorl_thumbnail/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/sortedcollections/default.nix30
-rw-r--r--nixpkgs/pkgs/development/python-modules/spacy/models.nix8
-rw-r--r--nixpkgs/pkgs/development/python-modules/spark_parser/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/sparqlwrapper/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/speaklater/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/spglib/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/sphinx_pypi_upload/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/sphinx_rtd_theme/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/sphinxcontrib-applehelp/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/sphinxcontrib-autoapi/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/sphinxcontrib-bibtex/default.nix19
-rw-r--r--nixpkgs/pkgs/development/python-modules/sphinxcontrib-blockdiag/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/sphinxcontrib-devhelp/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/sphinxcontrib-htmlhelp/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/sphinxcontrib-jsmath/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/sphinxcontrib-openapi/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/sphinxcontrib-qthelp/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/sphinxcontrib-serializinghtml/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/sphinxcontrib-spelling/default.nix2
-rw-r--r--nixpkgs/pkgs/development/python-modules/sphinxcontrib_httpdomain/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/sphinxcontrib_newsfeed/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/sphinxcontrib_plantuml/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/spyder-kernels/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/spyder/3.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/spyder/default.nix13
-rw-r--r--nixpkgs/pkgs/development/python-modules/sqlalchemy-imageattach/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/sqlalchemy-migrate/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/sqlite-utils/default.nix9
-rw-r--r--nixpkgs/pkgs/development/python-modules/sqlite3dbm/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/sqlobject/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/squaremap/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/srptools/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/srsly/default.nix2
-rw-r--r--nixpkgs/pkgs/development/python-modules/srvlookup/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/ssdeep/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/ssdp/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/sseclient/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/sslib/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/sslyze/default.nix10
-rw-r--r--nixpkgs/pkgs/development/python-modules/starkbank-ecdsa/default.nix28
-rw-r--r--nixpkgs/pkgs/development/python-modules/starlette/default.nix30
-rw-r--r--nixpkgs/pkgs/development/python-modules/staticjinja/default.nix36
-rw-r--r--nixpkgs/pkgs/development/python-modules/statsd/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/stdiomask/default.nix26
-rw-r--r--nixpkgs/pkgs/development/python-modules/stompclient/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/strict-rfc3339/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/strictyaml/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/stringcase/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/stringtemplate/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/subarulink/default.nix44
-rw-r--r--nixpkgs/pkgs/development/python-modules/subdownloader/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/suds-jurko/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/suds/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/sumo/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/sure/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/survey/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/svg-path/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/svg2tikz/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/swagger-ui-bundle/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/swisshydrodata/default.nix28
-rw-r--r--nixpkgs/pkgs/development/python-modules/swspotify/default.nix7
-rw-r--r--nixpkgs/pkgs/development/python-modules/sybase/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/sympy/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/systemd/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/sysv_ipc/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/tables/3.5.nix16
-rw-r--r--nixpkgs/pkgs/development/python-modules/tables/default.nix16
-rw-r--r--nixpkgs/pkgs/development/python-modules/tarman/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/tasklib/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/taskw/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/tatsu/default.nix8
-rw-r--r--nixpkgs/pkgs/development/python-modules/tblib/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/tbm-utils/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/telegram/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/tenacity/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/tensorboard-plugin-profile/default.nix31
-rw-r--r--nixpkgs/pkgs/development/python-modules/tensorboard-plugin-wit/default.nix22
-rw-r--r--nixpkgs/pkgs/development/python-modules/tensorflow-estimator/1/default.nix30
-rw-r--r--nixpkgs/pkgs/development/python-modules/tensorflow-estimator/default.nix (renamed from nixpkgs/pkgs/development/python-modules/tensorflow-estimator/2/default.nix)8
-rw-r--r--nixpkgs/pkgs/development/python-modules/tensorflow-probability/default.nix3
-rw-r--r--nixpkgs/pkgs/development/python-modules/tensorflow-tensorboard/1/default.nix3
-rw-r--r--nixpkgs/pkgs/development/python-modules/tensorflow-tensorboard/default.nix (renamed from nixpkgs/pkgs/development/python-modules/tensorflow-tensorboard/2/default.nix)23
-rw-r--r--nixpkgs/pkgs/development/python-modules/tensorflow/1/bin.nix120
-rw-r--r--nixpkgs/pkgs/development/python-modules/tensorflow/1/binary-hashes.nix43
-rw-r--r--nixpkgs/pkgs/development/python-modules/tensorflow/1/default.nix456
-rw-r--r--nixpkgs/pkgs/development/python-modules/tensorflow/1/lift-gast-restriction.patch13
-rwxr-xr-xnixpkgs/pkgs/development/python-modules/tensorflow/1/prefetcher.sh33
-rw-r--r--nixpkgs/pkgs/development/python-modules/tensorflow/2/relax-dependencies.patch16
-rw-r--r--nixpkgs/pkgs/development/python-modules/tensorflow/bin.nix (renamed from nixpkgs/pkgs/development/python-modules/tensorflow/2/bin.nix)4
-rw-r--r--nixpkgs/pkgs/development/python-modules/tensorflow/binary-hashes.nix (renamed from nixpkgs/pkgs/development/python-modules/tensorflow/2/binary-hashes.nix)0
-rw-r--r--nixpkgs/pkgs/development/python-modules/tensorflow/cuda-10.2-no-bin2c-path.patch10
-rw-r--r--nixpkgs/pkgs/development/python-modules/tensorflow/default.nix (renamed from nixpkgs/pkgs/development/python-modules/tensorflow/2/default.nix)147
-rw-r--r--nixpkgs/pkgs/development/python-modules/tensorflow/no-saved-proto.patch14
-rwxr-xr-xnixpkgs/pkgs/development/python-modules/tensorflow/prefetcher.sh (renamed from nixpkgs/pkgs/development/python-modules/tensorflow/2/prefetcher.sh)0
-rw-r--r--nixpkgs/pkgs/development/python-modules/tensorflow/relax-dependencies.patch51
-rw-r--r--nixpkgs/pkgs/development/python-modules/tensorflow/system-jsoncpp.patch21
-rw-r--r--nixpkgs/pkgs/development/python-modules/tensorflow/workspace.patch18
-rw-r--r--nixpkgs/pkgs/development/python-modules/termcolor/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/terminaltables/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/teslajsonpy/default.nix39
-rw-r--r--nixpkgs/pkgs/development/python-modules/testpath/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/testrepository/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/testscenarios/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/thinc/default.nix2
-rw-r--r--nixpkgs/pkgs/development/python-modules/threadpool/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/three-merge/default.nix24
-rw-r--r--nixpkgs/pkgs/development/python-modules/thrift/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/thumborpexif/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/tilestache/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/timelib/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/timeout-decorator/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/tissue/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/tkinter/default.nix5
-rw-r--r--nixpkgs/pkgs/development/python-modules/tld/default.nix54
-rw-r--r--nixpkgs/pkgs/development/python-modules/tlsh/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/tlslite-ng/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/tlslite/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/tmb/default.nix30
-rw-r--r--nixpkgs/pkgs/development/python-modules/todoist/default.nix10
-rw-r--r--nixpkgs/pkgs/development/python-modules/toggl-cli/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/tokenizers/default.nix21
-rw-r--r--nixpkgs/pkgs/development/python-modules/tokenlib/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/toml/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/toonapi/default.nix36
-rw-r--r--nixpkgs/pkgs/development/python-modules/toposort/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/torchvision/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/traceback2/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/tracing/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/trackpy/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/traits/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/transaction/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/transformers/default.nix73
-rw-r--r--nixpkgs/pkgs/development/python-modules/transip/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/transitions/default.nix27
-rw-r--r--nixpkgs/pkgs/development/python-modules/translationstring/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/transmissionrpc/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/treq/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/trezor_agent/default.nix7
-rw-r--r--nixpkgs/pkgs/development/python-modules/trimesh/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/trollius/default.nix2
-rw-r--r--nixpkgs/pkgs/development/python-modules/trueskill/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/trytond/default.nix8
-rw-r--r--nixpkgs/pkgs/development/python-modules/ttystatus/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/tubeup/default.nix8
-rw-r--r--nixpkgs/pkgs/development/python-modules/tumpa/default.nix36
-rw-r--r--nixpkgs/pkgs/development/python-modules/tvdb_api/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/tvnamer/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/twiggy/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/twilio/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/twisted/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/twitter-common-collections/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/twitter-common-confluence/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/twitter-common-dirutil/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/twitter-common-lang/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/twitter-common-log/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/twitter-common-options/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/twitter/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/txaio/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/txamqp/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/txdbus/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/txgithub/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/txrequests/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/typeguard/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/typesystem/default.nix9
-rw-r--r--nixpkgs/pkgs/development/python-modules/typogrify/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/tzlocal/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/ua-parser/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/uamqp/default.nix30
-rw-r--r--nixpkgs/pkgs/development/python-modules/ufoprocessor/default.nix9
-rw-r--r--nixpkgs/pkgs/development/python-modules/ujson/2.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/ujson/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/umalqurra/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/umemcache/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/uncertainties/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/uncompyle6/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/unicode-slugify/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/unicodecsv/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/unicorn/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/unidecode/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/unifi/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/unifiled/default.nix34
-rw-r--r--nixpkgs/pkgs/development/python-modules/unittest2/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/unpaddedbase64/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/upass/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/update_checker/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/upnpy/default.nix27
-rw-r--r--nixpkgs/pkgs/development/python-modules/uproot3-methods/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/uproot3/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/uptime/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/uranium/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/uritools/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/url-normalize/default.nix45
-rw-r--r--nixpkgs/pkgs/development/python-modules/urlgrabber/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/urllib3/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/urwid/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/urwidtrees/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/usbtmc/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/user-agents/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/utils/default.nix32
-rw-r--r--nixpkgs/pkgs/development/python-modules/uvicorn/default.nix46
-rw-r--r--nixpkgs/pkgs/development/python-modules/validate-email/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/validictory/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/vcversioner/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/vdf/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/vdirsyncer/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/vega/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/venusian/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/versioneer/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/versiontools/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/veryprettytable/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/vidstab/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/vine/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/virtkey/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/virtual-display/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/virtualenv-clone/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/virtualenvwrapper/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/vmprof/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/vncdo/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/voluptuous-serialize/default.nix34
-rw-r--r--nixpkgs/pkgs/development/python-modules/voluptuous/default.nix8
-rw-r--r--nixpkgs/pkgs/development/python-modules/vsure/default.nix28
-rw-r--r--nixpkgs/pkgs/development/python-modules/vultr/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/vulture/default.nix27
-rw-r--r--nixpkgs/pkgs/development/python-modules/vxi11/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/w3lib/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/waitress/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/wakeonlan/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/waqiasync/default.nix32
-rw-r--r--nixpkgs/pkgs/development/python-modules/warlock/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/wasabi/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/wasm/default.nix27
-rw-r--r--nixpkgs/pkgs/development/python-modules/wasmer/default.nix71
-rw-r--r--nixpkgs/pkgs/development/python-modules/watchdog/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/waterfurnace/default.nix43
-rw-r--r--nixpkgs/pkgs/development/python-modules/weasyprint/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/web/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/webapp2/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/webhelpers/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/webob/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/websockify/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/webtest/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/webthing/default.nix40
-rw-r--r--nixpkgs/pkgs/development/python-modules/werkzeug/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/wfuzz/default.nix48
-rw-r--r--nixpkgs/pkgs/development/python-modules/whisper/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/whitenoise/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/whoosh/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/willow/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/winacl/default.nix25
-rw-r--r--nixpkgs/pkgs/development/python-modules/winsspi/default.nix28
-rw-r--r--nixpkgs/pkgs/development/python-modules/word2vec/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/wordcloud/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/worldengine/default.nix17
-rw-r--r--nixpkgs/pkgs/development/python-modules/wrapio/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/wrf-python/default.nix2
-rw-r--r--nixpkgs/pkgs/development/python-modules/ws4py/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/wsgiproxy/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/wsgiproxy2/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/wtforms/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/wxPython/3.0.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/wxPython/4.0.nix26
-rw-r--r--nixpkgs/pkgs/development/python-modules/wxPython/4.1.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/x11_hash/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/x256/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/xapp/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/xattr/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/xcaplib/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/xcffib/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/xdg/default.nix8
-rw-r--r--nixpkgs/pkgs/development/python-modules/xdot/default.nix3
-rw-r--r--nixpkgs/pkgs/development/python-modules/xhtml2pdf/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/xkcdpass/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/xknx/default.nix47
-rw-r--r--nixpkgs/pkgs/development/python-modules/xlib/default.nix8
-rw-r--r--nixpkgs/pkgs/development/python-modules/xlrd/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/xlsx2csv/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/xml2rfc/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/xmlschema/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/xmodem/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/xmpppy/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/xnd/default.nix5
-rw-r--r--nixpkgs/pkgs/development/python-modules/xvfbwrapper/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/xxhash/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/yamllint/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/yanc/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/yapf/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/yapsy/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/yarl/default.nix2
-rw-r--r--nixpkgs/pkgs/development/python-modules/ydiff/default.nix37
-rw-r--r--nixpkgs/pkgs/development/python-modules/youtube-dlc/default.nix23
-rw-r--r--nixpkgs/pkgs/development/python-modules/yowsup/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/z3c-checkversions/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/zake/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/zbaemon/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/zbase32/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/zc_lockfile/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/zconfig/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/zdaemon/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/zerobin/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/zeroc-ice/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/zeroconf/default.nix12
-rw-r--r--nixpkgs/pkgs/development/python-modules/zfec/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/zha-quirks/default.nix27
-rw-r--r--nixpkgs/pkgs/development/python-modules/zict/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/zigpy-deconz/default.nix31
-rw-r--r--nixpkgs/pkgs/development/python-modules/zigpy-zigate/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/zigpy-znp/default.nix9
-rw-r--r--nixpkgs/pkgs/development/python-modules/zigpy/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/zodb/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/zope_broken/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/zope_component/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/zope_configuration/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/zope_contenttype/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/zope_deprecation/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/zope_dottedname/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/zope_event/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/zope_exceptions/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/zope_filerepresentation/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/zope_i18nmessageid/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/zope_interface/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/zope_lifecycleevent/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/zope_location/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/zope_proxy/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/zope_schema/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/zope_size/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/zope_testing/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/zope_testrunner/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/zstd/default.nix8
-rw-r--r--nixpkgs/pkgs/development/python-modules/zulip/default.nix4
2126 files changed, 13907 insertions, 7406 deletions
diff --git a/nixpkgs/pkgs/development/python-modules/APScheduler/default.nix b/nixpkgs/pkgs/development/python-modules/APScheduler/default.nix
index 21b8d509646d..d1ac191489ad 100644
--- a/nixpkgs/pkgs/development/python-modules/APScheduler/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/APScheduler/default.nix
@@ -20,11 +20,11 @@
 
 buildPythonPackage rec {
   pname = "APScheduler";
-  version = "3.6.3";
+  version = "3.7.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "3bb5229eed6fbbdafc13ce962712ae66e175aa214c69bed35a06bffcf0c5e244";
+    sha256 = "1cab7f2521e107d07127b042155b632b7a1cd5e02c34be5a28ff62f77c900c6a";
   };
 
   buildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/Cython/default.nix b/nixpkgs/pkgs/development/python-modules/Cython/default.nix
index 84f54fd7af62..64f5bb3ab656 100644
--- a/nixpkgs/pkgs/development/python-modules/Cython/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/Cython/default.nix
@@ -16,12 +16,12 @@ let
     ++ [ "reimport_from_subinterpreter" ]
     # cython's testsuite is not working very well with libc++
     # We are however optimistic about things outside of testsuite still working
-    ++ stdenv.lib.optionals (stdenv.cc.isClang or false) [ "cpdef_extern_func" "libcpp_algo" ]
+    ++ lib.optionals (stdenv.cc.isClang or false) [ "cpdef_extern_func" "libcpp_algo" ]
     # Some tests in the test suite isn't working on aarch64. Disable them for
     # now until upstream finds a workaround.
     # Upstream issue here: https://github.com/cython/cython/issues/2308
-    ++ stdenv.lib.optionals stdenv.isAarch64 [ "numpy_memoryview" ]
-    ++ stdenv.lib.optionals stdenv.isi686 [ "future_division" "overflow_check_longlong" ]
+    ++ lib.optionals stdenv.isAarch64 [ "numpy_memoryview" ]
+    ++ lib.optionals stdenv.isi686 [ "future_division" "overflow_check_longlong" ]
   ;
 
 in buildPythonPackage rec {
@@ -55,7 +55,7 @@ in buildPythonPackage rec {
     export HOME="$NIX_BUILD_TOP"
     ${python.interpreter} runtests.py -j$NIX_BUILD_CORES \
       --no-code-style \
-      ${stdenv.lib.optionalString (builtins.length excludedTests != 0)
+      ${lib.optionalString (builtins.length excludedTests != 0)
         ''--exclude="(${builtins.concatStringsSep "|" excludedTests})"''}
   '';
 
diff --git a/nixpkgs/pkgs/development/python-modules/FormEncode/default.nix b/nixpkgs/pkgs/development/python-modules/FormEncode/default.nix
index d91bef07d2ae..2b06fcdce7d2 100644
--- a/nixpkgs/pkgs/development/python-modules/FormEncode/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/FormEncode/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi, dnspython, pycountry, nose, setuptools_scm, six, isPy27 }:
+{ lib, stdenv, buildPythonPackage, fetchPypi, dnspython, pycountry, nose, setuptools_scm, six, isPy27 }:
 
 buildPythonPackage rec {
   pname = "FormEncode";
@@ -26,7 +26,7 @@ buildPythonPackage rec {
     sed -i 's/test_unicode_ascii_subgroup/noop/' formencode/tests/test_email.py
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "FormEncode validates and converts nested structures";
     homepage = "http://formencode.org";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/HTSeq/default.nix b/nixpkgs/pkgs/development/python-modules/HTSeq/default.nix
index 83263f734bd4..be4bb9e31d32 100644
--- a/nixpkgs/pkgs/development/python-modules/HTSeq/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/HTSeq/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchFromGitHub, cython, numpy, pysam, matplotlib, python, isPy27, isPy3k }:
+{ lib, stdenv, buildPythonPackage, fetchFromGitHub, cython, numpy, pysam, matplotlib, python, isPy27, isPy3k }:
 buildPythonPackage rec {
   version = "0.12.4";
   pname = "HTSeq";
@@ -13,13 +13,13 @@ buildPythonPackage rec {
   nativeBuildInputs = [ cython ];
   propagatedBuildInputs = [ numpy pysam matplotlib ];
 
-  checkPhase = stdenv.lib.optionalString isPy27 ''
+  checkPhase = lib.optionalString isPy27 ''
     ${python.interpreter} python2/test/test_general.py
-  '' + stdenv.lib.optionalString isPy3k ''
+  '' + lib.optionalString isPy3k ''
     ${python.interpreter} python3/test/test_general.py
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://htseq.readthedocs.io/";
     description = "A framework to work with high-throughput sequencing data";
     maintainers = with maintainers; [ unode ];
diff --git a/nixpkgs/pkgs/development/python-modules/IPy/default.nix b/nixpkgs/pkgs/development/python-modules/IPy/default.nix
index 332ee0fc0c13..f142c2459223 100644
--- a/nixpkgs/pkgs/development/python-modules/IPy/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/IPy/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi, nose }:
+{ lib, stdenv, buildPythonPackage, fetchPypi, nose }:
 
 buildPythonPackage rec {
   pname = "IPy";
@@ -15,7 +15,7 @@ buildPythonPackage rec {
     nosetests -e fuzz
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Class and tools for handling of IPv4 and IPv6 addresses and networks";
     homepage = "https://github.com/autocracy/python-ipy";
     license = licenses.bsdOriginal;
diff --git a/nixpkgs/pkgs/development/python-modules/JPype1/default.nix b/nixpkgs/pkgs/development/python-modules/JPype1/default.nix
index 1a58562ab06d..d7c199f71467 100644
--- a/nixpkgs/pkgs/development/python-modules/JPype1/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/JPype1/default.nix
@@ -9,12 +9,12 @@
 
 buildPythonPackage rec {
   pname = "JPype1";
-  version = "1.2.0";
+  version = "1.2.1";
   disabled = isPy27;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "62ca03e7f7963ba4ac1065ee48ff661f752b3db3c23549ed8933ab40196a3157";
+    sha256 = "f210646127d24be73cfc6d807e2cda1c6b2ab39b7a293008e8b46367af6f2204";
   };
 
   propagatedBuildInputs = lib.optionals (pythonOlder "3.8") [
diff --git a/nixpkgs/pkgs/development/python-modules/MechanicalSoup/default.nix b/nixpkgs/pkgs/development/python-modules/MechanicalSoup/default.nix
index 07330ebbca9d..e4ce48158f64 100644
--- a/nixpkgs/pkgs/development/python-modules/MechanicalSoup/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/MechanicalSoup/default.nix
@@ -5,11 +5,11 @@
 
 buildPythonPackage rec {
   pname = "MechanicalSoup";
-  version = "0.12.0";
+  version = "1.0.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1g976rk79apz6rc338zq3ml2yps8hb88nyw3a698d0brm4khd9ir";
+    sha256 = "37d3b15c1957917d3ae171561e77f4dd4c08c35eb4500b8781f6e7e1bb6c4d07";
   };
 
   checkInputs = [ pytest pytestrunner requests-mock pytestcov ];
diff --git a/nixpkgs/pkgs/development/python-modules/PyLD/default.nix b/nixpkgs/pkgs/development/python-modules/PyLD/default.nix
index 1c7bc2ff93fb..247b7f0332f5 100644
--- a/nixpkgs/pkgs/development/python-modules/PyLD/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/PyLD/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchFromGitHub, python, requests, gnugrep }:
+{ lib, stdenv, buildPythonPackage, fetchFromGitHub, python, requests, gnugrep }:
 
 let
 
@@ -48,7 +48,7 @@ buildPythonPackage rec {
     ${python.interpreter} tests/runtests.py -d ${normalization}/tests
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Python implementation of the JSON-LD API";
     homepage = "https://github.com/digitalbazaar/pyld";
     license = licenses.bsd3;
diff --git a/nixpkgs/pkgs/development/python-modules/ROPGadget/default.nix b/nixpkgs/pkgs/development/python-modules/ROPGadget/default.nix
index c3c67194ebb7..ebedb3c69693 100644
--- a/nixpkgs/pkgs/development/python-modules/ROPGadget/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/ROPGadget/default.nix
@@ -1,18 +1,18 @@
-{ stdenv, buildPythonPackage, fetchPypi
+{ lib, stdenv, buildPythonPackage, fetchPypi
 , capstone}:
 
 buildPythonPackage rec {
   pname = "ROPGadget";
-  version = "6.3";
+  version = "6.5";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0v34w88if3p4vn46aby24msfnxj6znmkf4848n4d24jnykxcsqk9";
+    sha256 = "4c0e56f2ba0aef13b2c8ca286aad663525b92020b11bacd16791f5236247905c";
   };
 
   propagatedBuildInputs = [ capstone ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Tool to search for gadgets in binaries to facilitate ROP exploitation";
     homepage = "http://shell-storm.org/project/ROPgadget/";
     license = licenses.bsd3;
diff --git a/nixpkgs/pkgs/development/python-modules/Rtree/default.nix b/nixpkgs/pkgs/development/python-modules/Rtree/default.nix
index 9adfbb67e62d..82c8ced9704b 100644
--- a/nixpkgs/pkgs/development/python-modules/Rtree/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/Rtree/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi, libspatialindex, numpy }:
+{ lib, stdenv, buildPythonPackage, fetchPypi, libspatialindex, numpy }:
 
 buildPythonPackage rec {
   pname = "Rtree";
@@ -20,7 +20,7 @@ buildPythonPackage rec {
   doCheck = false;
   checkInputs = [ numpy ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "R-Tree spatial index for Python GIS";
     homepage = "https://toblerity.org/rtree/";
     license = licenses.lgpl21;
diff --git a/nixpkgs/pkgs/development/python-modules/Theano/default.nix b/nixpkgs/pkgs/development/python-modules/Theano/default.nix
index ce32e42e4716..e279100e9cc6 100644
--- a/nixpkgs/pkgs/development/python-modules/Theano/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/Theano/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , runCommandCC
 , fetchPypi
 , buildPythonPackage
@@ -40,8 +40,8 @@ let
     if stdenv.cc.isClang then "clang++" else
     throw "Unknown C++ compiler";
   cxx_compiler = wrapped cxx_compiler_name "\\$HOME/.theano"
-    (    stdenv.lib.optional cudaSupport libgpuarray_
-      ++ stdenv.lib.optional cudnnSupport cudnn );
+    (    lib.optional cudaSupport libgpuarray_
+      ++ lib.optional cudnnSupport cudnn );
 
   libgpuarray_ = libgpuarray.override { inherit cudaSupport cudatoolkit; };
 
@@ -60,10 +60,10 @@ in buildPythonPackage rec {
     substituteInPlace theano/configdefaults.py \
       --replace 'StrParam(param, is_valid=warn_cxx)' 'StrParam('\'''${cxx_compiler}'\''', is_valid=warn_cxx)' \
       --replace 'rc == 0 and config.cxx != ""' 'config.cxx != ""'
-  '' + stdenv.lib.optionalString cudaSupport ''
+  '' + lib.optionalString cudaSupport ''
     substituteInPlace theano/configdefaults.py \
       --replace 'StrParam(get_cuda_root)' 'StrParam('\'''${cudatoolkit}'\''')'
-  '' + stdenv.lib.optionalString cudnnSupport ''
+  '' + lib.optionalString cudnnSupport ''
     substituteInPlace theano/configdefaults.py \
       --replace 'StrParam(default_dnn_base_path)' 'StrParam('\'''${cudnn}'\''')'
   '';
@@ -85,7 +85,7 @@ in buildPythonPackage rec {
 
   pythonImportsCheck = [ "theano" ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "http://deeplearning.net/software/theano/";
     description = "A Python library for large-scale array computation";
     license = licenses.bsd3;
diff --git a/nixpkgs/pkgs/development/python-modules/Wand/default.nix b/nixpkgs/pkgs/development/python-modules/Wand/default.nix
index c897b04e880c..d7ad28c01336 100644
--- a/nixpkgs/pkgs/development/python-modules/Wand/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/Wand/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , imagemagick7Big
@@ -24,7 +24,7 @@ buildPythonPackage rec {
 
   passthru.imagemagick = imagemagick7Big;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Ctypes-based simple MagickWand API binding for Python";
     homepage = "http://wand-py.org/";
     license = [ licenses.mit ];
diff --git a/nixpkgs/pkgs/development/python-modules/WazeRouteCalculator/default.nix b/nixpkgs/pkgs/development/python-modules/WazeRouteCalculator/default.nix
index 02519e9dc66b..28515e6f6028 100644
--- a/nixpkgs/pkgs/development/python-modules/WazeRouteCalculator/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/WazeRouteCalculator/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi
+{ lib, stdenv, buildPythonPackage, fetchPypi
 , requests }:
 
 buildPythonPackage rec {
@@ -15,7 +15,7 @@ buildPythonPackage rec {
   # there are no tests
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Calculate actual route time and distance with Waze API";
     homepage = "https://github.com/kovacsbalu/WazeRouteCalculator";
     license = licenses.gpl3;
diff --git a/nixpkgs/pkgs/development/python-modules/aadict/default.nix b/nixpkgs/pkgs/development/python-modules/aadict/default.nix
index 2587260748f0..cf6976fa6c1e 100644
--- a/nixpkgs/pkgs/development/python-modules/aadict/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/aadict/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , six
@@ -18,7 +18,7 @@ buildPythonPackage rec {
   propagatedBuildInputs = [ six ];
   checkInputs = [ nose coverage ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://github.com/metagriffin/aadict";
     description = "An auto-attribute dict (and a couple of other useful dict functions).";
     maintainers = with maintainers; [ glittershark ];
diff --git a/nixpkgs/pkgs/development/python-modules/aafigure/default.nix b/nixpkgs/pkgs/development/python-modules/aafigure/default.nix
index ed07a60e0a89..5350443eeaab 100644
--- a/nixpkgs/pkgs/development/python-modules/aafigure/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/aafigure/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi, pillow }:
+{ lib, stdenv, buildPythonPackage, fetchPypi, pillow }:
 
 buildPythonPackage rec {
   pname = "aafigure";
@@ -21,7 +21,7 @@ buildPythonPackage rec {
     sed -i "s|/usr/share/fonts|/nonexisting-fonts-path|" aafigure/PILhelper.py
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "ASCII art to image converter";
     homepage = "https://launchpad.net/aafigure/";
     license = licenses.bsd2;
diff --git a/nixpkgs/pkgs/development/python-modules/acebinf/default.nix b/nixpkgs/pkgs/development/python-modules/acebinf/default.nix
index 78810de1740d..f8134aaf5b31 100644
--- a/nixpkgs/pkgs/development/python-modules/acebinf/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/acebinf/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , pyvcf
@@ -19,7 +19,7 @@ buildPythonPackage rec {
   doCheck = false;
   pythonImportsCheck = [ "acebinf" ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://github.com/ACEnglish/acebinf";
     description = "Collection of simple utilities used when building bioinformatics tools";
     license = licenses.unlicense;
diff --git a/nixpkgs/pkgs/development/python-modules/acme-tiny/default.nix b/nixpkgs/pkgs/development/python-modules/acme-tiny/default.nix
index b9bc11a34c72..75408244e66a 100644
--- a/nixpkgs/pkgs/development/python-modules/acme-tiny/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/acme-tiny/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi, setuptools_scm, fusepy, fuse
+{ lib, stdenv, buildPythonPackage, fetchPypi, setuptools_scm, fusepy, fuse
 , openssl }:
 
 buildPythonPackage rec {
@@ -22,7 +22,7 @@ buildPythonPackage rec {
 
   doCheck = false; # seems to hang, not sure
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "A tiny script to issue and renew TLS certs from Let's Encrypt";
     homepage = "https://github.com/diafygi/acme-tiny";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/actdiag/default.nix b/nixpkgs/pkgs/development/python-modules/actdiag/default.nix
index 84aef2dfb03d..ca47018f56f4 100644
--- a/nixpkgs/pkgs/development/python-modules/actdiag/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/actdiag/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi
+{ lib, stdenv, buildPythonPackage, fetchPypi
 , nose, docutils, blockdiag, reportlab }:
 
 buildPythonPackage rec {
@@ -14,7 +14,7 @@ buildPythonPackage rec {
 
   checkInputs = [ nose reportlab ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Generate activity-diagram image from spec-text file (similar to Graphviz)";
     homepage = "http://blockdiag.com/";
     license = licenses.asl20;
diff --git a/nixpkgs/pkgs/development/python-modules/adafruit-platformdetect/default.nix b/nixpkgs/pkgs/development/python-modules/adafruit-platformdetect/default.nix
new file mode 100644
index 000000000000..f03d3fd64e7b
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/adafruit-platformdetect/default.nix
@@ -0,0 +1,28 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, setuptools-scm
+}:
+
+buildPythonPackage rec {
+  pname = "Adafruit-PlatformDetect";
+  version = "2.27.1";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "0rnmy74rjjcyni5sr8h1djffpj7wngn2wqckl5vknp2smaihp34l";
+  };
+
+  nativeBuildInputs = [ setuptools-scm ];
+
+  # Project has not published tests yet
+  doCheck = false;
+  pythonImportsCheck = [ "adafruit_platformdetect" ];
+
+  meta = with lib; {
+    description = "Platform detection for use by Adafruit libraries";
+    homepage = "https://github.com/adafruit/Adafruit_Python_PlatformDetect";
+    license = with licenses; [ mit ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/adafruit-pureio/default.nix b/nixpkgs/pkgs/development/python-modules/adafruit-pureio/default.nix
new file mode 100644
index 000000000000..36bafb0f7a07
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/adafruit-pureio/default.nix
@@ -0,0 +1,29 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, setuptools-scm
+}:
+
+buildPythonPackage rec {
+  pname = "Adafruit-PureIO";
+  version = "1.1.8";
+
+  src = fetchPypi {
+    pname = "Adafruit_PureIO";
+    inherit version;
+    sha256 = "1mfa6sfz7qwgajz3lqw0s69ivvwbwvblwkjzbrwdrxjbma4jaw66";
+  };
+
+  nativeBuildInputs = [ setuptools-scm ];
+
+  # Physical SMBus is not present
+  doCheck = false;
+  pythonImportsCheck = [ "Adafruit_PureIO" ];
+
+  meta = with lib; {
+    description = "Python interface to Linux IO including I2C and SPI";
+    homepage = "https://github.com/adafruit/Adafruit_Python_PureIO";
+    license = with licenses; [ mit ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/adal/default.nix b/nixpkgs/pkgs/development/python-modules/adal/default.nix
index 0df7247986d0..f7e973c8f693 100644
--- a/nixpkgs/pkgs/development/python-modules/adal/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/adal/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi
+{ lib, stdenv, buildPythonPackage, fetchPypi
 , requests, pyjwt, dateutil }:
 
 buildPythonPackage rec {
@@ -12,7 +12,7 @@ buildPythonPackage rec {
 
   propagatedBuildInputs =  [ requests pyjwt dateutil ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Library to make it easy for python application to authenticate to Azure Active Directory (AAD) in order to access AAD protected web resources";
     homepage = "https://github.com/AzureAD/azure-activedirectory-library-for-python";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/adext/default.nix b/nixpkgs/pkgs/development/python-modules/adext/default.nix
new file mode 100644
index 000000000000..f3818c93188b
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/adext/default.nix
@@ -0,0 +1,33 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, alarmdecoder
+}:
+
+buildPythonPackage rec {
+  pname = "adext";
+  version = "0.3";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "184qxw6i5ixnhgkjnby4zwn4jg90mxb8xy9vbg80x5w331p4z50f";
+  };
+
+  postPatch = ''
+    substituteInPlace setup.py \
+      --replace "alarmdecoder==1.13.2" "alarmdecoder>=1.13.2"
+  '';
+
+  propagatedBuildInputs = [ alarmdecoder ];
+
+  # Tests are not published yet
+  doCheck = false;
+  pythonImportsCheck = [ "adext" ];
+
+  meta = with lib; {
+    description = "Python extension for AlarmDecoder";
+    homepage = "https://github.com/ajschmidt8/adext";
+    license = with licenses; [ mit ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/advantage-air/default.nix b/nixpkgs/pkgs/development/python-modules/advantage-air/default.nix
new file mode 100644
index 000000000000..4d6d91c5716d
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/advantage-air/default.nix
@@ -0,0 +1,26 @@
+{ aiohttp, buildPythonPackage, fetchPypi, lib, pythonOlder }:
+
+buildPythonPackage rec {
+  pname = "advantage_air";
+  version = "0.2.2";
+
+  disabled = pythonOlder "3.6";
+
+  src = fetchPypi {
+    inherit version pname;
+    sha256 = "04q2sjw9r50c00m4sfv98w9cwmmr970830c97m32p5j8ijb10j5x";
+  };
+
+  propagatedBuildInputs = [ aiohttp ];
+
+  # No tests
+  doCheck = false;
+  pythonImportsCheck = [ "advantage_air" ];
+
+  meta = with lib; {
+    description = "API helper for Advantage Air's MyAir and e-zone API";
+    homepage = "https://github.com/Bre77/advantage_air";
+    license = licenses.mit;
+    maintainers = with maintainers; [ jamiemagee ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/aenum/default.nix b/nixpkgs/pkgs/development/python-modules/aenum/default.nix
index 32b26a5e0355..f21d8f4195a4 100644
--- a/nixpkgs/pkgs/development/python-modules/aenum/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/aenum/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchPypi, buildPythonPackage, python, isPy3k, glibcLocales }:
+{ lib, stdenv, fetchPypi, buildPythonPackage, python, isPy3k, glibcLocales }:
 
 buildPythonPackage rec {
   pname = "aenum";
@@ -22,10 +22,10 @@ buildPythonPackage rec {
   runHook postCheck
   '';
 
-  meta = {
+  meta = with lib; {
     description = "Advanced Enumerations (compatible with Python's stdlib Enum), NamedTuples, and NamedConstants";
-    maintainers = with stdenv.lib.maintainers; [ vrthra ];
-    license = with stdenv.lib.licenses; [ bsd3 ];
+    maintainers = with maintainers; [ vrthra ];
+    license = licenses.bsd3;
     homepage = "https://github.com/ethanfurman/aenum";
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/afdko/default.nix b/nixpkgs/pkgs/development/python-modules/afdko/default.nix
index 6371fa804bb0..4df6c5f6c493 100644
--- a/nixpkgs/pkgs/development/python-modules/afdko/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/afdko/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi, fetchpatch, pythonOlder, python
+{ lib, stdenv, buildPythonPackage, fetchPypi, fetchpatch, pythonOlder, python
 , fonttools, defcon, lxml, fs, unicodedata2, zopfli, brotlipy, fontpens
 , brotli, fontmath, mutatormath, booleanoperations
 , ufoprocessor, ufonormalizer, psautohint, tqdm
@@ -65,7 +65,7 @@ buildPythonPackage rec {
     "test_options"
   ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Adobe Font Development Kit for OpenType";
     homepage = "https://adobe-type-tools.github.io/afdko/";
     license = licenses.asl20;
diff --git a/nixpkgs/pkgs/development/python-modules/agate-dbf/default.nix b/nixpkgs/pkgs/development/python-modules/agate-dbf/default.nix
index 09556ea891b3..099fb1701cb4 100644
--- a/nixpkgs/pkgs/development/python-modules/agate-dbf/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/agate-dbf/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchPypi, buildPythonPackage, agate, dbf, dbfread }:
+{ lib, stdenv, fetchPypi, buildPythonPackage, agate, dbf, dbfread }:
 
 buildPythonPackage rec {
     pname = "agate-dbf";
@@ -11,7 +11,7 @@ buildPythonPackage rec {
       sha256 = "589682b78c5c03f2dc8511e6e3edb659fb7336cd118e248896bb0b44c2f1917b";
     };
 
-    meta = with stdenv.lib; {
+    meta = with lib; {
       description = "Adds read support for dbf files to agate";
       homepage    = "https://github.com/wireservice/agate-dbf";
       license     = with licenses; [ mit ];
diff --git a/nixpkgs/pkgs/development/python-modules/agate-sql/default.nix b/nixpkgs/pkgs/development/python-modules/agate-sql/default.nix
index 08516d05f002..566951ea71d1 100644
--- a/nixpkgs/pkgs/development/python-modules/agate-sql/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/agate-sql/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchPypi, buildPythonPackage, agate, sqlalchemy, crate }:
+{ lib, stdenv, fetchPypi, buildPythonPackage, agate, sqlalchemy, crate }:
 
 buildPythonPackage rec {
     pname = "agate-sql";
@@ -11,7 +11,7 @@ buildPythonPackage rec {
 
     propagatedBuildInputs = [ agate sqlalchemy crate ];
 
-    meta = with stdenv.lib; {
+    meta = with lib; {
       description = "Adds SQL read/write support to agate.";
       homepage    = "https://github.com/wireservice/agate-sql";
       license     = with licenses; [ mit ];
diff --git a/nixpkgs/pkgs/development/python-modules/agent-py/default.nix b/nixpkgs/pkgs/development/python-modules/agent-py/default.nix
new file mode 100644
index 000000000000..2a9e358cf043
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/agent-py/default.nix
@@ -0,0 +1,26 @@
+{ aiohttp, buildPythonPackage, fetchPypi, isPy3k, lib, python, requests }:
+
+buildPythonPackage rec {
+  pname = "agent-py";
+  version = "0.0.23";
+
+  disabled = !isPy3k;
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1hx88m8b8kfb2gm6hii5ldjv7hlvqf99cz0w2vj0d0grrxcbn5cz";
+  };
+
+  propagatedBuildInputs = [ requests aiohttp ];
+
+  checkPhase = ''
+    ${python.interpreter} tests/test_agent.py
+  '';
+
+  meta = with lib; {
+    description = "A python wrapper around the Agent REST API.";
+    homepage = "https://github.com/ispysoftware/agent-py";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ jamiemagee ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/aiodns/default.nix b/nixpkgs/pkgs/development/python-modules/aiodns/default.nix
index 694f92577cbb..4ba4bd59af27 100644
--- a/nixpkgs/pkgs/development/python-modules/aiodns/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/aiodns/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi, pythonOlder
+{ lib, stdenv, buildPythonPackage, fetchPypi, pythonOlder
 , isPy27, isPyPy, python, pycares, typing, trollius }:
 
 buildPythonPackage rec {
@@ -10,9 +10,9 @@ buildPythonPackage rec {
     sha256 = "815fdef4607474295d68da46978a54481dd1e7be153c7d60f9e72773cd38d77d";
   };
 
-  propagatedBuildInputs = with stdenv.lib; [ pycares ]
-    ++ optional (pythonOlder "3.7") typing
-    ++ optional (isPy27 || isPyPy) trollius;
+  propagatedBuildInputs = [ pycares ]
+    ++ lib.optional (pythonOlder "3.7") typing
+    ++ lib.optional (isPy27 || isPyPy) trollius;
 
   checkPhase = ''
     ${python.interpreter} tests.py
@@ -21,7 +21,7 @@ buildPythonPackage rec {
   # 'Could not contact DNS servers'
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://github.com/saghul/aiodns";
     license = licenses.mit;
     description = "Simple DNS resolver for asyncio";
diff --git a/nixpkgs/pkgs/development/python-modules/aioeafm/default.nix b/nixpkgs/pkgs/development/python-modules/aioeafm/default.nix
new file mode 100644
index 000000000000..be91e0e95575
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/aioeafm/default.nix
@@ -0,0 +1,44 @@
+{ lib
+, aiohttp
+, async-timeout
+, buildPythonPackage
+, fetchFromGitHub
+, poetry
+, pytest-aiohttp
+, pytest-asyncio
+, pytest-cov
+, pytestCheckHook
+}:
+
+buildPythonPackage rec {
+  pname = "aioeafm";
+  version = "1.0.0";
+  format = "pyproject";
+
+  src = fetchFromGitHub {
+    owner = "Jc2k";
+    repo = pname;
+    rev = version;
+    sha256 = "048cxn3fw2hynp27zlizq7k8ps67qq9sib1ddgirnxy5zc87vgkc";
+  };
+
+  nativeBuildInputs = [ poetry ];
+
+  propagatedBuildInputs = [ aiohttp ];
+
+  checkInputs = [
+    pytest-aiohttp
+    pytest-asyncio
+    pytest-cov
+    pytestCheckHook
+  ];
+
+  pythonImportsCheck = [ "aioeafm" ];
+
+  meta = with lib; {
+    description = "Python client for access the Real Time flood monitoring API";
+    homepage = "https://github.com/Jc2k/aioeafm";
+    license = with licenses; [ asl20 ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/aioesphomeapi/default.nix b/nixpkgs/pkgs/development/python-modules/aioesphomeapi/default.nix
index 6a128eb5239b..03f1ed91cfd8 100644
--- a/nixpkgs/pkgs/development/python-modules/aioesphomeapi/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/aioesphomeapi/default.nix
@@ -1,16 +1,14 @@
-{ lib, buildPythonPackage, fetchFromGitHub, isPy3k, attrs, protobuf, zeroconf }:
+{ lib, buildPythonPackage, fetchPypi, isPy3k, attrs, protobuf, zeroconf }:
 
 buildPythonPackage rec {
   pname = "aioesphomeapi";
-  version = "2.6.3";
+  version = "2.6.4";
 
   disabled = !isPy3k;
 
-  src = fetchFromGitHub {
-    owner = "esphome";
-    repo = pname;
-    rev = "v${version}";
-    sha256 = "1lbjxqdx63fc7qxx7xwq4b9dafmdafj7p1ggs48hyhbqfwkrv9p7";
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "d8def7a909c0471479e1d8b0965de6bb7644b8de315d6e578f9d848b8a6812d0";
   };
 
   propagatedBuildInputs = [ attrs protobuf zeroconf ];
diff --git a/nixpkgs/pkgs/development/python-modules/aioeventlet/default.nix b/nixpkgs/pkgs/development/python-modules/aioeventlet/default.nix
index 0582a59eae87..4bdd2b1327cd 100644
--- a/nixpkgs/pkgs/development/python-modules/aioeventlet/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/aioeventlet/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , eventlet
@@ -26,7 +26,7 @@ buildPythonPackage rec {
     ${python.interpreter} runtests.py
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "aioeventlet implements the asyncio API (PEP 3156) on top of eventlet. It makes";
     homepage = "https://pypi.org/project/aioeventlet/";
     license = licenses.asl20;
diff --git a/nixpkgs/pkgs/development/python-modules/aioflo/default.nix b/nixpkgs/pkgs/development/python-modules/aioflo/default.nix
new file mode 100644
index 000000000000..60288178def5
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/aioflo/default.nix
@@ -0,0 +1,45 @@
+{ lib
+, aiohttp
+, aresponses
+, buildPythonPackage
+, fetchFromGitHub
+, poetry-core
+, pytest-aiohttp
+, pytest-asyncio
+, pytest-cov
+, pytestCheckHook
+}:
+
+buildPythonPackage rec {
+  pname = "aioflo";
+  version = "0.4.2";
+  format = "pyproject";
+
+  src = fetchFromGitHub {
+    owner = "bachya";
+    repo = pname;
+    rev = version;
+    sha256 = "1ppsinmjph6snj7s4hg28p3qa67kpkadc98ikjjg6w65vcm3dlaz";
+  };
+
+  nativeBuildInputs = [ poetry-core ];
+
+  propagatedBuildInputs = [ aiohttp ];
+
+  checkInputs = [
+    aresponses
+    pytest-aiohttp
+    pytest-asyncio
+    pytest-cov
+    pytestCheckHook
+  ];
+
+  pythonImportsCheck = [ "aioflo" ];
+
+  meta = with lib; {
+    description = "Python library for Flo by Moen Smart Water Detectors";
+    homepage = "https://github.com/bachya/aioflo";
+    license = with licenses; [ mit ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/aioguardian/default.nix b/nixpkgs/pkgs/development/python-modules/aioguardian/default.nix
new file mode 100644
index 000000000000..f6822ede08cd
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/aioguardian/default.nix
@@ -0,0 +1,62 @@
+{ lib
+, aiohttp
+, async-timeout
+, asyncio-dgram
+, asynctest
+, buildPythonPackage
+, cryptography
+, fetchFromGitHub
+, poetry
+, pytest-aiohttp
+, pytest-asyncio
+, pytestCheckHook
+, pythonAtLeast
+, voluptuous
+}:
+
+buildPythonPackage rec {
+  pname = "aioguardian";
+  version = "1.0.4";
+  disabled = pythonAtLeast "3.9";
+
+  src = fetchFromGitHub {
+    owner = "bachya";
+    repo = pname;
+    rev = version;
+    sha256 = "1cbxcsxh9c8r2zx3lsjdns26sm2qmlwnqgah2sfzbgp1lay23vvq";
+  };
+
+  format = "pyproject";
+
+  nativeBuildInputs = [ poetry ];
+
+  propagatedBuildInputs = [
+    aiohttp
+    async-timeout
+    asyncio-dgram
+    voluptuous
+  ];
+
+  checkInputs = [
+    asyncio-dgram
+    asynctest
+    pytest-aiohttp
+    pytest-asyncio
+    pytestCheckHook
+  ];
+
+  # Ignore the examples as they are prefixed with test_
+  pytestFlagsArray = [ "--ignore examples/" ];
+  pythonImportsCheck = [ "aioguardian" ];
+
+  meta = with lib; {
+    description = " Python library to interact with Elexa Guardian devices";
+    longDescription = ''
+      aioguardian is a Pytho3, asyncio-focused library for interacting with the
+      Guardian line of water valves and sensors from Elexa.
+    '';
+    homepage = "https://github.com/bachya/aioguardian";
+    license = with licenses; [ mit ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/aioh2/default.nix b/nixpkgs/pkgs/development/python-modules/aioh2/default.nix
index 6af4c4230b0e..1ae997c60e8c 100644
--- a/nixpkgs/pkgs/development/python-modules/aioh2/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/aioh2/default.nix
@@ -19,5 +19,6 @@ buildPythonPackage rec {
     description = "HTTP/2 implementation with hyper-h2 on Python 3 asyncio";
     license = licenses.bsd3;
     maintainers = [ maintainers.qyliss ];
+    broken = true; # requires h2<4
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/aiohomekit/default.nix b/nixpkgs/pkgs/development/python-modules/aiohomekit/default.nix
new file mode 100644
index 000000000000..5a51f66b16a0
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/aiohomekit/default.nix
@@ -0,0 +1,56 @@
+{ lib
+, buildPythonPackage
+, cryptography
+, fetchFromGitHub
+, poetry
+, pytest-aiohttp
+, pytestCheckHook
+, pythonAtLeast
+, zeroconf
+}:
+
+buildPythonPackage rec {
+  pname = "aiohomekit";
+  version = "0.2.60";
+  format = "pyproject";
+  disabled = pythonAtLeast "3.9";
+
+  src = fetchFromGitHub {
+    owner = "Jc2k";
+    repo = pname;
+    rev = version;
+    sha256 = "03llk5i22hq163x568kz0qar5h0sda8f8cxbmgya6z2dcxv0a83p";
+  };
+
+  nativeBuildInputs = [ poetry ];
+
+  propagatedBuildInputs = [
+    cryptography
+    zeroconf
+  ];
+
+  checkInputs = [
+    pytest-aiohttp
+    pytestCheckHook
+  ];
+
+  # Some test requires network access
+  disabledTests = [
+    "test_remove_pairing"
+    "test_pair"
+    "test_add_and_remove_pairings"
+  ];
+
+  pythonImportsCheck = [ "aiohomekit" ];
+
+  meta = with lib; {
+    description = "Python module that implements the HomeKit protocol";
+    longDescription = ''
+      This Python library implements the HomeKit protocol for controlling
+      Homekit accessories.
+    '';
+    homepage = "https://github.com/Jc2k/aiohomekit";
+    license = with licenses; [ asl20 ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/aiohttp-remotes/default.nix b/nixpkgs/pkgs/development/python-modules/aiohttp-remotes/default.nix
index 861dbb9bf071..8a8f7c4b3132 100644
--- a/nixpkgs/pkgs/development/python-modules/aiohttp-remotes/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/aiohttp-remotes/default.nix
@@ -4,20 +4,13 @@
 
 buildPythonPackage rec {
   pname = "aiohttp_remotes";
-  version = "0.1.2";
+  version = "1.0.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "43c3f7e1c5ba27f29fb4dbde5d43b900b5b5fc7e37bf7e35e6eaedabaec4a3fc";
+    sha256 = "1vv2ancxsaxlls9sinigjnrqyx95n7cphq37m8nwifkhvs0idv6a";
   };
 
-  patches = [
-    (fetchpatch {
-      url = "https://github.com/aio-libs/aiohttp-remotes/commit/188772abcea038c31dae7d607e487eeed44391bc.patch";
-      sha256 = "0pb1y4jb8ar1szhnjiyj2sdmdk6z9h6c3wrxw59nv9kr3if5igvs";
-    })
-  ];
-
   propagatedBuildInputs = [ aiohttp ];
 
   checkInputs = [ pytest pytestcov pytest-aiohttp ];
diff --git a/nixpkgs/pkgs/development/python-modules/aioimaplib/default.nix b/nixpkgs/pkgs/development/python-modules/aioimaplib/default.nix
index e3f046e10fc8..6345755bffc7 100644
--- a/nixpkgs/pkgs/development/python-modules/aioimaplib/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/aioimaplib/default.nix
@@ -1,24 +1,45 @@
-{ lib, buildPythonPackage, fetchFromGitHub, isPy3k, pythonOlder, isPy36
-, nose, asynctest, mock, pytz, tzlocal, imaplib2, docutils, pyopenssl }:
+{ lib
+, asynctest
+, buildPythonPackage
+, docutils
+, fetchFromGitHub
+, imaplib2
+, mock
+, nose
+, pyopenssl
+, pytestCheckHook
+, pythonOlder
+, pytz
+, tzlocal
+}:
 
 buildPythonPackage rec {
   pname = "aioimaplib";
-  version = "0.7.15";
+  version = "0.7.18";
 
-  # PyPI tarball doesn't ship tests
   src = fetchFromGitHub {
     owner = "bamthomas";
     repo = pname;
     rev = version;
-    sha256 = "15nny3y8pwaizq1zmkg43ym5jszk2hs010z12yn2d0j1fibymwbj";
+    sha256 = "037fxwmkdfb95cqcykrhn37p138wg9pvlsgdf45vyn1mhz5crky5";
   };
 
-  disabled = !(isPy3k && pythonOlder "3.7");
+  checkInputs = [
+    asynctest
+    docutils
+    imaplib2
+    mock
+    nose
+    pyopenssl
+    pytestCheckHook
+    pytz
+    tzlocal
+  ];
 
-  checkInputs = [ nose asynctest mock pytz tzlocal imaplib2 docutils pyopenssl ];
-
-  # https://github.com/bamthomas/aioimaplib/issues/35
-  doCheck = !isPy36;
+  # Project is using asynctest with doesn't work with Python 3.8 and above
+  # https://github.com/bamthomas/aioimaplib/issues/54
+  doCheck = pythonOlder "3.8";
+  pythonImportsCheck = [ "aioimaplib" ];
 
   meta = with lib; {
     description = "Python asyncio IMAP4rev1 client library";
diff --git a/nixpkgs/pkgs/development/python-modules/aiokef/default.nix b/nixpkgs/pkgs/development/python-modules/aiokef/default.nix
new file mode 100644
index 000000000000..c153ff37d8c2
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/aiokef/default.nix
@@ -0,0 +1,44 @@
+{ lib
+, async-timeout
+, buildPythonPackage
+, fetchFromGitHub
+, pytest-cov
+, pytestCheckHook
+, pytest-mypy
+, pythonOlder
+, tenacity
+}:
+
+buildPythonPackage rec {
+  pname = "aiokef";
+  version = "0.2.17";
+  disabled = pythonOlder "3.7";
+
+  src = fetchFromGitHub {
+    owner = "basnijholt";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "0ms0dwrpj80w55svcppbnp7vyl5ipnjfp1c436k5c7pph4q5pxk9";
+  };
+
+  propagatedBuildInputs = [
+    async-timeout
+    tenacity
+  ];
+
+  checkInputs = [
+    pytest-cov
+    pytest-mypy
+    pytestCheckHook
+  ];
+
+  pytestFlagsArray = [ "tests" ];
+  pythonImportsCheck = [ "aiokef" ];
+
+  meta = with lib; {
+    description = "Python API for KEF speakers";
+    homepage = "https://github.com/basnijholt/aiokef";
+    license = with licenses; [ mit ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/aiolifx/default.nix b/nixpkgs/pkgs/development/python-modules/aiolifx/default.nix
index 7b33b1c508f8..748ed242ae9a 100644
--- a/nixpkgs/pkgs/development/python-modules/aiolifx/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/aiolifx/default.nix
@@ -8,11 +8,11 @@
 
 buildPythonPackage rec {
   pname = "aiolifx";
-  version = "0.6.8";
+  version = "0.6.9";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "9f9055bc2a9a72c5eab17e0ce5522edecd6de07e21cf347bf0cffabdabe5570e";
+    sha256 = "0c28e9c058ee504a07eec11cb333bc6496d233da100dcab9c33549e9eb4985c0";
   };
 
   # tests are not implemented
diff --git a/nixpkgs/pkgs/development/python-modules/aioredis/default.nix b/nixpkgs/pkgs/development/python-modules/aioredis/default.nix
index a199878fc216..94f503fe2cc3 100644
--- a/nixpkgs/pkgs/development/python-modules/aioredis/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/aioredis/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi
+{ lib, stdenv, buildPythonPackage, fetchPypi
 , pkgs, async-timeout, hiredis, isPyPy, isPy27
 }:
 
@@ -15,12 +15,12 @@ buildPythonPackage rec {
 
   propagatedBuildInputs = [
     async-timeout
-  ] ++ stdenv.lib.optional (!isPyPy) hiredis;
+  ] ++ lib.optional (!isPyPy) hiredis;
 
   # Wants to run redis-server, hardcoded FHS paths, too much trouble.
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Asyncio (PEP 3156) Redis client library";
     homepage = "https://github.com/aio-libs/aioredis";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/aioshelly/default.nix b/nixpkgs/pkgs/development/python-modules/aioshelly/default.nix
new file mode 100644
index 000000000000..f53877e03a3c
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/aioshelly/default.nix
@@ -0,0 +1,35 @@
+{ lib
+, aiohttp
+, buildPythonPackage
+, fetchFromGitHub
+, netifaces
+}:
+
+buildPythonPackage rec {
+  pname = "aioshelly";
+  version = "0.5.4";
+
+  src = fetchFromGitHub {
+    owner = "home-assistant-libs";
+    repo = pname;
+    rev = version;
+    sha256 = "sha256-EjzWx3wcmTfB3OmN0OB37K6wYKVO3HzGEIf+uihas8k=";
+  };
+
+  propagatedBuildInputs = [
+    aiohttp
+    netifaces
+  ];
+
+  # Project has no test
+  doCheck = false;
+  pythonImportsCheck = [ "aioshelly" ];
+
+  meta = with lib; {
+    description = "Python library to control Shelly";
+    homepage = "https://github.com/home-assistant-libs/aioshelly";
+    changelog = "https://github.com/home-assistant-libs/aioshelly/releases/tag/${version}";
+    license = with licenses; [ asl20 ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/aiosqlite/default.nix b/nixpkgs/pkgs/development/python-modules/aiosqlite/default.nix
index e616a5363477..44cae12cba52 100644
--- a/nixpkgs/pkgs/development/python-modules/aiosqlite/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/aiosqlite/default.nix
@@ -1,32 +1,31 @@
 { lib
-, buildPythonPackage
-, fetchFromGitHub
-, setuptools
 , aiounittest
+, buildPythonPackage
+, fetchPypi
 , isPy27
-, pytest
+, pytestCheckHook
+, typing-extensions
 }:
 
 buildPythonPackage rec {
   pname = "aiosqlite";
-  version = "0.12.0";
+  version = "0.16.0";
   disabled = isPy27;
 
-  src = fetchFromGitHub {
-    owner = "jreese";
-    repo = pname;
-    rev = "v${version}";
-    sha256 = "090vdv210zfry0bms5b3lmm06yhiyjb8ga96996cqs611l7c2a2j";
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1a0fjmlvadyzsml10g5p1qif7192k0swy5zwjp8v48y5zc3yy56h";
   };
 
-  buildInputs = [
-    setuptools
-  ];
-
   checkInputs = [
     aiounittest
+    pytestCheckHook
+    typing-extensions
   ];
 
+  # tests are not pick-up automatically by the hook
+  pytestFlagsArray = [ "aiosqlite/tests/*.py" ];
+
   meta = with lib; {
     description = "Asyncio bridge to the standard sqlite3 module";
     homepage = "https://github.com/jreese/aiosqlite";
diff --git a/nixpkgs/pkgs/development/python-modules/aiostream/default.nix b/nixpkgs/pkgs/development/python-modules/aiostream/default.nix
new file mode 100644
index 000000000000..a48e2ae02401
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/aiostream/default.nix
@@ -0,0 +1,30 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, pythonOlder
+, pytestCheckHook
+, pytestcov
+, pytest-asyncio
+}:
+
+buildPythonPackage rec {
+  pname = "aiostream";
+  version = "0.4.1";
+  disabled = pythonOlder "3.6";
+
+  src = fetchFromGitHub {
+    owner = "vxgmichel";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "1wwnjrzkd61k3arxzk7yhg7cc1099bcwr5kz5n91ai6ma5ln139s";
+  };
+
+  checkInputs = [ pytestCheckHook pytestcov pytest-asyncio ];
+
+  meta = with lib; {
+    description = "Generator-based operators for asynchronous iteration";
+    homepage = "https://aiostream.readthedocs.io";
+    license = licenses.gpl3Only;
+    maintainers = [ maintainers.rmcgibbo ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/aioswitcher/default.nix b/nixpkgs/pkgs/development/python-modules/aioswitcher/default.nix
new file mode 100644
index 000000000000..115da7dfca40
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/aioswitcher/default.nix
@@ -0,0 +1,45 @@
+{ lib
+, aiohttp
+, asynctest
+, buildPythonPackage
+, fetchFromGitHub
+, poetry
+, pytest-aiohttp
+, pytest-asyncio
+, pytest-sugar
+, pytestCheckHook
+}:
+
+buildPythonPackage rec {
+  pname = "aioswitcher";
+  version = "1.2.2";
+  format = "pyproject";
+
+  src = fetchFromGitHub {
+    owner = "TomerFi";
+    repo = pname;
+    rev = version;
+    sha256 = "0wvca1jbyj4bwrpkpklbxnkvdp9zs7mrvg5b9vkx2hpyr81vyxam";
+  };
+
+  nativeBuildInputs = [ poetry ];
+
+  propagatedBuildInputs = [ aiohttp ];
+
+  checkInputs = [
+    asynctest
+    pytest-aiohttp
+    pytest-asyncio
+    pytest-sugar
+    pytestCheckHook
+  ];
+
+  pythonImportsCheck = [ "aioswitcher" ];
+
+  meta = with lib; {
+    description = "Python module to interact with Switcher water heater";
+    homepage = "https://github.com/TomerFi/aioswitcher";
+    license = with licenses; [ mit ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/aiowinreg/default.nix b/nixpkgs/pkgs/development/python-modules/aiowinreg/default.nix
new file mode 100644
index 000000000000..3b02916d229f
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/aiowinreg/default.nix
@@ -0,0 +1,28 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, pythonOlder
+}:
+
+buildPythonPackage rec {
+  pname = "aiowinreg";
+  version = "0.0.4";
+
+  disabled = pythonOlder "3.6";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "956278a90ef6958f9e2392891b2a305273f695b15b14489cd2097197d6cbe155";
+  };
+
+  # Project doesn't have tests
+  doCheck = false;
+  pythonImportsCheck = [ "aiowinreg" ];
+
+  meta = with lib; {
+    description = "Python module to parse the registry hive";
+    homepage = "https://github.com/skelsec/aiowinreg";
+    license = with licenses; [ mit ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/aiozeroconf/default.nix b/nixpkgs/pkgs/development/python-modules/aiozeroconf/default.nix
index b89ba73b0d64..d73ae2b35dfb 100644
--- a/nixpkgs/pkgs/development/python-modules/aiozeroconf/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/aiozeroconf/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , netifaces
@@ -17,7 +17,7 @@ buildPythonPackage rec {
 
   propagatedBuildInputs = [ netifaces ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "A pure python implementation of multicast DNS service discovery";
     homepage = "https://github.com/jstasiak/python-zeroconf";
     license = licenses.lgpl21;
diff --git a/nixpkgs/pkgs/development/python-modules/airly/default.nix b/nixpkgs/pkgs/development/python-modules/airly/default.nix
new file mode 100644
index 000000000000..e75653fb684a
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/airly/default.nix
@@ -0,0 +1,35 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, aiohttp
+, pytestCheckHook
+}:
+
+buildPythonPackage rec {
+  pname = "airly";
+  version = "1.0.0";
+
+  src = fetchFromGitHub {
+    owner = "ak-ambi";
+    repo = "python-airly";
+    rev = "v${version}";
+    sha256 = "0an6nbl0i5pahxm6x4z03s9apzgqrw9zf7srjcs0r3y1ppicb4s6";
+  };
+
+  propagatedBuildInputs = [ aiohttp ];
+
+  checkInputs = [ pytestCheckHook ];
+
+  disabledTests = [
+    "InstallationsLoaderTestCase"
+    "MeasurementsSessionTestCase"
+  ];
+  pythonImportsCheck = [ "airly" ];
+
+  meta = with lib; {
+    description = "Python module for getting air quality data from Airly sensors";
+    homepage = "https://github.com/ak-ambi/python-airly";
+    license = with licenses; [ mit ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/ajpy/default.nix b/nixpkgs/pkgs/development/python-modules/ajpy/default.nix
index 5f42646dd998..0dd135e139fd 100644
--- a/nixpkgs/pkgs/development/python-modules/ajpy/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/ajpy/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi }:
+{ lib, stdenv, buildPythonPackage, fetchPypi }:
 
 buildPythonPackage rec {
   pname = "ajpy";
@@ -12,7 +12,7 @@ buildPythonPackage rec {
   # ajpy doesn't have tests
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "AJP package crafting library";
     homepage = "https://github.com/hypn0s/AJPy/";
     license = licenses.lgpl2;
diff --git a/nixpkgs/pkgs/development/python-modules/alabaster/default.nix b/nixpkgs/pkgs/development/python-modules/alabaster/default.nix
index d54741b63ea2..b4cc69e555bc 100644
--- a/nixpkgs/pkgs/development/python-modules/alabaster/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/alabaster/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi
+{ lib, stdenv, buildPythonPackage, fetchPypi
 , pygments }:
 
 buildPythonPackage rec {
@@ -15,7 +15,7 @@ buildPythonPackage rec {
   # No tests included
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://github.com/bitprophet/alabaster";
     description = "A Sphinx theme";
     license = licenses.bsd3;
diff --git a/nixpkgs/pkgs/development/python-modules/alarmdecoder/default.nix b/nixpkgs/pkgs/development/python-modules/alarmdecoder/default.nix
index ef8b74bb9d71..b563a80447f2 100644
--- a/nixpkgs/pkgs/development/python-modules/alarmdecoder/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/alarmdecoder/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchFromGitHub, pyserial, pyftdi, pyusb
+{ lib, stdenv, buildPythonPackage, fetchFromGitHub, pyserial, pyftdi, pyusb
 , pyopenssl, nose, isPy3k, pythonOlder, mock }:
 
 buildPythonPackage rec {
@@ -19,7 +19,7 @@ buildPythonPackage rec {
   checkInputs = [ nose mock ];
   pythonImportsCheck = [ "alarmdecoder" ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://github.com/nutechsoftware/alarmdecoder";
     description =
       "Python interface for the Alarm Decoder (AD2) family of alarm devices. (AD2USB, AD2SERIAL and AD2PI)";
diff --git a/nixpkgs/pkgs/development/python-modules/alembic/default.nix b/nixpkgs/pkgs/development/python-modules/alembic/default.nix
index 4061dca8aa28..142c6d1c416c 100644
--- a/nixpkgs/pkgs/development/python-modules/alembic/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/alembic/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi
+{ lib, stdenv, buildPythonPackage, fetchPypi
 , pytest, pytestcov, mock, coverage, setuptools
 , Mako, sqlalchemy, python-editor, dateutil
 }:
@@ -18,7 +18,7 @@ buildPythonPackage rec {
   # no traditional test suite
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://bitbucket.org/zzzeek/alembic";
     description = "A database migration tool for SQLAlchemy";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/alerta-server/default.nix b/nixpkgs/pkgs/development/python-modules/alerta-server/default.nix
index f8a3b9684805..dd2d82578ea2 100644
--- a/nixpkgs/pkgs/development/python-modules/alerta-server/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/alerta-server/default.nix
@@ -1,14 +1,14 @@
-{ stdenv, buildPythonPackage, fetchPypi, pythonOlder
+{ lib, stdenv, buildPythonPackage, fetchPypi, pythonOlder
 , bcrypt, blinker, flask, flask-compress, flask-cors, mohawk, psycopg2, pyjwt, pymongo, python-dateutil, pytz, pyyaml, requests, requests-hawk, sentry-sdk
 }:
 
 buildPythonPackage rec {
   pname = "alerta-server";
-  version = "8.1.0";
+  version = "8.3.3";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "32a97eee95aea5527f6efa844c18b727fe4a6d61356ea3c0769a29a163ddcb7e";
+    sha256 = "a2713a31c6e326c774a3ee0328f424f944b951935ff1b893a4a66598d61c5a97";
   };
 
   propagatedBuildInputs = [
@@ -37,7 +37,7 @@ buildPythonPackage rec {
 
   disabled = pythonOlder "3.5";
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://alerta.io";
     description = "Alerta Monitoring System server";
     license = licenses.asl20;
diff --git a/nixpkgs/pkgs/development/python-modules/alerta/default.nix b/nixpkgs/pkgs/development/python-modules/alerta/default.nix
index c8007566328a..19dd17ee3f02 100644
--- a/nixpkgs/pkgs/development/python-modules/alerta/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/alerta/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi
+{ lib, stdenv, buildPythonPackage, fetchPypi
 , six, click, requests, requests-hawk, pytz, tabulate, pythonOlder
 }:
 
@@ -21,7 +21,7 @@ buildPythonPackage rec {
 
   disabled = pythonOlder "3.5";
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://alerta.io";
     description = "Alerta Monitoring System command-line interface";
     license = licenses.asl20;
diff --git a/nixpkgs/pkgs/development/python-modules/alot/default.nix b/nixpkgs/pkgs/development/python-modules/alot/default.nix
index c3b624a7bced..21c6aaff2fbc 100644
--- a/nixpkgs/pkgs/development/python-modules/alot/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/alot/default.nix
@@ -60,7 +60,7 @@ buildPythonPackage rec {
     sed "s,/usr/bin,$out/bin,g" extra/alot.desktop > $out/share/applications/alot.desktop
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://github.com/pazz/alot";
     description = "Terminal MUA using notmuch mail";
     license = licenses.gpl3;
diff --git a/nixpkgs/pkgs/development/python-modules/altair/default.nix b/nixpkgs/pkgs/development/python-modules/altair/default.nix
index f5076953bf20..a3b515ebeca8 100644
--- a/nixpkgs/pkgs/development/python-modules/altair/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/altair/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi, isPy27
+{ lib, stdenv, buildPythonPackage, fetchPypi, isPy27
 , entrypoints
 , glibcLocales
 , ipython
@@ -33,7 +33,7 @@ buildPythonPackage rec {
     pandas
     six
     toolz
-  ] ++ stdenv.lib.optionals (pythonOlder "3.5") [ typing ];
+  ] ++ lib.optionals (pythonOlder "3.5") [ typing ];
 
   checkInputs = [
     glibcLocales
@@ -52,7 +52,7 @@ buildPythonPackage rec {
     pytest --doctest-modules altair
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "A declarative statistical visualization library for Python.";
     homepage = "https://github.com/altair-viz/altair";
     license = licenses.bsd3;
diff --git a/nixpkgs/pkgs/development/python-modules/amazon_kclpy/default.nix b/nixpkgs/pkgs/development/python-modules/amazon_kclpy/default.nix
index bfce45ae206c..ed266c0db788 100644
--- a/nixpkgs/pkgs/development/python-modules/amazon_kclpy/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/amazon_kclpy/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchFromGitHub, python, mock, boto, pytest }:
+{ lib, stdenv, buildPythonPackage, fetchFromGitHub, python, mock, boto, pytest }:
 
 buildPythonPackage rec {
   pname = "amazon_kclpy";
@@ -25,7 +25,7 @@ buildPythonPackage rec {
     ${python.interpreter} -m pytest
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Amazon Kinesis Client Library for Python";
     homepage = "https://github.com/awslabs/amazon-kinesis-client-python";
     license = licenses.amazonsl;
diff --git a/nixpkgs/pkgs/development/python-modules/amcrest/default.nix b/nixpkgs/pkgs/development/python-modules/amcrest/default.nix
new file mode 100644
index 000000000000..772b8fbaa046
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/amcrest/default.nix
@@ -0,0 +1,43 @@
+{ lib
+, argcomplete
+, buildPythonPackage
+, fetchFromGitHub
+, mock
+, pytestCheckHook
+, requests
+, responses
+, urllib3
+}:
+
+buildPythonPackage rec {
+  pname = "amcrest";
+  version = "1.7.2";
+
+  src = fetchFromGitHub {
+    owner = "tchellomello";
+    repo = "python-amcrest";
+    rev = version;
+    sha256 = "06gbrshf6vqvq3k813d1w37k2kmps0g6msa4lp2f9xvzw3iczshy";
+  };
+
+  propagatedBuildInputs = [
+    argcomplete
+    requests
+    urllib3
+  ];
+
+  checkInputs = [
+    mock
+    pytestCheckHook
+    responses
+  ];
+
+  pythonImportsCheck = [ "amcrest" ];
+
+  meta = with lib; {
+    description = "Python module for Amcrest and Dahua Cameras";
+    homepage = "https://github.com/tchellomello/python-amcrest";
+    license = with licenses; [ gpl2Only ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/amply/default.nix b/nixpkgs/pkgs/development/python-modules/amply/default.nix
index 1962d004f41b..32bcbb4589ab 100644
--- a/nixpkgs/pkgs/development/python-modules/amply/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/amply/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , fetchPypi
 , buildPythonPackage
 , setuptools_scm
@@ -25,7 +25,7 @@ buildPythonPackage rec {
 
   pythonImportsCheck = [ "amply" ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://github.com/willu47/amply";
     description = ''
       Allows you to load and manipulate AMPL/GLPK data as Python data structures
diff --git a/nixpkgs/pkgs/development/python-modules/amqp/default.nix b/nixpkgs/pkgs/development/python-modules/amqp/default.nix
index 12dc1eca2a31..b614ae453d25 100644
--- a/nixpkgs/pkgs/development/python-modules/amqp/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/amqp/default.nix
@@ -1,12 +1,12 @@
-{ stdenv, buildPythonPackage, fetchPypi, pytestCheckHook, case, vine }:
+{ lib, stdenv, buildPythonPackage, fetchPypi, pytestCheckHook, case, vine }:
 
 buildPythonPackage rec {
   pname = "amqp";
-  version = "5.0.2";
+  version = "5.0.3";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "fcd5b3baeeb7fc19b3486ff6d10543099d40ae1f5c9196eae695d1cde1b2f784";
+    sha256 = "1733ebf713050504fd9d2ebc661f1fc95b3588f99ee87d2e39c84c27bfd815dc";
   };
 
   propagatedBuildInputs = [ vine ];
@@ -16,7 +16,7 @@ buildPythonPackage rec {
     "test_rmq.py" # requires network access
   ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://github.com/celery/py-amqp";
     description = "Python client for the Advanced Message Queuing Procotol (AMQP). This is a fork of amqplib which is maintained by the Celery project";
     license = licenses.lgpl21;
diff --git a/nixpkgs/pkgs/development/python-modules/amqplib/default.nix b/nixpkgs/pkgs/development/python-modules/amqplib/default.nix
index a3e11271ade2..c7b4dc865bb8 100644
--- a/nixpkgs/pkgs/development/python-modules/amqplib/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/amqplib/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi, python }:
+{ lib, stdenv, buildPythonPackage, fetchPypi, python }:
 
 buildPythonPackage rec {
   pname = "amqplib";
@@ -17,7 +17,7 @@ buildPythonPackage rec {
     ${python.interpreter} tests/client_0_8/run_all.py
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://github.com/barryp/py-amqplib";
     description = "Python client for the Advanced Message Queuing Procotol (AMQP)";
     license = licenses.lgpl21;
diff --git a/nixpkgs/pkgs/development/python-modules/aniso8601/default.nix b/nixpkgs/pkgs/development/python-modules/aniso8601/default.nix
index 97e79e4e8eb7..804402a4ca67 100644
--- a/nixpkgs/pkgs/development/python-modules/aniso8601/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/aniso8601/default.nix
@@ -1,11 +1,11 @@
-{ stdenv, buildPythonPackage, fetchPypi
+{ lib, stdenv, buildPythonPackage, fetchPypi
 , dateutil, mock, isPy3k }:
 
 buildPythonPackage rec {
   pname = "aniso8601";
   version = "8.1.0";
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Parses ISO 8601 strings.";
     homepage    = "https://bitbucket.org/nielsenb/aniso8601";
     license     = licenses.bsd3;
@@ -13,7 +13,7 @@ buildPythonPackage rec {
 
   propagatedBuildInputs = [ dateutil ];
 
-  checkInputs = stdenv.lib.optional (!isPy3k) mock;
+  checkInputs = lib.optional (!isPy3k) mock;
 
   src = fetchPypi {
     inherit pname version;
diff --git a/nixpkgs/pkgs/development/python-modules/annoy/default.nix b/nixpkgs/pkgs/development/python-modules/annoy/default.nix
index 138c70a38483..0bd060843809 100644
--- a/nixpkgs/pkgs/development/python-modules/annoy/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/annoy/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , h5py
@@ -20,7 +20,7 @@ buildPythonPackage rec {
     nose
   ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Approximate Nearest Neighbors in C++/Python optimized for memory usage and loading/saving to disk";
     homepage = "https://github.com/spotify/annoy";
     license = licenses.asl20;
diff --git a/nixpkgs/pkgs/development/python-modules/anonip/default.nix b/nixpkgs/pkgs/development/python-modules/anonip/default.nix
index de9048bde343..9c1b3abf9800 100644
--- a/nixpkgs/pkgs/development/python-modules/anonip/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/anonip/default.nix
@@ -15,7 +15,7 @@ buildPythonPackage rec {
 
   checkPhase = "python tests.py";
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://github.com/DigitaleGesellschaft/Anonip";
     description = "A tool to anonymize IP-addresses in log-files";
     license = licenses.bsd3;
diff --git a/nixpkgs/pkgs/development/python-modules/ansi/default.nix b/nixpkgs/pkgs/development/python-modules/ansi/default.nix
index 65f51c17d7d4..d198fde80bb8 100644
--- a/nixpkgs/pkgs/development/python-modules/ansi/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/ansi/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "ansi";
-  version = "0.1.5";
+  version = "0.2.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "02sknsbx55r6nylznslmmzzkfi3rsw7akpyzi6f1bqvr2ila8p0f";
+    sha256 = "98e9b27c4bb187867a69480cbc63b843331622fec7e7d090873d806e1b5d8a80";
   };
 
   checkPhase = ''
diff --git a/nixpkgs/pkgs/development/python-modules/ansicolor/default.nix b/nixpkgs/pkgs/development/python-modules/ansicolor/default.nix
index f9d589e43696..3d96061362e9 100644
--- a/nixpkgs/pkgs/development/python-modules/ansicolor/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/ansicolor/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi }:
+{ lib, stdenv, buildPythonPackage, fetchPypi }:
 
 buildPythonPackage rec {
   pname = "ansicolor";
@@ -9,7 +9,7 @@ buildPythonPackage rec {
     sha256 = "d17e1b07b9dd7ded31699fbca53ae6cd373584f9b6dcbc124d1f321ebad31f1d";
   };
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://github.com/numerodix/ansicolor/";
     description = "A library to produce ansi color output and colored highlighting and diffing";
     license = licenses.asl20;
diff --git a/nixpkgs/pkgs/development/python-modules/ansicolors/default.nix b/nixpkgs/pkgs/development/python-modules/ansicolors/default.nix
index 3ea77384c797..7d6dd2127e67 100644
--- a/nixpkgs/pkgs/development/python-modules/ansicolors/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/ansicolors/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi, pytest }:
+{ lib, stdenv, buildPythonPackage, fetchPypi, pytest }:
 
 buildPythonPackage rec {
   pname = "ansicolors";
@@ -16,7 +16,7 @@ buildPythonPackage rec {
     py.test
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://github.com/verigak/colors/";
     description = "ANSI colors for Python";
     license = licenses.isc;
diff --git a/nixpkgs/pkgs/development/python-modules/ansiconv/default.nix b/nixpkgs/pkgs/development/python-modules/ansiconv/default.nix
index d2de4837e07a..6a3571960d03 100644
--- a/nixpkgs/pkgs/development/python-modules/ansiconv/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/ansiconv/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchFromGitHub, pytest }:
+{ lib, stdenv, buildPythonPackage, fetchFromGitHub, pytest }:
 
 buildPythonPackage rec {
   pname = "ansiconv";
@@ -13,7 +13,7 @@ buildPythonPackage rec {
 
   checkInputs = [ pytest ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "A module for converting ANSI coded text and converts it to either plain text or HTML";
     homepage = "https://github.com/ansible/ansiconv";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/apipkg/default.nix b/nixpkgs/pkgs/development/python-modules/apipkg/default.nix
index 22bddb252c8e..604c37b42ba1 100644
--- a/nixpkgs/pkgs/development/python-modules/apipkg/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/apipkg/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi
+{ lib, stdenv, buildPythonPackage, fetchPypi
 , pytest, setuptools_scm, isPy3k }:
 
 buildPythonPackage rec {
@@ -22,18 +22,18 @@ buildPythonPackage rec {
   # Failing tests on Python 3
   # https://github.com/pytest-dev/apipkg/issues/17
   checkPhase = let
-    disabledTests = stdenv.lib.optionals isPy3k [
+    disabledTests = lib.optionals isPy3k [
       "test_error_loading_one_element"
       "test_aliasmodule_proxy_methods"
       "test_eagerload_on_bython"
     ];
-    testExpression = stdenv.lib.optionalString (disabledTests != [])
-    "-k 'not ${stdenv.lib.concatStringsSep " and not " disabledTests}'";
+    testExpression = lib.optionalString (disabledTests != [])
+    "-k 'not ${lib.concatStringsSep " and not " disabledTests}'";
   in ''
     py.test ${testExpression}
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Namespace control and lazy-import mechanism";
     homepage = "https://github.com/pytest-dev/apipkg";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/apprise/default.nix b/nixpkgs/pkgs/development/python-modules/apprise/default.nix
index 5c260692887a..c3f318503884 100644
--- a/nixpkgs/pkgs/development/python-modules/apprise/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/apprise/default.nix
@@ -1,27 +1,33 @@
-{ lib, buildPythonPackage, fetchPypi
+{ lib, buildPythonPackage, fetchPypi, installShellFiles
 , Babel, requests, requests_oauthlib, six, click, markdown, pyyaml
-, pytestrunner, coverage, flake8, mock, pytest, pytestcov, tox, gntp, sleekxmpp
+, pytestrunner, coverage, flake8, mock, pytestCheckHook, pytestcov, tox, gntp, sleekxmpp
 }:
 
 buildPythonPackage rec {
   pname = "apprise";
-  version = "0.8.9";
+  version = "0.9.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "024db00c6a80dbc8c9038b2de211c9fd32963046612882f3f54ad78930f3e0f7";
+    sha256 = "bab3563bc1e0c64938c4c7700112797bd99f20eb5d4a3e6038338bc8f060e153";
   };
 
-  nativeBuildInputs = [ Babel ];
+  nativeBuildInputs = [ Babel installShellFiles ];
 
   propagatedBuildInputs = [
     requests requests_oauthlib six click markdown pyyaml
   ];
 
   checkInputs = [
-    pytestrunner coverage flake8 mock pytest pytestcov tox gntp sleekxmpp
+    pytestrunner coverage flake8 mock pytestCheckHook pytestcov tox gntp sleekxmpp
   ];
 
+  disabledTests = [ "test_apprise_cli_nux_env"  ];
+
+  postInstall = ''
+    installManPage packaging/man/apprise.1
+  '';
+
   meta = with lib; {
     homepage = "https://github.com/caronc/apprise";
     description = "Push Notifications that work with just about every platform!";
diff --git a/nixpkgs/pkgs/development/python-modules/approvaltests/default.nix b/nixpkgs/pkgs/development/python-modules/approvaltests/default.nix
index a7b0b51d8f1c..bc47de371288 100644
--- a/nixpkgs/pkgs/development/python-modules/approvaltests/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/approvaltests/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchFromGitHub, isPy37, pyperclip }:
+{ lib, stdenv, buildPythonPackage, fetchFromGitHub, isPy37, pyperclip }:
 
 buildPythonPackage rec {
   version = "0.2.6";
@@ -19,7 +19,7 @@ buildPythonPackage rec {
       --replace "pyperclip==1.5.27" "pyperclip>=1.5.27"
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Assertion/verification library to aid testing";
     homepage = "https://github.com/approvals/ApprovalTests.Python";
     license = licenses.asl20;
diff --git a/nixpkgs/pkgs/development/python-modules/apptools/default.nix b/nixpkgs/pkgs/development/python-modules/apptools/default.nix
index 47144fc07aa0..a03b051b11d2 100644
--- a/nixpkgs/pkgs/development/python-modules/apptools/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/apptools/default.nix
@@ -28,7 +28,7 @@ buildPythonPackage rec {
   ];
 
   doCheck = true;
-  checkPhase = ''HOME=$TMP nosetests'';
+  checkPhase = "HOME=$TMP nosetests";
 
   meta = with lib; {
     description = "Set of packages that Enthought has found useful in creating a number of applications.";
diff --git a/nixpkgs/pkgs/development/python-modules/apsw/default.nix b/nixpkgs/pkgs/development/python-modules/apsw/default.nix
index 1f314dc7408a..de74480765a0 100644
--- a/nixpkgs/pkgs/development/python-modules/apsw/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/apsw/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchFromGitHub, fetchpatch
+{ lib, stdenv, buildPythonPackage, fetchFromGitHub, fetchpatch
 , sqlite, isPyPy }:
 
 buildPythonPackage rec {
@@ -16,7 +16,7 @@ buildPythonPackage rec {
 
   buildInputs = [ sqlite ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "A Python wrapper for the SQLite embedded relational database engine";
     homepage = "https://github.com/rogerbinns/apsw";
     license = licenses.zlib;
diff --git a/nixpkgs/pkgs/development/python-modules/archinfo/default.nix b/nixpkgs/pkgs/development/python-modules/archinfo/default.nix
new file mode 100644
index 000000000000..4506f422f928
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/archinfo/default.nix
@@ -0,0 +1,32 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, pytestCheckHook
+, nose
+}:
+
+buildPythonPackage rec {
+  pname = "archinfo";
+  version = "9.0.5327";
+
+  src = fetchFromGitHub {
+    owner = "angr";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "0r7nj2hf51c954ihfxyhpbz1sd9lrc6i9zfkz11s22wpggvp06mz";
+  };
+
+  checkInputs = [
+    nose
+    pytestCheckHook
+  ];
+
+  pythonImportsCheck = [ "archinfo" ];
+
+  meta = with lib; {
+    description = "Classes with architecture-specific information";
+    homepage = "https://github.com/angr/archinfo";
+    license = with licenses; [ bsd2 ];
+    maintainers = [ maintainers.fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/aresponses/default.nix b/nixpkgs/pkgs/development/python-modules/aresponses/default.nix
index 56093192d6c7..53353a137886 100644
--- a/nixpkgs/pkgs/development/python-modules/aresponses/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/aresponses/default.nix
@@ -1,23 +1,25 @@
 { lib
-, buildPythonPackage
-, fetchPypi
-# propagatedBuildInputs
 , aiohttp
-# buildInputs
+, buildPythonPackage
+, fetchFromGitHub
+, isPy3k
 , pytest
 , pytest-asyncio
-, isPy3k
+, pytest-cov
+, pytestCheckHook
 }:
 
 buildPythonPackage rec {
   pname = "aresponses";
-  version = "2.0.0";
+  version = "2.1.2";
 
   disabled = !isPy3k;
 
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "58693a6b715edfa830a20903ee1d1b2a791251923f311b3bebf113e8ff07bb35";
+  src = fetchFromGitHub {
+    owner = "CircleUp";
+    repo = pname;
+    rev = version;
+    sha256 = "007wrk4wdy97a81imgzxd6sm5dly9v7abmxh9fyfi0vp1p7s75bw";
   };
 
   propagatedBuildInputs = [
@@ -29,13 +31,27 @@ buildPythonPackage rec {
     pytest-asyncio
   ];
 
-  # tests only distributed via git repository, not pypi
-  doCheck = false;
+  checkInputs = [
+    aiohttp
+    pytest-asyncio
+    pytest-cov
+    pytestCheckHook
+  ];
+
+  # Disable tests which requires network access
+  disabledTests = [
+    "test_foo"
+    "test_passthrough"
+  ];
+
+  __darwinAllowLocalNetworking = true;
+
+  pythonImportsCheck = [ "aresponses" ];
 
   meta = with lib; {
     description = "Asyncio testing server";
     homepage = "https://github.com/circleup/aresponses";
     license = licenses.mit;
-    maintainers = [ maintainers.makefu ];
+    maintainers = with maintainers; [ makefu ];
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/argh/default.nix b/nixpkgs/pkgs/development/python-modules/argh/default.nix
index 544a66c05821..0e2beb6a31eb 100644
--- a/nixpkgs/pkgs/development/python-modules/argh/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/argh/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , pytest
@@ -24,7 +24,7 @@ buildPythonPackage rec {
     py.test
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://github.com/neithere/argh/";
     description = "An unobtrusive argparse wrapper with natural syntax";
     license = licenses.lgpl2;
diff --git a/nixpkgs/pkgs/development/python-modules/args/default.nix b/nixpkgs/pkgs/development/python-modules/args/default.nix
index ae66713361c2..cb349484f276 100644
--- a/nixpkgs/pkgs/development/python-modules/args/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/args/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi }:
+{ lib, stdenv, buildPythonPackage, fetchPypi }:
 
 buildPythonPackage rec {
   pname = "args";
@@ -9,7 +9,7 @@ buildPythonPackage rec {
     sha256 = "a785b8d837625e9b61c39108532d95b85274acd679693b71ebb5156848fcf814";
   };
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Command Arguments for Humans";
     homepage = "https://github.com/kennethreitz/args";
   };
diff --git a/nixpkgs/pkgs/development/python-modules/aria2p/default.nix b/nixpkgs/pkgs/development/python-modules/aria2p/default.nix
index a7d8221d78ef..076fec8c56ba 100644
--- a/nixpkgs/pkgs/development/python-modules/aria2p/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/aria2p/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchFromGitHub, pythonOlder
+{ lib, stdenv, buildPythonPackage, fetchFromGitHub, pythonOlder
 , aria2, poetry, pytest, pytestcov, pytest_xdist, responses
 , asciimatics, loguru, requests, setuptools, websocket_client
 }:
@@ -34,7 +34,7 @@ buildPythonPackage rec {
 
   propagatedBuildInputs = [ asciimatics loguru requests setuptools websocket_client ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://github.com/pawamoy/aria2p";
     description = "Command-line tool and library to interact with an aria2c daemon process with JSON-RPC";
     license = licenses.isc;
diff --git a/nixpkgs/pkgs/development/python-modules/asana/default.nix b/nixpkgs/pkgs/development/python-modules/asana/default.nix
index 71c003ef9b0a..ed5e441df970 100644
--- a/nixpkgs/pkgs/development/python-modules/asana/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/asana/default.nix
@@ -1,5 +1,5 @@
 { buildPythonPackage, pythonAtLeast, pytest, requests, requests_oauthlib, six
-, fetchFromGitHub, responses, stdenv
+, fetchFromGitHub, responses, lib, stdenv
 }:
 
 buildPythonPackage rec {
@@ -29,7 +29,7 @@ buildPythonPackage rec {
     py.test tests
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Python client library for Asana";
     homepage = "https://github.com/asana/python-asana";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/asgi-csrf/default.nix b/nixpkgs/pkgs/development/python-modules/asgi-csrf/default.nix
index e838ec787c31..4988a04e8e44 100644
--- a/nixpkgs/pkgs/development/python-modules/asgi-csrf/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/asgi-csrf/default.nix
@@ -1,8 +1,17 @@
-{ stdenv, buildPythonPackage, isPy27, fetchFromGitHub, itsdangerous, python-multipart
-, pytestCheckHook, starlette, httpx, pytest-asyncio }:
+{ lib
+, buildPythonPackage
+, isPy27
+, fetchFromGitHub
+, itsdangerous
+, python-multipart
+, pytestCheckHook
+, starlette
+, httpx
+, pytest-asyncio
+}:
 
 buildPythonPackage rec {
-  version = "0.7.1";
+  version = "0.8";
   pname = "asgi-csrf";
   disabled = isPy27;
 
@@ -11,7 +20,7 @@ buildPythonPackage rec {
     owner = "simonw";
     repo = pname;
     rev = version;
-    sha256 = "1hhqrb9r46y6i3d3w6hc9zm6yyikdyd2k5pcbyw0r9fl959yi4hf";
+    sha256 = "sha256-0I/p9SjVVZhJQeR7s1R3tooP9XMNLPlcxl0dBSzsVaw=";
   };
 
   propagatedBuildInputs = [
@@ -26,14 +35,11 @@ buildPythonPackage rec {
     starlette
   ];
 
-  # tests fail while importing a private module from httpx
-  #  E   ModuleNotFoundError: No module named 'httpx._content_streams'
-  # https://github.com/simonw/asgi-csrf/issues/18
-  doCheck = false;
+  doCheck = false; # asgi-lifespan missing
 
   pythonImportsCheck = [ "asgi_csrf" ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "ASGI middleware for protecting against CSRF attacks";
     license = licenses.asl20;
     homepage = "https://github.com/simonw/asgi-csrf";
diff --git a/nixpkgs/pkgs/development/python-modules/asgiref/default.nix b/nixpkgs/pkgs/development/python-modules/asgiref/default.nix
index dc7b160b9432..ec630c40d034 100644
--- a/nixpkgs/pkgs/development/python-modules/asgiref/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/asgiref/default.nix
@@ -5,6 +5,7 @@
 , pytest-asyncio
 , pytestCheckHook
 , pythonOlder
+, lib
 }:
 
 buildPythonPackage rec {
@@ -27,7 +28,11 @@ buildPythonPackage rec {
     pytest-asyncio
   ];
 
-  meta = with stdenv.lib; {
+  disabledTests = lib.optionals stdenv.isDarwin [
+    "test_multiprocessing"
+  ];
+
+  meta = with lib; {
     description = "Reference ASGI adapters and channel layers";
     license = licenses.bsd3;
     homepage = "https://github.com/django/asgiref";
diff --git a/nixpkgs/pkgs/development/python-modules/asn1ate/default.nix b/nixpkgs/pkgs/development/python-modules/asn1ate/default.nix
index 6af5b3da8808..2735bbf2f70f 100644
--- a/nixpkgs/pkgs/development/python-modules/asn1ate/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/asn1ate/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchFromGitHub, pyparsing }:
+{ lib, stdenv, buildPythonPackage, fetchFromGitHub, pyparsing }:
 
 buildPythonPackage rec {
   pname = "asn1ate";
@@ -13,7 +13,7 @@ buildPythonPackage rec {
 
   propagatedBuildInputs = [ pyparsing ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Python library for translating ASN.1 into other forms";
     license = licenses.bsd3;
     platforms = platforms.unix;
diff --git a/nixpkgs/pkgs/development/python-modules/astral/default.nix b/nixpkgs/pkgs/development/python-modules/astral/default.nix
index 6c4afec6352e..4ea53e17eb0e 100644
--- a/nixpkgs/pkgs/development/python-modules/astral/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/astral/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi, isPy27, pytz, requests, pytest, freezegun }:
+{ lib, stdenv, buildPythonPackage, fetchPypi, isPy27, pytz, requests, pytest, freezegun }:
 
 buildPythonPackage rec {
   pname = "astral";
@@ -17,7 +17,7 @@ buildPythonPackage rec {
     py.test -m "not webtest"
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Calculations for the position of the sun and the moon";
     homepage = "https://github.com/sffjunkie/astral/";
     license = licenses.asl20;
diff --git a/nixpkgs/pkgs/development/python-modules/astunparse/default.nix b/nixpkgs/pkgs/development/python-modules/astunparse/default.nix
index 0947b3877b5e..c9001da5c70f 100644
--- a/nixpkgs/pkgs/development/python-modules/astunparse/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/astunparse/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , fetchPypi
 , buildPythonPackage
 , six
@@ -19,7 +19,7 @@ buildPythonPackage rec {
   # tests not included with pypi release
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "This is a factored out version of unparse found in the Python source distribution";
     homepage = "https://github.com/simonpercivall/astunparse";
     license = licenses.bsd3;
diff --git a/nixpkgs/pkgs/development/python-modules/asyncio-dgram/default.nix b/nixpkgs/pkgs/development/python-modules/asyncio-dgram/default.nix
new file mode 100644
index 000000000000..14c800f568b0
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/asyncio-dgram/default.nix
@@ -0,0 +1,37 @@
+{ stdenv
+, lib
+, buildPythonPackage
+, fetchFromGitHub
+, pytestCheckHook
+, pytest-asyncio
+}:
+
+buildPythonPackage rec {
+  pname = "asyncio-dgram";
+  version = "1.1.1";
+
+  src = fetchFromGitHub {
+    owner = "jsbronder";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "1zkmjvq47zw2fsbnzhr5mh9rsazx0z1f8m528ash25jrxsza5crm";
+  };
+
+  # OSError: AF_UNIX path too long
+  doCheck = !stdenv.isDarwin;
+
+  checkInputs = [
+    pytestCheckHook
+    pytest-asyncio
+  ];
+
+  disabledTests = [ "test_protocol_pause_resume" ];
+  pythonImportsCheck = [ "asyncio_dgram" ];
+
+  meta = with lib; {
+    description = "Python support for higher level Datagram";
+    homepage = "https://github.com/jsbronder/asyncio-dgram";
+    license = with licenses; [ mit ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/asyncssh/default.nix b/nixpkgs/pkgs/development/python-modules/asyncssh/default.nix
index dc990325bfe6..d3684ea57200 100644
--- a/nixpkgs/pkgs/development/python-modules/asyncssh/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/asyncssh/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi, pythonOlder
+{ lib, stdenv, buildPythonPackage, fetchPypi, pythonOlder
 , cryptography
 , bcrypt, gssapi, libnacl, libsodium, nettle, pyopenssl
 , openssl, openssh, pytestCheckHook }:
@@ -46,7 +46,7 @@ buildPythonPackage rec {
 
   disabledTests = [ "test_expired_root" "test_confirm" ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Provides an asynchronous client and server implementation of the SSHv2 protocol on top of the Python asyncio framework";
     homepage = "https://asyncssh.readthedocs.io/en/latest";
     license = licenses.epl20;
diff --git a/nixpkgs/pkgs/development/python-modules/asyncwhois/default.nix b/nixpkgs/pkgs/development/python-modules/asyncwhois/default.nix
index ba8f212d2f34..077c5078caae 100644
--- a/nixpkgs/pkgs/development/python-modules/asyncwhois/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/asyncwhois/default.nix
@@ -9,12 +9,12 @@
 
 buildPythonPackage rec {
   pname = "asyncwhois";
-  version = "0.2.0";
+  version = "0.2.3";
   disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0rdmg59jzzfz59b3ckg5187lc0wk9r0pzp9x09nq3xs21mcwqjxz";
+    sha256 = "95df90d5be581e3c69398abc6a3ec69a4e568852d9d6df4582bfcc0e22ffb3bb";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/asysocks/default.nix b/nixpkgs/pkgs/development/python-modules/asysocks/default.nix
new file mode 100644
index 000000000000..66c66535a127
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/asysocks/default.nix
@@ -0,0 +1,25 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+}:
+
+buildPythonPackage rec {
+  pname = "asysocks";
+  version = "0.0.11";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "11ygrhkqm524i4qp2myjvpsmg1lsn32nsqxqla96sbj84qfnhv0q";
+  };
+
+  # Upstream hasn't release the tests yet
+  doCheck = false;
+  pythonImportsCheck = [ "asysocks" ];
+
+  meta = with lib; {
+    description = "Python Socks4/5 client and server library";
+    homepage = "https://github.com/skelsec/asysocks";
+    license = with licenses; [ mit ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/atenpdu/default.nix b/nixpkgs/pkgs/development/python-modules/atenpdu/default.nix
new file mode 100644
index 000000000000..c8307608204a
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/atenpdu/default.nix
@@ -0,0 +1,28 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, pysnmp
+}:
+
+buildPythonPackage rec {
+  pname = "atenpdu";
+  version = "0.3.1";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1np9p3d180c26p54nw33alb003lhx6fprr21h45dd8gqk3slm13c";
+  };
+
+  propagatedBuildInputs = [ pysnmp ];
+
+  # Project has no test
+  doCheck = false;
+  pythonImportsCheck = [ "atenpdu" ];
+
+  meta = with lib; {
+    description = "Python interface to control ATEN PE PDUs";
+    homepage = "https://github.com/mtdcr/pductl";
+    license = with licenses; [ mit ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/atomiclong/default.nix b/nixpkgs/pkgs/development/python-modules/atomiclong/default.nix
index 670361b9a9ef..7bcb36d548d8 100644
--- a/nixpkgs/pkgs/development/python-modules/atomiclong/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/atomiclong/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi, pytest, cffi }:
+{ lib, stdenv, buildPythonPackage, fetchPypi, pytest, cffi }:
 
 buildPythonPackage rec {
   pname = "atomiclong";
@@ -12,7 +12,7 @@ buildPythonPackage rec {
   buildInputs = [ pytest ];
   propagatedBuildInputs = [ cffi ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Long data type with atomic operations using CFFI";
     homepage = "https://github.com/dreid/atomiclong";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/atomicwrites/default.nix b/nixpkgs/pkgs/development/python-modules/atomicwrites/default.nix
index 03401f226a2e..e958b0f16d62 100644
--- a/nixpkgs/pkgs/development/python-modules/atomicwrites/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/atomicwrites/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi, pytest }:
+{ lib, stdenv, buildPythonPackage, fetchPypi, pytest }:
 
 buildPythonPackage rec {
   pname = "atomicwrites";
@@ -13,7 +13,7 @@ buildPythonPackage rec {
   doCheck = false;
   checkInputs = [ pytest ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Atomic file writes on POSIX";
     homepage = "https://pypi.python.org/pypi/atomicwrites";
     maintainers = with maintainers; [ matthiasbeyer ];
diff --git a/nixpkgs/pkgs/development/python-modules/atomman/default.nix b/nixpkgs/pkgs/development/python-modules/atomman/default.nix
index 9e5eb34da3b1..147d2e77debc 100644
--- a/nixpkgs/pkgs/development/python-modules/atomman/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/atomman/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchFromGitHub, isPy27
+{ lib, stdenv, buildPythonPackage, fetchFromGitHub, isPy27
 , cython
 , datamodeldict
 , matplotlib
@@ -30,7 +30,7 @@ buildPythonPackage rec {
     py.test tests -k 'not test_atomic'
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://github.com/usnistgov/atomman/";
     description = "Atomistic Manipulation Toolkit";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/atsim_potentials/default.nix b/nixpkgs/pkgs/development/python-modules/atsim_potentials/default.nix
index 8369a49b7db8..6b8b8dccef81 100644
--- a/nixpkgs/pkgs/development/python-modules/atsim_potentials/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/atsim_potentials/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , configparser
@@ -39,7 +39,7 @@ buildPythonPackage rec {
     py.test
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://github.com/mjdrushton/atsim-potentials";
     description = "Provides tools for working with pair and embedded atom method potential models including tabulation routines for DL_POLY and LAMMPS";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/attrdict/default.nix b/nixpkgs/pkgs/development/python-modules/attrdict/default.nix
index 1dfbf32c995b..5c7514f9da63 100644
--- a/nixpkgs/pkgs/development/python-modules/attrdict/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/attrdict/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi, coverage, nose, six }:
+{ lib, stdenv, buildPythonPackage, fetchPypi, coverage, nose, six }:
 
 buildPythonPackage rec {
   pname = "attrdict";
@@ -11,7 +11,7 @@ buildPythonPackage rec {
 
   propagatedBuildInputs = [ coverage nose six ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "A dict with attribute-style access";
     homepage = "https://github.com/bcj/AttrDict";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/audio-metadata/default.nix b/nixpkgs/pkgs/development/python-modules/audio-metadata/default.nix
index 1adee4403b9b..fc3adf2534e7 100644
--- a/nixpkgs/pkgs/development/python-modules/audio-metadata/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/audio-metadata/default.nix
@@ -1,4 +1,4 @@
-{ lib, buildPythonPackage, fetchPypi, pythonOlder
+{ lib, buildPythonPackage, fetchPypi
 , attrs
 , bidict
 , bitstruct
@@ -18,9 +18,7 @@ buildPythonPackage rec {
 
   postPatch = ''
     substituteInPlace setup.py \
-      --replace "bidict>=0.17,<0.18" "bidict" \
-      --replace "more-itertools>=4.0,<8.0" "more-itertools" \
-      --replace "pendulum>=2.0,<=3.0,!=2.0.5,!=2.1.0" "pendulum>=2.0,<=3.0"
+      --replace "'attrs>=18.2,<19.4'" "'attrs'"
   '';
 
   propagatedBuildInputs = [
@@ -35,8 +33,6 @@ buildPythonPackage rec {
   # No tests
   doCheck = false;
 
-  disabled = pythonOlder "3.6";
-
   meta = with lib; {
     homepage = "https://github.com/thebigmunch/audio-metadata";
     description = "A library for reading and, in the future, writing metadata from audio files";
diff --git a/nixpkgs/pkgs/development/python-modules/authlib/default.nix b/nixpkgs/pkgs/development/python-modules/authlib/default.nix
index e3d8c99e0ea1..3e6faae9af09 100644
--- a/nixpkgs/pkgs/development/python-modules/authlib/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/authlib/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchFromGitHub
 , pytest
@@ -8,14 +8,14 @@
 }:
 
 buildPythonPackage rec {
-  version = "0.15.2";
+  version = "0.15.3";
   pname = "authlib";
 
   src = fetchFromGitHub {
     owner = "lepture";
     repo = "authlib";
     rev = "v${version}";
-    sha256 = "0jsqh2nirx3xifsakqdpd3wpdig6czavv3yj4lyqz3wh9xjpvswg";
+    sha256 = "1lqicv8awyygqh1z8vhwvx38dw619kgbirdn8c9sc3qilagq1rdx";
   };
 
   propagatedBuildInputs = [ cryptography requests ];
@@ -26,7 +26,7 @@ buildPythonPackage rec {
     PYTHONPATH=$PWD:$PYTHONPATH pytest tests/{core,files}
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://github.com/lepture/authlib";
     description = "The ultimate Python library in building OAuth and OpenID Connect servers. JWS,JWE,JWK,JWA,JWT included.";
     maintainers = with maintainers; [ flokli ];
diff --git a/nixpkgs/pkgs/development/python-modules/authres/default.nix b/nixpkgs/pkgs/development/python-modules/authres/default.nix
index 372fb03a9472..c3d0402d48d1 100644
--- a/nixpkgs/pkgs/development/python-modules/authres/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/authres/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchPypi, buildPythonPackage, python }:
+{ lib, stdenv, fetchPypi, buildPythonPackage, python }:
 
 buildPythonPackage rec {
   pname = "authres";
@@ -14,7 +14,7 @@ buildPythonPackage rec {
     ${python.interpreter} -m authres
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Email Authentication-Results Headers generation and parsing for Python/Python3";
     longDescription = ''
       Python module that implements various internet RFC's: 5451/7001/7601
diff --git a/nixpkgs/pkgs/development/python-modules/autograd/default.nix b/nixpkgs/pkgs/development/python-modules/autograd/default.nix
index 6d56775d90c3..fef97a7a6f48 100644
--- a/nixpkgs/pkgs/development/python-modules/autograd/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/autograd/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi, numpy, future }:
+{ lib, stdenv, buildPythonPackage, fetchPypi, numpy, future }:
 
 buildPythonPackage rec {
   pname = "autograd";
@@ -15,7 +15,7 @@ buildPythonPackage rec {
   # fixed, enable testing. See: https://github.com/HIPS/autograd/issues/404
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://github.com/HIPS/autograd";
     description = "Compute derivatives of NumPy code efficiently";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/autologging/default.nix b/nixpkgs/pkgs/development/python-modules/autologging/default.nix
index 7a3b36c35141..7cd66dc2c3fe 100644
--- a/nixpkgs/pkgs/development/python-modules/autologging/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/autologging/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi }:
+{ lib, stdenv, buildPythonPackage, fetchPypi }:
 
 buildPythonPackage rec {
   pname = "Autologging";
@@ -10,7 +10,7 @@ buildPythonPackage rec {
     extension = "zip";
   };
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "http://ninthtest.info/python-autologging/";
     description = "Easier logging and tracing for Python classes";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/automat/default.nix b/nixpkgs/pkgs/development/python-modules/automat/default.nix
index 78a3259a2878..fa395f119ee5 100644
--- a/nixpkgs/pkgs/development/python-modules/automat/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/automat/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi,
+{ lib, stdenv, buildPythonPackage, fetchPypi,
   m2r, setuptools_scm, six, attrs }:
 
 buildPythonPackage rec {
@@ -17,7 +17,7 @@ buildPythonPackage rec {
   # this creates a circular dependency.
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://github.com/glyph/Automat";
     description = "Self-service finite-state machines for the programmer on the go";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/autopep8/default.nix b/nixpkgs/pkgs/development/python-modules/autopep8/default.nix
index 1b40aa9c1408..afeaef406611 100644
--- a/nixpkgs/pkgs/development/python-modules/autopep8/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/autopep8/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchPypi, buildPythonPackage, pycodestyle, glibcLocales
+{ lib, stdenv, fetchPypi, buildPythonPackage, pycodestyle, glibcLocales
 , toml
 }:
 
@@ -21,7 +21,7 @@ buildPythonPackage rec {
 
   LC_ALL = "en_US.UTF-8";
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "A tool that automatically formats Python code to conform to the PEP 8 style guide";
     homepage = "https://pypi.python.org/pypi/autopep8/";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/av/default.nix b/nixpkgs/pkgs/development/python-modules/av/default.nix
index 594ac42018b2..c2edbdcf6a38 100644
--- a/nixpkgs/pkgs/development/python-modules/av/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/av/default.nix
@@ -4,7 +4,7 @@
 , isPy27
 , numpy
 , ffmpeg
-, pkgconfig
+, pkg-config
 }:
 
 buildPythonPackage rec {
@@ -19,7 +19,7 @@ buildPythonPackage rec {
 
   checkInputs = [ numpy ];
 
-  nativeBuildInputs = [ pkgconfig ];
+  nativeBuildInputs = [ pkg-config ];
   buildInputs = [ ffmpeg ];
 
   # Tests require downloading files from internet
diff --git a/nixpkgs/pkgs/development/python-modules/avea/default.nix b/nixpkgs/pkgs/development/python-modules/avea/default.nix
new file mode 100644
index 000000000000..64e0dc286330
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/avea/default.nix
@@ -0,0 +1,32 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, bluepy
+}:
+
+buildPythonPackage rec {
+  pname = "avea";
+  version = "1.5.2";
+
+  src = fetchFromGitHub {
+    owner = "k0rventen";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "1dirf0zdf4hb941w1dvh97vsvcy4h3w9r8jwdgr1ggmhdf9kfx4v";
+  };
+
+  propagatedBuildInputs = [
+    bluepy
+  ];
+
+  # no tests are present
+  doCheck = false;
+  pythonImportsCheck = [ "avea" ];
+
+  meta = with lib; {
+    description = "Python module for interacting with Elgato's Avea bulb";
+    homepage = "https://github.com/k0rventen/avea";
+    license = with licenses; [ mit ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/avro/default.nix b/nixpkgs/pkgs/development/python-modules/avro/default.nix
index d9f57686845d..35cab724a862 100644
--- a/nixpkgs/pkgs/development/python-modules/avro/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/avro/default.nix
@@ -1,18 +1,18 @@
-{ stdenv, buildPythonPackage, isPy3k, fetchPypi, pycodestyle, isort }:
+{ lib, stdenv, buildPythonPackage, isPy3k, fetchPypi, pycodestyle, isort }:
 
 buildPythonPackage rec {
   pname = "avro";
-  version = "1.10.0";
+  version = "1.10.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "bbf9f89fd20b4cf3156f10ec9fbce83579ece3e0403546c305957f9dac0d2f03";
+    sha256 = "b3a405df5aa8654b992d2aca7b80482b858a1919a44dc0b10a682162e8ee340a";
   };
 
   patchPhase = ''
     # this test requires network access
     sed -i 's/test_server_with_path/noop/' avro/test/test_ipc.py
-  '' + (stdenv.lib.optionalString isPy3k ''
+  '' + (lib.optionalString isPy3k ''
     # these files require twisted, which is not python3 compatible
     rm avro/txipc.py
     rm avro/test/txsample*
@@ -21,7 +21,7 @@ buildPythonPackage rec {
   nativeBuildInputs = [ pycodestyle ];
   propagatedBuildInputs = [ isort ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "A serialization and RPC framework";
     homepage = "https://pypi.python.org/pypi/avro/";
     license = licenses.asl20;
diff --git a/nixpkgs/pkgs/development/python-modules/avro3k/default.nix b/nixpkgs/pkgs/development/python-modules/avro3k/default.nix
index 59d09b3f25f0..b600bc75c7a3 100644
--- a/nixpkgs/pkgs/development/python-modules/avro3k/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/avro3k/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi, isPy3k }:
+{ lib, stdenv, buildPythonPackage, fetchPypi, isPy3k }:
 
 buildPythonPackage rec {
   pname = "avro3k";
@@ -12,7 +12,7 @@ buildPythonPackage rec {
 
   doCheck = false;        # No such file or directory: './run_tests.py
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "A serialization and RPC framework";
     homepage = "https://pypi.python.org/pypi/avro3k/";
   };
diff --git a/nixpkgs/pkgs/development/python-modules/awesome-slugify/default.nix b/nixpkgs/pkgs/development/python-modules/awesome-slugify/default.nix
index 945c941dec4e..00882cb08279 100644
--- a/nixpkgs/pkgs/development/python-modules/awesome-slugify/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/awesome-slugify/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi, unidecode, regex, python }:
+{ lib, stdenv, buildPythonPackage, fetchPypi, unidecode, regex, python }:
 
 buildPythonPackage rec {
   pname = "awesome-slugify";
@@ -24,7 +24,7 @@ buildPythonPackage rec {
       ${python.interpreter} -m unittest discover
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://github.com/dimka665/awesome-slugify";
     description = "Python flexible slugify function";
     license = licenses.gpl3;
diff --git a/nixpkgs/pkgs/development/python-modules/awesomeversion/default.nix b/nixpkgs/pkgs/development/python-modules/awesomeversion/default.nix
new file mode 100644
index 000000000000..2c00baf39a8b
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/awesomeversion/default.nix
@@ -0,0 +1,39 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, pytestCheckHook
+, pythonOlder
+, requests
+}:
+
+buildPythonPackage rec {
+  pname = "awesomeversion";
+  version = "21.1.3";
+  disabled = pythonOlder "3.8";
+
+  src = fetchFromGitHub {
+    owner = "ludeeus";
+    repo = pname;
+    rev = version;
+    sha256 = "sha256-D31wmBrYFCArHddAINWjfTPow4K2TD+wGfmRUuIaBdA=";
+  };
+
+  postPatch = ''
+    substituteInPlace setup.py --replace "main" ${version}
+  '';
+
+  propagatedBuildInputs = [ requests ];
+
+  checkInputs = [
+    pytestCheckHook
+  ];
+
+  pythonImportsCheck = [ "awesomeversion" ];
+
+  meta = with lib; {
+    description = "Python module to deal with versions";
+    homepage = "https://github.com/ludeeus/awesomeversion";
+    license = with licenses; [ mit ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/awkward/default.nix b/nixpkgs/pkgs/development/python-modules/awkward/default.nix
index 9b9ca52b947b..298074f300d9 100644
--- a/nixpkgs/pkgs/development/python-modules/awkward/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/awkward/default.nix
@@ -10,11 +10,11 @@
 
 buildPythonPackage rec {
   pname = "awkward";
-  version = "1.0.1";
+  version = "1.0.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "d856b4a166ae054363368aed2e4a44338fec069baa4242e7d567c8323ebcc1eb";
+    sha256 = "3468cb80cab51252a1936e5e593c7df4588ea0e18dcb6fb31e3d2913ba883928";
   };
 
   nativeBuildInputs = [ cmake ];
diff --git a/nixpkgs/pkgs/development/python-modules/awkward0/default.nix b/nixpkgs/pkgs/development/python-modules/awkward0/default.nix
index 4441d131e637..c248c81da751 100644
--- a/nixpkgs/pkgs/development/python-modules/awkward0/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/awkward0/default.nix
@@ -9,13 +9,13 @@
 
 buildPythonPackage rec {
   pname = "awkward0";
-  version = "0.15.1";
+  version = "0.15.2";
 
   src = fetchFromGitHub {
     owner = "scikit-hep";
     repo = "awkward-0.x";
     rev = version;
-    sha256 = "17zrw25h6g5m4ik1c5piqb7q2bxrshfm4hm3lzfz4s8gi0xjm5gz";
+    sha256 = "sha256-C6/byIGcabGjws5QI9sh5BO2M4Lhqkooh4mSjUEKCKU=";
   };
 
   nativeBuildInputs = [ pytestrunner ];
diff --git a/nixpkgs/pkgs/development/python-modules/awsiotpythonsdk/default.nix b/nixpkgs/pkgs/development/python-modules/awsiotpythonsdk/default.nix
new file mode 100644
index 000000000000..68b44ea5a5d5
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/awsiotpythonsdk/default.nix
@@ -0,0 +1,27 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+}:
+
+buildPythonPackage rec {
+  pname = "AWSIoTPythonSDK";
+  version = "1.4.9";
+
+  src = fetchFromGitHub {
+    owner = "aws";
+    repo = "aws-iot-device-sdk-python";
+    rev = "v${version}";
+    sha256 = "0mbppz1lnia4br5vjz1l4z4vw47y3bzcfpckzhs9lxhj4vq6d001";
+  };
+
+  # Project has no tests
+  doCheck = false;
+  pythonImportsCheck = [ "AWSIoTPythonSDK" ];
+
+  meta = with lib; {
+    description = "Python SDK for connecting to AWS IoT";
+    homepage = "https://github.com/aws/aws-iot-device-sdk-python";
+    license = with licenses; [ asl20 ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/axis/default.nix b/nixpkgs/pkgs/development/python-modules/axis/default.nix
new file mode 100644
index 000000000000..707d958bab53
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/axis/default.nix
@@ -0,0 +1,38 @@
+{ lib
+, attrs
+, buildPythonPackage
+, fetchFromGitHub
+, httpx
+, packaging
+, xmltodict
+}:
+
+buildPythonPackage rec {
+  pname = "axis";
+  version = "43";
+
+  src = fetchFromGitHub {
+    owner = "Kane610";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "1p9yfixsrkw7rxbvgybcb653rbqv0x18wzqkh620g193snm9sgm2";
+  };
+
+  propagatedBuildInputs = [
+    attrs
+    httpx
+    packaging
+    xmltodict
+  ];
+
+  # Tests requires a server on localhost
+  doCheck = false;
+  pythonImportsCheck = [ "axis" ];
+
+  meta = with lib; {
+    description = "Python library for communicating with devices from Axis Communications";
+    homepage = "https://github.com/Kane610/axis";
+    license = with licenses; [ mit ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/azure-core/default.nix b/nixpkgs/pkgs/development/python-modules/azure-core/default.nix
index 0ad45dceb2bb..e91a0fb07493 100644
--- a/nixpkgs/pkgs/development/python-modules/azure-core/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/azure-core/default.nix
@@ -14,14 +14,14 @@
 }:
 
 buildPythonPackage rec {
-  version = "1.9.0";
+  version = "1.10.0";
   pname = "azure-core";
   disabled = isPy27;
 
   src = fetchPypi {
     inherit pname version;
     extension = "zip";
-    sha256 = "ef8ae93a2ce8b595f231395579be11aadc1838168cbc2582e2d0bbd8b15c461f";
+    sha256 = "b9cddf3eb239e32b14cf44750b21d7bc8d78b82aa53d57628523598dcd006803";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/azure-eventgrid/default.nix b/nixpkgs/pkgs/development/python-modules/azure-eventgrid/default.nix
index 29392699ce2b..9781fcecaaf2 100644
--- a/nixpkgs/pkgs/development/python-modules/azure-eventgrid/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/azure-eventgrid/default.nix
@@ -24,6 +24,7 @@ buildPythonPackage rec {
 
   # has no tests
   doCheck = false;
+  pythonImportsCheck = [ "azure.eventgrid" ];
 
   meta = with lib; {
     description = "A fully-managed intelligent event routing service that allows for uniform event consumption using a publish-subscribe model";
diff --git a/nixpkgs/pkgs/development/python-modules/azure-identity/default.nix b/nixpkgs/pkgs/development/python-modules/azure-identity/default.nix
index e7d2d5c83ac0..a0120ae35060 100644
--- a/nixpkgs/pkgs/development/python-modules/azure-identity/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/azure-identity/default.nix
@@ -18,7 +18,6 @@
 buildPythonPackage rec {
   pname = "azure-identity";
   version = "1.5.0";
-  disabled = isPy38;
 
   src = fetchPypi {
     inherit pname version;
@@ -38,11 +37,6 @@ buildPythonPackage rec {
     msrestazure
   ];
 
-  prePatch = ''
-    substituteInPlace setup.py \
-      --replace msal-extensions~=0.1.3 msal-extensions
-  '';
-
   pythonImportsCheck = [ "azure.identity" ];
 
   # Requires checkout from mono-repo and a mock account:
diff --git a/nixpkgs/pkgs/development/python-modules/azure-mgmt-advisor/default.nix b/nixpkgs/pkgs/development/python-modules/azure-mgmt-advisor/default.nix
index a04f28f2a513..81afa6ff7ed0 100644
--- a/nixpkgs/pkgs/development/python-modules/azure-mgmt-advisor/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/azure-mgmt-advisor/default.nix
@@ -5,23 +5,25 @@
 , msrestazure
 , azure-common
 , isPy3k
+, azure-mgmt-core
 , azure-mgmt-nspkg
 }:
 
 buildPythonPackage rec {
   pname = "azure-mgmt-advisor";
-  version = "4.0.0";
+  version = "9.0.0";
 
   src = fetchPypi {
     inherit pname version;
     extension = "zip";
-    sha256 = "1ecea7a9dc48c099c06aab68aace7fdbded91a5522932882b1707c29fa055054";
+    sha256 = "fc408b37315fe84781b519124f8cb1b8ac10b2f4241e439d0d3e25fd6ca18d7b";
   };
 
   propagatedBuildInputs = [
     msrest
     msrestazure
     azure-common
+    azure-mgmt-core
   ] ++ lib.optionals (!isPy3k) [
     azure-mgmt-nspkg
   ];
diff --git a/nixpkgs/pkgs/development/python-modules/azure-mgmt-apimanagement/default.nix b/nixpkgs/pkgs/development/python-modules/azure-mgmt-apimanagement/default.nix
index 759467aa9024..4432595a12e7 100644
--- a/nixpkgs/pkgs/development/python-modules/azure-mgmt-apimanagement/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/azure-mgmt-apimanagement/default.nix
@@ -1,21 +1,27 @@
 { lib, buildPythonPackage, fetchPypi, isPy27
 , azure-common
+, azure-mgmt-core
 , msrest
 , msrestazure
 }:
 
 buildPythonPackage rec {
-  version = "0.2.0";
+  version = "1.0.0";
   pname = "azure-mgmt-apimanagement";
   disabled = isPy27;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "790f01c0b32583706b8b8c59667c0f5a51cd70444eee76474e23a598911e1d72";
+    sha256 = "3ad7e2c3d20dd0141f9e2c0ae923121f7cbe7333bb314850e6f8b606636e3589";
     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-batch/default.nix b/nixpkgs/pkgs/development/python-modules/azure-mgmt-batch/default.nix
index aa188e87efa1..033ef0cccea4 100644
--- a/nixpkgs/pkgs/development/python-modules/azure-mgmt-batch/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/azure-mgmt-batch/default.nix
@@ -4,24 +4,26 @@
 , msrest
 , msrestazure
 , azure-common
+, azure-mgmt-core
 , azure-mgmt-nspkg
 , isPy3k
 }:
 
 buildPythonPackage rec {
   pname = "azure-mgmt-batch";
-  version = "9.0.0";
+  version = "14.0.0";
 
   src = fetchPypi {
     inherit pname version;
     extension = "zip";
-    sha256 = "03417eecfa1fac906e674cb1cb43ed7da27a96277277b091d7c389ba39f6c3fe";
+    sha256 = "1d3b2c9ebd57c8874e11d29e7dd05a1f078d2156fc9683e2f2ad41024e448bf6";
   };
 
   propagatedBuildInputs = [
     msrest
     msrestazure
     azure-common
+    azure-mgmt-core
   ] ++ lib.optionals (!isPy3k) [
     azure-mgmt-nspkg
   ];
diff --git a/nixpkgs/pkgs/development/python-modules/azure-mgmt-cognitiveservices/default.nix b/nixpkgs/pkgs/development/python-modules/azure-mgmt-cognitiveservices/default.nix
index c138dde95d01..09800f9cef36 100644
--- a/nixpkgs/pkgs/development/python-modules/azure-mgmt-cognitiveservices/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/azure-mgmt-cognitiveservices/default.nix
@@ -2,23 +2,25 @@
 , buildPythonPackage
 , fetchPypi
 , azure-common
+, azure-mgmt-core
 , azure-mgmt-nspkg
 , msrestazure
 }:
 
 buildPythonPackage rec {
   pname = "azure-mgmt-cognitiveservices";
-  version = "6.3.0";
+  version = "11.0.0";
 
   src = fetchPypi {
     inherit pname version;
     extension = "zip";
-    sha256 = "1d029d5140152a36cc32f340e09f2b185ede2f54e577a44f3821878efb823415";
+    sha256 = "71414e3cd7445e44fc18f217f2d22df05c36877e1233328b2297d07ddf27e82a";
   };
 
   propagatedBuildInputs = [
     msrestazure
     azure-common
+    azure-mgmt-core
     azure-mgmt-nspkg
   ];
 
diff --git a/nixpkgs/pkgs/development/python-modules/azure-mgmt-commerce/default.nix b/nixpkgs/pkgs/development/python-modules/azure-mgmt-commerce/default.nix
index 1460cdb9ca37..32e6cebd1f59 100644
--- a/nixpkgs/pkgs/development/python-modules/azure-mgmt-commerce/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/azure-mgmt-commerce/default.nix
@@ -3,6 +3,7 @@
 , fetchPypi
 , msrestazure
 , azure-common
+, azure-mgmt-core
 , azure-mgmt-nspkg
 , python
 , isPy3k
@@ -10,17 +11,18 @@
 
 buildPythonPackage rec {
   pname = "azure-mgmt-commerce";
-  version = "1.0.1";
+  version = "6.0.0";
 
   src = fetchPypi {
     inherit pname version;
     extension = "zip";
-    sha256 = "1hw4crkgb72ps85m2kz9kf8p2wg9qmaagk3z5nydva9g6bnq93n4";
+    sha256 = "6f5447395503b2318f451d24f8021ee08db1cac44f1c3337ea690700419626b6";
   };
 
   propagatedBuildInputs = [
     msrestazure
     azure-common
+    azure-mgmt-core
     azure-mgmt-nspkg
   ];
 
diff --git a/nixpkgs/pkgs/development/python-modules/azure-mgmt-compute/default.nix b/nixpkgs/pkgs/development/python-modules/azure-mgmt-compute/default.nix
index 2aca8fdbd7d0..e8a45ebf5aa4 100644
--- a/nixpkgs/pkgs/development/python-modules/azure-mgmt-compute/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/azure-mgmt-compute/default.nix
@@ -8,13 +8,13 @@
 }:
 
 buildPythonPackage rec {
-  version = "18.0.0";
+  version = "18.1.0";
   pname = "azure-mgmt-compute";
 
   src = fetchPypi {
     inherit pname version;
     extension = "zip";
-    sha256 = "34815c91193640ad8ff0c4dad7f2d997548c853d2e8b10250329ed516e55879e";
+    sha256 = "02de691c5ce7237993e65b0ae6154b3bf8ec32bcb15f13ade72bc7f3cb3183d4";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/azure-mgmt-consumption/default.nix b/nixpkgs/pkgs/development/python-modules/azure-mgmt-consumption/default.nix
index 175dd9de6e87..be22e14b574b 100644
--- a/nixpkgs/pkgs/development/python-modules/azure-mgmt-consumption/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/azure-mgmt-consumption/default.nix
@@ -5,22 +5,24 @@
 , isPy3k
 , msrestazure
 , azure-common
+, azure-mgmt-core
 , azure-mgmt-nspkg
 }:
 
 buildPythonPackage rec {
   pname = "azure-mgmt-consumption";
-  version = "3.0.0";
+  version = "8.0.0";
 
   src = fetchPypi {
     inherit pname version;
     extension = "zip";
-    sha256 = "0nqgywknpj2a69an5yrn0c32fk01v5gi05za7dlf4ivwr9s4np83";
+    sha256 = "b4cc167648634f864394066d5621afc137c1be795ee76f7539125f9538a2bf37";
   };
 
   propagatedBuildInputs = [
     msrestazure
     azure-common
+    azure-mgmt-core
     azure-mgmt-nspkg
   ];
 
diff --git a/nixpkgs/pkgs/development/python-modules/azure-mgmt-datafactory/default.nix b/nixpkgs/pkgs/development/python-modules/azure-mgmt-datafactory/default.nix
index a186017a4d3c..91f420f11ae8 100644
--- a/nixpkgs/pkgs/development/python-modules/azure-mgmt-datafactory/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/azure-mgmt-datafactory/default.nix
@@ -4,24 +4,26 @@
 , msrest
 , msrestazure
 , azure-common
+, azure-mgmt-core
 , azure-mgmt-nspkg
 , isPy3k
 }:
 
 buildPythonPackage rec {
   pname = "azure-mgmt-datafactory";
-  version = "0.15.0";
+  version = "1.0.0";
 
   src = fetchPypi {
     inherit pname version;
     extension = "zip";
-    sha256 = "750a891005c86977c0978cd7231449aad12106d76897075fcdc95ef2e6258b00";
+    sha256 = "d4f3984eca74b1e3691467aadc09626e578ed1fc5ef410872d474f3e7653916a";
   };
 
   propagatedBuildInputs = [
     msrest
     msrestazure
     azure-common
+    azure-mgmt-core
   ] ++ lib.optionals (!isPy3k) [
     azure-mgmt-nspkg
   ];
diff --git a/nixpkgs/pkgs/development/python-modules/azure-mgmt-datalake-store/default.nix b/nixpkgs/pkgs/development/python-modules/azure-mgmt-datalake-store/default.nix
index b149584b6a99..fc5d8ba6f018 100644
--- a/nixpkgs/pkgs/development/python-modules/azure-mgmt-datalake-store/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/azure-mgmt-datalake-store/default.nix
@@ -7,21 +7,23 @@
 , msrestazure
 , azure-common
 , azure-mgmt-datalake-nspkg
+, azure-mgmt-core
 }:
 
 buildPythonPackage rec {
   pname = "azure-mgmt-datalake-store";
-  version = "0.5.0";
+  version = "1.0.0";
 
   src = fetchPypi {
     inherit pname version;
     extension = "zip";
-    sha256 = "9376d35495661d19f8acc5604f67b0bc59493b1835bbc480f9a1952f90017a4c";
+    sha256 = "sha256-GrmVK97M+iojevPLVTuLmfQRLxvrHtr9DRHymJvLYHE=";
   };
 
   propagatedBuildInputs = [
     msrestazure
     azure-common
+    azure-mgmt-core
     azure-mgmt-datalake-nspkg
   ];
 
diff --git a/nixpkgs/pkgs/development/python-modules/azure-mgmt-devtestlabs/default.nix b/nixpkgs/pkgs/development/python-modules/azure-mgmt-devtestlabs/default.nix
index 7c5e6a1d7bab..820f737c5489 100644
--- a/nixpkgs/pkgs/development/python-modules/azure-mgmt-devtestlabs/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/azure-mgmt-devtestlabs/default.nix
@@ -6,23 +6,25 @@
 , msrest
 , msrestazure
 , azure-common
+, azure-mgmt-core
 , azure-mgmt-nspkg
 }:
 
 buildPythonPackage rec {
   pname = "azure-mgmt-devtestlabs";
-  version = "4.0.0";
+  version = "9.0.0";
 
   src = fetchPypi {
     inherit pname version;
     extension = "zip";
-    sha256 = "1397ksrd61jv7400mgn8sqngp6ahir55fyq9n5k69wk88169qm2r";
+    sha256 = "d8160d93fd3d947e5613c6919176b0edf72c94ac69679ea3b92cf27ff7398e64";
   };
 
   propagatedBuildInputs = [
     msrest
     msrestazure
     azure-common
+    azure-mgmt-core
   ] ++ lib.optionals (!isPy3k) [
     azure-mgmt-nspkg
   ];
diff --git a/nixpkgs/pkgs/development/python-modules/azure-mgmt-eventgrid/default.nix b/nixpkgs/pkgs/development/python-modules/azure-mgmt-eventgrid/default.nix
index df48be1281ce..1b244818f913 100644
--- a/nixpkgs/pkgs/development/python-modules/azure-mgmt-eventgrid/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/azure-mgmt-eventgrid/default.nix
@@ -4,23 +4,25 @@
 , msrest
 , msrestazure
 , azure-common
+, azure-mgmt-core
 , azure-mgmt-nspkg
 , isPy3k
 }:
 
 buildPythonPackage rec {
   pname = "azure-mgmt-eventgrid";
-  version = "2.2.0";
+  version = "8.0.0";
 
   src = fetchPypi {
     inherit pname version;
     extension = "zip";
-    sha256 = "1hqwcl33r98lriz3fp6h8ir36bv9danx27290idv63fj7s95h866";
+    sha256 = "a8a6e1bb105a14f1d3545ecb07c190370f21a145f8ba51599ed169f1dc8d5dcc";
   };
 
   propagatedBuildInputs = [
     msrest
     msrestazure
+    azure-mgmt-core
     azure-common
   ] ++ lib.optionals (!isPy3k) [
     azure-mgmt-nspkg
@@ -28,6 +30,7 @@ buildPythonPackage rec {
 
   # has no tests
   doCheck = false;
+  pythonImportsCheck = [ "azure.mgmt.eventgrid" ];
 
   meta = with lib; {
     description = "This is the Microsoft Azure EventGrid Management Client Library";
diff --git a/nixpkgs/pkgs/development/python-modules/azure-mgmt-hdinsight/default.nix b/nixpkgs/pkgs/development/python-modules/azure-mgmt-hdinsight/default.nix
index 08915244fc4b..5547eb032d0e 100644
--- a/nixpkgs/pkgs/development/python-modules/azure-mgmt-hdinsight/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/azure-mgmt-hdinsight/default.nix
@@ -1,21 +1,27 @@
 { lib, buildPythonPackage, fetchPypi, isPy27
 , azure-common
+, azure-mgmt-core
 , msrest
 , msrestazure
 }:
 
 buildPythonPackage rec {
-  version = "2.1.0";
+  version = "7.0.0";
   pname = "azure-mgmt-hdinsight";
   disabled = isPy27;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "ed55df52d35fc03a9c7ca060af1ec0faf7b5510381d2a5e74b73f59ac0d79028";
+    sha256 = "d0070817ee2be611d45af91eabc5665dd53f024eaa7a55e490ace4f71a55c733";
     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-iotcentral/default.nix b/nixpkgs/pkgs/development/python-modules/azure-mgmt-iotcentral/default.nix
index b514488ff4a4..2f368b826491 100644
--- a/nixpkgs/pkgs/development/python-modules/azure-mgmt-iotcentral/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/azure-mgmt-iotcentral/default.nix
@@ -4,24 +4,26 @@
 , msrest
 , msrestazure
 , azure-common
+, azure-mgmt-core
 , azure-mgmt-nspkg
 , isPy3k
 }:
 
 buildPythonPackage rec {
   pname = "azure-mgmt-iotcentral";
-  version = "3.1.0";
+  version = "4.0.0";
 
   src = fetchPypi {
     inherit pname version;
     extension = "zip";
-    sha256 = "c175f6642be514ad0efd3dc03d09e50d923596fd9e634381793dcc46bb8a57c7";
+    sha256 = "ab793fde2b5eeb73ab37434013d4b5ba7750031220013edb3c1758c45a00a91a";
   };
 
   propagatedBuildInputs = [
+    azure-common
+    azure-mgmt-core
     msrest
     msrestazure
-    azure-common
   ] ++ lib.optionals (!isPy3k) [
     azure-mgmt-nspkg
   ];
diff --git a/nixpkgs/pkgs/development/python-modules/azure-mgmt-iothub/default.nix b/nixpkgs/pkgs/development/python-modules/azure-mgmt-iothub/default.nix
index e36e30fc16e1..c51d43ec4447 100644
--- a/nixpkgs/pkgs/development/python-modules/azure-mgmt-iothub/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/azure-mgmt-iothub/default.nix
@@ -4,24 +4,26 @@
 , msrest
 , msrestazure
 , azure-common
+, azure-mgmt-core
 , azure-mgmt-nspkg
 , isPy3k
 }:
 
 buildPythonPackage rec {
   pname = "azure-mgmt-iothub";
-  version = "0.12.0";
+  version = "1.0.0";
 
   src = fetchPypi {
     inherit pname version;
     extension = "zip";
-    sha256 = "da20ee2b9b9a2c2f89be9037c3ee5421152e7f6d718eafbf50a91dbf0a07ffa0";
+    sha256 = "7acf24088395a299974dd26406db2686d8d59a3fffbe47c24617b36d445f2de8";
   };
 
   propagatedBuildInputs = [
+    azure-common
+    azure-mgmt-core
     msrest
     msrestazure
-    azure-common
   ] ++ lib.optionals (!isPy3k) [
     azure-mgmt-nspkg
   ];
diff --git a/nixpkgs/pkgs/development/python-modules/azure-mgmt-loganalytics/default.nix b/nixpkgs/pkgs/development/python-modules/azure-mgmt-loganalytics/default.nix
index e6fd01f73478..9eb1d2afc149 100644
--- a/nixpkgs/pkgs/development/python-modules/azure-mgmt-loganalytics/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/azure-mgmt-loganalytics/default.nix
@@ -12,12 +12,12 @@
 
 buildPythonPackage rec {
   pname = "azure-mgmt-loganalytics";
-  version = "7.0.0";
+  version = "8.0.0";
 
   src = fetchPypi {
     inherit pname version;
     extension = "zip";
-    sha256 = "e603f9fc61b8d2f93d8814bcca012a8b425cf0c0320ddf1e84462929cf34d1af";
+    sha256 = "3e7a93186594c328a6f34f0e0d9209a05021228baa85aa4c1c4ffdbf8005a45f";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/azure-mgmt-logic/default.nix b/nixpkgs/pkgs/development/python-modules/azure-mgmt-logic/default.nix
index 8c2b3c8fd8db..bc63084410ce 100644
--- a/nixpkgs/pkgs/development/python-modules/azure-mgmt-logic/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/azure-mgmt-logic/default.nix
@@ -4,28 +4,31 @@
 , msrest
 , msrestazure
 , azure-common
+, azure-mgmt-core
 , azure-mgmt-nspkg
 }:
 
 buildPythonPackage rec {
   pname = "azure-mgmt-logic";
-  version = "3.0.0";
+  version = "9.0.0";
 
   src = fetchPypi {
     inherit pname version;
     extension = "zip";
-    sha256 = "d163dfc32e3cfa84f3f8131a75d9e94f5c4595907332cc001e45bf7e4efd5add";
+    sha256 = "d3a780d299c4db59134bd984c4c9281b9b6ae5d4ba185bcbae43f6c3af04f85a";
   };
 
   propagatedBuildInputs = [
     msrest
     msrestazure
     azure-common
+    azure-mgmt-core
     azure-mgmt-nspkg
   ];
 
   # has no tests
   doCheck = false;
+  pythonImportsCheck = [ "azure.mgmt.logic" ];
 
   meta = with lib; {
     description = "This is the Microsoft Azure Logic Apps Management Client Library";
diff --git a/nixpkgs/pkgs/development/python-modules/azure-mgmt-marketplaceordering/default.nix b/nixpkgs/pkgs/development/python-modules/azure-mgmt-marketplaceordering/default.nix
index a8a138d27bde..9538ed2a2345 100644
--- a/nixpkgs/pkgs/development/python-modules/azure-mgmt-marketplaceordering/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/azure-mgmt-marketplaceordering/default.nix
@@ -6,22 +6,24 @@
 , azure-common
 , azure-mgmt-nspkg
 , isPy3k
+, azure-mgmt-core
 }:
 
 buildPythonPackage rec {
   pname = "azure-mgmt-marketplaceordering";
-  version = "0.2.1";
+  version = "1.0.0";
 
   src = fetchPypi {
     inherit pname version;
     extension = "zip";
-    sha256 = "dc765cde7ec03efe456438c85c6207c2f77775a8ce8a7adb19b0df5c5dc513c2";
+    sha256 = "85103080f9e59215036bdfb8f806d91ea182d72c46a13f55c3acc479849351e3";
   };
 
   propagatedBuildInputs = [
     msrest
     msrestazure
     azure-common
+    azure-mgmt-core
   ] ++ lib.optionals (!isPy3k) [
     azure-mgmt-nspkg
   ];
diff --git a/nixpkgs/pkgs/development/python-modules/azure-mgmt-monitor/default.nix b/nixpkgs/pkgs/development/python-modules/azure-mgmt-monitor/default.nix
index 742556ef34f6..db4aa3fb77cf 100644
--- a/nixpkgs/pkgs/development/python-modules/azure-mgmt-monitor/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/azure-mgmt-monitor/default.nix
@@ -12,12 +12,12 @@
 
 buildPythonPackage rec {
   pname = "azure-mgmt-monitor";
-  version = "1.0.1";
+  version = "2.0.0";
 
   src = fetchPypi {
     inherit pname version;
     extension = "zip";
-    sha256 = "04bd89d74fe47f966b09e3256ffefcfa5c1a51057a6b33c092afe5ae17a1a7b7";
+    sha256 = "e7f7943fe8f0efe98b3b1996cdec47c709765257a6e09e7940f7838a0f829e82";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/azure-mgmt-netapp/default.nix b/nixpkgs/pkgs/development/python-modules/azure-mgmt-netapp/default.nix
index a57bbe07f563..a89d94f3d706 100644
--- a/nixpkgs/pkgs/development/python-modules/azure-mgmt-netapp/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/azure-mgmt-netapp/default.nix
@@ -1,21 +1,27 @@
 { lib, buildPythonPackage, fetchPypi, isPy27
 , azure-common
+, azure-mgmt-core
 , msrest
 , msrestazure
 }:
 
 buildPythonPackage rec {
-  version = "0.14.0";
+  version = "0.15.0";
   pname = "azure-mgmt-netapp";
   disabled = isPy27;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "6fd915e68d314bec8b56c6ece194005d2c4fc97478fc1f797639d4a6913c1539";
+    sha256 = "5e98c360609a77b443b2fe431e0337e5cb705b4f02d0204791f9985f7ce68836";
     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-notificationhubs/default.nix b/nixpkgs/pkgs/development/python-modules/azure-mgmt-notificationhubs/default.nix
index 7b4985c53331..bf9d9bab576b 100644
--- a/nixpkgs/pkgs/development/python-modules/azure-mgmt-notificationhubs/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/azure-mgmt-notificationhubs/default.nix
@@ -4,23 +4,25 @@
 , msrest
 , msrestazure
 , azure-common
+, azure-mgmt-core
 , azure-mgmt-nspkg
 }:
 
 buildPythonPackage rec {
   pname = "azure-mgmt-notificationhubs";
-  version = "2.1.0";
+  version = "7.0.0";
 
   src = fetchPypi {
     inherit pname version;
     extension = "zip";
-    sha256 = "10w53ida2nlx73vd1pczh4mkpg0lag1h19yyklx3yvgsyvahj25h";
+    sha256 = "92ffed71a2999ff5db41afd66c6ba5cfef9d467f732c7bb45b7c41db371c6e4a";
   };
 
   propagatedBuildInputs = [
     msrest
     msrestazure
     azure-common
+    azure-mgmt-core
     azure-mgmt-nspkg
   ];
 
diff --git a/nixpkgs/pkgs/development/python-modules/azure-mgmt-policyinsights/default.nix b/nixpkgs/pkgs/development/python-modules/azure-mgmt-policyinsights/default.nix
index 6522b3c8c435..30fce3885453 100644
--- a/nixpkgs/pkgs/development/python-modules/azure-mgmt-policyinsights/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/azure-mgmt-policyinsights/default.nix
@@ -4,30 +4,33 @@
 , msrest
 , msrestazure
 , azure-common
+, azure-mgmt-core
 , azure-mgmt-nspkg
 , isPy3k
 }:
 
 buildPythonPackage rec {
   pname = "azure-mgmt-policyinsights";
-  version = "0.6.0";
+  version = "1.0.0";
 
   src = fetchPypi {
     inherit pname version;
     extension = "zip";
-    sha256 = "2c64533f6eab08dc16450fc5d7c7651557fc0edc8ef1278dda336333d648a7c4";
+    sha256 = "75103fb4541aeae30bb687dee1fedd9ca65530e6b97b2d9ea87f74816905202a";
   };
 
   propagatedBuildInputs = [
+    azure-common
+    azure-mgmt-core
     msrest
     msrestazure
-    azure-common
   ] ++ lib.optionals (!isPy3k) [
     azure-mgmt-nspkg
   ];
 
   # has no tests
   doCheck = false;
+  pythonImportsCheck = [ "azure.mgmt.policyinsights" ];
 
   meta = with lib; {
     description = "This is the Microsoft Azure Policy Insights Client Library";
diff --git a/nixpkgs/pkgs/development/python-modules/azure-mgmt-rdbms/default.nix b/nixpkgs/pkgs/development/python-modules/azure-mgmt-rdbms/default.nix
index 0e96647f4925..c7cb274d68b6 100644
--- a/nixpkgs/pkgs/development/python-modules/azure-mgmt-rdbms/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/azure-mgmt-rdbms/default.nix
@@ -4,30 +4,33 @@
 , msrest
 , msrestazure
 , azure-common
+, azure-mgmt-core
 , azure-mgmt-nspkg
 , isPy3k
 }:
 
 buildPythonPackage rec {
   pname = "azure-mgmt-rdbms";
-  version = "2.2.0";
+  version = "8.0.0";
 
   src = fetchPypi {
     inherit pname version;
     extension = "zip";
-    sha256 = "1iz1pf28ajrzbq8nab1jbjbgfbv0g6ni036xayy6xylvga4l8czr";
+    sha256 = "8b018543048fc4fddb4155d9f22246ad0c4be2fb582a29dbb21ec4022724a119";
   };
 
   propagatedBuildInputs = [
+    azure-common
+    azure-mgmt-core
     msrest
     msrestazure
-    azure-common
   ] ++ lib.optionals (!isPy3k) [
     azure-mgmt-nspkg
   ];
 
   # has no tests
   doCheck = false;
+  pythonImportsCheck = [ "azure.mgmt.rdbms" ];
 
   meta = with lib; {
     description = "This is the Microsoft Azure RDBMS Management Client Library";
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 a0ee8f3ce9cd..d1f49355f8b9 100644
--- a/nixpkgs/pkgs/development/python-modules/azure-mgmt-recoveryservices/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/azure-mgmt-recoveryservices/default.nix
@@ -4,30 +4,33 @@
 , msrest
 , msrestazure
 , azure-common
+, azure-mgmt-core
 , azure-mgmt-nspkg
 , isPy3k
 }:
 
 buildPythonPackage rec {
   pname = "azure-mgmt-recoveryservices";
-  version = "0.6.0";
+  version = "1.0.0";
 
   src = fetchPypi {
     inherit pname version;
     extension = "zip";
-    sha256 = "203ebbd6b698a99975092a72d6d47285646a0264b9085fecef1e7b7c98c5d52e";
+    sha256 = "ab87108c0d5ce27d80583b4bfad966ad07049dcbc0e9ac28c64aa6bbdae64e22";
   };
 
   propagatedBuildInputs = [
+    azure-common
+    azure-mgmt-core
     msrest
     msrestazure
-    azure-common
   ] ++ lib.optionals (!isPy3k) [
     azure-mgmt-nspkg
   ];
 
   # has no tests
   doCheck = false;
+  pythonImportsCheck = [ "azure.mgmt.recoveryservices" ];
 
   meta = with lib; {
     description = "This is the Microsoft Azure Recovery Services Client Library";
diff --git a/nixpkgs/pkgs/development/python-modules/azure-mgmt-recoveryservicesbackup/default.nix b/nixpkgs/pkgs/development/python-modules/azure-mgmt-recoveryservicesbackup/default.nix
index 229cf58cea9d..4ce18c4ae3b0 100644
--- a/nixpkgs/pkgs/development/python-modules/azure-mgmt-recoveryservicesbackup/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/azure-mgmt-recoveryservicesbackup/default.nix
@@ -9,12 +9,12 @@
 
 buildPythonPackage rec {
   pname = "azure-mgmt-recoveryservicesbackup";
-  version = "0.10.0";
+  version = "0.11.0";
 
   src = fetchPypi {
     inherit pname version;
     extension = "zip";
-    sha256 = "2debf30be50d5bb85acf4f73a2e57e11c814ead04e58f52279e5ef0a2df71d4f";
+    sha256 = "f2b85d1d7d7db2af106000910ea5f8b95639874176a5de2f7ab37a2caa67af6b";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/azure-mgmt-relay/default.nix b/nixpkgs/pkgs/development/python-modules/azure-mgmt-relay/default.nix
index 46db2d3528cf..9b7444a6ecb1 100644
--- a/nixpkgs/pkgs/development/python-modules/azure-mgmt-relay/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/azure-mgmt-relay/default.nix
@@ -5,22 +5,24 @@
 , isPy3k
 , msrestazure
 , azure-common
+, azure-mgmt-core
 , azure-mgmt-nspkg
 }:
 
 buildPythonPackage rec {
   pname = "azure-mgmt-relay";
-  version = "0.2.0";
+  version = "1.0.0";
 
   src = fetchPypi {
     inherit pname version;
     extension = "zip";
-    sha256 = "0s5z4cil750wn770m0hdzcrpshj4bj1bglkkvxdx9l9054dk9s57";
+    sha256 = "38f6dd9d122a316efa921e72933e01ec4d76ed39d4682655b17a997079e8b20a";
   };
 
   propagatedBuildInputs = [
     msrestazure
     azure-common
+    azure-mgmt-core
     azure-mgmt-nspkg
   ];
 
@@ -28,6 +30,7 @@ buildPythonPackage rec {
 
   # has no tests
   doCheck = false;
+  pythonImportsCheck = [ "azure.mgmt.relay" ];
 
   meta = with lib; {
     description = "This is the Microsoft Azure Relay Client Library";
diff --git a/nixpkgs/pkgs/development/python-modules/azure-mgmt-search/default.nix b/nixpkgs/pkgs/development/python-modules/azure-mgmt-search/default.nix
index c6c525176c77..e4cb5b234742 100644
--- a/nixpkgs/pkgs/development/python-modules/azure-mgmt-search/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/azure-mgmt-search/default.nix
@@ -4,28 +4,31 @@
 , msrest
 , msrestazure
 , azure-common
+, azure-mgmt-core
 , azure-mgmt-nspkg
 }:
 
 buildPythonPackage rec {
   pname = "azure-mgmt-search";
-  version = "3.0.0";
+  version = "8.0.0";
 
   src = fetchPypi {
     inherit pname version;
     extension = "zip";
-    sha256 = "d4c78b14b48edd2e27e2068c9a448acfc84a18595be77fe483afe7bb447e1eb6";
+    sha256 = "a96d50c88507233a293e757202deead980c67808f432b8e897c4df1ca088da7e";
   };
 
   propagatedBuildInputs = [
-    msrest
-    msrestazure
     azure-common
+    azure-mgmt-core
     azure-mgmt-nspkg
+    msrest
+    msrestazure
   ];
 
   # has no tests
   doCheck = false;
+  pythonImportsCheck = [ "azure.mgmt.search" ];
 
   meta = with lib; {
     description = "This is the Microsoft Azure Search Management Client Library";
diff --git a/nixpkgs/pkgs/development/python-modules/azure-mgmt-security/default.nix b/nixpkgs/pkgs/development/python-modules/azure-mgmt-security/default.nix
index 9de17636b234..a947e84f9aef 100644
--- a/nixpkgs/pkgs/development/python-modules/azure-mgmt-security/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/azure-mgmt-security/default.nix
@@ -1,21 +1,27 @@
 { lib, buildPythonPackage, fetchPypi, isPy27
 , azure-common
+, azure-mgmt-core
 , msrest
 , msrestazure
 }:
 
 buildPythonPackage rec {
-  version = "0.6.0";
+  version = "1.0.0";
   pname = "azure-mgmt-security";
   disabled = isPy27;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "9f37d0151d730801222af111f0830905634795dbfd59ad1b89c35197421e74d3";
+    sha256 = "ae1cff598dfe80e93406e524c55c3f2cbffced9f9b7a5577e3375008a4c3bcad";
     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-subscription/default.nix b/nixpkgs/pkgs/development/python-modules/azure-mgmt-subscription/default.nix
index d0a5845d9055..d4238cc8204f 100644
--- a/nixpkgs/pkgs/development/python-modules/azure-mgmt-subscription/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/azure-mgmt-subscription/default.nix
@@ -4,30 +4,33 @@
 , msrest
 , msrestazure
 , azure-common
+, azure-mgmt-core
 , azure-mgmt-nspkg
 , isPy3k
 }:
 
 buildPythonPackage rec {
   pname = "azure-mgmt-subscription";
-  version = "0.7.0";
+  version = "1.0.0";
 
   src = fetchPypi {
     inherit pname version;
     extension = "zip";
-    sha256 = "37f570b8872ae65dce312da116588ab8407a5c8a10d959597e61d19b21799f77";
+    sha256 = "22f606f298419f466a8149811fc762686c93da00a7dc15d3b7cdbf22b96cf5db";
   };
 
   propagatedBuildInputs = [
+    azure-common
+    azure-mgmt-core
     msrest
     msrestazure
-    azure-common
   ] ++ lib.optionals (!isPy3k) [
     azure-mgmt-nspkg
   ];
 
   # has no tests
   doCheck = false;
+  pythonImportsCheck = [ "azure.mgmt.subscription" ];
 
   meta = with lib; {
     description = "This is the Microsoft Azure Subscription Management Client Library";
diff --git a/nixpkgs/pkgs/development/python-modules/azure-servicebus/default.nix b/nixpkgs/pkgs/development/python-modules/azure-servicebus/default.nix
index 2f61a2d9bad9..356de52212d0 100644
--- a/nixpkgs/pkgs/development/python-modules/azure-servicebus/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/azure-servicebus/default.nix
@@ -11,15 +11,15 @@
 
 buildPythonPackage rec {
   pname = "azure-servicebus";
-  version = "7.0.0";
+  version = "7.0.1";
 
   src = fetchPypi {
     inherit pname version;
     extension = "zip";
-    sha256 = "875527251c1fed99fcb90597c6abb7daa4bc0ed88e080b4c36f897b704668450";
+    sha256 = "46d1e7b9da537da831c3184d42d3e2bc3c7ab9234e204a9d4c2e5dc54010721b";
   };
 
-  buildInputs = [
+  propagatedBuildInputs = [
     uamqp
     azure-common
     azure-core
diff --git a/nixpkgs/pkgs/development/python-modules/azure-storage-blob/default.nix b/nixpkgs/pkgs/development/python-modules/azure-storage-blob/default.nix
index 9ded3d5c7613..cd42be98f9ff 100644
--- a/nixpkgs/pkgs/development/python-modules/azure-storage-blob/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/azure-storage-blob/default.nix
@@ -11,12 +11,12 @@
 
 buildPythonPackage rec {
   pname = "azure-storage-blob";
-  version = "12.6.0";
+  version = "12.7.1";
 
   src = fetchPypi {
     inherit pname version;
     extension = "zip";
-    sha256 = "dc7832d48ae3f5b31a0b24191084ce6ef7d8dfbf73e553dfe34eaddcb6813be3";
+    sha256 = "c6249f211684929ea6c9d34b5151b06d039775344f0d48fcf479736ed4c11b9e";
   };
 
   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 ad2280464497..c6413f191fce 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.3.0";
+  version = "12.4.1";
   disabled = !isPy3k;
 
   src = fetchPypi {
     inherit pname version;
     extension = "zip";
-    sha256 = "9f24a0ab51fd7ad294353594660b21081233f68ed8ee7483cdca26a70ce0ccbc";
+    sha256 = "7503d05882970abc977529ff5a4b81e79f62fd51b238fe306f72e13f57a522ca";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/azure-synapse-artifacts/default.nix b/nixpkgs/pkgs/development/python-modules/azure-synapse-artifacts/default.nix
index f33df1fdbe8d..5a414388c4c8 100644
--- a/nixpkgs/pkgs/development/python-modules/azure-synapse-artifacts/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/azure-synapse-artifacts/default.nix
@@ -23,8 +23,8 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "azure.synapse.artifacts" ];
 
   meta = with lib; {
-    description = "CHANGE";
-    homepage = "https://github.com/CHANGE/azure-synapse-artifacts/";
+    description = "Microsoft Azure Synapse Artifacts 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/b2sdk/default.nix b/nixpkgs/pkgs/development/python-modules/b2sdk/default.nix
index f807c0353990..da43f6e5690e 100644
--- a/nixpkgs/pkgs/development/python-modules/b2sdk/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/b2sdk/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi, setuptools_scm, isPy27, pytestCheckHook
+{ lib, stdenv, buildPythonPackage, fetchPypi, setuptools_scm, isPy27, pytestCheckHook
 , requests, arrow, logfury, tqdm }:
 
 buildPythonPackage rec {
@@ -20,7 +20,7 @@ buildPythonPackage rec {
   # requires unpackaged dependencies like liccheck
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Client library and utilities for access to B2 Cloud Storage (backblaze).";
     homepage = "https://github.com/Backblaze/b2-sdk-python";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/babelfish/default.nix b/nixpkgs/pkgs/development/python-modules/babelfish/default.nix
index 87769aa3ea91..5ac044292156 100644
--- a/nixpkgs/pkgs/development/python-modules/babelfish/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/babelfish/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi, setuptools }:
+{ lib, stdenv, buildPythonPackage, fetchPypi, setuptools }:
 
 buildPythonPackage rec {
   pname = "babelfish";
@@ -11,7 +11,7 @@ buildPythonPackage rec {
 
   propagatedBuildInputs = [ setuptools ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://pypi.python.org/pypi/babelfish";
     description = "A module to work with countries and languages";
     license = licenses.bsd3;
diff --git a/nixpkgs/pkgs/development/python-modules/backports-datetime-fromisoformat/default.nix b/nixpkgs/pkgs/development/python-modules/backports-datetime-fromisoformat/default.nix
new file mode 100644
index 000000000000..7db161b86110
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/backports-datetime-fromisoformat/default.nix
@@ -0,0 +1,23 @@
+{ lib, buildPythonPackage, fetchPypi }:
+
+buildPythonPackage rec {
+  pname = "backports-datetime-fromisoformat";
+  version = "1.0.0";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "0p0gyhfqq6gssf3prsy0pcfq5w0wx2w3pcjqbwx3imvc92ls4xwm";
+  };
+
+  # no tests in pypi package
+  doCheck = false;
+
+  pythonImportsCheck = [ "backports.datetime_fromisoformat" ];
+
+  meta = with lib; {
+    description = "Backport of Python 3.7's datetime.fromisoformat";
+    homepage = "https://github.com/movermeyer/backports.datetime_fromisoformat";
+    license = licenses.mit;
+    maintainers = with maintainers; [ SuperSandro2000 ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/backports-shutil-which/default.nix b/nixpkgs/pkgs/development/python-modules/backports-shutil-which/default.nix
index 656842f4434d..5fe922b90462 100644
--- a/nixpkgs/pkgs/development/python-modules/backports-shutil-which/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/backports-shutil-which/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchPypi, buildPythonPackage, pytest }:
+{ lib, stdenv, fetchPypi, buildPythonPackage, pytest }:
 
 buildPythonPackage rec {
   pname = "backports.shutil_which";
@@ -15,7 +15,7 @@ buildPythonPackage rec {
     py.test test
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Backport of shutil.which from Python 3.3";
     homepage = "https://github.com/minrk/backports.shutil_which";
     license = licenses.psfl;
diff --git a/nixpkgs/pkgs/development/python-modules/backports_csv/default.nix b/nixpkgs/pkgs/development/python-modules/backports_csv/default.nix
index e2fae4897f62..5216149ddc2c 100644
--- a/nixpkgs/pkgs/development/python-modules/backports_csv/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/backports_csv/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi, future }:
+{ lib, stdenv, buildPythonPackage, fetchPypi, future }:
 
 buildPythonPackage rec {
 
@@ -12,7 +12,7 @@ buildPythonPackage rec {
 
   propagatedBuildInputs = [ future ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Backport of Python 3 csv module";
     homepage = "https://github.com/ryanhiebert";
     license = licenses.psfl;
diff --git a/nixpkgs/pkgs/development/python-modules/backports_os/default.nix b/nixpkgs/pkgs/development/python-modules/backports_os/default.nix
index dc969cbb4b94..b3e231bcd05d 100644
--- a/nixpkgs/pkgs/development/python-modules/backports_os/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/backports_os/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , setuptools_scm
@@ -26,7 +26,7 @@ buildPythonPackage rec {
     ${python.interpreter} -m unittest discover tests
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://github.com/pjdelport/backports.os";
     description = "Backport of new features in Python's os module";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/backports_unittest-mock/default.nix b/nixpkgs/pkgs/development/python-modules/backports_unittest-mock/default.nix
index b85c642787e6..08f98de79f27 100644
--- a/nixpkgs/pkgs/development/python-modules/backports_unittest-mock/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/backports_unittest-mock/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi, setuptools_scm, mock }:
+{ lib, stdenv, buildPythonPackage, fetchPypi, setuptools_scm, mock }:
 
 buildPythonPackage rec {
   pname = "backports.unittest_mock";
@@ -17,7 +17,7 @@ buildPythonPackage rec {
   doCheck = false;
   pythonImportsCheck = [ "backports.unittest_mock" ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Provides a function install() which makes the mock module";
     homepage = "https://github.com/jaraco/backports.unittest_mock";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/backports_weakref/default.nix b/nixpkgs/pkgs/development/python-modules/backports_weakref/default.nix
index 8b818398ec9e..9770fb45981d 100644
--- a/nixpkgs/pkgs/development/python-modules/backports_weakref/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/backports_weakref/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , setuptools_scm
@@ -24,7 +24,7 @@ buildPythonPackage rec {
     ${python.interpreter} -m unittest discover tests
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Backports of new features in Python’s weakref module";
     license = licenses.psfl;
     maintainers = with maintainers; [ jyp ];
diff --git a/nixpkgs/pkgs/development/python-modules/bacpypes/default.nix b/nixpkgs/pkgs/development/python-modules/bacpypes/default.nix
index 3999efd12b67..59542e61c56b 100644
--- a/nixpkgs/pkgs/development/python-modules/bacpypes/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/bacpypes/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi, fetchFromGitHub
+{ lib, stdenv, buildPythonPackage, fetchPypi, fetchFromGitHub
 , wheel, pytestCheckHook, pytestrunner }:
 
 buildPythonPackage rec {
@@ -22,7 +22,7 @@ buildPythonPackage rec {
     "test_recurring_task_5"
   ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://github.com/JoelBender/bacpypes";
     description = "BACpypes provides a BACnet application layer and network layer written in Python for daemons, scripting, and graphical interfaces.";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/bap/default.nix b/nixpkgs/pkgs/development/python-modules/bap/default.nix
index fd63294302c3..d2575afb77d2 100644
--- a/nixpkgs/pkgs/development/python-modules/bap/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/bap/default.nix
@@ -1,4 +1,4 @@
-{stdenv, buildPythonPackage, fetchFromGitHub, bap, requests}:
+{lib, stdenv, buildPythonPackage, fetchFromGitHub, bap, requests}:
 
 buildPythonPackage rec {
   pname = "bap";
@@ -14,7 +14,7 @@ buildPythonPackage rec {
 
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Platform for binary analysis. It is written in OCaml, but can be used from other languages.";
     homepage = "https://github.com/BinaryAnalysisPlatform/bap/";
     maintainers = [ maintainers.maurer ];
diff --git a/nixpkgs/pkgs/development/python-modules/base36/default.nix b/nixpkgs/pkgs/development/python-modules/base36/default.nix
new file mode 100644
index 000000000000..348422e31fa7
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/base36/default.nix
@@ -0,0 +1,35 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, pytestCheckHook
+}:
+
+buildPythonPackage rec {
+  pname = "base36";
+  version = "0.1.1";
+
+  src = fetchFromGitHub {
+    owner = "tonyseek";
+    repo = "python-base36";
+    rev = "v${version}";
+    sha256 = "076nmk9s0zkmgs2zqzkaqij5cmzhf4mrhivbb9n6cvz52i1mppr5";
+  };
+
+  postPatch = ''
+    substituteInPlace setup.cfg \
+      --replace "[pytest]" "[tool:pytest]" \
+      --replace "--pep8 --cov" ""
+  '';
+
+  checkInputs = [ pytestCheckHook ];
+
+  pytestFlagsArray = [ "test_base36.py" ];
+  pythonImportsCheck = [ "base36" ];
+
+  meta = with lib; {
+    description = "Python implementation for the positional numeral system using 36 as the radix";
+    homepage = "https://github.com/tonyseek/python-base36";
+    license = with licenses; [ mit ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/base58/default.nix b/nixpkgs/pkgs/development/python-modules/base58/default.nix
index 42f848aa846b..a36727429ca7 100644
--- a/nixpkgs/pkgs/development/python-modules/base58/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/base58/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchPypi, buildPythonPackage, isPy27, pytest, pyhamcrest }:
+{ lib, stdenv, fetchPypi, buildPythonPackage, isPy27, pytest, pyhamcrest }:
 
 buildPythonPackage rec {
   pname = "base58";
@@ -15,7 +15,7 @@ buildPythonPackage rec {
     pytest
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Base58 and Base58Check implementation";
     homepage = "https://github.com/keis/base58";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/basemap/default.nix b/nixpkgs/pkgs/development/python-modules/basemap/default.nix
index a06bcebc8e6c..c97548bdee88 100644
--- a/nixpkgs/pkgs/development/python-modules/basemap/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/basemap/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchFromGitHub
 , numpy
@@ -34,7 +34,7 @@ buildPythonPackage rec {
   # TODO : do the post install checks (`cd examples && ${python.interpreter} run_all.py`)
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://matplotlib.org/basemap/";
     description = "Plot data on map projections with matplotlib";
     longDescription = ''
diff --git a/nixpkgs/pkgs/development/python-modules/bash_kernel/default.nix b/nixpkgs/pkgs/development/python-modules/bash_kernel/default.nix
index 9ac72a21fa7d..ba4672a17746 100644
--- a/nixpkgs/pkgs/development/python-modules/bash_kernel/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/bash_kernel/default.nix
@@ -11,13 +11,13 @@
 
 buildPythonPackage rec {
   pname = "bash_kernel";
-  version = "0.7.1";
+  version = "0.7.2";
   format = "flit";
   disabled = isPy27;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1s2kc7m52kq28b4j1q3456g5ani6nmq4n0rpbqi3yvh7ks0rby19";
+    sha256 = "0w0nbr3iqqsgpk83rgd0f5b02462bkyj2n0h6i9dwyc1vpnq9350";
   };
 
   patches = [
diff --git a/nixpkgs/pkgs/development/python-modules/batinfo/default.nix b/nixpkgs/pkgs/development/python-modules/batinfo/default.nix
index e8516aecdc65..0ed3486272d3 100644
--- a/nixpkgs/pkgs/development/python-modules/batinfo/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/batinfo/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi }:
+{ lib, stdenv, buildPythonPackage, fetchPypi }:
 
 buildPythonPackage rec {
   pname = "batinfo";
@@ -12,7 +12,7 @@ buildPythonPackage rec {
   # No tests included
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://github.com/nicolargo/batinfo";
     description = "A simple Python lib to retrieve battery information";
     license = licenses.lgpl3;
diff --git a/nixpkgs/pkgs/development/python-modules/bayespy/default.nix b/nixpkgs/pkgs/development/python-modules/bayespy/default.nix
index ef3dfa095184..b470d21b1bea 100644
--- a/nixpkgs/pkgs/development/python-modules/bayespy/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/bayespy/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi, pythonOlder
+{ lib, stdenv, buildPythonPackage, fetchPypi, pythonOlder
 , pytest, nose, glibcLocales
 , numpy, scipy, matplotlib, h5py }:
 
@@ -22,7 +22,7 @@ buildPythonPackage rec {
     LC_ALL=en_US.utf-8 pytest -k 'not test_message_to_parents'
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "http://www.bayespy.org";
     description = "Variational Bayesian inference tools for Python";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/bc-python-hcl2/default.nix b/nixpkgs/pkgs/development/python-modules/bc-python-hcl2/default.nix
new file mode 100644
index 000000000000..34eab21bf5d0
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/bc-python-hcl2/default.nix
@@ -0,0 +1,49 @@
+{ lib, buildPythonPackage, fetchPypi, nose }:
+
+let
+  lark-parser = buildPythonPackage rec {
+    pname = "lark-parser";
+    version = "0.7.8";
+
+    src = fetchPypi {
+      inherit pname version;
+      sha256 = "JiFeuxV+b7LudDGapERbnzt+RW4mviFc4Z/aqpAcIKQ=";
+    };
+
+    doCheck = true;
+  };
+in
+buildPythonPackage rec {
+  pname = "bc-python-hcl2";
+  version = "0.3.11";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "VZhI1oJ2EDZGyz3iI6/KYvJq4BGafzR+rcSgHqlUDrA=";
+  };
+
+  # Nose is required during build process, so can not use `checkInputs`.
+  buildInputs = [
+    nose
+  ];
+
+  propagatedBuildInputs = [
+    lark-parser
+  ];
+
+  pythonImportsCheck = [ "hcl2" ];
+
+  meta = with lib; {
+    description = "A parser for HCL2 written in Python using Lark";
+    longDescription = ''
+    A parser for HCL2 written in Python using Lark.
+    This parser only supports HCL2 and isn't backwards compatible with HCL v1.
+    It can be used to parse any HCL2 config file such as Terraform.
+    '';
+    # Although this is the main homepage from PyPi but it is also a homepage
+    # of another PyPi package (python-hcl2). But these two are different.
+    homepage = "https://github.com/amplify-education/python-hcl2";
+    license = licenses.mit;
+    maintainers = [ maintainers.anhdle14 ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/bcdoc/default.nix b/nixpkgs/pkgs/development/python-modules/bcdoc/default.nix
index b8cbf8537dc6..185fcb86b0b7 100644
--- a/nixpkgs/pkgs/development/python-modules/bcdoc/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/bcdoc/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi, docutils, six }:
+{ lib, stdenv, buildPythonPackage, fetchPypi, docutils, six }:
 
 buildPythonPackage rec {
   pname = "bcdoc";
@@ -14,7 +14,7 @@ buildPythonPackage rec {
   # Tests fail due to nix file timestamp normalization.
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://github.com/boto/bcdoc";
     license = licenses.asl20;
     description = "ReST document generation tools for botocore";
diff --git a/nixpkgs/pkgs/development/python-modules/bcrypt/default.nix b/nixpkgs/pkgs/development/python-modules/bcrypt/default.nix
index dc50c56018e0..e74b0934b308 100644
--- a/nixpkgs/pkgs/development/python-modules/bcrypt/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/bcrypt/default.nix
@@ -1,8 +1,6 @@
-{ stdenv, buildPythonPackage, isPyPy, fetchPypi, pythonOlder
+{ lib, stdenv, buildPythonPackage, isPyPy, fetchPypi, pythonOlder
 , cffi, pycparser, mock, pytest, py, six }:
 
-with stdenv.lib;
-
 buildPythonPackage rec {
   version = "3.2.0";
   pname = "bcrypt";
@@ -12,10 +10,12 @@ buildPythonPackage rec {
     inherit pname version;
     sha256 = "5b93c1726e50a93a033c36e5ca7fdcd29a5c7395af50a6892f5d9e7c6cfbfb29";
   };
+
   buildInputs = [ pycparser mock pytest py ];
-  propagatedBuildInputs = [ six ] ++ optional (!isPyPy) cffi;
 
-  meta = {
+  propagatedBuildInputs = [ six ] ++ lib.optional (!isPyPy) cffi;
+
+  meta = with lib; {
     maintainers = with maintainers; [ domenkozar ];
     description = "Modern password hashing for your software and your servers";
     license = licenses.asl20;
diff --git a/nixpkgs/pkgs/development/python-modules/beancount/default.nix b/nixpkgs/pkgs/development/python-modules/beancount/default.nix
index f1dc7a5349d9..fa97c7c97a94 100644
--- a/nixpkgs/pkgs/development/python-modules/beancount/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/beancount/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi, isPy3k
+{ lib, stdenv, buildPythonPackage, fetchPypi, isPy3k
 , beautifulsoup4, bottle, chardet, dateutil
 , google_api_python_client, lxml, oauth2client
 , ply, python_magic, pytest, requests }:
@@ -33,7 +33,7 @@ buildPythonPackage rec {
     pytest
   ];
 
-  meta = {
+  meta = with lib; {
     homepage = "http://furius.ca/beancount/";
     description = "Double-entry bookkeeping computer language";
     longDescription = ''
@@ -41,8 +41,8 @@ buildPythonPackage rec {
         financial transaction records in a text file, read them in memory,
         generate a variety of reports from them, and provides a web interface.
     '';
-    license = stdenv.lib.licenses.gpl2;
-    maintainers = with stdenv.lib.maintainers; [ ];
+    license = licenses.gpl2;
+    maintainers = with maintainers; [ ];
   };
 }
 
diff --git a/nixpkgs/pkgs/development/python-modules/beanstalkc/default.nix b/nixpkgs/pkgs/development/python-modules/beanstalkc/default.nix
index c24e9a03d158..a74f6c6f8f28 100644
--- a/nixpkgs/pkgs/development/python-modules/beanstalkc/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/beanstalkc/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchFromGitHub, buildPythonPackage }:
+{ lib, stdenv, fetchFromGitHub, buildPythonPackage }:
 
 buildPythonPackage rec {
   pname = "beanstalkc";
@@ -13,10 +13,10 @@ buildPythonPackage rec {
 
   doCheck = false;
 
-  meta = {
+  meta = with lib; {
     description = "A simple beanstalkd client library for Python";
-    maintainers = with stdenv.lib.maintainers; [ aanderse ];
-    license = with stdenv.lib.licenses; [ asl20 ];
+    maintainers = with maintainers; [ aanderse ];
+    license = licenses.asl20;
     homepage = "https://github.com/earl/beanstalkc";
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/beautifulsoup4/default.nix b/nixpkgs/pkgs/development/python-modules/beautifulsoup4/default.nix
index a0afd0c4f4c4..555669da243e 100644
--- a/nixpkgs/pkgs/development/python-modules/beautifulsoup4/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/beautifulsoup4/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi, soupsieve, pytest, python }:
+{ lib, stdenv, buildPythonPackage, fetchPypi, soupsieve, pytest, python }:
 
 buildPythonPackage rec {
   pname = "beautifulsoup4";
@@ -16,7 +16,7 @@ buildPythonPackage rec {
 
   propagatedBuildInputs = [ soupsieve ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "http://crummy.com/software/BeautifulSoup/bs4/";
     description = "HTML and XML parser";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/bedup/default.nix b/nixpkgs/pkgs/development/python-modules/bedup/default.nix
index 6c0c3c44d2d4..f38d4263c248 100644
--- a/nixpkgs/pkgs/development/python-modules/bedup/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/bedup/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchFromGitHub
 , btrfs-progs
@@ -25,9 +25,9 @@ buildPythonPackage rec {
 
   buildInputs = [ btrfs-progs ];
   propagatedBuildInputs = [ contextlib2 pyxdg pycparser alembic ]
-    ++ stdenv.lib.optionals (!isPyPy) [ cffi ];
+    ++ lib.optionals (!isPyPy) [ cffi ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Deduplication for Btrfs";
     longDescription = ''
       Deduplication for Btrfs. bedup looks for new and changed files,
diff --git a/nixpkgs/pkgs/development/python-modules/behave/default.nix b/nixpkgs/pkgs/development/python-modules/behave/default.nix
index 26cd6441ba5a..43c74fc95716 100644
--- a/nixpkgs/pkgs/development/python-modules/behave/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/behave/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchFromGitHub
+{ lib, stdenv, fetchFromGitHub
 , buildPythonApplication, python
 , pytestCheckHook, mock, pathpy, pyhamcrest, pytest-html
 , glibcLocales
@@ -26,7 +26,7 @@ buildPythonApplication rec {
 
   # timing-based test flaky on Darwin
   # https://github.com/NixOS/nixpkgs/pull/97737#issuecomment-691489824
-  disabledTests = stdenv.lib.optionals stdenv.isDarwin [ "test_step_decorator_async_run_until_complete" ];
+  disabledTests = lib.optionals stdenv.isDarwin [ "test_step_decorator_async_run_until_complete" ];
 
   postCheck = ''
     export LANG="en_US.UTF-8"
@@ -37,7 +37,7 @@ buildPythonApplication rec {
     ${python.interpreter} bin/behave -f progress3 --stop --tags='~@xfail' issue.features/
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://github.com/behave/behave";
     description = "behaviour-driven development, Python style";
     license = licenses.bsd2;
diff --git a/nixpkgs/pkgs/development/python-modules/bellows/default.nix b/nixpkgs/pkgs/development/python-modules/bellows/default.nix
index ab50a1acd8ef..6ee8b6499b58 100644
--- a/nixpkgs/pkgs/development/python-modules/bellows/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/bellows/default.nix
@@ -1,26 +1,27 @@
-{ stdenv, buildPythonPackage, fetchPypi
+{ lib, stdenv, buildPythonPackage, fetchFromGitHub
 , click, click-log, pure-pcapy3
-, pyserial, pyserial-asyncio, voluptuous, zigpy
-, asynctest, pytest, pytest-asyncio }:
+, pyserial-asyncio, voluptuous, zigpy
+, asynctest, pytestCheckHook, pytest-asyncio }:
 
-let
+buildPythonPackage rec {
   pname = "bellows";
   version = "0.21.0";
 
-in buildPythonPackage rec {
-  inherit pname version;
-
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "fd2ac40c1f3550580dc561ae58d7d15cfa12e6a7cc5d35ee80e7a1cb6a4cda4f";
+  src = fetchFromGitHub {
+    owner = "zigpy";
+    repo = "bellows";
+    rev = version;
+    sha256 = "1gja7cb1cyzbi19k8awa2gyc3bjam0adapalpk5slxny0vxlc73a";
   };
 
   propagatedBuildInputs = [
-    click click-log pure-pcapy3 pyserial pyserial-asyncio voluptuous zigpy
+    click click-log pure-pcapy3 pyserial-asyncio voluptuous zigpy
   ];
 
   checkInputs = [
-    asynctest pytest pytest-asyncio
+    asynctest
+    pytestCheckHook
+    pytest-asyncio
   ];
 
   prePatch = ''
@@ -28,7 +29,7 @@ in buildPythonPackage rec {
       --replace "click-log==0.2.0" "click-log>=0.2.0"
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "A Python 3 project to implement EZSP for EmberZNet devices";
     homepage = "https://github.com/zigpy/bellows";
     license = licenses.gpl3Plus;
diff --git a/nixpkgs/pkgs/development/python-modules/bespon/default.nix b/nixpkgs/pkgs/development/python-modules/bespon/default.nix
index 51e29e55d07f..555a0a487581 100644
--- a/nixpkgs/pkgs/development/python-modules/bespon/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/bespon/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 }:
@@ -17,7 +17,7 @@ buildPythonPackage rec {
   doCheck = false;
 
   pythonImportsCheck = [ "bespon" ];
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Encodes and decodes data in the BespON format.";
     homepage = "https://github.com/gpoore/bespon_py";
     license = licenses.lgpl3;
diff --git a/nixpkgs/pkgs/development/python-modules/betacode/default.nix b/nixpkgs/pkgs/development/python-modules/betacode/default.nix
index 8bd78fb49d2b..79136e479d26 100644
--- a/nixpkgs/pkgs/development/python-modules/betacode/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/betacode/default.nix
@@ -6,7 +6,7 @@ buildPythonPackage rec {
     inherit pname version;
     sha256 = "0s84kd9vblbjz61q7zchx64a6hmdqb4lillna5ryh0g9ij76g6r5";
   };
-  preBuild = ''echo > README.rst'';
+  preBuild = "echo > README.rst";
   # setup.py uses a python3 os.path.join
   disabled = !isPy3k;
   propagatedBuildInputs = [ pygtrie ];
diff --git a/nixpkgs/pkgs/development/python-modules/betamax-matchers/default.nix b/nixpkgs/pkgs/development/python-modules/betamax-matchers/default.nix
index e95a34d15424..424b8ef4ef36 100644
--- a/nixpkgs/pkgs/development/python-modules/betamax-matchers/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/betamax-matchers/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi
+{ lib, stdenv, buildPythonPackage, fetchPypi
 , betamax, requests_toolbelt }:
 
 buildPythonPackage rec {
@@ -12,7 +12,7 @@ buildPythonPackage rec {
 
   buildInputs = [ betamax requests_toolbelt ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://github.com/sigmavirus24/betamax_matchers";
     description = "A group of experimental matchers for Betamax";
     license = licenses.asl20;
diff --git a/nixpkgs/pkgs/development/python-modules/betamax-serializers/default.nix b/nixpkgs/pkgs/development/python-modules/betamax-serializers/default.nix
index 60a79a51d499..3d3cad4d95b5 100644
--- a/nixpkgs/pkgs/development/python-modules/betamax-serializers/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/betamax-serializers/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi
+{ lib, stdenv, buildPythonPackage, fetchPypi
 , betamax, pyyaml }:
 
 buildPythonPackage rec {
@@ -12,7 +12,7 @@ buildPythonPackage rec {
 
   buildInputs = [ betamax pyyaml ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://gitlab.com/betamax/serializers";
     description = "A set of third-party serializers for Betamax";
     license = licenses.asl20;
diff --git a/nixpkgs/pkgs/development/python-modules/betamax/default.nix b/nixpkgs/pkgs/development/python-modules/betamax/default.nix
index 7339fcbf6485..5e1469bfc52d 100644
--- a/nixpkgs/pkgs/development/python-modules/betamax/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/betamax/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi, requests }:
+{ lib, stdenv, buildPythonPackage, fetchPypi, requests }:
 
 buildPythonPackage rec {
   pname = "betamax";
@@ -13,7 +13,7 @@ buildPythonPackage rec {
 
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://betamax.readthedocs.org/en/latest/";
     description = "A VCR imitation for requests";
     license = licenses.asl20;
diff --git a/nixpkgs/pkgs/development/python-modules/bidict/default.nix b/nixpkgs/pkgs/development/python-modules/bidict/default.nix
index 34b9f4cf5ff0..dcb684a55e0d 100644
--- a/nixpkgs/pkgs/development/python-modules/bidict/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/bidict/default.nix
@@ -3,7 +3,7 @@
 , sphinx
 , hypothesis
 , py
-, pytest
+, pytestCheckHook
 , pytest-benchmark
 , sortedcollections
 , sortedcontainers
@@ -23,23 +23,14 @@ buildPythonPackage rec {
   nativeBuildInputs = [ setuptools_scm ];
   propagatedBuildInputs = [ sphinx ];
 
-  # this can be removed >0.19.0
-  postPatch = ''
-    substituteInPlace setup.py \
-      --replace "setuptools_scm < 4" "setuptools_scm"
-  '';
-
   checkInputs = [
     hypothesis
     py
-    pytest
+    pytestCheckHook
     pytest-benchmark
     sortedcollections
     sortedcontainers
   ];
-  checkPhase = ''
-    pytest tests
-  '';
 
   meta = with lib; {
     homepage = "https://github.com/jab/bidict";
diff --git a/nixpkgs/pkgs/development/python-modules/billiard/default.nix b/nixpkgs/pkgs/development/python-modules/billiard/default.nix
index ff87ba2e6691..4f8aa3565da2 100644
--- a/nixpkgs/pkgs/development/python-modules/billiard/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/billiard/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi, isPyPy, pytestCheckHook, case, psutil, fetchpatch }:
+{ lib, stdenv, buildPythonPackage, fetchPypi, isPyPy, pytestCheckHook, case, psutil, fetchpatch }:
 
 buildPythonPackage rec {
   pname = "billiard";
@@ -19,7 +19,7 @@ buildPythonPackage rec {
 
   checkInputs = [ pytestCheckHook case psutil ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://github.com/celery/billiard";
     description = "Python multiprocessing fork with improvements and bugfixes";
     license = licenses.bsd3;
diff --git a/nixpkgs/pkgs/development/python-modules/binho-host-adapter/default.nix b/nixpkgs/pkgs/development/python-modules/binho-host-adapter/default.nix
new file mode 100644
index 000000000000..2249a28a5547
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/binho-host-adapter/default.nix
@@ -0,0 +1,28 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, pyserial
+}:
+
+buildPythonPackage rec {
+  pname = "binho-host-adapter";
+  version = "0.1.6";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "0mp8xa1qwaww2k5g2nqg7mcivzsbfw2ny1l9yjsi73109slafv8y";
+  };
+
+  propagatedBuildInputs = [ pyserial ];
+
+  # Project has no tests
+  doCheck = false;
+  pythonImportsCheck = [ "binhoHostAdapter" ];
+
+  meta = with lib; {
+    description = "Python library for Binho Multi-Protocol USB Host Adapters";
+    homepage = "https://github.com/adafruit/Adafruit_Python_PlatformDetect";
+    license = with licenses; [ mit ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/binwalk/default.nix b/nixpkgs/pkgs/development/python-modules/binwalk/default.nix
index c6fbbc13c43d..c2f059dd93dc 100644
--- a/nixpkgs/pkgs/development/python-modules/binwalk/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/binwalk/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchFromGitHub
 , zlib
@@ -35,7 +35,7 @@ buildPythonPackage {
   };
 
   propagatedBuildInputs = [ zlib xz ncompress gzip bzip2 gnutar p7zip cabextract cramfsswap cramfsprogs sasquatch squashfsTools lzma pycrypto ]
-  ++ stdenv.lib.optionals visualizationSupport [ matplotlib pyqtgraph ];
+  ++ lib.optionals visualizationSupport [ matplotlib pyqtgraph ];
 
   # setup.py only installs version.py during install, not test
   postPatch = ''
@@ -49,7 +49,7 @@ buildPythonPackage {
 
   checkInputs = [ nose ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://github.com/ReFirmLabs/binwalk";
     description = "A tool for searching a given binary image for embedded files";
     maintainers = [ maintainers.koral ];
diff --git a/nixpkgs/pkgs/development/python-modules/bitarray/default.nix b/nixpkgs/pkgs/development/python-modules/bitarray/default.nix
index 08e81476ba6f..2f98f3917b84 100644
--- a/nixpkgs/pkgs/development/python-modules/bitarray/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/bitarray/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "bitarray";
-  version = "1.6.1";
+  version = "1.6.3";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "ab85b38365dd9956264226b30dababa02161ed49bb36c7ee82cc6545e07b1599";
+    sha256 = "ae27ce4bef4f35b4cc2c0b0d9cf02ed49eee567c23d70cb5066ad215f9b62b3c";
   };
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/development/python-modules/bitbox02/default.nix b/nixpkgs/pkgs/development/python-modules/bitbox02/default.nix
new file mode 100644
index 000000000000..ce62fd6dce04
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/bitbox02/default.nix
@@ -0,0 +1,24 @@
+{ lib, buildPythonPackage, fetchPypi, base58, ecdsa, hidapi, noiseprotocol, protobuf, semver, typing-extensions }:
+
+buildPythonPackage rec {
+  pname = "bitbox02";
+  version = "5.2.0";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "52b0b617660601939b30c8b588c28910946448b1b6d69ca231d5e3e47a322b71";
+  };
+
+  propagatedBuildInputs = [ base58 ecdsa hidapi noiseprotocol protobuf semver typing-extensions ];
+
+  # does not contain tests
+  doCheck = false;
+  pythonImportsCheck = [ "bitbox02" ];
+
+  meta = with lib; {
+    description = "Firmware code of the BitBox02 hardware wallet";
+    homepage = "https://github.com/digitalbitbox/bitbox02-firmware/";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ SuperSandro2000 ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/bitbucket-api/default.nix b/nixpkgs/pkgs/development/python-modules/bitbucket-api/default.nix
index 82b49a267574..559661bbb4f3 100644
--- a/nixpkgs/pkgs/development/python-modules/bitbucket-api/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/bitbucket-api/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi, isPy3k
+{ lib, stdenv, buildPythonPackage, fetchPypi, isPy3k
 , requests_oauthlib, nose, sh }:
 
 buildPythonPackage rec {
@@ -15,7 +15,7 @@ buildPythonPackage rec {
 
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://github.com/Sheeprider/BitBucket-api";
     description = "Python library to interact with BitBucket REST API";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/bitbucket-cli/default.nix b/nixpkgs/pkgs/development/python-modules/bitbucket-cli/default.nix
index 5e5d5662ba32..50075fe70fce 100644
--- a/nixpkgs/pkgs/development/python-modules/bitbucket-cli/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/bitbucket-cli/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi, isPy3k, requests }:
+{ lib, stdenv, buildPythonPackage, fetchPypi, isPy3k, requests }:
 
 buildPythonPackage rec {
   pname = "bitbucket-cli";
@@ -15,7 +15,7 @@ buildPythonPackage rec {
   # No tests
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Bitbucket command line interface";
     homepage = "https://bitbucket.org/zhemao/bitbucket-cli";
     maintainers = with maintainers; [ refnil ];
diff --git a/nixpkgs/pkgs/development/python-modules/bitmath/default.nix b/nixpkgs/pkgs/development/python-modules/bitmath/default.nix
index 55194b02db3a..49992c561f73 100644
--- a/nixpkgs/pkgs/development/python-modules/bitmath/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/bitmath/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi, isPy3k, progressbar231, progressbar33, mock }:
+{ lib, stdenv, buildPythonPackage, fetchPypi, isPy3k, progressbar231, progressbar33, mock }:
 
 buildPythonPackage rec {
   pname = "bitmath";
@@ -11,7 +11,7 @@ buildPythonPackage rec {
 
   checkInputs = [ (if isPy3k then progressbar33 else progressbar231) mock ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Module for representing and manipulating file sizes with different prefix";
     homepage = "https://github.com/tbielawa/bitmath";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/bitstring/default.nix b/nixpkgs/pkgs/development/python-modules/bitstring/default.nix
index a2ba5b10268c..d6eaf31056ff 100644
--- a/nixpkgs/pkgs/development/python-modules/bitstring/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/bitstring/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi }:
+{ lib, stdenv, buildPythonPackage, fetchPypi }:
 
 buildPythonPackage rec {
   pname = "bitstring";
@@ -9,7 +9,7 @@ buildPythonPackage rec {
     sha256 = "0jl6192dwrlm5ybkbh7ywmyaymrc3cmz9y07nm7qdli9n9rfpwzx";
   };
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Module for binary data manipulation";
     homepage = "https://github.com/scott-griffiths/bitstring";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/bjoern/default.nix b/nixpkgs/pkgs/development/python-modules/bjoern/default.nix
index c2f60fce9dc5..2949ecbf6f92 100644
--- a/nixpkgs/pkgs/development/python-modules/bjoern/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/bjoern/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi, libev, python }:
+{ lib, stdenv, buildPythonPackage, fetchPypi, libev, python }:
 
 buildPythonPackage rec {
   pname = "bjoern";
@@ -16,7 +16,7 @@ buildPythonPackage rec {
     ${python.interpreter} tests/test_wsgi_compliance.py
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://github.com/jonashaag/bjoern";
     description = "A screamingly fast Python 2/3 WSGI server written in C";
     license = licenses.bsd2;
diff --git a/nixpkgs/pkgs/development/python-modules/black-macchiato/default.nix b/nixpkgs/pkgs/development/python-modules/black-macchiato/default.nix
index 130d07d61ff4..536ad1f14b66 100644
--- a/nixpkgs/pkgs/development/python-modules/black-macchiato/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/black-macchiato/default.nix
@@ -1,4 +1,4 @@
-{ stdenv,
+{ lib, stdenv,
   buildPythonPackage,
   fetchFromGitHub,
   pythonOlder,
@@ -25,7 +25,7 @@ buildPythonPackage rec {
 
   pythonImportsCheck = [ "black" ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "This is a small utility built on top of the black Python code formatter to enable formatting of partial files";
     homepage    = "https://github.com/wbolster/black-macchiato";
     license     = licenses.bsd3;
diff --git a/nixpkgs/pkgs/development/python-modules/bleak/default.nix b/nixpkgs/pkgs/development/python-modules/bleak/default.nix
index 91d94fcd72d9..06dc3217dc87 100644
--- a/nixpkgs/pkgs/development/python-modules/bleak/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/bleak/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, isPy3k, fetchPypi, bluez, txdbus, pytest, pytestcov }:
+{ lib, stdenv, buildPythonPackage, isPy3k, fetchPypi, bluez, txdbus, pytest, pytestcov }:
 
 buildPythonPackage rec {
   pname = "bleak";
@@ -24,7 +24,7 @@ buildPythonPackage rec {
 
   checkPhase = "AGENT_OS=linux py.test";
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Bluetooth Low Energy platform Agnostic Klient for Python";
     homepage = "https://github.com/hbldh/bleak";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/blessed/default.nix b/nixpkgs/pkgs/development/python-modules/blessed/default.nix
index 7f1a24b48508..7adacecc647a 100644
--- a/nixpkgs/pkgs/development/python-modules/blessed/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/blessed/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi, fetchpatch, six
+{ lib, stdenv, buildPythonPackage, fetchPypi, fetchpatch, six
 , wcwidth, pytest, mock, glibcLocales
 }:
 
@@ -21,7 +21,7 @@ buildPythonPackage rec {
 
   propagatedBuildInputs = [ wcwidth six ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://github.com/jquast/blessed";
     description = "A thin, practical wrapper around terminal capabilities in Python.";
     maintainers = with maintainers; [ eqyiel ];
diff --git a/nixpkgs/pkgs/development/python-modules/blessings/default.nix b/nixpkgs/pkgs/development/python-modules/blessings/default.nix
index c285b3a7d003..5263a92ec3d9 100644
--- a/nixpkgs/pkgs/development/python-modules/blessings/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/blessings/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , six
@@ -24,7 +24,7 @@ buildPythonPackage rec {
     nosetests
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://github.com/erikrose/blessings";
     description = "A thin, practical wrapper around terminal coloring, styling, and positioning";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/blinker/default.nix b/nixpkgs/pkgs/development/python-modules/blinker/default.nix
index 5c76efb029fd..e33ad1626318 100644
--- a/nixpkgs/pkgs/development/python-modules/blinker/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/blinker/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi }:
+{ lib, stdenv, buildPythonPackage, fetchPypi }:
 
 buildPythonPackage rec {
   pname = "blinker";
@@ -9,7 +9,7 @@ buildPythonPackage rec {
     sha256 = "1dpq0vb01p36jjwbhhd08ylvrnyvcc82yxx3mwjx6awrycjyw6j7";
   };
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://pythonhosted.org/blinker/";
     description = "Fast, simple object-to-object and broadcast signaling";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/blis/default.nix b/nixpkgs/pkgs/development/python-modules/blis/default.nix
index 0042bcaf9293..eeb62e8fed32 100644
--- a/nixpkgs/pkgs/development/python-modules/blis/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/blis/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , cython
@@ -30,7 +30,7 @@ buildPythonPackage rec {
     pytest
   ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "BLAS-like linear algebra library";
     homepage = "https://github.com/explosion/cython-blis";
     license = licenses.bsd3;
diff --git a/nixpkgs/pkgs/development/python-modules/blist/default.nix b/nixpkgs/pkgs/development/python-modules/blist/default.nix
index 52687bf2506d..505f01af5fe4 100644
--- a/nixpkgs/pkgs/development/python-modules/blist/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/blist/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchpatch
 , fetchPypi
@@ -24,7 +24,7 @@ buildPythonPackage rec {
     })
   ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "http://stutzbachenterprises.com/blist/";
     description = "A list-like type with better asymptotic performance and similar performance on small lists";
     license = licenses.bsd0;
diff --git a/nixpkgs/pkgs/development/python-modules/blivet/default.nix b/nixpkgs/pkgs/development/python-modules/blivet/default.nix
index d224f2bc22e1..94abc39fd285 100644
--- a/nixpkgs/pkgs/development/python-modules/blivet/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/blivet/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchFromGitHub, buildPythonPackage, pykickstart, pyparted, pyblock
+{ lib, stdenv, fetchFromGitHub, buildPythonPackage, pykickstart, pyparted, pyblock
 , pyudev, six, libselinux, multipath-tools, lsof, util-linux
 }:
 
@@ -33,7 +33,7 @@ buildPythonPackage rec {
 
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://fedoraproject.org/wiki/Blivet";
     description = "Module for management of a system's storage configuration";
     license = with licenses; [ gpl2Plus lgpl21Plus ];
diff --git a/nixpkgs/pkgs/development/python-modules/block-io/default.nix b/nixpkgs/pkgs/development/python-modules/block-io/default.nix
index 24ddd429cd93..3a9704d71bc5 100644
--- a/nixpkgs/pkgs/development/python-modules/block-io/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/block-io/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchPypi, buildPythonPackage, base58, ecdsa, pycryptodome, requests, six, setuptools }:
+{ lib, stdenv, fetchPypi, buildPythonPackage, base58, ecdsa, pycryptodome, requests, six, setuptools }:
 
 buildPythonPackage rec {
   pname = "block-io";
@@ -30,7 +30,7 @@ buildPythonPackage rec {
 
   pythonImportsCheck = [ "block_io" ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Integrate Bitcoin, Dogecoin and Litecoin in your Python applications using block.io";
     homepage = "https://github.com/BlockIo/block_io-python";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/blockdiag/default.nix b/nixpkgs/pkgs/development/python-modules/blockdiag/default.nix
index ff53884ef376..5adc854d0263 100644
--- a/nixpkgs/pkgs/development/python-modules/blockdiag/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/blockdiag/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchFromGitHub
+{ lib, stdenv, buildPythonPackage, fetchFromGitHub
 , setuptools, funcparserlib, pillow, webcolors, reportlab, docutils
 }:
 
@@ -18,7 +18,7 @@ buildPythonPackage rec {
   # require network and fail
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Generate block-diagram image from spec-text file (similar to Graphviz)";
     homepage = "http://blockdiag.com/";
     license = licenses.asl20;
diff --git a/nixpkgs/pkgs/development/python-modules/bluepy/default.nix b/nixpkgs/pkgs/development/python-modules/bluepy/default.nix
index 8d247b41d277..d833d20934d6 100644
--- a/nixpkgs/pkgs/development/python-modules/bluepy/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/bluepy/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , pkg-config
@@ -25,11 +25,11 @@ buildPythonPackage rec {
   '';
   pythonImportsCheck = [ "bluepy" ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Python interface to Bluetooth LE on Linux";
     homepage = "https://github.com/IanHarvey/bluepy";
     maintainers = with maintainers; [ georgewhewell ];
+    platforms = platforms.linux;
     license = licenses.gpl2;
   };
-
 }
diff --git a/nixpkgs/pkgs/development/python-modules/boltons/default.nix b/nixpkgs/pkgs/development/python-modules/boltons/default.nix
index 080165f70712..13e264340da1 100644
--- a/nixpkgs/pkgs/development/python-modules/boltons/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/boltons/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchFromGitHub, pytest }:
+{ lib, stdenv, buildPythonPackage, fetchFromGitHub, pytest }:
 
 buildPythonPackage rec {
   pname = "boltons";
@@ -15,7 +15,7 @@ buildPythonPackage rec {
   checkInputs = [ pytest ];
   checkPhase = "pytest tests";
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://github.com/mahmoud/boltons";
     description = "220+ constructs, recipes, and snippets extending (and relying on nothing but) the Python standard library";
     longDescription = ''
diff --git a/nixpkgs/pkgs/development/python-modules/boltztrap2/default.nix b/nixpkgs/pkgs/development/python-modules/boltztrap2/default.nix
index 48fc3bf69983..48bc53bbeeda 100644
--- a/nixpkgs/pkgs/development/python-modules/boltztrap2/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/boltztrap2/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , spglib
@@ -36,7 +36,7 @@ buildPythonPackage rec {
     py.test
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "http://www.boltztrap.org/";
     description = "Band-structure interpolator and transport coefficient calculator";
     license = licenses.gpl3;
diff --git a/nixpkgs/pkgs/development/python-modules/bootstrapped-pip/default.nix b/nixpkgs/pkgs/development/python-modules/bootstrapped-pip/default.nix
index 9679edd95127..5a6333d656af 100644
--- a/nixpkgs/pkgs/development/python-modules/bootstrapped-pip/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/bootstrapped-pip/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, python, fetchPypi, makeWrapper, unzip, makeSetupHook
+{ lib, stdenv, python, fetchPypi, makeWrapper, unzip, makeSetupHook
 , pipInstallHook
 , setuptoolsBuildHook
 , wheel, pip, setuptools
@@ -32,7 +32,7 @@ stdenv.mkDerivation rec {
 
   buildPhase = ":";
 
-  installPhase = stdenv.lib.strings.optionalString (!stdenv.hostPlatform.isWindows) ''
+  installPhase = lib.strings.optionalString (!stdenv.hostPlatform.isWindows) ''
     export SETUPTOOLS_INSTALL_WINDOWS_SPECIFIC_FILES=0
   '' + ''
     # Give folders a known name
@@ -41,7 +41,7 @@ stdenv.mkDerivation rec {
     mv wheel* wheel
     # Set up PYTHONPATH. The above folders need to be on PYTHONPATH
     # $out is where we are installing to and takes precedence
-    export PYTHONPATH="$out/${python.sitePackages}:$(pwd)/pip/src:$(pwd)/setuptools:$(pwd)/setuptools/pkg_resources:$(pwd)/wheel"
+    export PYTHONPATH="$out/${python.sitePackages}:$(pwd)/pip/src:$(pwd)/setuptools:$(pwd)/setuptools/pkg_resources:$(pwd)/wheel:$PYTHONPATH"
 
     echo "Building setuptools wheel..."
     pushd setuptools
@@ -61,7 +61,7 @@ stdenv.mkDerivation rec {
 
   meta = {
     description = "Version of pip used for bootstrapping";
-    license = stdenv.lib.unique (pip.meta.license ++ setuptools.meta.license ++ wheel.meta.license);
+    license = lib.unique (pip.meta.license ++ setuptools.meta.license ++ wheel.meta.license);
     homepage = pip.meta.homepage;
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/boto3/default.nix b/nixpkgs/pkgs/development/python-modules/boto3/default.nix
index 597f512b51d0..92972470f1c0 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.16.47"; # N.B: if you change this, change botocore too
+  version = "1.16.57"; # N.B: if you change this, change botocore too
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-BXlrpsZfeSFOphvsrlEm1ckk7tihGHS8VTbWEd6rvkc=";
+    sha256 = "sha256-SkmcwvU91VeojG22pVJ0iiq9g//tpwzrcdyNs5oCcxQ=";
   };
 
   propagatedBuildInputs = [ botocore jmespath s3transfer ] ++ lib.optionals (!isPy3k) [ futures ];
diff --git a/nixpkgs/pkgs/development/python-modules/botocore/default.nix b/nixpkgs/pkgs/development/python-modules/botocore/default.nix
index 5f2d15e97a8a..a17e6c728cf7 100644
--- a/nixpkgs/pkgs/development/python-modules/botocore/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/botocore/default.nix
@@ -12,11 +12,11 @@
 
 buildPythonPackage rec {
   pname = "botocore";
-  version = "1.19.47"; # N.B: if you change this, change boto3 and awscli to a matching version
+  version = "1.19.57"; # N.B: if you change this, change boto3 and awscli to a matching version
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-FVhKhtbLH5TqeF6NPJj67/jd0BBTVuHBBhGNmsEvqJE=";
+    sha256 = "sha256-x1bWX/qYnFwOkheBdeQav3sYrRmy/i6C4ZLwheJk4Do=";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/bottle/default.nix b/nixpkgs/pkgs/development/python-modules/bottle/default.nix
index 52d97582ef31..213d69dd9890 100644
--- a/nixpkgs/pkgs/development/python-modules/bottle/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/bottle/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi, setuptools }:
+{ lib, stdenv, buildPythonPackage, fetchPypi, setuptools }:
 
 buildPythonPackage rec {
   pname = "bottle";
@@ -11,7 +11,7 @@ buildPythonPackage rec {
 
   propagatedBuildInputs = [ setuptools ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "http://bottlepy.org";
     description = "A fast and simple micro-framework for small web-applications";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/box2d/default.nix b/nixpkgs/pkgs/development/python-modules/box2d/default.nix
index 1b372f90a90f..92ac90ab6d4d 100644
--- a/nixpkgs/pkgs/development/python-modules/box2d/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/box2d/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , swig2
@@ -24,7 +24,7 @@ buildPythonPackage rec {
   # tests not included with pypi release
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://github.com/pybox2d/pybox2d";
     description = ''
       A 2D game physics library for Python under
diff --git a/nixpkgs/pkgs/development/python-modules/bpython/default.nix b/nixpkgs/pkgs/development/python-modules/bpython/default.nix
index 7dfe8053ca24..108d8ec0c66b 100644
--- a/nixpkgs/pkgs/development/python-modules/bpython/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/bpython/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , curtsies
@@ -36,7 +36,7 @@ buildPythonPackage rec {
   # tests fail: https://github.com/bpython/bpython/issues/712
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "A fancy curses interface to the Python interactive interpreter";
     homepage = "https://bpython-interpreter.org/";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/bravado-core/default.nix b/nixpkgs/pkgs/development/python-modules/bravado-core/default.nix
index 55a12009a15c..8c65cca07b2e 100644
--- a/nixpkgs/pkgs/development/python-modules/bravado-core/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/bravado-core/default.nix
@@ -21,7 +21,7 @@ buildPythonPackage rec {
     pytest-benchmark
   ];
 
-  checkPhase = ''pytest --benchmark-skip'';
+  checkPhase = "pytest --benchmark-skip";
 
   propagatedBuildInputs = [
     python-dateutil
diff --git a/nixpkgs/pkgs/development/python-modules/breathe/default.nix b/nixpkgs/pkgs/development/python-modules/breathe/default.nix
index e283c9ee6bed..29de26ac495e 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.25.1";
+  version = "4.26.1";
   pname = "breathe";
   disabled = isPy27;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "bf81658ed31f8f586247d203923479fcde6c3797d376c804bdafa7e56ffd43b5";
+    sha256 = "f59ecadebbb76e3b4710e8c9d2f8f98d51e54701930a38ddf732930653dcf6b5";
   };
 
   propagatedBuildInputs = [ docutils six sphinx ];
diff --git a/nixpkgs/pkgs/development/python-modules/browser-cookie3/default.nix b/nixpkgs/pkgs/development/python-modules/browser-cookie3/default.nix
index ad8fe1c8a077..7b579a84ba18 100644
--- a/nixpkgs/pkgs/development/python-modules/browser-cookie3/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/browser-cookie3/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "browser-cookie3";
-  version = "0.11.4";
+  version = "0.12.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "3d140c6b651dbd8b8555aca6472557fcfda4dd93afc26ea3a200be922a843e2c";
+    sha256 = "5f26422091ad0e97375d565f8fbacfaf314d0722db35c921635eab23686e4fc4";
   };
 
   disabled = !isPy3k;
diff --git a/nixpkgs/pkgs/development/python-modules/bsblan/default.nix b/nixpkgs/pkgs/development/python-modules/bsblan/default.nix
new file mode 100644
index 000000000000..f670bebc8ed3
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/bsblan/default.nix
@@ -0,0 +1,53 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, pytestCheckHook
+, aresponses
+, coverage
+, mypy
+, pytest-asyncio
+, pytest-cov
+, pytest-mock
+, aiohttp
+, attrs
+, cattrs
+, yarl
+}:
+
+buildPythonPackage rec {
+  pname = "bsblan";
+  version = "0.4.1";
+
+  src = fetchFromGitHub {
+    owner = "liudger";
+    repo = "python-bsblan";
+    rev = "v.${version}";
+    sha256 = "0vyg9vsrs34jahlav83qp2djv81p3ks31qz4qh46zdij2nx7l1fv";
+  };
+
+  propagatedBuildInputs = [
+    aiohttp
+    attrs
+    cattrs
+    yarl
+  ];
+
+  checkInputs = [
+    aresponses
+    coverage
+    mypy
+    pytest-asyncio
+    pytest-cov
+    pytest-mock
+    pytestCheckHook
+  ];
+
+  pythonImportsCheck = [ "bsblan" ];
+
+  meta = with lib; {
+    description = "Python client for BSB-Lan";
+    homepage = "https://github.com/liudger/python-bsblan";
+    license = with licenses; [ mit ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/bsddb3/default.nix b/nixpkgs/pkgs/development/python-modules/bsddb3/default.nix
index 0989b61b6cfa..9877a03a087e 100644
--- a/nixpkgs/pkgs/development/python-modules/bsddb3/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/bsddb3/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , pkgs
@@ -28,7 +28,7 @@ buildPythonPackage rec {
     export BERKELEYDB_DIR=${pkgs.db.dev};
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Python bindings for Oracle Berkeley DB";
     homepage = "https://www.jcea.es/programacion/pybsddb.htm";
     license = with licenses; [ agpl3 ]; # License changed from bsd3 to agpl3 since 6.x
diff --git a/nixpkgs/pkgs/development/python-modules/bsdiff4/default.nix b/nixpkgs/pkgs/development/python-modules/bsdiff4/default.nix
index aabcd4de9343..f70f71c1a699 100644
--- a/nixpkgs/pkgs/development/python-modules/bsdiff4/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/bsdiff4/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , aflplusplus
@@ -18,7 +18,7 @@ buildPythonPackage rec {
     python -c 'import bsdiff4; bsdiff4.test()'
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "binary diff and patch using the BSDIFF4-format";
     homepage = "https://github.com/ilanschnell/bsdiff4";
     license = licenses.bsdProtection;
diff --git a/nixpkgs/pkgs/development/python-modules/bt-proximity/default.nix b/nixpkgs/pkgs/development/python-modules/bt-proximity/default.nix
index 17f384062482..209565fa21b7 100644
--- a/nixpkgs/pkgs/development/python-modules/bt-proximity/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/bt-proximity/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchFromGitHub
+{ lib, stdenv, buildPythonPackage, fetchFromGitHub
 , pybluez }:
 
 buildPythonPackage {
@@ -18,7 +18,7 @@ buildPythonPackage {
   # there are no tests
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Bluetooth Proximity Detection using Python";
     homepage = "https://github.com/FrederikBolding/bluetooth-proximity";
     maintainers = with maintainers; [ peterhoeg ];
diff --git a/nixpkgs/pkgs/development/python-modules/btchip/default.nix b/nixpkgs/pkgs/development/python-modules/btchip/default.nix
index c84ee0f0be7f..ebb14a77b564 100644
--- a/nixpkgs/pkgs/development/python-modules/btchip/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/btchip/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi, hidapi, pyscard, ecdsa }:
+{ lib, stdenv, buildPythonPackage, fetchPypi, hidapi, pyscard, ecdsa }:
 
 buildPythonPackage rec {
   pname = "btchip-python";
@@ -14,7 +14,7 @@ buildPythonPackage rec {
   # tests requires hardware
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Python communication library for Ledger Hardware Wallet products";
     homepage = "https://github.com/LedgerHQ/btchip-python";
     license = licenses.asl20;
diff --git a/nixpkgs/pkgs/development/python-modules/btrees/default.nix b/nixpkgs/pkgs/development/python-modules/btrees/default.nix
index 08f2c1eeb2ff..471ba54215de 100644
--- a/nixpkgs/pkgs/development/python-modules/btrees/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/btrees/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , fetchPypi
 , buildPythonPackage
 , persistent
@@ -26,7 +26,7 @@ buildPythonPackage rec {
     sha256 = "7ce4a5eb5c135bcb5c06b5bd1ca6fd7fd39d8631306182307ed8bc30d3033846";
   };
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Scalable persistent components";
     homepage = "http://packages.python.org/BTrees";
     license = licenses.zpl21;
diff --git a/nixpkgs/pkgs/development/python-modules/btrfs/default.nix b/nixpkgs/pkgs/development/python-modules/btrfs/default.nix
index 225b26b4d650..8ea93fe005e7 100644
--- a/nixpkgs/pkgs/development/python-modules/btrfs/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/btrfs/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 }:
@@ -12,7 +12,7 @@ buildPythonPackage rec {
     sha256 = "1w92sj47wy53ygz725xr613k32pk5khi0g9lrpp6img871241hrx";
   };
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Inspect btrfs filesystems";
     homepage = "https://github.com/knorrie/python-btrfs";
     license = licenses.lgpl3Plus;
diff --git a/nixpkgs/pkgs/development/python-modules/bugsnag/default.nix b/nixpkgs/pkgs/development/python-modules/bugsnag/default.nix
index 603e6f42e450..5e3b0b4e89f7 100644
--- a/nixpkgs/pkgs/development/python-modules/bugsnag/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/bugsnag/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , pythonOlder
@@ -21,7 +21,7 @@ buildPythonPackage rec {
   # no tests
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Automatic error monitoring for django, flask, etc.";
     homepage = "https://www.bugsnag.com";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/bugwarrior/default.nix b/nixpkgs/pkgs/development/python-modules/bugwarrior/default.nix
index 25de097f1a96..3d27384efe18 100644
--- a/nixpkgs/pkgs/development/python-modules/bugwarrior/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/bugwarrior/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi, pythonOlder, setuptools
+{ lib, stdenv, buildPythonPackage, fetchPypi, pythonOlder, setuptools
 , twiggy, requests, offtrac, bugzilla, taskw, dateutil, pytz, keyring, six
 , jinja2, pycurl, dogpile_cache, lockfile, click, pyxdg, future, jira }:
 
@@ -21,7 +21,7 @@ buildPythonPackage rec {
   # for the moment oauth2client <4.0.0 and megaplan>=1.4 are missing for running the test suite.
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://github.com/ralphbean/bugwarrior";
     description = "Sync github, bitbucket, bugzilla, and trac issues with taskwarrior";
     license = licenses.gpl3Plus;
diff --git a/nixpkgs/pkgs/development/python-modules/bugz/default.nix b/nixpkgs/pkgs/development/python-modules/bugz/default.nix
index abfde52ef5f7..5324a43e1b0c 100644
--- a/nixpkgs/pkgs/development/python-modules/bugz/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/bugz/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchFromGitHub
 }:
@@ -16,7 +16,7 @@ buildPythonPackage {
 
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://github.com/williamh/pybugz";
     description = "Command line interface for Bugzilla";
     license = licenses.gpl2;
diff --git a/nixpkgs/pkgs/development/python-modules/bugzilla/default.nix b/nixpkgs/pkgs/development/python-modules/bugzilla/default.nix
index f40488511093..fc122ecd233c 100644
--- a/nixpkgs/pkgs/development/python-modules/bugzilla/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/bugzilla/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi
+{ lib, stdenv, buildPythonPackage, fetchPypi
 , pep8, coverage, logilab_common, requests }:
 
 buildPythonPackage rec {
@@ -19,7 +19,7 @@ buildPythonPackage rec {
     export HOME=$(pwd)/check-phase
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://github.com/python-bugzilla/python-bugzilla";
     description = "Bugzilla XMLRPC access module";
     license = licenses.gpl2;
diff --git a/nixpkgs/pkgs/development/python-modules/build/default.nix b/nixpkgs/pkgs/development/python-modules/build/default.nix
index 97a7f9a201bf..46c3bea0b8c5 100644
--- a/nixpkgs/pkgs/development/python-modules/build/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/build/default.nix
@@ -13,13 +13,13 @@
 
 buildPythonPackage rec {
   pname = "build";
-  version = "0.0.3.1";
+  version = "0.1.0";
 
   format = "pyproject";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "757b5542168326b6f1898a1ce1131bb2cf306ee4c7e54e39c815c5be217ff87d";
+    sha256 = "1d6m21lijwm04g50nwgsgj7x3vhblzw7jv05ah8psqgzk20bbch8";
   };
 
   nativeBuildInputs = [
@@ -39,8 +39,14 @@ buildPythonPackage rec {
   # No tests in archive
   doCheck = false;
 
-  meta = {
-    description = "A simple, correct PEP517 package builder";
-    license = lib.licenses.mit;
+  meta = with lib; {
+    description = "Simple, correct PEP517 package builder";
+    longDescription = ''
+      build will invoke the PEP 517 hooks to build a distribution package. It
+      is a simple build tool and does not perform any dependency management.
+    '';
+    homepage = "https://github.com/pypa/build";
+    maintainers = with maintainers; [ fab ];
+    license = licenses.mit;
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/buildout-nix/default.nix b/nixpkgs/pkgs/development/python-modules/buildout-nix/default.nix
index cf8b13823015..7f7afd67e7e0 100644
--- a/nixpkgs/pkgs/development/python-modules/buildout-nix/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/buildout-nix/default.nix
@@ -1,4 +1,4 @@
-{ fetchPypi, stdenv, buildPythonPackage }:
+{ lib, buildPythonPackage, fetchPypi }:
 
 buildPythonPackage rec {
   pname = "zc.buildout";
@@ -13,10 +13,10 @@ buildPythonPackage rec {
 
   postInstall = "mv $out/bin/buildout{,-nix}";
 
-  meta = {
+  meta = with lib; {
     homepage = "http://www.buildout.org";
     description = "A software build and configuration system";
-    license = stdenv.lib.licenses.zpl21;
-    maintainers = [ stdenv.lib.maintainers.goibhniu ];
+    license = licenses.zpl21;
+    maintainers = [ maintainers.goibhniu ];
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/buildout/default.nix b/nixpkgs/pkgs/development/python-modules/buildout/default.nix
index 20731e76c814..0751b284a786 100644
--- a/nixpkgs/pkgs/development/python-modules/buildout/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/buildout/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi }:
+{ lib, stdenv, buildPythonPackage, fetchPypi }:
 
 buildPythonPackage rec {
   pname = "zc.buildout";
@@ -9,7 +9,7 @@ buildPythonPackage rec {
     sha256 = "1dyc5g3yv7wm3hf3fcsh6y1wivzjj1bspafr5qqb653z9a31lsfn";
   };
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "http://www.buildout.org";
     description = "A software build and configuration system";
     license = licenses.zpl21;
diff --git a/nixpkgs/pkgs/development/python-modules/bumps/default.nix b/nixpkgs/pkgs/development/python-modules/bumps/default.nix
index e2938e0f32e2..05f082c747bd 100644
--- a/nixpkgs/pkgs/development/python-modules/bumps/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/bumps/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi, six}:
+{ lib, stdenv, buildPythonPackage, fetchPypi, six}:
 
 buildPythonPackage rec {
   pname = "bumps";
@@ -15,7 +15,7 @@ buildPythonPackage rec {
     sha256 = "9f92c05effd8175763799d19ca55592e89b053318f611148a6725159aea41d67";
   };
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://www.reflectometry.org/danse/software.html";
     description = "Data fitting with bayesian uncertainty analysis";
     maintainers = with maintainers; [ rprospero ];
diff --git a/nixpkgs/pkgs/development/python-modules/bunch/default.nix b/nixpkgs/pkgs/development/python-modules/bunch/default.nix
index 42918f023398..ce77085e4f7f 100644
--- a/nixpkgs/pkgs/development/python-modules/bunch/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/bunch/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi }:
+{ lib, stdenv, buildPythonPackage, fetchPypi }:
 
 buildPythonPackage rec {
   pname = "bunch";
@@ -11,7 +11,7 @@ buildPythonPackage rec {
 
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     maintainers = with maintainers; [ ];
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/bwapy/default.nix b/nixpkgs/pkgs/development/python-modules/bwapy/default.nix
index 31884074defd..c736eb577d44 100644
--- a/nixpkgs/pkgs/development/python-modules/bwapy/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/bwapy/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , pythonOlder
 , fetchPypi
@@ -33,7 +33,7 @@ buildPythonPackage rec {
   doCheck = false;
   pythonImportsCheck = [ "bwapy" ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://github.com/ACEnglish/acebinf";
     description = "Python bindings to bwa mem aligner";
     license = licenses.mpl20;
diff --git a/nixpkgs/pkgs/development/python-modules/cachecontrol/default.nix b/nixpkgs/pkgs/development/python-modules/cachecontrol/default.nix
index e5a7584234ca..53b13ddb5685 100644
--- a/nixpkgs/pkgs/development/python-modules/cachecontrol/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/cachecontrol/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , requests
@@ -25,7 +25,7 @@ buildPythonPackage rec {
     pytest tests
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://github.com/ionrock/cachecontrol";
     description = "Httplib2 caching for requests";
     license = licenses.asl20;
diff --git a/nixpkgs/pkgs/development/python-modules/cachelib/default.nix b/nixpkgs/pkgs/development/python-modules/cachelib/default.nix
index e73bbaa28a69..503b546116ef 100644
--- a/nixpkgs/pkgs/development/python-modules/cachelib/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/cachelib/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi }:
+{ lib, stdenv, buildPythonPackage, fetchPypi }:
 
 buildPythonPackage rec {
   pname = "cachelib";
@@ -9,7 +9,7 @@ buildPythonPackage rec {
     sha256 = "47e95a67d68c729cbad63285a790a06f0e0d27d71624c6e44c1ec3456bb4476f";
   };
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://github.com/pallets/cachelib";
     description = "Collection of cache libraries in the same API interface";
     license = licenses.bsd3;
diff --git a/nixpkgs/pkgs/development/python-modules/cachetools/default.nix b/nixpkgs/pkgs/development/python-modules/cachetools/default.nix
index 6cc6c45137f5..6fd3f637875d 100644
--- a/nixpkgs/pkgs/development/python-modules/cachetools/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/cachetools/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi, isPy27 }:
+{ lib, stdenv, buildPythonPackage, fetchPypi, isPy27 }:
 
 buildPythonPackage rec {
   pname = "cachetools";
@@ -9,7 +9,7 @@ buildPythonPackage rec {
     sha256 = "bbaa39c3dede00175df2dc2b03d0cf18dd2d32a7de7beb68072d13043c9edb20";
   };
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Extensible memoizing collections and decorators";
     homepage = "https://github.com/tkem/cachetools";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/cadquery/default.nix b/nixpkgs/pkgs/development/python-modules/cadquery/default.nix
index e1566baff6b6..72334390bc3e 100644
--- a/nixpkgs/pkgs/development/python-modules/cadquery/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/cadquery/default.nix
@@ -48,7 +48,7 @@ let
       libGL
       libGLU
       libX11
-    ] ++ stdenv.lib.optionals stdenv.isDarwin [ Cocoa ];
+    ] ++ lib.optionals stdenv.isDarwin [ Cocoa ];
 
     propagatedBuildInputs = [
       six
diff --git a/nixpkgs/pkgs/development/python-modules/cairosvg/1_x.nix b/nixpkgs/pkgs/development/python-modules/cairosvg/1_x.nix
index b98fbbf91e86..bb5629cf4e51 100644
--- a/nixpkgs/pkgs/development/python-modules/cairosvg/1_x.nix
+++ b/nixpkgs/pkgs/development/python-modules/cairosvg/1_x.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchFromGitHub, cairocffi, nose, fontconfig
+{ lib, stdenv, buildPythonPackage, fetchFromGitHub, cairocffi, nose, fontconfig
 , cssselect2, defusedxml, pillow, tinycss2 }:
 
 # CairoSVG 2.x dropped support for Python 2 so offer CairoSVG 1.x as an
@@ -28,7 +28,7 @@ buildPythonPackage rec {
   #   FONTCONFIG_FILE=${fontconfig.out}/etc/fonts/fonts.conf nosetests .
   # '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://cairosvg.org";
     license = licenses.lgpl3;
     description = "SVG converter based on Cairo";
diff --git a/nixpkgs/pkgs/development/python-modules/cairosvg/default.nix b/nixpkgs/pkgs/development/python-modules/cairosvg/default.nix
index da3e84b725dd..9d1c54651c20 100644
--- a/nixpkgs/pkgs/development/python-modules/cairosvg/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/cairosvg/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi, isPy3k, fetchpatch
+{ lib, stdenv, buildPythonPackage, fetchPypi, isPy3k, fetchpatch
 , cairocffi, cssselect2, defusedxml, pillow, tinycss2
 , pytest, pytestrunner, pytestcov, pytest-flake8, pytest-isort }:
 
@@ -17,7 +17,7 @@ buildPythonPackage rec {
 
   checkInputs = [ pytest pytestrunner pytestcov pytest-flake8 pytest-isort ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://cairosvg.org";
     license = licenses.lgpl3;
     description = "SVG converter based on Cairo";
diff --git a/nixpkgs/pkgs/development/python-modules/canonicaljson/default.nix b/nixpkgs/pkgs/development/python-modules/canonicaljson/default.nix
index 31daad18bdc8..96af6f4bf78f 100644
--- a/nixpkgs/pkgs/development/python-modules/canonicaljson/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/canonicaljson/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi
+{ lib, stdenv, buildPythonPackage, fetchPypi
 , frozendict, simplejson, six, isPy27
 }:
 
@@ -16,7 +16,7 @@ buildPythonPackage rec {
     frozendict simplejson six
   ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://github.com/matrix-org/python-canonicaljson";
     description = "Encodes objects and arrays as RFC 7159 JSON.";
     license = licenses.asl20;
diff --git a/nixpkgs/pkgs/development/python-modules/capstone/default.nix b/nixpkgs/pkgs/development/python-modules/capstone/default.nix
index 7fc0b16522ed..d7df0bee5ca9 100644
--- a/nixpkgs/pkgs/development/python-modules/capstone/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/capstone/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , fetchpatch
@@ -8,7 +8,7 @@
 
 buildPythonPackage rec {
   pname = "capstone";
-  version = stdenv.lib.getVersion capstone;
+  version = lib.getVersion capstone;
 
   src = capstone.src;
   sourceRoot = "${capstone.name}/bindings/python";
@@ -26,7 +26,7 @@ buildPythonPackage rec {
     make check
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "http://www.capstone-engine.org/";
     license = licenses.bsdOriginal;
     description = "Python bindings for Capstone disassembly engine";
diff --git a/nixpkgs/pkgs/development/python-modules/carbon/default.nix b/nixpkgs/pkgs/development/python-modules/carbon/default.nix
index 71a7174fb23f..e0a31829b05f 100644
--- a/nixpkgs/pkgs/development/python-modules/carbon/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/carbon/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi, isPy3k
+{ lib, stdenv, buildPythonPackage, fetchPypi, isPy3k
 , twisted, whisper, txamqp, cachetools, urllib3
 }:
 
@@ -17,7 +17,7 @@ buildPythonPackage rec {
 
   propagatedBuildInputs = [ twisted whisper txamqp cachetools urllib3 ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "http://graphiteapp.org/";
     description = "Backend data caching and persistence daemon for Graphite";
     maintainers = with maintainers; [ offline basvandijk ];
diff --git a/nixpkgs/pkgs/development/python-modules/carrot/default.nix b/nixpkgs/pkgs/development/python-modules/carrot/default.nix
index 9a5ffe578565..c2262decd314 100644
--- a/nixpkgs/pkgs/development/python-modules/carrot/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/carrot/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi
+{ lib, stdenv, buildPythonPackage, fetchPypi
 , nose, amqplib, anyjson }:
 
 buildPythonPackage rec {
@@ -15,7 +15,7 @@ buildPythonPackage rec {
 
   doCheck = false; # depends on the network
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://pypi.python.org/pypi/carrot";
     description = "AMQP Messaging Framework for Python";
   };
diff --git a/nixpkgs/pkgs/development/python-modules/casbin/default.nix b/nixpkgs/pkgs/development/python-modules/casbin/default.nix
index 6633657d1863..d1b795a9ef43 100644
--- a/nixpkgs/pkgs/development/python-modules/casbin/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/casbin/default.nix
@@ -8,7 +8,7 @@
 
 buildPythonPackage rec {
   pname = "casbin";
-  version = "0.15.0";
+  version = "0.16.0";
 
   disabled = isPy27;
 
@@ -16,7 +16,7 @@ buildPythonPackage rec {
     owner = pname;
     repo = "pycasbin";
     rev = "v${version}";
-    sha256 = "0w34xs9qpf1x4rq2ri4fhx3yi8h4inzavv9hjsx8mlkzid7gdx1b";
+    sha256 = "1983p8pkbdj6yaclkdng7fn0pmlbz1yc75a4a847ppw47075ryph";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/case/default.nix b/nixpkgs/pkgs/development/python-modules/case/default.nix
index 771a349be1f7..5d1a7696516a 100644
--- a/nixpkgs/pkgs/development/python-modules/case/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/case/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi
+{ lib, stdenv, buildPythonPackage, fetchPypi
 , six, nose, unittest2, mock }:
 
 buildPythonPackage rec {
@@ -12,7 +12,7 @@ buildPythonPackage rec {
 
   propagatedBuildInputs = [ six nose unittest2 mock ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://github.com/celery/case";
     description = "unittests utilities";
     license = licenses.bsd3;
diff --git a/nixpkgs/pkgs/development/python-modules/casttube/default.nix b/nixpkgs/pkgs/development/python-modules/casttube/default.nix
index ff8e5614ceb6..85b1147c13a5 100644
--- a/nixpkgs/pkgs/development/python-modules/casttube/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/casttube/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi, requests }:
+{ lib, stdenv, buildPythonPackage, fetchPypi, requests }:
 
 buildPythonPackage rec {
   pname = "casttube";
@@ -14,7 +14,7 @@ buildPythonPackage rec {
   # no tests
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Interact with the Youtube Chromecast api";
     homepage = "https://github.com/ur1katz/casttube";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/catalogue/default.nix b/nixpkgs/pkgs/development/python-modules/catalogue/default.nix
index 1624cbcf36ce..c4cd89cab68a 100644
--- a/nixpkgs/pkgs/development/python-modules/catalogue/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/catalogue/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , pythonOlder
@@ -21,7 +21,7 @@ buildPythonPackage rec {
 
   checkInputs = [ pytestCheckHook ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Tiny library for adding function or object registries";
     homepage = "https://github.com/explosion/catalogue";
     changelog = "https://github.com/explosion/catalogue/releases/tag/v${version}";
diff --git a/nixpkgs/pkgs/development/python-modules/catboost/default.nix b/nixpkgs/pkgs/development/python-modules/catboost/default.nix
new file mode 100644
index 000000000000..8c5184240f62
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/catboost/default.nix
@@ -0,0 +1,56 @@
+{ buildPythonPackage, fetchFromGitHub, fetchpatch, lib, pythonOlder
+, clang_7, python2
+, graphviz, matplotlib, numpy, pandas, plotly, scipy, six
+, withCuda ? false, cudatoolkit }:
+
+buildPythonPackage rec {
+  pname = "catboost";
+  version = "0.24.4";
+
+  disabled = pythonOlder "3.4";
+
+  src = fetchFromGitHub {
+    owner = "catboost";
+    repo = "catboost";
+    rev = "v${version}";
+    sha256 = "sha256-pzmwEiKziB4ldnKgeCsP2HdnisX8sOkLssAzNfcSEx8=";
+  };
+
+  nativeBuildInputs = [ clang_7 python2 ];
+
+  propagatedBuildInputs = [ graphviz matplotlib numpy pandas scipy plotly six ]
+    ++ lib.optional withCuda [ cudatoolkit ];
+
+  patches = [
+    ./nix-support.patch
+    (fetchpatch {
+      name = "format.patch";
+      url = "https://github.com/catboost/catboost/pull/1528/commits/a692ba42e5c0f62e5da82b2f6fccfa77deb3419c.patch";
+      sha256 = "sha256-fNGucHxsSDFRLk3hFH7rm+zzTdDpY9/QjRs8K+AzVvo=";
+    })
+  ];
+
+  preBuild = ''
+    cd catboost/python-package
+    '';
+  setupPyBuildFlags = [ "--with-ymake=no" ];
+  CUDA_ROOT = lib.optional withCuda cudatoolkit;
+  enableParallelBuilding = true;
+
+  # Tests use custom "ya" tool, not yet supported.
+  dontUseSetuptoolsCheck = true;
+  pythonImportsCheck = [ "catboost" ];
+
+  meta = with lib; {
+    description = "High-performance library for gradient boosting on decision trees.";
+    longDescription = ''
+      A fast, scalable, high performance Gradient Boosting on Decision Trees
+      library, used for ranking, classification, regression and other machine
+      learning tasks for Python, R, Java, C++. Supports computation on CPU and GPU.
+    '';
+    license = licenses.asl20;
+    platforms = [ "x86_64-linux" ];
+    homepage = "https://catboost.ai";
+    maintainers = with maintainers; [ PlushBeaver ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/catboost/nix-support.patch b/nixpkgs/pkgs/development/python-modules/catboost/nix-support.patch
new file mode 100644
index 000000000000..feaf97d57070
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/catboost/nix-support.patch
@@ -0,0 +1,181 @@
+diff --git a/catboost/python-package/setup.py b/catboost/python-package/setup.py
+index 17f1d8ff14..07da618cd1 100644
+--- a/catboost/python-package/setup.py
++++ b/catboost/python-package/setup.py
+@@ -80,7 +80,7 @@ class Helper(object):
+         self.with_cuda = os.environ.get('CUDA_PATH') or os.environ.get('CUDA_ROOT') or None
+         self.os_sdk = 'local'
+         self.with_ymake = True
+-        self.parallel = None
++        self.parallel = os.environ.get('NIX_BUILD_CORES') or None
+ 
+     def finalize_options(self):
+         if os.path.exists(str(self.with_cuda)):
+@@ -222,11 +222,12 @@ class build_ext(_build_ext):
+ 
+     def build_with_make(self, topsrc_dir, build_dir, catboost_ext, put_dir, verbose, dry_run):
+         logging.info('Buildling {} with gnu make'.format(catboost_ext))
+-        makefile = 'python{}.{}CLANG50-LINUX-X86_64.makefile'.format(python_version()[0], 'CUDA.' if self.with_cuda else '')
++        makefile = 'python{}.{}CLANG7-LINUX-X86_64.makefile'.format(python_version()[0], 'CUDA.' if self.with_cuda else '')
+         make_cmd = [
+             'make', '-f', '../../make/' + makefile,
+-            'CC=clang-5.0',
+-            'CXX=clang++-5.0',
++            'CC=clang',
++            'CXX=clang++',
++            'PYTHON=python2',
+             'BUILD_ROOT=' + build_dir,
+             'SOURCE_ROOT=' + topsrc_dir,
+         ]
+diff --git a/make/python2.CLANG7-LINUX-X86_64.makefile b/make/python2.CLANG7-LINUX-X86_64.makefile
+index e54b7078e8..fb7b208af9 100644
+--- a/make/python2.CLANG7-LINUX-X86_64.makefile
++++ b/make/python2.CLANG7-LINUX-X86_64.makefile
+@@ -4,33 +4,6 @@ BUILD_ROOT = $(shell pwd)
+ SOURCE_ROOT = $(shell pwd)
+ PYTHON = $(shell which python)
+ 
+-ifneq ($(MAKECMDGOALS),help)
+-define _CC_TEST
+-__clang_major__ __clang_minor__
+-endef
+-
+-_CC_VERSION = $(shell echo '$(_CC_TEST)' | $(CC) -E -P -)
+-$(info _CC_VERSION = '$(_CC_VERSION)')
+-
+-ifneq '$(_CC_VERSION)' '7 0'
+-    $(error clang 7.0 is required)
+-endif
+-endif
+-
+-ifneq ($(MAKECMDGOALS),help)
+-define _CXX_TEST
+-__clang_major__ __clang_minor__
+-endef
+-
+-_CXX_VERSION = $(shell echo '$(_CXX_TEST)' | $(CXX) -E -P -)
+-$(info _CXX_VERSION = '$(_CXX_VERSION)')
+-
+-ifneq '$(_CXX_VERSION)' '7 0'
+-    $(error clang 7.0 is required)
+-endif
+-endif
+-
+-
+ all\
+         ::\
+         $(BUILD_ROOT)/catboost/python-package/catboost/_catboost.so\
+diff --git a/make/python2.CUDA.CLANG7-LINUX-X86_64.makefile b/make/python2.CUDA.CLANG7-LINUX-X86_64.makefile
+index 2a22a79b25..522fb54a7c 100644
+--- a/make/python2.CUDA.CLANG7-LINUX-X86_64.makefile
++++ b/make/python2.CUDA.CLANG7-LINUX-X86_64.makefile
+@@ -4,33 +4,6 @@ BUILD_ROOT = $(shell pwd)
+ SOURCE_ROOT = $(shell pwd)
+ PYTHON = $(shell which python)
+ 
+-ifneq ($(MAKECMDGOALS),help)
+-define _CC_TEST
+-__clang_major__ __clang_minor__
+-endef
+-
+-_CC_VERSION = $(shell echo '$(_CC_TEST)' | $(CC) -E -P -)
+-$(info _CC_VERSION = '$(_CC_VERSION)')
+-
+-ifneq '$(_CC_VERSION)' '7 0'
+-    $(error clang 7.0 is required)
+-endif
+-endif
+-
+-ifneq ($(MAKECMDGOALS),help)
+-define _CXX_TEST
+-__clang_major__ __clang_minor__
+-endef
+-
+-_CXX_VERSION = $(shell echo '$(_CXX_TEST)' | $(CXX) -E -P -)
+-$(info _CXX_VERSION = '$(_CXX_VERSION)')
+-
+-ifneq '$(_CXX_VERSION)' '7 0'
+-    $(error clang 7.0 is required)
+-endif
+-endif
+-
+-
+ all\
+         ::\
+         $(BUILD_ROOT)/catboost/python-package/catboost/_catboost.so\
+diff --git a/make/python3.CLANG7-LINUX-X86_64.makefile b/make/python3.CLANG7-LINUX-X86_64.makefile
+index fee6750bcb..dc55908371 100644
+--- a/make/python3.CLANG7-LINUX-X86_64.makefile
++++ b/make/python3.CLANG7-LINUX-X86_64.makefile
+@@ -4,33 +4,6 @@ BUILD_ROOT = $(shell pwd)
+ SOURCE_ROOT = $(shell pwd)
+ PYTHON = $(shell which python)
+ 
+-ifneq ($(MAKECMDGOALS),help)
+-define _CC_TEST
+-__clang_major__ __clang_minor__
+-endef
+-
+-_CC_VERSION = $(shell echo '$(_CC_TEST)' | $(CC) -E -P -)
+-$(info _CC_VERSION = '$(_CC_VERSION)')
+-
+-ifneq '$(_CC_VERSION)' '7 0'
+-    $(error clang 7.0 is required)
+-endif
+-endif
+-
+-ifneq ($(MAKECMDGOALS),help)
+-define _CXX_TEST
+-__clang_major__ __clang_minor__
+-endef
+-
+-_CXX_VERSION = $(shell echo '$(_CXX_TEST)' | $(CXX) -E -P -)
+-$(info _CXX_VERSION = '$(_CXX_VERSION)')
+-
+-ifneq '$(_CXX_VERSION)' '7 0'
+-    $(error clang 7.0 is required)
+-endif
+-endif
+-
+-
+ all\
+         ::\
+         $(BUILD_ROOT)/catboost/python-package/catboost/_catboost.so\
+diff --git a/make/python3.CUDA.CLANG7-LINUX-X86_64.makefile b/make/python3.CUDA.CLANG7-LINUX-X86_64.makefile
+index 5146830476..ff8535b03e 100644
+--- a/make/python3.CUDA.CLANG7-LINUX-X86_64.makefile
++++ b/make/python3.CUDA.CLANG7-LINUX-X86_64.makefile
+@@ -4,33 +4,6 @@ BUILD_ROOT = $(shell pwd)
+ SOURCE_ROOT = $(shell pwd)
+ PYTHON = $(shell which python)
+ 
+-ifneq ($(MAKECMDGOALS),help)
+-define _CC_TEST
+-__clang_major__ __clang_minor__
+-endef
+-
+-_CC_VERSION = $(shell echo '$(_CC_TEST)' | $(CC) -E -P -)
+-$(info _CC_VERSION = '$(_CC_VERSION)')
+-
+-ifneq '$(_CC_VERSION)' '7 0'
+-    $(error clang 7.0 is required)
+-endif
+-endif
+-
+-ifneq ($(MAKECMDGOALS),help)
+-define _CXX_TEST
+-__clang_major__ __clang_minor__
+-endef
+-
+-_CXX_VERSION = $(shell echo '$(_CXX_TEST)' | $(CXX) -E -P -)
+-$(info _CXX_VERSION = '$(_CXX_VERSION)')
+-
+-ifneq '$(_CXX_VERSION)' '7 0'
+-    $(error clang 7.0 is required)
+-endif
+-endif
+-
+-
+ all\
+         ::\
+         $(BUILD_ROOT)/catboost/python-package/catboost/_catboost.so\
diff --git a/nixpkgs/pkgs/development/python-modules/cattrs/default.nix b/nixpkgs/pkgs/development/python-modules/cattrs/default.nix
new file mode 100644
index 000000000000..a48e29b827b7
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/cattrs/default.nix
@@ -0,0 +1,35 @@
+{ lib
+, attrs
+, buildPythonPackage
+, fetchFromGitHub
+, hypothesis
+, pytestCheckHook
+}:
+
+buildPythonPackage rec {
+  pname = "cattrs";
+  version = "1.1.2";
+
+  src = fetchFromGitHub {
+    owner = "Tinche";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "083d5mi6x7qcl26wlvwwn7gsp5chxlxkh4rp3a41w8cfwwr3h6l8";
+  };
+
+  propagatedBuildInputs = [ attrs ];
+
+  checkInputs = [
+    hypothesis
+    pytestCheckHook
+  ];
+
+  pythonImportsCheck = [ "cattr" ];
+
+  meta = with lib; {
+    description = "Python custom class converters for attrs";
+    homepage = "https://github.com/Tinche/cattrs";
+    license = with licenses; [ mit ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/cbor/default.nix b/nixpkgs/pkgs/development/python-modules/cbor/default.nix
index 3ebf5f26b821..f081511265fd 100644
--- a/nixpkgs/pkgs/development/python-modules/cbor/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/cbor/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi }:
+{ lib, stdenv, buildPythonPackage, fetchPypi }:
 
 buildPythonPackage rec {
   pname = "cbor";
@@ -13,7 +13,7 @@ buildPythonPackage rec {
   # https://github.com/brianolson/cbor_py/issues/6
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://bitbucket.org/bodhisnarkva/cbor";
     description = "Concise Binary Object Representation (CBOR) library";
     license = licenses.asl20;
diff --git a/nixpkgs/pkgs/development/python-modules/cbor2/default.nix b/nixpkgs/pkgs/development/python-modules/cbor2/default.nix
index 08503297d1f7..f793ecfae372 100644
--- a/nixpkgs/pkgs/development/python-modules/cbor2/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/cbor2/default.nix
@@ -1,4 +1,10 @@
-{ lib, buildPythonPackage, fetchPypi, pytest, pytestcov, setuptools_scm }:
+{ lib
+, buildPythonPackage
+, fetchPypi
+, pytestCheckHook
+, pytest-cov
+, setuptools_scm
+}:
 
 buildPythonPackage rec {
   pname = "cbor2";
@@ -10,12 +16,16 @@ buildPythonPackage rec {
   };
 
   nativeBuildInputs = [ setuptools_scm ];
-  checkInputs = [ pytest pytestcov ];
 
-  checkPhase = "pytest";
+  checkInputs = [
+    pytest-cov
+    pytestCheckHook
+  ];
+
+  pythonImportsCheck = [ "cbor2" ];
 
   meta = with lib; {
-    description = "Pure Python CBOR (de)serializer with extensive tag support";
+    description = "Python CBOR (de)serializer with extensive tag support";
     homepage = "https://github.com/agronholm/cbor2";
     license = licenses.mit;
     maintainers = with maintainers; [ taneb ];
diff --git a/nixpkgs/pkgs/development/python-modules/cccolutils/default.nix b/nixpkgs/pkgs/development/python-modules/cccolutils/default.nix
index 5f5e396a02e2..96e75405ee3c 100644
--- a/nixpkgs/pkgs/development/python-modules/cccolutils/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/cccolutils/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi, isPy3k, krb5Full, nose, GitPython, mock, git }:
+{ lib, stdenv, buildPythonPackage, fetchPypi, isPy3k, krb5Full, nose, GitPython, mock, git }:
 
 buildPythonPackage rec {
   pname = "CCColUtils";
@@ -14,7 +14,7 @@ buildPythonPackage rec {
 
   doCheck = isPy3k; # needs unpackaged module to run tests on python2
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Python Kerberos 5 Credential Cache Collection Utilities";
     homepage = "https://pagure.io/cccolutils";
     license = licenses.gpl2;
diff --git a/nixpkgs/pkgs/development/python-modules/cddb/default.nix b/nixpkgs/pkgs/development/python-modules/cddb/default.nix
index 5c27b48d62f3..55d659376c61 100644
--- a/nixpkgs/pkgs/development/python-modules/cddb/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/cddb/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , pkgs
 , isPy3k
@@ -9,14 +9,14 @@ buildPythonPackage rec {
   version = "1.4";
   disabled = isPy3k;
 
-  buildInputs = stdenv.lib.optionals stdenv.isDarwin [ pkgs.darwin.apple_sdk.frameworks.IOKit ];
+  buildInputs = lib.optionals stdenv.isDarwin [ pkgs.darwin.apple_sdk.frameworks.IOKit ];
 
   src = pkgs.fetchurl {
     url = "http://cddb-py.sourceforge.net/${pname}-${version}.tar.gz";
     sha256 = "098xhd575ibvdx7i3dny3lwi851yxhjg2hn5jbbgrwj833rg5l5w";
   };
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "http://cddb-py.sourceforge.net/";
     description = "CDDB and FreeDB audio CD track info access";
     license = licenses.gpl2Plus;
diff --git a/nixpkgs/pkgs/development/python-modules/cdecimal/default.nix b/nixpkgs/pkgs/development/python-modules/cdecimal/default.nix
index 3508b392203d..cf8890505904 100644
--- a/nixpkgs/pkgs/development/python-modules/cdecimal/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/cdecimal/default.nix
@@ -1,6 +1,4 @@
-{ stdenv, fetchurl, buildPythonPackage, isPy3k }:
-
-with stdenv.lib;
+{ lib, buildPythonPackage, fetchurl, isPy3k }:
 
 buildPythonPackage rec {
   pname = "cdecimal";
@@ -16,7 +14,7 @@ buildPythonPackage rec {
   # Upstream tests are not included s. a. http://www.bytereef.org/mpdecimal/testing.html
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Fast drop-in replacement for decimal.py";
     homepage    = "http://www.bytereef.org/mpdecimal/";
     license     = licenses.bsd2;
diff --git a/nixpkgs/pkgs/development/python-modules/cement/default.nix b/nixpkgs/pkgs/development/python-modules/cement/default.nix
index 9117908f399a..9133389f0ce9 100644
--- a/nixpkgs/pkgs/development/python-modules/cement/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/cement/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi, isPy3k }:
+{ lib, stdenv, buildPythonPackage, fetchPypi, isPy3k }:
 
 buildPythonPackage rec {
   pname = "cement";
@@ -15,7 +15,7 @@ buildPythonPackage rec {
 
   disabled = !isPy3k;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://builtoncement.com/";
     description = "A CLI Application Framework for Python.";
     maintainers = with maintainers; [ eqyiel ];
diff --git a/nixpkgs/pkgs/development/python-modules/censys/default.nix b/nixpkgs/pkgs/development/python-modules/censys/default.nix
new file mode 100644
index 000000000000..561d9651fed8
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/censys/default.nix
@@ -0,0 +1,50 @@
+{ lib
+, backoff
+, buildPythonPackage
+, fetchFromGitHub
+, pytestCheckHook
+, requests
+, pytestcov
+, requests-mock
+, parameterized
+}:
+
+buildPythonPackage rec {
+  pname = "censys";
+  version = "1.1.0";
+
+  src = fetchFromGitHub {
+    owner = "censys";
+    repo = "censys-python";
+    rev = "v${version}";
+    sha256 = "0vvd13g48i4alnqil98zc09zi5kv6l2s3kdfyg5syjxvq4lfd476";
+  };
+
+  propagatedBuildInputs = [
+    backoff
+    requests
+  ];
+
+  checkInputs = [
+    pytestcov
+    pytestCheckHook
+    requests-mock
+    parameterized
+  ];
+
+  # The tests want to write a configuration file
+  preCheck = ''
+    export HOME=$(mktemp -d)
+    mkdir -p $HOME
+    '';
+  # All other tests require an API key
+  pytestFlagsArray = [ "tests/test_config.py" ];
+  pythonImportsCheck = [ "censys" ];
+
+  meta = with lib; {
+    description = "Python API wrapper for the Censys Search Engine (censys.io)";
+    homepage = "https://github.com/censys/censys-python";
+    license = with licenses; [ asl20 ];
+    maintainers = [ maintainers.fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/cerberus/default.nix b/nixpkgs/pkgs/development/python-modules/cerberus/default.nix
index b0c35204d6e7..08b7527c54c1 100644
--- a/nixpkgs/pkgs/development/python-modules/cerberus/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/cerberus/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi, pytestrunner, pytest }:
+{ lib, stdenv, buildPythonPackage, fetchPypi, pytestrunner, pytest }:
 
 buildPythonPackage rec {
   pname = "Cerberus";
@@ -15,7 +15,7 @@ buildPythonPackage rec {
     pytest -k 'not nested_oneofs'
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "http://python-cerberus.org/";
     description = "Lightweight, extensible schema and data validation tool for Python dictionaries";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/cert-chain-resolver/default.nix b/nixpkgs/pkgs/development/python-modules/cert-chain-resolver/default.nix
new file mode 100644
index 000000000000..eea43d5c7393
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/cert-chain-resolver/default.nix
@@ -0,0 +1,36 @@
+{ lib
+, fetchFromGitHub
+, buildPythonPackage
+, pytestCheckHook
+, pytest-mock
+, cryptography
+}:
+
+buildPythonPackage rec {
+  pname = "cert-chain-resolver";
+  version = "1.0.1";
+
+  src = fetchFromGitHub {
+    owner = "rkoopmans";
+    repo = "python-certificate-chain-resolver";
+    rev = version;
+    sha256 = "1kmig4ksbx1wvgcjn4r9jjg2pn1ag5rq871bjwxkp9kslb3x3d1l";
+  };
+
+  propagatedBuildInputs = [ cryptography ];
+
+  checkInputs = [ pytestCheckHook pytest-mock ];
+
+  # online tests
+  disabledTests = [
+    "test_cert_returns_completed_chain"
+    "test_display_flag_is_properly_formatted"
+  ];
+
+  meta = with lib; {
+    homepage = "https://github.com/rkoopmans/python-certificate-chain-resolver";
+    description = "Resolve / obtain the certificate intermediates of a x509 certificate";
+    license = licenses.mit;
+    maintainers = with maintainers; [ veehaitch ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/certbot/default.nix b/nixpkgs/pkgs/development/python-modules/certbot/default.nix
index d7e74f5eff82..cb842f1455f1 100644
--- a/nixpkgs/pkgs/development/python-modules/certbot/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/certbot/default.nix
@@ -9,13 +9,13 @@
 
 buildPythonPackage rec {
   pname = "certbot";
-  version = "1.10.1";
+  version = "1.11.0";
 
   src = fetchFromGitHub {
     owner = pname;
     repo = pname;
     rev = "v${version}";
-    sha256 = "035cdw2h3f511drc0q1j65j911m1pj6c5ghywavkhib0chim044c";
+    sha256 = "sha256-IGXiIOLP/Uq6HdXAschp1jFYq52ohRK4VLtkjF4Tb44=";
   };
 
   sourceRoot = "source/${pname}";
diff --git a/nixpkgs/pkgs/development/python-modules/certifi/default.nix b/nixpkgs/pkgs/development/python-modules/certifi/default.nix
index e86ad90caeb0..eac32816caca 100644
--- a/nixpkgs/pkgs/development/python-modules/certifi/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/certifi/default.nix
@@ -5,11 +5,11 @@
 
 buildPythonPackage rec {
   pname = "certifi";
-  version = "2020.11.8";
+  version = "2020.12.5";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "f05def092c44fbf25834a51509ef6e631dc19765ab8a57b4e7ab85531f0a9cf4";
+    sha256 = "177mdbw0livdjvp17sz6wsfrc32838m9y59v871gpgv2888raj8s";
   };
 
   pythonImportsCheck = [ "certifi" ];
diff --git a/nixpkgs/pkgs/development/python-modules/certipy/default.nix b/nixpkgs/pkgs/development/python-modules/certipy/default.nix
index 5d34eede3110..049e3ffdb5d9 100644
--- a/nixpkgs/pkgs/development/python-modules/certipy/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/certipy/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , pyopenssl
@@ -17,7 +17,7 @@ buildPythonPackage rec {
 
   doCheck = false; #no tests were included
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://github.com/LLNL/certipy";
     description = "wrapper for pyOpenSSL";
     license = licenses.bsd3;
diff --git a/nixpkgs/pkgs/development/python-modules/cffi/default.nix b/nixpkgs/pkgs/development/python-modules/cffi/default.nix
index 07492240ffe9..3dcd6a996cb9 100644
--- a/nixpkgs/pkgs/development/python-modules/cffi/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/cffi/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, isPyPy, fetchPypi, libffi, pycparser, pytest }:
+{ lib, stdenv, buildPythonPackage, isPyPy, fetchPypi, libffi, pycparser, pytest }:
 
 if isPyPy then null else buildPythonPackage rec {
   pname = "cffi";
@@ -17,7 +17,7 @@ if isPyPy then null else buildPythonPackage rec {
   # On Darwin, the cffi tests want to hit libm a lot, and look for it in a global
   # impure search path. It's obnoxious how much repetition there is, and how difficult
   # it is to get it to search somewhere else (since we do actually have a libm symlink in libSystem)
-  prePatch = stdenv.lib.optionalString stdenv.isDarwin ''
+  prePatch = lib.optionalString stdenv.isDarwin ''
     substituteInPlace testing/cffi0/test_parsing.py \
       --replace 'lib_m = "m"' 'lib_m = "System"' \
       --replace '"libm" in name' '"libSystem" in name'
@@ -29,7 +29,7 @@ if isPyPy then null else buildPythonPackage rec {
   '';
 
   # The tests use -Werror but with python3.6 clang detects some unreachable code.
-  NIX_CFLAGS_COMPILE = stdenv.lib.optionalString stdenv.cc.isClang
+  NIX_CFLAGS_COMPILE = lib.optionalString stdenv.cc.isClang
     "-Wno-unused-command-line-argument -Wno-unreachable-code";
 
   doCheck = !stdenv.hostPlatform.isMusl && !stdenv.isDarwin; # TODO: Investigate
@@ -37,10 +37,10 @@ if isPyPy then null else buildPythonPackage rec {
     py.test -k "not test_char_pointer_conversion"
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     maintainers = with maintainers; [ domenkozar lnl7 ];
     homepage = "https://cffi.readthedocs.org/";
-    license = with licenses; [ mit ];
+    license = licenses.mit;
     description = "Foreign Function Interface for Python calling C code";
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/cfn-lint/default.nix b/nixpkgs/pkgs/development/python-modules/cfn-lint/default.nix
index 0a27f8222c0f..f55042c58d23 100644
--- a/nixpkgs/pkgs/development/python-modules/cfn-lint/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/cfn-lint/default.nix
@@ -59,6 +59,12 @@ buildPythonPackage rec {
   '';
 
   disabledTests = [
+    # These tests depend on the current date, for example because of issues like this.
+    # This makes it possible for them to succeed on hydra and then begin to fail without
+    # any code changes.
+    # https://github.com/aws-cloudformation/cfn-python-lint/issues/1705
+    # See also: https://github.com/NixOS/nixpkgs/issues/108076
+    "TestQuickStartTemplates"
     # requires git directory
     "test_update_docs"
   ];
diff --git a/nixpkgs/pkgs/development/python-modules/cftime/default.nix b/nixpkgs/pkgs/development/python-modules/cftime/default.nix
index 0235c611c610..78dcecfb6a93 100644
--- a/nixpkgs/pkgs/development/python-modules/cftime/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/cftime/default.nix
@@ -10,11 +10,11 @@
 
 buildPythonPackage rec {
   pname = "cftime";
-  version = "1.3.0";
+  version = "1.3.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "8d6a1144f43b9d7a180d7ceb3aa8015b7133c615fbac231bed184a91129f0207";
+    sha256 = "77fd86e69b234d41fa8634d627e9e9ee0501c2a8a95268c2b524d38e0a33f090";
   };
 
   checkInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/cgroup-utils/default.nix b/nixpkgs/pkgs/development/python-modules/cgroup-utils/default.nix
index a94b4439250e..2000a4e0a3bc 100644
--- a/nixpkgs/pkgs/development/python-modules/cgroup-utils/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/cgroup-utils/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchFromGitHub, pep8, nose }:
+{ lib, stdenv, buildPythonPackage, fetchFromGitHub, pep8, nose }:
 
 buildPythonPackage rec {
   version = "0.8";
@@ -19,7 +19,7 @@ buildPythonPackage rec {
     sha256 = "0qnbn8cnq8m14s8s1hcv25xjd55dyb6yy54l5vc7sby5xzzp11fq";
   };
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Utility tools for control groups of Linux";
     maintainers = with maintainers; [ layus ];
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/development/python-modules/chai/default.nix b/nixpkgs/pkgs/development/python-modules/chai/default.nix
index 16166d2db80e..3400b33635a8 100644
--- a/nixpkgs/pkgs/development/python-modules/chai/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/chai/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi }:
+{ lib, stdenv, buildPythonPackage, fetchPypi }:
 
 buildPythonPackage rec {
   pname = "chai";
@@ -9,7 +9,7 @@ buildPythonPackage rec {
     sha256 = "ff8d2b6855f660cd23cd5ec79bd10264d39f24f6235773331b48e7fcd637d6cc";
   };
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Mocking, stubbing and spying framework for python";
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/chainmap/default.nix b/nixpkgs/pkgs/development/python-modules/chainmap/default.nix
index 17a51f17763a..3858fc44f234 100644
--- a/nixpkgs/pkgs/development/python-modules/chainmap/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/chainmap/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi }:
+{ lib, stdenv, buildPythonPackage, fetchPypi }:
 
 buildPythonPackage rec {
   pname = "chainmap";
@@ -12,7 +12,7 @@ buildPythonPackage rec {
   # Requires tox
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Backport/clone of ChainMap";
     homepage = "https://bitbucket.org/jeunice/chainmap";
     license = licenses.psfl;
diff --git a/nixpkgs/pkgs/development/python-modules/chalice/default.nix b/nixpkgs/pkgs/development/python-modules/chalice/default.nix
index 224ff33d5f05..5445157b8530 100644
--- a/nixpkgs/pkgs/development/python-modules/chalice/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/chalice/default.nix
@@ -22,11 +22,11 @@
 
 buildPythonPackage rec {
   pname = "chalice";
-  version = "1.21.7";
+  version = "1.21.9";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "22512bccb9b881b8d5a33bd45c7ad539dee60f2f8685a5ed8afd5000a962b0f8";
+    sha256 = "312f88838c8ea4b4ac79dce0e5b4ba3125130ca66ea99a4694f535501dca95e3";
   };
 
   checkInputs = [ watchdog pytest hypothesis mock ];
diff --git a/nixpkgs/pkgs/development/python-modules/chameleon/default.nix b/nixpkgs/pkgs/development/python-modules/chameleon/default.nix
index 0af3d18824af..a2ffcb9a0236 100644
--- a/nixpkgs/pkgs/development/python-modules/chameleon/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/chameleon/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchFromGitHub
 }:
@@ -17,7 +17,7 @@ buildPythonPackage rec {
 
   pythonImportsCheck = [ "chameleon" ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://chameleon.readthedocs.io/";
     description = "Fast HTML/XML Template Compiler";
     license = licenses.bsd0;
diff --git a/nixpkgs/pkgs/development/python-modules/channels-redis/default.nix b/nixpkgs/pkgs/development/python-modules/channels-redis/default.nix
index a43a8ce7d0a8..3f341f5527ae 100644
--- a/nixpkgs/pkgs/development/python-modules/channels-redis/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/channels-redis/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , aioredis
 , asgiref
 , buildPythonPackage
@@ -37,7 +37,7 @@ buildPythonPackage rec {
 
   pythonImportsCheck = [ "channels_redis" ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://github.com/django/channels_redis/";
     description = "Redis-backed ASGI channel layer implementation";
     license = licenses.bsd3;
diff --git a/nixpkgs/pkgs/development/python-modules/channels/default.nix b/nixpkgs/pkgs/development/python-modules/channels/default.nix
index 20e470d8c703..c2836ef4faa0 100644
--- a/nixpkgs/pkgs/development/python-modules/channels/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/channels/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi,
+{ lib, stdenv, buildPythonPackage, fetchPypi,
   asgiref, django, daphne
 }:
 buildPythonPackage rec {
@@ -15,7 +15,7 @@ buildPythonPackage rec {
 
   propagatedBuildInputs = [ asgiref django daphne ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Brings event-driven capabilities to Django with a channel system";
     license = licenses.bsd3;
     homepage = "https://github.com/django/channels";
diff --git a/nixpkgs/pkgs/development/python-modules/chardet/default.nix b/nixpkgs/pkgs/development/python-modules/chardet/default.nix
index 1a8b1f36e998..bbc41df0cd82 100644
--- a/nixpkgs/pkgs/development/python-modules/chardet/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/chardet/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi, fetchpatch
+{ lib, stdenv, buildPythonPackage, fetchPypi, fetchpatch
 , pytest, pytestrunner, hypothesis }:
 
 buildPythonPackage rec {
@@ -20,7 +20,7 @@ buildPythonPackage rec {
 
   checkInputs = [ pytest pytestrunner hypothesis ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://github.com/chardet/chardet";
     description = "Universal encoding detector";
     license = licenses.lgpl2;
diff --git a/nixpkgs/pkgs/development/python-modules/check-manifest/default.nix b/nixpkgs/pkgs/development/python-modules/check-manifest/default.nix
index 6368ebf4b737..8a2c74882066 100644
--- a/nixpkgs/pkgs/development/python-modules/check-manifest/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/check-manifest/default.nix
@@ -1,12 +1,12 @@
-{ stdenv, buildPythonPackage, fetchPypi, pep517, toml, mock, breezy, git }:
+{ lib, stdenv, buildPythonPackage, fetchPypi, pep517, toml, mock, breezy, git, build }:
 
 buildPythonPackage rec {
   pname = "check-manifest";
-  version = "0.45";
+  version = "0.46";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "636b65a3b685374ad429ff22fe213966765b145f08bc560c8d033b604c7bee4c";
+    sha256 = "5895e42a012989bdc51854a02c82c8d6898112a4ab11f2d7878200520b49d428";
   };
 
   # Test requires filesystem access
@@ -14,11 +14,11 @@ buildPythonPackage rec {
     substituteInPlace tests.py --replace "test_build_sdist" "no_test_build_sdist"
   '';
 
-  propagatedBuildInputs = [ pep517 toml ];
+  propagatedBuildInputs = [ build pep517 toml ];
 
   checkInputs = [ mock breezy git ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://github.com/mgedmin/check-manifest";
     description = "Check MANIFEST.in in a Python source package for completeness";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/cheetah3/default.nix b/nixpkgs/pkgs/development/python-modules/cheetah3/default.nix
index e4fd549445ad..a705bffa810a 100644
--- a/nixpkgs/pkgs/development/python-modules/cheetah3/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/cheetah3/default.nix
@@ -1,4 +1,4 @@
-{ lib, buildPythonPackage, fetchPypi, stdenv }:
+{ lib, buildPythonPackage, fetchPypi }:
 
 buildPythonPackage rec {
   pname = "Cheetah3";
@@ -11,10 +11,10 @@ buildPythonPackage rec {
 
   doCheck = false; # Circular dependency
 
-  meta = {
+  meta = with lib; {
     homepage = "http://www.cheetahtemplate.org/";
     description = "A template engine and code generation tool";
-    license = lib.licenses.mit;
-    maintainers = with stdenv.lib.maintainers; [ pjjw ];
+    license = licenses.mit;
+    maintainers = with maintainers; [ pjjw ];
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/cherrypy/17.nix b/nixpkgs/pkgs/development/python-modules/cherrypy/17.nix
index 5e5541b26e27..2ee8eb3bd0ca 100644
--- a/nixpkgs/pkgs/development/python-modules/cherrypy/17.nix
+++ b/nixpkgs/pkgs/development/python-modules/cherrypy/17.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi
+{ lib, stdenv, buildPythonPackage, fetchPypi
 , setuptools_scm
 , cheroot, contextlib2, portend, routes, six, zc_lockfile
 , backports_unittest-mock, objgraph, pathpy, pytest, pytestcov, backports_functools_lru_cache, requests_toolbelt
@@ -25,10 +25,10 @@ buildPythonPackage rec {
   ];
 
   checkPhase = ''
-    pytest ${stdenv.lib.optionalString stdenv.isDarwin "--ignore=cherrypy/test/test_wsgi_unix_socket.py"}
+    pytest ${lib.optionalString stdenv.isDarwin "--ignore=cherrypy/test/test_wsgi_unix_socket.py"}
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://www.cherrypy.org";
     description = "A pythonic, object-oriented HTTP framework";
     license = licenses.bsd3;
diff --git a/nixpkgs/pkgs/development/python-modules/cherrypy/default.nix b/nixpkgs/pkgs/development/python-modules/cherrypy/default.nix
index f23d06001922..8a915d520e5c 100644
--- a/nixpkgs/pkgs/development/python-modules/cherrypy/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/cherrypy/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi, isPy3k
+{ lib, stdenv, buildPythonPackage, fetchPypi, isPy3k
 , setuptools_scm
 , cheroot, portend, more-itertools, zc_lockfile, routes
 , jaraco_collections
@@ -41,11 +41,13 @@ buildPythonPackage rec {
       -k 'not KeyboardInterrupt and not daemonize and not Autoreload' \
       --deselect=cherrypy/test/test_static.py::StaticTest::test_null_bytes \
       --deselect=cherrypy/test/test_tools.py::ToolTests::testCombinedTools \
-      ${stdenv.lib.optionalString stdenv.isDarwin
+      ${lib.optionalString stdenv.isDarwin
         "--deselect=cherrypy/test/test_bus.py::BusMethodTests::test_block"}
   '';
 
-  meta = with stdenv.lib; {
+  __darwinAllowLocalNetworking = true;
+
+  meta = with lib; {
     homepage = "https://www.cherrypy.org";
     description = "A pythonic, object-oriented HTTP framework";
     license = licenses.bsd3;
diff --git a/nixpkgs/pkgs/development/python-modules/cirq/default.nix b/nixpkgs/pkgs/development/python-modules/cirq/default.nix
index 537ffdbaf958..ebc0eb51df43 100644
--- a/nixpkgs/pkgs/development/python-modules/cirq/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/cirq/default.nix
@@ -5,7 +5,7 @@
 , fetchFromGitHub
 , fetchpatch
 , freezegun
-, google_api_core
+, google-api-core
 , matplotlib
 , networkx
 , numpy
@@ -54,7 +54,7 @@ buildPythonPackage rec {
 
   propagatedBuildInputs = [
     freezegun
-    google_api_core
+    google-api-core
     numpy
     matplotlib
     networkx
diff --git a/nixpkgs/pkgs/development/python-modules/cjson/default.nix b/nixpkgs/pkgs/development/python-modules/cjson/default.nix
index 1ecd43fccdee..ce70a2f459da 100644
--- a/nixpkgs/pkgs/development/python-modules/cjson/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/cjson/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi, isPy3k, isPyPy }:
+{ lib, stdenv, buildPythonPackage, fetchPypi, isPy3k, isPyPy }:
 
 buildPythonPackage rec {
   pname = "python-cjson";
@@ -10,7 +10,7 @@ buildPythonPackage rec {
     sha256 = "3006c2c218297be3448dc793218e0b15d20fe9839775521bfc294fc6aa24972b";
   };
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "A very fast JSON encoder/decoder for Python";
     homepage = "https://ag-projects.com/";
     license = licenses.lgpl2;
diff --git a/nixpkgs/pkgs/development/python-modules/ckcc-protocol/default.nix b/nixpkgs/pkgs/development/python-modules/ckcc-protocol/default.nix
index 7f5311f45b00..dd72f5705e70 100644
--- a/nixpkgs/pkgs/development/python-modules/ckcc-protocol/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/ckcc-protocol/default.nix
@@ -26,7 +26,7 @@ buildPythonPackage rec {
 
   propagatedBuildInputs = [ click ecdsa hidapi pyaes ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Communicate with your Coldcard using Python";
     homepage = "https://github.com/Coldcard/ckcc-protocol";
     license = licenses.gpl3;
diff --git a/nixpkgs/pkgs/development/python-modules/cld2-cffi/default.nix b/nixpkgs/pkgs/development/python-modules/cld2-cffi/default.nix
index 7775fee5ba0d..fc5a6b0e54bc 100644
--- a/nixpkgs/pkgs/development/python-modules/cld2-cffi/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/cld2-cffi/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi, six, cffi, nose }:
+{ lib, stdenv, buildPythonPackage, fetchPypi, six, cffi, nose }:
 
 buildPythonPackage rec {
   pname = "cld2-cffi";
@@ -13,11 +13,11 @@ buildPythonPackage rec {
   checkInputs = [ nose ];
 
   # gcc doesn't approve of this code, so disable -Werror
-  NIX_CFLAGS_COMPILE = "-w" + stdenv.lib.optionalString stdenv.cc.isClang " -Wno-error=c++11-narrowing";
+  NIX_CFLAGS_COMPILE = "-w" + lib.optionalString stdenv.cc.isClang " -Wno-error=c++11-narrowing";
 
   checkPhase = "nosetests -v";
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "CFFI bindings around Google Chromium's embedded compact language detection library (CLD2)";
     homepage = "https://github.com/GregBowyer/cld2-cffi";
     license = licenses.asl20;
diff --git a/nixpkgs/pkgs/development/python-modules/clf/default.nix b/nixpkgs/pkgs/development/python-modules/clf/default.nix
index d3741ef38a93..f4168d689d44 100644
--- a/nixpkgs/pkgs/development/python-modules/clf/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/clf/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi
+{ lib, stdenv, buildPythonPackage, fetchPypi
 , docopt, requests, pygments }:
 
 buildPythonPackage rec {
@@ -20,7 +20,7 @@ buildPythonPackage rec {
   # No local packages or download links found for requests
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://github.com/ncrocfer/clf";
     description = "Command line tool to search snippets on Commandlinefu.com";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/cliapp/default.nix b/nixpkgs/pkgs/development/python-modules/cliapp/default.nix
index 497306c293a4..4b7611c092e2 100644
--- a/nixpkgs/pkgs/development/python-modules/cliapp/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/cliapp/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchgit
 , sphinx
@@ -21,7 +21,7 @@ buildPythonPackage {
   # error: invalid command 'test'
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://liw.fi/cliapp/";
     description = "Python framework for Unix command line programs";
     license = licenses.gpl2;
diff --git a/nixpkgs/pkgs/development/python-modules/click-completion/default.nix b/nixpkgs/pkgs/development/python-modules/click-completion/default.nix
index 3fd41f54f66c..61a154286325 100644
--- a/nixpkgs/pkgs/development/python-modules/click-completion/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/click-completion/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi, isPy3k,
+{ lib, stdenv, buildPythonPackage, fetchPypi, isPy3k,
   click, jinja2, shellingham, six
 }:
 
@@ -14,7 +14,7 @@ buildPythonPackage rec {
 
   propagatedBuildInputs = [ click jinja2 shellingham six ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Add or enhance bash, fish, zsh and powershell completion in Click";
     homepage = "https://github.com/click-contrib/click-completion";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/click-didyoumean/default.nix b/nixpkgs/pkgs/development/python-modules/click-didyoumean/default.nix
index 58d7da4fd391..8d3c3ba3e240 100644
--- a/nixpkgs/pkgs/development/python-modules/click-didyoumean/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/click-didyoumean/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi,
+{ lib, stdenv, buildPythonPackage, fetchPypi,
   click
 }:
 
@@ -13,7 +13,7 @@ buildPythonPackage rec {
 
   propagatedBuildInputs = [ click ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Enable git-like did-you-mean feature in click";
     homepage = "https://github.com/click-contrib/click-didyoumean";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/click-help-colors/default.nix b/nixpkgs/pkgs/development/python-modules/click-help-colors/default.nix
index e66f23d09b21..dbe4e33ca84c 100644
--- a/nixpkgs/pkgs/development/python-modules/click-help-colors/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/click-help-colors/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchPypi, buildPythonPackage
+{ lib, stdenv, fetchPypi, buildPythonPackage
 , click, pytest
 }:
 
@@ -19,7 +19,7 @@ buildPythonPackage rec {
 
   pythonImportsCheck = [ "click_help_colors" ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Colorization of help messages in Click";
     homepage    = "https://github.com/r-m-n/click-help-colors";
     license     = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/click-log/default.nix b/nixpkgs/pkgs/development/python-modules/click-log/default.nix
index dd2b4b158ed5..4aa63dd45378 100644
--- a/nixpkgs/pkgs/development/python-modules/click-log/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/click-log/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi, click }:
+{ lib, stdenv, buildPythonPackage, fetchPypi, click }:
 
 buildPythonPackage rec {
   pname = "click-log";
@@ -11,7 +11,7 @@ buildPythonPackage rec {
 
   propagatedBuildInputs = [ click ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://github.com/click-contrib/click-log/";
     description = "Logging integration for Click";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/click-plugins/default.nix b/nixpkgs/pkgs/development/python-modules/click-plugins/default.nix
index a8c1d7a489ff..c2b25341e17c 100644
--- a/nixpkgs/pkgs/development/python-modules/click-plugins/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/click-plugins/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi,
+{ lib, stdenv, buildPythonPackage, fetchPypi,
   click, pytest
 }:
 
@@ -19,7 +19,7 @@ buildPythonPackage rec {
     pytest
   ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "An extension module for click to enable registering CLI commands";
     homepage = "https://github.com/click-contrib/click-plugins";
     license = licenses.bsd3;
diff --git a/nixpkgs/pkgs/development/python-modules/click-repl/default.nix b/nixpkgs/pkgs/development/python-modules/click-repl/default.nix
index 03c9520014c4..23adb12da658 100644
--- a/nixpkgs/pkgs/development/python-modules/click-repl/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/click-repl/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi, click, prompt_toolkit }:
+{ lib, stdenv, buildPythonPackage, fetchPypi, click, prompt_toolkit }:
 
 buildPythonPackage rec {
   pname = "click-repl";
@@ -11,7 +11,7 @@ buildPythonPackage rec {
 
   propagatedBuildInputs = [ click prompt_toolkit ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://github.com/click-contrib/click-repl";
     description = "Subcommand REPL for click apps";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/clickclick/default.nix b/nixpkgs/pkgs/development/python-modules/clickclick/default.nix
index b2e23dc55bdb..e211b955ac84 100644
--- a/nixpkgs/pkgs/development/python-modules/clickclick/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/clickclick/default.nix
@@ -21,7 +21,7 @@ buildPythonPackage rec {
     "test_choice_default"
   ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Click command line utilities";
     homepage = "https://github.com/hjacobs/python-clickclick/";
     license = licenses.asl20;
diff --git a/nixpkgs/pkgs/development/python-modules/cliff/default.nix b/nixpkgs/pkgs/development/python-modules/cliff/default.nix
index f25170cc6ae7..33a129d287ef 100644
--- a/nixpkgs/pkgs/development/python-modules/cliff/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/cliff/default.nix
@@ -7,21 +7,20 @@
 , six
 , stevedore
 , pyyaml
-, unicodecsv
 , cmd2
-, pytest
-, mock
+, pytestCheckHook
 , testtools
 , fixtures
+, which
 }:
 
 buildPythonPackage rec {
   pname = "cliff";
-  version = "3.5.0";
+  version = "3.6.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "5bfb684b5fcdff0afaaccd1298a376c0e62e644c46b7e9abc034595b41fe1759";
+    sha256 = "a3f4fa67eeafbcfa7cf9fe4b1755d410876528e1d0d115740db00b50a1250272";
   };
 
   propagatedBuildInputs = [
@@ -32,20 +31,21 @@ buildPythonPackage rec {
     stevedore
     pyyaml
     cmd2
-    unicodecsv
   ];
 
-  # remove version constraints
   postPatch = ''
-    sed -i '/cmd2/c\cmd2' requirements.txt
+    sed -i -e '/cmd2/c\cmd2' -e '/PrettyTable/c\PrettyTable' requirements.txt
   '';
 
-  checkInputs = [ fixtures mock pytest testtools ];
+  checkInputs = [ fixtures pytestCheckHook testtools which ];
   # add some tests
-  checkPhase = ''
-    pytest cliff/tests/test_{utils,app,command,help,lister}.py \
-      -k 'not interactive_mode'
-  '';
+  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"
+  ];
 
   meta = with lib; {
     description = "Command Line Interface Formulation Framework";
diff --git a/nixpkgs/pkgs/development/python-modules/clifford/default.nix b/nixpkgs/pkgs/development/python-modules/clifford/default.nix
index 68ac9e45bb4b..85ed160413e7 100644
--- a/nixpkgs/pkgs/development/python-modules/clifford/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/clifford/default.nix
@@ -22,12 +22,15 @@ buildPythonPackage rec {
     inherit pname version;
     sha256 = "ade11b20d0631dfc9c2f18ce0149f1e61e4baf114108b27cfd68e5c1619ecc0c";
   };
-  patches = [ (fetchpatch {
-    # Compatibility with h5py 3.
-    # Will be included in the next releasse after 1.3.1
-    url = "https://github.com/pygae/clifford/pull/388/commits/955d141662c68d3d61aa50a162b39e656684c208.patch";
-    sha256 = "00m8ias58xycn5n78sy9wywf4wck1v0gb8gzmg40inzdiha93jyz";
-  }) ];
+
+  patches = [
+    (fetchpatch {
+      # Compatibility with h5py 3.
+      # Will be included in the next releasse after 1.3.1
+      url = "https://github.com/pygae/clifford/pull/388/commits/955d141662c68d3d61aa50a162b39e656684c208.patch";
+      sha256 = "0pkpwnk0kfdxsbzsxqlqh8kgif17l5has0mg31g3kyp8lncj89b1";
+    })
+  ];
 
   propagatedBuildInputs = [
     future
@@ -53,10 +56,11 @@ buildPythonPackage rec {
     cd clifford/test
   '';
 
-  pytestFlagsArray = [
-    "-m \"not veryslow\""
-    "--ignore=test_algebra_initialisation.py" # fails without JIT
-    "--ignore=test_cga.py"
+  disabledTests = [
+    "veryslow"
+    "test_algebra_initialisation"
+    "test_cga"
+    "test_estimate_rotor_sequential[random_sphere]"
   ];
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/development/python-modules/cligj/default.nix b/nixpkgs/pkgs/development/python-modules/cligj/default.nix
index 91124cd21f4b..f9d953d8536e 100644
--- a/nixpkgs/pkgs/development/python-modules/cligj/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/cligj/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchFromGitHub
+{ lib, stdenv, buildPythonPackage, fetchFromGitHub
 , click, pytest, glibcLocales
 }:
 
@@ -23,7 +23,7 @@ buildPythonPackage rec {
     LC_ALL=en_US.utf-8 pytest tests
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Click params for commmand line interfaces to GeoJSON";
     homepage = "https://github.com/mapbox/cligj";
     license = licenses.bsd3;
diff --git a/nixpkgs/pkgs/development/python-modules/clint/default.nix b/nixpkgs/pkgs/development/python-modules/clint/default.nix
index 329cf4f07ccf..133fc0de55c6 100644
--- a/nixpkgs/pkgs/development/python-modules/clint/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/clint/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , python
@@ -29,7 +29,7 @@ buildPythonPackage rec {
   buildInputs = [ mock nose nose_progressive pkgs.glibcLocales ];
   propagatedBuildInputs = [ pillow blessings args ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://github.com/kennethreitz/clint";
     description = "Python Command Line Interface Tools";
     license = licenses.isc;
diff --git a/nixpkgs/pkgs/development/python-modules/clize/default.nix b/nixpkgs/pkgs/development/python-modules/clize/default.nix
index e2ef3ea5bb1c..c9c3f5c905ce 100644
--- a/nixpkgs/pkgs/development/python-modules/clize/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/clize/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , dateutil
@@ -45,7 +45,7 @@ buildPythonPackage rec {
 
   pythonImportsCheck = [ "clize" ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Command-line argument parsing for Python";
     homepage = "https://github.com/epsy/clize";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/closure-linter/default.nix b/nixpkgs/pkgs/development/python-modules/closure-linter/default.nix
index b814455da3ff..75f5ba0b449e 100644
--- a/nixpkgs/pkgs/development/python-modules/closure-linter/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/closure-linter/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchgit
 , isPy3k
@@ -24,7 +24,7 @@ buildPythonPackage {
 
   propagatedBuildInputs = [ gflags ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Checks JavaScript files against Google's style guide.";
     homepage = "https://developers.google.com/closure/utilities/";
     license = with licenses; [ asl20 ];
diff --git a/nixpkgs/pkgs/development/python-modules/cloudpickle/default.nix b/nixpkgs/pkgs/development/python-modules/cloudpickle/default.nix
index cd21e125ccef..e5b4a63a564e 100644
--- a/nixpkgs/pkgs/development/python-modules/cloudpickle/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/cloudpickle/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi, isPy27, pytest, mock }:
+{ lib, stdenv, buildPythonPackage, fetchPypi, isPy27, pytest, mock }:
 
 buildPythonPackage rec {
   pname = "cloudpickle";
@@ -20,7 +20,7 @@ buildPythonPackage rec {
   # TypeError: cannot serialize '_io.FileIO' object
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Extended pickling support for Python objects";
     homepage = "https://github.com/cloudpipe/cloudpickle";
     license = with licenses; [ bsd3 ];
diff --git a/nixpkgs/pkgs/development/python-modules/cloudscraper/default.nix b/nixpkgs/pkgs/development/python-modules/cloudscraper/default.nix
new file mode 100644
index 000000000000..faa1affcd060
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/cloudscraper/default.nix
@@ -0,0 +1,38 @@
+{ lib
+, buildPythonPackage
+, isPy3k
+, fetchPypi
+, requests
+, requests-toolbelt
+, pyparsing
+}:
+
+buildPythonPackage rec {
+  pname = "cloudscraper";
+  version = "1.2.52";
+  disabled = !isPy3k;
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "07j2nhzimzhcskj2wpxpvpb3dhpci19daw02r2ckkjiq3zifhm6v";
+  };
+
+  propagatedBuildInputs = [
+    requests
+    requests-toolbelt
+    pyparsing
+  ];
+
+  # The tests require several other dependencies, some of which aren't in
+  # nixpkgs yet, and also aren't included in the PyPI bundle.  TODO.
+  doCheck = false;
+
+  pythonImportsCheck = [ "cloudscraper" ];
+
+  meta = with lib; {
+    description = "A Python module to bypass Cloudflare's anti-bot page";
+    homepage = https://github.com/venomous/cloudscraper;
+    license = licenses.mit;
+    maintainers = with maintainers; [ kini ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/clustershell/default.nix b/nixpkgs/pkgs/development/python-modules/clustershell/default.nix
index 86d44aed532c..a0e744f9919d 100644
--- a/nixpkgs/pkgs/development/python-modules/clustershell/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/clustershell/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi, pyyaml, openssh
+{ lib, stdenv, buildPythonPackage, fetchPypi, pyyaml, openssh
 , nose, bc, hostname, coreutils, bash, gnused
 }:
 
@@ -80,7 +80,7 @@ buildPythonPackage rec {
     tests/*.py
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Scalable Python framework for cluster administration";
     homepage = "https://cea-hpc.github.io/clustershell";
     license = licenses.lgpl21;
diff --git a/nixpkgs/pkgs/development/python-modules/cmd2/default.nix b/nixpkgs/pkgs/development/python-modules/cmd2/default.nix
index 889ef3fba15c..bafdb9cb95da 100644
--- a/nixpkgs/pkgs/development/python-modules/cmd2/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/cmd2/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchPypi, buildPythonPackage, pythonOlder, isPy3k
+{ lib, stdenv, fetchPypi, buildPythonPackage, pythonOlder, isPy3k
 , pyperclip, six, pyparsing, vim, wcwidth, colorama, attrs
 , contextlib2 ? null, typing ? null, setuptools_scm
 , pytest, mock ? null, pytest-mock
@@ -15,7 +15,7 @@ buildPythonPackage rec {
 
   LC_ALL="en_US.UTF-8";
 
-  postPatch = stdenv.lib.optional stdenv.isDarwin ''
+  postPatch = lib.optional stdenv.isDarwin ''
     # Fake the impure dependencies pbpaste and pbcopy
     mkdir bin
     echo '#!${stdenv.shell}' > bin/pbpaste
@@ -38,7 +38,7 @@ buildPythonPackage rec {
     wcwidth
     attrs
   ]
-  ++ stdenv.lib.optionals (pythonOlder "3.5") [contextlib2 typing]
+  ++ lib.optionals (pythonOlder "3.5") [contextlib2 typing]
   ;
 
 
@@ -46,13 +46,13 @@ buildPythonPackage rec {
   # pytest-cov
   # argcomplete  will generate errors
   checkInputs= [ pytest mock which vim glibcLocales pytest-mock ]
-        ++ stdenv.lib.optional (pythonOlder "3.6") [ 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'
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Enhancements for standard library's cmd module";
     homepage = "https://github.com/python-cmd2/cmd2";
     maintainers = with maintainers; [ teto ];
diff --git a/nixpkgs/pkgs/development/python-modules/cmdline/default.nix b/nixpkgs/pkgs/development/python-modules/cmdline/default.nix
index 39f1f9de0c67..4249ed7164b9 100644
--- a/nixpkgs/pkgs/development/python-modules/cmdline/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/cmdline/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi, pyyaml }:
+{ lib, stdenv, buildPythonPackage, fetchPypi, pyyaml }:
 
 buildPythonPackage rec {
   pname = "cmdline";
@@ -13,7 +13,7 @@ buildPythonPackage rec {
   doCheck = false;
   propagatedBuildInputs = [ pyyaml ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Utilities for consistent command line tools";
     homepage = "https://github.com/rca/cmdline";
     license = licenses.asl20;
diff --git a/nixpkgs/pkgs/development/python-modules/cmdtest/default.nix b/nixpkgs/pkgs/development/python-modules/cmdtest/default.nix
index 5c53cafdb4e1..5bb4ef79a20c 100644
--- a/nixpkgs/pkgs/development/python-modules/cmdtest/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/cmdtest/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchurl
 , cliapp
@@ -23,7 +23,7 @@ buildPythonPackage rec {
   # TODO: cmdtest tests must be run before the buildPhase
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://liw.fi/cmdtest/";
     description = "Black box tests Unix command line tools";
     license = licenses.gpl3;
diff --git a/nixpkgs/pkgs/development/python-modules/cntk/default.nix b/nixpkgs/pkgs/development/python-modules/cntk/default.nix
index ce388bb1d5d2..b1bba8cf1e0f 100644
--- a/nixpkgs/pkgs/development/python-modules/cntk/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/cntk/default.nix
@@ -3,7 +3,7 @@
 , pkgs
 , numpy
 , scipy
-, openmpi
+, mpi
 , enum34
 , protobuf
 , pip
@@ -17,8 +17,8 @@ in
 buildPythonPackage {
   inherit (cntk) name version src;
 
-  nativeBuildInputs = [ swig openmpi ];
-  buildInputs = [ cntk openmpi ];
+  nativeBuildInputs = [ swig mpi ];
+  buildInputs = [ cntk mpi ];
   propagatedBuildInputs = [ numpy scipy enum34 protobuf pip ];
 
   CNTK_LIB_PATH = "${cntk}/lib";
@@ -28,7 +28,7 @@ buildPythonPackage {
 
   postPatch = ''
     cd bindings/python
-    sed -i 's,"libmpi.so.12","${openmpi}/lib/libmpi.so",g' cntk/train/distributed.py
+    sed -i 's,"libmpi.so.12","${mpi}/lib/libmpi.so",g' cntk/train/distributed.py
 
     # Remove distro and libs checks; they aren't compatible with NixOS and besides we guarantee
     # compatibility by providing a package.
diff --git a/nixpkgs/pkgs/development/python-modules/cocotb/default.nix b/nixpkgs/pkgs/development/python-modules/cocotb/default.nix
index 9e6ebbe260e4..e95900d17b52 100644
--- a/nixpkgs/pkgs/development/python-modules/cocotb/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/cocotb/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchFromGitHub, setuptools, swig, verilog }:
+{ lib, stdenv, buildPythonPackage, fetchFromGitHub, setuptools, swig, verilog }:
 
 buildPythonPackage rec {
   pname = "cocotb";
@@ -43,7 +43,7 @@ buildPythonPackage rec {
     make test
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Coroutine based cosimulation library for writing VHDL and Verilog testbenches in Python";
     homepage = "https://github.com/cocotb/cocotb";
     license = licenses.bsd3;
diff --git a/nixpkgs/pkgs/development/python-modules/codecov/default.nix b/nixpkgs/pkgs/development/python-modules/codecov/default.nix
index 455888c447da..924422bf7d4f 100644
--- a/nixpkgs/pkgs/development/python-modules/codecov/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/codecov/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi, requests, coverage, unittest2 }:
+{ lib, buildPythonPackage, fetchPypi, requests, coverage, unittest2 }:
 
 buildPythonPackage rec {
   pname = "codecov";
@@ -20,9 +20,9 @@ buildPythonPackage rec {
   # No tests in archive
   doCheck = false;
 
-  meta = {
+  meta = with lib; {
     description = "Python report uploader for Codecov";
     homepage = "https://codecov.io/";
-    license = stdenv.lib.licenses.asl20;
+    license = licenses.asl20;
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/cogapp/default.nix b/nixpkgs/pkgs/development/python-modules/cogapp/default.nix
index 2962e65a7fb6..019faeaebc30 100644
--- a/nixpkgs/pkgs/development/python-modules/cogapp/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/cogapp/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi }:
+{ lib, stdenv, buildPythonPackage, fetchPypi }:
 
 buildPythonPackage rec {
   pname = "cogapp";
@@ -12,7 +12,7 @@ buildPythonPackage rec {
   # there are no tests
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "A code generator for executing Python snippets in source files";
     homepage = "http://nedbatchelder.com/code/cog";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/coilmq/default.nix b/nixpkgs/pkgs/development/python-modules/coilmq/default.nix
index 8b103b55171d..bc0b6af146af 100644
--- a/nixpkgs/pkgs/development/python-modules/coilmq/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/coilmq/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi
+{ lib, stdenv, buildPythonPackage, fetchPypi
 , stompclient, python-daemon, redis, pid, pytest, six, click, coverage
 , sqlalchemy }:
 
@@ -17,7 +17,7 @@ buildPythonPackage rec {
   # The teste data is not included in the distribution
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Simple, lightweight, and easily extensible STOMP message broker";
     homepage = "https://github.com/hozn/coilmq/";
     license = licenses.asl20;
diff --git a/nixpkgs/pkgs/development/python-modules/colanderalchemy/default.nix b/nixpkgs/pkgs/development/python-modules/colanderalchemy/default.nix
index aba5ebf609b8..a5b29af1c31a 100644
--- a/nixpkgs/pkgs/development/python-modules/colanderalchemy/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/colanderalchemy/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , unittest2
@@ -20,7 +20,7 @@ buildPythonPackage rec {
   # Tests are not included in Pypi
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Autogenerate Colander schemas based on SQLAlchemy models";
     homepage = "https://github.com/stefanofontanelli/ColanderAlchemy";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/colorama/default.nix b/nixpkgs/pkgs/development/python-modules/colorama/default.nix
index 063491845827..6778c6acadb8 100644
--- a/nixpkgs/pkgs/development/python-modules/colorama/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/colorama/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchPypi, buildPythonPackage }:
+{ lib, stdenv, fetchPypi, buildPythonPackage }:
 
 buildPythonPackage rec {
   pname = "colorama";
@@ -12,7 +12,7 @@ buildPythonPackage rec {
   # No tests in archive
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://github.com/tartley/colorama";
     license = licenses.bsd3;
     description = "Cross-platform colored terminal text";
diff --git a/nixpkgs/pkgs/development/python-modules/colorcet/default.nix b/nixpkgs/pkgs/development/python-modules/colorcet/default.nix
index a80895de3d15..303d244fff33 100644
--- a/nixpkgs/pkgs/development/python-modules/colorcet/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/colorcet/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , param
@@ -11,11 +11,11 @@
 
 buildPythonPackage rec {
   pname = "colorcet";
-  version = "2.0.2";
+  version = "2.0.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1vkx00im4s6zhr2m1j9r0a5vmhkl488b4xpzxb1pidbl19wi6j2i";
+    sha256 = "efa44b6f4078261e62d0039c76aba17ac8d3ebaf0bc2291a111aee3905313433";
   };
 
   propagatedBuildInputs = [
@@ -40,7 +40,7 @@ buildPythonPackage rec {
     pytest colorcet -k 'not matplotlib_default_colormap_plot'
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Collection of perceptually uniform colormaps";
     homepage = "https://colorcet.pyviz.org";
     license = licenses.cc-by-40;
diff --git a/nixpkgs/pkgs/development/python-modules/colorclass/default.nix b/nixpkgs/pkgs/development/python-modules/colorclass/default.nix
index 4a627cab5451..08da356e222e 100644
--- a/nixpkgs/pkgs/development/python-modules/colorclass/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/colorclass/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi }:
+{ lib, stdenv, buildPythonPackage, fetchPypi }:
 
 buildPythonPackage rec {
   pname = "colorclass";
@@ -12,7 +12,7 @@ buildPythonPackage rec {
   # No tests in archive
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://github.com/Robpol86/colorclass";
     license = licenses.mit;
     description = "Automatic support for console colors";
diff --git a/nixpkgs/pkgs/development/python-modules/colored/default.nix b/nixpkgs/pkgs/development/python-modules/colored/default.nix
index 2d2cac3da1b9..5caa0cad2f6f 100644
--- a/nixpkgs/pkgs/development/python-modules/colored/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/colored/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 }:
@@ -15,7 +15,7 @@ buildPythonPackage rec {
   # No proper test suite
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://gitlab.com/dslackw/colored";
     description = "Simple library for color and formatting to terminal";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/coloredlogs/default.nix b/nixpkgs/pkgs/development/python-modules/coloredlogs/default.nix
index 3005429658b9..48d13ab49dd2 100644
--- a/nixpkgs/pkgs/development/python-modules/coloredlogs/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/coloredlogs/default.nix
@@ -1,4 +1,5 @@
 { lib
+, stdenv
 , buildPythonPackage
 , fetchFromGitHub
 , humanfriendly
@@ -7,6 +8,7 @@
 , pytest
 , mock
 , util-linux
+, isPy38
 }:
 
 buildPythonPackage rec {
@@ -20,13 +22,18 @@ buildPythonPackage rec {
     sha256 = "0rnmxwrim4razlv4vi3krxk5lc5ksck6h5374j8avqwplika7q2x";
   };
 
+  # capturer is broken on darwin / py38, so we skip the test until a fix for
+  # https://github.com/xolox/python-capturer/issues/10 is released.
+  doCheck = !(isPy38 && stdenv.isDarwin);
   checkPhase = ''
     PATH=$PATH:$out/bin pytest . -k "not test_plain_text_output_format \
                                      and not test_auto_install"
   '';
-  checkInputs = [ pytest mock util-linux ];
+  checkInputs = [ pytest mock util-linux verboselogs capturer ];
 
-  propagatedBuildInputs = [ humanfriendly verboselogs capturer ];
+  pythonImportsCheck = [ "coloredlogs" ];
+
+  propagatedBuildInputs = [ humanfriendly ];
 
   meta = with lib; {
     description = "Colored stream handler for Python's logging module";
diff --git a/nixpkgs/pkgs/development/python-modules/colorlog/default.nix b/nixpkgs/pkgs/development/python-modules/colorlog/default.nix
index 0b40284fd5eb..0740ee33b5f1 100644
--- a/nixpkgs/pkgs/development/python-modules/colorlog/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/colorlog/default.nix
@@ -1,25 +1,23 @@
-{ stdenv, buildPythonPackage, fetchPypi, pytest }:
+{ lib
+, buildPythonPackage
+, fetchPypi
+, pytestCheckHook
+}:
 
 buildPythonPackage rec {
   pname = "colorlog";
-  version = "4.6.2";
+  version = "4.7.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "54e5f153419c22afc283c130c4201db19a3dbd83221a0f4657d5ee66234a2ea4";
+    sha256 = "0lc2r105hxbyh29dsgczdi379lh57gnbj56jsxi5g9rqcihmpl0q";
   };
 
-  checkInputs = [ pytest ];
+  checkInputs = [ pytestCheckHook ];
 
-  # tests are no longer packaged in pypi
-  doCheck = false;
-  checkPhase = ''
-    py.test -p no:logging
-  '';
+  pythonImportsCheck = [ "colorlog" ];
 
-  pythonImportsCheck =  [ "colorlog" ];
-
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Log formatting with colors";
     homepage = "https://github.com/borntyping/python-colorlog";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/colorlover/default.nix b/nixpkgs/pkgs/development/python-modules/colorlover/default.nix
index 6aea26e89366..70dd66e8f813 100644
--- a/nixpkgs/pkgs/development/python-modules/colorlover/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/colorlover/default.nix
@@ -1,4 +1,6 @@
-{ buildPythonPackage, fetchPypi, stdenv
+{ lib
+, buildPythonPackage
+, fetchPypi
 }:
 
 buildPythonPackage rec {
@@ -13,10 +15,10 @@ buildPythonPackage rec {
   # no tests included in distributed archive
   doCheck = false;
 
-  meta = {
+  meta = with lib; {
     homepage = "https://github.com/jackparmer/colorlover";
     description = "Color scales in Python for humans";
-    license = stdenv.lib.licenses.mit;
-    maintainers = with stdenv.lib.maintainers; [ globin ];
+    license = licenses.mit;
+    maintainers = with maintainers; [ globin ];
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/colour/default.nix b/nixpkgs/pkgs/development/python-modules/colour/default.nix
index d0f802072a38..6a6ad9d4946a 100644
--- a/nixpkgs/pkgs/development/python-modules/colour/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/colour/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi, d2to1 }:
+{ lib, stdenv, buildPythonPackage, fetchPypi, d2to1 }:
 
 buildPythonPackage rec {
   pname = "colour";
@@ -11,7 +11,7 @@ buildPythonPackage rec {
 
   buildInputs = [ d2to1 ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Converts and manipulates common color representation (RGB, HSV, web, ...)";
     homepage = "https://github.com/vaab/colour";
     license = licenses.bsd2;
diff --git a/nixpkgs/pkgs/development/python-modules/commandparse/default.nix b/nixpkgs/pkgs/development/python-modules/commandparse/default.nix
new file mode 100644
index 000000000000..68da870f4e2d
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/commandparse/default.nix
@@ -0,0 +1,25 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+}:
+
+buildPythonPackage rec {
+  pname = "commandparse";
+  version = "1.1.1";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "06mcxc0vs5qdcywalgyx5zm18z4xcsrg5g0wsqqv5qawkrvmvl53";
+  };
+
+  # tests only distributed upstream source, not PyPi
+  doCheck = false;
+  pythonImportsCheck = [ "commandparse" ];
+
+  meta = with lib; {
+    description = "Python module to parse command based CLI application";
+    homepage = "https://github.com/flgy/commandparse";
+    license = with licenses; [ mit ];
+    maintainers = [ maintainers.fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/configobj/default.nix b/nixpkgs/pkgs/development/python-modules/configobj/default.nix
index 82ca70c46795..d0988689275e 100644
--- a/nixpkgs/pkgs/development/python-modules/configobj/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/configobj/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage
+{ lib, stdenv, buildPythonPackage
 , fetchFromGitHub
 , six
 , mock, pytest
@@ -25,7 +25,7 @@ buildPythonPackage rec {
 
   checkInputs = [ mock pytest ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Config file reading, writing and validation";
     homepage = "https://pypi.python.org/pypi/configobj";
     license = licenses.bsd3;
diff --git a/nixpkgs/pkgs/development/python-modules/configparser/4.nix b/nixpkgs/pkgs/development/python-modules/configparser/4.nix
index 9c6c631d9c27..cbef6fd2ce7f 100644
--- a/nixpkgs/pkgs/development/python-modules/configparser/4.nix
+++ b/nixpkgs/pkgs/development/python-modules/configparser/4.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi, setuptools_scm }:
+{ lib, stdenv, buildPythonPackage, fetchPypi, setuptools_scm }:
 
 buildPythonPackage rec {
   pname = "configparser";
@@ -18,7 +18,7 @@ buildPythonPackage rec {
     export LC_ALL=${if stdenv.isDarwin then "en_US" else "C"}.UTF-8
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Updated configparser from Python 3.7 for Python 2.6+.";
     license = licenses.mit;
     homepage = "https://github.com/jaraco/configparser";
diff --git a/nixpkgs/pkgs/development/python-modules/configparser/default.nix b/nixpkgs/pkgs/development/python-modules/configparser/default.nix
index ad9a13c28bf0..e8610f053da6 100644
--- a/nixpkgs/pkgs/development/python-modules/configparser/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/configparser/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi, setuptools_scm
+{ lib, stdenv, buildPythonPackage, fetchPypi, setuptools_scm
 , toml
 }:
 
@@ -20,7 +20,7 @@ buildPythonPackage rec {
     export LC_ALL=${if stdenv.isDarwin then "en_US" else "C"}.UTF-8
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Updated configparser from Python 3.7 for Python 2.6+.";
     license = licenses.mit;
     homepage = "https://github.com/jaraco/configparser";
diff --git a/nixpkgs/pkgs/development/python-modules/configshell/default.nix b/nixpkgs/pkgs/development/python-modules/configshell/default.nix
index 6a21c1074ea7..ba3700962bf6 100644
--- a/nixpkgs/pkgs/development/python-modules/configshell/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/configshell/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchFromGitHub, buildPythonPackage, pyparsing, six, urwid }:
+{ lib, stdenv, fetchFromGitHub, buildPythonPackage, pyparsing, six, urwid }:
 
 buildPythonPackage rec {
   pname = "configshell";
@@ -13,7 +13,7 @@ buildPythonPackage rec {
 
   propagatedBuildInputs = [ pyparsing six urwid ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "A Python library for building configuration shells";
     homepage = "https://github.com/open-iscsi/configshell-fb";
     license = licenses.asl20;
diff --git a/nixpkgs/pkgs/development/python-modules/confluent-kafka/default.nix b/nixpkgs/pkgs/development/python-modules/confluent-kafka/default.nix
index 8048d6f78a27..f3e8b1c943b1 100644
--- a/nixpkgs/pkgs/development/python-modules/confluent-kafka/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/confluent-kafka/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi, isPy3k, rdkafka, requests, avro3k, avro, futures, enum34 }:
+{ lib, stdenv, buildPythonPackage, fetchPypi, isPy3k, rdkafka, requests, avro3k, avro, futures, enum34 }:
 
 buildPythonPackage rec {
   version = "1.5.0";
@@ -14,7 +14,7 @@ buildPythonPackage rec {
   # No tests in PyPi Tarball
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Confluent's Apache Kafka client for Python";
     homepage = "https://github.com/confluentinc/confluent-kafka-python";
     license = licenses.asl20;
diff --git a/nixpkgs/pkgs/development/python-modules/constantly/default.nix b/nixpkgs/pkgs/development/python-modules/constantly/default.nix
index 9b7222b7bbc6..189573699b91 100644
--- a/nixpkgs/pkgs/development/python-modules/constantly/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/constantly/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi
+{ lib, stdenv, buildPythonPackage, fetchPypi
 }:
 buildPythonPackage rec {
   pname = "constantly";
@@ -9,7 +9,7 @@ buildPythonPackage rec {
     sha256 = "0dgwdla5kfpqz83hfril716inm41hgn9skxskvi77605jbmp4qsq";
   };
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://github.com/twisted/constantly";
     description = "symbolic constant support";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/construct/default.nix b/nixpkgs/pkgs/development/python-modules/construct/default.nix
index cf9ab42f3259..8d0c83ca9e8e 100644
--- a/nixpkgs/pkgs/development/python-modules/construct/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/construct/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchFromGitHub, pythonOlder
+{ lib, stdenv, buildPythonPackage, fetchFromGitHub, pythonOlder
 , six, pytestCheckHook, pytest-benchmark, numpy, arrow, ruamel_yaml
 }:
 
@@ -18,11 +18,11 @@ buildPythonPackage rec {
 
   checkInputs = [ pytestCheckHook pytest-benchmark numpy arrow ruamel_yaml ];
 
-  disabledTests = stdenv.lib.optionals stdenv.isDarwin [ "test_multiprocessing" ];
+  disabledTests = lib.optionals stdenv.isDarwin [ "test_multiprocessing" ];
 
   pytestFlagsArray = [ "--benchmark-disable" ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Powerful declarative parser (and builder) for binary data";
     homepage = "https://construct.readthedocs.org/";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/consul/default.nix b/nixpkgs/pkgs/development/python-modules/consul/default.nix
index 589076481c90..3978b14484ac 100644
--- a/nixpkgs/pkgs/development/python-modules/consul/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/consul/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi
+{ lib, stdenv, buildPythonPackage, fetchPypi
 , requests, six, pytest }:
 
 buildPythonPackage rec {
@@ -15,7 +15,7 @@ buildPythonPackage rec {
   # No tests distributed. https://github.com/cablehead/python-consul/issues/133
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Python client for Consul (https://www.consul.io/)";
     homepage = "https://github.com/cablehead/python-consul";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/contexter/default.nix b/nixpkgs/pkgs/development/python-modules/contexter/default.nix
index 0fa72dfa687d..d8b74d4fedba 100644
--- a/nixpkgs/pkgs/development/python-modules/contexter/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/contexter/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi }:
+{ lib, stdenv, buildPythonPackage, fetchPypi }:
 
 buildPythonPackage rec {
   pname = "contexter";
@@ -9,6 +9,6 @@ buildPythonPackage rec {
     sha256 = "c730890b1a915051414a6350d8ea1cddca7d01d8f756badedb30b9bf305ea0a8";
   };
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/convertdate/default.nix b/nixpkgs/pkgs/development/python-modules/convertdate/default.nix
index c60d4778012c..f28923002f70 100644
--- a/nixpkgs/pkgs/development/python-modules/convertdate/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/convertdate/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchFromGitHub, pymeeus, pytz }:
+{ lib, stdenv, buildPythonPackage, fetchFromGitHub, pymeeus, pytz }:
 
 buildPythonPackage rec {
   pname = "convertdate";
@@ -14,7 +14,7 @@ buildPythonPackage rec {
 
   propagatedBuildInputs = [ pymeeus pytz ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://github.com/fitnr/convertdate";
     description = "Utils for converting between date formats and calculating holidays";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/cookiecutter/default.nix b/nixpkgs/pkgs/development/python-modules/cookiecutter/default.nix
index 23bc8bcec524..f9a4fe982082 100644
--- a/nixpkgs/pkgs/development/python-modules/cookiecutter/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/cookiecutter/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi, isPyPy
+{ lib, stdenv, buildPythonPackage, fetchPypi, isPyPy
 , pytest, pytestcov, pytest-mock, freezegun
 , jinja2, future, binaryornot, click, whichcraft, poyo, jinja2_time, requests
 , python-slugify }:
@@ -26,7 +26,7 @@ buildPythonPackage rec {
     pytest
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://github.com/audreyr/cookiecutter";
     description = "A command-line utility that creates projects from project templates";
     license = licenses.bsd3;
diff --git a/nixpkgs/pkgs/development/python-modules/cookies/default.nix b/nixpkgs/pkgs/development/python-modules/cookies/default.nix
index 7ae110fef3c2..59d2214f758e 100644
--- a/nixpkgs/pkgs/development/python-modules/cookies/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/cookies/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi }:
+{ lib, stdenv, buildPythonPackage, fetchPypi }:
 
 buildPythonPackage rec {
   pname = "cookies";
@@ -11,7 +11,7 @@ buildPythonPackage rec {
 
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Friendlier RFC 6265-compliant cookie parser/renderer";
     homepage = "https://github.com/sashahart/cookies";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/coreapi/default.nix b/nixpkgs/pkgs/development/python-modules/coreapi/default.nix
index 521b06755cec..8ac69a457396 100644
--- a/nixpkgs/pkgs/development/python-modules/coreapi/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/coreapi/default.nix
@@ -1,5 +1,5 @@
 {
-  stdenv,
+  lib, stdenv,
   fetchFromGitHub,
   buildPythonPackage,
   django,
@@ -35,7 +35,7 @@ buildPythonPackage rec {
     pytest
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Python client library for Core API";
     homepage = "https://github.com/core-api/python-client";
     license = licenses.bsd3;
diff --git a/nixpkgs/pkgs/development/python-modules/coreschema/default.nix b/nixpkgs/pkgs/development/python-modules/coreschema/default.nix
index 5b5ca3f5044e..73167dea8a7d 100644
--- a/nixpkgs/pkgs/development/python-modules/coreschema/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/coreschema/default.nix
@@ -1,5 +1,5 @@
 {
-  stdenv,
+  lib, stdenv,
   fetchFromGitHub,
   buildPythonPackage,
   jinja2,
@@ -25,7 +25,7 @@ buildPythonPackage rec {
     pytest
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Python client library for Core Schema";
     homepage = "https://github.com/ivegotasthma/python-coreschema";
     license = licenses.bsd3;
diff --git a/nixpkgs/pkgs/development/python-modules/cornice/default.nix b/nixpkgs/pkgs/development/python-modules/cornice/default.nix
index d09cffb31d64..10c559201931 100644
--- a/nixpkgs/pkgs/development/python-modules/cornice/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/cornice/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , pyramid
@@ -21,7 +21,7 @@ buildPythonPackage rec {
   # tests not packaged with pypi release
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://github.com/mozilla-services/cornice";
     description = "Build Web Services with Pyramid";
     license = licenses.mpl20;
diff --git a/nixpkgs/pkgs/development/python-modules/coronavirus/default.nix b/nixpkgs/pkgs/development/python-modules/coronavirus/default.nix
new file mode 100644
index 000000000000..ddf87816b8f7
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/coronavirus/default.nix
@@ -0,0 +1,32 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, aiohttp
+}:
+
+buildPythonPackage rec {
+  pname = "coronavirus";
+  version = "1.1.1";
+
+  src = fetchFromGitHub {
+    owner = "nabucasa";
+    repo = pname;
+    rev = version;
+    sha256 = "0mx6ifp8irj3669c67hs9r79k8gar6j4aq7d4ji21pllyhyahdwm";
+  };
+
+  propagatedBuildInputs = [
+    aiohttp
+  ];
+
+  # no tests are present
+  doCheck = false;
+  pythonImportsCheck = [ "coronavirus" ];
+
+  meta = with lib; {
+    description = "Python client for getting Corona virus info";
+    homepage = "https://github.com/nabucasa/coronavirus";
+    license = with licenses; [ mit ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/cot/default.nix b/nixpkgs/pkgs/development/python-modules/cot/default.nix
index 8952d79634d7..a6de8321dc0c 100644
--- a/nixpkgs/pkgs/development/python-modules/cot/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/cot/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi, pythonOlder, isPy3k
+{ lib, stdenv, buildPythonPackage, fetchPypi, pythonOlder, isPy3k
 , argcomplete, colorlog, pyvmomi, requests, verboselogs
 , psutil, pyopenssl, setuptools
 , mock, pytest, pytest-mock, pytestCheckHook, qemu
@@ -16,7 +16,7 @@ buildPythonPackage rec {
   };
 
   propagatedBuildInputs = [ colorlog pyvmomi requests verboselogs pyopenssl setuptools ]
-  ++ stdenv.lib.optional (pythonOlder "3.3") psutil;
+  ++ lib.optional (pythonOlder "3.3") psutil;
 
   checkInputs = [ mock pytestCheckHook pytest-mock qemu ];
 
@@ -35,15 +35,16 @@ buildPythonPackage rec {
     "TestQCOW2"
     "TestRAW"
     "TestVMDKConversion"
+  ] ++ lib.optionals stdenv.isDarwin [
+    "test_serial_fixup_invalid_host"
   ];
 
-
   # argparse is part of the standardlib
   prePatch = ''
     substituteInPlace setup.py --replace "'argparse'," ""
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Common OVF Tool";
     longDescription = ''
       COT (the Common OVF Tool) is a tool for editing Open Virtualization Format (.ovf, .ova) virtual appliances,
diff --git a/nixpkgs/pkgs/development/python-modules/cov-core/default.nix b/nixpkgs/pkgs/development/python-modules/cov-core/default.nix
index ad85218709e8..44461a8ca9fb 100644
--- a/nixpkgs/pkgs/development/python-modules/cov-core/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/cov-core/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi, coverage }:
+{ lib, stdenv, buildPythonPackage, fetchPypi, coverage }:
 
 buildPythonPackage rec {
   pname = "cov-core";
@@ -11,7 +11,7 @@ buildPythonPackage rec {
 
   propagatedBuildInputs = [ coverage ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Plugin core for use by pytest-cov, nose-cov and nose2-cov";
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/cppheaderparser/default.nix b/nixpkgs/pkgs/development/python-modules/cppheaderparser/default.nix
index 688d394198f4..b51499de449c 100644
--- a/nixpkgs/pkgs/development/python-modules/cppheaderparser/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/cppheaderparser/default.nix
@@ -1,7 +1,7 @@
 { buildPythonPackage
 , fetchPypi
 , ply
-, stdenv
+, lib, stdenv
 }:
 
 buildPythonPackage rec {
@@ -17,7 +17,7 @@ buildPythonPackage rec {
 
   pythonImportsCheck = [ "CppHeaderParser" ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Parse C++ header files using ply.lex to generate navigable class tree representing the class structure";
     homepage = "https://sourceforge.net/projects/cppheaderparser/";
     license = licenses.bsdOriginal;
diff --git a/nixpkgs/pkgs/development/python-modules/crate/default.nix b/nixpkgs/pkgs/development/python-modules/crate/default.nix
index 1cae57c6faf7..37e49210009a 100644
--- a/nixpkgs/pkgs/development/python-modules/crate/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/crate/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , fetchPypi
 , buildPythonPackage
 , urllib3
@@ -28,7 +28,7 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://github.com/crate/crate-python";
     description = "A Python client library for CrateDB";
     license = licenses.asl20;
diff --git a/nixpkgs/pkgs/development/python-modules/crayons/default.nix b/nixpkgs/pkgs/development/python-modules/crayons/default.nix
index f262d289af71..c93bf71687fb 100644
--- a/nixpkgs/pkgs/development/python-modules/crayons/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/crayons/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchPypi, buildPythonPackage, colorama }:
+{ lib, stdenv, fetchPypi, buildPythonPackage, colorama }:
 
 buildPythonPackage rec {
   pname = "crayons";
@@ -11,7 +11,7 @@ buildPythonPackage rec {
 
   propagatedBuildInputs = [ colorama ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "TextUI colors for Python";
     homepage = "https://github.com/kennethreitz/crayons";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/crc16/default.nix b/nixpkgs/pkgs/development/python-modules/crc16/default.nix
index 01f5bb8a7e53..1e3c9cbbf4ff 100644
--- a/nixpkgs/pkgs/development/python-modules/crc16/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/crc16/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi }:
+{ lib, stdenv, buildPythonPackage, fetchPypi }:
 
 buildPythonPackage rec {
   pname = "crc16";
@@ -9,7 +9,7 @@ buildPythonPackage rec {
     sha256 = "15nkx0pa4lskwin84flpk8fsw3jqg6wic6v3s83syjqg76h6my61";
   };
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://code.google.com/archive/p/pycrc16/";
     description = "Python library for calculating CRC16";
     license = licenses.lgpl3;
diff --git a/nixpkgs/pkgs/development/python-modules/crccheck/default.nix b/nixpkgs/pkgs/development/python-modules/crccheck/default.nix
index 92a4cc8a8415..8dc038012852 100644
--- a/nixpkgs/pkgs/development/python-modules/crccheck/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/crccheck/default.nix
@@ -1,21 +1,24 @@
-{ stdenv, buildPythonPackage, fetchPypi
+{ lib, stdenv, buildPythonPackage, fetchPypi, isPy3k
 , nose }:
 
-buildPythonPackage rec {
+let
   pname = "crccheck";
-  version = "0.6";
+  version = "1.0";
+in buildPythonPackage {
+  inherit pname version;
 
-  buildInputs = [ nose ];
+  checkInputs = [ nose ];
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0ckymm6s5kw08i1j35fy2cfha1hyq94pq1kc66brb552qgjs91jn";
-    extension = "zip";
+    sha256 = "1ay9lgy80j7lklm07iw2wq7giwnv9fbv50mncblqlc39y322vi0p";
   };
 
-  meta = with stdenv.lib; {
+  disabled = !isPy3k;
+
+  meta = with lib; {
     description = "Python library for CRCs and checksums";
-    homepage = "https://bitbucket.org/martin_scharrer/crccheck";
+    homepage = "https://sourceforge.net/projects/crccheck/";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ etu ];
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/development/python-modules/crcmod/default.nix b/nixpkgs/pkgs/development/python-modules/crcmod/default.nix
index 47e1b4097d3d..488b723d89fd 100644
--- a/nixpkgs/pkgs/development/python-modules/crcmod/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/crcmod/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi }:
+{ lib, stdenv, buildPythonPackage, fetchPypi }:
 
 buildPythonPackage rec {
   pname = "crcmod";
@@ -9,7 +9,7 @@ buildPythonPackage rec {
     sha256 = "07k0hgr42vw2j92cln3klxka81f33knd7459cn3d8aszvfh52w6w";
   };
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Python module for generating objects that compute the Cyclic Redundancy Check (CRC)";
     homepage = "http://crcmod.sourceforge.net/";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/credstash/default.nix b/nixpkgs/pkgs/development/python-modules/credstash/default.nix
index 1f9b4b28f294..ca5e1fe334a0 100644
--- a/nixpkgs/pkgs/development/python-modules/credstash/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/credstash/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi, cryptography, boto3, pyyaml, docutils, pytest, fetchpatch }:
+{ lib, stdenv, buildPythonPackage, fetchPypi, cryptography, boto3, pyyaml, docutils, pytest, fetchpatch }:
 
 buildPythonPackage rec {
   pname = "credstash";
@@ -30,7 +30,7 @@ buildPythonPackage rec {
   # No tests in archive
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "A utility for managing secrets in the cloud using AWS KMS and DynamoDB";
     homepage = "https://github.com/LuminalOSS/credstash";
     license = licenses.asl20;
diff --git a/nixpkgs/pkgs/development/python-modules/croniter/default.nix b/nixpkgs/pkgs/development/python-modules/croniter/default.nix
index a8ae75746880..308070355790 100644
--- a/nixpkgs/pkgs/development/python-modules/croniter/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/croniter/default.nix
@@ -10,11 +10,11 @@
 
 buildPythonPackage rec {
   pname = "croniter";
-  version = "0.3.36";
+  version = "0.3.37";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "9d3098e50f7edc7480470455d42f09c501fa1bb7e2fc113526ec6e90b068f32c";
+    sha256 = "12ced475dfc107bf7c6c1440af031f34be14cd97bbbfaf0f62221a9c11e86404";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/cryptacular/default.nix b/nixpkgs/pkgs/development/python-modules/cryptacular/default.nix
index 5ec1ccacae99..dc97e96e4f5d 100644
--- a/nixpkgs/pkgs/development/python-modules/cryptacular/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/cryptacular/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi, isPy27, pythonAtLeast
+{ lib, stdenv, buildPythonPackage, fetchPypi, isPy27, pythonAtLeast
 , coverage, nose, pbkdf2 }:
 
 buildPythonPackage rec {
@@ -20,7 +20,7 @@ buildPythonPackage rec {
   # https://bitbucket.org/dholth/cryptacular/issues/11
   disabled = isPy27 || pythonAtLeast "3.6";
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     maintainers = with maintainers; [ domenkozar ];
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/cryptography/3.3.nix b/nixpkgs/pkgs/development/python-modules/cryptography/3.3.nix
index a76e62dd4ddb..b6972e6d56bb 100644
--- a/nixpkgs/pkgs/development/python-modules/cryptography/3.3.nix
+++ b/nixpkgs/pkgs/development/python-modules/cryptography/3.3.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , fetchpatch
@@ -33,18 +33,18 @@ buildPythonPackage rec {
 
   outputs = [ "out" "dev" ];
 
-  nativeBuildInputs = stdenv.lib.optionals (!isPyPy) [
+  nativeBuildInputs = lib.optionals (!isPyPy) [
     cffi
   ];
 
   buildInputs = [ openssl ]
-             ++ stdenv.lib.optional stdenv.isDarwin darwin.apple_sdk.frameworks.Security;
+             ++ lib.optional stdenv.isDarwin darwin.apple_sdk.frameworks.Security;
   propagatedBuildInputs = [
     packaging
     six
-  ] ++ stdenv.lib.optionals (!isPyPy) [
+  ] ++ lib.optionals (!isPyPy) [
     cffi
-  ] ++ stdenv.lib.optionals isPy27 [
+  ] ++ lib.optionals isPy27 [
     ipaddress enum34
   ];
 
@@ -65,7 +65,7 @@ buildPythonPackage rec {
   # can do until nix 1.11's release
   __impureHostDeps = [ "/usr/lib" ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "A package which provides cryptographic recipes and primitives";
     longDescription = ''
       Cryptography includes both high level recipes and low level interfaces to
diff --git a/nixpkgs/pkgs/development/python-modules/cryptography/default.nix b/nixpkgs/pkgs/development/python-modules/cryptography/default.nix
index 0bee19c3f4f3..ad402efd7593 100644
--- a/nixpkgs/pkgs/development/python-modules/cryptography/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/cryptography/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , fetchpatch
@@ -31,18 +31,18 @@ buildPythonPackage rec {
 
   outputs = [ "out" "dev" ];
 
-  nativeBuildInputs = stdenv.lib.optionals (!isPyPy) [
+  nativeBuildInputs = lib.optionals (!isPyPy) [
     cffi
   ];
 
   buildInputs = [ openssl ]
-             ++ stdenv.lib.optional stdenv.isDarwin darwin.apple_sdk.frameworks.Security;
+             ++ lib.optional stdenv.isDarwin darwin.apple_sdk.frameworks.Security;
   propagatedBuildInputs = [
     packaging
     six
-  ] ++ stdenv.lib.optionals (!isPyPy) [
+  ] ++ lib.optionals (!isPyPy) [
     cffi
-  ] ++ stdenv.lib.optionals isPy27 [
+  ] ++ lib.optionals isPy27 [
     ipaddress enum34
   ];
 
@@ -63,7 +63,7 @@ buildPythonPackage rec {
   # can do until nix 1.11's release
   __impureHostDeps = [ "/usr/lib" ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "A package which provides cryptographic recipes and primitives";
     longDescription = ''
       Cryptography includes both high level recipes and low level interfaces to
diff --git a/nixpkgs/pkgs/development/python-modules/crytic-compile/default.nix b/nixpkgs/pkgs/development/python-modules/crytic-compile/default.nix
index b9345e78eab0..936db1081b6a 100644
--- a/nixpkgs/pkgs/development/python-modules/crytic-compile/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/crytic-compile/default.nix
@@ -2,7 +2,7 @@
 
 buildPythonPackage rec {
   pname = "crytic-compile";
-  version = "0.1.9";
+  version = "0.1.12";
 
   disabled = pythonOlder "3.6";
 
@@ -10,12 +10,13 @@ buildPythonPackage rec {
     owner = "crytic";
     repo = "crytic-compile";
     rev = version;
-    sha256 = "01mis7bqsh0l5vjl6jwibzy99djza35fxmywy56q8k4jbxwmdcna";
+    sha256 = "1q75n84yxv2cb6x7gqyk3vcwkxpq7pni30wgz3d1bk6pmi2pqgw6";
   };
 
   propagatedBuildInputs = [ pysha3 setuptools ];
 
   doCheck = false;
+  pythonImportsCheck = [ "crytic_compile" ];
 
   meta = with lib; {
     description = "Abstraction layer for smart contract build systems";
diff --git a/nixpkgs/pkgs/development/python-modules/csscompressor/default.nix b/nixpkgs/pkgs/development/python-modules/csscompressor/default.nix
index a7256a54e3be..b3d08c12e62f 100644
--- a/nixpkgs/pkgs/development/python-modules/csscompressor/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/csscompressor/default.nix
@@ -1,4 +1,5 @@
-{ stdenv, buildPythonPackage, fetchPypi }:
+{ lib, buildPythonPackage, fetchPypi }:
+
 buildPythonPackage rec {
   pname = "csscompressor";
   version = "0.9.5";
@@ -10,10 +11,10 @@ buildPythonPackage rec {
 
   doCheck = false; # No tests
 
-  meta = {
+  meta = with lib; {
     description = "A python port of YUI CSS Compressor";
     homepage = "https://pypi.python.org/pypi/csscompressor";
-    license = stdenv.lib.licenses.bsd3;
+    license = licenses.bsd3;
     maintainers = [];
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/cssmin/default.nix b/nixpkgs/pkgs/development/python-modules/cssmin/default.nix
index deace3233b24..a6f6f3c956ae 100644
--- a/nixpkgs/pkgs/development/python-modules/cssmin/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/cssmin/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi }:
+{ lib, stdenv, buildPythonPackage, fetchPypi }:
 
 buildPythonPackage rec {
   pname = "cssmin";
@@ -12,7 +12,7 @@ buildPythonPackage rec {
   # no tests
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "A Python port of the YUI CSS compression algorithm";
     homepage = "https://github.com/zacharyvoase/cssmin";
     license = licenses.bsd3;
diff --git a/nixpkgs/pkgs/development/python-modules/cssselect/default.nix b/nixpkgs/pkgs/development/python-modules/cssselect/default.nix
index 00e6c0f7a627..fe13fa9582ea 100644
--- a/nixpkgs/pkgs/development/python-modules/cssselect/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/cssselect/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi }:
+{ lib, stdenv, buildPythonPackage, fetchPypi }:
 
 buildPythonPackage rec {
   pname = "cssselect";
@@ -12,6 +12,6 @@ buildPythonPackage rec {
   # AttributeError: 'module' object has no attribute 'tests'
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/cssutils/default.nix b/nixpkgs/pkgs/development/python-modules/cssutils/default.nix
index 1db154ac1b8c..ea3ac6236e90 100644
--- a/nixpkgs/pkgs/development/python-modules/cssutils/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/cssutils/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi, mock }:
+{ lib, stdenv, buildPythonPackage, fetchPypi, mock }:
 
 buildPythonPackage rec {
   pname = "cssutils";
@@ -14,7 +14,7 @@ buildPythonPackage rec {
   # couple of failing tests
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "A Python package to parse and build CSS";
     homepage = "http://cthedot.de/cssutils/";
     license = licenses.lgpl3Plus;
diff --git a/nixpkgs/pkgs/development/python-modules/csvw/default.nix b/nixpkgs/pkgs/development/python-modules/csvw/default.nix
index 70e817dc2991..410248b0193b 100644
--- a/nixpkgs/pkgs/development/python-modules/csvw/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/csvw/default.nix
@@ -14,14 +14,14 @@
 
 buildPythonPackage rec {
   pname = "csvw";
-  version = "1.8.1";
+  version = "1.10.0";
   disabled = isPy27;
 
   src = fetchFromGitHub {
     owner = "cldf";
     repo = "csvw";
     rev = "v${version}";
-    sha256 = "1cafwgkspkc299shsa5x8wfzkx1d63p9rvslj9jwr68fipd1830w";
+    sha256 = "0cvfzfi1a2m1xqpm34mwp9r3bhgsnfz4pmslvgn81i42n5grbnis";
   };
 
   patchPhase = ''
diff --git a/nixpkgs/pkgs/development/python-modules/cupy/default.nix b/nixpkgs/pkgs/development/python-modules/cupy/default.nix
index 91fd7ba11d4f..09685d392d6a 100644
--- a/nixpkgs/pkgs/development/python-modules/cupy/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/cupy/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage
+{ lib, stdenv, buildPythonPackage
 , fetchPypi, isPy3k, linuxPackages
 , fastrlock, numpy, six, wheel, pytest, mock, setuptools
 , cudatoolkit, cudnn, nccl
@@ -6,12 +6,12 @@
 
 buildPythonPackage rec {
   pname = "cupy";
-  version = "8.2.0";
+  version = "8.3.0";
   disabled = !isPy3k;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "8e4bc8428fb14309d73194e19bc4b47e1d6a330678a200e36d9d4b932f1be2e8";
+    sha256 = "db699fddfde7806445908cf6454c6f4985e7a9563b40405ddf97845d808c5f12";
   };
 
   checkInputs = [
@@ -40,7 +40,7 @@ buildPythonPackage rec {
 
   enableParallelBuilding = true;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "A NumPy-compatible matrix library accelerated by CUDA";
     homepage = "https://cupy.chainer.org/";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/curtsies/default.nix b/nixpkgs/pkgs/development/python-modules/curtsies/default.nix
index 9f45c2fd2ba6..4c4c7dbe231a 100644
--- a/nixpkgs/pkgs/development/python-modules/curtsies/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/curtsies/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi, fetchpatch, pythonOlder, blessings, mock, nose, pyte, wcwidth, typing }:
+{ lib, stdenv, buildPythonPackage, fetchPypi, fetchpatch, pythonOlder, blessings, mock, nose, pyte, wcwidth, typing }:
 
 buildPythonPackage rec {
   pname = "curtsies";
@@ -17,7 +17,7 @@ buildPythonPackage rec {
   ];
 
   propagatedBuildInputs = [ blessings wcwidth ]
-    ++ stdenv.lib.optionals (pythonOlder "3.5") [ typing ];
+    ++ lib.optionals (pythonOlder "3.5") [ typing ];
 
   checkInputs = [ mock pyte nose ];
 
@@ -25,7 +25,7 @@ buildPythonPackage rec {
     nosetests tests
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Curses-like terminal wrapper, with colored strings!";
     homepage = "https://github.com/bpython/curtsies";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/curve25519-donna/default.nix b/nixpkgs/pkgs/development/python-modules/curve25519-donna/default.nix
index 1672557f1b95..e42f4021a6f2 100644
--- a/nixpkgs/pkgs/development/python-modules/curve25519-donna/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/curve25519-donna/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi }:
+{ lib, stdenv, buildPythonPackage, fetchPypi }:
 
 buildPythonPackage rec {
   pname = "curve25519-donna";
@@ -9,7 +9,7 @@ buildPythonPackage rec {
     sha256 = "1w0vkjyh4ki9n98lr2hg09f1lr1g3pz48kshrlic01ba6pasj60q";
   };
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Python wrapper for the portable curve25519-donna implementation";
     homepage = "http://code.google.com/p/curve25519-donna/";
     license = licenses.bsd3;
diff --git a/nixpkgs/pkgs/development/python-modules/cx_freeze/default.nix b/nixpkgs/pkgs/development/python-modules/cx_freeze/default.nix
index e4350bada331..14a585617c64 100644
--- a/nixpkgs/pkgs/development/python-modules/cx_freeze/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/cx_freeze/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, pythonOlder, fetchPypi, ncurses, importlib-metadata }:
+{ lib, stdenv, buildPythonPackage, pythonOlder, fetchPypi, ncurses, importlib-metadata }:
 
 buildPythonPackage rec {
   pname = "cx_Freeze";
@@ -24,7 +24,7 @@ buildPythonPackage rec {
   # fails to find Console even though it exists on python 3.x
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "A set of scripts and modules for freezing Python scripts into executables";
     homepage = "http://cx-freeze.sourceforge.net/";
     license = licenses.psfl;
diff --git a/nixpkgs/pkgs/development/python-modules/cx_oracle/default.nix b/nixpkgs/pkgs/development/python-modules/cx_oracle/default.nix
index 440e43cf81c8..89946964544e 100644
--- a/nixpkgs/pkgs/development/python-modules/cx_oracle/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/cx_oracle/default.nix
@@ -1,14 +1,14 @@
-{ stdenv, buildPythonPackage, fetchPypi, odpic }:
+{ lib, stdenv, buildPythonPackage, fetchPypi, odpic }:
 
 buildPythonPackage rec {
   pname = "cx_Oracle";
-  version = "8.0.1";
+  version = "8.1.0";
 
   buildInputs = [ odpic ];
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "f10ada7f821a325c6befdd6fef1cac44ebc830736d0b75dda7b8ac9f851087b2";
+    sha256 = "e1698c5522ee1355e552b30bfa0a58e6e772475b882c5d69d158bd7e6aed45de";
   };
 
   preConfigure = ''
@@ -19,7 +19,7 @@ buildPythonPackage rec {
   # Check need an Oracle database to run
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Python interface to Oracle";
     homepage = "https://oracle.github.io/python-cx_Oracle";
     license = licenses.bsd3;
diff --git a/nixpkgs/pkgs/development/python-modules/cymem/default.nix b/nixpkgs/pkgs/development/python-modules/cymem/default.nix
index e563e6615fe8..d805ba5de1f9 100644
--- a/nixpkgs/pkgs/development/python-modules/cymem/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/cymem/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchFromGitHub
 , cython
@@ -30,7 +30,7 @@ buildPythonPackage rec {
     ${python.interpreter} -m unittest discover -p "*test*"
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Cython memory pool for RAII-style memory management";
     homepage = "https://github.com/explosion/cymem";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/cypari2/default.nix b/nixpkgs/pkgs/development/python-modules/cypari2/default.nix
index ee2c9ded18df..8a0adb3d6c96 100644
--- a/nixpkgs/pkgs/development/python-modules/cypari2/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/cypari2/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , python
 , fetchPypi
@@ -46,7 +46,7 @@ buildPythonPackage rec {
     make check
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Cython bindings for PARI";
     license = licenses.gpl2;
     maintainers = teams.sage.members;
diff --git a/nixpkgs/pkgs/development/python-modules/daemonize/default.nix b/nixpkgs/pkgs/development/python-modules/daemonize/default.nix
index 9db823806843..30d4f1bd7146 100644
--- a/nixpkgs/pkgs/development/python-modules/daemonize/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/daemonize/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 }:
@@ -12,7 +12,7 @@ buildPythonPackage rec {
     sha256 = "1hwbl3gf9fdds9sc14zgjyjisjvxidrvqc11xlbb0b6jz17nw0nx";
   };
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Library to enable your code run as a daemon process on Unix-like systems";
     homepage = "https://github.com/thesharp/daemonize";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/daphne/default.nix b/nixpkgs/pkgs/development/python-modules/daphne/default.nix
index cbd80333b2f0..fc48f9150124 100644
--- a/nixpkgs/pkgs/development/python-modules/daphne/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/daphne/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, isPy3k, fetchFromGitHub
+{ lib, stdenv, buildPythonPackage, isPy3k, fetchFromGitHub
 , asgiref, autobahn, twisted, pytestrunner
 , hypothesis, pytest, pytest-asyncio, service-identity, pyopenssl
 }:
@@ -27,7 +27,7 @@ buildPythonPackage rec {
     py.test
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Django ASGI (HTTP/WebSocket) server";
     license = licenses.bsd3;
     homepage = "https://github.com/django/daphne";
diff --git a/nixpkgs/pkgs/development/python-modules/darcsver/default.nix b/nixpkgs/pkgs/development/python-modules/darcsver/default.nix
index 33c7eb2d1168..6484d84253b5 100644
--- a/nixpkgs/pkgs/development/python-modules/darcsver/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/darcsver/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi, isPy3k, mock }:
+{ lib, stdenv, buildPythonPackage, fetchPypi, isPy3k, mock }:
 
 buildPythonPackage rec {
   pname = "darcsver";
@@ -21,7 +21,7 @@ buildPythonPackage rec {
   # AttributeError: 'module' object has no attribute 'test_darcsver'
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Darcsver, generate a version number from Darcs history";
     homepage = "https://pypi.python.org/pypi/darcsver";
     license = "BSD-style";
diff --git a/nixpkgs/pkgs/development/python-modules/dask-glm/default.nix b/nixpkgs/pkgs/development/python-modules/dask-glm/default.nix
index 0a88323fafd8..1db03b66ffb0 100644
--- a/nixpkgs/pkgs/development/python-modules/dask-glm/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/dask-glm/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , cloudpickle
@@ -26,7 +26,7 @@ buildPythonPackage rec {
     py.test dask_glm
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://github.com/dask/dask-glm/";
     description = "Generalized Linear Models with Dask";
     license = licenses.bsd3;
diff --git a/nixpkgs/pkgs/development/python-modules/dask-image/default.nix b/nixpkgs/pkgs/development/python-modules/dask-image/default.nix
index 453cb715b12b..eac503c2f855 100644
--- a/nixpkgs/pkgs/development/python-modules/dask-image/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/dask-image/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , fetchpatch
@@ -39,7 +39,7 @@ buildPythonPackage rec {
     pytest --ignore=tests/test_dask_image/
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://github.com/dask/dask-image";
     description = "Distributed image processing";
     license = licenses.bsdOriginal;
diff --git a/nixpkgs/pkgs/development/python-modules/dask-jobqueue/default.nix b/nixpkgs/pkgs/development/python-modules/dask-jobqueue/default.nix
index 52e22a093311..be27399b71f6 100644
--- a/nixpkgs/pkgs/development/python-modules/dask-jobqueue/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/dask-jobqueue/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , dask
@@ -24,7 +24,7 @@ buildPythonPackage rec {
     py.test dask_jobqueue/tests/test_jobqueue_core.py
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://github.com/dask/dask-jobqueue";
     description = "Deploy Dask on job schedulers like PBS, SLURM, and SGE";
     license = licenses.bsd3;
diff --git a/nixpkgs/pkgs/development/python-modules/dask-ml/default.nix b/nixpkgs/pkgs/development/python-modules/dask-ml/default.nix
index 441c698c2ad0..4d3aa8e79a05 100644
--- a/nixpkgs/pkgs/development/python-modules/dask-ml/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/dask-ml/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , pythonOlder
@@ -55,7 +55,7 @@ buildPythonPackage rec {
     "dask_ml.utils"
   ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://github.com/dask/dask-ml";
     description = "Scalable Machine Learn with Dask";
     license = licenses.bsd3;
diff --git a/nixpkgs/pkgs/development/python-modules/dask-mpi/default.nix b/nixpkgs/pkgs/development/python-modules/dask-mpi/default.nix
index 2794bcba7aed..f2d8737b38e9 100644
--- a/nixpkgs/pkgs/development/python-modules/dask-mpi/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/dask-mpi/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , dask
@@ -27,7 +27,7 @@ buildPythonPackage rec {
   # hardcoded mpirun path in tests
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://github.com/dask/dask-mpi";
     description = "Deploy Dask using mpi4py";
     license = licenses.bsd3;
diff --git a/nixpkgs/pkgs/development/python-modules/dask-xgboost/default.nix b/nixpkgs/pkgs/development/python-modules/dask-xgboost/default.nix
index 9730ca8a2feb..c60f628d72eb 100644
--- a/nixpkgs/pkgs/development/python-modules/dask-xgboost/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/dask-xgboost/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , xgboost
@@ -26,7 +26,7 @@ buildPythonPackage rec {
 
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://github.com/dask/dask-xgboost";
     description = "Interactions between Dask and XGBoost";
     license = licenses.bsd3;
diff --git a/nixpkgs/pkgs/development/python-modules/dask/default.nix b/nixpkgs/pkgs/development/python-modules/dask/default.nix
index 2fb393035834..721463421440 100644
--- a/nixpkgs/pkgs/development/python-modules/dask/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/dask/default.nix
@@ -15,7 +15,7 @@
 
 buildPythonPackage rec {
   pname = "dask";
-  version = "2.25.0";
+  version = "2021.01.0";
 
   disabled = pythonOlder "3.5";
 
@@ -23,7 +23,7 @@ buildPythonPackage rec {
     owner = "dask";
     repo = pname;
     rev = version;
-    sha256 = "1irp6s577yyjvrvkg00hh1wnl8vrv7pbnbr09mk67z9y7s6xhiw3";
+    sha256 = "V2cEOzV/L1zjyQ76zlGyN9CIkq6W8y8Yab4NQi3/Ju4=";
   };
 
   checkInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/databricks-cli/default.nix b/nixpkgs/pkgs/development/python-modules/databricks-cli/default.nix
index 2184a7e41940..30001b781d28 100644
--- a/nixpkgs/pkgs/development/python-modules/databricks-cli/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/databricks-cli/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi
+{ lib, stdenv, buildPythonPackage, fetchPypi
 , click
 , requests
 , tabulate
@@ -32,7 +32,7 @@ buildPythonPackage rec {
     configparser
   ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://github.com/databricks/databricks-cli";
     description = "A command line interface for Databricks";
     license = licenses.asl20;
diff --git a/nixpkgs/pkgs/development/python-modules/databricks-connect/default.nix b/nixpkgs/pkgs/development/python-modules/databricks-connect/default.nix
index 1c4261c92bf7..299fa8240340 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 = "7.3.5";
+  version = "7.3.7";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "c720298b05648f5de8f17de03f93d60ffb30c2d55ce2750e63c17c341a8de5e4";
+    sha256 = "35ead50a0550e65a7d6fd78e2c8e54095b53514fba85180768a2dbcdd3f2cf0b";
   };
 
   sourceRoot = ".";
diff --git a/nixpkgs/pkgs/development/python-modules/dataclasses/default.nix b/nixpkgs/pkgs/development/python-modules/dataclasses/default.nix
index 5cfaf237059d..a88995937d83 100644
--- a/nixpkgs/pkgs/development/python-modules/dataclasses/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/dataclasses/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi, isPy36 }:
+{ lib, stdenv, buildPythonPackage, fetchPypi, isPy36 }:
 
 buildPythonPackage rec {
   pname = "dataclasses";
@@ -12,7 +12,7 @@ buildPythonPackage rec {
     sha256 = "8479067f342acf957dc82ec415d355ab5edb7e7646b90dc6e2fd1d96ad084c97";
   };
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "An implementation of PEP 557: Data Classes";
     homepage = "https://github.com/ericvsmith/dataclasses";
     license = licenses.asl20;
diff --git a/nixpkgs/pkgs/development/python-modules/datadiff/default.nix b/nixpkgs/pkgs/development/python-modules/datadiff/default.nix
index 0c30f2f84689..680462352275 100644
--- a/nixpkgs/pkgs/development/python-modules/datadiff/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/datadiff/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , nose
@@ -16,7 +16,7 @@ buildPythonPackage rec {
 
   buildInputs = [ nose ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "DataDiff";
     homepage = "https://sourceforge.net/projects/datadiff/";
     license = licenses.asl20;
diff --git a/nixpkgs/pkgs/development/python-modules/datamodeldict/default.nix b/nixpkgs/pkgs/development/python-modules/datamodeldict/default.nix
index e4c10d8c22c7..f3eab1d1d4e2 100644
--- a/nixpkgs/pkgs/development/python-modules/datamodeldict/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/datamodeldict/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , xmltodict
@@ -18,7 +18,7 @@ buildPythonPackage rec {
   # no tests
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://github.com/usnistgov/DataModelDict/";
     description = "Class allowing for data models equivalently represented as Python dictionaries, JSON, and XML";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/dateutil/default.nix b/nixpkgs/pkgs/development/python-modules/dateutil/default.nix
index 88024265d948..a6aca68ef293 100644
--- a/nixpkgs/pkgs/development/python-modules/dateutil/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/dateutil/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi, six, setuptools_scm, pytest }:
+{ lib, stdenv, buildPythonPackage, fetchPypi, six, setuptools_scm, pytest }:
 buildPythonPackage rec {
   pname = "python-dateutil";
   version = "2.8.1";
@@ -18,7 +18,7 @@ buildPythonPackage rec {
   # Requires fixing
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Powerful extensions to the standard datetime module";
     homepage = "https://pypi.python.org/pypi/python-dateutil";
     license = "BSD-style";
diff --git a/nixpkgs/pkgs/development/python-modules/datrie/default.nix b/nixpkgs/pkgs/development/python-modules/datrie/default.nix
index 7cb30937e0db..c7f74730c161 100644
--- a/nixpkgs/pkgs/development/python-modules/datrie/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/datrie/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi, fetchpatch
+{ lib, stdenv, buildPythonPackage, fetchPypi, fetchpatch
 , cython, pytest, pytestrunner, hypothesis }:
 
 buildPythonPackage rec {
@@ -27,7 +27,7 @@ buildPythonPackage rec {
     ./update_c.sh
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Super-fast, efficiently stored Trie for Python";
     homepage = "https://github.com/kmike/datrie";
     license = licenses.lgpl2;
diff --git a/nixpkgs/pkgs/development/python-modules/dbf/default.nix b/nixpkgs/pkgs/development/python-modules/dbf/default.nix
index 9eb6e4f89a26..b9c264a20150 100644
--- a/nixpkgs/pkgs/development/python-modules/dbf/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/dbf/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchPypi, buildPythonPackage, aenum, isPy3k, pythonOlder, enum34, python }:
+{ lib, stdenv, fetchPypi, buildPythonPackage, aenum, isPy3k, pythonOlder, enum34, python }:
 
 buildPythonPackage rec {
     pname = "dbf";
@@ -9,7 +9,7 @@ buildPythonPackage rec {
       sha256 = "a4a7a8cdc113d840142d21a796c16c7d329ad35c48f17156446732c83ebc571a";
     };
 
-    propagatedBuildInputs = [ aenum ] ++ stdenv.lib.optional (pythonOlder "3.4") enum34;
+    propagatedBuildInputs = [ aenum ] ++ lib.optional (pythonOlder "3.4") enum34;
 
     doCheck = !isPy3k;
     # tests are not yet ported.
@@ -19,7 +19,7 @@ buildPythonPackage rec {
       ${python.interpreter} dbf/test.py
     '';
 
-    meta = with stdenv.lib; {
+    meta = with lib; {
       description = "Pure python package for reading/writing dBase, FoxPro, and Visual FoxPro .dbf files";
       homepage    = "https://pypi.python.org/pypi/dbf";
       license     = licenses.bsd2;
diff --git a/nixpkgs/pkgs/development/python-modules/dbfread/default.nix b/nixpkgs/pkgs/development/python-modules/dbfread/default.nix
index 9dda98e03acf..9f78f3fdde1b 100644
--- a/nixpkgs/pkgs/development/python-modules/dbfread/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/dbfread/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchPypi, buildPythonPackage }:
+{ lib, stdenv, fetchPypi, buildPythonPackage }:
 
 buildPythonPackage rec {
     pname = "dbfread";
@@ -9,7 +9,7 @@ buildPythonPackage rec {
       sha256 = "07c8a9af06ffad3f6f03e8fe91ad7d2733e31a26d2b72c4dd4cfbae07ee3b73d";
     };
 
-    meta = with stdenv.lib; {
+    meta = with lib; {
       description = "Read DBF Files with Python";
       homepage    = "https://dbfread.readthedocs.org/";
       license     = with licenses; [ mit ];
diff --git a/nixpkgs/pkgs/development/python-modules/dbus-next/default.nix b/nixpkgs/pkgs/development/python-modules/dbus-next/default.nix
index bbca0df8d8e9..76385ac8023a 100644
--- a/nixpkgs/pkgs/development/python-modules/dbus-next/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/dbus-next/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchFromGitHub
 , python
@@ -32,7 +32,7 @@ buildPythonPackage rec {
       -k "not test_peer_interface"
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://github.com/altdesktop/python-dbus-next";
     description = "A zero-dependency DBus library for Python with asyncio support";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/dbus/default.nix b/nixpkgs/pkgs/development/python-modules/dbus/default.nix
index aadf53e99255..a6e2e28c6f59 100644
--- a/nixpkgs/pkgs/development/python-modules/dbus/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/dbus/default.nix
@@ -1,4 +1,4 @@
-{ lib, fetchPypi, buildPythonPackage, python, pkgconfig, dbus, dbus-glib, isPyPy
+{ lib, fetchPypi, buildPythonPackage, python, pkg-config, dbus, dbus-glib, isPyPy
 , ncurses, pygobject3, isPy3k }:
 
 buildPythonPackage rec {
@@ -19,7 +19,7 @@ buildPythonPackage rec {
 
   disabled = isPyPy;
 
-  nativeBuildInputs = [ pkgconfig ];
+  nativeBuildInputs = [ pkg-config ];
   buildInputs = [ dbus dbus-glib ]
     # My guess why it's sometimes trying to -lncurses.
     # It seems not to retain the dependency anyway.
diff --git a/nixpkgs/pkgs/development/python-modules/dbutils/default.nix b/nixpkgs/pkgs/development/python-modules/dbutils/default.nix
index ec57e8ada051..42ae779e0d21 100644
--- a/nixpkgs/pkgs/development/python-modules/dbutils/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/dbutils/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi, pytestCheckHook }:
+{ lib, stdenv, buildPythonPackage, fetchPypi, pytestCheckHook }:
 
 buildPythonPackage rec {
   version = "2.0";
@@ -12,7 +12,7 @@ buildPythonPackage rec {
 
   checkInputs = [ pytestCheckHook ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Database connections for multi-threaded environments";
     homepage = "https://webwareforpython.github.io/DBUtils/";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/dcmstack/default.nix b/nixpkgs/pkgs/development/python-modules/dcmstack/default.nix
index f06e361dc716..a6669d0e30df 100644
--- a/nixpkgs/pkgs/development/python-modules/dcmstack/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/dcmstack/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchFromGitHub
 , pythonAtLeast
@@ -30,7 +30,7 @@ buildPythonPackage rec {
     runHook postCheck
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://github.com/moloney/dcmstack";
     description = "DICOM to Nifti conversion preserving metadata";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/deap/default.nix b/nixpkgs/pkgs/development/python-modules/deap/default.nix
index 5a09c42a9bbf..21dc9d3832c8 100644
--- a/nixpkgs/pkgs/development/python-modules/deap/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/deap/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi, python, numpy, matplotlib, nose }:
+{ lib, stdenv, buildPythonPackage, fetchPypi, python, numpy, matplotlib, nose }:
 
 buildPythonPackage rec {
   pname = "deap";
@@ -16,7 +16,7 @@ buildPythonPackage rec {
     ${python.interpreter} setup.py nosetests --verbosity=3
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "DEAP is a novel evolutionary computation framework for rapid prototyping and testing of ideas.";
     homepage = "https://github.com/DEAP/deap";
     license = licenses.lgpl3;
diff --git a/nixpkgs/pkgs/development/python-modules/debian/default.nix b/nixpkgs/pkgs/development/python-modules/debian/default.nix
index 9f5cb744e55f..e97c3420f454 100644
--- a/nixpkgs/pkgs/development/python-modules/debian/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/debian/default.nix
@@ -3,11 +3,11 @@
 
 buildPythonPackage rec {
   pname = "python-debian";
-  version = "0.1.38";
+  version = "0.1.39";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "a352bb5f9ef19b0272078f516ee0ec42b05e90ac85651d87c10e7041550dcc1d";
+    sha256 = "6cca96239b5981f5203216d2113fea522477628607ed0a8427e15094a792541c";
   };
 
   propagatedBuildInputs = [ chardet six ];
diff --git a/nixpkgs/pkgs/development/python-modules/deep_merge/default.nix b/nixpkgs/pkgs/development/python-modules/deep_merge/default.nix
new file mode 100644
index 000000000000..533bc6aa3477
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/deep_merge/default.nix
@@ -0,0 +1,24 @@
+{ lib, buildPythonPackage, fetchPypi, pytestCheckHook, nose }:
+
+buildPythonPackage rec {
+  pname = "deep_merge";
+  version = "0.0.4";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "tUQV+Qk0xC4zQRTihky01OczWzStOW41rYYQyWBlpH4=";
+  };
+
+  checkInputs = [
+    nose
+  ];
+
+  doCheck = false;
+
+  meta = with lib; {
+    description = "This library contains a simple utility for deep-merging dictionaries and the data structures they contain";
+    homepage = "https://github.com/halfak/deep_merge";
+    license = licenses.mit;
+    maintainers = [ maintainers.anhdle14 ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/deluge-client/default.nix b/nixpkgs/pkgs/development/python-modules/deluge-client/default.nix
index 8a2bdee1d922..a271371e22fc 100644
--- a/nixpkgs/pkgs/development/python-modules/deluge-client/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/deluge-client/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi }:
+{ lib, stdenv, buildPythonPackage, fetchPypi }:
 
 buildPythonPackage rec {
   pname = "deluge-client";
@@ -12,7 +12,7 @@ buildPythonPackage rec {
   # it will try to connect to a running instance
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Lightweight pure-python rpc client for deluge";
     homepage = "https://github.com/JohnDoee/deluge-client";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/demjson/default.nix b/nixpkgs/pkgs/development/python-modules/demjson/default.nix
index 58f2012aea71..fc70562938ef 100644
--- a/nixpkgs/pkgs/development/python-modules/demjson/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/demjson/default.nix
@@ -1,16 +1,21 @@
-{ stdenv, buildPythonPackage, fetchPypi, isPy3k }:
+{ lib, stdenv, python, buildPythonPackage, fetchPypi, isPy3k }:
 
 buildPythonPackage rec {
   pname = "demjson";
   version = "2.2.4";
-  disabled = isPy3k;
 
   src = fetchPypi {
     inherit pname version;
     sha256 = "0ygbddpnvp5lby6mr5kz60la3hkvwwzv3wwb3z0w9ngxl0w21pii";
   };
 
-  meta = with stdenv.lib; {
+  checkPhase = lib.optionalString isPy3k ''
+    ${python.interpreter} -m lib2to3 -w test/test_demjson.py
+  '' + ''
+    ${python.interpreter} test/test_demjson.py
+  '';
+
+  meta = with lib; {
     description = "Encoder/decoder and lint/validator for JSON (JavaScript Object Notation)";
     homepage = "https://github.com/dmeranda/demjson";
     license = licenses.lgpl3Plus;
diff --git a/nixpkgs/pkgs/development/python-modules/dependency-injector/default.nix b/nixpkgs/pkgs/development/python-modules/dependency-injector/default.nix
index a9c0b517a134..0c2e2055ff9f 100644
--- a/nixpkgs/pkgs/development/python-modules/dependency-injector/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/dependency-injector/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi, isPy3k, six, unittest2, pyyaml, flask }:
+{ lib, stdenv, buildPythonPackage, fetchPypi, isPy3k, six, unittest2, pyyaml, flask }:
 
 let
   testPath =
@@ -23,7 +23,7 @@ buildPythonPackage rec {
     unit2 discover -s tests/unit -p "${testPath}"
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Dependency injection microframework for Python";
     homepage = "https://github.com/ets-labs/python-dependency-injector";
     license = licenses.bsd3;
diff --git a/nixpkgs/pkgs/development/python-modules/deprecated/default.nix b/nixpkgs/pkgs/development/python-modules/deprecated/default.nix
index d6e5acdeaf8c..a64ed0b9d992 100644
--- a/nixpkgs/pkgs/development/python-modules/deprecated/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/deprecated/default.nix
@@ -1,5 +1,5 @@
-{ stdenv, fetchPypi, buildPythonPackage,
-	wrapt, pytest, tox }:
+{ lib, stdenv, fetchPypi, buildPythonPackage,
+  wrapt, pytest, tox }:
 
 buildPythonPackage rec {
   pname = "Deprecated";
@@ -12,7 +12,7 @@ buildPythonPackage rec {
 
   propagatedBuildInputs = [ wrapt ];
   checkInputs = [ pytest ];
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://github.com/tantale/deprecated";
     description = "Python @deprecated decorator to deprecate old python classes, functions or methods";
     platforms = platforms.all;
diff --git a/nixpkgs/pkgs/development/python-modules/derpconf/default.nix b/nixpkgs/pkgs/development/python-modules/derpconf/default.nix
index 9138ef28530a..f9b8f5dec7c0 100644
--- a/nixpkgs/pkgs/development/python-modules/derpconf/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/derpconf/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi, six }:
+{ lib, stdenv, buildPythonPackage, fetchPypi, six }:
 
 buildPythonPackage rec {
   pname = "derpconf";
@@ -11,7 +11,7 @@ buildPythonPackage rec {
 
   propagatedBuildInputs = [ six ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "derpconf abstracts loading configuration files for your app";
     homepage = "https://github.com/globocom/derpconf";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/descartes/default.nix b/nixpkgs/pkgs/development/python-modules/descartes/default.nix
index c726492f69d4..5280ff2417aa 100644
--- a/nixpkgs/pkgs/development/python-modules/descartes/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/descartes/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi,
+{ lib, stdenv, buildPythonPackage, fetchPypi,
   matplotlib, shapely
 }:
 
@@ -16,7 +16,7 @@ buildPythonPackage rec {
     shapely
   ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Python library to use Shapely or GeoJSON objects as matplotlib paths";
     homepage = "https://bitbucket.org/sgillies/descartes/";
     license = licenses.bsd3;
diff --git a/nixpkgs/pkgs/development/python-modules/deskcon/default.nix b/nixpkgs/pkgs/development/python-modules/deskcon/default.nix
index 7beaa838a825..01918445b342 100644
--- a/nixpkgs/pkgs/development/python-modules/deskcon/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/deskcon/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , pyopenssl
 , pkgs
@@ -33,7 +33,7 @@ buildPythonPackage {
     wrapPythonProgramsIn $out/bin "$out $pythonPath"
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Integrates an Android device into a desktop";
     homepage = "https://github.com/screenfreeze/deskcon-desktop";
     license = licenses.gpl3;
diff --git a/nixpkgs/pkgs/development/python-modules/devolo-home-control-api/default.nix b/nixpkgs/pkgs/development/python-modules/devolo-home-control-api/default.nix
new file mode 100644
index 000000000000..1e388fd3a117
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/devolo-home-control-api/default.nix
@@ -0,0 +1,49 @@
+{ lib
+, aiohttp
+, buildPythonPackage
+, fetchFromGitHub
+, pytestCheckHook
+, pytest-cov
+, pytest-mock
+, requests
+, zeroconf
+, websocket_client
+, pytest-runner
+}:
+
+buildPythonPackage rec {
+  pname = "devolo-home-control-api";
+  version = "0.16.0";
+
+  src = fetchFromGitHub {
+    owner = "2Fake";
+    repo = "devolo_home_control_api";
+    rev = "v${version}";
+    sha256 = "19zzdbx0dxlm8pq0yk00nn9gqqblgpp16fgl7z6a98hsa6459zzb";
+  };
+
+  nativeBuildInputs = [ pytest-runner ];
+
+  propagatedBuildInputs = [
+    requests
+    zeroconf
+    websocket_client
+  ];
+
+  checkInputs = [
+    pytestCheckHook
+    pytest-cov
+    pytest-mock
+  ];
+
+  # Disable test that requires network access
+  disabledTests = [ "test__on_pong" ];
+  pythonImportsCheck = [ "devolo_home_control_api" ];
+
+  meta = with lib; {
+    description = "Python library to work with devolo Home Control";
+    homepage = "https://github.com/2Fake/devolo_home_control_api";
+    license = with licenses; [ gpl3Only ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/diff_cover/default.nix b/nixpkgs/pkgs/development/python-modules/diff_cover/default.nix
index ab9d9493fd60..9672cca46b05 100644
--- a/nixpkgs/pkgs/development/python-modules/diff_cover/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/diff_cover/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi
+{ lib, stdenv, buildPythonPackage, fetchPypi
 , inflect
 , jinja2
 , jinja2_pluralize
@@ -37,7 +37,7 @@ buildPythonPackage rec {
     pytest -k 'not added_file_pylint_console and not file_does_not_exist'
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Automatically find diff lines that need test coverage";
     homepage = "https://github.com/Bachmann1234/diff-cover";
     license = licenses.asl20;
diff --git a/nixpkgs/pkgs/development/python-modules/digi-xbee/default.nix b/nixpkgs/pkgs/development/python-modules/digi-xbee/default.nix
index 32d8c47a9801..ad653c6313c6 100644
--- a/nixpkgs/pkgs/development/python-modules/digi-xbee/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/digi-xbee/default.nix
@@ -15,7 +15,7 @@ buildPythonPackage rec {
   # Upstream doesn't contain unit tests, only functional tests which require specific hardware
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Python library to interact with Digi International's XBee radio frequency modules";
     homepage = "https://github.com/digidotcom/xbee-python";
     license = licenses.mpl20;
diff --git a/nixpkgs/pkgs/development/python-modules/digitalocean/default.nix b/nixpkgs/pkgs/development/python-modules/digitalocean/default.nix
index 404331a49577..7ba0d106e25b 100644
--- a/nixpkgs/pkgs/development/python-modules/digitalocean/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/digitalocean/default.nix
@@ -1,4 +1,5 @@
-{ buildPythonPackage
+{ lib
+, buildPythonPackage
 , fetchFromGitHub
 , fetchPypi
 , isPy3k
@@ -8,18 +9,17 @@
 , pytestCheckHook
 , requests
 , responses
-, stdenv
 }:
 
 buildPythonPackage rec {
   pname = "python-digitalocean";
-  version = "1.15.0";
+  version = "1.16.0";
 
   src = fetchFromGitHub {
     owner = "koalalorenzo";
-    repo = "python-digitalocean";
+    repo = pname;
     rev = "v${version}";
-    sha256 = "1pz15mh72i992p63grwzqn2bbp6sm37zcp4f0fy1z7rsargwsbcz";
+    sha256 = "16fxlfpisj4rcj9dvlifs6bpx42a0sn9b07bnyzwrbhi6nfvkd2g";
   };
 
   propagatedBuildInputs = [
@@ -33,7 +33,7 @@ buildPythonPackage rec {
     pytest
     pytestCheckHook
     responses
-  ] ++ stdenv.lib.optionals (!isPy3k) [
+  ] ++ lib.optionals (!isPy3k) [
     mock
   ];
 
@@ -41,13 +41,12 @@ buildPythonPackage rec {
     cd digitalocean
   '';
 
-  meta = with stdenv.lib; {
-    description = "digitalocean.com API to manage Droplets and Images";
-    homepage = "https://pypi.python.org/pypi/python-digitalocean";
-    license = licenses.lgpl3;
-    maintainers = with maintainers; [
-      kiwi
-      teh
-    ];
+  pythonImportsCheck = [ "digitalocean" ];
+
+  meta = with lib; {
+    description = "Python API to manage Digital Ocean Droplets and Images";
+    homepage = "https://github.com/koalalorenzo/python-digitalocean";
+    license = with licenses; [ lgpl3Only ];
+    maintainers = with maintainers; [ kiwi teh ];
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/discid/default.nix b/nixpkgs/pkgs/development/python-modules/discid/default.nix
index 2684d4a06a91..1c24402926f3 100644
--- a/nixpkgs/pkgs/development/python-modules/discid/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/discid/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, libdiscid, buildPythonPackage, fetchPypi }:
+{ lib, stdenv, libdiscid, buildPythonPackage, fetchPypi }:
 
 buildPythonPackage rec {
   pname = "discid";
@@ -17,7 +17,7 @@ buildPythonPackage rec {
                   "_open_library('${libdiscid}/lib/libdiscid${extension}')"
     '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Python binding of libdiscid";
     homepage    = "https://python-discid.readthedocs.org/";
     license     = licenses.lgpl3Plus;
diff --git a/nixpkgs/pkgs/development/python-modules/discogs_client/default.nix b/nixpkgs/pkgs/development/python-modules/discogs_client/default.nix
index 8d8fb12d4d9b..5e3ac1e1fcde 100644
--- a/nixpkgs/pkgs/development/python-modules/discogs_client/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/discogs_client/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi, requests, oauthlib }:
+{ lib, stdenv, buildPythonPackage, fetchPypi, requests, oauthlib }:
 
 buildPythonPackage rec {
   pname = "discogs-client";
@@ -11,7 +11,7 @@ buildPythonPackage rec {
 
   propagatedBuildInputs = [ requests oauthlib ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Official Python API client for Discogs";
     license = licenses.bsd2;
     homepage = "https://github.com/discogs/discogs_client";
diff --git a/nixpkgs/pkgs/development/python-modules/discordpy/default.nix b/nixpkgs/pkgs/development/python-modules/discordpy/default.nix
index 4f784642537f..9c30606f75d9 100644
--- a/nixpkgs/pkgs/development/python-modules/discordpy/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/discordpy/default.nix
@@ -9,7 +9,7 @@
 
 buildPythonPackage rec {
   pname = "discord.py";
-  version = "1.5.1";
+  version = "1.6.0";
   disabled = pythonOlder "3.5.3";
 
   # only distributes wheels on pypi now
@@ -17,7 +17,7 @@ buildPythonPackage rec {
     owner = "Rapptz";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1bidyclwv20p1kfphj21r5gm3kr2vxx0zd151wg7fcngbbx7gmza";
+    sha256 = "036prc4iw91qx31zz48hy3b30kn2qnlg68lgrvv2mcvsjxf2gd1l";
   };
 
   propagatedBuildInputs = [ aiohttp websockets ];
diff --git a/nixpkgs/pkgs/development/python-modules/diskcache/default.nix b/nixpkgs/pkgs/development/python-modules/diskcache/default.nix
index 793b0edd6974..8b968c3272fb 100644
--- a/nixpkgs/pkgs/development/python-modules/diskcache/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/diskcache/default.nix
@@ -1,7 +1,8 @@
-{ lib
+{ stdenv
+, lib
 , buildPythonPackage
 , fetchFromGitHub
-, pytest
+, pytestCheckHook
 , pytestcov
 , pytest_xdist
 , pytest-django
@@ -11,28 +12,25 @@
 
 buildPythonPackage rec {
   pname = "diskcache";
-  version = "4.1.0";
+  version = "5.1.0";
 
   src = fetchFromGitHub {
     owner = "grantjenks";
     repo = "python-diskcache";
     rev = "v${version}";
-    sha256 = "0xy2vpk4hixb4gg871d9sx9wxdz8pi0pmnfdwg4bf8jqfjg022w8";
+    sha256 = "0xwqw60dbn1x2294galcs08vm6ydcr677lr8slqz8a3ry6sgkhn9";
   };
 
   checkInputs = [
-    pytest
+    pytestCheckHook
     pytestcov
     pytest_xdist
     pytest-django
     mock
   ];
 
-  disabled = lib.versionAtLeast django.version "2.0";
-
-  checkPhase = ''
-    pytest
-  '';
+  # Darwin sandbox causes most tests to fail.
+  doCheck = !stdenv.isDarwin;
 
   meta = with lib; {
     description = "Disk and file backed persistent cache";
diff --git a/nixpkgs/pkgs/development/python-modules/distlib/default.nix b/nixpkgs/pkgs/development/python-modules/distlib/default.nix
index af9b82e42dc3..403834a3731c 100644
--- a/nixpkgs/pkgs/development/python-modules/distlib/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/distlib/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi }:
+{ lib, stdenv, buildPythonPackage, fetchPypi }:
 
 buildPythonPackage rec {
   pname = "distlib";
@@ -13,7 +13,7 @@ buildPythonPackage rec {
   # Tests use pypi.org.
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Low-level components of distutils2/packaging";
     homepage = "https://distlib.readthedocs.io";
     license = licenses.psfl;
diff --git a/nixpkgs/pkgs/development/python-modules/distorm3/default.nix b/nixpkgs/pkgs/development/python-modules/distorm3/default.nix
index 29524240a8a7..e9b8e66d4c99 100644
--- a/nixpkgs/pkgs/development/python-modules/distorm3/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/distorm3/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi }:
+{ lib, stdenv, buildPythonPackage, fetchPypi }:
 
 buildPythonPackage rec {
   pname = "distorm3";
@@ -13,7 +13,7 @@ buildPythonPackage rec {
   # no tests included
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Powerful Disassembler Library For x86/AMD64";
     homepage = "https://github.com/gdabah/distorm";
     license = licenses.bsd3;
diff --git a/nixpkgs/pkgs/development/python-modules/distro/default.nix b/nixpkgs/pkgs/development/python-modules/distro/default.nix
index baaf54dd061d..81bcccd8bd6c 100644
--- a/nixpkgs/pkgs/development/python-modules/distro/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/distro/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchPypi, buildPythonPackage }:
+{ lib, stdenv, fetchPypi, buildPythonPackage }:
 
 buildPythonPackage rec {
   pname = "distro";
@@ -14,7 +14,7 @@ buildPythonPackage rec {
 
   pythonImportsCheck = [ "distro" ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://github.com/nir0s/distro";
     description = "Linux Distribution - a Linux OS platform information API.";
     license = licenses.asl20;
diff --git a/nixpkgs/pkgs/development/python-modules/distutils_extra/default.nix b/nixpkgs/pkgs/development/python-modules/distutils_extra/default.nix
index 1e66f04374be..882a39957993 100644
--- a/nixpkgs/pkgs/development/python-modules/distutils_extra/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/distutils_extra/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchurl
 }:
@@ -12,7 +12,7 @@ buildPythonPackage rec {
     sha256 = "1bv3h2p9ffbzyddhi5sccsfwrm3i6yxzn0m06fdxkj2zsvs28gvj";
   };
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://launchpad.net/python-distutils-extra";
     description = "Enhancements to Python's distutils";
     license = licenses.gpl2;
diff --git a/nixpkgs/pkgs/development/python-modules/dj-email-url/default.nix b/nixpkgs/pkgs/development/python-modules/dj-email-url/default.nix
index 711eee059caa..f8dd9dca202c 100644
--- a/nixpkgs/pkgs/development/python-modules/dj-email-url/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/dj-email-url/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , python
@@ -20,7 +20,7 @@ buildPythonPackage rec {
   # tests not included with pypi release
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://github.com/migonzalvar/dj-email-url";
     description = "Use an URL to configure email backend settings in your Django Application";
     license = licenses.bsd0;
diff --git a/nixpkgs/pkgs/development/python-modules/dj-search-url/default.nix b/nixpkgs/pkgs/development/python-modules/dj-search-url/default.nix
index f86f08ae60b9..321bec8149d1 100644
--- a/nixpkgs/pkgs/development/python-modules/dj-search-url/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/dj-search-url/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 }:
@@ -12,7 +12,7 @@ buildPythonPackage rec {
     sha256 = "424d1a5852500b3c118abfdd0e30b3e0016fe68e7ed27b8553a67afa20d4fb40";
   };
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://github.com/dstufft/dj-search-url";
     description = "Use Search URLs in your Django Haystack Application";
     license = licenses.bsd0;
diff --git a/nixpkgs/pkgs/development/python-modules/django-allauth/default.nix b/nixpkgs/pkgs/development/python-modules/django-allauth/default.nix
index a91bd6cadc3e..fafd7ab9a63f 100644
--- a/nixpkgs/pkgs/development/python-modules/django-allauth/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/django-allauth/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchFromGitHub, requests, requests_oauthlib
+{ lib, stdenv, buildPythonPackage, fetchFromGitHub, requests, requests_oauthlib
 , django, python3-openid, mock, coverage }:
 
 buildPythonPackage rec {
@@ -23,7 +23,7 @@ buildPythonPackage rec {
     coverage run manage.py test allauth
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Integrated set of Django applications addressing authentication, registration, account management as well as 3rd party (social) account authentication";
     homepage = "https://www.intenct.nl/projects/django-allauth";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/django-anymail/default.nix b/nixpkgs/pkgs/development/python-modules/django-anymail/default.nix
index 32fb40341941..892cf179c370 100644
--- a/nixpkgs/pkgs/development/python-modules/django-anymail/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/django-anymail/default.nix
@@ -1,5 +1,5 @@
 {
-    stdenv,
+    lib, stdenv,
     buildPythonPackage,
     fetchFromGitHub,
     six,
@@ -38,7 +38,7 @@ buildPythonPackage rec {
 
   # this package allows multiple email backends
   # sparkpost is missing because it's not packaged yet
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Django email backends and webhooks for Mailgun";
     homepage = "https://github.com/anymail/django-anymail";
     license = licenses.bsd3;
diff --git a/nixpkgs/pkgs/development/python-modules/django-auth-ldap/default.nix b/nixpkgs/pkgs/development/python-modules/django-auth-ldap/default.nix
index 84b9df28bce6..d0dacd659a15 100644
--- a/nixpkgs/pkgs/development/python-modules/django-auth-ldap/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/django-auth-ldap/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi, isPy27
 , ldap , django
@@ -20,7 +20,7 @@ buildPythonPackage rec {
   # django.core.exceptions.ImproperlyConfigured: Requested setting INSTALLED_APPS, but settings are not configured. You must either define the environment variable DJANGO_SETTINGS_MODULE or call settings.configure() before accessing settings
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Django authentication backend that authenticates against an LDAP service";
     homepage = "https://github.com/django-auth-ldap/django-auth-ldap";
     license = licenses.bsd2;
diff --git a/nixpkgs/pkgs/development/python-modules/django-cache-url/default.nix b/nixpkgs/pkgs/development/python-modules/django-cache-url/default.nix
index 6abe92c43f76..103bfb29578d 100644
--- a/nixpkgs/pkgs/development/python-modules/django-cache-url/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/django-cache-url/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , pytest
@@ -22,7 +22,7 @@ buildPythonPackage rec {
   # tests not included with pypi release
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://github.com/ghickman/django-cache-url";
     description = "Use Cache URLs in your Django application";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/django-cleanup/default.nix b/nixpkgs/pkgs/development/python-modules/django-cleanup/default.nix
index 66d202304ee7..39f65275feed 100644
--- a/nixpkgs/pkgs/development/python-modules/django-cleanup/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/django-cleanup/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi, django
+{ lib, stdenv, buildPythonPackage, fetchPypi, django
 , redis, async-timeout, hiredis
 }:
 
@@ -12,7 +12,7 @@ buildPythonPackage rec {
 
   checkInputs = [ django ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Automatically deletes old file for FileField and ImageField. It also deletes files on models instance deletion";
     homepage = "https://github.com/un1t/django-cleanup";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/django-compat/default.nix b/nixpkgs/pkgs/development/python-modules/django-compat/default.nix
index 57426181b735..ef18bfe77ec9 100644
--- a/nixpkgs/pkgs/development/python-modules/django-compat/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/django-compat/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchFromGitHub, python,
+{ lib, stdenv, buildPythonPackage, fetchFromGitHub, python,
   django, six
 }:
 
@@ -33,7 +33,7 @@ buildPythonPackage rec {
 
   propagatedBuildInputs = [ django six ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Forward and backwards compatibility layer for Django 1.4, 1.7, 1.8, 1.9, 1.10 and 1.11";
     homepage = "https://github.com/arteria/django-compat";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/django-configurations/default.nix b/nixpkgs/pkgs/development/python-modules/django-configurations/default.nix
index 5b813977493e..bf1835071f88 100644
--- a/nixpkgs/pkgs/development/python-modules/django-configurations/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/django-configurations/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , django-discover-runner
@@ -35,7 +35,7 @@ buildPythonPackage rec {
   # django.core.exceptions.ImproperlyConfigured: django-configurations settings importer wasn't correctly installed
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://django-configurations.readthedocs.io/";
     description = "A helper for organizing Django settings";
     license = licenses.bsd0;
diff --git a/nixpkgs/pkgs/development/python-modules/django-csp/default.nix b/nixpkgs/pkgs/development/python-modules/django-csp/default.nix
index 1eed9578a8a2..d87e39b8e3f7 100644
--- a/nixpkgs/pkgs/development/python-modules/django-csp/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/django-csp/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchPypi, buildPythonPackage, django }:
+{ lib, stdenv, fetchPypi, buildPythonPackage, django }:
 
 buildPythonPackage rec {
   pname = "django-csp";
@@ -15,7 +15,7 @@ buildPythonPackage rec {
 
   propagatedBuildInputs = [ django ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Adds Content-Security-Policy headers to Django";
     homepage = "https://github.com/mozilla/django-csp";
     license = licenses.bsd3;
diff --git a/nixpkgs/pkgs/development/python-modules/django-discover-runner/default.nix b/nixpkgs/pkgs/development/python-modules/django-discover-runner/default.nix
index 43ae9a7c83a5..63d51d41fc93 100644
--- a/nixpkgs/pkgs/development/python-modules/django-discover-runner/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/django-discover-runner/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , django
@@ -18,7 +18,7 @@ buildPythonPackage rec {
   # tests not included with release
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://github.com/jezdez/django-discover-runner";
     description = "A Django test runner based on unittest2's test discovery";
     license = licenses.bsd0;
diff --git a/nixpkgs/pkgs/development/python-modules/django-dynamic-preferences/default.nix b/nixpkgs/pkgs/development/python-modules/django-dynamic-preferences/default.nix
index de3424c9fec5..7288896c4fea 100644
--- a/nixpkgs/pkgs/development/python-modules/django-dynamic-preferences/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/django-dynamic-preferences/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi
+{ lib, stdenv, buildPythonPackage, fetchPypi
 , django, persisting-theory, six
 }:
 
@@ -16,7 +16,7 @@ buildPythonPackage rec {
   # django.core.exceptions.ImproperlyConfigured: Requested setting DYNAMIC_PREFERENCES, but settings are not configured. You must either define the environment variable DJANGO_SETTINGS_MODULE or call settings.configure() before accessing settings
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://github.com/EliotBerriot/django-dynamic-preferences";
     description = "Dynamic global and instance settings for your django project";
     license = licenses.bsd3;
diff --git a/nixpkgs/pkgs/development/python-modules/django-filter/default.nix b/nixpkgs/pkgs/development/python-modules/django-filter/default.nix
index 93f3f20f3051..e4ca546bbc28 100644
--- a/nixpkgs/pkgs/development/python-modules/django-filter/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/django-filter/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , django
@@ -25,7 +25,7 @@ buildPythonPackage rec {
     runHook postCheck
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Reusable Django application for allowing users to filter querysets dynamically";
     homepage = "https://pypi.org/project/django-filter/";
     license = licenses.bsd3;
diff --git a/nixpkgs/pkgs/development/python-modules/django-gravatar2/default.nix b/nixpkgs/pkgs/development/python-modules/django-gravatar2/default.nix
index 4ea3b7e7ee58..083126066039 100644
--- a/nixpkgs/pkgs/development/python-modules/django-gravatar2/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/django-gravatar2/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi }:
+{ lib, stdenv, buildPythonPackage, fetchPypi }:
 
 buildPythonPackage rec {
   pname = "django-gravatar2";
@@ -11,7 +11,7 @@ buildPythonPackage rec {
 
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Essential Gravatar support for Django";
     homepage = "https://github.com/twaddington/django-gravatar";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/django-hijack-admin/default.nix b/nixpkgs/pkgs/development/python-modules/django-hijack-admin/default.nix
index e30fc88079ca..54056547f48a 100644
--- a/nixpkgs/pkgs/development/python-modules/django-hijack-admin/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/django-hijack-admin/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchFromGitHub, python,
+{ lib, stdenv, buildPythonPackage, fetchFromGitHub, python,
   django_hijack, django_nose }:
 buildPythonPackage rec {
   pname = "django-hijack-admin";
@@ -29,7 +29,7 @@ buildPythonPackage rec {
     runHook postCheck
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Admin integration for django-hijack";
     homepage = "https://github.com/arteria/django-hijack-admin";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/django-hijack/default.nix b/nixpkgs/pkgs/development/python-modules/django-hijack/default.nix
index d736e69ae6ef..bd6f870de66e 100644
--- a/nixpkgs/pkgs/development/python-modules/django-hijack/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/django-hijack/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchFromGitHub, python,
+{ lib, stdenv, buildPythonPackage, fetchFromGitHub, python,
   django, django_compat, django_nose
 }:
 buildPythonPackage rec {
@@ -30,7 +30,7 @@ buildPythonPackage rec {
     runHook postCheck
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Allows superusers to hijack (=login as) and work on behalf of another user";
     homepage = "https://github.com/arteria/django-hijack";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/django-logentry-admin/default.nix b/nixpkgs/pkgs/development/python-modules/django-logentry-admin/default.nix
index d9734ff4a220..59e9782f0501 100644
--- a/nixpkgs/pkgs/development/python-modules/django-logentry-admin/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/django-logentry-admin/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchFromGitHub, buildPythonPackage, django, pytest, pytest-django }:
+{ lib, stdenv, fetchFromGitHub, buildPythonPackage, django, pytest, pytest-django }:
 
 buildPythonPackage rec {
   pname = "django-logentry-admin";
@@ -19,7 +19,7 @@ buildPythonPackage rec {
 
   propagatedBuildInputs = [ django ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Show all LogEntry objects in the Django admin site";
     homepage = "https://github.com/yprez/django-logentry-admin";
     license = licenses.isc;
diff --git a/nixpkgs/pkgs/development/python-modules/django-mailman3/default.nix b/nixpkgs/pkgs/development/python-modules/django-mailman3/default.nix
index 0ae3c422997c..92765c687ae6 100644
--- a/nixpkgs/pkgs/development/python-modules/django-mailman3/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/django-mailman3/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi
+{ lib, stdenv, buildPythonPackage, fetchPypi
 , django-gravatar2, django_compressor, django-allauth, mailmanclient
 , django, mock
 }:
@@ -22,7 +22,7 @@ buildPythonPackage rec {
     PYTHONPATH=.:$PYTHONPATH django-admin.py test --settings=django_mailman3.tests.settings_test
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Django library for Mailman UIs";
     homepage = "https://gitlab.com/mailman/django-mailman3";
     license = licenses.gpl3;
diff --git a/nixpkgs/pkgs/development/python-modules/django-maintenance-mode/default.nix b/nixpkgs/pkgs/development/python-modules/django-maintenance-mode/default.nix
index 2e433aa5d459..c599e28d2062 100644
--- a/nixpkgs/pkgs/development/python-modules/django-maintenance-mode/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/django-maintenance-mode/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchFromGitHub, buildPythonPackage, pytest, django }:
+{ lib, stdenv, fetchFromGitHub, buildPythonPackage, pytest, django }:
 
 buildPythonPackage rec {
   pname = "django-maintenance-mode";
@@ -15,7 +15,7 @@ buildPythonPackage rec {
 
   propagatedBuildInputs = [ django ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Shows a 503 error page when maintenance-mode is on";
     homepage = "https://github.com/fabiocaccamo/django-maintenance-mode";
     maintainers = with maintainers; [ mrmebelman ];
diff --git a/nixpkgs/pkgs/development/python-modules/django-oauth-toolkit/default.nix b/nixpkgs/pkgs/development/python-modules/django-oauth-toolkit/default.nix
index 83f1049a2e56..6e16af5bc8f9 100644
--- a/nixpkgs/pkgs/development/python-modules/django-oauth-toolkit/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/django-oauth-toolkit/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchFromGitHub
+{ lib, stdenv, buildPythonPackage, fetchFromGitHub
 , django, requests, oauthlib
 }:
 
@@ -18,7 +18,7 @@ buildPythonPackage rec {
   # django.core.exceptions.ImproperlyConfigured: Requested setting OAUTH2_PROVIDER, but settings are not configured. You must either define the environment variable DJANGO_SETTINGS_MODULE or call settings.configure() before accessing settings
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "OAuth2 goodies for the Djangonauts";
     homepage = "https://github.com/jazzband/django-oauth-toolkit";
     license = licenses.bsd2;
diff --git a/nixpkgs/pkgs/development/python-modules/django-paintstore/default.nix b/nixpkgs/pkgs/development/python-modules/django-paintstore/default.nix
index b2c755907c15..4fed9bf470b2 100644
--- a/nixpkgs/pkgs/development/python-modules/django-paintstore/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/django-paintstore/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi, requests, requests_oauthlib
+{ lib, stdenv, buildPythonPackage, fetchPypi, requests, requests_oauthlib
 , django, python3-openid }:
 
 buildPythonPackage rec {
@@ -12,7 +12,7 @@ buildPythonPackage rec {
 
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Django app that integrates jQuery ColorPicker with the Django admin";
     homepage = "https://github.com/gsiegman/django-paintstore";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/django-polymorphic/default.nix b/nixpkgs/pkgs/development/python-modules/django-polymorphic/default.nix
index c08facd3650e..b3b71231b75b 100644
--- a/nixpkgs/pkgs/development/python-modules/django-polymorphic/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/django-polymorphic/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchFromGitHub, python, django, dj-database-url }:
+{ lib, stdenv, buildPythonPackage, fetchFromGitHub, python, django, dj-database-url }:
 
 buildPythonPackage rec {
   pname = "django-polymorphic";
@@ -19,9 +19,9 @@ buildPythonPackage rec {
     ${python.interpreter} runtests.py
   '';
 
-  meta = {
+  meta = with lib; {
     homepage = "https://github.com/django-polymorphic/django-polymorphic";
     description = "Improved Django model inheritance with automatic downcasting";
-    license = stdenv.lib.licenses.bsd3;
+    license = licenses.bsd3;
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/django-postgresql-netfields/default.nix b/nixpkgs/pkgs/development/python-modules/django-postgresql-netfields/default.nix
index 73c15850d33c..f2bd574919aa 100644
--- a/nixpkgs/pkgs/development/python-modules/django-postgresql-netfields/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/django-postgresql-netfields/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , django
 , netaddr
@@ -41,7 +41,7 @@ buildPythonPackage rec {
     six
   ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Django PostgreSQL netfields implementation";
     homepage = "https://github.com/jimfunk/django-postgresql-netfields";
     license = licenses.bsd2;
diff --git a/nixpkgs/pkgs/development/python-modules/django-q/default.nix b/nixpkgs/pkgs/development/python-modules/django-q/default.nix
index 0755c5055a1e..2eb3b19f554b 100644
--- a/nixpkgs/pkgs/development/python-modules/django-q/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/django-q/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi, django-picklefield, arrow
+{ lib, stdenv, buildPythonPackage, fetchPypi, django-picklefield, arrow
 , blessed, django, future }:
 
 buildPythonPackage rec {
@@ -16,7 +16,7 @@ buildPythonPackage rec {
 
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "A multiprocessing distributed task queue for Django";
     homepage = "https://django-q.readthedocs.org";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/django-ranged-response/default.nix b/nixpkgs/pkgs/development/python-modules/django-ranged-response/default.nix
index 29b2baf89cdc..d517563590fb 100644
--- a/nixpkgs/pkgs/development/python-modules/django-ranged-response/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/django-ranged-response/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, fetchPypi, buildPythonPackage, django }:
+{ lib, stdenv, fetchurl, fetchPypi, buildPythonPackage, django }:
 
 buildPythonPackage rec {
   pname = "django-ranged-response";
@@ -14,7 +14,7 @@ buildPythonPackage rec {
 
   propagatedBuildInputs = [ django ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "A modified FileResponse that returns `Content-Range` headers with the HTTP response, so browsers (read Safari 9+) that request the file, can stream the response properly";
     homepage = "https://github.com/wearespindle/django-ranged-fileresponse";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/django-raster/default.nix b/nixpkgs/pkgs/development/python-modules/django-raster/default.nix
index 056f8dffdcfc..173452ebe484 100644
--- a/nixpkgs/pkgs/development/python-modules/django-raster/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/django-raster/default.nix
@@ -1,8 +1,8 @@
-{ stdenv, buildPythonPackage, fetchPypi, isPy3k,
+{ lib, stdenv, buildPythonPackage, fetchPypi, isPy3k,
   numpy, django_colorful, pillow, psycopg2,
   pyparsing, django, celery, boto3, importlib-metadata
 }:
-if stdenv.lib.versionOlder django.version "2.0"
+if lib.versionOlder django.version "2.0"
 then throw "django-raster requires Django >= 2.0. Consider overiding the python package set to use django_2."
 else
 buildPythonPackage rec {
@@ -22,7 +22,7 @@ buildPythonPackage rec {
   propagatedBuildInputs = [ numpy django_colorful pillow psycopg2
                             pyparsing django celery boto3 importlib-metadata ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Basic raster data integration for Django";
     homepage = "https://github.com/geodesign/django-raster";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/django-storages/default.nix b/nixpkgs/pkgs/development/python-modules/django-storages/default.nix
index bdf7c21514c2..869c3bf74eef 100644
--- a/nixpkgs/pkgs/development/python-modules/django-storages/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/django-storages/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi
+{ lib, stdenv, buildPythonPackage, fetchPypi
 , django
 }:
 
@@ -16,7 +16,7 @@ buildPythonPackage rec {
   # django.core.exceptions.ImproperlyConfigured: Requested setting DEFAULT_INDEX_TABLESPACE, but settings are not configured. You must either define the environment variable DJANGO_SETTINGS_MODULE or call settings.configure() before accessing settings.
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Collection of custom storage backends for Django";
     homepage = "https://django-storages.readthedocs.io";
     license = licenses.bsd3;
diff --git a/nixpkgs/pkgs/development/python-modules/django-versatileimagefield/default.nix b/nixpkgs/pkgs/development/python-modules/django-versatileimagefield/default.nix
index de5854192d20..39912f474204 100644
--- a/nixpkgs/pkgs/development/python-modules/django-versatileimagefield/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/django-versatileimagefield/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , django
@@ -22,7 +22,7 @@ buildPythonPackage rec {
   # tests not included with pypi release
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Replaces django's ImageField with a more flexible interface";
     homepage = "https://github.com/respondcreate/django-versatileimagefield/";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/django-widget-tweaks/default.nix b/nixpkgs/pkgs/development/python-modules/django-widget-tweaks/default.nix
index 99e3abda890a..8529df09bb76 100644
--- a/nixpkgs/pkgs/development/python-modules/django-widget-tweaks/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/django-widget-tweaks/default.nix
@@ -1,4 +1,4 @@
-{ buildPythonPackage, fetchFromGitHub, python, stdenv, django }:
+{ buildPythonPackage, fetchFromGitHub, python, lib, stdenv, django }:
 
 buildPythonPackage rec {
   pname = "django-widget-tweaks";
@@ -14,7 +14,7 @@ buildPythonPackage rec {
   checkPhase = "${python.interpreter} runtests.py";
   propagatedBuildInputs = [ django ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
       description = "Tweak the form field rendering in templates, not in python-level form definitions.";
       homepage = "https://github.com/jazzband/django-widget-tweaks";
       license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/django/2.nix b/nixpkgs/pkgs/development/python-modules/django/2.nix
index 64897890759e..eac48593de20 100644
--- a/nixpkgs/pkgs/development/python-modules/django/2.nix
+++ b/nixpkgs/pkgs/development/python-modules/django/2.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi, substituteAll,
+{ lib, stdenv, buildPythonPackage, fetchPypi, substituteAll,
   isPy3k,
   geos, gdal, pytz, sqlparse,
   withGdal ? false
@@ -15,7 +15,7 @@ buildPythonPackage rec {
     sha256 = "cf5370a4d7765a9dd6d42a7b96b53c74f9446cd38209211304b210fe0404b861";
   };
 
-  patches = stdenv.lib.optional withGdal
+  patches = lib.optional withGdal
     (substituteAll {
       src = ./1.10-gis-libs.template.patch;
       geos = geos;
@@ -29,7 +29,7 @@ buildPythonPackage rec {
   # too complicated to setup
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "A high-level Python Web framework";
     homepage = "https://www.djangoproject.com/";
     license = licenses.bsd3;
diff --git a/nixpkgs/pkgs/development/python-modules/django/3.nix b/nixpkgs/pkgs/development/python-modules/django/3.nix
index c3644d6946fd..2444146e8374 100644
--- a/nixpkgs/pkgs/development/python-modules/django/3.nix
+++ b/nixpkgs/pkgs/development/python-modules/django/3.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , substituteAll
@@ -13,16 +13,16 @@
 
 buildPythonPackage rec {
   pname = "Django";
-  version = "3.1.4";
+  version = "3.1.5";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "edb10b5c45e7e9c0fb1dc00b76ec7449aca258a39ffd613dbd078c51d19c9f03";
+    sha256 = "2d78425ba74c7a1a74b196058b261b9733a8570782f4e2828974777ccca7edf7";
   };
 
-  patches = stdenv.lib.optional withGdal
+  patches = lib.optional withGdal
     (substituteAll {
       src = ./django_3_set_geos_gdal_lib.patch;
       geos = geos;
@@ -39,7 +39,7 @@ buildPythonPackage rec {
   # too complicated to setup
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "A high-level Python Web framework";
     homepage = "https://www.djangoproject.com/";
     license = licenses.bsd3;
diff --git a/nixpkgs/pkgs/development/python-modules/django_appconf/default.nix b/nixpkgs/pkgs/development/python-modules/django_appconf/default.nix
index 45116ddd5548..c9c9913d7644 100644
--- a/nixpkgs/pkgs/development/python-modules/django_appconf/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/django_appconf/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchFromGitHub, six, django, fetchpatch }:
+{ lib, stdenv, buildPythonPackage, fetchFromGitHub, six, django, fetchpatch }:
 buildPythonPackage rec {
   pname = "django-appconf";
   version = "1.0.3";
@@ -26,7 +26,7 @@ buildPythonPackage rec {
     python -m django test --settings="tests.test_settings"
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "A helper class for handling configuration defaults of packaged apps gracefully";
     homepage = "https://django-appconf.readthedocs.org/";
     license = licenses.bsd2;
diff --git a/nixpkgs/pkgs/development/python-modules/django_classytags/default.nix b/nixpkgs/pkgs/development/python-modules/django_classytags/default.nix
index 102e2e7cf935..e0a297e53c0c 100644
--- a/nixpkgs/pkgs/development/python-modules/django_classytags/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/django_classytags/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , django
@@ -19,7 +19,7 @@ buildPythonPackage rec {
   # pypi version doesn't include runtest.py, needed to run tests
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Class based template tags for Django";
     homepage = "https://github.com/divio/django-classy-tags";
     license = licenses.bsd3;
diff --git a/nixpkgs/pkgs/development/python-modules/django_colorful/default.nix b/nixpkgs/pkgs/development/python-modules/django_colorful/default.nix
index 10068f87b079..468327139e64 100644
--- a/nixpkgs/pkgs/development/python-modules/django_colorful/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/django_colorful/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , django
@@ -19,7 +19,7 @@ buildPythonPackage rec {
   # Requires Django >= 1.8
   buildInputs = [ django ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Django extension that provides database and form color fields";
     homepage = "https://github.com/charettes/django-colorful";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/django_compressor/default.nix b/nixpkgs/pkgs/development/python-modules/django_compressor/default.nix
index 1408032d0c27..f00804364899 100644
--- a/nixpkgs/pkgs/development/python-modules/django_compressor/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/django_compressor/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi,
+{ lib, stdenv, buildPythonPackage, fetchPypi,
   rcssmin, rjsmin, django_appconf }:
 buildPythonPackage rec {
     pname = "django_compressor";
@@ -18,7 +18,7 @@ buildPythonPackage rec {
 
     propagatedBuildInputs = [ rcssmin rjsmin django_appconf ];
 
-    meta = with stdenv.lib; {
+    meta = with lib; {
       description = "Compresses linked and inline JavaScript or CSS into single cached files";
       homepage = "https://django-compressor.readthedocs.org/en/latest/";
       license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/django_contrib_comments/default.nix b/nixpkgs/pkgs/development/python-modules/django_contrib_comments/default.nix
index 3f5371e397af..a8872967df4d 100644
--- a/nixpkgs/pkgs/development/python-modules/django_contrib_comments/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/django_contrib_comments/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , django
@@ -15,7 +15,7 @@ buildPythonPackage rec {
 
   propagatedBuildInputs = [ django ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://github.com/django/django-contrib-comments";
     description = "The code formerly known as django.contrib.comments";
     license = licenses.bsd0;
diff --git a/nixpkgs/pkgs/development/python-modules/django_environ/default.nix b/nixpkgs/pkgs/development/python-modules/django_environ/default.nix
index e4ec7505c831..fa2618fa1a71 100644
--- a/nixpkgs/pkgs/development/python-modules/django_environ/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/django_environ/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , django
@@ -18,7 +18,7 @@ buildPythonPackage rec {
   doCheck = false;
   propagatedBuildInputs = [ django six ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Utilize environment variables to configure your Django application";
     homepage = "https://github.com/joke2k/django-environ/";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/django_evolution/default.nix b/nixpkgs/pkgs/development/python-modules/django_evolution/default.nix
index e3b7be798775..dba92efb2d94 100644
--- a/nixpkgs/pkgs/development/python-modules/django_evolution/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/django_evolution/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , isPy3k
@@ -17,7 +17,7 @@ buildPythonPackage rec {
 
   propagatedBuildInputs = [ django ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "A database schema evolution tool for the Django web framework";
     homepage = "https://github.com/beanbaginc/django-evolution";
     license = licenses.bsd0;
diff --git a/nixpkgs/pkgs/development/python-modules/django_guardian/default.nix b/nixpkgs/pkgs/development/python-modules/django_guardian/default.nix
index 364a5e12f52f..60023660ea56 100644
--- a/nixpkgs/pkgs/development/python-modules/django_guardian/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/django_guardian/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi
+{ lib, stdenv, buildPythonPackage, fetchPypi
 , django_environ, mock, django
 , pytest, pytestrunner, pytest-django
 }:
@@ -14,7 +14,7 @@ buildPythonPackage rec {
   checkInputs = [ pytest pytestrunner pytest-django django_environ mock ];
   propagatedBuildInputs = [ django ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Per object permissions for Django";
     homepage = "https://github.com/django-guardian/django-guardian";
     license = [ licenses.mit licenses.bsd2 ];
diff --git a/nixpkgs/pkgs/development/python-modules/django_modelcluster/default.nix b/nixpkgs/pkgs/development/python-modules/django_modelcluster/default.nix
index e41b455cd4b5..500fe2e2fbce 100644
--- a/nixpkgs/pkgs/development/python-modules/django_modelcluster/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/django_modelcluster/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , pytz
@@ -21,7 +21,7 @@ buildPythonPackage rec {
 
   propagatedBuildInputs = [ pytz six ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Django extension to allow working with 'clusters' of models as a single unit, independently of the database";
     homepage = "https://github.com/torchbox/django-modelcluster/";
     license = licenses.bsd2;
diff --git a/nixpkgs/pkgs/development/python-modules/django_nose/default.nix b/nixpkgs/pkgs/development/python-modules/django_nose/default.nix
index 66a4ad7857b9..7f2f9efcfc5b 100644
--- a/nixpkgs/pkgs/development/python-modules/django_nose/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/django_nose/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , nose
@@ -19,7 +19,7 @@ buildPythonPackage rec {
 
   propagatedBuildInputs = [ django nose ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Provides all the goodness of nose in your Django tests";
     homepage = "https://github.com/django-nose/django-nose";
     license = licenses.bsd3;
diff --git a/nixpkgs/pkgs/development/python-modules/django_redis/default.nix b/nixpkgs/pkgs/development/python-modules/django_redis/default.nix
index 114962477fd6..434dea7f0f21 100644
--- a/nixpkgs/pkgs/development/python-modules/django_redis/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/django_redis/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchPypi, buildPythonPackage,
+{ lib, stdenv, fetchPypi, buildPythonPackage,
   mock, django, redis, msgpack }:
 buildPythonPackage rec {
   pname = "django-redis";
@@ -19,7 +19,7 @@ buildPythonPackage rec {
     msgpack
   ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Full featured redis cache backend for Django";
     homepage = "https://github.com/niwibe/django-redis";
     license = licenses.bsd3;
diff --git a/nixpkgs/pkgs/development/python-modules/django_reversion/default.nix b/nixpkgs/pkgs/development/python-modules/django_reversion/default.nix
index 9d307734367c..16574770ff9e 100644
--- a/nixpkgs/pkgs/development/python-modules/django_reversion/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/django_reversion/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , django
@@ -18,7 +18,7 @@ buildPythonPackage rec {
 
   propagatedBuildInputs = [ django ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "An extension to the Django web framework that provides comprehensive version control facilities";
     homepage = "https://github.com/etianen/django-reversion";
     license = licenses.bsd3;
diff --git a/nixpkgs/pkgs/development/python-modules/django_silk/default.nix b/nixpkgs/pkgs/development/python-modules/django_silk/default.nix
index 8efd62d7d181..66475b35d2a3 100644
--- a/nixpkgs/pkgs/development/python-modules/django_silk/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/django_silk/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , python
 , fetchFromGitHub
@@ -54,7 +54,7 @@ buildPythonPackage rec {
     DB=sqlite3 DB_NAME=db.sqlite3 ${python.interpreter} manage.py test
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Silky smooth profiling for the Django Framework";
     homepage = "https://github.com/jazzband/django-silk";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/django_taggit/default.nix b/nixpkgs/pkgs/development/python-modules/django_taggit/default.nix
index 80ee899b1832..e715dde7c41e 100644
--- a/nixpkgs/pkgs/development/python-modules/django_taggit/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/django_taggit/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , python
 , fetchPypi
@@ -28,7 +28,7 @@ buildPythonPackage rec {
     ${python.interpreter} -m django test --settings=tests.settings
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "django-taggit is a reusable Django application for simple tagging";
     homepage = "https://github.com/alex/django-taggit/tree/master/";
     license = licenses.bsd2;
diff --git a/nixpkgs/pkgs/development/python-modules/django_treebeard/default.nix b/nixpkgs/pkgs/development/python-modules/django_treebeard/default.nix
index 060867d837f9..e734a5f7ae8e 100644
--- a/nixpkgs/pkgs/development/python-modules/django_treebeard/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/django_treebeard/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , pytest
@@ -7,11 +7,11 @@
 
 buildPythonPackage rec {
   pname = "django-treebeard";
-  version = "4.3.1";
+  version = "4.4";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "83aebc34a9f06de7daaec330d858d1c47887e81be3da77e3541fe7368196dd8a";
+    sha256 = "f50e4eea146f7af6702decf7ef198ac1eee1fb9bb4af2c5dba276c3c48f76623";
   };
 
   buildInputs = [ pytest ];
@@ -20,7 +20,7 @@ buildPythonPackage rec {
   # tests fail  "AppRegistryNotReady("Apps aren't loaded yet.")"
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Efficient tree implementations for Django 1.6+";
     homepage = "https://tabo.pe/projects/django-treebeard/";
     maintainers = with maintainers; [ desiderius ];
diff --git a/nixpkgs/pkgs/development/python-modules/djangoql/default.nix b/nixpkgs/pkgs/development/python-modules/djangoql/default.nix
index ec39f0739aeb..ef9e6be1d3c4 100644
--- a/nixpkgs/pkgs/development/python-modules/djangoql/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/djangoql/default.nix
@@ -3,11 +3,11 @@
 
 buildPythonPackage rec {
   pname = "djangoql";
-  version = "0.14.2";
+  version = "0.14.3";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "91fd65d9ee4b09092602ff05aca8a21c5a18062faf56f269a011b8e8e41483c6";
+    sha256 = "d1b1344cb1e037f094c04ccc67b809e8df80dea1e88cfb919078426131737018";
   };
 
   propagatedBuildInputs = [ ply ];
diff --git a/nixpkgs/pkgs/development/python-modules/djangorestframework/default.nix b/nixpkgs/pkgs/development/python-modules/djangorestframework/default.nix
index 8d1055029b7a..ce92fab3e965 100644
--- a/nixpkgs/pkgs/development/python-modules/djangorestframework/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/djangorestframework/default.nix
@@ -1,13 +1,15 @@
-{ stdenv, buildPythonPackage, fetchPypi, django, isPy27 }:
+{ lib, stdenv, buildPythonPackage, fetchFromGitHub, django, isPy27 }:
 
 buildPythonPackage rec {
-  version = "3.11.2";
+  version = "3.12.2";
   pname = "djangorestframework";
   disabled = isPy27;
 
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "a5967b68a04e0d97d10f4df228e30f5a2d82ba63b9d03e1759f84993b7bf1b53";
+  src = fetchFromGitHub {
+    owner = "encode";
+    repo = "django-rest-framework";
+    rev = version;
+    sha256 = "y/dw6qIOc6NaNpBWJXDwHX9aFodgKv9rGKWQKS6STlk=";
   };
 
   # Test settings are missing
@@ -15,7 +17,7 @@ buildPythonPackage rec {
 
   propagatedBuildInputs = [ django ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Web APIs for Django, made easy";
     homepage = "https://www.django-rest-framework.org/";
     maintainers = with maintainers; [ desiderius ];
diff --git a/nixpkgs/pkgs/development/python-modules/dkimpy/default.nix b/nixpkgs/pkgs/development/python-modules/dkimpy/default.nix
index aaecda77780c..e7a80d91d24c 100644
--- a/nixpkgs/pkgs/development/python-modules/dkimpy/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/dkimpy/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchPypi, openssl, buildPythonPackage
+{ lib, stdenv, fetchPypi, openssl, buildPythonPackage
 , pytest, dnspython, pynacl, authres, python }:
 
 buildPythonPackage rec {
@@ -22,7 +22,7 @@ buildPythonPackage rec {
     ${python.interpreter} ./test.py
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "DKIM + ARC email signing/verification tools + Python module";
     longDescription = ''
       Python module that implements DKIM (DomainKeys Identified Mail) email
diff --git a/nixpkgs/pkgs/development/python-modules/dlib/default.nix b/nixpkgs/pkgs/development/python-modules/dlib/default.nix
index 027500ff2abf..204c1a985425 100644
--- a/nixpkgs/pkgs/development/python-modules/dlib/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/dlib/default.nix
@@ -24,6 +24,5 @@ buildPythonPackage {
 
   checkInputs = [ pytest more-itertools ];
 
-  enableParallelBuilding = true;
   dontUseCmakeConfigure = true;
 }
diff --git a/nixpkgs/pkgs/development/python-modules/dnachisel/default.nix b/nixpkgs/pkgs/development/python-modules/dnachisel/default.nix
index 465f1bb5b4d7..50ba05aca6f3 100644
--- a/nixpkgs/pkgs/development/python-modules/dnachisel/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/dnachisel/default.nix
@@ -1,21 +1,27 @@
 { lib
 , buildPythonPackage
-, fetchPypi
+, fetchFromGitHub
 , biopython
 , docopt
 , flametree
 , numpy
 , proglog
+, pytestCheckHook
 , python-codon-tables
- }:
+, primer3
+, genome-collector
+, matplotlib
+}:
 
 buildPythonPackage rec {
   pname = "dnachisel";
-  version = "3.2.5";
+  version = "3.2.6";
 
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "35301c5eda0baca5902403504e0b5a22eb65da92c2bbd23199d95c4a6bf0ef37";
+  src = fetchFromGitHub {
+    owner = "Edinburgh-Genome-Foundry";
+    repo = "DnaChisel";
+    rev = "v${version}";
+    sha256 = "0m88biw7sycjwsmncdybj9n3yf4n9cyvifv9zv7irm8ha3scchji";
   };
 
   propagatedBuildInputs = [
@@ -27,9 +33,24 @@ buildPythonPackage rec {
     python-codon-tables
   ];
 
-  # no tests in tarball
-  doCheck = false;
+  checkInputs = [
+    primer3
+    genome-collector
+    matplotlib
+    pytestCheckHook
+  ];
 
+  # Disable tests which requires network access
+  disabledTests = [
+    "test_circular_sequence_optimize_with_report"
+    "test_constraints_reports"
+    "test_optimize_with_report"
+    "test_optimize_with_report_no_solution"
+    "test_avoid_blast_matches_with_list"
+    "test_avoid_phage_blast_matches"
+    "test_avoid_matches_with_list"
+    "test_avoid_matches_with_phage"
+   ];
   pythonImportsCheck = [ "dnachisel" ];
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/development/python-modules/docker-pycreds/default.nix b/nixpkgs/pkgs/development/python-modules/docker-pycreds/default.nix
index a75278d45d43..543f4994020c 100644
--- a/nixpkgs/pkgs/development/python-modules/docker-pycreds/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/docker-pycreds/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi, six }:
+{ lib, stdenv, buildPythonPackage, fetchPypi, six }:
 
 buildPythonPackage rec {
   pname = "docker-pycreds";
@@ -14,7 +14,7 @@ buildPythonPackage rec {
 
   propagatedBuildInputs = [ six ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Python bindings for the docker credentials store API.";
     homepage = "https://github.com/shin-/dockerpy-creds";
     license = licenses.asl20;
diff --git a/nixpkgs/pkgs/development/python-modules/docker/default.nix b/nixpkgs/pkgs/development/python-modules/docker/default.nix
index 7a23d17aca2a..5b148a9d62af 100644
--- a/nixpkgs/pkgs/development/python-modules/docker/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/docker/default.nix
@@ -11,11 +11,11 @@
 
 buildPythonPackage rec {
   pname = "docker";
-  version = "4.4.0";
+  version = "4.4.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "cffc771d4ea1389fc66bc95cb72d304aa41d1a1563482a9a000fba3a84ed5071";
+    sha256 = "sha256-BgSnRxnV0t5Dh1OTS3Vb/NpvYvSbjkswlppLCiqKEiA=";
   };
 
   nativeBuildInputs = lib.optional isPy27 mock;
diff --git a/nixpkgs/pkgs/development/python-modules/dockerfile-parse/default.nix b/nixpkgs/pkgs/development/python-modules/dockerfile-parse/default.nix
index e3a998126e9c..74e363d18b97 100644
--- a/nixpkgs/pkgs/development/python-modules/dockerfile-parse/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/dockerfile-parse/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi, six, pytestcov, pytest }:
+{ lib, stdenv, buildPythonPackage, fetchPypi, six, pytestcov, pytest }:
 
 buildPythonPackage rec {
   version = "1.1.0";
@@ -17,7 +17,7 @@ buildPythonPackage rec {
 
   checkInputs = [ pytestcov pytest ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Python library for parsing Dockerfile files";
     homepage = "https://github.com/DBuildService/dockerfile-parse";
     license = licenses.bsd3;
diff --git a/nixpkgs/pkgs/development/python-modules/dockerpty/default.nix b/nixpkgs/pkgs/development/python-modules/dockerpty/default.nix
index fd9d7b4b88da..b6267b87c1bd 100644
--- a/nixpkgs/pkgs/development/python-modules/dockerpty/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/dockerpty/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi, six }:
+{ lib, stdenv, buildPythonPackage, fetchPypi, six }:
 
 buildPythonPackage rec {
   pname = "dockerpty";
@@ -11,7 +11,7 @@ buildPythonPackage rec {
 
   propagatedBuildInputs = [ six ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Functionality needed to operate the pseudo-tty (PTY) allocated to a docker container";
     homepage = "https://github.com/d11wtq/dockerpty";
     license = licenses.asl20;
diff --git a/nixpkgs/pkgs/development/python-modules/docopt/default.nix b/nixpkgs/pkgs/development/python-modules/docopt/default.nix
index 135bedfc43e8..2dc4bb38cf14 100644
--- a/nixpkgs/pkgs/development/python-modules/docopt/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/docopt/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi }:
+{ lib, stdenv, buildPythonPackage, fetchPypi }:
 
 buildPythonPackage rec {
   pname = "docopt";
@@ -9,7 +9,7 @@ buildPythonPackage rec {
     sha256 = "14f4hn6d1j4b99svwbaji8n2zj58qicyz19mm0x6pmhb50jsics9";
   };
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Pythonic argument parser, that will make you smile";
     homepage = "http://docopt.org/";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/doctest-ignore-unicode/default.nix b/nixpkgs/pkgs/development/python-modules/doctest-ignore-unicode/default.nix
index 0241fd15ad48..12d15799ecc6 100644
--- a/nixpkgs/pkgs/development/python-modules/doctest-ignore-unicode/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/doctest-ignore-unicode/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi, nose }:
+{ lib, stdenv, buildPythonPackage, fetchPypi, nose }:
 
 buildPythonPackage rec {
   pname = "doctest-ignore-unicode";
@@ -11,7 +11,7 @@ buildPythonPackage rec {
 
   propagatedBuildInputs = [ nose ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Add flag to ignore unicode literal prefixes in doctests";
     license = with licenses; [ asl20 ];
     homepage = "https://github.com/gnublade/doctest-ignore-unicode";
diff --git a/nixpkgs/pkgs/development/python-modules/dogpile.cache/default.nix b/nixpkgs/pkgs/development/python-modules/dogpile.cache/default.nix
index f36e1347be9f..5dba1b91bc17 100644
--- a/nixpkgs/pkgs/development/python-modules/dogpile.cache/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/dogpile.cache/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , pythonOlder
@@ -37,7 +37,7 @@ buildPythonPackage rec {
 
   propagatedBuildInputs = [ decorator stevedore ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "A caching front-end based on the Dogpile lock";
     homepage = "https://bitbucket.org/zzzeek/dogpile.cache";
     license = licenses.bsd3;
diff --git a/nixpkgs/pkgs/development/python-modules/dogpile.core/default.nix b/nixpkgs/pkgs/development/python-modules/dogpile.core/default.nix
index 41340cda26ee..f6eabc378b3b 100644
--- a/nixpkgs/pkgs/development/python-modules/dogpile.core/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/dogpile.core/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi }:
+{ lib, stdenv, buildPythonPackage, fetchPypi }:
 
 buildPythonPackage rec {
   pname = "dogpile.core";
@@ -11,7 +11,7 @@ buildPythonPackage rec {
 
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "A 'dogpile' lock, typically used as a component of a larger caching solution";
     homepage = "https://bitbucket.org/zzzeek/dogpile.core";
     license = licenses.bsd3;
diff --git a/nixpkgs/pkgs/development/python-modules/doit/default.nix b/nixpkgs/pkgs/development/python-modules/doit/default.nix
new file mode 100644
index 000000000000..36cd0b0ee185
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/doit/default.nix
@@ -0,0 +1,48 @@
+{ lib
+, stdenv
+, fetchPypi
+, buildPythonPackage
+, isPy3k
+, mock
+, pytestCheckHook
+, cloudpickle
+, pyinotify
+, macfsevents
+}:
+
+buildPythonPackage rec {
+  pname = "doit";
+  version = "0.33.1";
+
+  disabled = !isPy3k;
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "37c3b35c2151647b968b2af24481112b2f813c30f695366db0639d529190a143";
+  };
+
+  propagatedBuildInputs = [ cloudpickle ]
+    ++ lib.optional stdenv.isLinux pyinotify
+    ++ lib.optional stdenv.isDarwin macfsevents;
+
+  checkInputs = [ mock pytestCheckHook ];
+
+  disabledTests = [
+    # depends on doit-py, which has a circular dependency on doit
+    "test___main__.py"
+  ];
+
+  meta = with lib; {
+    homepage = "https://pydoit.org/";
+    description = "A task management & automation tool";
+    license = licenses.mit;
+    longDescription = ''
+      doit is a modern open-source build-tool written in python
+      designed to be simple to use and flexible to deal with complex
+      work-flows. It is specially suitable for building and managing
+      custom work-flows where there is no out-of-the-box solution
+      available.
+    '';
+    maintainers = with maintainers; [ pSub ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/dot2tex/default.nix b/nixpkgs/pkgs/development/python-modules/dot2tex/default.nix
index 03445f79117f..2626f420676a 100644
--- a/nixpkgs/pkgs/development/python-modules/dot2tex/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/dot2tex/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , python
 , buildPythonPackage
 , fetchPypi
@@ -37,7 +37,7 @@ buildPythonPackage rec {
     ${python.interpreter} tests/test_dot2tex.py
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Convert graphs generated by Graphviz to LaTeX friendly formats";
     homepage = "https://github.com/kjellmf/dot2tex";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/dotty-dict/default.nix b/nixpkgs/pkgs/development/python-modules/dotty-dict/default.nix
new file mode 100644
index 000000000000..22d469b96693
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/dotty-dict/default.nix
@@ -0,0 +1,26 @@
+{ lib
+, fetchPypi
+, buildPythonPackage
+, setuptools_scm
+}:
+
+buildPythonPackage rec {
+  pname = "dotty_dict";
+  version = "1.3.0";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "sha256-6wA1o2KezYQ5emjx9C8elKvRw0V3oZzT6srTMe58uvA=";
+  };
+
+  nativeBuildInputs = [ setuptools_scm ];
+
+  doCheck = false;
+
+  meta = with lib; {
+    description = "Dictionary wrapper for quick access to deeply nested keys";
+    homepage = "https://dotty-dict.readthedocs.io";
+    license = licenses.mit;
+    maintainers = with maintainers; [ AndersonTorres ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/dpath/default.nix b/nixpkgs/pkgs/development/python-modules/dpath/default.nix
index 548bd5168385..505bd7bb456c 100644
--- a/nixpkgs/pkgs/development/python-modules/dpath/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/dpath/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchPypi, buildPythonPackage, isPy27
+{ lib, stdenv, fetchPypi, buildPythonPackage, isPy27
 , mock, pytestCheckHook, nose, hypothesis
 }:
 
@@ -15,7 +15,7 @@ buildPythonPackage rec {
   # use pytest as nosetests hangs
   checkInputs = [ mock nose pytestCheckHook hypothesis ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://github.com/akesterson/dpath-python";
     license = [ licenses.mit ];
     description = "A python library for accessing and searching dictionaries via /slashed/paths ala xpath";
diff --git a/nixpkgs/pkgs/development/python-modules/dpkt/default.nix b/nixpkgs/pkgs/development/python-modules/dpkt/default.nix
index 4dd0de3b2d8c..177b260e8044 100644
--- a/nixpkgs/pkgs/development/python-modules/dpkt/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/dpkt/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchPypi, buildPythonPackage }:
+{ lib, stdenv, fetchPypi, buildPythonPackage }:
 
 buildPythonPackage rec {
   pname = "dpkt";
@@ -9,7 +9,7 @@ buildPythonPackage rec {
     sha256 = "f4e579cbaf6e2285ebf3a9e84019459b4367636bac079ba169527e582fca48b4";
   };
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Fast, simple packet creation / parsing, with definitions for the basic TCP/IP protocols";
     homepage = "https://github.com/kbandla/dpkt";
     license = licenses.bsd3;
diff --git a/nixpkgs/pkgs/development/python-modules/drf-yasg/default.nix b/nixpkgs/pkgs/development/python-modules/drf-yasg/default.nix
index 1488d9382289..dd92d51d6c6b 100644
--- a/nixpkgs/pkgs/development/python-modules/drf-yasg/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/drf-yasg/default.nix
@@ -1,5 +1,5 @@
 {
-  stdenv,
+  lib, stdenv,
   buildPythonPackage,
   fetchPypi,
   inflection,
@@ -31,7 +31,7 @@ buildPythonPackage rec {
     djangorestframework
   ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Generation of Swagger/OpenAPI schemas for Django REST Framework";
     homepage = "https://github.com/axnsan12/drf-yasg";
     maintainers = with maintainers; [ ivegotasthma ];
diff --git a/nixpkgs/pkgs/development/python-modules/dropbox/default.nix b/nixpkgs/pkgs/development/python-modules/dropbox/default.nix
index b58d24e3fecf..22e66d0a4a43 100644
--- a/nixpkgs/pkgs/development/python-modules/dropbox/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/dropbox/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi
+{ lib, stdenv, buildPythonPackage, fetchPypi
 , pytestrunner, requests, urllib3, mock, setuptools }:
 
 buildPythonPackage rec {
@@ -16,7 +16,7 @@ buildPythonPackage rec {
   buildInputs = [ pytestrunner ];
   propagatedBuildInputs = [ requests urllib3 mock setuptools ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "A Python library for Dropbox's HTTP-based Core and Datastore APIs";
     homepage = "https://www.dropbox.com/developers/core/docs";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/ds-store/default.nix b/nixpkgs/pkgs/development/python-modules/ds-store/default.nix
new file mode 100644
index 000000000000..00d10e749496
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/ds-store/default.nix
@@ -0,0 +1,31 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, mac_alias
+, pytestCheckHook
+}:
+
+buildPythonPackage rec {
+  pname = "ds_store";
+  version = "1.3.0";
+
+  src = fetchFromGitHub {
+    owner = "al45tair";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "1zmhnz110dvisydp5h6s0ry2v9qf4rgr60xhhlak0c66zpvlkkl0";
+  };
+
+  propagatedBuildInputs = [ mac_alias ];
+
+  checkInputs = [ pytestCheckHook ];
+
+  pythonImportsCheck = [ "ds_store" ];
+
+  meta = with lib; {
+    homepage = "https://github.com/al45tair/ds_store";
+    description = "Manipulate Finder .DS_Store files from Python";
+    license = licenses.mit;
+    maintainers = with maintainers; [ prusnak ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/dtopt/default.nix b/nixpkgs/pkgs/development/python-modules/dtopt/default.nix
index 4b649cad9668..84631c217089 100644
--- a/nixpkgs/pkgs/development/python-modules/dtopt/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/dtopt/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , isPy3k
@@ -15,7 +15,7 @@ buildPythonPackage rec {
     sha256 = "06ae07a12294a7ba708abaa63f838017d1a2faf6147a1e7a14ca4fa28f86da7f";
   };
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Add options to doctest examples while they are running";
     homepage = "https://pypi.python.org/pypi/dtopt";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/dufte/default.nix b/nixpkgs/pkgs/development/python-modules/dufte/default.nix
index 8fe202592359..d8435afa3f97 100644
--- a/nixpkgs/pkgs/development/python-modules/dufte/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/dufte/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , isPy3k
@@ -23,7 +23,7 @@ buildPythonPackage rec {
   propagatedBuildInputs = [
     matplotlib
     numpy
-  ] ++ stdenv.lib.optionals (pythonOlder "3.8") [
+  ] ++ lib.optionals (pythonOlder "3.8") [
     importlib-metadata
   ];
 
@@ -35,7 +35,7 @@ buildPythonPackage rec {
   checkInputs = [ pytestCheckHook ];
   pythonImportsCheck = [ "dufte" ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Clean matplotlib plots";
     homepage = "https://github.com/nschloe/dufte";
     license = licenses.gpl3Plus;
diff --git a/nixpkgs/pkgs/development/python-modules/dulwich/0_19.nix b/nixpkgs/pkgs/development/python-modules/dulwich/0_19.nix
index 82b9bed492cc..f0d3bad7a04f 100644
--- a/nixpkgs/pkgs/development/python-modules/dulwich/0_19.nix
+++ b/nixpkgs/pkgs/development/python-modules/dulwich/0_19.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi
+{ lib, stdenv, buildPythonPackage, fetchPypi
 , urllib3, certifi
 , gevent, geventhttpclient, mock, fastimport
 , git, glibcLocales }:
@@ -21,7 +21,7 @@ buildPythonPackage rec {
 
   doCheck = !stdenv.isDarwin;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Simple Python implementation of the Git file formats and protocols";
     homepage = "https://samba.org/~jelmer/dulwich/";
     license = licenses.gpl2Plus;
diff --git a/nixpkgs/pkgs/development/python-modules/dulwich/default.nix b/nixpkgs/pkgs/development/python-modules/dulwich/default.nix
index fb29133da0ef..5d4ac94f7fa0 100644
--- a/nixpkgs/pkgs/development/python-modules/dulwich/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/dulwich/default.nix
@@ -1,15 +1,15 @@
-{ stdenv, buildPythonPackage, fetchPypi
+{ lib, stdenv, buildPythonPackage, fetchPypi
 , urllib3, certifi
 , gevent, geventhttpclient, mock, fastimport
 , git, glibcLocales }:
 
 buildPythonPackage rec {
-  version = "0.20.14";
+  version = "0.20.15";
   pname = "dulwich";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "21d6ee82708f7c67ce3fdcaf1f1407e524f7f4f7411a410a972faa2176baec0d";
+    sha256 = "1248942fr12av2rkzpm2fq0qn6rajvv2lcgq65h8kby27qvp65zv";
   };
 
   LC_ALL = "en_US.UTF-8";
@@ -21,10 +21,15 @@ buildPythonPackage rec {
 
   doCheck = !stdenv.isDarwin;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Simple Python implementation of the Git file formats and protocols";
-    homepage = "https://samba.org/~jelmer/dulwich/";
-    license = licenses.gpl2Plus;
+    longDescription = ''
+      Dulwich is a Python implementation of the Git file formats and protocols, which
+      does not depend on Git itself. All functionality is available in pure Python.
+    '';
+    homepage = "https://www.dulwich.io/";
+    changelog = "https://github.com/dulwich/dulwich/blob/dulwich-${version}/NEWS";
+    license = with licenses; [ asl20 gpl2Plus];
     maintainers = with maintainers; [ koral ];
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/dyn/default.nix b/nixpkgs/pkgs/development/python-modules/dyn/default.nix
index cc7a330e97cf..b5fa28f2de6b 100644
--- a/nixpkgs/pkgs/development/python-modules/dyn/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/dyn/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi, pytest, pytestcov, mock
+{ lib, stdenv, buildPythonPackage, fetchPypi, pytest, pytestcov, mock
 , pytest_xdist, covCore, glibcLocales }:
 
 buildPythonPackage rec {
@@ -24,7 +24,7 @@ buildPythonPackage rec {
 
   LC_ALL="en_US.UTF-8";
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Dynect dns lib";
     homepage = "https://dyn.readthedocs.org/en/latest/intro.html";
     license = licenses.bsd3;
diff --git a/nixpkgs/pkgs/development/python-modules/dynd/default.nix b/nixpkgs/pkgs/development/python-modules/dynd/default.nix
index 9150a6746a2b..f23d19510ee7 100644
--- a/nixpkgs/pkgs/development/python-modules/dynd/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/dynd/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , isPyPy
 , isPy3k
@@ -35,7 +35,7 @@ buildPythonPackage rec {
   buildInputs = [ pkgs.libdynd.dev cython ];
   propagatedBuildInputs = [ numpy pkgs.libdynd ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "http://libdynd.org";
     license = licenses.bsd2;
     description = "Python exposure of dynd";
diff --git a/nixpkgs/pkgs/development/python-modules/easydict/default.nix b/nixpkgs/pkgs/development/python-modules/easydict/default.nix
index d8dbb045ddca..e1898d3fc9e4 100644
--- a/nixpkgs/pkgs/development/python-modules/easydict/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/easydict/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchPypi, buildPythonPackage }:
+{ lib, buildPythonPackage, fetchPypi }:
 
 buildPythonPackage rec {
   pname = "easydict";
@@ -11,9 +11,9 @@ buildPythonPackage rec {
 
   docheck = false; # No tests in archive
 
-  meta = {
+  meta = with lib; {
     homepage = "https://github.com/makinacorpus/easydict";
-    license = with stdenv.lib; licenses.lgpl3;
+    license = licenses.lgpl3;
     description = "Access dict values as attributes (works recursively)";
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/easygui/default.nix b/nixpkgs/pkgs/development/python-modules/easygui/default.nix
index 30c03ae6e2c5..441d839d36f6 100644
--- a/nixpkgs/pkgs/development/python-modules/easygui/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/easygui/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchPypi, buildPythonPackage }:
+{ lib, stdenv, fetchPypi, buildPythonPackage }:
 
 buildPythonPackage rec {
   pname = "easygui";
@@ -11,7 +11,7 @@ buildPythonPackage rec {
 
   doCheck = false; # No tests available
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Very simple, very easy GUI programming in Python";
     homepage = "https://github.com/robertlugg/easygui";
     license = licenses.bsd3;
diff --git a/nixpkgs/pkgs/development/python-modules/easyprocess/default.nix b/nixpkgs/pkgs/development/python-modules/easyprocess/default.nix
index 3dda2c914556..fc86edf5d4d0 100644
--- a/nixpkgs/pkgs/development/python-modules/easyprocess/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/easyprocess/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi }:
+{ lib, stdenv, buildPythonPackage, fetchPypi }:
 
 buildPythonPackage rec {
   pname = "EasyProcess";
@@ -12,7 +12,7 @@ buildPythonPackage rec {
   # No tests
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Easy to use python subprocess interface";
     homepage = "https://github.com/ponty/EasyProcess";
     license = licenses.bsdOriginal;
diff --git a/nixpkgs/pkgs/development/python-modules/ecdsa/default.nix b/nixpkgs/pkgs/development/python-modules/ecdsa/default.nix
index 1d2a780bbbbd..2a17f84bb3b4 100644
--- a/nixpkgs/pkgs/development/python-modules/ecdsa/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/ecdsa/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , pkgs
@@ -18,7 +18,7 @@ buildPythonPackage rec {
   # Only needed for tests
   checkInputs = [ pkgs.openssl ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "ECDSA cryptographic signature library";
     homepage = "https://github.com/warner/python-ecdsa";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/ed25519/default.nix b/nixpkgs/pkgs/development/python-modules/ed25519/default.nix
index 27ebc6a0ff27..183d7cc3ca55 100644
--- a/nixpkgs/pkgs/development/python-modules/ed25519/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/ed25519/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchPypi, buildPythonPackage }:
+{ lib, stdenv, fetchPypi, buildPythonPackage }:
 
 buildPythonPackage rec {
   pname = "ed25519";
@@ -9,7 +9,7 @@ buildPythonPackage rec {
     sha256 = "0n1k83ww0pr4q6z0h7p8hvy21hcgb96jvgllfbwhvvyf37h3w182";
   };
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Ed25519 public-key signatures";
     homepage = "https://github.com/warner/python-ed25519";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/editorconfig/default.nix b/nixpkgs/pkgs/development/python-modules/editorconfig/default.nix
index ac3845bb6671..727c3003db5c 100644
--- a/nixpkgs/pkgs/development/python-modules/editorconfig/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/editorconfig/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchgit
 , cmake
@@ -25,7 +25,7 @@ buildPythonPackage rec {
     ctest -E "utf_8_char" .
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://editorconfig.org";
     description = "EditorConfig File Locator and Interpreter for Python";
     license = licenses.psfl;
diff --git a/nixpkgs/pkgs/development/python-modules/edward/default.nix b/nixpkgs/pkgs/development/python-modules/edward/default.nix
index 0f42ddcc799b..c1171043356a 100644
--- a/nixpkgs/pkgs/development/python-modules/edward/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/edward/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi, isPy27, pythonAtLeast
+{ lib, stdenv, buildPythonPackage, fetchPypi, isPy27, pythonAtLeast
 , Keras, numpy, scipy, six, tensorflow }:
 
 buildPythonPackage rec {
@@ -17,7 +17,7 @@ buildPythonPackage rec {
 
   propagatedBuildInputs = [ Keras numpy scipy six tensorflow ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Probabilistic programming language using Tensorflow";
     homepage = "https://github.com/blei-lab/edward";
     license = licenses.asl20;
diff --git a/nixpkgs/pkgs/development/python-modules/eggdeps/default.nix b/nixpkgs/pkgs/development/python-modules/eggdeps/default.nix
index 8c7d7679005e..ae339368ff5d 100644
--- a/nixpkgs/pkgs/development/python-modules/eggdeps/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/eggdeps/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , zope_interface
@@ -20,7 +20,7 @@ buildPythonPackage rec {
   # tests fail, see https://hydra.nixos.org/build/4316603/log/raw
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "A tool which computes a dependency graph between active Python eggs";
     homepage = "http://thomas-lotze.de/en/software/eggdeps/";
     license = licenses.zpl20;
diff --git a/nixpkgs/pkgs/development/python-modules/elasticsearch-dsl/default.nix b/nixpkgs/pkgs/development/python-modules/elasticsearch-dsl/default.nix
index 06c4e4045ce1..67e277b57ac4 100644
--- a/nixpkgs/pkgs/development/python-modules/elasticsearch-dsl/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/elasticsearch-dsl/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , isPy3k
@@ -18,13 +18,13 @@ buildPythonPackage rec {
   };
 
   propagatedBuildInputs = [ elasticsearch python-dateutil six ]
-                          ++ stdenv.lib.optional (!isPy3k) ipaddress;
+                          ++ lib.optional (!isPy3k) ipaddress;
 
   # ImportError: No module named test_elasticsearch_dsl
   # Tests require a local instance of elasticsearch
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "High level Python client for Elasticsearch";
     longDescription = ''
       Elasticsearch DSL is a high-level library whose aim is to help with
diff --git a/nixpkgs/pkgs/development/python-modules/elasticsearch/default.nix b/nixpkgs/pkgs/development/python-modules/elasticsearch/default.nix
index 8f403469e193..4929d1f51a48 100644
--- a/nixpkgs/pkgs/development/python-modules/elasticsearch/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/elasticsearch/default.nix
@@ -2,7 +2,7 @@
 , fetchPypi
 , urllib3, requests
 , nosexcover, mock
-, stdenv
+, lib, stdenv
 }:
 
 buildPythonPackage (rec {
@@ -20,7 +20,7 @@ buildPythonPackage (rec {
   propagatedBuildInputs = [ urllib3 requests ];
   buildInputs = [ nosexcover mock ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Official low-level client for Elasticsearch";
     homepage = "https://github.com/elasticsearch/elasticsearch-py";
     license = licenses.asl20;
diff --git a/nixpkgs/pkgs/development/python-modules/elementpath/default.nix b/nixpkgs/pkgs/development/python-modules/elementpath/default.nix
index 9b9597c98bef..bbab0bfe6e4f 100644
--- a/nixpkgs/pkgs/development/python-modules/elementpath/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/elementpath/default.nix
@@ -1,7 +1,7 @@
 { lib, buildPythonPackage, fetchFromGitHub, isPy27 }:
 
 buildPythonPackage rec {
-  version = "2.0.4";
+  version = "2.1.1";
   pname = "elementpath";
   disabled = isPy27; # uses incompatible class syntax
 
@@ -9,7 +9,7 @@ buildPythonPackage rec {
     owner = "sissaschool";
     repo = "elementpath";
     rev = "v${version}";
-    sha256 = "0812il5xn7cq0qa0vmkszrvprakfpyxmilk7s918l9kavdy4al8x";
+    sha256 = "1h910v8f0648nqnk40bxgdim3623m07yg4xdfwcips2h55d19rk2";
   };
 
   # avoid circular dependency with xmlschema which directly depends on this
diff --git a/nixpkgs/pkgs/development/python-modules/eliot/default.nix b/nixpkgs/pkgs/development/python-modules/eliot/default.nix
index 557be014f86c..472834c5c725 100644
--- a/nixpkgs/pkgs/development/python-modules/eliot/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/eliot/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , pythonOlder
@@ -15,12 +15,12 @@
 
 buildPythonPackage rec {
   pname = "eliot";
-  version = "1.12.0";
+  version = "1.13.0";
   disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0wabv7hk63l12881f4zw02mmj06583qsx2im0yywdjlj8f56vqdn";
+    sha256 = "5760194b308a7ab35514ae1b942d88e9f2359071556d82580383f09ca586fff7";
   };
 
   checkInputs = [
@@ -47,7 +47,7 @@ buildPythonPackage rec {
     pytest -k 'not test_parse_stream'
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://eliot.readthedocs.io";
     description = "Logging library that tells you why it happened";
     license = licenses.asl20;
diff --git a/nixpkgs/pkgs/development/python-modules/emcee/default.nix b/nixpkgs/pkgs/development/python-modules/emcee/default.nix
index ed513579457f..12974a9422d6 100644
--- a/nixpkgs/pkgs/development/python-modules/emcee/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/emcee/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi
+{ lib, stdenv, buildPythonPackage, fetchPypi
 , numpy }:
 
 buildPythonPackage rec {
@@ -12,7 +12,7 @@ buildPythonPackage rec {
 
   propagatedBuildInputs = [ numpy ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Kick ass affine-invariant ensemble MCMC sampling";
     homepage = "https://emcee.readthedocs.io/";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/emoji/default.nix b/nixpkgs/pkgs/development/python-modules/emoji/default.nix
index aabebe1c5210..d15185e14479 100644
--- a/nixpkgs/pkgs/development/python-modules/emoji/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/emoji/default.nix
@@ -11,7 +11,7 @@ buildPythonPackage rec {
 
   checkInputs = [ nose ];
 
-  checkPhase = ''nosetests'';
+  checkPhase = "nosetests";
 
   meta = with lib; {
     description = "Emoji for Python";
diff --git a/nixpkgs/pkgs/development/python-modules/emv/default.nix b/nixpkgs/pkgs/development/python-modules/emv/default.nix
index 6dfe39f8b6b1..26d40d8d2052 100644
--- a/nixpkgs/pkgs/development/python-modules/emv/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/emv/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchFromGitHub
+{ lib, stdenv, buildPythonPackage, fetchFromGitHub
 , click, enum-compat, pyscard, pycountry, terminaltables
 , pytestCheckHook, pythonOlder
 }:
@@ -30,7 +30,7 @@ buildPythonPackage rec {
       --replace '"argparse==1.4.0",' ""
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://github.com/russss/python-emv";
     description = "Implementation of the EMV chip-and-pin smartcard protocol";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/enum/default.nix b/nixpkgs/pkgs/development/python-modules/enum/default.nix
index 92d3faa59891..ad266623c78b 100644
--- a/nixpkgs/pkgs/development/python-modules/enum/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/enum/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , isPy3k
@@ -17,7 +17,7 @@ buildPythonPackage rec {
 
   doCheck = !isPyPy;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://pypi.python.org/pypi/enum/";
     description = "Robust enumerated type support in Python";
     license = licenses.gpl2;
diff --git a/nixpkgs/pkgs/development/python-modules/enum34/default.nix b/nixpkgs/pkgs/development/python-modules/enum34/default.nix
index 1f0d10942766..5e26853098fb 100644
--- a/nixpkgs/pkgs/development/python-modules/enum34/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/enum34/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , pythonAtLeast
@@ -18,7 +18,7 @@ if pythonAtLeast "3.4" then null else buildPythonPackage rec {
     ${python.interpreter} -m unittest discover
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://pypi.python.org/pypi/enum34";
     description = "Python 3.4 Enum backported to 3.3, 3.2, 3.1, 2.7, 2.6, 2.5, and 2.4";
     license = licenses.bsd0;
diff --git a/nixpkgs/pkgs/development/python-modules/enzyme/default.nix b/nixpkgs/pkgs/development/python-modules/enzyme/default.nix
index 110575464cb6..ee547ad9b7bc 100644
--- a/nixpkgs/pkgs/development/python-modules/enzyme/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/enzyme/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchPypi, buildPythonPackage }:
+{ lib, fetchPypi, buildPythonPackage }:
 
 buildPythonPackage rec {
   pname = "enzyme";
@@ -12,9 +12,9 @@ buildPythonPackage rec {
     sha256 = "1fv2kh2v4lwj0hhrhj9pib1pdjh01yr4xgyljhx11l94gjlpy5pj";
   };
 
-  meta = {
+  meta = with lib; {
     homepage = "https://github.com/Diaoul/enzyme";
-    license = with stdenv.lib; licenses.asl20;
+    license = licenses.asl20;
     description = "Python video metadata parser";
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/epc/default.nix b/nixpkgs/pkgs/development/python-modules/epc/default.nix
index fe3cc4420c48..d74595431639 100644
--- a/nixpkgs/pkgs/development/python-modules/epc/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/epc/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , sexpdata
@@ -16,7 +16,7 @@ buildPythonPackage rec {
   propagatedBuildInputs = [ sexpdata ];
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "EPC (RPC stack for Emacs Lisp) implementation in Python";
     homepage = "https://github.com/tkf/python-epc";
     license = licenses.gpl3;
diff --git a/nixpkgs/pkgs/development/python-modules/ephem/default.nix b/nixpkgs/pkgs/development/python-modules/ephem/default.nix
index 32fe91cb72d5..4d6e59409266 100644
--- a/nixpkgs/pkgs/development/python-modules/ephem/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/ephem/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi, isPy3k
+{ lib, stdenv, buildPythonPackage, fetchPypi, isPy3k
 , glibcLocales, pytest }:
 
 buildPythonPackage rec {
@@ -17,7 +17,7 @@ buildPythonPackage rec {
     LC_ALL="en_US.UTF-8" py.test --pyargs ephem.tests -k "not JPLTest"
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Compute positions of the planets and stars";
     homepage = "https://pypi.python.org/pypi/ephem/";
     license = licenses.lgpl3;
diff --git a/nixpkgs/pkgs/development/python-modules/et_xmlfile/default.nix b/nixpkgs/pkgs/development/python-modules/et_xmlfile/default.nix
index 09475329c1bb..5ba9490d945a 100644
--- a/nixpkgs/pkgs/development/python-modules/et_xmlfile/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/et_xmlfile/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , lxml
@@ -19,7 +19,7 @@ buildPythonPackage rec {
     py.test $out
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "An implementation of lxml.xmlfile for the standard library";
     longDescription = ''
       et_xmlfile is a low memory library for creating large XML files.
diff --git a/nixpkgs/pkgs/development/python-modules/etcd/default.nix b/nixpkgs/pkgs/development/python-modules/etcd/default.nix
index 7a122f1b616e..338992259a14 100644
--- a/nixpkgs/pkgs/development/python-modules/etcd/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/etcd/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchurl
 , simplejson
@@ -25,7 +25,7 @@ buildPythonPackage rec {
   # No proper tests are available
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "A Python etcd client that just works";
     homepage = "https://github.com/dsoprea/PythonEtcdClient";
     license = licenses.gpl2;
diff --git a/nixpkgs/pkgs/development/python-modules/etebase/default.nix b/nixpkgs/pkgs/development/python-modules/etebase/default.nix
index 366c447ed942..7832f6b4787a 100644
--- a/nixpkgs/pkgs/development/python-modules/etebase/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/etebase/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , wheel
 , rustPlatform
 , pipInstallHook
@@ -35,7 +35,7 @@ rustPlatform.buildRustPackage rec {
     wheel
   ];
 
-  buildInputs = stdenv.lib.optionals stdenv.isDarwin [ Security ];
+  buildInputs = lib.optionals stdenv.isDarwin [ Security ];
 
   propagatedBuildInputs = [
     python
@@ -52,7 +52,7 @@ rustPlatform.buildRustPackage rec {
     pipInstallPhase
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://www.etebase.com/";
     description = "A Python client library for Etebase";
     license = licenses.bsd3;
diff --git a/nixpkgs/pkgs/development/python-modules/eth-utils/default.nix b/nixpkgs/pkgs/development/python-modules/eth-utils/default.nix
index 25f2ebd55412..9c67f0816e37 100644
--- a/nixpkgs/pkgs/development/python-modules/eth-utils/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/eth-utils/default.nix
@@ -1,9 +1,9 @@
-{ lib, fetchFromGitHub, buildPythonPackage, pytest, eth-hash, eth-typing,
+{ lib, fetchFromGitHub, buildPythonPackage, pytestCheckHook, eth-hash, eth-typing,
   cytoolz, hypothesis }:
 
 buildPythonPackage rec {
   pname = "eth-utils";
-  version = "1.8.4";
+  version = "1.9.5";
 
   # Tests are missing from the PyPI source tarball so let's use GitHub
   # https://github.com/ethereum/eth-utils/issues/130
@@ -11,20 +11,13 @@ buildPythonPackage rec {
     owner = "ethereum";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1hfzb3xz3j50dgp51nx2jssh9j07np24fqmpnyr2ycsll90g1j6q";
+    sha256 = "1h3xlw74zdf6cfvqf9193lx05bpdm05pmy9ap1g7q2kx0j2b6352";
   };
 
-  checkInputs = [ pytest hypothesis ];
+  checkInputs = [ pytestCheckHook hypothesis ];
   propagatedBuildInputs = [ eth-hash eth-typing cytoolz ];
 
-  # setuptools-markdown uses pypandoc which is broken at the moment
-  preConfigure = ''
-    substituteInPlace setup.py --replace \'setuptools-markdown\' ""
-  '';
-
-  checkPhase = ''
-    pytest .
-  '';
+  pythonImportsCheck = [ "eth_utils" ];
 
   meta = {
     description = "Common utility functions for codebases which interact with ethereum";
diff --git a/nixpkgs/pkgs/development/python-modules/evdev/default.nix b/nixpkgs/pkgs/development/python-modules/evdev/default.nix
index 305ada89552c..1a3f2a0e642e 100644
--- a/nixpkgs/pkgs/development/python-modules/evdev/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/evdev/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "evdev";
-  version = "1.3.0";
+  version = "1.4.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0kb3636yaw9l8xi8s184w0r0n9ic5dw3b8hx048jf9fpzss4kimi";
+    sha256 = "8782740eb1a86b187334c07feb5127d3faa0b236e113206dfe3ae8f77fb1aaf1";
   };
 
   buildInputs = [ linuxHeaders ];
diff --git a/nixpkgs/pkgs/development/python-modules/eve/default.nix b/nixpkgs/pkgs/development/python-modules/eve/default.nix
index c50cc2aeb827..b931db188e3e 100644
--- a/nixpkgs/pkgs/development/python-modules/eve/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/eve/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , flask
@@ -32,7 +32,7 @@ buildPythonPackage rec {
   # tests call a running mongodb instance
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://python-eve.org/";
     description = "Open source Python REST API framework designed for human beings";
     license = licenses.bsd3;
diff --git a/nixpkgs/pkgs/development/python-modules/eventlet/default.nix b/nixpkgs/pkgs/development/python-modules/eventlet/default.nix
index 5eb3efe6009a..93b058859858 100644
--- a/nixpkgs/pkgs/development/python-modules/eventlet/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/eventlet/default.nix
@@ -12,11 +12,11 @@
 
 buildPythonPackage rec {
   pname = "eventlet";
-  version = "0.29.1";
+  version = "0.30.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "9faff63631b01277c463ae91cd4ab3f25a2f0f5abe3219d43a386ef1daa6159a";
+    sha256 = "19d6f3aa9525221ba60d0ec31b570508021af7ad5497fb77f77501fe9a7c34d3";
   };
 
   propagatedBuildInputs = [ dnspython greenlet monotonic six ]
diff --git a/nixpkgs/pkgs/development/python-modules/eventlib/default.nix b/nixpkgs/pkgs/development/python-modules/eventlib/default.nix
index 4f684612f184..1b2b44d65f70 100644
--- a/nixpkgs/pkgs/development/python-modules/eventlib/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/eventlib/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , isPy3k
 , fetchdarcs
@@ -21,7 +21,7 @@ buildPythonPackage rec {
 
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Eventlib bindings for python";
     homepage    = "https://ag-projects.com/";
     license     = licenses.lgpl2;
diff --git a/nixpkgs/pkgs/development/python-modules/evernote/default.nix b/nixpkgs/pkgs/development/python-modules/evernote/default.nix
index b245ff117474..70c7fad963af 100644
--- a/nixpkgs/pkgs/development/python-modules/evernote/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/evernote/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , isPy27
@@ -17,7 +17,7 @@ buildPythonPackage rec {
 
    propagatedBuildInputs = [ oauth2 ];
 
-   meta = with stdenv.lib; {
+   meta = with lib; {
     description = "Evernote SDK for Python";
     homepage = "https://dev.evernote.com";
     license = licenses.asl20;
diff --git a/nixpkgs/pkgs/development/python-modules/exchangelib/default.nix b/nixpkgs/pkgs/development/python-modules/exchangelib/default.nix
index 0635f8f027cc..e380ca613cfd 100644
--- a/nixpkgs/pkgs/development/python-modules/exchangelib/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/exchangelib/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchFromGitHub, buildPythonPackage,
+{ lib, stdenv, fetchFromGitHub, buildPythonPackage,
   pythonOlder,
   lxml, tzlocal, python-dateutil, pygments, requests-kerberos,
   defusedxml, cached-property, isodate, requests_ntlm, dnspython,
@@ -29,7 +29,7 @@ buildPythonPackage rec {
     oauthlib requests_oauthlib
   ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Client for Microsoft Exchange Web Services (EWS)";
     homepage    = "https://github.com/ecederstrand/exchangelib";
     license     = licenses.bsd2;
diff --git a/nixpkgs/pkgs/development/python-modules/execnet/default.nix b/nixpkgs/pkgs/development/python-modules/execnet/default.nix
index bc7b67f52d42..0a22ab4b0516 100644
--- a/nixpkgs/pkgs/development/python-modules/execnet/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/execnet/default.nix
@@ -36,7 +36,7 @@ buildPythonPackage rec {
 
   __darwinAllowLocalNetworking = true;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Rapid multi-Python deployment";
     license = licenses.gpl2;
     homepage = "https://execnet.readthedocs.io/";
diff --git a/nixpkgs/pkgs/development/python-modules/exifread/default.nix b/nixpkgs/pkgs/development/python-modules/exifread/default.nix
index 3c7b814a3c83..e86a681a8e39 100644
--- a/nixpkgs/pkgs/development/python-modules/exifread/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/exifread/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 }:
@@ -12,7 +12,7 @@ buildPythonPackage rec {
     sha256 = "a0f74af5040168d3883bbc980efe26d06c89f026dc86ba28eb34107662d51766";
   };
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Easy to use Python module to extract Exif metadata from tiff and jpeg files";
     homepage    = "https://github.com/ianare/exif-py";
     license     = licenses.bsd0;
diff --git a/nixpkgs/pkgs/development/python-modules/eyed3/default.nix b/nixpkgs/pkgs/development/python-modules/eyed3/default.nix
index d8ccb299fccb..08faf5c2ba84 100644
--- a/nixpkgs/pkgs/development/python-modules/eyed3/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/eyed3/default.nix
@@ -36,7 +36,7 @@ buildPythonPackage rec {
     done
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "A Python module and command line program for processing ID3 tags";
     homepage    = "https://eyed3.nicfit.net/";
     license     = licenses.gpl2;
diff --git a/nixpkgs/pkgs/development/python-modules/ezdxf/default.nix b/nixpkgs/pkgs/development/python-modules/ezdxf/default.nix
index a745566a6451..6dfefe092040 100644
--- a/nixpkgs/pkgs/development/python-modules/ezdxf/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/ezdxf/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, pythonOlder, fetchFromGitHub, pyparsing, pytest }:
+{ lib, stdenv, buildPythonPackage, pythonOlder, fetchFromGitHub, pyparsing, pytest }:
 
 buildPythonPackage rec {
   version = "0.12";
@@ -18,7 +18,7 @@ buildPythonPackage rec {
 
   propagatedBuildInputs = [ pyparsing ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Python package to read and write DXF drawings (interface to the DXF file format)";
     homepage = "https://github.com/mozman/ezdxf/";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/face/default.nix b/nixpkgs/pkgs/development/python-modules/face/default.nix
index 71fbca916104..89e7156fa524 100644
--- a/nixpkgs/pkgs/development/python-modules/face/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/face/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi, boltons, pytest }:
+{ lib, stdenv, buildPythonPackage, fetchPypi, boltons, pytest }:
 
 buildPythonPackage rec {
   pname = "face";
@@ -18,7 +18,7 @@ buildPythonPackage rec {
   # reporting
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://github.com/mahmoud/face";
     description = "A command-line interface parser and framework";
     longDescription = ''
diff --git a/nixpkgs/pkgs/development/python-modules/face_recognition/default.nix b/nixpkgs/pkgs/development/python-modules/face_recognition/default.nix
index 2b26fa735e6d..1896bdfac592 100644
--- a/nixpkgs/pkgs/development/python-modules/face_recognition/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/face_recognition/default.nix
@@ -1,5 +1,5 @@
 { buildPythonPackage, fetchFromGitHub, pillow, click, dlib, numpy
-, face_recognition_models, stdenv, flake8, pytest, glibcLocales
+, face_recognition_models, lib, stdenv, flake8, pytest, glibcLocales
 }:
 
 buildPythonPackage rec {
@@ -33,7 +33,7 @@ buildPythonPackage rec {
     LC_ALL="en_US.UTF-8" py.test
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     license = licenses.mit;
     homepage = "https://github.com/ageitgey/face_recognition";
     maintainers = with maintainers; [ ma27 ];
diff --git a/nixpkgs/pkgs/development/python-modules/face_recognition_models/default.nix b/nixpkgs/pkgs/development/python-modules/face_recognition_models/default.nix
index 427ad364dde6..d5838438b7d9 100644
--- a/nixpkgs/pkgs/development/python-modules/face_recognition_models/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/face_recognition_models/default.nix
@@ -1,4 +1,4 @@
-{ buildPythonPackage, stdenv, fetchPypi, setuptools }:
+{ buildPythonPackage, lib, stdenv, fetchPypi, setuptools }:
 
 buildPythonPackage rec {
   pname = "face_recognition_models";
@@ -14,7 +14,7 @@ buildPythonPackage rec {
 
   propagatedBuildInputs = [ setuptools ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://github.com/ageitgey/face_recognition_models";
     license = licenses.cc0;
     maintainers = with maintainers; [ ma27 ];
diff --git a/nixpkgs/pkgs/development/python-modules/fake-useragent/default.nix b/nixpkgs/pkgs/development/python-modules/fake-useragent/default.nix
index fb85408dd3d2..be26ab98af62 100644
--- a/nixpkgs/pkgs/development/python-modules/fake-useragent/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/fake-useragent/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchPypi, buildPythonPackage, six, pytest }:
+{ lib, stdenv, fetchPypi, buildPythonPackage, six, pytest }:
 
 buildPythonPackage rec {
   pname = "fake-useragent";
@@ -13,7 +13,7 @@ buildPythonPackage rec {
 
   checkInputs = [ pytest ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Up to date simple useragent faker with real world database";
     homepage = "https://github.com/hellysmile/fake-useragent";
     license = licenses.asl20;
diff --git a/nixpkgs/pkgs/development/python-modules/fake_factory/default.nix b/nixpkgs/pkgs/development/python-modules/fake_factory/default.nix
index ab947756fa98..82af8d04e077 100644
--- a/nixpkgs/pkgs/development/python-modules/fake_factory/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/fake_factory/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , python
@@ -26,7 +26,7 @@ buildPythonPackage rec {
     ${python.interpreter} -m unittest faker.tests
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "A Python package that generates fake data for you";
     homepage    = "https://pypi.python.org/pypi/fake-factory";
     license     = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/faker/default.nix b/nixpkgs/pkgs/development/python-modules/faker/default.nix
index abdb0f583941..990908efe034 100644
--- a/nixpkgs/pkgs/development/python-modules/faker/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/faker/default.nix
@@ -1,59 +1,45 @@
-{ lib, buildPythonPackage, fetchPypi, pythonOlder,
-# Build inputs
-dateutil, six, text-unidecode, ipaddress ? null
-# Test inputs
-, email_validator
+{ lib
+, buildPythonPackage
+, fetchPypi
+, dateutil
+, text-unidecode
 , freezegun
-, mock
-, more-itertools
 , pytestCheckHook
-, pytestrunner
 , ukpostcodeparser
 , validators
 }:
 
-assert pythonOlder "3.3" -> ipaddress != null;
-
 buildPythonPackage rec {
   pname = "Faker";
-  version = "4.18.0";
+  version = "5.5.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0raxw6mgvf9523v7917zqw76vqnpp0d6v3i310qnjnhpxmm78yb2";
+    sha256 = "1bskhmiir1ajipj7j535j2mxgnp6s3mxbvlag4aryj9zbhgg1c19";
   };
 
-  nativeBuildInputs = [ pytestrunner ];
+  propagatedBuildInputs = [
+    dateutil
+    text-unidecode
+  ];
+
   checkInputs = [
-    email_validator
     freezegun
     pytestCheckHook
     ukpostcodeparser
     validators
-  ]
-  ++ lib.optionals (pythonOlder "3.3") [ mock ]
-  ++ lib.optionals (pythonOlder "3.0") [ more-itertools ];
+  ];
 
   # avoid tests which import random2, an abandoned library
   pytestFlagsArray = [
     "--ignore=tests/providers/test_ssn.py"
   ];
-
-  propagatedBuildInputs = [
-    dateutil
-    six
-    text-unidecode
-  ];
-
-  postPatch = ''
-    substituteInPlace setup.py --replace "pytest>=3.8.0,<3.9" "pytest"
-  '';
+  pythonImportsCheck = [ "faker" ];
 
   meta = with lib; {
-    description = "A Python library for generating fake user data";
-    homepage    = "http://faker.rtfd.org";
-    license     = licenses.mit;
+    description = "Python library for generating fake user data";
+    homepage = "http://faker.rtfd.org";
+    license = licenses.mit;
     maintainers = with maintainers; [ lovek323 ];
-    platforms   = platforms.unix;
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/falcon/default.nix b/nixpkgs/pkgs/development/python-modules/falcon/default.nix
index 20a767774138..8d1aa02026c1 100644
--- a/nixpkgs/pkgs/development/python-modules/falcon/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/falcon/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , coverage
@@ -24,7 +24,7 @@ buildPythonPackage rec {
   # OSError: [Errno 98] Address already in use
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "An unladen web framework for building APIs and app backends";
     homepage = "https://falconframework.org/";
     license = licenses.asl20;
diff --git a/nixpkgs/pkgs/development/python-modules/fastapi/default.nix b/nixpkgs/pkgs/development/python-modules/fastapi/default.nix
index 32ebd6a0307d..dadfc41c68bc 100644
--- a/nixpkgs/pkgs/development/python-modules/fastapi/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/fastapi/default.nix
@@ -1,61 +1,58 @@
 { lib
 , buildPythonPackage
 , fetchFromGitHub
-, uvicorn
-, starlette
 , pydantic
-, isPy3k
-, pytest
-, pytestcov
-, pyjwt
-, passlib
+, starlette
+, pytestCheckHook
+, pytest-asyncio
 , aiosqlite
-, peewee
+, databases
 , flask
+, httpx
+, passlib
+, peewee
+, python-jose
+, sqlalchemy
 }:
 
 buildPythonPackage rec {
   pname = "fastapi";
-  version = "0.55.1";
+  version = "0.63.0";
   format = "flit";
-  disabled = !isPy3k;
 
   src = fetchFromGitHub {
     owner = "tiangolo";
     repo = "fastapi";
     rev = version;
-    sha256 = "1515nhwari48v0angyl5z3cfpvwn4al2nvqh0cjd9xgxzvm310s8";
+    sha256 = "0l3imrcs42pqf9d6k8c1q15k5sqcnapl5zk71xl52mrxhz49lgpi";
   };
 
   postPatch = ''
     substituteInPlace pyproject.toml \
-      --replace "starlette ==0.13.2" "starlette"
+      --replace "starlette ==0.13.6" "starlette"
   '';
 
   propagatedBuildInputs = [
-    uvicorn
     starlette
     pydantic
   ];
 
   checkInputs = [
-    pytest
-    pytestcov
-    pyjwt
-    passlib
     aiosqlite
-    peewee
+    databases
     flask
+    httpx
+    passlib
+    peewee
+    python-jose
+    pytestCheckHook
+    pytest-asyncio
+    sqlalchemy
   ];
 
-  # test_default_response_class.py: requires orjson, which requires rust toolchain
-  # test_custom_response/test_tutorial001b.py: requires orjson
-  # tests/test_tutorial/test_sql_databases/test_testing_databases.py: just broken, don't know why
-  checkPhase = ''
-    pytest --ignore=tests/test_default_response_class.py \
-           --ignore=tests/test_tutorial/test_custom_response/test_tutorial001b.py \
-           --ignore=tests/test_tutorial/test_sql_databases/test_testing_databases.py
-  '';
+  # disabled tests require orjson which requires rust nightly
+  pytestFlagsArray = [ "--ignore=tests/test_default_response_class.py" ];
+  disabledTests = [ "test_get_custom_response" ];
 
   meta = with lib; {
     homepage = "https://github.com/tiangolo/fastapi";
diff --git a/nixpkgs/pkgs/development/python-modules/fastdiff/default.nix b/nixpkgs/pkgs/development/python-modules/fastdiff/default.nix
new file mode 100644
index 000000000000..b3e27d7a5e81
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/fastdiff/default.nix
@@ -0,0 +1,30 @@
+{ lib, buildPythonPackage, fetchPypi, pytestCheckHook, pytest-benchmark, wasmer }:
+
+buildPythonPackage rec {
+  pname = "fastdiff";
+  version = "0.2.0";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1ai95vjchl4396zjl1b69xfqvn9kn1y7c40d9l0qxdss0pcx6fk2";
+  };
+
+  postPatch = ''
+    substituteInPlace setup.py \
+      --replace 'pytest-runner' ""
+  '';
+
+  propagatedBuildInputs = [ wasmer ];
+
+  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 ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/fasteners/default.nix b/nixpkgs/pkgs/development/python-modules/fasteners/default.nix
index 75719a78fb21..57ad69c0be41 100644
--- a/nixpkgs/pkgs/development/python-modules/fasteners/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/fasteners/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , six
@@ -20,13 +20,13 @@ buildPythonPackage rec {
 
   propagatedBuildInputs = [ six monotonic ];
 
-  checkInputs = [ testtools nose ] ++ stdenv.lib.optionals (!isPy3k) [ futures ];
+  checkInputs = [ testtools nose ] ++ lib.optionals (!isPy3k) [ futures ];
 
   checkPhase = ''
     nosetests
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "A python package that provides useful locks";
     homepage = "https://github.com/harlowja/fasteners";
     license = licenses.asl20;
diff --git a/nixpkgs/pkgs/development/python-modules/fastentrypoints/default.nix b/nixpkgs/pkgs/development/python-modules/fastentrypoints/default.nix
index 08e2e384ff92..eb86784ddc7b 100644
--- a/nixpkgs/pkgs/development/python-modules/fastentrypoints/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/fastentrypoints/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi }:
+{ lib, stdenv, buildPythonPackage, fetchPypi }:
 
 buildPythonPackage rec {
   pname = "fastentrypoints";
@@ -9,7 +9,7 @@ buildPythonPackage rec {
     sha256 = "02s1j8i2dzbpbwgq2a3fiqwm3cnmhii2qzc0k42l0rdxd4a4ya7z";
   };
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Makes entry_points specified in setup.py load more quickly";
     homepage = "https://github.com/ninjaaron/fast-entry_points";
     license = licenses.bsd2;
diff --git a/nixpkgs/pkgs/development/python-modules/fastimport/default.nix b/nixpkgs/pkgs/development/python-modules/fastimport/default.nix
index c1fab50c06e1..55aad9d71ea5 100644
--- a/nixpkgs/pkgs/development/python-modules/fastimport/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/fastimport/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, python, fetchPypi}:
+{ lib, stdenv, buildPythonPackage, python, fetchPypi}:
 
 buildPythonPackage rec {
   pname = "fastimport";
@@ -13,7 +13,7 @@ buildPythonPackage rec {
     ${python.interpreter} -m unittest discover
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://launchpad.net/python-fastimport";
     description = "VCS fastimport/fastexport parser";
     maintainers = with maintainers; [ koral ];
diff --git a/nixpkgs/pkgs/development/python-modules/fastpair/default.nix b/nixpkgs/pkgs/development/python-modules/fastpair/default.nix
index edb45eb06877..82964070d03b 100644
--- a/nixpkgs/pkgs/development/python-modules/fastpair/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/fastpair/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchFromGitHub, pytestrunner, pytest, scipy }:
+{ lib, stdenv, buildPythonPackage, fetchFromGitHub, pytestrunner, pytest, scipy }:
 
 buildPythonPackage {
   pname = "fastpair";
@@ -26,7 +26,7 @@ buildPythonPackage {
     pytest fastpair
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://github.com/carsonfarmer/fastpair";
     description = "Data-structure for the dynamic closest-pair problem";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/fastpbkdf2/default.nix b/nixpkgs/pkgs/development/python-modules/fastpbkdf2/default.nix
index 568d894805fd..e033dc42d457 100644
--- a/nixpkgs/pkgs/development/python-modules/fastpbkdf2/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/fastpbkdf2/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchFromGitHub, buildPythonPackage
+{ lib, stdenv, fetchFromGitHub, buildPythonPackage
 , openssl, pytest, cffi, six }:
 
 buildPythonPackage rec {
@@ -17,7 +17,7 @@ buildPythonPackage rec {
   checkInputs = [ pytest ];
   propagatedBuildInputs = [ cffi six ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://github.com/Ayrx/python-fastpbkdf2";
     description = "Python bindings for fastpbkdf2";
     license = licenses.bsd3;
diff --git a/nixpkgs/pkgs/development/python-modules/fastprogress/default.nix b/nixpkgs/pkgs/development/python-modules/fastprogress/default.nix
index a542b5805653..25cc2b8792f7 100644
--- a/nixpkgs/pkgs/development/python-modules/fastprogress/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/fastprogress/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , numpy
@@ -22,7 +22,7 @@ buildPythonPackage rec {
   doCheck = false;
   pythonImportsCheck = [ "fastprogress" ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://github.com/fastai/fastprogress";
     description = "Simple and flexible progress bar for Jupyter Notebook and console";
     license = licenses.asl20;
diff --git a/nixpkgs/pkgs/development/python-modules/fastrlock/default.nix b/nixpkgs/pkgs/development/python-modules/fastrlock/default.nix
index e44639942a0d..7aedbbdd8f7c 100644
--- a/nixpkgs/pkgs/development/python-modules/fastrlock/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/fastrlock/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi }:
+{ lib, stdenv, buildPythonPackage, fetchPypi }:
 
 buildPythonPackage rec {
   pname = "fastrlock";
@@ -9,7 +9,7 @@ buildPythonPackage rec {
     sha256 = "9ae1a31f6e069b5f0f28ba63c594d0c952065de0a375f7b491d21ebaccc5166f";
   };
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://github.com/scoder/fastrlock";
     description = "A fast RLock implementation for CPython";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/fasttext/default.nix b/nixpkgs/pkgs/development/python-modules/fasttext/default.nix
index 42e6446e8643..bf3bd987564a 100644
--- a/nixpkgs/pkgs/development/python-modules/fasttext/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/fasttext/default.nix
@@ -1,4 +1,4 @@
-{stdenv, buildPythonPackage, fetchFromGitHub, numpy, pkgs, pybind11 }:
+{lib, stdenv, buildPythonPackage, fetchFromGitHub, numpy, pkgs, pybind11 }:
 
 buildPythonPackage rec {
   inherit (pkgs.fasttext) pname version src;
@@ -13,7 +13,7 @@ buildPythonPackage rec {
     HOME=$TMPDIR
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Python module for text classification and representation learning";
     homepage = "https://fasttext.cc/";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/fdint/default.nix b/nixpkgs/pkgs/development/python-modules/fdint/default.nix
index 68c3b039a47f..4de0d18ca8b7 100644
--- a/nixpkgs/pkgs/development/python-modules/fdint/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/fdint/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , cython
@@ -27,7 +27,7 @@ buildPythonPackage rec {
     ${python.interpreter} -m fdint.tests
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://github.com/scott-maddox/fdint";
     description = "A free, open-source python package for quickly and precisely approximating Fermi-Dirac integrals";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/feedgen/default.nix b/nixpkgs/pkgs/development/python-modules/feedgen/default.nix
index dbc303f43026..509ffaed9d71 100644
--- a/nixpkgs/pkgs/development/python-modules/feedgen/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/feedgen/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi, dateutil, lxml }:
+{ lib, stdenv, buildPythonPackage, fetchPypi, dateutil, lxml }:
 
 buildPythonPackage rec {
   pname = "feedgen";
@@ -14,7 +14,7 @@ buildPythonPackage rec {
   # No tests in archive
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Python module to generate ATOM feeds, RSS feeds and Podcasts.";
     downloadPage = "https://github.com/lkiesow/python-feedgen/releases";
     homepage = "https://github.com/lkiesow/python-feedgen";
diff --git a/nixpkgs/pkgs/development/python-modules/feedgenerator/default.nix b/nixpkgs/pkgs/development/python-modules/feedgenerator/default.nix
index c0ccb7d345a9..8508cc637f22 100644
--- a/nixpkgs/pkgs/development/python-modules/feedgenerator/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/feedgenerator/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, glibcLocales, fetchPypi, six, pytz }:
+{ lib, stdenv, buildPythonPackage, glibcLocales, fetchPypi, six, pytz }:
 
 buildPythonPackage rec {
   pname = "feedgenerator";
@@ -15,7 +15,7 @@ buildPythonPackage rec {
 
   propagatedBuildInputs = [ six pytz ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Standalone version of django.utils.feedgenerator, compatible with Py3k";
     homepage = "https://github.com/dmdm/feedgenerator-py3k.git";
     maintainers = with maintainers; [ ];
diff --git a/nixpkgs/pkgs/development/python-modules/feedparser/5.nix b/nixpkgs/pkgs/development/python-modules/feedparser/5.nix
index 31fc61053b92..a79048c55254 100644
--- a/nixpkgs/pkgs/development/python-modules/feedparser/5.nix
+++ b/nixpkgs/pkgs/development/python-modules/feedparser/5.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 }:
@@ -15,7 +15,7 @@ buildPythonPackage rec {
   # lots of networking failures
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://github.com/kurtmckee/feedparser";
     description = "Universal feed parser";
     license = licenses.bsd2;
diff --git a/nixpkgs/pkgs/development/python-modules/feedparser/default.nix b/nixpkgs/pkgs/development/python-modules/feedparser/default.nix
index aeeb9b3e4960..7b48fe6f73e5 100644
--- a/nixpkgs/pkgs/development/python-modules/feedparser/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/feedparser/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , isPy27
@@ -21,7 +21,7 @@ buildPythonPackage rec {
     python -Wd tests/runtests.py
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://github.com/kurtmckee/feedparser";
     description = "Universal feed parser";
     license = licenses.bsd2;
diff --git a/nixpkgs/pkgs/development/python-modules/filebrowser_safe/default.nix b/nixpkgs/pkgs/development/python-modules/filebrowser_safe/default.nix
index 014e3b9810a9..df132211d4f9 100644
--- a/nixpkgs/pkgs/development/python-modules/filebrowser_safe/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/filebrowser_safe/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , django
@@ -18,7 +18,7 @@ buildPythonPackage rec {
   # There is no test embedded
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "A snapshot of django-filebrowser for the Mezzanine CMS";
     longDescription = ''
       filebrowser_safe was created to provide a snapshot of the
diff --git a/nixpkgs/pkgs/development/python-modules/filebytes/default.nix b/nixpkgs/pkgs/development/python-modules/filebytes/default.nix
index 7404620896c9..bfac6a0e6b23 100644
--- a/nixpkgs/pkgs/development/python-modules/filebytes/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/filebytes/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 }:
@@ -12,7 +12,7 @@ buildPythonPackage rec {
     sha256 = "0h97i6h525hg401dvvaa5krxi184qpvldbdn0izmirvr9pvh4hkn";
   };
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://scoding.de/filebytes-introduction";
     license = licenses.gpl2;
     description = "Scripts to parse ELF, PE, Mach-O and OAT (Android Runtime)";
diff --git a/nixpkgs/pkgs/development/python-modules/filelock/default.nix b/nixpkgs/pkgs/development/python-modules/filelock/default.nix
index 9729c1543cb4..77ddec306fc2 100644
--- a/nixpkgs/pkgs/development/python-modules/filelock/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/filelock/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi }:
+{ lib, stdenv, buildPythonPackage, fetchPypi }:
 
 buildPythonPackage rec {
   pname = "filelock";
@@ -9,7 +9,7 @@ buildPythonPackage rec {
     sha256 = "18d82244ee114f543149c66a6e0c14e9c4f8a1044b5cdaadd0f82159d6a6ff59";
   };
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://github.com/benediktschmitt/py-filelock";
     description = "A platform independent file lock for Python";
     license = licenses.unlicense;
diff --git a/nixpkgs/pkgs/development/python-modules/filterpy/default.nix b/nixpkgs/pkgs/development/python-modules/filterpy/default.nix
index bae362d3a4a4..53059ce43d05 100644
--- a/nixpkgs/pkgs/development/python-modules/filterpy/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/filterpy/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , numpy
@@ -28,7 +28,7 @@ buildPythonPackage rec {
     pytest --ignore=filterpy/common/tests/test_discretization.py
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://github.com/rlabbe/filterpy";
     description = "Kalman filtering and optimal estimation library";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/fints/default.nix b/nixpkgs/pkgs/development/python-modules/fints/default.nix
index 10915e766ac2..8e02dac58508 100644
--- a/nixpkgs/pkgs/development/python-modules/fints/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/fints/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchFromGitHub, isPy27
+{ lib, stdenv, buildPythonPackage, fetchFromGitHub, isPy27
 , bleach
 , mt-940
 , pytest
@@ -27,7 +27,7 @@ buildPythonPackage rec {
     pytest . --ignore=tests/test_client.py -k 'not robust_mode'
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://github.com/raphaelm/python-fints/";
     description = "Pure-python FinTS (formerly known as HBCI) implementation";
     license = licenses.lgpl3;
diff --git a/nixpkgs/pkgs/development/python-modules/fire/default.nix b/nixpkgs/pkgs/development/python-modules/fire/default.nix
index 6c81a708d57d..6a2cc594360d 100644
--- a/nixpkgs/pkgs/development/python-modules/fire/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/fire/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchFromGitHub, fetchpatch, six, hypothesis, mock
+{ lib, stdenv, buildPythonPackage, fetchFromGitHub, fetchpatch, six, hypothesis, mock
 , python-Levenshtein, pytest, termcolor, isPy27, enum34 }:
 
 buildPythonPackage rec {
@@ -12,7 +12,7 @@ buildPythonPackage rec {
     sha256 = "0s5r6l39ck2scks54hmwwdf4lcihqqnqzjfx9lz2b67vxkajpwmc";
   };
 
-  propagatedBuildInputs = [ six termcolor ] ++ stdenv.lib.optional isPy27 enum34;
+  propagatedBuildInputs = [ six termcolor ] ++ lib.optional isPy27 enum34;
 
   checkInputs = [ hypothesis mock python-Levenshtein pytest ];
 
@@ -22,7 +22,7 @@ buildPythonPackage rec {
     py.test -k 'not testInitRequiresFlag'
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "A library for automatically generating command line interfaces";
     longDescription = ''
       Python Fire is a library for automatically generating command line
diff --git a/nixpkgs/pkgs/development/python-modules/first/default.nix b/nixpkgs/pkgs/development/python-modules/first/default.nix
index 6956addb29f3..a5bdf847eff2 100644
--- a/nixpkgs/pkgs/development/python-modules/first/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/first/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi }:
+{ lib, stdenv, buildPythonPackage, fetchPypi }:
 
 buildPythonPackage rec {
   pname = "first";
@@ -11,7 +11,7 @@ buildPythonPackage rec {
 
   doCheck = false; # no tests
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "The function you always missed in Python";
     homepage = "https://github.com/hynek/first/";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/fixerio/default.nix b/nixpkgs/pkgs/development/python-modules/fixerio/default.nix
new file mode 100644
index 000000000000..786681df1c83
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/fixerio/default.nix
@@ -0,0 +1,45 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, requests
+, pytestCheckHook
+, httpretty
+}:
+
+buildPythonPackage rec {
+  pname = "fixerio";
+  version = "0.1.1";
+
+  src = fetchFromGitHub {
+    owner = "amatellanes";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "1k9ss5jc7sbpkjd2774vbmvljny0wm2lrc8155ha8yk2048jsaxk";
+  };
+
+  postPatch = ''
+    substituteInPlace setup.py --replace "requests==2.10.0" "requests"
+  '';
+
+  propagatedBuildInputs = [
+    requests
+  ];
+
+  checkInputs = [
+    httpretty
+    pytestCheckHook
+  ];
+
+  pythonImportsCheck = [ "fixerio" ];
+
+  meta = with lib; {
+    description = "Python client for Fixer.io";
+    longDescription = ''
+      Fixer.io is a free JSON API for current and historical foreign
+      exchange rates published by the European Central Bank.
+    '';
+    homepage = "https://github.com/amatellanes/fixerio";
+    license = with licenses; [ mit ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/flake8-blind-except/default.nix b/nixpkgs/pkgs/development/python-modules/flake8-blind-except/default.nix
index 1c2dbe5f52c2..c3974d0e007b 100644
--- a/nixpkgs/pkgs/development/python-modules/flake8-blind-except/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/flake8-blind-except/default.nix
@@ -2,10 +2,10 @@
 
 buildPythonPackage rec {
   pname = "flake8-blind-except";
-  version = "0.1.1";
+  version = "0.2.0";
   src = fetchPypi {
     inherit pname version;
-    sha256 = "16g58mkr3fcn2vlfhp3rlahj93qswc7jd5qrqp748mc26dk3b8xc";
+    sha256 = "02a860a1a19cb602c006a3fe0778035b0d14d3f57929b4b798bc7d6684f204e5";
   };
   meta = {
     homepage = "https://github.com/elijahandrews/flake8-blind-except";
diff --git a/nixpkgs/pkgs/development/python-modules/flake8/default.nix b/nixpkgs/pkgs/development/python-modules/flake8/default.nix
index a369919b98fb..9e53ed28ff34 100644
--- a/nixpkgs/pkgs/development/python-modules/flake8/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/flake8/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi, pythonOlder
+{ lib, stdenv, buildPythonPackage, fetchPypi, pythonOlder
 , mock, pytest, pytestrunner
 , configparser, enum34, mccabe, pycodestyle, pyflakes, functools32, typing, importlib-metadata
 }:
@@ -14,17 +14,17 @@ buildPythonPackage rec {
 
   checkInputs = [ pytest mock pytestrunner ];
   propagatedBuildInputs = [ pyflakes pycodestyle mccabe ]
-    ++ stdenv.lib.optionals (pythonOlder "3.2") [ configparser functools32 ]
-    ++ stdenv.lib.optionals (pythonOlder "3.4") [ enum34 ]
-    ++ stdenv.lib.optionals (pythonOlder "3.5") [ typing ]
-    ++ stdenv.lib.optionals (pythonOlder "3.8") [ importlib-metadata ];
+    ++ lib.optionals (pythonOlder "3.2") [ configparser functools32 ]
+    ++ lib.optionals (pythonOlder "3.4") [ enum34 ]
+    ++ lib.optionals (pythonOlder "3.5") [ typing ]
+    ++ lib.optionals (pythonOlder "3.8") [ importlib-metadata ];
 
   # fixtures fail to initialize correctly
   checkPhase = ''
     py.test tests --ignore=tests/integration/test_checker.py
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Code checking using pep8 and pyflakes";
     homepage = "https://pypi.python.org/pypi/flake8";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/flaky/default.nix b/nixpkgs/pkgs/development/python-modules/flaky/default.nix
index 9bf20e6cc3b5..02b0641a34e2 100644
--- a/nixpkgs/pkgs/development/python-modules/flaky/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/flaky/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , mock
@@ -26,7 +26,7 @@ buildPythonPackage rec {
     pytest --force-flaky --max-runs 2  test/test_pytest/test_pytest_options_example.py
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://github.com/box/flaky";
     description = "Plugin for nose or py.test that automatically reruns flaky tests";
     license = licenses.asl20;
diff --git a/nixpkgs/pkgs/development/python-modules/flask-babel/default.nix b/nixpkgs/pkgs/development/python-modules/flask-babel/default.nix
index 0eb9f61d697f..da6176e6781f 100644
--- a/nixpkgs/pkgs/development/python-modules/flask-babel/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/flask-babel/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , python
 , fetchPypi
@@ -30,7 +30,7 @@ buildPythonPackage rec {
     ${python.interpreter} -m unittest discover -s tests
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Adds i18n/l10n support to Flask applications";
     longDescription = ''
       Implements i18n and l10n support for Flask.
diff --git a/nixpkgs/pkgs/development/python-modules/flask-common/default.nix b/nixpkgs/pkgs/development/python-modules/flask-common/default.nix
index 40c7903aee3d..7dbf507f2205 100644
--- a/nixpkgs/pkgs/development/python-modules/flask-common/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/flask-common/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchPypi, buildPythonPackage
+{ lib, stdenv, fetchPypi, buildPythonPackage
 , crayons, flask, flask-caching, gunicorn, maya, meinheld, whitenoise }:
 
 buildPythonPackage rec {
@@ -12,7 +12,7 @@ buildPythonPackage rec {
 
   propagatedBuildInputs = [ crayons flask flask-caching gunicorn maya meinheld whitenoise ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Flask extension with lots of common time-savers";
     homepage = "https://github.com/kennethreitz/flask-common";
     license = licenses.asl20; # XXX: setup.py lists BSD but git repo has Apache 2.0 LICENSE
diff --git a/nixpkgs/pkgs/development/python-modules/flask-compress/default.nix b/nixpkgs/pkgs/development/python-modules/flask-compress/default.nix
index fe55705bb521..9491ca8be779 100644
--- a/nixpkgs/pkgs/development/python-modules/flask-compress/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/flask-compress/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchPypi, buildPythonPackage, flask
+{ lib, stdenv, fetchPypi, buildPythonPackage, flask
 , brotli
 }:
 
@@ -13,7 +13,7 @@ buildPythonPackage rec {
 
   propagatedBuildInputs = [ flask brotli ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Compress responses in your Flask app with gzip";
     homepage = "https://libwilliam.github.io/flask-compress/";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/flask-cors/default.nix b/nixpkgs/pkgs/development/python-modules/flask-cors/default.nix
index da61365e3ae8..731e8b106ab7 100644
--- a/nixpkgs/pkgs/development/python-modules/flask-cors/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/flask-cors/default.nix
@@ -1,13 +1,13 @@
-{ stdenv, fetchPypi, buildPythonPackage
+{ lib, stdenv, fetchPypi, buildPythonPackage
 , nose, flask, six, packaging }:
 
 buildPythonPackage rec {
   pname = "Flask-Cors";
-  version = "3.0.9";
+  version = "3.0.10";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "6bcfc100288c5d1bcb1dbb854babd59beee622ffd321e444b05f24d6d58466b8";
+    sha256 = "b60839393f3b84a0f3746f6cdca56c1ad7426aa738b70d6c61375857823181de";
   };
 
   checkInputs = [ nose packaging ];
@@ -19,7 +19,7 @@ buildPythonPackage rec {
     nosetests --exclude test_acl_uncaught_exception_500
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "A Flask extension adding a decorator for CORS support";
     homepage = "https://github.com/corydolphin/flask-cors";
     license = with licenses; [ mit ];
diff --git a/nixpkgs/pkgs/development/python-modules/flask-elastic/default.nix b/nixpkgs/pkgs/development/python-modules/flask-elastic/default.nix
index 9f8e27ea20f9..6986cd75be69 100644
--- a/nixpkgs/pkgs/development/python-modules/flask-elastic/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/flask-elastic/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi
+{ lib, stdenv, buildPythonPackage, fetchPypi
 , flask, elasticsearch }:
 
 buildPythonPackage rec {
@@ -13,7 +13,7 @@ buildPythonPackage rec {
   propagatedBuildInputs = [ flask elasticsearch ];
   doCheck = false; # no tests
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Integrates official client for Elasticsearch into Flask";
     license = licenses.bsd3;
     maintainers = [ maintainers.mic92 ];
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 4d45343c2658..cf8a70b05330 100644
--- a/nixpkgs/pkgs/development/python-modules/flask-jwt-extended/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/flask-jwt-extended/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi, dateutil, flask, pyjwt, werkzeug, pytest }:
+{ lib, stdenv, buildPythonPackage, fetchPypi, dateutil, flask, pyjwt, werkzeug, pytest }:
 
 buildPythonPackage rec {
   pname = "Flask-JWT-Extended";
@@ -16,7 +16,7 @@ buildPythonPackage rec {
     pytest tests/
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "JWT extension for Flask";
     homepage = "https://flask-jwt-extended.readthedocs.io/";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/flask-ldap-login/default.nix b/nixpkgs/pkgs/development/python-modules/flask-ldap-login/default.nix
index 2573f5497408..1673ca24e6e0 100644
--- a/nixpkgs/pkgs/development/python-modules/flask-ldap-login/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/flask-ldap-login/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, isPy3k, fetchFromGitHub, fetchpatch
+{ lib, stdenv, buildPythonPackage, isPy3k, fetchFromGitHub, fetchpatch
 , flask, flask_wtf, flask_testing, ldap
 , mock, nose }:
 
@@ -27,7 +27,7 @@ buildPythonPackage rec {
 
   checkPhase = "nosetests -d";
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://github.com/ContinuumIO/flask-ldap-login";
     description = "User session management for Flask";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/flask-limiter/default.nix b/nixpkgs/pkgs/development/python-modules/flask-limiter/default.nix
index 1f24919b73c0..38d42da1c8a7 100644
--- a/nixpkgs/pkgs/development/python-modules/flask-limiter/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/flask-limiter/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchPypi, buildPythonPackage, flask, limits }:
+{ lib, stdenv, fetchPypi, buildPythonPackage, flask, limits }:
 
 buildPythonPackage rec {
   pname = "Flask-Limiter";
@@ -11,7 +11,7 @@ buildPythonPackage rec {
 
   propagatedBuildInputs = [ flask limits ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Rate limiting for flask applications";
     homepage = "https://flask-limiter.readthedocs.org/";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/flask-login/default.nix b/nixpkgs/pkgs/development/python-modules/flask-login/default.nix
index a4cd86ee69d4..919e353eb8e0 100644
--- a/nixpkgs/pkgs/development/python-modules/flask-login/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/flask-login/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi, pythonAtLeast
+{ lib, stdenv, buildPythonPackage, fetchPypi, pythonAtLeast
 , flask, blinker, nose, mock, semantic-version }:
 
 buildPythonPackage rec {
@@ -17,7 +17,7 @@ buildPythonPackage rec {
 
   doCheck = pythonAtLeast "3.3";
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://github.com/maxcountryman/flask-login";
     description = "User session management for Flask";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/flask-migrate/default.nix b/nixpkgs/pkgs/development/python-modules/flask-migrate/default.nix
index 24ed04437a03..4d50ade30e1c 100644
--- a/nixpkgs/pkgs/development/python-modules/flask-migrate/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/flask-migrate/default.nix
@@ -1,6 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi, isPy3k, glibcLocales, flask, flask_sqlalchemy, flask_script, alembic }:
-
-with stdenv.lib;
+{ lib, buildPythonPackage, fetchPypi, isPy3k, glibcLocales, flask, flask_sqlalchemy, flask_script, alembic }:
 
 buildPythonPackage rec {
   pname = "Flask-Migrate";
@@ -11,15 +9,15 @@ buildPythonPackage rec {
     sha256 = "a69d508c2e09d289f6e55a417b3b8c7bfe70e640f53d2d9deb0d056a384f37ee";
   };
 
-  checkInputs = [ flask_script ] ++ optional isPy3k glibcLocales;
+  checkInputs = [ flask_script ] ++ lib.optional isPy3k glibcLocales;
   propagatedBuildInputs = [ flask flask_sqlalchemy alembic ];
 
   # tests invoke the flask cli which uses click and therefore has py3k encoding troubles
-  preCheck = optionalString isPy3k ''
+  preCheck = lib.optionalString isPy3k ''
     export LANG="en_US.UTF-8"
   '';
 
-  meta = {
+  meta = with lib; {
     description = "SQLAlchemy database migrations for Flask applications using Alembic";
     license = licenses.mit;
     homepage = "https://github.com/miguelgrinberg/Flask-Migrate";
diff --git a/nixpkgs/pkgs/development/python-modules/flask-reverse-proxy-fix/default.nix b/nixpkgs/pkgs/development/python-modules/flask-reverse-proxy-fix/default.nix
index f8001bc2aff5..550f6520e7db 100644
--- a/nixpkgs/pkgs/development/python-modules/flask-reverse-proxy-fix/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/flask-reverse-proxy-fix/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchFromGitHub
 , isPy3k
@@ -30,7 +30,7 @@ buildPythonPackage rec {
     werkzeug
   ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Python Flask middleware for applications running under a reverse proxy";
     maintainers = with maintainers; [ matthiasbeyer ];
     homepage = "https://github.com/antarctica/flask-reverse-proxy-fix";
diff --git a/nixpkgs/pkgs/development/python-modules/flask-silk/default.nix b/nixpkgs/pkgs/development/python-modules/flask-silk/default.nix
index fc8c57be99a4..92d2f90848cb 100644
--- a/nixpkgs/pkgs/development/python-modules/flask-silk/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/flask-silk/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchFromGitHub
 , flask
@@ -21,7 +21,7 @@ buildPythonPackage {
     flask
   ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Adds silk icons to your Flask application or module, or extension";
     license = licenses.bsd3;
     maintainers = teams.sage.members;
diff --git a/nixpkgs/pkgs/development/python-modules/flask-socketio/default.nix b/nixpkgs/pkgs/development/python-modules/flask-socketio/default.nix
index 80f6edb79d35..496676600fc9 100644
--- a/nixpkgs/pkgs/development/python-modules/flask-socketio/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/flask-socketio/default.nix
@@ -1,18 +1,21 @@
 { lib
 , buildPythonPackage
-, fetchPypi
+, coverage
+, fetchFromGitHub
 , flask
+, pytestCheckHook
 , python-socketio
-, coverage
 }:
 
 buildPythonPackage rec {
   pname = "Flask-SocketIO";
-  version = "4.3.2";
+  version = "5.0.1";
 
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "37001b3507f2fa5d1c8d9c8e211dd88da6c5286ff0ebce16f27cb1b467d25d68";
+  src = fetchFromGitHub {
+    owner = "miguelgrinberg";
+    repo = "Flask-SocketIO";
+    rev = "v${version}";
+    sha256 = "01zf6cy95pgc4flgn0740z2my90l7rxwliahp6rb2xbp7rh32cng";
   };
 
   propagatedBuildInputs = [
@@ -20,9 +23,12 @@ buildPythonPackage rec {
     python-socketio
   ];
 
-  checkInputs = [ coverage ];
-  # tests only on github, but lates release there is not tagged
-  doCheck = false;
+  checkInputs = [
+    coverage
+    pytestCheckHook
+  ];
+
+  pythonImportsCheck = [ "flask_socketio" ];
 
   meta = with lib; {
     description = "Socket.IO integration for Flask applications";
diff --git a/nixpkgs/pkgs/development/python-modules/flask-sqlalchemy/default.nix b/nixpkgs/pkgs/development/python-modules/flask-sqlalchemy/default.nix
index c811ce24157e..16b8c9c7fc79 100644
--- a/nixpkgs/pkgs/development/python-modules/flask-sqlalchemy/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/flask-sqlalchemy/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi, flask, mock, sqlalchemy, pytest }:
+{ lib, stdenv, buildPythonPackage, fetchPypi, flask, mock, sqlalchemy, pytest }:
 
 buildPythonPackage rec {
   pname = "Flask-SQLAlchemy";
@@ -16,7 +16,7 @@ buildPythonPackage rec {
     pytest
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "SQLAlchemy extension for Flask";
     homepage = "http://flask-sqlalchemy.pocoo.org/";
     license = licenses.bsd3;
diff --git a/nixpkgs/pkgs/development/python-modules/flask-swagger-ui/default.nix b/nixpkgs/pkgs/development/python-modules/flask-swagger-ui/default.nix
index cc4b4e06bfcc..79650e7c1755 100644
--- a/nixpkgs/pkgs/development/python-modules/flask-swagger-ui/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/flask-swagger-ui/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi, flask }:
+{ lib, stdenv, buildPythonPackage, fetchPypi, flask }:
 
 buildPythonPackage rec {
   pname = "flask-swagger-ui";
@@ -15,7 +15,7 @@ buildPythonPackage rec {
     flask
   ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://github.com/sveint/flask-swagger-ui";
     license = licenses.mit;
     description = "Swagger UI blueprint for Flask";
diff --git a/nixpkgs/pkgs/development/python-modules/flask-swagger/default.nix b/nixpkgs/pkgs/development/python-modules/flask-swagger/default.nix
index c690e4e64ae5..20624c318620 100644
--- a/nixpkgs/pkgs/development/python-modules/flask-swagger/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/flask-swagger/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi
+{ lib, stdenv, buildPythonPackage, fetchPypi
 , flask, pyyaml }:
 
 buildPythonPackage rec {
@@ -18,7 +18,7 @@ buildPythonPackage rec {
     pyyaml
   ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://github.com/gangverk/flask-swagger";
     license = licenses.mit;
     description = "Extract swagger specs from your flask project";
diff --git a/nixpkgs/pkgs/development/python-modules/flask-testing/default.nix b/nixpkgs/pkgs/development/python-modules/flask-testing/default.nix
index 24e2e6343a20..6cfcffdb7be8 100644
--- a/nixpkgs/pkgs/development/python-modules/flask-testing/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/flask-testing/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchPypi, buildPythonPackage, isPy3k, flask, blinker, twill }:
+{ lib, stdenv, fetchPypi, buildPythonPackage, isPy3k, flask, blinker, twill }:
 
 buildPythonPackage rec {
   pname = "Flask-Testing";
@@ -15,7 +15,7 @@ buildPythonPackage rec {
 
   propagatedBuildInputs = [ flask ];
 
-  checkInputs = [ blinker ] ++ stdenv.lib.optionals (!isPy3k) [ twill ];
+  checkInputs = [ blinker ] ++ lib.optionals (!isPy3k) [ twill ];
 
   # twill integration is outdated in Python 2, hence it the tests fails.
   # Some of the tests use localhost networking on darwin.
@@ -23,7 +23,7 @@ buildPythonPackage rec {
 
   pythonImportsCheck = [ "flask_testing" ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Flask unittest integration.";
     homepage = "https://pythonhosted.org/Flask-Testing/";
     license = licenses.bsd3;
diff --git a/nixpkgs/pkgs/development/python-modules/flask-versioned/default.nix b/nixpkgs/pkgs/development/python-modules/flask-versioned/default.nix
index 3bd5ef98b322..15e7b2c1875d 100644
--- a/nixpkgs/pkgs/development/python-modules/flask-versioned/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/flask-versioned/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchFromGitHub, flask }:
+{ lib, stdenv, buildPythonPackage, fetchFromGitHub, flask }:
 
 buildPythonPackage rec {
   pname = "Flask-Versioned";
@@ -13,7 +13,7 @@ buildPythonPackage rec {
 
   propagatedBuildInputs = [ flask ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Flask plugin to rewrite file paths to add version info";
     homepage = "https://github.com/pilt/flask-versioned";
     license = licenses.bsd3;
diff --git a/nixpkgs/pkgs/development/python-modules/flask-wtf/default.nix b/nixpkgs/pkgs/development/python-modules/flask-wtf/default.nix
index 060f592b2cff..eadc7842a013 100644
--- a/nixpkgs/pkgs/development/python-modules/flask-wtf/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/flask-wtf/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchPypi, buildPythonPackage, flask, wtforms, nose }:
+{ lib, stdenv, fetchPypi, buildPythonPackage, flask, wtforms, nose }:
 
 buildPythonPackage rec {
   pname = "Flask-WTF";
@@ -13,7 +13,7 @@ buildPythonPackage rec {
 
   doCheck = false; # requires external service
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Simple integration of Flask and WTForms.";
     license = licenses.bsd3;
     maintainers = [ maintainers.mic92 ];
diff --git a/nixpkgs/pkgs/development/python-modules/flask/default.nix b/nixpkgs/pkgs/development/python-modules/flask/default.nix
index bbac89406fc3..d121b4e32c8b 100644
--- a/nixpkgs/pkgs/development/python-modules/flask/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/flask/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi
+{ lib, stdenv, buildPythonPackage, fetchPypi
 , itsdangerous, click, werkzeug, jinja2, pytest }:
 
 buildPythonPackage rec {
@@ -20,7 +20,7 @@ buildPythonPackage rec {
   # Tests require extra dependencies
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "http://flask.pocoo.org/";
     description = "A microframework based on Werkzeug, Jinja 2, and good intentions";
     license = licenses.bsd3;
diff --git a/nixpkgs/pkgs/development/python-modules/flaskbabel/default.nix b/nixpkgs/pkgs/development/python-modules/flaskbabel/default.nix
index 2956e2036c9d..eef31359f504 100644
--- a/nixpkgs/pkgs/development/python-modules/flaskbabel/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/flaskbabel/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , flask
@@ -19,7 +19,7 @@ buildPythonPackage rec {
 
   propagatedBuildInputs = [ flask jinja2 speaklater Babel pytz ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Adds i18n/l10n support to Flask applications";
     homepage = "https://github.com/mitsuhiko/flask-babel";
     license = licenses.bsd0;
diff --git a/nixpkgs/pkgs/development/python-modules/flatbuffers/default.nix b/nixpkgs/pkgs/development/python-modules/flatbuffers/default.nix
index 065808dfe6ef..f697f7b8ae09 100644
--- a/nixpkgs/pkgs/development/python-modules/flatbuffers/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/flatbuffers/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib
 , buildPythonPackage
 , flatbuffers
 }:
@@ -8,10 +8,14 @@ buildPythonPackage rec {
 
   sourceRoot = "source/python";
 
+  # flatbuffers needs VERSION environment variable for setting the correct
+  # version, otherwise it uses the current date.
+  VERSION = "${version}";
+
   pythonImportsCheck = [ "flatbuffers" ];
 
   meta = flatbuffers.meta // {
     description = "Python runtime library for use with the Flatbuffers serialization format";
-    maintainers = with stdenv.lib.maintainers; [ wulfsta ];
+    maintainers = with lib.maintainers; [ wulfsta ];
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/flowlogs_reader/default.nix b/nixpkgs/pkgs/development/python-modules/flowlogs_reader/default.nix
index 717e3a3291b6..1a6591040a2e 100644
--- a/nixpkgs/pkgs/development/python-modules/flowlogs_reader/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/flowlogs_reader/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , isPy27
@@ -22,7 +22,7 @@ buildPythonPackage rec {
   propagatedBuildInputs = [ botocore boto3 docutils ];
   buildInputs = [ unittest2 mock ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Python library to make retrieving Amazon VPC Flow Logs from CloudWatch Logs a bit easier";
     homepage = "https://github.com/obsrvbl/flowlogs-reader";
     maintainers = with maintainers; [ cransom ];
diff --git a/nixpkgs/pkgs/development/python-modules/flufl/i18n.nix b/nixpkgs/pkgs/development/python-modules/flufl/i18n.nix
index b980449661ee..8b0c98635507 100644
--- a/nixpkgs/pkgs/development/python-modules/flufl/i18n.nix
+++ b/nixpkgs/pkgs/development/python-modules/flufl/i18n.nix
@@ -2,7 +2,7 @@
 
 buildPythonPackage rec {
   pname = "flufl.i18n";
-  version = "3.1.3";
+  version = "3.1.4";
 
   propagatedBuildInputs = [ atpublic ];
 
@@ -12,6 +12,6 @@ buildPythonPackage rec {
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "dcca738be27f2c43ddf6f9307667a17478353190071f38a9f92c9af8d2252ba4";
+    sha256 = "e19036292a825a69f0e0a87566d1628830c69eecd3b0295d22f582039477a6bb";
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/flup/default.nix b/nixpkgs/pkgs/development/python-modules/flup/default.nix
index a6ef4d421df3..52ac5da27aa1 100644
--- a/nixpkgs/pkgs/development/python-modules/flup/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/flup/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , isPy3k
 , fetchPypi
@@ -14,7 +14,7 @@ buildPythonPackage rec {
     sha256 = "5eb09f26eb0751f8380d8ac43d1dfb20e1d42eca0fa45ea9289fa532a79cd159";
   };
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://www.saddi.com/software/flup/";
     description = "FastCGI Python module set";
     license = licenses.bsd0;
diff --git a/nixpkgs/pkgs/development/python-modules/flux-led/default.nix b/nixpkgs/pkgs/development/python-modules/flux-led/default.nix
index 1cbfca78462f..ddec811e21ce 100644
--- a/nixpkgs/pkgs/development/python-modules/flux-led/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/flux-led/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchFromGitHub
+{ lib, stdenv, buildPythonPackage, fetchFromGitHub
 , aiohttp, zigpy
 , pytest, isPy27 }:
 
@@ -14,7 +14,7 @@ buildPythonPackage rec {
     sha256 = "1zgajlkhclyrqhkmivna4ha2lyvfpk5929s042gy59p7mzpkvjx7";
   };
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "A Python library to communicate with the flux_led smart bulbs";
     homepage = "https://github.com/Danielhiversen/flux_led";
     license = licenses.lgpl3;
diff --git a/nixpkgs/pkgs/development/python-modules/fnvhash/default.nix b/nixpkgs/pkgs/development/python-modules/fnvhash/default.nix
new file mode 100644
index 000000000000..d506b51a92cf
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/fnvhash/default.nix
@@ -0,0 +1,28 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, pytestCheckHook
+}:
+
+buildPythonPackage rec {
+  pname = "fnvhash";
+  version = "0.1.0";
+
+  src = fetchFromGitHub {
+    owner = "znerol";
+    repo = "py-fnvhash";
+    rev = "v${version}";
+    sha256 = "00h8i70qd3dpsyf2dp7fkcb9m2prd6m3l33qv3wf6idpnqgjz6fq";
+  };
+
+  checkInputs = [ pytestCheckHook ];
+
+  pythonImportsCheck = [ "fnvhash" ];
+
+  meta = with lib; {
+    description = "Python FNV hash implementation";
+    homepage = "https://github.com/znerol/py-fnvhash";
+    license = with licenses; [ mit ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/folium/default.nix b/nixpkgs/pkgs/development/python-modules/folium/default.nix
index 800ece5261da..c0adaeaa5589 100644
--- a/nixpkgs/pkgs/development/python-modules/folium/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/folium/default.nix
@@ -14,11 +14,11 @@
 
 buildPythonPackage rec {
   pname = "folium";
-  version = "0.11.0";
+  version = "0.12.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "540789abc21872469e52c59ac3962c61259a8df557feadd6514eb23eb0a64ca7";
+    sha256 = "d45ace0a813ae65f202ce0356eb29c40a5e8fde071e4d6b5be0a89587ebaeab2";
   };
 
   disabled = pythonOlder "3.5";
diff --git a/nixpkgs/pkgs/development/python-modules/foolscap/default.nix b/nixpkgs/pkgs/development/python-modules/foolscap/default.nix
index 0c5a0fff79d2..396bef6d009e 100644
--- a/nixpkgs/pkgs/development/python-modules/foolscap/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/foolscap/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , mock
@@ -24,7 +24,7 @@ buildPythonPackage rec {
     # trial foolscap
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "http://foolscap.lothar.com/";
     description = "Foolscap, an RPC protocol for Python that follows the distributed object-capability model";
     longDescription = ''
diff --git a/nixpkgs/pkgs/development/python-modules/forbiddenfruit/default.nix b/nixpkgs/pkgs/development/python-modules/forbiddenfruit/default.nix
index 75b4fdef3378..64713d96adea 100644
--- a/nixpkgs/pkgs/development/python-modules/forbiddenfruit/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/forbiddenfruit/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , nose
@@ -20,7 +20,7 @@ buildPythonPackage rec {
     nosetests
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Patch python built-in objects";
     homepage = "https://pypi.python.org/pypi/forbiddenfruit";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/fortiosapi/default.nix b/nixpkgs/pkgs/development/python-modules/fortiosapi/default.nix
new file mode 100644
index 000000000000..8b0425c38817
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/fortiosapi/default.nix
@@ -0,0 +1,40 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, oyaml
+, packaging
+, paramiko
+, pexpect
+, requests
+}:
+
+buildPythonPackage rec {
+  pname = "fortiosapi";
+  version = "1.0.5";
+
+  src = fetchFromGitHub {
+    owner = "fortinet-solutions-cse";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "0679dizxcd4sk1b4h6ss8qsbjb3c8qyijlp4gzjqji91w6anzg9k";
+  };
+
+  propagatedBuildInputs = [
+    pexpect
+    requests
+    paramiko
+    packaging
+    oyaml
+  ];
+
+  # Tests require a local VM
+  doCheck = false;
+  pythonImportsCheck = [ "fortiosapi" ];
+
+  meta = with lib; {
+    description = "Python module to work with Fortigate/Fortios devices";
+    homepage = "https://github.com/fortinet-solutions-cse/fortiosapi";
+    license = with licenses; [ asl20 ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/foxdot/default.nix b/nixpkgs/pkgs/development/python-modules/foxdot/default.nix
index cc9ad87052b0..d60c1e89900a 100644
--- a/nixpkgs/pkgs/development/python-modules/foxdot/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/foxdot/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi, tkinter, supercollider }:
+{ lib, stdenv, buildPythonPackage, fetchPypi, tkinter, supercollider }:
 
 buildPythonPackage rec {
   pname = "FoxDot";
@@ -14,7 +14,7 @@ buildPythonPackage rec {
   # Requires a running SuperCollider instance
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Live coding music with SuperCollider";
     homepage = "https://foxdot.org/";
     license = licenses.cc-by-sa-40;
diff --git a/nixpkgs/pkgs/development/python-modules/freezegun/0.3.nix b/nixpkgs/pkgs/development/python-modules/freezegun/0.3.nix
index 219fc180b225..9dc88596f267 100644
--- a/nixpkgs/pkgs/development/python-modules/freezegun/0.3.nix
+++ b/nixpkgs/pkgs/development/python-modules/freezegun/0.3.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , isPy27
@@ -23,7 +23,7 @@ buildPythonPackage rec {
   # contains python3 specific code
   doCheck = !isPy27;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "FreezeGun: Let your Python tests travel through time";
     homepage = "https://github.com/spulec/freezegun";
     license = licenses.asl20;
diff --git a/nixpkgs/pkgs/development/python-modules/freezegun/default.nix b/nixpkgs/pkgs/development/python-modules/freezegun/default.nix
index 743b041775f0..f1b1d9738d72 100644
--- a/nixpkgs/pkgs/development/python-modules/freezegun/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/freezegun/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , pythonOlder
 , fetchPypi
@@ -25,7 +25,7 @@ buildPythonPackage rec {
   # contains python3 specific code
   doCheck = !isPy27;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "FreezeGun: Let your Python tests travel through time";
     homepage = "https://github.com/spulec/freezegun";
     license = licenses.asl20;
diff --git a/nixpkgs/pkgs/development/python-modules/fritzconnection/default.nix b/nixpkgs/pkgs/development/python-modules/fritzconnection/default.nix
index d55941bd5b47..571fba1a8acd 100644
--- a/nixpkgs/pkgs/development/python-modules/fritzconnection/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/fritzconnection/default.nix
@@ -1,37 +1,26 @@
-{ stdenv, buildPythonPackage, pythonOlder, fetchFromGitHub, pytest, requests }:
+{ lib, stdenv, buildPythonPackage, pythonOlder, fetchFromGitHub, pytestCheckHook, requests }:
 
 buildPythonPackage rec {
   pname = "fritzconnection";
-  version = "1.2.1";
+  version = "1.4.0";
 
+  # no tests on PyPI
   src = fetchFromGitHub {
     owner = "kbr";
     repo = pname;
     rev = version;
-    sha256 = "17z4shs56ci9mxmilppv5xy9gbnbp6p1h2ms6x55nkvwndacrp7x";
+    sha256 = "1p8dqcc75xfhyvc9izjzz8c7qfrdkjkrkj36j7ms5fimn5bwk70q";
   };
 
-  disabled = pythonOlder "3.5";
-
-  # Exclude test files from build, which cause ImportMismtachErrors and
-  # otherwise missing resources during tests. This patch can be dropped once
-  # https://github.com/kbr/fritzconnection/pull/39 is merged.
-  prePatch = ''
-    substituteInPlace setup.py \
-      --replace 'find_packages()' 'find_packages(exclude=["*.tests"])'
-  '';
+  disabled = pythonOlder "3.6";
 
   propagatedBuildInputs = [ requests ];
 
-  checkInputs = [ pytest ];
-
-  checkPhase = ''
-    pytest
-  '';
+  checkInputs = [ pytestCheckHook ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Python-Tool to communicate with the AVM FritzBox using the TR-064 protocol";
-    homepage = "https://bitbucket.org/kbr/fritzconnection";
+    homepage = "https://github.com/kbr/fritzconnection";
     license = licenses.mit;
     maintainers = with maintainers; [ dotlambda valodim ];
   };
diff --git a/nixpkgs/pkgs/development/python-modules/frozendict/default.nix b/nixpkgs/pkgs/development/python-modules/frozendict/default.nix
index 583dad1b014d..dd0c99298265 100644
--- a/nixpkgs/pkgs/development/python-modules/frozendict/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/frozendict/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi }:
+{ lib, stdenv, buildPythonPackage, fetchPypi }:
 
 buildPythonPackage rec {
   pname = "frozendict";
@@ -12,7 +12,7 @@ buildPythonPackage rec {
   # frozendict does not come with tests
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://github.com/slezica/python-frozendict";
     description = "An immutable dictionary";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/ftfy/default.nix b/nixpkgs/pkgs/development/python-modules/ftfy/default.nix
index a781230a9193..63342c7045d0 100644
--- a/nixpkgs/pkgs/development/python-modules/ftfy/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/ftfy/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , isPy3k
 , fetchPypi
@@ -34,7 +34,7 @@ buildPythonPackage rec {
     PATH=$out/bin:$PATH pytest
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Given Unicode text, make its representation consistent and possibly less broken";
     homepage = "https://github.com/LuminosoInsight/python-ftfy";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/ftputil/default.nix b/nixpkgs/pkgs/development/python-modules/ftputil/default.nix
index f38f5d740971..883ff69c6d68 100644
--- a/nixpkgs/pkgs/development/python-modules/ftputil/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/ftputil/default.nix
@@ -21,7 +21,7 @@ buildPythonPackage rec {
           and not test_conditional_upload and not test_conditional_download_with_older_target \
   ''
   # need until https://ftputil.sschwarzer.net/trac/ticket/140#ticket is fixed
-  + lib.optionalString stdenv.isDarwin ''and not test_error_message_reuse''
+  + lib.optionalString stdenv.isDarwin "and not test_error_message_reuse"
   + ''"'';
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/development/python-modules/fudge/default.nix b/nixpkgs/pkgs/development/python-modules/fudge/default.nix
index 16656fb19a74..3f53b66d1efa 100644
--- a/nixpkgs/pkgs/development/python-modules/fudge/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/fudge/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , nose
@@ -21,7 +21,7 @@ buildPythonPackage rec {
     nosetests -v
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://github.com/fudge-py/fudge";
     description = "Replace real objects with fakes (mocks, stubs, etc) while testing";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/funcparserlib/default.nix b/nixpkgs/pkgs/development/python-modules/funcparserlib/default.nix
index 3a9503419ecd..773ed1dccd67 100644
--- a/nixpkgs/pkgs/development/python-modules/funcparserlib/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/funcparserlib/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , python
@@ -21,7 +21,7 @@ buildPythonPackage rec {
   # Tests are Python 2.x only judging from SyntaxError
   doCheck = !(isPy3k);
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Recursive descent parsing library based on functional combinators";
     homepage = "https://github.com/vlasovskikh/funcparserlib";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/funcsigs/default.nix b/nixpkgs/pkgs/development/python-modules/funcsigs/default.nix
index 1febf9d356eb..1464baa57df2 100644
--- a/nixpkgs/pkgs/development/python-modules/funcsigs/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/funcsigs/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi
+{ lib, stdenv, buildPythonPackage, fetchPypi
 , isPyPy, isPy3k, unittest2
 }:
 
@@ -14,9 +14,9 @@ buildPythonPackage rec {
   buildInputs = [ unittest2 ];
 
   # https://github.com/testing-cabal/funcsigs/issues/10
-  patches = stdenv.lib.optional (isPyPy && isPy3k) [ ./fix-pypy3-tests.patch ];
+  patches = lib.optional (isPyPy && isPy3k) [ ./fix-pypy3-tests.patch ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Python function signatures from PEP362 for Python 2.6, 2.7 and 3.2+";
     homepage = "https://github.com/aliles/funcsigs";
     maintainers = with maintainers; [ ];
diff --git a/nixpkgs/pkgs/development/python-modules/functools32/default.nix b/nixpkgs/pkgs/development/python-modules/functools32/default.nix
index fea79db3d05b..cec9da423958 100644
--- a/nixpkgs/pkgs/development/python-modules/functools32/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/functools32/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , isPy3k
@@ -13,7 +13,7 @@ if isPy3k then null else buildPythonPackage rec {
     sha256 = "0v8ya0b58x47wp216n1zamimv4iw57cxz3xxhzix52jkw3xks9gn";
   };
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "This is a backport of the functools standard library module from";
     homepage = "https://github.com/MiCHiLU/python-functools32";
     license = licenses.psfl;
diff --git a/nixpkgs/pkgs/development/python-modules/funcy/default.nix b/nixpkgs/pkgs/development/python-modules/funcy/default.nix
index 96b12e631abf..3db08cf22bbd 100644
--- a/nixpkgs/pkgs/development/python-modules/funcy/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/funcy/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 }:
@@ -15,7 +15,7 @@ buildPythonPackage rec {
   # No tests
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Collection of fancy functional tools focused on practicality";
     homepage = "https://funcy.readthedocs.org/";
     license = licenses.bsd3;
diff --git a/nixpkgs/pkgs/development/python-modules/furl/default.nix b/nixpkgs/pkgs/development/python-modules/furl/default.nix
index 5893e5a6b941..b7592885007e 100644
--- a/nixpkgs/pkgs/development/python-modules/furl/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/furl/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi, flake8, six, orderedmultidict, pytest }:
+{ lib, stdenv, buildPythonPackage, fetchPypi, flake8, six, orderedmultidict, pytest }:
 
 buildPythonPackage rec {
   pname = "furl";
@@ -18,7 +18,7 @@ buildPythonPackage rec {
     pytest -k 'not join'
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "furl is a small Python library that makes parsing and manipulating URLs easy";
     homepage = "https://github.com/gruns/furl";
     license = licenses.unlicense;
diff --git a/nixpkgs/pkgs/development/python-modules/fuse-python/default.nix b/nixpkgs/pkgs/development/python-modules/fuse-python/default.nix
index ab87f57be395..a130fab0d7eb 100644
--- a/nixpkgs/pkgs/development/python-modules/fuse-python/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/fuse-python/default.nix
@@ -1,21 +1,23 @@
-{ stdenv, buildPythonPackage, fetchPypi, pkgconfig, fuse }:
+{ lib, stdenv, buildPythonPackage, fetchPypi, pkg-config, fuse }:
 
 buildPythonPackage rec {
   pname = "fuse-python";
-  version = "1.0.0";
+  version = "1.0.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "cbaa21c8f0a440302d1ba9fd57a80cf9ff227e5a3820708a8ba8450db883cc05";
+    sha256 = "da42d4f596a2e91602bcdf46cc51747df31c074a3ceb78bccc253c483a8a75fb";
   };
 
   buildInputs = [ fuse ];
-  nativeBuildInputs = [ pkgconfig ];
+  nativeBuildInputs = [ pkg-config ];
 
-  # no tests in the Pypi archive
+  # no tests implemented
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  pythonImportsCheck = [ "fuse" ];
+
+  meta = with lib; {
     description = "Python bindings for FUSE";
     homepage = "https://github.com/libfuse/python-fuse";
     license = licenses.lgpl21;
diff --git a/nixpkgs/pkgs/development/python-modules/fusepy/default.nix b/nixpkgs/pkgs/development/python-modules/fusepy/default.nix
index 57355126dde2..858d3e13ea0c 100644
--- a/nixpkgs/pkgs/development/python-modules/fusepy/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/fusepy/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , pkgs
@@ -23,7 +23,7 @@ buildPythonPackage rec {
       "find_library('fuse')" "'${pkgs.fuse}/lib/libfuse.so'"
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Simple ctypes bindings for FUSE";
     longDescription = ''
       Python module that provides a simple interface to FUSE and MacFUSE.
diff --git a/nixpkgs/pkgs/development/python-modules/fuzzywuzzy/default.nix b/nixpkgs/pkgs/development/python-modules/fuzzywuzzy/default.nix
index 8baec8c1089a..c2d16a559842 100644
--- a/nixpkgs/pkgs/development/python-modules/fuzzywuzzy/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/fuzzywuzzy/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi, python-Levenshtein, pycodestyle, hypothesis, pytest }:
+{ lib, stdenv, buildPythonPackage, fetchPypi, python-Levenshtein, pycodestyle, hypothesis, pytest }:
 
 buildPythonPackage rec {
   pname = "fuzzywuzzy";
@@ -12,7 +12,7 @@ buildPythonPackage rec {
   propagatedBuildInputs = [ python-Levenshtein ];
   checkInputs = [ pycodestyle hypothesis pytest ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Fuzzy string matching for Python";
     homepage = "https://github.com/seatgeek/fuzzywuzzy";
     license = licenses.gpl2;
diff --git a/nixpkgs/pkgs/development/python-modules/gast/default.nix b/nixpkgs/pkgs/development/python-modules/gast/default.nix
index 49687ebe3184..e4dbe43ef8d7 100644
--- a/nixpkgs/pkgs/development/python-modules/gast/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/gast/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchPypi, buildPythonPackage, astunparse }:
+{ lib, stdenv, fetchPypi, buildPythonPackage, astunparse }:
 
 buildPythonPackage rec {
   pname = "gast";
@@ -8,7 +8,7 @@ buildPythonPackage rec {
     sha256 = "40feb7b8b8434785585ab224d1568b857edb18297e5a3047f1ba012bc83b42c1";
   };
   checkInputs = [ astunparse ] ;
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "GAST provides a compatibility layer between the AST of various Python versions, as produced by ast.parse from the standard ast module.";
     license = licenses.bsd3;
     maintainers = with maintainers; [ jyp ];
diff --git a/nixpkgs/pkgs/development/python-modules/gateone/default.nix b/nixpkgs/pkgs/development/python-modules/gateone/default.nix
index 372cdae8c233..981cbbb7e8c3 100644
--- a/nixpkgs/pkgs/development/python-modules/gateone/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/gateone/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , tornado
 , futures
@@ -25,7 +25,7 @@ buildPythonPackage {
     cp -R "$out/gateone/"* $out/lib/python2.7/site-packages/gateone
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "http://liftoffsoftware.com/";
     description = "GateOne is a web-based terminal emulator and SSH client";
     maintainers = with maintainers; [ tomberek ];
diff --git a/nixpkgs/pkgs/development/python-modules/gcovr/default.nix b/nixpkgs/pkgs/development/python-modules/gcovr/default.nix
index 774b2087d8fd..bedb7f3a3755 100644
--- a/nixpkgs/pkgs/development/python-modules/gcovr/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/gcovr/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , jinja2
@@ -30,7 +30,7 @@ buildPythonPackage rec {
     "gcovr.configuration"
   ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "A Python script for summarizing gcov data";
     license = licenses.bsd0;
     homepage = "https://www.gcovr.com/";
diff --git a/nixpkgs/pkgs/development/python-modules/gdata/default.nix b/nixpkgs/pkgs/development/python-modules/gdata/default.nix
index 182fdc402a64..bf9c01c250ab 100644
--- a/nixpkgs/pkgs/development/python-modules/gdata/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/gdata/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchurl
 }:
@@ -15,7 +15,7 @@ buildPythonPackage rec {
   # Fails with "error: invalid command 'test'"
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://github.com/google/gdata-python-client";
     description = "Python client library for Google data APIs";
     license = licenses.asl20;
diff --git a/nixpkgs/pkgs/development/python-modules/gdrivefs/default.nix b/nixpkgs/pkgs/development/python-modules/gdrivefs/default.nix
index 24b788f2c6d7..aab5efea97de 100644
--- a/nixpkgs/pkgs/development/python-modules/gdrivefs/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/gdrivefs/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchurl
 , isPy3k
@@ -29,7 +29,7 @@ buildPythonPackage rec {
       --replace "==" ">="
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Mount Google Drive as a local file system";
     longDescription = ''
       GDriveFS is a FUSE wrapper for Google Drive developed. Design goals:
diff --git a/nixpkgs/pkgs/development/python-modules/geeknote/default.nix b/nixpkgs/pkgs/development/python-modules/geeknote/default.nix
index cacc832486e2..4eb209a8af7f 100644
--- a/nixpkgs/pkgs/development/python-modules/geeknote/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/geeknote/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchFromGitHub
 , isPy27
@@ -28,7 +28,7 @@ buildPythonPackage {
 
   propagatedBuildInputs = [ thrift beautifulsoup4 markdown2 sqlalchemy html2text evernote ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Work with Evernote from command line";
     homepage = "http://www.geeknote.me";
     license = licenses.gpl1;
diff --git a/nixpkgs/pkgs/development/python-modules/genanki/default.nix b/nixpkgs/pkgs/development/python-modules/genanki/default.nix
index bda80fe9e752..f43fdabf09e5 100644
--- a/nixpkgs/pkgs/development/python-modules/genanki/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/genanki/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi, isPy3k
+{ lib, stdenv, buildPythonPackage, fetchPypi, isPy3k
 , cached-property, frozendict, pystache, pyyaml, pytest, pytestrunner
 }:
 
@@ -29,7 +29,7 @@ buildPythonPackage rec {
     py.test
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://github.com/kerrickstaley/genanki";
     description = "Generate Anki decks programmatically";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/genome-collector/default.nix b/nixpkgs/pkgs/development/python-modules/genome-collector/default.nix
new file mode 100644
index 000000000000..70589912520a
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/genome-collector/default.nix
@@ -0,0 +1,34 @@
+{ lib
+, buildPythonPackage
+, appdirs
+, biopython
+, fetchPypi
+, proglog
+}:
+
+buildPythonPackage rec {
+  pname = "genome_collector";
+  version = "0.1.6";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "0023ihrz0waxbhq28xh1ymvk51ih882y9psg4glm6s9d1zmqvdph";
+  };
+
+  propagatedBuildInputs = [
+    appdirs
+    biopython
+    proglog
+  ];
+
+  # Project hasn't released the tests yet
+  doCheck = false;
+  pythonImportsCheck = [ "genome_collector" ];
+
+  meta = with lib; {
+    description = "Genomes and build BLAST/Bowtie indexes in Python";
+    homepage = "https://github.com/Edinburgh-Genome-Foundry/genome_collector";
+    license = with licenses; [ mit ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/genpy/default.nix b/nixpkgs/pkgs/development/python-modules/genpy/default.nix
index 64e253b32019..d5e82332c30b 100644
--- a/nixpkgs/pkgs/development/python-modules/genpy/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/genpy/default.nix
@@ -7,11 +7,11 @@
 
 buildPythonPackage rec {
   pname = "genpy";
-  version = "2016.1.3";
+  version = "2021.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1c11726f1e8ace8bbdfc87816403c9a59f53a8c3d45c99187ae17c9725d87a91";
+    sha256 = "9bc062fa98c5c466ff464d8974be81a6bf67af9247b5e5176215ad1e81a6cdac";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/genshi/default.nix b/nixpkgs/pkgs/development/python-modules/genshi/default.nix
index 9e6bab6e1690..9a6e4508e30e 100644
--- a/nixpkgs/pkgs/development/python-modules/genshi/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/genshi/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , setuptools
@@ -22,7 +22,7 @@ buildPythonPackage rec {
     setuptools six
   ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Python components for parsing HTML, XML and other textual content";
     longDescription = ''
       Python library that provides an integrated set of components for
diff --git a/nixpkgs/pkgs/development/python-modules/genzshcomp/default.nix b/nixpkgs/pkgs/development/python-modules/genzshcomp/default.nix
index 5917d71c4408..8f486cc29efb 100644
--- a/nixpkgs/pkgs/development/python-modules/genzshcomp/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/genzshcomp/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , setuptools
@@ -15,7 +15,7 @@ buildPythonPackage rec {
 
   buildInputs = [ setuptools ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Automatically generated zsh completion function for Python's option parser modules";
     homepage = "https://bitbucket.org/hhatto/genzshcomp/";
     license = licenses.bsd0;
diff --git a/nixpkgs/pkgs/development/python-modules/geoalchemy2/default.nix b/nixpkgs/pkgs/development/python-modules/geoalchemy2/default.nix
index e96c67b044db..56f9346668f6 100644
--- a/nixpkgs/pkgs/development/python-modules/geoalchemy2/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/geoalchemy2/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , sqlalchemy
@@ -22,7 +22,7 @@ buildPythonPackage rec {
   # https://github.com/geoalchemy/geoalchemy2/blob/e05a676350b11f0e73609379dae5625c5de2e868/TEST.rst
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage =  "http://geoalchemy.org/";
     license = licenses.mit;
     description = "Toolkit for working with spatial databases";
diff --git a/nixpkgs/pkgs/development/python-modules/geographiclib/default.nix b/nixpkgs/pkgs/development/python-modules/geographiclib/default.nix
index 0c275b672abd..98c1ee417e43 100644
--- a/nixpkgs/pkgs/development/python-modules/geographiclib/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/geographiclib/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 }:
@@ -12,7 +12,7 @@ buildPythonPackage rec {
     sha256 = "0cn6ap5fkh3mkfa57l5b44z3gvz7j6lpmc9rl4g2jny2gvp4dg8j";
   };
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://geographiclib.sourceforge.io";
     description = "Algorithms for geodesics (Karney, 2013) for solving the direct and inverse problems for an ellipsoid of revolution";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/geojson-client/default.nix b/nixpkgs/pkgs/development/python-modules/geojson-client/default.nix
new file mode 100644
index 000000000000..7e683e204834
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/geojson-client/default.nix
@@ -0,0 +1,39 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, geojson
+, haversine
+, pytz
+, requests
+, pytestCheckHook
+}:
+
+buildPythonPackage rec {
+  pname = "geojson-client";
+  version = "0.5";
+
+  src = fetchFromGitHub {
+    owner = "exxamalte";
+    repo = "python-geojson-client";
+    rev = "v${version}";
+    sha256 = "1cc6ymbn45dv7xdl1r8bbizlmsdbxjmsfza442yxmmm19nxnnqjv";
+  };
+
+  propagatedBuildInputs = [
+    geojson
+    haversine
+    pytz
+    requests
+  ];
+
+  checkInputs = [ pytestCheckHook ];
+
+  pythonImportsCheck = [ "geojson_client" ];
+
+  meta = with lib; {
+    description = "Python module for convenient access to GeoJSON feeds";
+    homepage = "https://github.com/exxamalte/python-geojson-client";
+    license = with licenses; [ asl20 ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/geopandas/default.nix b/nixpkgs/pkgs/development/python-modules/geopandas/default.nix
index bd38d2663bc2..70963a85d41d 100644
--- a/nixpkgs/pkgs/development/python-modules/geopandas/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/geopandas/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchFromGitHub, isPy27
+{ lib, stdenv, buildPythonPackage, fetchFromGitHub, isPy27
 , pandas, shapely, fiona, descartes, pyproj
 , pytestCheckHook, Rtree, fetchpatch }:
 
@@ -29,10 +29,6 @@ buildPythonPackage rec {
     })
   ];
 
-  checkInputs = [ pytestCheckHook Rtree ];
-  disabledTests = [ "web" ];
-  pytestFlagsArray = [ "geopandas" ];
-
   propagatedBuildInputs = [
     pandas
     shapely
@@ -41,7 +37,12 @@ buildPythonPackage rec {
     pyproj
   ];
 
-  meta = with stdenv.lib; {
+  doCheck = !stdenv.isDarwin;
+  checkInputs = [ pytestCheckHook Rtree ];
+  disabledTests = [ "web" ];
+  pytestFlagsArray = [ "geopandas" ];
+
+  meta = with lib; {
     description = "Python geospatial data analysis framework";
     homepage = "https://geopandas.org";
     license = licenses.bsd3;
diff --git a/nixpkgs/pkgs/development/python-modules/geopy/2.nix b/nixpkgs/pkgs/development/python-modules/geopy/2.nix
index 2863d30f4684..ae4e07e25479 100644
--- a/nixpkgs/pkgs/development/python-modules/geopy/2.nix
+++ b/nixpkgs/pkgs/development/python-modules/geopy/2.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , isPy27
@@ -19,7 +19,7 @@ buildPythonPackage rec {
     sha256 = "0jypkaqlbyr8icqypwm23lzsvq7flakp3a3nqr8ib5fmd0fzsq7q";
   };
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://github.com/geopy/geopy";
     description = "Python Geocoding Toolbox";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/geopy/default.nix b/nixpkgs/pkgs/development/python-modules/geopy/default.nix
index 817c1e38418e..693a4221ee09 100644
--- a/nixpkgs/pkgs/development/python-modules/geopy/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/geopy/default.nix
@@ -1,30 +1,42 @@
-{ stdenv
+{ lib
+, async_generator
 , buildPythonPackage
 , fetchFromGitHub
-, isPy3k
 , geographiclib
+, isPy3k
+, pytestCheckHook
 }:
 
 buildPythonPackage rec {
-  pname = "geopy-unstable";
-  version = "2019-11-10";
-
+  pname = "geopy";
+  version = "2.1.0";
   disabled = !isPy3k; # only Python 3
-  doCheck = false; # Needs network access
-
-  propagatedBuildInputs = [ geographiclib ];
 
   src = fetchFromGitHub {
-    owner = "geopy";
-    repo = "geopy";
-    rev = "531b7de6126838a3e69370227aa7f2086ba52b89";
-    sha256 = "07l1pblzg3hb3dbvd9rq8x78ly5dv0zxbc5hwskqil0bhv5v1p39";
+    owner = pname;
+    repo = pname;
+    rev = version;
+    sha256 = "0239a4achk49ngagb6aqy6cgzfwgbxir07vwi13ysbpx78y0l4g9";
   };
 
-  meta = with stdenv.lib; {
+  propagatedBuildInputs = [ geographiclib ];
+
+  checkInputs = [
+    async_generator
+    pytestCheckHook
+  ];
+
+  # Exclude tests which perform API calls
+  pytestFlagsArray = [ "--ignore test/geocoders/" ];
+  pythonImportsCheck = [ "geopy" ];
+
+  __darwinAllowLocalNetworking = true;
+
+  meta = with lib; {
     homepage = "https://github.com/geopy/geopy";
     description = "Python Geocoding Toolbox";
-    license = licenses.mit;
-    maintainers = with maintainers; [GuillaumeDesforges];
+    changelog = "https://github.com/geopy/geopy/releases/tag/${version}";
+    license = with licenses; [ mit ];
+    maintainers = with maintainers; [ GuillaumeDesforges ];
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/gevent-socketio/default.nix b/nixpkgs/pkgs/development/python-modules/gevent-socketio/default.nix
index 2b847275bed0..88d1089d5a31 100644
--- a/nixpkgs/pkgs/development/python-modules/gevent-socketio/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/gevent-socketio/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , versiontools
@@ -20,7 +20,7 @@ buildPythonPackage rec {
   buildInputs = [ versiontools gevent-websocket mock pytest ];
   propagatedBuildInputs = [ gevent ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://github.com/abourget/gevent-socketio";
     description = "SocketIO server based on the Gevent pywsgi server, a Python network library";
     license = licenses.bsd0;
diff --git a/nixpkgs/pkgs/development/python-modules/gevent-websocket/default.nix b/nixpkgs/pkgs/development/python-modules/gevent-websocket/default.nix
index adc13738d5ea..431a0c09a30c 100644
--- a/nixpkgs/pkgs/development/python-modules/gevent-websocket/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/gevent-websocket/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , isPy3k
@@ -17,7 +17,7 @@ buildPythonPackage rec {
 
   propagatedBuildInputs = [ gevent gunicorn ];
 
-  meta = with stdenv.lib; {
+  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;
diff --git a/nixpkgs/pkgs/development/python-modules/gevent/default.nix b/nixpkgs/pkgs/development/python-modules/gevent/default.nix
index bf066f519065..0fcf6cdfaaa9 100644
--- a/nixpkgs/pkgs/development/python-modules/gevent/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/gevent/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchPypi, buildPythonPackage, isPyPy, python, libev, greenlet
+{ lib, stdenv, fetchPypi, buildPythonPackage, isPyPy, python, libev, greenlet
 , zope_interface
 }:
 
@@ -15,7 +15,7 @@ buildPythonPackage rec {
   buildInputs = [ libev ];
   propagatedBuildInputs = [
     zope_interface
-  ] ++ stdenv.lib.optionals (!isPyPy) [ greenlet ];
+  ] ++ lib.optionals (!isPyPy) [ greenlet ];
 
   checkPhase = ''
     cd greentest
@@ -25,7 +25,7 @@ buildPythonPackage rec {
   # Bunch of failures.
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Coroutine-based networking library";
     homepage = "http://www.gevent.org/";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/geventhttpclient/default.nix b/nixpkgs/pkgs/development/python-modules/geventhttpclient/default.nix
index 55ef8c39981a..fafbef12bd3a 100644
--- a/nixpkgs/pkgs/development/python-modules/geventhttpclient/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/geventhttpclient/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , pytest
@@ -26,7 +26,7 @@ buildPythonPackage rec {
     py.test $out
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://github.com/gwik/geventhttpclient";
     description = "HTTP client library for gevent";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/ghdiff/default.nix b/nixpkgs/pkgs/development/python-modules/ghdiff/default.nix
index c58d63a08375..a9582648117a 100644
--- a/nixpkgs/pkgs/development/python-modules/ghdiff/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/ghdiff/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi
+{ lib, stdenv, buildPythonPackage, fetchPypi
 , zope_testrunner, six, chardet}:
 
 buildPythonPackage rec {
@@ -13,7 +13,7 @@ buildPythonPackage rec {
   checkInputs = [ zope_testrunner ];
   propagatedBuildInputs = [ six chardet ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage =  "https://github.com/kilink/ghdiff";
     license = licenses.mit;
     description = "Generate Github-style HTML for unified diffs.";
diff --git a/nixpkgs/pkgs/development/python-modules/gipc/default.nix b/nixpkgs/pkgs/development/python-modules/gipc/default.nix
index 04dc8b0c068d..a48547f29099 100644
--- a/nixpkgs/pkgs/development/python-modules/gipc/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/gipc/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , gevent
@@ -15,7 +15,7 @@ buildPythonPackage rec {
 
   propagatedBuildInputs = [ gevent ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "gevent-cooperative child processes and IPC";
     longDescription = ''
       Usage of Python's multiprocessing package in a gevent-powered
diff --git a/nixpkgs/pkgs/development/python-modules/git-annex-adapter/default.nix b/nixpkgs/pkgs/development/python-modules/git-annex-adapter/default.nix
index e5d9910024a5..5922377ab3a1 100644
--- a/nixpkgs/pkgs/development/python-modules/git-annex-adapter/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/git-annex-adapter/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, isPy3k, fetchFromGitHub, substituteAll
+{ lib, stdenv, buildPythonPackage, isPy3k, fetchFromGitHub, fetchpatch, substituteAll
 , python, util-linux, pygit2, gitMinimal, git-annex, cacert
 }:
 
@@ -17,6 +17,11 @@ buildPythonPackage rec {
   };
 
   patches = [
+    # fix tests with recent versions of git-annex
+    (fetchpatch {
+      url = "https://github.com/alpernebbi/git-annex-adapter/commit/6c210d828e8a57b12c716339ad1bf15c31cd4a55.patch";
+      sha256 = "17kp7pnm9svq9av4q7hfic95xa1w3z02dnr8nmg14sjck2rlmqsi";
+    })
     (substituteAll {
       src = ./git-annex-path.patch;
       gitAnnex = "${git-annex}/bin/git-annex";
@@ -35,7 +40,7 @@ buildPythonPackage rec {
   '';
   pythonImportsCheck = [ "git_annex_adapter" ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://github.com/alpernebbi/git-annex-adapter";
     description = "Call git-annex commands from Python";
     license = licenses.gpl3Plus;
diff --git a/nixpkgs/pkgs/development/python-modules/git-sweep/default.nix b/nixpkgs/pkgs/development/python-modules/git-sweep/default.nix
index aa2a223c7774..adb9de4dbc0d 100644
--- a/nixpkgs/pkgs/development/python-modules/git-sweep/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/git-sweep/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , GitPython
@@ -15,7 +15,7 @@ buildPythonPackage rec {
 
   propagatedBuildInputs = [ GitPython ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "A command-line tool that helps you clean up Git branches";
     homepage = "https://github.com/arc90/git-sweep";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/glances-api/default.nix b/nixpkgs/pkgs/development/python-modules/glances-api/default.nix
new file mode 100644
index 000000000000..2f5a1416e41c
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/glances-api/default.nix
@@ -0,0 +1,34 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, aiohttp
+, async-timeout
+}:
+
+buildPythonPackage rec {
+  pname = "glances-api";
+  version = "0.2.0";
+
+  src = fetchFromGitHub {
+    owner = "home-assistant-ecosystem";
+    repo = "python-glances-api";
+    rev = version;
+    sha256 = "0rgv77n0lvr7d3vk4qc8svipxafmm6s4lfxrl976hsygrhaqidch";
+  };
+
+  propagatedBuildInputs = [
+    aiohttp
+    async-timeout
+  ];
+
+  # no tests are present
+  doCheck = false;
+  pythonImportsCheck = [ "glances_api" ];
+
+  meta = with lib; {
+    description = "Python API for interacting with Glances";
+    homepage = "https://github.com/home-assistant-ecosystem/python-glances-api";
+    license = with licenses; [ mit ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/globre/default.nix b/nixpkgs/pkgs/development/python-modules/globre/default.nix
index ff2302f54678..21d2983ab015 100644
--- a/nixpkgs/pkgs/development/python-modules/globre/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/globre/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , pythonAtLeast
 , buildPythonPackage
 , fetchPypi
@@ -19,7 +19,7 @@ buildPythonPackage rec {
 
   checkInputs = [ nose coverage ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://github.com/metagriffin/globre";
     description = "A python glob-like regular expression generation library.";
     maintainers = with maintainers; [ glittershark ];
diff --git a/nixpkgs/pkgs/development/python-modules/glom/default.nix b/nixpkgs/pkgs/development/python-modules/glom/default.nix
index cae43e59c288..2acc87a17ac4 100644
--- a/nixpkgs/pkgs/development/python-modules/glom/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/glom/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , boltons
@@ -24,7 +24,7 @@ buildPythonPackage rec {
   # test_cli.py checks the output of running "glom"
   checkPhase = "PATH=$out/bin:$PATH pytest glom/test";
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://github.com/mahmoud/glom";
     description = "Restructuring data, the Python way";
     longDescription = ''
diff --git a/nixpkgs/pkgs/development/python-modules/glymur/default.nix b/nixpkgs/pkgs/development/python-modules/glymur/default.nix
index d2721951ad78..50ed257f57e0 100644
--- a/nixpkgs/pkgs/development/python-modules/glymur/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/glymur/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchFromGitHub
 , numpy
@@ -26,7 +26,7 @@ buildPythonPackage rec {
 
   propagatedBuildInputs = [
     numpy
-  ] ++ stdenv.lib.optional isPy27 [ contextlib2 mock importlib-resources ];
+  ] ++ lib.optional isPy27 [ contextlib2 mock importlib-resources ];
 
   checkInputs = [
     scikitimage
@@ -42,7 +42,7 @@ buildPythonPackage rec {
     ${python.interpreter} -m unittest discover
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Tools for accessing JPEG2000 files";
     homepage = "https://github.com/quintusdias/glymur";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/gmpy2/default.nix b/nixpkgs/pkgs/development/python-modules/gmpy2/default.nix
index cfc481a90afb..808b918681bb 100644
--- a/nixpkgs/pkgs/development/python-modules/gmpy2/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/gmpy2/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchFromGitHub
 , fetchpatch
@@ -27,7 +27,7 @@ buildPythonPackage {
 
   buildInputs = [ gmp mpfr libmpc ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "GMP/MPIR, MPFR, and MPC interface to Python 2.6+ and 3.x";
     homepage = "https://github.com/aleaxit/gmpy/";
     license = licenses.gpl3Plus;
diff --git a/nixpkgs/pkgs/development/python-modules/gmusicapi/default.nix b/nixpkgs/pkgs/development/python-modules/gmusicapi/default.nix
index deae0037bb2d..821e0ba0afa9 100644
--- a/nixpkgs/pkgs/development/python-modules/gmusicapi/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/gmusicapi/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , validictory
@@ -29,7 +29,7 @@ buildPythonPackage rec {
 
   propagatedBuildInputs = [ validictory decorator mutagen protobuf setuptools requests dateutil proboscis mock appdirs oauth2client pyopenssl gpsoauth MechanicalSoup future ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "An unofficial API for Google Play Music";
     homepage = "https://pypi.python.org/pypi/gmusicapi/";
     license = licenses.bsd3;
diff --git a/nixpkgs/pkgs/development/python-modules/gnureadline/default.nix b/nixpkgs/pkgs/development/python-modules/gnureadline/default.nix
index 3b9263258584..71116c37041b 100644
--- a/nixpkgs/pkgs/development/python-modules/gnureadline/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/gnureadline/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , isPyPy
@@ -20,7 +20,7 @@ buildPythonPackage rec {
     substituteInPlace setup.py --replace "/bin/bash" "${pkgs.bash}/bin/bash"
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "The standard Python readline extension statically linked against the GNU readline library";
     homepage = "https://github.com/ludwigschwardt/python-gnureadline";
     license = licenses.gpl3;
diff --git a/nixpkgs/pkgs/development/python-modules/gnutls/default.nix b/nixpkgs/pkgs/development/python-modules/gnutls/default.nix
index f26791fdbe96..addbee81bd3f 100644
--- a/nixpkgs/pkgs/development/python-modules/gnutls/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/gnutls/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , isPy3k
@@ -22,7 +22,7 @@ buildPythonPackage rec {
     substituteInPlace gnutls/library/__init__.py --replace "/usr/local/lib" "${pkgs.gnutls.out}/lib"
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Python wrapper for the GnuTLS library";
     homepage = "https://github.com/AGProjects/python-gnutls";
     license = licenses.lgpl2;
diff --git a/nixpkgs/pkgs/development/python-modules/goobook/default.nix b/nixpkgs/pkgs/development/python-modules/goobook/default.nix
index a3d327275157..c587c928e7e7 100644
--- a/nixpkgs/pkgs/development/python-modules/goobook/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/goobook/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi, isPy3k
+{ lib, stdenv, buildPythonPackage, fetchPypi, isPy3k
 , docutils, installShellFiles
 , google_api_python_client, simplejson, oauth2client, setuptools, xdg
 }:
@@ -27,7 +27,7 @@ buildPythonPackage rec {
 
   pythonImportsCheck = [ "goobook" ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Access your Google contacts from the command line";
     longDescription = ''
       The purpose of GooBook is to make it possible to use your Google Contacts
diff --git a/nixpkgs/pkgs/development/python-modules/goocalendar/default.nix b/nixpkgs/pkgs/development/python-modules/goocalendar/default.nix
index 441fdc85bac2..b0eea600384e 100644
--- a/nixpkgs/pkgs/development/python-modules/goocalendar/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/goocalendar/default.nix
@@ -1,7 +1,7 @@
-{ stdenv
+{ lib
 , fetchPypi
 , buildPythonPackage
-, pkgconfig
+, pkg-config
 , gtk3
 , gobject-introspection
 , pygtk
@@ -10,8 +10,6 @@
 , isPy3k
  }:
 
-with stdenv.lib;
-
 buildPythonPackage rec {
   pname = "GooCalendar";
   version = "0.7.1";
@@ -24,7 +22,7 @@ buildPythonPackage rec {
   };
 
   nativeBuildInputs = [
-    pkgconfig
+    pkg-config
     gobject-introspection
   ];
 
@@ -40,7 +38,7 @@ buildPythonPackage rec {
   # No upstream tests available
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "A calendar widget for GTK using PyGoocanvas.";
     homepage = "https://goocalendar.tryton.org/";
     license = licenses.gpl2;
diff --git a/nixpkgs/pkgs/development/python-modules/google_api_core/default.nix b/nixpkgs/pkgs/development/python-modules/google-api-core/default.nix
index efe74d478848..6715590dc329 100644
--- a/nixpkgs/pkgs/development/python-modules/google_api_core/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/google-api-core/default.nix
@@ -1,27 +1,44 @@
-{ lib, buildPythonPackage, fetchPypi, pythonOlder, google_auth, protobuf
-, googleapis_common_protos, requests, grpcio, mock, pytest, pytest-asyncio, pytestCheckHook }:
+{ lib
+, buildPythonPackage
+, fetchPypi
+, google-auth
+, googleapis_common_protos
+, grpcio
+, protobuf
+, pytz
+, requests
+, mock
+, pytest
+, pytest-asyncio
+, pytestCheckHook
+}:
 
 buildPythonPackage rec {
   pname = "google-api-core";
-  version = "1.23.0";
-  disabled = pythonOlder "3.5";
+  version = "1.24.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1bb3c485c38eacded8d685b1759968f6cf47dd9432922d34edb90359eaa391e2";
+    sha256 = "0sflnpgsvk2h1cr1m3mgxx6pzz55xw7sk4y4qdimhs5jdm2fw78g";
   };
 
-  propagatedBuildInputs =
-    [ googleapis_common_protos protobuf google_auth requests grpcio ];
+  propagatedBuildInputs = [
+    googleapis_common_protos
+    google-auth
+    grpcio
+    protobuf
+    pytz
+    requests
+  ];
 
-  checkInputs = [ google_auth mock protobuf pytest-asyncio pytestCheckHook ];
+  checkInputs = [ mock pytest-asyncio pytestCheckHook ];
 
   # prevent google directory from shadowing google imports
   preCheck = ''
     rm -r google
   '';
 
-  pythonImportsCheck = [ "google.auth" "google.protobuf" "google.api" ];
+  pythonImportsCheck = [ "google.api_core" ];
 
   meta = with lib; {
     description = "Core Library for Google Client Libraries";
@@ -33,6 +50,6 @@ buildPythonPackage rec {
     changelog =
       "https://github.com/googleapis/python-api-core/blob/v${version}/CHANGELOG.md";
     license = licenses.asl20;
-    maintainers = with maintainers; [ ];
+    maintainers = with maintainers; [ SuperSandro2000 ];
   };
 }
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 b14276b0a1a2..854ec37a1e4a 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
@@ -1,6 +1,6 @@
 { lib, buildPythonPackage, fetchPypi
-, google_auth, google-auth-httplib2, google_api_core
-, httplib2, six, uritemplate, oauth2client }:
+, google-auth, google-auth-httplib2, google-api-core
+, httplib2, six, uritemplate, oauth2client, setuptools }:
 
 buildPythonPackage rec {
   pname = "google-api-python-client";
@@ -15,8 +15,12 @@ buildPythonPackage rec {
   doCheck = false;
 
   propagatedBuildInputs = [
-    google_auth google-auth-httplib2 google_api_core
-    httplib2 six uritemplate oauth2client
+    google-auth google-auth-httplib2 google-api-core
+    httplib2 six uritemplate oauth2client setuptools
+  ];
+
+  pythonImportsCheck = [
+    "googleapiclient"
   ];
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/development/python-modules/google_apputils/default.nix b/nixpkgs/pkgs/development/python-modules/google-apputils/default.nix
index c7b386623ef8..7cc7f4858826 100644
--- a/nixpkgs/pkgs/development/python-modules/google_apputils/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/google-apputils/default.nix
@@ -1,6 +1,7 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
+, isPy3k
 , pytz
 , gflags
 , dateutil
@@ -11,10 +12,11 @@
 buildPythonPackage rec {
   pname = "google-apputils";
   version = "0.4.2";
+  disabled = isPy3k;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "47959d0651c32102c10ad919b8a0ffe0ae85f44b8457ddcf2bdc0358fb03dc29";
+    sha256 = "0afw0gxmh0yw5g7xsmw49gs8bbp0zyhbh6fr1b0h48f3a439v5a7";
   };
 
   preConfigure = ''
@@ -30,10 +32,10 @@ buildPythonPackage rec {
   # ERROR:root:Trying to access flag test_tmpdir before flags were parsed.
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Google Application Utilities for Python";
     homepage = "https://github.com/google/google-apputils";
     license = licenses.asl20;
+    maintainers = with maintainers; [ SuperSandro2000 ];
   };
-
 }
diff --git a/nixpkgs/pkgs/development/python-modules/google-auth-httplib2/default.nix b/nixpkgs/pkgs/development/python-modules/google-auth-httplib2/default.nix
index ff5aa3b2bac7..bb7836ef85d1 100644
--- a/nixpkgs/pkgs/development/python-modules/google-auth-httplib2/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/google-auth-httplib2/default.nix
@@ -3,13 +3,11 @@
 , buildPythonPackage
 , fetchPypi
 , flask
+, google-auth
+, httplib2
 , mock
-, six
-, pytest
+, pytestCheckHook
 , pytest-localserver
-, google_auth
-, httplib2
-
 }:
 
 buildPythonPackage rec {
@@ -18,28 +16,25 @@ buildPythonPackage rec {
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "8d092cc60fb16517b12057ec0bba9185a96e3b7169d86ae12eae98e645b7bc39";
+    sha256 = "0fdwnx2yd65f5vhnmn39f4xnxac5j6x0pv2p42qifrdi1z32q2cd";
   };
 
-  checkInputs = [
-    flask mock six pytest pytest-localserver
-  ];
-
   propagatedBuildInputs = [
-    google_auth httplib2
+    google-auth
+    httplib2
   ];
 
-  checkPhase = ''
-    py.test
-  '';
-
-  # ImportError: No module named google.auth
-  doCheck = isPy3k;
+  checkInputs = [
+    flask
+    mock
+    pytestCheckHook
+    pytest-localserver
+  ];
 
-  meta = {
+  meta = with lib; {
     description = "Google Authentication Library: httplib2 transport";
     homepage = "https://github.com/GoogleCloudPlatform/google-auth-library-python-httplib2";
-    license = lib.licenses.asl20;
+    license = licenses.asl20;
+    maintainers = with maintainers; [ SuperSandro2000 ];
   };
-
 }
diff --git a/nixpkgs/pkgs/development/python-modules/google-auth-oauthlib/default.nix b/nixpkgs/pkgs/development/python-modules/google-auth-oauthlib/default.nix
index bdea58de8999..7fa7200fbbe5 100644
--- a/nixpkgs/pkgs/development/python-modules/google-auth-oauthlib/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/google-auth-oauthlib/default.nix
@@ -1,44 +1,37 @@
 { lib
 , buildPythonPackage
 , fetchPypi
-, pythonOlder
-, isPy3k
 , click
 , mock
-, pytest
-, futures
-, google_auth
+, pytestCheckHook
+, google-auth
 , requests_oauthlib
 }:
 
 buildPythonPackage rec {
   pname = "google-auth-oauthlib";
   version = "0.4.2";
-  disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "65b65bc39ad8cab15039b35e5898455d3d66296d0584d96fe0e79d67d04c51d9";
+    sha256 = "1nai9k86g7g7w1pxk105dllncgax8nc5hpmk758b3jnqkb1mpdk5";
   };
 
-  checkInputs = [
-    click mock pytest
-  ] ++ lib.optionals (!isPy3k) [ futures ];
-
   propagatedBuildInputs = [
-    google_auth requests_oauthlib
+    google-auth
+    requests_oauthlib
   ];
 
-  doCheck = isPy3k;
-  checkPhase = ''
-    rm -fr tests/__pycache__/ google
-    py.test
-  '';
+  checkInputs = [
+    click
+    mock
+    pytestCheckHook
+  ];
 
   meta = with lib; {
     description = "Google Authentication Library: oauthlib integration";
     homepage = "https://github.com/GoogleCloudPlatform/google-auth-library-python-oauthlib";
     license = licenses.asl20;
-    maintainers = with maintainers; [ terlar ];
+    maintainers = with maintainers; [ SuperSandro2000 terlar ];
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/google-auth/default.nix b/nixpkgs/pkgs/development/python-modules/google-auth/default.nix
new file mode 100644
index 000000000000..9120f93a3bdd
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/google-auth/default.nix
@@ -0,0 +1,54 @@
+{ lib, stdenv
+, buildPythonPackage
+, fetchpatch
+, fetchPypi
+, pytestCheckHook
+, cachetools
+, flask
+, freezegun
+, mock
+, oauth2client
+, pyasn1-modules
+, pytest-localserver
+, responses
+, rsa
+}:
+
+buildPythonPackage rec {
+  pname = "google-auth";
+  version = "1.24.0";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "0bmdqkyv8k8n6s8dss4zpbcq1cdxwicpb42kwybd02ia85mh43hb";
+  };
+
+  propagatedBuildInputs = [ pyasn1-modules cachetools rsa ];
+
+  checkInputs = [
+    flask
+    freezegun
+    mock
+    oauth2client
+    pytestCheckHook
+    pytest-localserver
+    responses
+  ];
+
+  pythonImportsCheck = [
+    "google.auth"
+    "google.oauth2"
+  ];
+
+  meta = with lib; {
+    description = "Google Auth Python Library";
+    longDescription = ''
+      This library simplifies using Google’s various server-to-server
+      authentication mechanisms to access Google APIs.
+    '';
+    homepage = "https://github.com/googleapis/google-auth-library-python";
+    changelog = "https://github.com/googleapis/google-auth-library-python/blob/v${version}/CHANGELOG.md";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ SuperSandro2000 ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/google-cloud-access-context-manager/default.nix b/nixpkgs/pkgs/development/python-modules/google-cloud-access-context-manager/default.nix
index 01f7bc9ce33e..3f614258a8fb 100644
--- a/nixpkgs/pkgs/development/python-modules/google-cloud-access-context-manager/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/google-cloud-access-context-manager/default.nix
@@ -1,4 +1,4 @@
-{ lib, buildPythonPackage, fetchPypi, pythonOlder, google_api_core }:
+{ lib, buildPythonPackage, fetchPypi, pythonOlder, google-api-core }:
 
 buildPythonPackage rec {
   pname = "google-cloud-access-context-manager";
@@ -9,19 +9,19 @@ buildPythonPackage rec {
     sha256 = "1qy7wv1xn7g3x5z0vvv0pwmxhin4hw2m9fs9iklnghy00vg37v0b";
   };
 
-  disabled = pythonOlder "3.5";
-
-  propagatedBuildInputs = [ google_api_core ];
+  propagatedBuildInputs = [ google-api-core ];
 
   # No tests in repo
   doCheck = false;
 
-  pythonImportsCheck = [ "google.identity.accesscontextmanager" ];
+  pythonImportsCheck = [
+    "google.identity.accesscontextmanager"
+  ];
 
   meta = with lib; {
     description = "Protobufs for Google Access Context Manager.";
     homepage = "https://github.com/googleapis/python-access-context-manager";
     license = licenses.asl20;
-    maintainers = with maintainers; [ austinbutler ];
+    maintainers = with maintainers; [ austinbutler SuperSandro2000 ];
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/google-cloud-asset/default.nix b/nixpkgs/pkgs/development/python-modules/google-cloud-asset/default.nix
new file mode 100644
index 000000000000..8f04fb7451d2
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/google-cloud-asset/default.nix
@@ -0,0 +1,54 @@
+{ lib, stdenv
+, buildPythonPackage
+, fetchPypi
+, grpc_google_iam_v1
+, google-api-core
+, google-cloud-access-context-manager
+, google-cloud-org-policy
+, google-cloud-os-config
+, google-cloud-testutils
+, libcst
+, proto-plus
+, pytest
+, pytest-asyncio
+, pytestCheckHook
+, mock
+}:
+
+buildPythonPackage rec {
+  pname = "google-cloud-asset";
+  version = "2.2.0";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "05q0yaw6b553qmzylr45zin17h8mvi8yyyxhbv3cxa7f0ahviw8w";
+  };
+
+  propagatedBuildInputs = [
+    grpc_google_iam_v1
+    google-api-core
+    google-cloud-access-context-manager
+    google-cloud-org-policy
+    google-cloud-os-config
+    libcst
+    proto-plus
+  ];
+
+  checkInputs = [ google-cloud-testutils mock pytest-asyncio pytestCheckHook ];
+
+  pythonImportsCheck = [
+    "google.cloud.asset"
+    "google.cloud.asset_v1"
+    "google.cloud.asset_v1p1beta1"
+    "google.cloud.asset_v1p2beta1"
+    "google.cloud.asset_v1p4beta1"
+    "google.cloud.asset_v1p5beta1"
+  ];
+
+  meta = with lib; {
+    description = "Python Client for Google Cloud Asset API";
+    homepage = "https://github.com/googleapis/python-asset";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ SuperSandro2000 ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/google-cloud-automl/default.nix b/nixpkgs/pkgs/development/python-modules/google-cloud-automl/default.nix
new file mode 100644
index 000000000000..302ce8ceaed3
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/google-cloud-automl/default.nix
@@ -0,0 +1,59 @@
+{ lib, stdenv
+, buildPythonPackage
+, fetchPypi
+, pytestCheckHook
+, libcst
+, google-api-core
+, google-cloud-storage
+, google-cloud-testutils
+, pandas
+, proto-plus
+, pytest-asyncio
+, mock
+}:
+
+buildPythonPackage rec {
+  pname = "google-cloud-automl";
+  version = "2.1.0";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "520dfe2ee04d28f3088c9c582fa2a534fc272647d5e2e59acc903c0152e61696";
+  };
+
+  propagatedBuildInputs = [ google-api-core libcst proto-plus ];
+
+  checkInputs = [
+    google-cloud-storage
+    google-cloud-testutils
+    mock
+    pandas
+    pytest-asyncio
+    pytestCheckHook
+  ];
+
+  preCheck = ''
+    # do not shadow imports
+    rm -r google
+    # requires credentials
+    rm tests/system/gapic/v1beta1/test_system_tables_client_v1.py
+  '';
+
+  disabledTests = [
+    # requires credentials
+    "test_prediction_client_client_info"
+  ];
+
+  pythonImportsCheck = [
+    "google.cloud.automl"
+    "google.cloud.automl_v1"
+    "google.cloud.automl_v1beta1"
+  ];
+
+  meta = with lib; {
+    description = "Cloud AutoML API client library";
+    homepage = "https://github.com/googleapis/python-automl";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ SuperSandro2000 ];
+  };
+}
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
new file mode 100644
index 000000000000..4ec12a8fa2fb
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/google-cloud-bigquery-datatransfer/default.nix
@@ -0,0 +1,35 @@
+{ lib, stdenv
+, buildPythonPackage
+, fetchPypi
+, google-api-core
+, libcst
+, proto-plus
+, pytestCheckHook
+, pytest-asyncio
+, mock
+}:
+
+buildPythonPackage rec {
+  pname = "google-cloud-bigquery-datatransfer";
+  version = "3.0.0";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "0hmsqvs2srmqcwmli48vd5vw829zax3pwj63fsxig6sdhjlf6j7j";
+  };
+
+  propagatedBuildInputs = [ google-api-core libcst proto-plus ];
+  checkInputs = [ mock pytestCheckHook pytest-asyncio ];
+
+  pythonImportsCheck = [
+    "google.cloud.bigquery_datatransfer"
+    "google.cloud.bigquery_datatransfer_v1"
+  ];
+
+  meta = with lib; {
+    description = "BigQuery Data Transfer API client library";
+    homepage = "https://github.com/googleapis/python-bigquery-datatransfer";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ SuperSandro2000 ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/google-cloud-bigquery/default.nix b/nixpkgs/pkgs/development/python-modules/google-cloud-bigquery/default.nix
new file mode 100644
index 000000000000..5eab2c730f7d
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/google-cloud-bigquery/default.nix
@@ -0,0 +1,58 @@
+{ lib, stdenv
+, buildPythonPackage
+, fetchPypi
+, pytestCheckHook
+, freezegun
+, google-cloud-core
+, google-cloud-testutils
+, google-resumable-media
+, grpcio
+, ipython
+, mock
+, pandas
+, proto-plus
+, pyarrow
+}:
+
+buildPythonPackage rec {
+  pname = "google-cloud-bigquery";
+  version = "2.6.2";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1c940bf190a681d80b6f6cd7541924ad411de5f0585b2c8c5e420ab750e2024d";
+  };
+
+  propagatedBuildInputs = [
+    google-resumable-media
+    google-cloud-core
+    proto-plus
+    pyarrow
+  ];
+
+  checkInputs = [
+    freezegun
+    google-cloud-testutils
+    ipython
+    mock
+    pandas
+    pytestCheckHook
+  ];
+
+  # prevent google directory from shadowing google imports
+  preCheck = ''
+    rm -r google
+  '';
+
+  pythonImportsCheck = [
+    "google.cloud.bigquery"
+    "google.cloud.bigquery_v2"
+  ];
+
+  meta = with lib; {
+    description = "Google BigQuery API client library";
+    homepage = "https://github.com/googleapis/python-bigquery";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ SuperSandro2000 ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/google_cloud_bigtable/default.nix b/nixpkgs/pkgs/development/python-modules/google-cloud-bigtable/default.nix
index bd12aa592d50..9632dc902d15 100644
--- a/nixpkgs/pkgs/development/python-modules/google_cloud_bigtable/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/google-cloud-bigtable/default.nix
@@ -1,9 +1,9 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , grpc_google_iam_v1
-, google_api_core
-, google_cloud_core
+, google-api-core
+, google-cloud-core
 , pytest
 , mock
 }:
@@ -18,14 +18,14 @@ buildPythonPackage rec {
   };
 
   checkInputs = [ pytest mock ];
-  propagatedBuildInputs = [ grpc_google_iam_v1 google_api_core google_cloud_core ];
+  propagatedBuildInputs = [ grpc_google_iam_v1 google-api-core google-cloud-core ];
 
   checkPhase = ''
     rm -r google
     pytest tests/unit -k 'not policy'
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Google Cloud Bigtable API client library";
     homepage = "https://github.com/GoogleCloudPlatform/google-cloud-python";
     license = licenses.asl20;
diff --git a/nixpkgs/pkgs/development/python-modules/google-cloud-container/default.nix b/nixpkgs/pkgs/development/python-modules/google-cloud-container/default.nix
new file mode 100644
index 000000000000..6d91bed83ae7
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/google-cloud-container/default.nix
@@ -0,0 +1,43 @@
+{ lib, stdenv
+, buildPythonPackage
+, fetchPypi
+, google-api-core
+, grpc_google_iam_v1
+, libcst
+, mock
+, proto-plus
+, pytestCheckHook
+, pytest-asyncio
+}:
+
+buildPythonPackage rec {
+  pname = "google-cloud-container";
+  version = "2.3.0";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "04f9mx1wxy3l9dvzvvr579fnjp1fdqhgplv5y2gl7h2mvn281k8d";
+  };
+
+  propagatedBuildInputs = [ google-api-core grpc_google_iam_v1 libcst proto-plus ];
+
+  checkInputs = [ mock pytestCheckHook pytest-asyncio ];
+
+  disabledTests = [
+    # requires credentials
+    "test_list_clusters"
+  ];
+
+  pythonImportsCheck = [
+    "google.cloud.container"
+    "google.cloud.container_v1"
+    "google.cloud.container_v1beta1"
+  ];
+
+  meta = with lib; {
+    description = "Google Container Engine API client library";
+    homepage = "https://github.com/googleapis/python-container";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ SuperSandro2000 ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/google_cloud_core/default.nix b/nixpkgs/pkgs/development/python-modules/google-cloud-core/default.nix
index 1ad08ea05af4..72709c62ceca 100644
--- a/nixpkgs/pkgs/development/python-modules/google_cloud_core/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/google-cloud-core/default.nix
@@ -1,31 +1,38 @@
-{ stdenv, buildPythonPackage, fetchPypi, pythonOlder, pytestCheckHook, python
-, google_api_core, grpcio, mock }:
+{ lib, stdenv
+, buildPythonPackage
+, fetchPypi
+, pythonOlder
+, pytestCheckHook
+, python
+, google-api-core
+, grpcio
+, mock
+}:
 
 buildPythonPackage rec {
   pname = "google-cloud-core";
-  version = "1.4.3";
+  version = "1.5.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "21afb70c1b0bce8eeb8abb5dca63c5fd37fc8aea18f4b6d60e803bd3d27e6b80";
+    sha256 = "01liq4nrd2g3ingg8v0ly4c86db8agnr9h1fiz219c7fz0as0xqj";
   };
 
-  disabled = pythonOlder "3.5";
+  propagatedBuildInputs = [ google-api-core ];
 
-  propagatedBuildInputs = [ google_api_core grpcio ];
-  checkInputs = [ google_api_core mock pytestCheckHook ];
-
-  pythonImportsCheck = [ "google.cloud" ];
+  checkInputs = [ mock pytestCheckHook ];
 
   # prevent google directory from shadowing google imports
   preCheck = ''
     rm -r google
   '';
 
-  meta = with stdenv.lib; {
+  pythonImportsCheck = [ "google.cloud" ];
+
+  meta = with lib; {
     description = "API Client library for Google Cloud: Core Helpers";
     homepage = "https://github.com/googleapis/python-cloud-core";
     license = licenses.asl20;
-    maintainers = with maintainers; [ ];
+    maintainers = with maintainers; [ SuperSandro2000 ];
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/google-cloud-dataproc/default.nix b/nixpkgs/pkgs/development/python-modules/google-cloud-dataproc/default.nix
new file mode 100644
index 000000000000..1b7a570fed21
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/google-cloud-dataproc/default.nix
@@ -0,0 +1,42 @@
+{ lib, stdenv
+, buildPythonPackage
+, fetchPypi
+, google-api-core
+, mock
+, libcst
+, proto-plus
+, pytestCheckHook
+, pytest-asyncio
+}:
+
+buildPythonPackage rec {
+  pname = "google-cloud-dataproc";
+  version = "2.2.0";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "07rv2kgbaqkbd71k5i2zn9kcxasfzkkyai8jnbszhkf92k0lmi41";
+  };
+
+  propagatedBuildInputs = [ google-api-core libcst proto-plus ];
+
+  checkInputs = [ mock pytestCheckHook pytest-asyncio ];
+
+  disabledTests = [
+    # requires credentials
+    "test_list_clusters"
+  ];
+
+  pythonImportsCheck = [
+    "google.cloud.dataproc"
+    "google.cloud.dataproc_v1"
+    "google.cloud.dataproc_v1beta2"
+  ];
+
+  meta = with lib; {
+    description = "Google Cloud Dataproc API client library";
+    homepage = "https://github.com/GoogleCloudPlatform/google-cloud-python";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ SuperSandro2000 ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/google-cloud-datastore/default.nix b/nixpkgs/pkgs/development/python-modules/google-cloud-datastore/default.nix
new file mode 100644
index 000000000000..84f98550b9a3
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/google-cloud-datastore/default.nix
@@ -0,0 +1,46 @@
+{ lib, stdenv
+, buildPythonPackage
+, fetchPypi
+, google-api-core
+, google-cloud-core
+, libcst
+, proto-plus
+, mock
+, pytestCheckHook
+, pytest-asyncio
+, google-cloud-testutils
+}:
+
+buildPythonPackage rec {
+  pname = "google-cloud-datastore";
+  version = "2.1.0";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1yyk9ix1jms5q4kk76cfxzy42wzzyl5qladdswjy5l0pg6iypr8i";
+  };
+
+  propagatedBuildInputs = [ google-api-core google-cloud-core libcst proto-plus ];
+
+  checkInputs = [ google-cloud-testutils mock pytestCheckHook pytest-asyncio ];
+
+  preCheck = ''
+    # directory shadows imports
+    rm -r google
+    # requires credentials
+    rm tests/system/test_system.py
+  '';
+
+  pythonImportsCheck = [
+    "google.cloud.datastore"
+    "google.cloud.datastore_admin_v1"
+    "google.cloud.datastore_v1"
+  ];
+
+  meta = with lib; {
+    description = "Google Cloud Datastore API client library";
+    homepage = "https://github.com/googleapis/python-datastore";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ SuperSandro2000 ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/google-cloud-dlp/default.nix b/nixpkgs/pkgs/development/python-modules/google-cloud-dlp/default.nix
new file mode 100644
index 000000000000..9076c1298040
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/google-cloud-dlp/default.nix
@@ -0,0 +1,42 @@
+{ lib, stdenv
+, buildPythonPackage
+, fetchPypi
+, google-api-core
+, google-cloud-testutils
+, libcst
+, proto-plus
+, pytestCheckHook
+, pytest-asyncio
+, mock
+}:
+
+buildPythonPackage rec {
+  pname = "google-cloud-dlp";
+  version = "3.0.0";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "09rnzpdlycr1wv8agcfx05v1prn35ylphsbr07486zqdkh5wjk8p";
+  };
+
+  propagatedBuildInputs = [ google-api-core libcst proto-plus ];
+
+  checkInputs = [ google-cloud-testutils mock pytestCheckHook pytest-asyncio ];
+
+  disabledTests = [
+    # requires credentials
+    "test_inspect_content"
+  ];
+
+  pythonImportsCheck = [
+    "google.cloud.dlp"
+    "google.cloud.dlp_v2"
+  ];
+
+  meta = with lib; {
+    description = "Cloud Data Loss Prevention (DLP) API API client library";
+    homepage = "https://github.com/googleapis/python-dlp";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ SuperSandro2000 ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/google-cloud-dns/default.nix b/nixpkgs/pkgs/development/python-modules/google-cloud-dns/default.nix
new file mode 100644
index 000000000000..0636da60e9af
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/google-cloud-dns/default.nix
@@ -0,0 +1,41 @@
+{ lib, stdenv
+, buildPythonPackage
+, fetchPypi
+, google-api-core
+, google-cloud-core
+, pytestCheckHook
+, mock
+}:
+
+buildPythonPackage rec {
+  pname = "google-cloud-dns";
+  version = "0.32.1";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "01l6pvfic0vxcvd97ckbxyc7ccr9vb9ln4lyhpp3amdmcy0far3j";
+  };
+
+  propagatedBuildInputs = [ google-api-core google-cloud-core ];
+
+  checkInputs = [ mock pytestCheckHook ];
+
+  preCheck = ''
+    # don#t shadow python imports
+    rm -r google
+  '';
+
+  disabledTests = [
+    # requires credentials
+    "test_quota"
+  ];
+
+  pythonImportsCheck = [ "google.cloud.dns" ];
+
+  meta = with lib; {
+    description = "Google Cloud DNS API client library";
+    homepage = "https://github.com/googleapis/python-dns";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ SuperSandro2000 ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/google_cloud_error_reporting/default.nix b/nixpkgs/pkgs/development/python-modules/google-cloud-error-reporting/default.nix
index 19f90275ae99..b3181f8fcded 100644
--- a/nixpkgs/pkgs/development/python-modules/google_cloud_error_reporting/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/google-cloud-error-reporting/default.nix
@@ -1,6 +1,14 @@
-{ stdenv, buildPythonPackage, fetchPypi, pytestCheckHook, pythonOlder
-, google_cloud_logging, google_cloud_testutils, libcst, mock, proto-plus
-, pytest-asyncio }:
+{ lib, stdenv
+, buildPythonPackage
+, fetchPypi
+, pytestCheckHook
+, google-cloud-logging
+, google-cloud-testutils
+, libcst
+, mock
+, proto-plus
+, pytest-asyncio
+}:
 
 buildPythonPackage rec {
   pname = "google-cloud-error-reporting";
@@ -11,22 +19,25 @@ buildPythonPackage rec {
     sha256 = "2fd6fe25343f7017c22e2733a0358c64b3171edc1669d0c8a1e1f07f86a048c4";
   };
 
-  disabled = pythonOlder "3.6";
+  propagatedBuildInputs = [ google-cloud-logging libcst proto-plus ];
 
-  checkInputs = [ google_cloud_testutils mock pytestCheckHook pytest-asyncio ];
-  propagatedBuildInputs = [ google_cloud_logging libcst proto-plus ];
+  checkInputs = [ google-cloud-testutils mock pytestCheckHook pytest-asyncio ];
+
+  disabledTests = [
+    # require credentials
+    "test_report_error_event"
+    "test_report_exception"
+  ];
 
-  # Disable tests that require credentials
-  disabledTests = [ "test_report_error_event" "test_report_exception" ];
   # prevent google directory from shadowing google imports
   preCheck = ''
     rm -r google
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Stackdriver Error Reporting API client library";
     homepage = "https://github.com/googleapis/python-error-reporting";
     license = licenses.asl20;
-    maintainers = [ maintainers.costrouc ];
+    maintainers = with maintainers; [ SuperSandro2000 ];
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/google-cloud-firestore/default.nix b/nixpkgs/pkgs/development/python-modules/google-cloud-firestore/default.nix
new file mode 100644
index 000000000000..f0c235ca0c98
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/google-cloud-firestore/default.nix
@@ -0,0 +1,64 @@
+{ lib, stdenv
+, buildPythonPackage
+, fetchPypi
+, aiounittest
+, google-api-core
+, google-cloud-testutils
+, google-cloud-core
+, mock
+, proto-plus
+, pytestCheckHook
+, pytest-asyncio
+}:
+
+buildPythonPackage rec {
+  pname = "google-cloud-firestore";
+  version = "2.0.2";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1q5s2gpkibnjxal9zrz02jfnazf7rxk0bi0ln5a3di6i47kjnga9";
+  };
+
+  propagatedBuildInputs = [
+    google-api-core
+    google-cloud-core
+    proto-plus
+  ];
+
+  checkInputs = [
+    aiounittest
+    google-cloud-testutils
+    mock
+    pytestCheckHook
+    pytest-asyncio
+  ];
+
+  preCheck = ''
+    # do not shadow imports
+    rm -r google
+  '';
+
+  pytestFlagsArray = [
+    # tests are broken
+    "--ignore=tests/system/test_system.py"
+    "--ignore=tests/system/test_system_async.py"
+  ];
+
+  disabledTests = [
+    # requires credentials
+    "test_collections"
+  ];
+
+  pythonImportsCheck = [
+    "google.cloud.firestore_v1"
+    "google.cloud.firestore_admin_v1"
+  ];
+
+  meta = with lib; {
+    description = "Google Cloud Firestore API client library";
+    homepage = "https://github.com/googleapis/python-firestore";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ SuperSandro2000 ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/google-cloud-iam/default.nix b/nixpkgs/pkgs/development/python-modules/google-cloud-iam/default.nix
index 9d6120629380..f96940f4e67f 100644
--- a/nixpkgs/pkgs/development/python-modules/google-cloud-iam/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/google-cloud-iam/default.nix
@@ -1,5 +1,14 @@
-{ lib, buildPythonPackage, fetchPypi, pytestCheckHook, pythonOlder
-, google_api_core, libcst, mock, proto-plus, pytest-asyncio }:
+{ lib
+, buildPythonPackage
+, fetchPypi
+, pytestCheckHook
+, pythonOlder
+, google-api-core
+, libcst
+, mock
+, proto-plus
+, pytest-asyncio
+}:
 
 buildPythonPackage rec {
   pname = "google-cloud-iam";
@@ -10,13 +19,19 @@ buildPythonPackage rec {
     sha256 = "1zxsx5avs8njiyw32zvsx2yblmmiwxy771x334hbgmy0aqms4lak";
   };
 
-  propagatedBuildInputs = [ google_api_core libcst proto-plus ];
+  propagatedBuildInputs = [ google-api-core libcst proto-plus ];
+
   checkInputs = [ mock pytestCheckHook pytest-asyncio ];
 
+  pythonImportsCheck = [
+    "google.cloud.iam_credentials"
+    "google.cloud.iam_credentials_v1"
+  ];
+
   meta = with lib; {
-    description = "Google Cloud IAM API client library";
+    description = "IAM Service Account Credentials API client library";
     homepage = "https://github.com/googleapis/python-iam";
     license = licenses.asl20;
-    maintainers = with maintainers; [ austinbutler ];
+    maintainers = with maintainers; [ austinbutler SuperSandro2000 ];
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/google-cloud-iot/default.nix b/nixpkgs/pkgs/development/python-modules/google-cloud-iot/default.nix
new file mode 100644
index 000000000000..2b28f84a3158
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/google-cloud-iot/default.nix
@@ -0,0 +1,42 @@
+{ lib, stdenv
+, buildPythonPackage
+, fetchPypi
+, grpc_google_iam_v1
+, google-api-core
+, libcst
+, proto-plus
+, pytestCheckHook
+, pytest-asyncio
+, mock
+}:
+
+buildPythonPackage rec {
+  pname = "google-cloud-iot";
+  version = "2.0.1";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "08spn5g0s386x21dgwb46na8aknbwq5d1sn8bh6kayk9fjfbxwla";
+  };
+
+  propagatedBuildInputs = [ grpc_google_iam_v1 google-api-core libcst proto-plus ];
+
+  checkInputs = [ mock pytestCheckHook pytest-asyncio ];
+
+  disabledTests = [
+    # requires credentials
+    "test_list_device_registries"
+  ];
+
+  pythonImportsCheck = [
+    "google.cloud.iot"
+    "google.cloud.iot_v1"
+  ];
+
+  meta = with lib; {
+    description = "Cloud IoT API API client library";
+    homepage = "https://github.com/googleapis/python-iot";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ SuperSandro2000 ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/google_cloud_kms/default.nix b/nixpkgs/pkgs/development/python-modules/google-cloud-kms/default.nix
index a4d2439fb49c..6675767a2445 100644
--- a/nixpkgs/pkgs/development/python-modules/google_cloud_kms/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/google-cloud-kms/default.nix
@@ -1,5 +1,13 @@
-{ stdenv, buildPythonPackage, fetchPypi, pytestCheckHook, pythonOlder
-, grpc_google_iam_v1, google_api_core, libcst, mock, proto-plus, pytest-asyncio
+{ lib, stdenv
+, buildPythonPackage
+, fetchPypi
+, pytestCheckHook
+, grpc_google_iam_v1
+, google-api-core
+, libcst
+, mock
+, proto-plus
+, pytest-asyncio
 }:
 
 buildPythonPackage rec {
@@ -11,19 +19,22 @@ buildPythonPackage rec {
     sha256 = "0f3k2ixp1zsgydpvkj75bs2mb805389snyw30hn41c38qq5ksdga";
   };
 
-  disabled = pythonOlder "3.6";
+  propagatedBuildInputs = [ grpc_google_iam_v1 google-api-core libcst proto-plus ];
 
   checkInputs = [ mock pytestCheckHook pytest-asyncio ];
-  propagatedBuildInputs =
-    [ grpc_google_iam_v1 google_api_core libcst proto-plus ];
 
   # Disable tests that need credentials
   disabledTests = [ "test_list_global_key_rings" ];
 
-  meta = with stdenv.lib; {
+  pythonImportsCheck = [
+    "google.cloud.kms"
+    "google.cloud.kms_v1"
+  ];
+
+  meta = with lib; {
     description = "Cloud Key Management Service (KMS) API API client library";
     homepage = "https://github.com/googleapis/python-kms";
     license = licenses.asl20;
-    maintainers = [ maintainers.costrouc ];
+    maintainers = with maintainers; [ SuperSandro2000 ];
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/google-cloud-language/default.nix b/nixpkgs/pkgs/development/python-modules/google-cloud-language/default.nix
new file mode 100644
index 000000000000..7186ecd6f355
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/google-cloud-language/default.nix
@@ -0,0 +1,37 @@
+{ lib, stdenv
+, buildPythonPackage
+, fetchPypi
+, google-api-core
+, libcst
+, mock
+, proto-plus
+, pytestCheckHook
+, pytest-asyncio
+}:
+
+buildPythonPackage rec {
+  pname = "google-cloud-language";
+  version = "2.0.0";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "123vqfrn7pyn3ia7cmhx8bgafd4gxxlmhf33s3vgspyjck6sprxb";
+  };
+
+  propagatedBuildInputs = [ google-api-core libcst proto-plus ];
+
+  checkInputs = [ mock pytestCheckHook pytest-asyncio ];
+
+  pythonImportsCheck = [
+    "google.cloud.language"
+    "google.cloud.language_v1"
+    "google.cloud.language_v1beta2"
+  ];
+
+  meta = with lib; {
+    description = "Google Cloud Natural Language API client library";
+    homepage = "https://github.com/googleapis/python-language";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ SuperSandro2000 ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/google-cloud-logging/default.nix b/nixpkgs/pkgs/development/python-modules/google-cloud-logging/default.nix
new file mode 100644
index 000000000000..58d03f206fc7
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/google-cloud-logging/default.nix
@@ -0,0 +1,59 @@
+{ lib, stdenv
+, buildPythonPackage
+, fetchPypi
+, django
+, flask
+, google-api-core
+, google-cloud-core
+, google-cloud-testutils
+, mock
+, proto-plus
+, pytestCheckHook
+, pytest-asyncio
+, webapp2
+}:
+
+buildPythonPackage rec {
+  pname = "google-cloud-logging";
+  version = "2.0.2";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "0s09vs4rnq4637j8zw7grv3f4j7njqprm744b1knzldj91rg0vmi";
+  };
+
+  propagatedBuildInputs = [ google-api-core google-cloud-core proto-plus ];
+
+  checkInputs = [
+    django
+    flask
+    google-cloud-testutils
+    mock
+    pytestCheckHook
+    pytest-asyncio
+  ];
+
+  disabledTests = [
+    # requires credentials
+    "test_write_log_entries"
+  ];
+
+  preCheck = ''
+    # prevent google directory from shadowing google imports
+    rm -r google
+    # requires credentials
+    rm tests/system/test_system.py tests/unit/test__gapic.py
+  '';
+
+  pythonImortsCheck = [
+    "google.cloud.logging"
+    "google.cloud.logging_v2"
+  ];
+
+  meta = with lib; {
+    description = "Stackdriver Logging API client library";
+    homepage = "https://github.com/googleapis/python-logging";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ SuperSandro2000 ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/google-cloud-monitoring/default.nix b/nixpkgs/pkgs/development/python-modules/google-cloud-monitoring/default.nix
new file mode 100644
index 000000000000..8dc665fe2103
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/google-cloud-monitoring/default.nix
@@ -0,0 +1,42 @@
+{ lib, stdenv
+, buildPythonPackage
+, fetchPypi
+, google-api-core
+, google-cloud-testutils
+, libcst
+, proto-plus
+, pytestCheckHook
+, pytest-asyncio
+, mock
+}:
+
+buildPythonPackage rec {
+  pname = "google-cloud-monitoring";
+  version = "2.0.0";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "07r0y995fin6cbnqlhmd38fv3pfhhqyw04l7nr38sldrd82gmsqx";
+  };
+
+  propagatedBuildInputs = [ libcst google-api-core proto-plus ];
+
+  checkInputs = [ google-cloud-testutils mock pytestCheckHook pytest-asyncio ];
+
+  disabledTests = [
+    # requires credentials
+    "test_list_monitored_resource_descriptors"
+  ];
+
+  pythonImportsCheck = [
+    "google.cloud.monitoring"
+    "google.cloud.monitoring_v3"
+  ];
+
+  meta = with lib; {
+    description = "Stackdriver Monitoring API client library";
+    homepage = "https://github.com/GoogleCloudPlatform/google-cloud-python";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ SuperSandro2000 ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/google-cloud-org-policy/default.nix b/nixpkgs/pkgs/development/python-modules/google-cloud-org-policy/default.nix
index 39cc0dc9c24b..10ee559b8f0b 100644
--- a/nixpkgs/pkgs/development/python-modules/google-cloud-org-policy/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/google-cloud-org-policy/default.nix
@@ -1,4 +1,4 @@
-{ lib, buildPythonPackage, fetchPypi, pythonOlder, google_api_core }:
+{ lib, buildPythonPackage, fetchPypi, pythonOlder, google-api-core }:
 
 buildPythonPackage rec {
   pname = "google-cloud-org-policy";
@@ -9,9 +9,7 @@ buildPythonPackage rec {
     sha256 = "0ncgcnbvmgqph54yh2pjx2hh82gnkhsrw5yirp4wlf7jclh6j9xh";
   };
 
-  disabled = pythonOlder "3.5";
-
-  propagatedBuildInputs = [ google_api_core ];
+  propagatedBuildInputs = [ google-api-core ];
 
   # No tests in repo
   doCheck = false;
@@ -22,6 +20,6 @@ buildPythonPackage rec {
     description = "Protobufs for Google Cloud Organization Policy.";
     homepage = "https://github.com/googleapis/python-org-policy";
     license = licenses.asl20;
-    maintainers = with maintainers; [ austinbutler ];
+    maintainers = with maintainers; [ austinbutler SuperSandro2000 ];
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/google-cloud-os-config/default.nix b/nixpkgs/pkgs/development/python-modules/google-cloud-os-config/default.nix
new file mode 100644
index 000000000000..94d8d4738f5c
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/google-cloud-os-config/default.nix
@@ -0,0 +1,29 @@
+{ lib, buildPythonPackage, fetchPypi, google-api-core, libcst, mock, proto-plus, pytestCheckHook, pytest-asyncio }:
+
+buildPythonPackage rec {
+  pname = "google-cloud-os-config";
+  version = "1.0.0";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "07zvagy9hwaccwvg1xad5nkalgkria0maa5yxiwqf1yk9f7gbyq1";
+  };
+
+  propagatedBuildInputs = [ google-api-core libcst proto-plus ];
+
+  checkInputs = [ mock pytestCheckHook pytest-asyncio ];
+
+  pythonImportsCheck = [ "google.cloud.osconfig" ];
+
+  disabledTests = [
+    "test_patch_deployment"
+    "test_patch_job"
+  ];
+
+  meta = with lib; {
+    description = "Google Cloud OS Config API client library";
+    homepage = "https://github.com/googleapis/python-os-config";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ SuperSandro2000 ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/google-cloud-pubsub/default.nix b/nixpkgs/pkgs/development/python-modules/google-cloud-pubsub/default.nix
new file mode 100644
index 000000000000..46a28b1ffd1d
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/google-cloud-pubsub/default.nix
@@ -0,0 +1,42 @@
+{ lib, stdenv
+, buildPythonPackage
+, fetchPypi
+, pytestCheckHook
+, google-api-core
+, google-cloud-testutils
+, grpc_google_iam_v1
+, libcst
+, mock
+, proto-plus
+, pytest-asyncio
+}:
+
+buildPythonPackage rec {
+  pname = "google-cloud-pubsub";
+  version = "2.2.0";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1rfdbkxbndi00wx9dx733ihp3hmcsk6k23pcjni0ki7m0c4acl5w";
+  };
+
+  propagatedBuildInputs = [ grpc_google_iam_v1 google-api-core libcst proto-plus ];
+
+  checkInputs = [ google-cloud-testutils mock pytestCheckHook pytest-asyncio ];
+
+  preCheck = ''
+    # prevent google directory from shadowing google imports
+    rm -r google
+    # Tests in pubsub_v1 attempt to contact pubsub.googleapis.com
+    rm -r tests/unit/pubsub_v1
+  '';
+
+  pythonImportsCheck = [ "google.cloud.pubsub" ];
+
+  meta = with lib; {
+    description = "Google Cloud Pub/Sub API client library";
+    homepage = "https://pypi.org/project/google-cloud-pubsub";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ SuperSandro2000 ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/google-cloud-redis/default.nix b/nixpkgs/pkgs/development/python-modules/google-cloud-redis/default.nix
new file mode 100644
index 000000000000..4dcf7fd3d318
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/google-cloud-redis/default.nix
@@ -0,0 +1,37 @@
+{ lib, stdenv
+, buildPythonPackage
+, fetchPypi
+, google-api-core
+, libcst
+, mock
+, proto-plus
+, pytestCheckHook
+, pytest-asyncio
+}:
+
+buildPythonPackage rec {
+  pname = "google-cloud-redis";
+  version = "2.0.0";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1f67mr473vzv0qgjm4hycfnrjgiqrsv47vqrynwjy9yrca2130y7";
+  };
+
+  propagatedBuildInputs = [ google-api-core libcst proto-plus ];
+
+  checkInputs = [ mock pytestCheckHook pytest-asyncio ];
+
+  pythonImportsCheck = [
+    "google.cloud.redis"
+    "google.cloud.redis_v1"
+    "google.cloud.redis_v1beta1"
+  ];
+
+  meta = with lib; {
+    description = "Google Cloud Memorystore for Redis API client library";
+    homepage = "https://github.com/googleapis/python-redis";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ SuperSandro2000 ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/google-cloud-resource-manager/default.nix b/nixpkgs/pkgs/development/python-modules/google-cloud-resource-manager/default.nix
new file mode 100644
index 000000000000..11baf3d73f3d
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/google-cloud-resource-manager/default.nix
@@ -0,0 +1,36 @@
+{ lib, stdenv
+, buildPythonPackage
+, fetchPypi
+, pytestCheckHook
+, google-cloud-core
+, google-api-core
+, mock
+}:
+
+buildPythonPackage rec {
+  pname = "google-cloud-resource-manager";
+  version = "0.30.3";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1la643vkf6fm2gapz57cm92xzvmhzgpzv3bb6112yz1cizrvnxrm";
+  };
+
+  propagatedBuildInputs = [ google-api-core google-cloud-core ];
+
+  checkInputs = [ mock pytestCheckHook ];
+
+  # prevent google directory from shadowing google imports
+  preCheck = ''
+    rm -r google
+  '';
+
+  pythonImportsCheck = [ "google.cloud.resource_manager" ];
+
+  meta = with lib; {
+    description = "Google Cloud Resource Manager API client library";
+    homepage = "https://github.com/googleapis/python-resource-manager";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ SuperSandro2000 ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/google-cloud-runtimeconfig/default.nix b/nixpkgs/pkgs/development/python-modules/google-cloud-runtimeconfig/default.nix
new file mode 100644
index 000000000000..81fa97f152bb
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/google-cloud-runtimeconfig/default.nix
@@ -0,0 +1,39 @@
+{ lib, stdenv
+, buildPythonPackage
+, fetchPypi
+, google-api-core
+, google-cloud-core
+, mock
+, pytestCheckHook
+}:
+
+buildPythonPackage rec {
+  pname = "google-cloud-runtimeconfig";
+  version = "0.32.1";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1bd8hlp0ssi20ds4gknbxai8mih6xiz8b60ab7p0ngpdqp1kw52p";
+  };
+
+  propagatedBuildInputs = [ google-api-core google-cloud-core ];
+
+  checkInputs = [ mock pytestCheckHook ];
+
+  # Client tests require credentials
+  disabledTests = [ "client_options" ];
+
+  # prevent google directory from shadowing google imports
+  preCheck = ''
+    rm -r google
+  '';
+
+  pythonImportsCheck = [ "google.cloud.runtimeconfig" ];
+
+  meta = with lib; {
+    description = "Google Cloud RuntimeConfig API client library";
+    homepage = "https://pypi.org/project/google-cloud-runtimeconfig";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ SuperSandro2000 ];
+  };
+}
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
new file mode 100644
index 000000000000..a143a418c222
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/google-cloud-secret-manager/default.nix
@@ -0,0 +1,47 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, google-api-core
+, grpc_google_iam_v1
+, libcst
+, mock
+, proto-plus
+, pytestCheckHook
+, pytest-asyncio
+}:
+
+buildPythonPackage rec {
+  pname = "google-cloud-secret-manager";
+  version = "2.2.0";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "97a46d2318f00c1c6ae1a4ab587e338677c5cc1651d7c6304982d74fa364dd9d";
+  };
+
+  propagatedBuildInputs = [
+    google-api-core
+    grpc_google_iam_v1
+    libcst
+    proto-plus
+  ];
+
+  checkInputs = [
+    mock
+    pytestCheckHook
+    pytest-asyncio
+  ];
+
+  pythonImportsCheck = [
+    "google.cloud.secretmanager"
+    "google.cloud.secretmanager_v1"
+    "google.cloud.secretmanager_v1beta1"
+  ];
+
+  meta = with lib; {
+    description = "Secret Manager API API client library";
+    homepage = "https://github.com/googleapis/python-secret-manager";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ siriobalmelli SuperSandro2000 ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/google-cloud-securitycenter/default.nix b/nixpkgs/pkgs/development/python-modules/google-cloud-securitycenter/default.nix
new file mode 100644
index 000000000000..242198a21971
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/google-cloud-securitycenter/default.nix
@@ -0,0 +1,39 @@
+{ lib, stdenv
+, buildPythonPackage
+, fetchPypi
+, grpc_google_iam_v1
+, google-api-core
+, libcst
+, mock
+, proto-plus
+, pytestCheckHook
+, pytest-asyncio
+}:
+
+buildPythonPackage rec {
+  pname = "google-cloud-securitycenter";
+  version = "1.1.0";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1lgz6qpsfv4b7p5ff4sdpjpaddxpbazdvlcrqr1i0c0qil2lkm2i";
+  };
+
+  propagatedBuildInputs = [ grpc_google_iam_v1 google-api-core libcst proto-plus ];
+
+  checkInputs = [ mock pytestCheckHook pytest-asyncio ];
+
+  pythonImportsCheck = [
+    "google.cloud.securitycenter"
+    "google.cloud.securitycenter_v1"
+    "google.cloud.securitycenter_v1beta1"
+    "google.cloud.securitycenter_v1p1beta1"
+  ];
+
+  meta = with lib; {
+    description = "Cloud Security Command Center API API client library";
+    homepage = "https://github.com/googleapis/python-securitycenter";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ SuperSandro2000 ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/google-cloud-spanner/default.nix b/nixpkgs/pkgs/development/python-modules/google-cloud-spanner/default.nix
new file mode 100644
index 000000000000..382476af0ca3
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/google-cloud-spanner/default.nix
@@ -0,0 +1,54 @@
+{ lib, stdenv
+, buildPythonPackage
+, fetchPypi
+, grpc_google_iam_v1
+, google-cloud-core
+, google-cloud-testutils
+, libcst
+, mock
+, proto-plus
+, pytestCheckHook
+, pytest-asyncio
+, sqlparse
+}:
+
+buildPythonPackage rec {
+  pname = "google-cloud-spanner";
+  version = "3.0.0";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "060c53bc6f541660a2fe868fd83a695207d4e7b050e04fe103d1e77634b813c7";
+  };
+
+  postPatch = ''
+    substituteInPlace setup.py \
+      --replace '"proto-plus == 1.11.0"' '"proto-plus"'
+  '';
+
+  propagatedBuildInputs = [ google-cloud-core grpc_google_iam_v1 libcst proto-plus sqlparse ];
+
+  checkInputs = [ google-cloud-testutils mock pytestCheckHook pytest-asyncio ];
+
+  preCheck = ''
+    # prevent google directory from shadowing google imports
+    rm -r google
+    # disable tests which require credentials
+    rm tests/system/test_{system,system_dbapi}.py
+    rm tests/unit/spanner_dbapi/test_{connect,connection,cursor}.py
+  '';
+
+  pythonImportsCheck = [
+    "google.cloud.spanner_admin_database_v1"
+    "google.cloud.spanner_admin_instance_v1"
+    "google.cloud.spanner_dbapi"
+    "google.cloud.spanner_v1"
+  ];
+
+  meta = with lib; {
+    description = "Cloud Spanner API client library";
+    homepage = "https://github.com/googleapis/python-spanner";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ SuperSandro2000 ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/google-cloud-speech/default.nix b/nixpkgs/pkgs/development/python-modules/google-cloud-speech/default.nix
new file mode 100644
index 000000000000..3359cfdd743a
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/google-cloud-speech/default.nix
@@ -0,0 +1,43 @@
+{ lib, stdenv
+, buildPythonPackage
+, fetchPypi
+, google-api-core
+, libcst
+, mock
+, proto-plus
+, pytestCheckHook
+, pytest-asyncio
+}:
+
+buildPythonPackage rec {
+  pname = "google-cloud-speech";
+  version = "2.0.1";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "0ch85h5xrb15fcml5v0f30s0niw02k4v8gi7i8a40161yj882hm7";
+  };
+
+  propagatedBuildInputs = [ libcst google-api-core proto-plus ];
+
+  checkInputs = [ mock pytestCheckHook pytest-asyncio ];
+
+  pytestFlagsArray = [
+    # requrire credentials
+    "--ignore=tests/system/gapic/v1/test_system_speech_v1.py"
+    "--ignore=tests/system/gapic/v1p1beta1/test_system_speech_v1p1beta1.py"
+  ];
+
+  pythonImportsCheck = [
+    "google.cloud.speech"
+    "google.cloud.speech_v1"
+    "google.cloud.speech_v1p1beta1"
+  ];
+
+  meta = with lib; {
+    description = "Google Cloud Speech API client library";
+    homepage = "https://github.com/googleapis/python-speech";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ SuperSandro2000 ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/google-cloud-storage/default.nix b/nixpkgs/pkgs/development/python-modules/google-cloud-storage/default.nix
new file mode 100644
index 000000000000..cf869d5c8eff
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/google-cloud-storage/default.nix
@@ -0,0 +1,64 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, pytestCheckHook
+, google-auth
+, google-cloud-iam
+, google-cloud-core
+, google-cloud-kms
+, google-cloud-testutils
+, google-resumable-media
+, mock
+}:
+
+buildPythonPackage rec {
+  pname = "google-cloud-storage";
+  version = "1.35.0";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "17kal75wmyjpva7g04cb9yg7qbyrgwfn575z4gqijd4gz2r0sp2m";
+  };
+
+  propagatedBuildInputs = [
+    google-auth
+    google-cloud-core
+    google-resumable-media
+  ];
+
+  checkInputs = [
+    google-cloud-iam
+    google-cloud-kms
+    google-cloud-testutils
+    mock
+    pytestCheckHook
+  ];
+
+  # disable tests which require credentials and network access
+  disabledTests = [
+    "create"
+    "download"
+    "get"
+    "post"
+    "test_build_api_url"
+  ];
+
+  pytestFlagsArray = [
+    "--ignore=tests/unit/test_bucket.py"
+    "--ignore=tests/system/test_system.py"
+  ];
+
+  # prevent google directory from shadowing google imports
+  preCheck = ''
+    rm -r google
+  '';
+
+  pythonImportsCheck = [ "google.cloud.storage" ];
+
+  meta = with lib; {
+    description = "Google Cloud Storage API client library";
+    homepage = "https://github.com/googleapis/python-storage";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ SuperSandro2000 ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/google-cloud-tasks/default.nix b/nixpkgs/pkgs/development/python-modules/google-cloud-tasks/default.nix
new file mode 100644
index 000000000000..e30986af6106
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/google-cloud-tasks/default.nix
@@ -0,0 +1,44 @@
+{ lib, stdenv
+, buildPythonPackage
+, fetchPypi
+, google-api-core
+, grpc_google_iam_v1
+, libcst
+, mock
+, proto-plus
+, pytestCheckHook
+, pytest-asyncio
+}:
+
+buildPythonPackage rec {
+  pname = "google-cloud-tasks";
+  version = "2.1.0";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1jsf7y88lvln9r08pmx673ibmgw397qmir5drrcfvlmgqvszp7qx";
+  };
+
+  propagatedBuildInputs = [ google-api-core grpc_google_iam_v1 libcst proto-plus ];
+
+  checkInputs = [ mock pytestCheckHook pytest-asyncio ];
+
+  disabledTests = [
+    # requires credentials
+    "test_list_queues"
+  ];
+
+  pythonImportsCheck = [
+    "google.cloud.tasks"
+    "google.cloud.tasks_v2"
+    "google.cloud.tasks_v2beta2"
+    "google.cloud.tasks_v2beta3"
+  ];
+
+  meta = with lib; {
+    description = "Cloud Tasks API API client library";
+    homepage = "https://github.com/googleapis/python-tasks";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ SuperSandro2000 ];
+  };
+}
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 dfd6354dcc4b..3f6792fa77b7 100644
--- a/nixpkgs/pkgs/development/python-modules/google_cloud_testutils/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/google-cloud-testutils/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi, google_auth, pytest, six }:
+{ lib, stdenv, buildPythonPackage, fetchPypi, google-auth, six }:
 
 buildPythonPackage rec {
   pname = "google-cloud-testutils";
@@ -9,15 +9,17 @@ buildPythonPackage rec {
     sha256 = "1bn1pz00lxym3vkl6l45b3nydpmfdvmylwggh2lspldrxwx39a0k";
   };
 
-  propagatedBuildInputs = [ google_auth six ];
+  propagatedBuildInputs = [ google-auth six ];
 
-  # There are no tests
+  # does not contain tests
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  pythonImportsCheck = [ "test_utils" ];
+
+  meta = with lib; {
     description = "System test utilities for google-cloud-python";
     homepage = "https://github.com/googleapis/python-test-utils";
     license = licenses.asl20;
-    maintainers = [ maintainers.costrouc ];
+    maintainers = with maintainers; [ SuperSandro2000 ];
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/google-cloud-texttospeech/default.nix b/nixpkgs/pkgs/development/python-modules/google-cloud-texttospeech/default.nix
new file mode 100644
index 000000000000..a7228a42999b
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/google-cloud-texttospeech/default.nix
@@ -0,0 +1,43 @@
+{ lib, stdenv
+, buildPythonPackage
+, fetchPypi
+, pytestCheckHook
+, google-api-core
+, libcst
+, mock
+, proto-plus
+, pytest-asyncio
+}:
+
+buildPythonPackage rec {
+  pname = "google-cloud-texttospeech";
+  version = "2.2.0";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "17igfwh34369gkvsbrm46j1ii61i6268wg2g2dl9c65nf9z3kgfb";
+  };
+
+  propagatedBuildInputs = [ libcst google-api-core proto-plus ];
+
+  checkInputs = [ mock pytest-asyncio pytestCheckHook ];
+
+  disabledTests = [
+    # Disable tests that require credentials
+    "test_list_voices"
+    "test_synthesize_speech"
+  ];
+
+  pythonImportsCheck = [
+    "google.cloud.texttospeech"
+    "google.cloud.texttospeech_v1"
+    "google.cloud.texttospeech_v1beta1"
+  ];
+
+  meta = with lib; {
+    description = "Google Cloud Text-to-Speech API client library";
+    homepage = "https://github.com/googleapis/python-texttospeech";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ SuperSandro2000 ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/google-cloud-trace/default.nix b/nixpkgs/pkgs/development/python-modules/google-cloud-trace/default.nix
new file mode 100644
index 000000000000..1252c99bf486
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/google-cloud-trace/default.nix
@@ -0,0 +1,44 @@
+{ lib, stdenv
+, buildPythonPackage
+, fetchPypi
+, google-api-core
+, google-cloud-core
+, google-cloud-testutils
+, mock
+, proto-plus
+, pytestCheckHook
+, pytest-asyncio
+}:
+
+buildPythonPackage rec {
+  pname = "google-cloud-trace";
+  version = "1.1.0";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1lvcm4w1l7hiqg64kdscch3f3bq19q9ii49xj4lljn2a4xffxl8v";
+  };
+
+  propagatedBuildInputs = [ google-api-core google-cloud-core proto-plus ];
+
+  checkInputs = [ google-cloud-testutils mock pytestCheckHook pytest-asyncio ];
+
+  disabledTests = [
+    # require credentials
+    "test_batch_write_spans"
+    "test_list_traces"
+  ];
+
+  pythonImportsCheck = [
+    "google.cloud.trace"
+    "google.cloud.trace_v1"
+    "google.cloud.trace_v2"
+  ];
+
+  meta = with lib; {
+    description = "Cloud Trace API client library";
+    homepage = "https://github.com/googleapis/python-trace";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ SuperSandro2000 ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/google-cloud-translate/default.nix b/nixpkgs/pkgs/development/python-modules/google-cloud-translate/default.nix
new file mode 100644
index 000000000000..32d402e1cf03
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/google-cloud-translate/default.nix
@@ -0,0 +1,46 @@
+{ lib, stdenv
+, buildPythonPackage
+, fetchPypi
+, pytestCheckHook
+, google-api-core
+, google-cloud-core
+, google-cloud-testutils
+, grpcio
+, libcst
+, mock
+, proto-plus
+, pytest-asyncio
+}:
+
+buildPythonPackage rec {
+  pname = "google-cloud-translate";
+  version = "3.0.2";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1s2gvlzfqd2gsrzaz7yl9q8s1k03dlsjahgg95s017vlcn21d0v1";
+  };
+
+  propagatedBuildInputs = [ google-api-core google-cloud-core libcst proto-plus ];
+
+  checkInputs = [ google-cloud-testutils mock pytestCheckHook pytest-asyncio ];
+
+  preCheck = ''
+    # prevent shadowing imports
+    rm -r google
+  '';
+
+  pythonImportsCheck = [
+    "google.cloud.translate"
+    "google.cloud.translate_v2"
+    "google.cloud.translate_v3"
+    "google.cloud.translate_v3beta1"
+  ];
+
+  meta = with lib; {
+    description = "Google Cloud Translation API client library";
+    homepage = "https://github.com/googleapis/python-translate";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ SuperSandro2000 ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/google-cloud-videointelligence/default.nix b/nixpkgs/pkgs/development/python-modules/google-cloud-videointelligence/default.nix
new file mode 100644
index 000000000000..43fed1fe27fa
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/google-cloud-videointelligence/default.nix
@@ -0,0 +1,45 @@
+{ lib, stdenv
+, buildPythonPackage
+, fetchPypi
+, mock
+, google-api-core
+, google-cloud-testutils
+, proto-plus
+, pytestCheckHook
+, pytest-asyncio
+}:
+
+buildPythonPackage rec {
+  pname = "google-cloud-videointelligence";
+  version = "2.0.0";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1yhmizig41ymr2dz0i6ccrwszp0ivyykmq11vqxp82l9ncjima82";
+  };
+
+  propagatedBuildInputs = [ google-api-core proto-plus ];
+
+  checkInputs = [ google-cloud-testutils mock pytestCheckHook pytest-asyncio ];
+
+  disabledTests = [
+    # require credentials
+    "test_annotate_video"
+  ];
+
+  pythonImportsCheck = [
+    "google.cloud.videointelligence"
+    "google.cloud.videointelligence_v1"
+    "google.cloud.videointelligence_v1beta2"
+    "google.cloud.videointelligence_v1p1beta1"
+    "google.cloud.videointelligence_v1p2beta1"
+    "google.cloud.videointelligence_v1p3beta1"
+  ];
+
+  meta = with lib; {
+    description = "Google Cloud Video Intelligence API client library";
+    homepage = "https://github.com/googleapis/python-videointelligence";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ SuperSandro2000 ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/google-cloud-vision/default.nix b/nixpkgs/pkgs/development/python-modules/google-cloud-vision/default.nix
new file mode 100644
index 000000000000..57a51f96e65e
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/google-cloud-vision/default.nix
@@ -0,0 +1,41 @@
+{ lib, stdenv
+, buildPythonPackage
+, fetchPypi
+, google-api-core
+, libcst
+, mock
+, proto-plus
+, pytestCheckHook
+, pytest-asyncio
+}:
+
+buildPythonPackage rec {
+  pname = "google-cloud-vision";
+  version = "2.0.0";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "0qbwhapmn5ia853c4nfnz1qiksngvr8j0xxjasrykwhxcsd7s1ka";
+  };
+
+  propagatedBuildInputs = [ libcst google-api-core proto-plus];
+
+  checkInputs = [ mock pytestCheckHook pytest-asyncio ];
+
+  pythonImportsCheck = [
+    "google.cloud.vision"
+    "google.cloud.vision_helpers"
+    "google.cloud.vision_v1"
+    "google.cloud.vision_v1p1beta1"
+    "google.cloud.vision_v1p2beta1"
+    "google.cloud.vision_v1p3beta1"
+    "google.cloud.vision_v1p4beta1"
+  ];
+
+  meta = with lib; {
+    description = "Cloud Vision API API client library";
+    homepage = "https://github.com/googleapis/python-vision";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ SuperSandro2000 ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/google-cloud-websecurityscanner/default.nix b/nixpkgs/pkgs/development/python-modules/google-cloud-websecurityscanner/default.nix
new file mode 100644
index 000000000000..20614f5b5d86
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/google-cloud-websecurityscanner/default.nix
@@ -0,0 +1,36 @@
+{ lib, stdenv
+, buildPythonPackage
+, fetchPypi
+, pytestCheckHook
+, google-api-core
+, libcst
+, mock
+, proto-plus
+, pytest-asyncio
+}:
+
+buildPythonPackage rec {
+  pname = "google-cloud-websecurityscanner";
+  version = "1.0.0";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "14sky9bkl00n65ksig3f6psm31pkmkvlcprlk6s9if470j40zrhx";
+  };
+
+  propagatedBuildInputs = [ google-api-core libcst proto-plus ];
+
+  checkInputs = [ mock pytest-asyncio pytestCheckHook ];
+
+  pythonImportsCheck = [
+    "google.cloud.websecurityscanner_v1alpha"
+    "google.cloud.websecurityscanner_v1beta"
+  ];
+
+  meta = with lib; {
+    description = "Google Cloud Web Security Scanner API client library";
+    homepage = "https://github.com/googleapis/python-websecurityscanner";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ SuperSandro2000 ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/google-crc32c/default.nix b/nixpkgs/pkgs/development/python-modules/google-crc32c/default.nix
index fbed406cebce..b36635654a9d 100644
--- a/nixpkgs/pkgs/development/python-modules/google-crc32c/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/google-crc32c/default.nix
@@ -1,31 +1,31 @@
-{ lib, buildPythonPackage, isPy3k, fetchFromGitHub, cffi, crc32c, pytestCheckHook }:
+{ lib, buildPythonPackage, fetchFromGitHub, cffi, crc32c, pytestCheckHook }:
 
 buildPythonPackage rec {
   pname = "google-crc32c";
-  version = "1.0.0";
-
-  disabled = !isPy3k;
+  version = "1.1.2";
 
   src = fetchFromGitHub {
     owner = "googleapis";
     repo = "python-crc32c";
     rev = "v${version}";
-    sha256 = "0n3ggsxmk1fhq0kz6p5rcj4gypfb05i26fcn7lsawakgl7fzxqyl";
+    sha256 = "058g69yp7x41mv0d84yp31jv64fpm4r25b86rvvqgc6n74w6jj7k";
   };
 
-  buildInputs = [ crc32c  ];
+  buildInputs = [ crc32c ];
+
   propagatedBuildInputs = [ cffi ];
 
   LDFLAGS = "-L${crc32c}/lib";
   CFLAGS = "-I${crc32c}/include";
 
   checkInputs = [ pytestCheckHook crc32c ];
+
   pythonImportsCheck = [ "google_crc32c" ];
 
   meta = with lib; {
     homepage = "https://github.com/googleapis/python-crc32c";
     description = "Wrapper the google/crc32c hardware-based implementation of the CRC32C hashing algorithm";
     license = with licenses; [ asl20 ];
-    maintainers = with maintainers; [ freezeboy ];
+    maintainers = with maintainers; [ freezeboy SuperSandro2000 ];
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/google-i18n-address/default.nix b/nixpkgs/pkgs/development/python-modules/google-i18n-address/default.nix
index 56a77258c8aa..590962590e5f 100644
--- a/nixpkgs/pkgs/development/python-modules/google-i18n-address/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/google-i18n-address/default.nix
@@ -1,4 +1,4 @@
-{ buildPythonPackage, fetchPypi, lib, requests, pytest, pytestcov, mock }:
+{ buildPythonPackage, fetchPypi, lib, requests, pytestCheckHook, mock }:
 
 buildPythonPackage rec {
   pname = "google-i18n-address";
@@ -11,12 +11,12 @@ buildPythonPackage rec {
 
   propagatedBuildInputs = [ requests ];
 
-  checkInputs = [ pytest pytestcov mock ];
+  checkInputs = [ pytestCheckHook mock ];
 
   meta = with lib; {
     description = "Google's i18n address data packaged for Python";
     homepage = "https://pypi.org/project/google-i18n-address/";
-    maintainers = with maintainers; [ ];
+    maintainers = with maintainers; [ SuperSandro2000 ];
     license = licenses.bsd3;
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/google-music-proto/default.nix b/nixpkgs/pkgs/development/python-modules/google-music-proto/default.nix
index 16363192c81b..a883f707bdf1 100644
--- a/nixpkgs/pkgs/development/python-modules/google-music-proto/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/google-music-proto/default.nix
@@ -1,4 +1,7 @@
-{ lib, buildPythonPackage, fetchPypi, pythonOlder
+{ lib
+, buildPythonPackage
+, fetchPypi
+, pythonOlder
 , attrs
 , audio-metadata
 , importlib-metadata
@@ -10,7 +13,6 @@
 buildPythonPackage rec {
   pname = "google-music-proto";
   version = "2.10.0";
-  disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
@@ -20,7 +22,7 @@ buildPythonPackage rec {
   postPatch = ''
     sed -i -e "/audio-metadata/c\'audio-metadata'," -e "/marshmallow/c\'marshmallow'," setup.py
     substituteInPlace setup.py \
-      --replace "pendulum>=2.0,<=3.0,!=2.0.5,!=2.1.0" "pendulum>=2.0,<=3.0"
+      --replace "'attrs>=18.2,<19.4'" "'attrs'"
   '';
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/google-music-utils/default.nix b/nixpkgs/pkgs/development/python-modules/google-music-utils/default.nix
index b7fd2738e048..801b4b78a178 100644
--- a/nixpkgs/pkgs/development/python-modules/google-music-utils/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/google-music-utils/default.nix
@@ -1,30 +1,35 @@
-{ lib, buildPythonPackage, fetchFromGitHub, pythonOlder
-, audio-metadata, multidict, wrapt
-, pytest
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, audio-metadata
+, multidict
+, poetry
+, pytestCheckHook
 }:
 
 buildPythonPackage rec {
   pname = "google-music-utils";
-  version = "2.1.0";
+  version = "2.5.0";
 
   # Pypi tarball doesn't contain tests
   src = fetchFromGitHub {
     owner = "thebigmunch";
     repo = "google-music-utils";
     rev = version;
-    sha256 = "0fn4zp0gf1wx2x06dbc840qcq21j4p3ajghxp7646w2n6n9gxhh7";
+    sha256 = "0vwbrgakk23fypjspmscz4gllnb3dksv2njy4j4bm8vyr6fwbi5f";
   };
+  format = "pyproject";
 
-  propagatedBuildInputs = [
-    audio-metadata multidict wrapt
-  ];
-
-  checkInputs = [ pytest ];
-  checkPhase = ''
-    pytest
+  postPatch = ''
+    substituteInPlace pyproject.toml \
+      --replace 'multidict = "^4.0"' 'multidict = ">4.0"'
   '';
 
-  disabled = pythonOlder "3.6";
+  nativeBuildInputs = [ poetry ];
+
+  propagatedBuildInputs = [ audio-metadata multidict ];
+
+  checkInputs = [ pytestCheckHook ];
 
   meta = with lib; {
     homepage = "https://github.com/thebigmunch/google-music-utils";
diff --git a/nixpkgs/pkgs/development/python-modules/google-music/default.nix b/nixpkgs/pkgs/development/python-modules/google-music/default.nix
index 9d2f0def99b2..90978ad2cba7 100644
--- a/nixpkgs/pkgs/development/python-modules/google-music/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/google-music/default.nix
@@ -1,4 +1,6 @@
-{ lib, buildPythonPackage, fetchPypi, pythonOlder
+{ lib
+, buildPythonPackage
+, fetchPypi
 , appdirs
 , audio-metadata
 , google-music-proto
@@ -14,14 +16,9 @@ buildPythonPackage rec {
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "b79956cc0df86345c74436ae6213b700345403c91d51947288806b174322573b";
+    sha256 = "0fsp491ifsw0i1r98l8xr41m8d00nw9n5bin8k3laqzq1p65d6dp";
   };
 
-  postPatch = ''
-    substituteInPlace setup.py \
-      --replace "audio-metadata>=0.8,<0.9" "audio-metadata"
-  '';
-
   propagatedBuildInputs = [
     appdirs
     audio-metadata
@@ -35,8 +32,6 @@ buildPythonPackage rec {
   # No tests
   doCheck = false;
 
-  disabled = pythonOlder "3.6";
-
   meta = with lib; {
     homepage = "https://github.com/thebigmunch/google-music";
     description = "A Google Music API wrapper";
diff --git a/nixpkgs/pkgs/development/python-modules/google-resumable-media/default.nix b/nixpkgs/pkgs/development/python-modules/google-resumable-media/default.nix
new file mode 100644
index 000000000000..531dc1a28603
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/google-resumable-media/default.nix
@@ -0,0 +1,46 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, google-auth
+, google-cloud-testutils
+, google-crc32c
+, mock
+, pytestCheckHook
+, pytest-asyncio
+, requests
+}:
+
+buildPythonPackage rec {
+  pname = "google-resumable-media";
+  version = "1.2.0";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "0hwxdgsqh6933kp4jkv6hwwdcqs7bgjn9j08ga399njv3s9b367f";
+  };
+
+  propagatedBuildInputs = [ google-auth google-crc32c requests ];
+
+  checkInputs = [ google-auth google-cloud-testutils mock pytestCheckHook pytest-asyncio ];
+
+  preCheck = ''
+    # prevent shadowing imports
+    rm -r google
+    # fixture 'authorized_transport' not found
+    rm tests/system/requests/test_upload.py
+    # requires network
+    rm tests/system/requests/test_download.py
+  '';
+
+  pythonImportsCheck = [
+    "google._async_resumable_media"
+    "google.resumable_media"
+  ];
+
+  meta = with lib; {
+    description = "Utilities for Google Media Downloads and Resumable Uploads";
+    homepage = "https://github.com/GoogleCloudPlatform/google-resumable-media-python";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ SuperSandro2000 ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/google_auth/default.nix b/nixpkgs/pkgs/development/python-modules/google_auth/default.nix
deleted file mode 100644
index 3f47a366fba8..000000000000
--- a/nixpkgs/pkgs/development/python-modules/google_auth/default.nix
+++ /dev/null
@@ -1,44 +0,0 @@
-{ stdenv, buildPythonPackage, fetchpatch, fetchPypi, pythonOlder
-, pytestCheckHook, cachetools, flask, freezegun, mock, oauth2client
-, pyasn1-modules, pytest, pytest-localserver, requests, responses, rsa
-, setuptools, six, urllib3 }:
-
-buildPythonPackage rec {
-  pname = "google-auth";
-  version = "1.23.0";
-
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "5176db85f1e7e837a646cd9cede72c3c404ccf2e3373d9ee14b2db88febad440";
-  };
-
-  disabled = pythonOlder "3.5";
-
-  propagatedBuildInputs = [ six pyasn1-modules cachetools rsa setuptools ];
-
-  checkInputs = [
-    flask
-    freezegun
-    mock
-    oauth2client
-    pytestCheckHook
-    pytest-localserver
-    requests
-    responses
-    urllib3
-  ];
-
-  meta = with stdenv.lib; {
-    description = "Google Auth Python Library";
-    longDescription = ''
-      This library simplifies using Google’s various server-to-server
-      authentication mechanisms to access Google APIs.
-    '';
-    homepage = "https://github.com/googleapis/google-auth-library-python";
-    changelog =
-      "https://github.com/googleapis/google-auth-library-python/blob/v${version}/CHANGELOG.md";
-    # Documentation: https://googleapis.dev/python/google-auth/latest/index.html
-    license = licenses.asl20;
-    maintainers = with maintainers; [ ];
-  };
-}
diff --git a/nixpkgs/pkgs/development/python-modules/google_cloud_asset/default.nix b/nixpkgs/pkgs/development/python-modules/google_cloud_asset/default.nix
deleted file mode 100644
index 87b1fdf8fc9d..000000000000
--- a/nixpkgs/pkgs/development/python-modules/google_cloud_asset/default.nix
+++ /dev/null
@@ -1,38 +0,0 @@
-{ stdenv, buildPythonPackage, fetchPypi, pythonOlder, grpc_google_iam_v1
-, google_api_core, google-cloud-access-context-manager, google-cloud-org-policy
-, libcst, proto-plus, pytest, pytest-asyncio, pytestCheckHook, mock }:
-
-buildPythonPackage rec {
-  pname = "google-cloud-asset";
-  version = "2.2.0";
-
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "1cf1b8a102eea8cec65eb07bef51dc15c1136cfc8564ea7fc5a39465b8f20017";
-  };
-
-  disabled = pythonOlder "3.6";
-
-  checkInputs = [ mock pytest-asyncio pytestCheckHook ];
-  disabledTests = [ "asset_service_transport_auth_adc" ];
-  propagatedBuildInputs = [
-    grpc_google_iam_v1
-    google_api_core
-    google-cloud-access-context-manager
-    google-cloud-org-policy
-    libcst
-    proto-plus
-  ];
-
-  # Remove tests intended to be run in VPC
-  preCheck = ''
-    rm -rf tests/system
-  '';
-
-  meta = with stdenv.lib; {
-    description = "Python Client for Google Cloud Asset API";
-    homepage = "https://github.com/googleapis/python-asset";
-    license = licenses.asl20;
-    maintainers = [ maintainers.costrouc ];
-  };
-}
diff --git a/nixpkgs/pkgs/development/python-modules/google_cloud_automl/default.nix b/nixpkgs/pkgs/development/python-modules/google_cloud_automl/default.nix
deleted file mode 100644
index 3ad8dcb12fb3..000000000000
--- a/nixpkgs/pkgs/development/python-modules/google_cloud_automl/default.nix
+++ /dev/null
@@ -1,39 +0,0 @@
-{ stdenv, buildPythonPackage, fetchPypi, pythonOlder, pytestCheckHook, libcst
-, google_api_core, google_cloud_storage, google_cloud_testutils, pandas
-, proto-plus, pytest-asyncio, mock }:
-
-buildPythonPackage rec {
-  pname = "google-cloud-automl";
-  version = "2.1.0";
-
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "520dfe2ee04d28f3088c9c582fa2a534fc272647d5e2e59acc903c0152e61696";
-  };
-
-  disabled = pythonOlder "3.6";
-
-  checkInputs = [
-    google_cloud_storage
-    google_cloud_testutils
-    mock
-    pandas
-    pytest-asyncio
-    pytestCheckHook
-  ];
-  propagatedBuildInputs = [ google_api_core libcst proto-plus ];
-
-  # ignore tests which need credentials
-  disabledTests = [ "test_prediction_client_client_info" ];
-  preCheck = ''
-    rm -r google
-    rm tests/system/gapic/v1beta1/test_system_tables_client_v1.py
-  '';
-
-  meta = with stdenv.lib; {
-    description = "Cloud AutoML API client library";
-    homepage = "https://github.com/googleapis/python-automl";
-    license = licenses.asl20;
-    maintainers = [ maintainers.costrouc ];
-  };
-}
diff --git a/nixpkgs/pkgs/development/python-modules/google_cloud_bigquery/default.nix b/nixpkgs/pkgs/development/python-modules/google_cloud_bigquery/default.nix
deleted file mode 100644
index 3255475fbf51..000000000000
--- a/nixpkgs/pkgs/development/python-modules/google_cloud_bigquery/default.nix
+++ /dev/null
@@ -1,47 +0,0 @@
-{ stdenv, buildPythonPackage, fetchPypi, pytestCheckHook, pythonOlder, freezegun
-, google_api_core, google_cloud_core, google_cloud_testutils
-, google_resumable_media, grpcio, ipython, mock, pandas, proto-plus, pyarrow }:
-
-buildPythonPackage rec {
-  pname = "google-cloud-bigquery";
-  version = "2.6.1";
-
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "1f99fd0c0c5bde999e056a1be666e5d5bbf392f62c9e730dfcbaf6e8408d44ef";
-  };
-
-  disabled = pythonOlder "3.6";
-
-  checkInputs =
-    [ freezegun google_cloud_testutils ipython mock pytestCheckHook ];
-  propagatedBuildInputs = [
-    google_resumable_media
-    google_api_core
-    google_cloud_core
-    pandas
-    proto-plus
-    pyarrow
-  ];
-
-  # prevent google directory from shadowing google imports
-  # test_magics requires modifying sys.path
-  preCheck = ''
-    rm -r google
-    rm tests/unit/test_magics.py
-  '';
-
-  # call_api_applying_custom_retry_on_timeout requires credentials
-  # to_dataframe_timestamp_out_of_pyarrow_bounds has inconsistent results
-  disabledTests = [
-    "call_api_applying_custom_retry_on_timeout"
-    "to_dataframe_timestamp_out_of_pyarrow_bounds"
-  ];
-
-  meta = with stdenv.lib; {
-    description = "Google BigQuery API client library";
-    homepage = "https://pypi.org/project/google-cloud-bigquery";
-    license = licenses.asl20;
-    maintainers = [ maintainers.costrouc ];
-  };
-}
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
deleted file mode 100644
index 8c71ac92c994..000000000000
--- a/nixpkgs/pkgs/development/python-modules/google_cloud_bigquery_datatransfer/default.nix
+++ /dev/null
@@ -1,31 +0,0 @@
-{ stdenv
-, buildPythonPackage
-, fetchPypi
-, google_api_core
-, pytest
-, mock
-}:
-
-buildPythonPackage rec {
-  pname = "google-cloud-bigquery-datatransfer";
-  version = "2.1.0";
-
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "0cca79f6ee312159ec3f3b7fea218c3dd51408d39c429ecbea037982e91cc827";
-  };
-
-  checkInputs = [ pytest mock ];
-  propagatedBuildInputs = [ google_api_core ];
-
-  checkPhase = ''
-    pytest tests/unit
-  '';
-
-  meta = with stdenv.lib; {
-    description = "BigQuery Data Transfer API client library";
-    homepage = "https://github.com/GoogleCloudPlatform/google-cloud-python";
-    license = licenses.asl20;
-    maintainers = [ maintainers.costrouc ];
-  };
-}
diff --git a/nixpkgs/pkgs/development/python-modules/google_cloud_container/default.nix b/nixpkgs/pkgs/development/python-modules/google_cloud_container/default.nix
deleted file mode 100644
index c5415b84ba1f..000000000000
--- a/nixpkgs/pkgs/development/python-modules/google_cloud_container/default.nix
+++ /dev/null
@@ -1,29 +0,0 @@
-{ stdenv, buildPythonPackage, fetchPypi, pythonOlder, google_api_core
-, grpc_google_iam_v1, libcst, mock, proto-plus, pytest, pytest-asyncio }:
-
-buildPythonPackage rec {
-  pname = "google-cloud-container";
-  version = "2.3.0";
-
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "0dcd8084dd55c0439ff065d3fb206e2e5c695d3a25effd774b74f8ce43afc911";
-  };
-
-  disabled = pythonOlder "3.6";
-
-  checkInputs = [ mock pytest pytest-asyncio ];
-  propagatedBuildInputs =
-    [ google_api_core grpc_google_iam_v1 libcst proto-plus ];
-
-  checkPhase = ''
-    pytest tests/unit
-  '';
-
-  meta = with stdenv.lib; {
-    description = "Google Container Engine API client library";
-    homepage = "https://github.com/googleapis/python-container";
-    license = licenses.asl20;
-    maintainers = [ maintainers.costrouc ];
-  };
-}
diff --git a/nixpkgs/pkgs/development/python-modules/google_cloud_dataproc/default.nix b/nixpkgs/pkgs/development/python-modules/google_cloud_dataproc/default.nix
deleted file mode 100644
index b0067d4316da..000000000000
--- a/nixpkgs/pkgs/development/python-modules/google_cloud_dataproc/default.nix
+++ /dev/null
@@ -1,33 +0,0 @@
-{ stdenv
-, buildPythonPackage
-, fetchPypi
-, google_api_core
-, pytest
-, mock
-, libcst
-, proto-plus
-}:
-
-buildPythonPackage rec {
-  pname = "google-cloud-dataproc";
-  version = "2.2.0";
-
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "81c44ac114c94df8f5b21245e5e7fc4eabce66b25fc432c3696b62b5de143b1f";
-  };
-
-  checkInputs = [ pytest mock ];
-  propagatedBuildInputs = [ google_api_core libcst proto-plus ];
-
-  checkPhase = ''
-    pytest tests/unit
-  '';
-
-  meta = with stdenv.lib; {
-    description = "Google Cloud Dataproc API client library";
-    homepage = "https://github.com/GoogleCloudPlatform/google-cloud-python";
-    license = licenses.asl20;
-    maintainers = [ maintainers.costrouc ];
-  };
-}
diff --git a/nixpkgs/pkgs/development/python-modules/google_cloud_datastore/default.nix b/nixpkgs/pkgs/development/python-modules/google_cloud_datastore/default.nix
deleted file mode 100644
index 07c6cd87237f..000000000000
--- a/nixpkgs/pkgs/development/python-modules/google_cloud_datastore/default.nix
+++ /dev/null
@@ -1,33 +0,0 @@
-{ stdenv
-, buildPythonPackage
-, fetchPypi
-, google_api_core
-, google_cloud_core
-, pytest
-, mock
-}:
-
-buildPythonPackage rec {
-  pname = "google-cloud-datastore";
-  version = "2.0.1";
-
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "0ebf3b0bcb483e066dfe73679e019e2d7b8c1652e26984702cf5e3f020592f6a";
-  };
-
-  checkInputs = [ pytest mock ];
-  propagatedBuildInputs = [ google_api_core google_cloud_core ];
-
-  checkPhase = ''
-    rm -r google
-    pytest tests/unit
-  '';
-
-  meta = with stdenv.lib; {
-    description = "Google Cloud Datastore API client library";
-    homepage = "https://github.com/GoogleCloudPlatform/google-cloud-python";
-    license = licenses.asl20;
-    maintainers = [ maintainers.costrouc ];
-  };
-}
diff --git a/nixpkgs/pkgs/development/python-modules/google_cloud_dlp/default.nix b/nixpkgs/pkgs/development/python-modules/google_cloud_dlp/default.nix
deleted file mode 100644
index a5a602dbeadb..000000000000
--- a/nixpkgs/pkgs/development/python-modules/google_cloud_dlp/default.nix
+++ /dev/null
@@ -1,32 +0,0 @@
-{ stdenv
-, buildPythonPackage
-, fetchPypi
-, enum34
-, google_api_core
-, pytest
-, mock
-}:
-
-buildPythonPackage rec {
-  pname = "google-cloud-dlp";
-  version = "2.0.0";
-
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "112c8a46979eebd60c3651037e62572fed413977ff2811901aa925c7b7ab9a5a";
-  };
-
-  checkInputs = [ pytest mock ];
-  propagatedBuildInputs = [ enum34 google_api_core ];
-
-  checkPhase = ''
-    pytest tests/unit
-  '';
-
-  meta = with stdenv.lib; {
-    description = "Cloud Data Loss Prevention (DLP) API API client library";
-    homepage = "https://github.com/GoogleCloudPlatform/google-cloud-python";
-    license = licenses.asl20;
-    maintainers = [ maintainers.costrouc ];
-  };
-}
diff --git a/nixpkgs/pkgs/development/python-modules/google_cloud_dns/default.nix b/nixpkgs/pkgs/development/python-modules/google_cloud_dns/default.nix
deleted file mode 100644
index d488b7ad5632..000000000000
--- a/nixpkgs/pkgs/development/python-modules/google_cloud_dns/default.nix
+++ /dev/null
@@ -1,33 +0,0 @@
-{ stdenv
-, buildPythonPackage
-, fetchPypi
-, google_api_core
-, google_cloud_core
-, pytest
-, mock
-}:
-
-buildPythonPackage rec {
-  pname = "google-cloud-dns";
-  version = "0.32.1";
-
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "7264e58067b55535ee859e124bd3da29337698ef6bb293da667d0316ddbe8606";
-  };
-
-  checkInputs = [ pytest mock ];
-  propagatedBuildInputs = [ google_api_core google_cloud_core ];
-
-  checkPhase = ''
-    rm -r google
-    pytest tests/unit
-  '';
-
-  meta = with stdenv.lib; {
-    description = "Google Cloud DNS API client library";
-    homepage = "https://github.com/GoogleCloudPlatform/google-cloud-python";
-    license = licenses.asl20;
-    maintainers = [ maintainers.costrouc ];
-  };
-}
diff --git a/nixpkgs/pkgs/development/python-modules/google_cloud_firestore/default.nix b/nixpkgs/pkgs/development/python-modules/google_cloud_firestore/default.nix
deleted file mode 100644
index 4f819bbf9bfa..000000000000
--- a/nixpkgs/pkgs/development/python-modules/google_cloud_firestore/default.nix
+++ /dev/null
@@ -1,35 +0,0 @@
-{ stdenv
-, buildPythonPackage
-, fetchPypi
-, google_api_core
-, google_cloud_core
-, pytest
-}:
-
-buildPythonPackage rec {
-  pname = "google-cloud-firestore";
-  version = "2.0.1";
-
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "ae1f58d9174a6fb2c9fd2758c6d4fd237fb4f0decc632b80c217bfbceda38eb6";
-  };
-
-  checkInputs = [ pytest ];
-  propagatedBuildInputs = [ google_api_core google_cloud_core ];
-
-  # tests were not included with release
-  # See issue https://github.com/googleapis/google-cloud-python/issues/6380
-  doCheck = false;
-
-  checkPhase = ''
-    pytest tests/unit
-  '';
-
-  meta = with stdenv.lib; {
-    description = "Google Cloud Firestore API client library";
-    homepage = "https://github.com/GoogleCloudPlatform/google-cloud-python";
-    license = licenses.asl20;
-    maintainers = [ maintainers.costrouc ];
-  };
-}
diff --git a/nixpkgs/pkgs/development/python-modules/google_cloud_iot/default.nix b/nixpkgs/pkgs/development/python-modules/google_cloud_iot/default.nix
deleted file mode 100644
index 96364cfd7029..000000000000
--- a/nixpkgs/pkgs/development/python-modules/google_cloud_iot/default.nix
+++ /dev/null
@@ -1,33 +0,0 @@
-{ stdenv
-, buildPythonPackage
-, fetchPypi
-, enum34
-, grpc_google_iam_v1
-, google_api_core
-, pytest
-, mock
-}:
-
-buildPythonPackage rec {
-  pname = "google-cloud-iot";
-  version = "2.0.1";
-
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "8af2be9c74697a350d5cc8ead00ae6cb4e85943564f1d782e8060d0d5eb15723";
-  };
-
-  checkInputs = [ pytest mock ];
-  propagatedBuildInputs = [ enum34 grpc_google_iam_v1 google_api_core ];
-
-  checkPhase = ''
-    pytest tests/unit
-  '';
-
-  meta = with stdenv.lib; {
-    description = "Cloud IoT API API client library";
-    homepage = "https://github.com/GoogleCloudPlatform/google-cloud-python";
-    license = licenses.asl20;
-    # maintainers = [ maintainers. ];
-  };
-}
diff --git a/nixpkgs/pkgs/development/python-modules/google_cloud_language/default.nix b/nixpkgs/pkgs/development/python-modules/google_cloud_language/default.nix
deleted file mode 100644
index 4f3defb4e4b9..000000000000
--- a/nixpkgs/pkgs/development/python-modules/google_cloud_language/default.nix
+++ /dev/null
@@ -1,32 +0,0 @@
-{ stdenv
-, buildPythonPackage
-, fetchPypi
-, enum34
-, google_api_core
-, pytest
-, mock
-}:
-
-buildPythonPackage rec {
-  pname = "google-cloud-language";
-  version = "2.0.0";
-
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "abe7abcd64d25ffdf6d063385869ef8f34a7de421d5676541cd6df63b3c37b88";
-  };
-
-  checkInputs = [ pytest mock ];
-  propagatedBuildInputs = [ enum34 google_api_core ];
-
-  checkPhase = ''
-    pytest tests/unit
-  '';
-
-  meta = with stdenv.lib; {
-    description = "Google Cloud Natural Language API client library";
-    homepage = "https://github.com/GoogleCloudPlatform/google-cloud-python";
-    license = licenses.asl20;
-    maintainers = [ maintainers.costrouc ];
-  };
-}
diff --git a/nixpkgs/pkgs/development/python-modules/google_cloud_logging/default.nix b/nixpkgs/pkgs/development/python-modules/google_cloud_logging/default.nix
deleted file mode 100644
index 96473edd583b..000000000000
--- a/nixpkgs/pkgs/development/python-modules/google_cloud_logging/default.nix
+++ /dev/null
@@ -1,38 +0,0 @@
-{ stdenv, buildPythonPackage, fetchPypi, pytestCheckHook, pythonOlder, django
-, flask, google_api_core, google_cloud_core, google_cloud_testutils, mock
-, webapp2 }:
-
-buildPythonPackage rec {
-  pname = "google-cloud-logging";
-  version = "2.0.0";
-
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "c8e4869ec22aa7958ff937c1acbd34d7a2a8a446af9a09ce442f24128eee063c";
-  };
-
-  disabled = pythonOlder "3.5";
-
-  checkInputs =
-    [ django flask google_cloud_testutils mock pytestCheckHook webapp2 ];
-  propagatedBuildInputs = [ google_api_core google_cloud_core ];
-
-  # api_url test broken, fix not yet released
-  # https://github.com/googleapis/python-logging/pull/66
-  disabledTests =
-    [ "test_build_api_url_w_custom_endpoint" "test_write_log_entries" ];
-
-  # prevent google directory from shadowing google imports
-  # remove system integration tests
-  preCheck = ''
-    rm -r google
-    rm tests/system/test_system.py
-  '';
-
-  meta = with stdenv.lib; {
-    description = "Stackdriver Logging API client library";
-    homepage = "https://github.com/googleapis/python-logging";
-    license = licenses.asl20;
-    maintainers = [ maintainers.costrouc ];
-  };
-}
diff --git a/nixpkgs/pkgs/development/python-modules/google_cloud_monitoring/default.nix b/nixpkgs/pkgs/development/python-modules/google_cloud_monitoring/default.nix
deleted file mode 100644
index 99557565e63a..000000000000
--- a/nixpkgs/pkgs/development/python-modules/google_cloud_monitoring/default.nix
+++ /dev/null
@@ -1,32 +0,0 @@
-{ stdenv
-, buildPythonPackage
-, fetchPypi
-, google_api_core
-, pandas
-, pytest
-, mock
-}:
-
-buildPythonPackage rec {
-  pname = "google-cloud-monitoring";
-  version = "2.0.0";
-
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "1debfa046ab9518d46b68712c03d86d0ddb11d1aad428aed62c6465752f2201f";
-  };
-
-  checkInputs = [ pytest mock ];
-  propagatedBuildInputs = [ google_api_core pandas ];
-
-  checkPhase = ''
-    pytest tests/unit
-  '';
-
-  meta = with stdenv.lib; {
-    description = "Stackdriver Monitoring API client library";
-    homepage = "https://github.com/GoogleCloudPlatform/google-cloud-python";
-    license = licenses.asl20;
-    maintainers = [ maintainers.costrouc ];
-  };
-}
diff --git a/nixpkgs/pkgs/development/python-modules/google_cloud_pubsub/default.nix b/nixpkgs/pkgs/development/python-modules/google_cloud_pubsub/default.nix
deleted file mode 100644
index b7b810370f98..000000000000
--- a/nixpkgs/pkgs/development/python-modules/google_cloud_pubsub/default.nix
+++ /dev/null
@@ -1,35 +0,0 @@
-{ stdenv, buildPythonPackage, fetchPypi, pythonOlder, pytestCheckHook
-, google_api_core, google_cloud_testutils, grpc_google_iam_v1, libcst, mock
-, proto-plus, pytest-asyncio }:
-
-buildPythonPackage rec {
-  pname = "google-cloud-pubsub";
-  version = "2.2.0";
-
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "bc50a60803f5c409a295ec0e31cdd4acc271611ce3f4963a072036bbfa5ccde5";
-  };
-
-  disabled = pythonOlder "3.6";
-
-  checkInputs = [ google_cloud_testutils mock pytestCheckHook pytest-asyncio ];
-  propagatedBuildInputs =
-    [ grpc_google_iam_v1 google_api_core libcst proto-plus ];
-
-  # prevent google directory from shadowing google imports
-  # Tests in pubsub_v1 attempt to contact pubsub.googleapis.com
-  preCheck = ''
-    rm -r google
-    rm -r tests/unit/pubsub_v1
-  '';
-
-  pythonImportsCheck = [ "google.cloud.pubsub" ];
-
-  meta = with stdenv.lib; {
-    description = "Google Cloud Pub/Sub API client library";
-    homepage = "https://pypi.org/project/google-cloud-pubsub";
-    license = licenses.asl20;
-    maintainers = [ maintainers.costrouc ];
-  };
-}
diff --git a/nixpkgs/pkgs/development/python-modules/google_cloud_redis/default.nix b/nixpkgs/pkgs/development/python-modules/google_cloud_redis/default.nix
deleted file mode 100644
index 3337d9f3c55b..000000000000
--- a/nixpkgs/pkgs/development/python-modules/google_cloud_redis/default.nix
+++ /dev/null
@@ -1,38 +0,0 @@
-{ stdenv
-, buildPythonPackage
-, fetchPypi
-, enum34
-, google_api_core
-, pytest
-, mock
-}:
-
-buildPythonPackage rec {
-  pname = "google-cloud-redis";
-  version = "2.0.0";
-
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "c783118462d9272fb9f519ef43b6ce383e99ad631e922a1f06fbef7148aec7b8";
-  };
-
-  checkInputs = [ pytest mock ];
-  propagatedBuildInputs = [ enum34 google_api_core ];
-
-  # requires old version of google-api-core (override)
-  preBuild = ''
-    sed -i "s/'google-api-core\[grpc\] >= 0.1.0, < 0.2.0dev'/'google-api-core'/g" setup.py
-    sed -i "s/google-api-core\[grpc\]<0.2.0dev,>=0.1.0/google-api-core/g" google_cloud_redis.egg-info/requires.txt
-  '';
-
-  checkPhase = ''
-    pytest tests/unit
-  '';
-
-  meta = with stdenv.lib; {
-    description = "Google Cloud Memorystore for Redis API client library";
-    homepage = "https://github.com/GoogleCloudPlatform/google-cloud-python";
-    license = licenses.asl20;
-    maintainers = [ maintainers.costrouc ];
-  };
-}
diff --git a/nixpkgs/pkgs/development/python-modules/google_cloud_resource_manager/default.nix b/nixpkgs/pkgs/development/python-modules/google_cloud_resource_manager/default.nix
deleted file mode 100644
index 815ecc118f9b..000000000000
--- a/nixpkgs/pkgs/development/python-modules/google_cloud_resource_manager/default.nix
+++ /dev/null
@@ -1,34 +0,0 @@
-{ stdenv, buildPythonPackage, fetchPypi, pytestCheckHook, pythonOlder
-, google_cloud_core, google_api_core, mock, pytest }:
-
-buildPythonPackage rec {
-  pname = "google-cloud-resource-manager";
-  version = "0.30.3";
-
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "3577bbf38f2c7c2f42306b8dfdeffbb0eedf45aaec947fd513d51937f72046d1";
-  };
-
-  disabled = pythonOlder "3.5";
-
-  checkInputs = [ mock pytestCheckHook ];
-  propagatedBuildInputs = [ google_api_core google_cloud_core ];
-
-  # api_url test broken, fix not yet released
-  # https://github.com/googleapis/python-resource-manager/pull/31
-  disabledTests =
-    [ "api_url_no_extra_query_param" "api_url_w_custom_endpoint" ];
-
-  # prevent google directory from shadowing google imports
-  preCheck = ''
-    rm -r google
-  '';
-
-  meta = with stdenv.lib; {
-    description = "Google Cloud Resource Manager API client library";
-    homepage = "https://github.com/googleapis/python-resource-manager";
-    license = licenses.asl20;
-    maintainers = [ maintainers.costrouc ];
-  };
-}
diff --git a/nixpkgs/pkgs/development/python-modules/google_cloud_runtimeconfig/default.nix b/nixpkgs/pkgs/development/python-modules/google_cloud_runtimeconfig/default.nix
deleted file mode 100644
index d4fb4c59a18c..000000000000
--- a/nixpkgs/pkgs/development/python-modules/google_cloud_runtimeconfig/default.nix
+++ /dev/null
@@ -1,34 +0,0 @@
-{ stdenv, buildPythonPackage, fetchPypi, pytestCheckHook, pythonOlder
-, google_api_core, google_cloud_core, mock }:
-
-buildPythonPackage rec {
-  pname = "google-cloud-runtimeconfig";
-  version = "0.32.1";
-
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "57143ec3c5ed3e0bee590a98857eec06c68aa2eacbce477403226a0d2e85a8ad";
-  };
-
-  disabled = pythonOlder "3.5";
-
-  checkInputs = [ mock pytestCheckHook ];
-  propagatedBuildInputs = [ google_api_core google_cloud_core ];
-
-  # api_url test broken, fix not yet released
-  # https://github.com/googleapis/python-resource-manager/pull/31
-  # Client tests require credentials
-  disabledTests = [ "build_api_url_w_custom_endpoint" "client_options" ];
-
-  # prevent google directory from shadowing google imports
-  preCheck = ''
-    rm -r google
-  '';
-
-  meta = with stdenv.lib; {
-    description = "Google Cloud RuntimeConfig API client library";
-    homepage = "https://pypi.org/project/google-cloud-runtimeconfig";
-    license = licenses.asl20;
-    maintainers = [ maintainers.costrouc ];
-  };
-}
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
deleted file mode 100644
index c744701c7789..000000000000
--- a/nixpkgs/pkgs/development/python-modules/google_cloud_secret_manager/default.nix
+++ /dev/null
@@ -1,36 +0,0 @@
-{ lib, buildPythonPackage, fetchPypi
-, grpc_google_iam_v1, google_api_core, libcst, proto-plus
-, pytest, mock
-}:
-
-buildPythonPackage rec {
-  pname = "google-cloud-secret-manager";
-  version = "2.1.0";
-
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "2f08b49164aca8623b2e4ee07352980b3ffca909ce205c03568e203bbc455c30";
-  };
-
-  propagatedBuildInputs = [
-    google_api_core
-    grpc_google_iam_v1
-    libcst
-    proto-plus
-  ];
-
-  checkInputs = [
-    mock
-    pytest
-  ];
-  checkPhase = ''
-    pytest
-  '';
-
-  meta = with lib; {
-    description = "Secret Manager API: Stores, manages, and secures access to application secrets";
-    homepage = "https://github.com/GoogleCloudPlatform/google-cloud-python";
-    license = licenses.asl20;
-    maintainers = with maintainers; [ siriobalmelli ];
-  };
-}
diff --git a/nixpkgs/pkgs/development/python-modules/google_cloud_securitycenter/default.nix b/nixpkgs/pkgs/development/python-modules/google_cloud_securitycenter/default.nix
deleted file mode 100644
index cad4b0799c28..000000000000
--- a/nixpkgs/pkgs/development/python-modules/google_cloud_securitycenter/default.nix
+++ /dev/null
@@ -1,33 +0,0 @@
-{ stdenv
-, buildPythonPackage
-, fetchPypi
-, enum34
-, grpc_google_iam_v1
-, google_api_core
-, pytest
-, mock
-}:
-
-buildPythonPackage rec {
-  pname = "google-cloud-securitycenter";
-  version = "1.0.0";
-
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "45d47a4389f2f19958a9db8e5c2f169c9b9385e74338fef0a4e49160153df7f7";
-  };
-
-  checkInputs = [ pytest mock ];
-  propagatedBuildInputs = [ enum34 grpc_google_iam_v1 google_api_core ];
-
-  checkPhase = ''
-    pytest tests/unit
-  '';
-
-  meta = with stdenv.lib; {
-    description = "Cloud Security Command Center API API client library";
-    homepage = "https://github.com/GoogleCloudPlatform/google-cloud-python";
-    license = licenses.asl20;
-    maintainers = [ maintainers.costrouc ];
-  };
-}
diff --git a/nixpkgs/pkgs/development/python-modules/google_cloud_spanner/default.nix b/nixpkgs/pkgs/development/python-modules/google_cloud_spanner/default.nix
deleted file mode 100644
index 38bd65aa091d..000000000000
--- a/nixpkgs/pkgs/development/python-modules/google_cloud_spanner/default.nix
+++ /dev/null
@@ -1,33 +0,0 @@
-{ stdenv, buildPythonPackage, fetchPypi, pytestCheckHook, pythonOlder
-, grpc_google_iam_v1, grpcio-gcp, google_api_core, google_cloud_core
-, google_cloud_testutils, mock, pytest }:
-
-buildPythonPackage rec {
-  pname = "google-cloud-spanner";
-  version = "2.0.0";
-
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "edac9d86ea2d8e87c048423f610cd3e5dbb6f9db7f1f9353ff133014689e97c6";
-  };
-
-  disabled = pythonOlder "3.5";
-
-  checkInputs = [ google_cloud_testutils mock pytestCheckHook ];
-  propagatedBuildInputs =
-    [ grpcio-gcp grpc_google_iam_v1 google_api_core google_cloud_core ];
-
-  # prevent google directory from shadowing google imports
-  # remove tests that require credentials
-  preCheck = ''
-    rm -r google
-    rm tests/system/test_system.py
-  '';
-
-  meta = with stdenv.lib; {
-    description = "Cloud Spanner API client library";
-    homepage = "https://pypi.org/project/google-cloud-spanner";
-    license = licenses.asl20;
-    maintainers = [ maintainers.costrouc ];
-  };
-}
diff --git a/nixpkgs/pkgs/development/python-modules/google_cloud_speech/default.nix b/nixpkgs/pkgs/development/python-modules/google_cloud_speech/default.nix
deleted file mode 100644
index 57b2efb9ebbc..000000000000
--- a/nixpkgs/pkgs/development/python-modules/google_cloud_speech/default.nix
+++ /dev/null
@@ -1,26 +0,0 @@
-{ stdenv, buildPythonPackage, fetchPypi
-, google_api_core, pytest, mock }:
-
-buildPythonPackage rec {
-  pname = "google-cloud-speech";
-  version = "2.0.1";
-
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "a7428190f4c10440148a273eb4c91480470b34180eec422b7325acdc0b2c0832";
-  };
-
-  propagatedBuildInputs = [ google_api_core ];
-  checkInputs = [ pytest mock ];
-
-  checkPhase = ''
-    pytest tests/unit
-  '';
-
-  meta = with stdenv.lib; {
-    description = "Cloud Speech API enables integration of Google speech recognition into applications.";
-    homepage = "https://github.com/googleapis/google-cloud-python/tree/master/speech";
-    license = licenses.asl20;
-    maintainers = with maintainers; [ ];
-  };
-}
diff --git a/nixpkgs/pkgs/development/python-modules/google_cloud_storage/default.nix b/nixpkgs/pkgs/development/python-modules/google_cloud_storage/default.nix
deleted file mode 100644
index a1b572db11e5..000000000000
--- a/nixpkgs/pkgs/development/python-modules/google_cloud_storage/default.nix
+++ /dev/null
@@ -1,48 +0,0 @@
-{ lib, buildPythonPackage, fetchPypi, pytestCheckHook, pythonOlder
-, google_api_core, google_auth, google-cloud-iam, google_cloud_core
-, google_cloud_kms, google_cloud_testutils, google_resumable_media, mock
-, requests }:
-
-buildPythonPackage rec {
-  pname = "google-cloud-storage";
-  version = "1.33.0";
-
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "900ba027bdee6b97f21cd22d1db3d1a6233ede5de2db4754db860438bdad72d2";
-  };
-
-  disabled = pythonOlder "3.5";
-
-  propagatedBuildInputs = [
-    google_api_core
-    google_auth
-    google_cloud_core
-    google_resumable_media
-    requests
-  ];
-  checkInputs = [
-    google-cloud-iam
-    google_cloud_kms
-    google_cloud_testutils
-    mock
-    pytestCheckHook
-  ];
-
-  # disable tests which require credentials
-  disabledTests = [ "create" "get" "post" "test_build_api_url" ];
-
-  # prevent google directory from shadowing google imports
-  # remove tests which require credentials
-  preCheck = ''
-    rm -r google
-    rm tests/system/test_system.py tests/unit/test_client.py
-  '';
-
-  meta = with lib; {
-    description = "Google Cloud Storage API client library";
-    homepage = "https://github.com/googleapis/python-storage";
-    license = licenses.asl20;
-    maintainers = with maintainers; [ costrouc ];
-  };
-}
diff --git a/nixpkgs/pkgs/development/python-modules/google_cloud_tasks/default.nix b/nixpkgs/pkgs/development/python-modules/google_cloud_tasks/default.nix
deleted file mode 100644
index ca252b2c5edb..000000000000
--- a/nixpkgs/pkgs/development/python-modules/google_cloud_tasks/default.nix
+++ /dev/null
@@ -1,33 +0,0 @@
-{ stdenv
-, buildPythonPackage
-, fetchPypi
-, enum34
-, grpc_google_iam_v1
-, google_api_core
-, pytest
-, mock
-}:
-
-buildPythonPackage rec {
-  pname = "google-cloud-tasks";
-  version = "2.0.0";
-
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "a9dd004057fc441eee8c18bb2dc3bb20ba7b85f353d66894c61e42aeb8764e76";
-  };
-
-  checkInputs = [ pytest mock ];
-  propagatedBuildInputs = [ enum34 grpc_google_iam_v1 google_api_core ];
-
-  checkPhase = ''
-    pytest tests/unit
-  '';
-
-  meta = with stdenv.lib; {
-    description = "Cloud Tasks API API client library";
-    homepage = "https://github.com/GoogleCloudPlatform/google-cloud-python";
-    license = licenses.asl20;
-    maintainers = [ maintainers.costrouc ];
-  };
-}
diff --git a/nixpkgs/pkgs/development/python-modules/google_cloud_texttospeech/default.nix b/nixpkgs/pkgs/development/python-modules/google_cloud_texttospeech/default.nix
deleted file mode 100644
index 32e8fa223a88..000000000000
--- a/nixpkgs/pkgs/development/python-modules/google_cloud_texttospeech/default.nix
+++ /dev/null
@@ -1,27 +0,0 @@
-{ stdenv, buildPythonPackage, fetchPypi, pytestCheckHook, pythonOlder
-, google_api_core, libcst, mock, proto-plus, pytest-asyncio, }:
-
-buildPythonPackage rec {
-  pname = "google-cloud-texttospeech";
-  version = "2.2.0";
-
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "cbbd397e72b6189668134f3c8e8c303198188334a4e6a5f77cc90c3220772f9e";
-  };
-
-  disabled = pythonOlder "3.5";
-
-  checkInputs = [ mock pytest-asyncio pytestCheckHook ];
-  propagatedBuildInputs = [ google_api_core libcst proto-plus ];
-
-  # Disable tests that require credentials
-  disabledTests = ["test_synthesize_speech" "test_list_voices"];
-
-  meta = with stdenv.lib; {
-    description = "Google Cloud Text-to-Speech API client library";
-    homepage = "https://github.com/googleapis/python-texttospeech";
-    license = licenses.asl20;
-    maintainers = [ maintainers.costrouc ];
-  };
-}
diff --git a/nixpkgs/pkgs/development/python-modules/google_cloud_trace/default.nix b/nixpkgs/pkgs/development/python-modules/google_cloud_trace/default.nix
deleted file mode 100644
index b0efb65d0d2f..000000000000
--- a/nixpkgs/pkgs/development/python-modules/google_cloud_trace/default.nix
+++ /dev/null
@@ -1,32 +0,0 @@
-{ stdenv
-, buildPythonPackage
-, fetchPypi
-, google_api_core
-, google_cloud_core
-, pytest
-, mock
-}:
-
-buildPythonPackage rec {
-  pname = "google-cloud-trace";
-  version = "1.1.0";
-
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "1bd1ee5c274a584929913d9118134e01afe106644cb749ccc3111e1a38a96cd3";
-  };
-
-  checkInputs = [ pytest mock ];
-  propagatedBuildInputs = [ google_api_core google_cloud_core ];
-
-  checkPhase = ''
-    pytest tests/unit
-  '';
-
-  meta = with stdenv.lib; {
-    description = "Stackdriver Trace API client library";
-    homepage = "https://github.com/GoogleCloudPlatform/google-cloud-python";
-    license = licenses.asl20;
-    maintainers = [ maintainers.costrouc ];
-  };
-}
diff --git a/nixpkgs/pkgs/development/python-modules/google_cloud_translate/default.nix b/nixpkgs/pkgs/development/python-modules/google_cloud_translate/default.nix
deleted file mode 100644
index 1049895bda1b..000000000000
--- a/nixpkgs/pkgs/development/python-modules/google_cloud_translate/default.nix
+++ /dev/null
@@ -1,40 +0,0 @@
-{ stdenv, buildPythonPackage, fetchPypi, pytestCheckHook, pythonOlder
-, google_api_core, google_cloud_core, google_cloud_testutils, grpcio, libcst
-, mock, proto-plus, pytest-asyncio }:
-
-buildPythonPackage rec {
-  pname = "google-cloud-translate";
-  version = "3.0.2";
-
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "6183168465749f007449ef4125356d03cca0114ed49faf7ed64f34ec3edd4fe8";
-  };
-
-  disabled = pythonOlder "3.6";
-
-  # google_cloud_core[grpc] -> grpcio
-  propagatedBuildInputs =
-    [ google_api_core google_cloud_core grpcio libcst proto-plus ];
-
-  checkInputs = [ google_cloud_testutils mock pytest-asyncio pytestCheckHook ];
-
-  # test_http.py broken, fix not yet released
-  # https://github.com/googleapis/python-translate/pull/69
-  disabledTests = [
-    "test_build_api_url_w_extra_query_params"
-    "test_build_api_url_no_extra_query_params"
-    "test_build_api_url_w_custom_endpoint"
-  ];
-
-  preCheck = ''
-    rm -r google
-  '';
-
-  meta = with stdenv.lib; {
-    description = "Google Cloud Translation API client library";
-    homepage = "https://github.com/googleapis/python-translate";
-    license = licenses.asl20;
-    maintainers = [ maintainers.costrouc ];
-  };
-}
diff --git a/nixpkgs/pkgs/development/python-modules/google_cloud_videointelligence/default.nix b/nixpkgs/pkgs/development/python-modules/google_cloud_videointelligence/default.nix
deleted file mode 100644
index b823e105b843..000000000000
--- a/nixpkgs/pkgs/development/python-modules/google_cloud_videointelligence/default.nix
+++ /dev/null
@@ -1,31 +0,0 @@
-{ stdenv
-, buildPythonPackage
-, fetchPypi
-, google_api_core
-, pytest
-, mock
-}:
-
-buildPythonPackage rec {
-  pname = "google-cloud-videointelligence";
-  version = "2.0.0";
-
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "02a91a25b3890a743bde21e03abddf11dcaf7966cc44f09bc8d507f2e28f15fa";
-  };
-
-  checkInputs = [ pytest mock ];
-  propagatedBuildInputs = [ google_api_core ];
-
-  checkPhase = ''
-    pytest tests/unit
-  '';
-
-  meta = with stdenv.lib; {
-    description = "Google Cloud Video Intelligence API client library";
-    homepage = "https://github.com/GoogleCloudPlatform/google-cloud-python";
-    license = licenses.asl20;
-    maintainers = [ maintainers.costrouc ];
-  };
-}
diff --git a/nixpkgs/pkgs/development/python-modules/google_cloud_vision/default.nix b/nixpkgs/pkgs/development/python-modules/google_cloud_vision/default.nix
deleted file mode 100644
index fd738a522661..000000000000
--- a/nixpkgs/pkgs/development/python-modules/google_cloud_vision/default.nix
+++ /dev/null
@@ -1,33 +0,0 @@
-{ stdenv
-, buildPythonPackage
-, fetchPypi
-, enum34
-, google_api_core
-, mock
-}:
-
-buildPythonPackage rec {
-  pname = "google-cloud-vision";
-  version = "2.0.0";
-
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "6a067d9a661df2e9b356b2772051decfea1971f8d659c246412a165baf827c61";
-  };
-
-  checkInputs = [ mock ];
-  propagatedBuildInputs = [ enum34 google_api_core ];
-
-  # pytest seems to pick up some file which overrides PYTHONPATH
-  checkPhase = ''
-    cd tests/unit
-    python -m unittest discover
-  '';
-
-  meta = with stdenv.lib; {
-    description = "Cloud Vision API API client library";
-    homepage = "https://github.com/GoogleCloudPlatform/google-cloud-python";
-    license = licenses.asl20;
-    maintainers = [ maintainers.costrouc ];
-  };
-}
diff --git a/nixpkgs/pkgs/development/python-modules/google_cloud_websecurityscanner/default.nix b/nixpkgs/pkgs/development/python-modules/google_cloud_websecurityscanner/default.nix
deleted file mode 100644
index 356759f9bcb5..000000000000
--- a/nixpkgs/pkgs/development/python-modules/google_cloud_websecurityscanner/default.nix
+++ /dev/null
@@ -1,24 +0,0 @@
-{ stdenv, buildPythonPackage, fetchPypi, pytestCheckHook, pythonOlder
-, google_api_core, libcst, mock, proto-plus, pytest-asyncio }:
-
-buildPythonPackage rec {
-  pname = "google-cloud-websecurityscanner";
-  version = "1.0.0";
-
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "1de60f880487b898b499345f46f7acf38651f5356ebca8673116003a57f25393";
-  };
-
-  disabled = pythonOlder "3.6";
-
-  checkInputs = [ mock pytest-asyncio pytestCheckHook ];
-  propagatedBuildInputs = [ google_api_core libcst proto-plus ];
-
-  meta = with stdenv.lib; {
-    description = "Google Cloud Web Security Scanner API client library";
-    homepage = "https://github.com/googleapis/python-websecurityscanner";
-    license = licenses.asl20;
-    maintainers = [ maintainers.costrouc ];
-  };
-}
diff --git a/nixpkgs/pkgs/development/python-modules/google_resumable_media/default.nix b/nixpkgs/pkgs/development/python-modules/google_resumable_media/default.nix
deleted file mode 100644
index 37bfbfc481ba..000000000000
--- a/nixpkgs/pkgs/development/python-modules/google_resumable_media/default.nix
+++ /dev/null
@@ -1,38 +0,0 @@
-{ lib
-, buildPythonPackage
-, isPy3k
-, fetchPypi
-, six
-, requests
-, setuptools
-, pytest
-, mock
-, crcmod
-, google-crc32c
-}:
-
-buildPythonPackage rec {
-  pname = "google-resumable-media";
-  version = "1.1.0";
-
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "dcdab13e95bc534d268f87d5293e482cce5bc86dfce6ca0f2e2e89cbb73ef38c";
-  };
-
-  checkInputs = [ pytest mock ];
-  propagatedBuildInputs = [ requests setuptools six ]
-    ++ lib.optional isPy3k google-crc32c
-    ++ lib.optional (!isPy3k) crcmod;
-
-  checkPhase = ''
-    py.test tests/unit
-  '';
-
-  meta = with lib; {
-    description = "Utilities for Google Media Downloads and Resumable Uploads";
-    homepage = "https://github.com/GoogleCloudPlatform/google-resumable-media-python";
-    license = licenses.asl20;
-    maintainers = [ maintainers.costrouc ];
-  };
-}
diff --git a/nixpkgs/pkgs/development/python-modules/googleapis_common_protos/default.nix b/nixpkgs/pkgs/development/python-modules/googleapis_common_protos/default.nix
index 507c3ba229a6..7e5b786b4fba 100644
--- a/nixpkgs/pkgs/development/python-modules/googleapis_common_protos/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/googleapis_common_protos/default.nix
@@ -1,5 +1,10 @@
-{ stdenv, buildPythonPackage, fetchPypi
-, protobuf, pytest, setuptools }:
+{ lib, stdenv
+, buildPythonPackage
+, fetchPypi
+, grpc
+, protobuf
+, pytestCheckHook
+}:
 
 buildPythonPackage rec {
   pname = "googleapis-common-protos";
@@ -7,18 +12,26 @@ buildPythonPackage rec {
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "560716c807117394da12cecb0a54da5a451b5cf9866f1d37e9a5e2329a665351";
+    sha256 = "0lakcsd35qm5x4visvw6z5f1niasv9a0mjyf2bd98wqi0z41c1sn";
   };
 
-  propagatedBuildInputs = [ protobuf setuptools ];
-  checkInputs = [ pytest ];
+  propagatedBuildInputs = [ grpc protobuf ];
 
-  doCheck = false;  # there are no tests
+  # does not contain tests
+  doCheck = false;
 
-  meta = with stdenv.lib; {
+  pythonImportsCheck = [
+    "google.api"
+    "google.logging"
+    "google.longrunning"
+    "google.rpc"
+    "google.type"
+  ];
+
+  meta = with lib; {
     description = "Common protobufs used in Google APIs";
-    homepage = "https://github.com/googleapis/googleapis";
+    homepage = "https://github.com/googleapis/python-api-common-protos";
     license = licenses.asl20;
-    maintainers = with maintainers; [ ];
+    maintainers = with maintainers; [ SuperSandro2000 ];
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/googlemaps/default.nix b/nixpkgs/pkgs/development/python-modules/googlemaps/default.nix
index 7e13aedec475..c971119833e6 100644
--- a/nixpkgs/pkgs/development/python-modules/googlemaps/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/googlemaps/default.nix
@@ -1,6 +1,11 @@
-{ stdenv, buildPythonPackage, fetchFromGitHub
+{ lib, stdenv
+, buildPythonPackage
+, fetchFromGitHub
 , requests
-, responses, pytestCheckHook, pytest, pytestcov, isPy27
+, responses
+, pytestCheckHook
+, pytestcov
+, isPy27
 }:
 
 buildPythonPackage rec {
@@ -25,7 +30,7 @@ buildPythonPackage rec {
     "test_transit_without_time"
   ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://github.com/googlemaps/google-maps-services-python";
     description = "Python client library for Google Maps API Web Services";
     license = licenses.asl20;
diff --git a/nixpkgs/pkgs/development/python-modules/googletrans/default.nix b/nixpkgs/pkgs/development/python-modules/googletrans/default.nix
index 06d008200059..32b839ab11c2 100644
--- a/nixpkgs/pkgs/development/python-modules/googletrans/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/googletrans/default.nix
@@ -1,4 +1,4 @@
-{ lib, buildPythonPackage, fetchFromGitHub, requests, pytest, coveralls }:
+{ lib, buildPythonPackage, fetchFromGitHub, requests }:
 
 buildPythonPackage rec {
   pname = "googletrans";
@@ -11,17 +11,10 @@ buildPythonPackage rec {
     sha256 = "0wzzinn0k9rfv9z1gmfk9l4kljyd4n6kizsjw4wjxv91kfhj92hz";
   };
 
-  propagatedBuildInputs = [
-    requests
-  ];
-
-  checkInputs = [ pytest coveralls ];
+  propagatedBuildInputs = [ requests ];
 
   # majority of tests just try to ping Google's Translate API endpoint
   doCheck = false;
-  checkPhase = ''
-    pytest
-  '';
 
   pythonImportsCheck = [ "googletrans" ];
 
diff --git a/nixpkgs/pkgs/development/python-modules/gorilla/default.nix b/nixpkgs/pkgs/development/python-modules/gorilla/default.nix
index d93cddee765e..bf4212edc510 100644
--- a/nixpkgs/pkgs/development/python-modules/gorilla/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/gorilla/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi}:
+{ lib, stdenv, buildPythonPackage, fetchPypi}:
 
 buildPythonPackage rec {
   pname = "gorilla";
@@ -9,7 +9,7 @@ buildPythonPackage rec {
     sha256 = "feb2899b923935c25420b94aa8c266ccb5c0315199c685b725303a73195d802c";
   };
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://github.com/christophercrouzet/gorilla";
     description = "Convenient approach to monkey patching";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/gpapi/default.nix b/nixpkgs/pkgs/development/python-modules/gpapi/default.nix
index 1181c59c1fc4..788473b5ab8f 100644
--- a/nixpkgs/pkgs/development/python-modules/gpapi/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/gpapi/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi, pythonOlder
+{ lib, stdenv, buildPythonPackage, fetchPypi, pythonOlder
 , requests
 , protobuf
 , pycryptodome
@@ -16,7 +16,7 @@ buildPythonPackage rec {
 
   propagatedBuildInputs = [ requests protobuf pycryptodome ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://github.com/NoMore201/googleplay-api";
     license = licenses.gpl3;
     description = "Google Play Unofficial Python API";
diff --git a/nixpkgs/pkgs/development/python-modules/gphoto2/default.nix b/nixpkgs/pkgs/development/python-modules/gphoto2/default.nix
index 2834fc5a735d..0dd68918aed6 100644
--- a/nixpkgs/pkgs/development/python-modules/gphoto2/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/gphoto2/default.nix
@@ -1,5 +1,5 @@
-{ stdenv, fetchPypi, buildPythonPackage
-, pkgconfig
+{ lib, stdenv, fetchPypi, buildPythonPackage
+, pkg-config
 , libgphoto2 }:
 
 buildPythonPackage rec {
@@ -11,13 +11,13 @@ buildPythonPackage rec {
     sha256 = "48b4c4ab70826d3ddaaf7440564d513c02d78680fa690994b0640d383ffb8a7d";
   };
 
-  nativeBuildInputs = [ pkgconfig ];
+  nativeBuildInputs = [ pkg-config ];
 
   buildInputs = [ libgphoto2 ];
 
   doCheck = false; # No tests available
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Python interface to libgphoto2";
     homepage = "https://github.com/jim-easterbrook/python-gphoto2";
     license = licenses.gpl3;
diff --git a/nixpkgs/pkgs/development/python-modules/gplaycli/default.nix b/nixpkgs/pkgs/development/python-modules/gplaycli/default.nix
index 7e7403239010..ecd52ad848c9 100644
--- a/nixpkgs/pkgs/development/python-modules/gplaycli/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/gplaycli/default.nix
@@ -1,4 +1,4 @@
-{ buildPythonPackage, stdenv, libffi, isPy3k, pyasn1, clint, ndg-httpsclient
+{ buildPythonPackage, lib, stdenv, libffi, isPy3k, pyasn1, clint, ndg-httpsclient
 , protobuf, requests, args, gpapi, pyaxmlparser, fetchFromGitHub
 }:
 
@@ -17,7 +17,7 @@ buildPythonPackage rec {
 
   propagatedBuildInputs = [ libffi pyasn1 clint ndg-httpsclient protobuf requests args gpapi pyaxmlparser ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://github.com/matlink/gplaycli";
     description = "Google Play Downloader via Command line";
     license = licenses.agpl3Plus;
diff --git a/nixpkgs/pkgs/development/python-modules/gps3/default.nix b/nixpkgs/pkgs/development/python-modules/gps3/default.nix
new file mode 100644
index 000000000000..76321182dcb6
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/gps3/default.nix
@@ -0,0 +1,27 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+}:
+
+buildPythonPackage rec {
+  pname = "gps3";
+  version = "0.33.3";
+
+  src = fetchFromGitHub {
+    owner = "onkelbeh";
+    repo = pname;
+    rev = version;
+    sha256 = "0a0qpk7d2b1cld58qcdn6bxrkil6ascs51af01dy4p83062h1hi6";
+  };
+
+  # Project has no tests
+  doCheck = false;
+  pythonImportsCheck = [ "gps3" ];
+
+  meta = with lib; {
+    description = "Python client for GPSD";
+    homepage = "https://github.com/onkelbeh/gps3";
+    license = with licenses; [ mit ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/gpsoauth/default.nix b/nixpkgs/pkgs/development/python-modules/gpsoauth/default.nix
index 57130a7aa529..2c4dfcd81395 100644
--- a/nixpkgs/pkgs/development/python-modules/gpsoauth/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/gpsoauth/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , cffi
@@ -26,7 +26,7 @@ buildPythonPackage rec {
 
   propagatedBuildInputs = [ cffi cryptography enum34 idna ipaddress ndg-httpsclient pyopenssl pyasn1 pycparser pycryptodomex requests six ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "A python client library for Google Play Services OAuth";
     homepage = "https://github.com/simon-weber/gpsoauth";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/gpy/default.nix b/nixpkgs/pkgs/development/python-modules/gpy/default.nix
index e4a20bc83d72..9c444f465f30 100644
--- a/nixpkgs/pkgs/development/python-modules/gpy/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/gpy/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , numpy
@@ -43,7 +43,7 @@ buildPythonPackage rec {
     "GPy"
   ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Gaussian process framework in Python";
     homepage = "https://sheffieldml.github.io/GPy";
     license = licenses.bsd3;
diff --git a/nixpkgs/pkgs/development/python-modules/gpyopt/default.nix b/nixpkgs/pkgs/development/python-modules/gpyopt/default.nix
index 67f934ccf053..22e6743582c2 100644
--- a/nixpkgs/pkgs/development/python-modules/gpyopt/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/gpyopt/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchFromGitHub, setuptools
+{ lib, stdenv, buildPythonPackage, fetchFromGitHub, setuptools
 , numpy, scipy, gpy, emcee, nose }:
 
 buildPythonPackage rec {
@@ -20,7 +20,7 @@ buildPythonPackage rec {
 
   propagatedBuildInputs = [ setuptools numpy scipy gpy emcee ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Bayesian optimization toolbox in Python";
     homepage = "https://sheffieldml.github.io/GPyOpt";
     license = licenses.bsd3;
diff --git a/nixpkgs/pkgs/development/python-modules/gradient_sdk/default.nix b/nixpkgs/pkgs/development/python-modules/gradient_sdk/default.nix
index 3ee66a1c5242..adaafd8eadbe 100644
--- a/nixpkgs/pkgs/development/python-modules/gradient_sdk/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/gradient_sdk/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchPypi, buildPythonPackage
+{ lib, stdenv, fetchPypi, buildPythonPackage
 , hyperopt
 }:
 
@@ -15,7 +15,7 @@ buildPythonPackage rec {
 
   pythonImportsCheck = [ "gradient_sdk" ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Gradient ML SDK";
     homepage    = "https://github.com/Paperspace/gradient-sdk";
     license     = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/gradient_statsd/default.nix b/nixpkgs/pkgs/development/python-modules/gradient_statsd/default.nix
index 14623ff625f5..607737d99ae0 100644
--- a/nixpkgs/pkgs/development/python-modules/gradient_statsd/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/gradient_statsd/default.nix
@@ -19,7 +19,7 @@ buildPythonPackage rec {
   # Pypi does not contain tests
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Wrapper around the DogStatsd client";
     homepage    = "https://paperspace.com";
     license     = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/graphene/default.nix b/nixpkgs/pkgs/development/python-modules/graphene/default.nix
new file mode 100644
index 000000000000..301ffca03477
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/graphene/default.nix
@@ -0,0 +1,50 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, aniso8601
+, iso8601
+, graphql-core
+, graphql-relay
+, pytestCheckHook
+, pytest-asyncio
+, pytest-benchmark
+, pytest-mock
+, pytz
+, snapshottest
+}:
+
+buildPythonPackage rec {
+  pname = "graphene";
+  version = "3.0.0b7";
+
+  src = fetchFromGitHub {
+    owner = "graphql-python";
+    repo = "graphene";
+    rev = "v${version}";
+    sha256 = "sha256-bVCCLPnV5F8PqLMg3GwcpwpGldrxsU+WryL6gj6y338=";
+  };
+
+  propagatedBuildInputs = [
+    aniso8601
+    graphql-core
+    graphql-relay
+  ];
+
+  checkInputs = [
+    pytestCheckHook
+    pytest-asyncio
+    pytest-benchmark
+    pytest-mock
+    pytz
+    snapshottest
+  ];
+
+  pythonImportsCheck = [ "graphene" ];
+
+  meta = with lib; {
+    description = "GraphQL Framework for Python";
+    homepage = "https://github.com/graphql-python/graphene";
+    license = licenses.mit;
+    maintainers = with maintainers; [ SuperSandro2000 ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/graphite-web/default.nix b/nixpkgs/pkgs/development/python-modules/graphite-web/default.nix
index 16341e718084..0bced13cd112 100644
--- a/nixpkgs/pkgs/development/python-modules/graphite-web/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/graphite-web/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi, isPy3k
+{ lib, stdenv, buildPythonPackage, fetchPypi, isPy3k
 , django, django_tagging, whisper, pycairo, cairocffi, ldap, memcached, pytz, urllib3, scandir
 }:
 buildPythonPackage rec {
@@ -28,7 +28,7 @@ buildPythonPackage rec {
       --replace "join(WEBAPP_DIR, 'content')" "join('$out', 'webapp', 'content')"
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "http://graphiteapp.org/";
     description = "Enterprise scalable realtime graphing";
     maintainers = with maintainers; [ offline basvandijk ];
diff --git a/nixpkgs/pkgs/development/python-modules/graphite_beacon/default.nix b/nixpkgs/pkgs/development/python-modules/graphite_beacon/default.nix
index cc070f55323c..06b66ccbc145 100644
--- a/nixpkgs/pkgs/development/python-modules/graphite_beacon/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/graphite_beacon/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi
+{ lib, stdenv, buildPythonPackage, fetchPypi
 , tornado_5, pyyaml, funcparserlib
 , nixosTests
 }:
@@ -24,7 +24,7 @@ buildPythonPackage rec {
     nixos = nixosTests.graphite;
   };
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "A simple alerting application for Graphite metrics";
     homepage = "https://github.com/klen/graphite-beacon";
     maintainers = [ maintainers.offline ];
diff --git a/nixpkgs/pkgs/development/python-modules/graphql-relay/default.nix b/nixpkgs/pkgs/development/python-modules/graphql-relay/default.nix
new file mode 100644
index 000000000000..fa6a9ec60a73
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/graphql-relay/default.nix
@@ -0,0 +1,24 @@
+{ lib, buildPythonPackage, fetchPypi, graphql-core, pytestCheckHook }:
+
+buildPythonPackage rec {
+  pname = "graphql-relay";
+  version = "3.0.0";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "0mjmpf4abrxfyln0ykxq4xa6lp7xwgqr8631qp011hv0nfl6jgxd";
+  };
+
+  propagatedBuildInputs = [ graphql-core ];
+
+  checkInputs = [ pytestCheckHook ];
+
+  pythonImportsCheck = [ "graphql_relay" ];
+
+  meta = with lib; {
+    description = "A library to help construct a graphql-py server supporting react-relay";
+    homepage = "https://github.com/graphql-python/graphql-relay-py/";
+    license = licenses.mit;
+    maintainers = with maintainers; [ SuperSandro2000 ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/graphviz/default.nix b/nixpkgs/pkgs/development/python-modules/graphviz/default.nix
index f531c547f9cc..1a0e6d903a47 100644
--- a/nixpkgs/pkgs/development/python-modules/graphviz/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/graphviz/default.nix
@@ -6,21 +6,21 @@
 , makeFontsConf
 , freefont_ttf
 , mock
-, pytest
+, pytestCheckHook
 , pytest-mock
 , pytestcov
 }:
 
 buildPythonPackage rec {
   pname = "graphviz";
-  version = "0.14.1";
+  version = "0.16";
 
   # patch does not apply to PyPI tarball due to different line endings
   src = fetchFromGitHub {
     owner = "xflr6";
     repo = "graphviz";
     rev = version;
-    sha256 = "02bdiac5x93f2mjw5kpgs6kv81hzg07y0mw1nxvhyg8aignzmh3c";
+    sha256 = "147vi60mi57z623lhllwwzczzicv2iwj1yrmllj5xx5788i73j6g";
   };
 
   patches = [
@@ -35,11 +35,7 @@ buildPythonPackage rec {
     fontDirectories = [ freefont_ttf ];
   };
 
-  checkInputs = [ mock pytest pytest-mock pytestcov ];
-
-  checkPhase = ''
-    pytest
-  '';
+  checkInputs = [ mock pytestCheckHook pytest-mock pytestcov ];
 
   meta = with lib; {
     description = "Simple Python interface for Graphviz";
diff --git a/nixpkgs/pkgs/development/python-modules/graphviz/hardcode-graphviz-path.patch b/nixpkgs/pkgs/development/python-modules/graphviz/hardcode-graphviz-path.patch
index d6da1ff47ce7..fa2f634bbc29 100644
--- a/nixpkgs/pkgs/development/python-modules/graphviz/hardcode-graphviz-path.patch
+++ b/nixpkgs/pkgs/development/python-modules/graphviz/hardcode-graphviz-path.patch
@@ -1,19 +1,28 @@
 diff --git a/graphviz/backend.py b/graphviz/backend.py
-index 6f4cc0c..bc4781e 100644
+index d2c4b97..f7175cd 100644
 --- a/graphviz/backend.py
 +++ b/graphviz/backend.py
 @@ -122,7 +122,7 @@ def command(engine, format_, filepath=None, renderer=None, formatter=None):
          raise ValueError('unknown formatter: %r' % formatter)
  
      output_format = [f for f in (format_, renderer, formatter) if f is not None]
--    cmd = [engine, '-T%s' % ':'.join(output_format)]
-+    cmd = [os.path.join('@graphviz@/bin', engine), '-T%s' % ':'.join(output_format)]
+-    cmd = ['dot', '-K%s' % engine, '-T%s' % ':'.join(output_format)]
++    cmd = ['@graphviz@/bin/dot', '-K%s' % engine, '-T%s' % ':'.join(output_format)]
  
      if filepath is None:
          rendered = None
-@@ -255,7 +255,7 @@ def version():
-         subprocess.CalledProcessError: If the exit status is non-zero.
-         RuntimmeError: If the output cannot be parsed into a version number.
+@@ -275,7 +275,7 @@ def unflatten(source,
+     if fanout and stagger is None:
+         raise RequiredArgumentError('fanout given without stagger')
+ 
+-    cmd = ['unflatten']
++    cmd = ['@graphviz@/bin/unflatten']
+     if stagger is not None:
+         cmd += ['-l', str(stagger)]
+     if fanout:
+@@ -304,7 +304,7 @@ def version():
+         Graphviz Release version entry format
+         https://gitlab.com/graphviz/graphviz/-/blob/f94e91ba819cef51a4b9dcb2d76153684d06a913/gen_version.py#L17-20
      """
 -    cmd = ['dot', '-V']
 +    cmd = ['@graphviz@/bin/dot', '-V']
@@ -21,10 +30,10 @@ index 6f4cc0c..bc4781e 100644
                   stdout=subprocess.PIPE,
                   stderr=subprocess.STDOUT)
 diff --git a/tests/test_backend.py b/tests/test_backend.py
-index 9f307f5..e43bf5b 100644
+index d10ef1a..e4aba58 100644
 --- a/tests/test_backend.py
 +++ b/tests/test_backend.py
-@@ -50,7 +50,7 @@ def test_run_encoding_mocked(mocker, Popen, input=u'sp\xe4m', encoding='utf-8'):
+@@ -52,7 +52,7 @@ def test_run_encoding_mocked(mocker, Popen, input=u'sp\xe4m', encoding='utf-8'):
          m.decode.assert_called_once_with(encoding)
  
  
@@ -33,34 +42,43 @@ index 9f307f5..e43bf5b 100644
  @pytest.mark.usefixtures('empty_path')
  @pytest.mark.parametrize('func, args', [
      (render, ['dot', 'pdf', 'nonfilepath']),
-@@ -143,7 +143,7 @@ def test_render_mocked(capsys, mocker, Popen, quiet):  # noqa: N803
+@@ -146,7 +146,7 @@ def test_render_mocked(capsys, mocker, Popen, quiet):  # noqa: N803
  
      assert render('dot', 'pdf', 'nonfilepath', quiet=quiet) == 'nonfilepath.pdf'
  
--    Popen.assert_called_once_with(['dot', '-Tpdf', '-O', 'nonfilepath'],
-+    Popen.assert_called_once_with(['@graphviz@/bin/dot', '-Tpdf', '-O', 'nonfilepath'],
+-    Popen.assert_called_once_with(['dot', '-Kdot', '-Tpdf', '-O', 'nonfilepath'],
++    Popen.assert_called_once_with(['@graphviz@/bin/dot', '-Kdot', '-Tpdf', '-O', 'nonfilepath'],
                                    stdout=subprocess.PIPE,
                                    stderr=subprocess.PIPE,
                                    cwd=None, startupinfo=mocker.ANY)
-@@ -201,7 +201,7 @@ def test_pipe_pipe_invalid_data_mocked(mocker, py2, Popen, quiet):  # noqa: N803
+@@ -208,7 +208,7 @@ def test_pipe_pipe_invalid_data_mocked(mocker, py2, Popen, quiet):  # noqa: N803
      assert e.value.stdout is mocker.sentinel.out
      e.value.stdout = mocker.sentinel.new_stdout
      assert e.value.stdout is mocker.sentinel.new_stdout
--    Popen.assert_called_once_with(['dot', '-Tpng'],
-+    Popen.assert_called_once_with(['@graphviz@/bin/dot', '-Tpng'],
+-    Popen.assert_called_once_with(['dot', '-Kdot', '-Tpng'],
++    Popen.assert_called_once_with(['@graphviz@/bin/dot', '-Kdot', '-Tpng'],
                                    stdin=subprocess.PIPE,
                                    stdout=subprocess.PIPE,
                                    stderr=subprocess.PIPE,
-@@ -224,7 +224,7 @@ def test_pipe_mocked(capsys, mocker, Popen, quiet):  # noqa: N803
+@@ -231,7 +231,7 @@ def test_pipe_mocked(capsys, mocker, Popen, quiet):  # noqa: N803
  
      assert pipe('dot', 'png', b'nongraph', quiet=quiet) is mocker.sentinel.out
  
--    Popen.assert_called_once_with(['dot', '-Tpng'],
-+    Popen.assert_called_once_with(['@graphviz@/bin/dot', '-Tpng'],
+-    Popen.assert_called_once_with(['dot', '-Kdot', '-Tpng'],
++    Popen.assert_called_once_with(['@graphviz@/bin/dot', '-Kdot', '-Tpng'],
+                                   stdin=subprocess.PIPE,
+                                   stdout=subprocess.PIPE,
+                                   stderr=subprocess.PIPE,
+@@ -259,7 +259,7 @@ def test_unflatten_mocked(capsys, mocker, Popen):
+     proc.communicate.return_value = (b'nonresult', b'')
+ 
+     assert unflatten('nonsource') == 'nonresult'
+-    Popen.assert_called_once_with(['unflatten'],
++    Popen.assert_called_once_with(['@graphviz@/bin/unflatten'],
                                    stdin=subprocess.PIPE,
                                    stdout=subprocess.PIPE,
                                    stderr=subprocess.PIPE,
-@@ -250,7 +250,7 @@ def test_version_parsefail_mocked(mocker, Popen):  # noqa: N803
+@@ -290,7 +290,7 @@ def test_version_parsefail_mocked(mocker, Popen):  # noqa: N803
      with pytest.raises(RuntimeError, match=r'nonversioninfo'):
          version()
  
@@ -69,7 +87,7 @@ index 9f307f5..e43bf5b 100644
                                    stdout=subprocess.PIPE,
                                    stderr=subprocess.STDOUT,
                                    startupinfo=mocker.ANY)
-@@ -269,7 +269,7 @@ def test_version_mocked(mocker, Popen, stdout, expected):  # noqa: N803
+@@ -312,7 +312,7 @@ def test_version_mocked(mocker, Popen, stdout, expected):  # noqa: N803
  
      assert version() == expected
  
diff --git a/nixpkgs/pkgs/development/python-modules/grappelli_safe/default.nix b/nixpkgs/pkgs/development/python-modules/grappelli_safe/default.nix
index 299ce04f6fa2..7b2dd7e3fedd 100644
--- a/nixpkgs/pkgs/development/python-modules/grappelli_safe/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/grappelli_safe/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 }:
@@ -12,7 +12,7 @@ buildPythonPackage rec {
     sha256 = "35b7ccaf9acc54684c73aeefbeaddc63b8a16143bd981bd5b3ebef253def07df";
   };
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "A snapshot of django-grappelli for the Mezzanine CMS";
     longDescription = ''
       grappelli_safe was created to provide a snapshot of the
diff --git a/nixpkgs/pkgs/development/python-modules/grequests/default.nix b/nixpkgs/pkgs/development/python-modules/grequests/default.nix
index 34e8c7ff16ff..5ce5df8cdea2 100644
--- a/nixpkgs/pkgs/development/python-modules/grequests/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/grequests/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , requests
@@ -19,7 +19,7 @@ buildPythonPackage rec {
 
   propagatedBuildInputs = [ requests gevent ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Asynchronous HTTP requests";
     homepage = "https://github.com/kennethreitz/grequests";
     license = with licenses; [ bsd2 ];
diff --git a/nixpkgs/pkgs/development/python-modules/grip/default.nix b/nixpkgs/pkgs/development/python-modules/grip/default.nix
index cf29b11b268e..019cd798d640 100644
--- a/nixpkgs/pkgs/development/python-modules/grip/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/grip/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , fetchFromGitHub
 , fetchpatch
 # Python bits:
@@ -42,7 +42,7 @@ buildPythonPackage rec {
       py.test -xm "not assumption"
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Preview GitHub Markdown files like Readme locally before committing them";
     homepage = "https://github.com/joeyespo/grip";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/grpc_google_iam_v1/default.nix b/nixpkgs/pkgs/development/python-modules/grpc_google_iam_v1/default.nix
index caa3b8cafb4c..dd9527006dad 100644
--- a/nixpkgs/pkgs/development/python-modules/grpc_google_iam_v1/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/grpc_google_iam_v1/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , grpcio
@@ -22,7 +22,7 @@ buildPythonPackage rec {
   doCheck = false;
   checkInputs = [ pytest ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "GRPC library for the google-iam-v1 service";
     homepage = "https://github.com/googleapis/googleapis";
     license = licenses.asl20;
diff --git a/nixpkgs/pkgs/development/python-modules/grpcio-gcp/default.nix b/nixpkgs/pkgs/development/python-modules/grpcio-gcp/default.nix
index 6af70be2f6cb..1b631c0973ed 100644
--- a/nixpkgs/pkgs/development/python-modules/grpcio-gcp/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/grpcio-gcp/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , grpcio
@@ -15,7 +15,7 @@ buildPythonPackage rec {
 
   propagatedBuildInputs = [ grpcio ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "gRPC extensions for Google Cloud Platform";
     homepage = "https://grpc.io";
     license = licenses.asl20;
diff --git a/nixpkgs/pkgs/development/python-modules/grpcio-tools/default.nix b/nixpkgs/pkgs/development/python-modules/grpcio-tools/default.nix
index 417b9d82e2e2..629c51071abd 100644
--- a/nixpkgs/pkgs/development/python-modules/grpcio-tools/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/grpcio-tools/default.nix
@@ -1,12 +1,12 @@
-{ stdenv, buildPythonPackage, fetchPypi, protobuf, grpcio, setuptools }:
+{ lib, buildPythonPackage, fetchPypi, protobuf, grpcio, setuptools }:
 
 buildPythonPackage rec {
   pname = "grpcio-tools";
-  version = "1.34.0";
+  version = "1.34.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "db5a6f0130256d534cbe35eab37d37a448d96f4fd736e5051c6be1aee49cea1d";
+    sha256 = "b411f36748f4ead33411544d785e37825598bbb8abbe79eca422e395be5a3d08";
   };
 
   outputs = [ "out" "dev" ];
@@ -18,7 +18,9 @@ buildPythonPackage rec {
   # no tests in the package
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  pythonImportsCheck = [ "grpc_tools" ];
+
+  meta = with lib; {
     description = "Protobuf code generator for gRPC";
     license = licenses.asl20;
     homepage = "https://grpc.io/grpc/python/";
diff --git a/nixpkgs/pkgs/development/python-modules/grpcio/default.nix b/nixpkgs/pkgs/development/python-modules/grpcio/default.nix
index 55d569c90547..1b1ffb975fb6 100644
--- a/nixpkgs/pkgs/development/python-modules/grpcio/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/grpcio/default.nix
@@ -1,6 +1,18 @@
-{ stdenv, buildPythonPackage, darwin, grpc
-, six, protobuf, enum34, futures, isPy27, pkgconfig
-, cython, c-ares, openssl, zlib }:
+{ lib, stdenv
+, buildPythonPackage
+, darwin
+, grpc
+, six
+, protobuf
+, enum34
+, futures
+, isPy27
+, pkg-config
+, cython
+, c-ares
+, openssl
+, zlib
+}:
 
 buildPythonPackage rec {
   inherit (grpc) src version;
@@ -8,24 +20,29 @@ buildPythonPackage rec {
 
   outputs = [ "out" "dev" ];
 
-  nativeBuildInputs = [ cython pkgconfig ]
-                    ++ stdenv.lib.optional stdenv.isDarwin darwin.cctools;
+  nativeBuildInputs = [ cython pkg-config ]
+    ++ lib.optional stdenv.isDarwin darwin.cctools;
 
   buildInputs = [ c-ares openssl zlib ];
   propagatedBuildInputs = [ six protobuf ]
-                        ++ stdenv.lib.optionals (isPy27) [ enum34 futures ];
+    ++ lib.optionals (isPy27) [ enum34 futures ];
 
-  preBuild = stdenv.lib.optionalString stdenv.isDarwin "unset AR";
+  preBuild = lib.optionalString stdenv.isDarwin "unset AR";
 
   GRPC_BUILD_WITH_BORING_SSL_ASM = "";
   GRPC_PYTHON_BUILD_SYSTEM_OPENSSL = 1;
   GRPC_PYTHON_BUILD_SYSTEM_ZLIB = 1;
   GRPC_PYTHON_BUILD_SYSTEM_CARES = 1;
 
-  meta = with stdenv.lib; {
+  # does not contain any tests
+  doCheck = false;
+
+  pythonImportsCheck = [ "grpc" ];
+
+  meta = with lib; {
     description = "HTTP/2-based RPC framework";
     license = licenses.asl20;
     homepage = "https://grpc.io/grpc/python/";
-    maintainers = with maintainers; [ ];
+    maintainers = with maintainers; [ SuperSandro2000 ];
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/gsd/1.7.nix b/nixpkgs/pkgs/development/python-modules/gsd/1.7.nix
index 6e6f0504aa72..0512a4906a27 100644
--- a/nixpkgs/pkgs/development/python-modules/gsd/1.7.nix
+++ b/nixpkgs/pkgs/development/python-modules/gsd/1.7.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , numpy
@@ -18,7 +18,7 @@ buildPythonPackage rec {
   # tests not packaged with gsd
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://bitbucket.org/glotzer/gsd";
     description = "General simulation data file format";
     license = licenses.bsd2;
diff --git a/nixpkgs/pkgs/development/python-modules/gspread/default.nix b/nixpkgs/pkgs/development/python-modules/gspread/default.nix
index 5fd73541dd42..7cf2a8c8df11 100644
--- a/nixpkgs/pkgs/development/python-modules/gspread/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/gspread/default.nix
@@ -1,8 +1,8 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , requests
-, google_auth
+, google-auth
 , google-auth-oauthlib
 }:
 
@@ -15,9 +15,9 @@ buildPythonPackage rec {
     sha256 = "e04f1a6267b3929fc1600424c5ec83906d439672cafdd61a9d5b916a139f841c";
   };
 
-  propagatedBuildInputs = [ requests google_auth google-auth-oauthlib ];
+  propagatedBuildInputs = [ requests google-auth google-auth-oauthlib ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Google Spreadsheets client library";
     homepage = "https://github.com/burnash/gspread";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/gst-python/default.nix b/nixpkgs/pkgs/development/python-modules/gst-python/default.nix
index c66ceedc3cee..9ff8434cc9aa 100644
--- a/nixpkgs/pkgs/development/python-modules/gst-python/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/gst-python/default.nix
@@ -1,9 +1,10 @@
-{ buildPythonPackage
+{ lib
+, buildPythonPackage
 , fetchurl
 , meson
 , ninja
 , stdenv
-, pkgconfig
+, pkg-config
 , python3
 , pygobject3
 , gobject-introspection
@@ -30,7 +31,7 @@ buildPythonPackage rec {
   nativeBuildInputs = [
     meson
     ninja
-    pkgconfig
+    pkg-config
     python3
     gobject-introspection
     gst-plugins-base
@@ -51,11 +52,9 @@ buildPythonPackage rec {
   # https://github.com/NixOS/nixpkgs/issues/47390
   installCheckPhase = "meson test --print-errorlogs";
 
-  meta = {
+  meta = with lib; {
     homepage = "https://gstreamer.freedesktop.org";
-
     description = "Python bindings for GStreamer";
-
-    license = stdenv.lib.licenses.lgpl2Plus;
+    license = licenses.lgpl2Plus;
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/gtimelog/default.nix b/nixpkgs/pkgs/development/python-modules/gtimelog/default.nix
index c092da735854..3af8e97ba71b 100644
--- a/nixpkgs/pkgs/development/python-modules/gtimelog/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/gtimelog/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchFromGitHub, makeWrapper
+{ lib, stdenv, fetchFromGitHub, makeWrapper
 , glibcLocales, gobject-introspection, gtk3, libsoup, libsecret
 , buildPythonPackage, python
 , pygobject3, freezegun, mock
@@ -37,7 +37,7 @@ buildPythonPackage rec {
       --prefix LD_LIBRARY_PATH ":" "${gtk3.out}/lib" \
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "A time tracking app";
     longDescription = ''
       GTimeLog is a small time tracking application for GNOME.
diff --git a/nixpkgs/pkgs/development/python-modules/guestfs/default.nix b/nixpkgs/pkgs/development/python-modules/guestfs/default.nix
index a446166c2917..23a2545525a3 100644
--- a/nixpkgs/pkgs/development/python-modules/guestfs/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/guestfs/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchurl, libguestfs, qemu }:
+{ lib, stdenv, buildPythonPackage, fetchurl, libguestfs, qemu }:
 
 buildPythonPackage rec {
   pname = "guestfs";
@@ -11,7 +11,11 @@ buildPythonPackage rec {
 
   propagatedBuildInputs = [ libguestfs qemu ];
 
-  meta = with stdenv.lib; {
+  # no tests
+  doCheck = false;
+  pythonImportsCheck = [ "guestfs" ];
+
+  meta = with lib; {
     homepage = "https://libguestfs.org/guestfs-python.3.html";
     description = "Use libguestfs from Python";
     license = licenses.lgpl2Plus;
diff --git a/nixpkgs/pkgs/development/python-modules/gumath/default.nix b/nixpkgs/pkgs/development/python-modules/gumath/default.nix
index ccf1627d7f32..601aecdf331c 100644
--- a/nixpkgs/pkgs/development/python-modules/gumath/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/gumath/default.nix
@@ -1,4 +1,5 @@
-{ stdenv
+{ lib
+, stdenv
 , buildPythonPackage
 , python
 , numba
@@ -28,7 +29,7 @@ buildPythonPackage {
                 'add_runtime_library_dirs = ["${libndtypes}/lib", "${libxnd}/lib", "${libgumath}/lib"]'
   '';
 
-  postInstall = stdenv.lib.optionalString stdenv.isDarwin ''
+  postInstall = lib.optionalString stdenv.isDarwin ''
     install_name_tool -add_rpath ${libgumath}/lib $out/${python.sitePackages}/gumath/_gumath.*.so
   '';
 
diff --git a/nixpkgs/pkgs/development/python-modules/gunicorn/19.nix b/nixpkgs/pkgs/development/python-modules/gunicorn/19.nix
index f9681eef97e3..c1091fa980c9 100644
--- a/nixpkgs/pkgs/development/python-modules/gunicorn/19.nix
+++ b/nixpkgs/pkgs/development/python-modules/gunicorn/19.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi
+{ lib, stdenv, buildPythonPackage, fetchPypi
 , coverage
 , mock
 , pytest
@@ -31,7 +31,7 @@ buildPythonPackage rec {
 
   pythonImportsCheck = [ "gunicorn" ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://github.com/benoitc/gunicorn";
     description = "WSGI HTTP Server for UNIX";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/gunicorn/default.nix b/nixpkgs/pkgs/development/python-modules/gunicorn/default.nix
index 8bdc42969032..983335f4395b 100644
--- a/nixpkgs/pkgs/development/python-modules/gunicorn/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/gunicorn/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi, isPy27
+{ lib, stdenv, buildPythonPackage, fetchPypi, isPy27
 , coverage
 , mock
 , pytest
@@ -32,7 +32,7 @@ buildPythonPackage rec {
 
   pythonImportsCheck = [ "gunicorn" ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://github.com/benoitc/gunicorn";
     description = "WSGI HTTP Server for UNIX";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/guzzle_sphinx_theme/default.nix b/nixpkgs/pkgs/development/python-modules/guzzle_sphinx_theme/default.nix
index 7b4498afb2c5..f70625b86fe2 100644
--- a/nixpkgs/pkgs/development/python-modules/guzzle_sphinx_theme/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/guzzle_sphinx_theme/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, sphinx, fetchPypi }:
+{ lib, stdenv, buildPythonPackage, sphinx, fetchPypi }:
 
 buildPythonPackage rec {
   pname = "guzzle_sphinx_theme";
@@ -12,7 +12,7 @@ buildPythonPackage rec {
 
   propagatedBuildInputs = [ sphinx ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Sphinx theme used by Guzzle: http://guzzlephp.org";
     homepage = "https://github.com/guzzle/guzzle_sphinx_theme/";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/gviz-api/default.nix b/nixpkgs/pkgs/development/python-modules/gviz-api/default.nix
new file mode 100644
index 000000000000..fabc2d147fca
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/gviz-api/default.nix
@@ -0,0 +1,26 @@
+{ lib, fetchPypi, buildPythonPackage
+, six
+}:
+
+buildPythonPackage rec {
+  pname = "gviz_api";
+  version = "1.9.0";
+  format = "wheel";
+
+  src = fetchPypi {
+    inherit pname version;
+    format = "wheel";
+    sha256 = "1yag559lpmwfdxpxn679a6ajifcbpgljr5n6k5b7rrj38k2xq7jg";
+  };
+
+  propagatedBuildInputs = [
+    six
+  ];
+
+  meta = with lib; {
+    description = "Python API for Google Visualization";
+    homepage = https://developers.google.com/chart/interactive/docs/dev/gviz_api_lib;
+    license = licenses.asl20;
+    maintainers = with maintainers; [ ndl ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/gyp/default.nix b/nixpkgs/pkgs/development/python-modules/gyp/default.nix
index c951c97b20f4..5be56c81257a 100644
--- a/nixpkgs/pkgs/development/python-modules/gyp/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/gyp/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchFromGitiles
 , isPy3k
@@ -14,12 +14,12 @@ buildPythonPackage {
     sha256 = "0r9phq5yrmj968vdvy9vivli35wn1j9a6iwshp69wl7q4p0x8q2b";
   };
 
-  patches = stdenv.lib.optionals stdenv.isDarwin [
+  patches = lib.optionals stdenv.isDarwin [
     ./no-darwin-cflags.patch
     ./no-xcode.patch
   ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "A tool to generate native build files";
     homepage = "https://chromium.googlesource.com/external/gyp/+/master/README.md";
     license = licenses.bsd3;
diff --git a/nixpkgs/pkgs/development/python-modules/h11/default.nix b/nixpkgs/pkgs/development/python-modules/h11/default.nix
index 28461311021f..f3d37dacfa3c 100644
--- a/nixpkgs/pkgs/development/python-modules/h11/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/h11/default.nix
@@ -1,33 +1,26 @@
-{ lib, buildPythonPackage, fetchPypi, pytest, fetchpatch }:
+{ lib
+, buildPythonPackage
+, fetchPypi
+, pytestCheckHook
+}:
 
 buildPythonPackage rec {
   pname = "h11";
-  version = "0.9.0";
+  version = "0.12.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1qfad70h59hya21vrzz8dqyyaiqhac0anl2dx3s3k80gpskvrm1k";
+    sha256 = "0hk0nll6qazsambp3kl8cxxsbl4gv5y9252qadyk0jky0sv2q8j7";
   };
 
-  patches = [
-    # pytest5 compatability
-    (fetchpatch {
-      url = "https://github.com/python-hyper/h11/commit/241e220493a511a5f5a5d472cb88d72661a92ab1.patch";
-      sha256 = "1s3ipf9s41m1lksws3xv3j133q7jnjdqvmgk4sfnm8q7li2dww39";
-    })
-  ];
-
-  checkInputs = [ pytest ];
-
-  checkPhase = ''
-    py.test
-  '';
+  checkInputs = [ pytestCheckHook ];
 
   # Some of the tests use localhost networking.
   __darwinAllowLocalNetworking = true;
 
   meta = with lib; {
     description = "Pure-Python, bring-your-own-I/O implementation of HTTP/1.1";
+    homepage = "https://github.com/python-hyper/h11";
     license = licenses.mit;
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/h2/default.nix b/nixpkgs/pkgs/development/python-modules/h2/default.nix
index 7597abbe0f9e..6dad775732c0 100644
--- a/nixpkgs/pkgs/development/python-modules/h2/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/h2/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi
+{ lib, stdenv, buildPythonPackage, fetchPypi
 , enum34, hpack, hyperframe, pytestCheckHook, hypothesis }:
 
 buildPythonPackage rec {
@@ -14,7 +14,7 @@ buildPythonPackage rec {
 
   checkInputs = [ pytestCheckHook hypothesis ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "HTTP/2 State-Machine based protocol implementation";
     homepage = "http://hyper.rtfd.org/";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/h3/default.nix b/nixpkgs/pkgs/development/python-modules/h3/default.nix
index e0d6ffce6531..46b774a25c1e 100644
--- a/nixpkgs/pkgs/development/python-modules/h3/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/h3/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , cmake
 , fetchPypi
@@ -25,7 +25,7 @@ buildPythonPackage rec {
       --subst-var-by libh3_path ${h3}/lib/libh3${stdenv.hostPlatform.extensions.sharedLibrary}
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://github.com/uber/h3-py";
     description = "This library provides Python bindings for the H3 Core Library.";
     license = licenses.asl20;
diff --git a/nixpkgs/pkgs/development/python-modules/h5py/default.nix b/nixpkgs/pkgs/development/python-modules/h5py/default.nix
index a9ebdc5dfe88..c167e2115c66 100644
--- a/nixpkgs/pkgs/development/python-modules/h5py/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/h5py/default.nix
@@ -1,11 +1,9 @@
-{ stdenv, fetchPypi, isPy27, python, buildPythonPackage, pythonOlder
+{ lib, fetchPypi, isPy27, python, buildPythonPackage, pythonOlder
 , numpy, hdf5, cython, six, pkgconfig, unittest2, fetchpatch
 , mpi4py ? null, openssh, pytestCheckHook, cached-property }:
 
 assert hdf5.mpiSupport -> mpi4py != null && hdf5.mpi == mpi4py.mpi;
 
-with stdenv.lib;
-
 let
   mpi = hdf5.mpi;
   mpiSupport = hdf5.mpiSupport;
@@ -31,27 +29,26 @@ in buildPythonPackage rec {
   postConfigure = ''
     # Needed to run the tests reliably. See:
     # https://bitbucket.org/mpi4py/mpi4py/issues/87/multiple-test-errors-with-openmpi-30
-    ${optionalString mpiSupport "export OMPI_MCA_rmaps_base_oversubscribe=yes"}
+    ${lib.optionalString mpiSupport "export OMPI_MCA_rmaps_base_oversubscribe=yes"}
   '';
 
   preBuild = if mpiSupport then "export CC=${mpi}/bin/mpicc" else "";
 
   # tests now require pytest-mpi, which isn't available and difficult to package
   doCheck = false;
-  checkInputs = optional isPy27 unittest2 ++ [ pytestCheckHook openssh ];
+  checkInputs = lib.optional isPy27 unittest2 ++ [ pytestCheckHook openssh ];
   nativeBuildInputs = [ pkgconfig cython ];
   buildInputs = [ hdf5 ]
-    ++ optional mpiSupport mpi;
+    ++ lib.optional mpiSupport mpi;
   propagatedBuildInputs = [ numpy six]
-    ++ optionals mpiSupport [ mpi4py openssh ]
-    ++ optionals (pythonOlder "3.8") [ cached-property ];
+    ++ lib.optionals mpiSupport [ mpi4py openssh ]
+    ++ lib.optionals (pythonOlder "3.8") [ cached-property ];
 
   pythonImportsCheck = [ "h5py" ];
 
-  meta = {
-    description =
-      "Pythonic interface to the HDF5 binary data format";
+  meta = with lib; {
+    description = "Pythonic interface to the HDF5 binary data format";
     homepage = "http://www.h5py.org/";
-    license = stdenv.lib.licenses.bsd2;
+    license = licenses.bsd2;
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/ha-ffmpeg/default.nix b/nixpkgs/pkgs/development/python-modules/ha-ffmpeg/default.nix
index 01d0343b171f..653c4483ce82 100644
--- a/nixpkgs/pkgs/development/python-modules/ha-ffmpeg/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/ha-ffmpeg/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi, isPy3k
+{ lib, stdenv, buildPythonPackage, fetchPypi, isPy3k
 , ffmpeg_3, async-timeout }:
 
 buildPythonPackage rec {
@@ -19,7 +19,7 @@ buildPythonPackage rec {
   # only manual tests
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://github.com/pvizeli/ha-ffmpeg";
     description = "Library for home-assistant to handle ffmpeg";
     license = licenses.bsd3;
diff --git a/nixpkgs/pkgs/development/python-modules/handout/default.nix b/nixpkgs/pkgs/development/python-modules/handout/default.nix
index c5c111845d15..b2b7b4b3d142 100644
--- a/nixpkgs/pkgs/development/python-modules/handout/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/handout/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi
+{ lib, stdenv, buildPythonPackage, fetchPypi
 , imageio, imageio-ffmpeg }:
 
 buildPythonPackage rec {
@@ -12,7 +12,7 @@ buildPythonPackage rec {
 
   propagatedBuildInputs = [ imageio imageio-ffmpeg ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Turn Python scripts into handouts with Markdown and figures";
     homepage = "https://github.com/danijar/handout";
     license = licenses.gpl3;
diff --git a/nixpkgs/pkgs/development/python-modules/hass-nabucasa/default.nix b/nixpkgs/pkgs/development/python-modules/hass-nabucasa/default.nix
index 90ff3df89e14..102ab3a2540c 100644
--- a/nixpkgs/pkgs/development/python-modules/hass-nabucasa/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/hass-nabucasa/default.nix
@@ -1,33 +1,50 @@
-{ lib, buildPythonPackage, fetchFromGitHub
-, acme, aiohttp, snitun, attrs, pycognito, warrant
-, pytest-aiohttp, asynctest, atomicwrites, pytest }:
+{ lib
+, acme
+, aiohttp
+, asynctest
+, atomicwrites
+, attrs
+, buildPythonPackage
+, fetchFromGitHub
+, pycognito
+, pytest-aiohttp
+, pytestCheckHook
+, snitun
+, warrant
+}:
 
 buildPythonPackage rec {
   pname = "hass-nabucasa";
-  version = "0.39.0";
+  version = "0.41.0";
 
   src = fetchFromGitHub {
     owner = "nabucasa";
     repo = pname;
     rev = version;
-    sha256 = "1bsvwxddpp4dsq3k2320qrx5x9lscqzffzz1zj6fbwgc4741f01w";
+    sha256 = "sha256-ewWw3PyJGRHP23J6WBBWs9YGl4vTb9/j/soZ6n5wbLM=";
   };
 
   postPatch = ''
     sed -i 's/"acme.*"/"acme"/' setup.py
-    sed -i 's/"attrs.*"/"attrs"/' setup.py
-    sed -i 's/"cryptography.*"/"cryptography"/' setup.py
   '';
 
   propagatedBuildInputs = [
-    acme aiohttp atomicwrites snitun attrs warrant pycognito
+    acme
+    aiohttp
+    atomicwrites
+    attrs
+    pycognito
+    snitun
+    warrant
   ];
 
-  checkInputs = [ pytest pytest-aiohttp asynctest ];
+  checkInputs = [
+    asynctest
+    pytest-aiohttp
+    pytestCheckHook
+  ];
 
-  checkPhase = ''
-    pytest tests/
-  '';
+  pythonImportsCheck = [ "hass_nabucasa" ];
 
   meta = with lib; {
     homepage = "https://github.com/NabuCasa/hass-nabucasa";
diff --git a/nixpkgs/pkgs/development/python-modules/hatasmota/default.nix b/nixpkgs/pkgs/development/python-modules/hatasmota/default.nix
new file mode 100644
index 000000000000..d375effd1609
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/hatasmota/default.nix
@@ -0,0 +1,34 @@
+{ lib
+, attrs
+, buildPythonPackage
+, fetchFromGitHub
+, voluptuous
+}:
+
+buildPythonPackage rec {
+  pname = "hatasmota";
+  version = "0.2.6";
+
+  src = fetchFromGitHub {
+    owner = "emontnemery";
+    repo = pname;
+    rev = version;
+    sha256 = "sha256-kRTgHFRnhjLM2DhKNy9HDKIsRk+w0AKP+o0hy8w+3ys=";
+  };
+
+  propagatedBuildInputs = [
+    attrs
+    voluptuous
+  ];
+
+  # Project has no tests
+  doCheck = false;
+  pythonImportsCheck = [ "hatasmota" ];
+
+  meta = with lib; {
+    description = "Python module to help parse and construct Tasmota MQTT messages";
+    homepage = "https://github.com/emontnemery/hatasmota";
+    license = with licenses; [ mit ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/haversine/default.nix b/nixpkgs/pkgs/development/python-modules/haversine/default.nix
new file mode 100644
index 000000000000..7f5e462d1b3c
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/haversine/default.nix
@@ -0,0 +1,32 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, numpy
+, pytestCheckHook
+}:
+
+buildPythonPackage rec {
+  pname = "haversine";
+  version = "2.3.0";
+
+  src = fetchFromGitHub {
+    owner = "mapado";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "1c3yf9162b2b7l1lsw3ffd1linnc542qvljpgwxp6y5arrmljqnv";
+  };
+
+  checkInputs = [
+    numpy
+    pytestCheckHook
+  ];
+
+  pythonImportsCheck = [ "haversine" ];
+
+  meta = with lib; {
+    description = "Python module the distance between 2 points on earth";
+    homepage = "https://github.com/mapado/haversine";
+    license = with licenses; [ mit ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/hawkauthlib/default.nix b/nixpkgs/pkgs/development/python-modules/hawkauthlib/default.nix
index 1a8ddacdd690..a0b7d50b560d 100644
--- a/nixpkgs/pkgs/development/python-modules/hawkauthlib/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/hawkauthlib/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchFromGitHub
 , requests
@@ -18,7 +18,7 @@ buildPythonPackage rec {
 
   propagatedBuildInputs = [ requests webob ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://github.com/mozilla-services/hawkauthlib";
     description = "Hawk Access Authentication protocol";
     license = licenses.mpl20;
diff --git a/nixpkgs/pkgs/development/python-modules/hbmqtt/default.nix b/nixpkgs/pkgs/development/python-modules/hbmqtt/default.nix
index 76ae5718024a..003805f939c6 100644
--- a/nixpkgs/pkgs/development/python-modules/hbmqtt/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/hbmqtt/default.nix
@@ -1,11 +1,12 @@
-{ stdenv, buildPythonPackage, fetchPypi, isPy3k, setuptools
+{ lib, stdenv, buildPythonPackage, fetchPypi, isPy3k, pythonAtLeast, setuptools
 , transitions, websockets, passlib, docopt, pyyaml, nose }:
 
 buildPythonPackage rec {
   pname = "hbmqtt";
   version = "0.9.6";
 
-  disabled = !isPy3k;
+  # https://github.com/beerfactory/hbmqtt/issues/223
+  disabled = !isPy3k || pythonAtLeast "3.9";
 
   src = fetchPypi {
     inherit pname version;
@@ -27,7 +28,7 @@ buildPythonPackage rec {
     nosetests -e test_connect_tcp
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://github.com/beerfactory/hbmqtt";
     description = "MQTT client/broker using Python asynchronous I/O";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/hcs_utils/default.nix b/nixpkgs/pkgs/development/python-modules/hcs_utils/default.nix
index 445c2fe1f827..56e9811396e6 100644
--- a/nixpkgs/pkgs/development/python-modules/hcs_utils/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/hcs_utils/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, pythonOlder, buildPythonPackage, fetchPypi, six, glibcLocales, pytest }:
+{ lib, stdenv, pythonOlder, buildPythonPackage, fetchPypi, six, glibcLocales, pytest }:
 
 buildPythonPackage rec {
   pname = "hcs_utils";
@@ -21,7 +21,7 @@ buildPythonPackage rec {
 
   disabled = pythonOlder "3.4";
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Library collecting some useful snippets";
     homepage    = "https://pypi.python.org/pypi/hcs_utils/1.3";
     license     = licenses.isc;
diff --git a/nixpkgs/pkgs/development/python-modules/hdmedians/default.nix b/nixpkgs/pkgs/development/python-modules/hdmedians/default.nix
index 80e287d376f4..3b65e10bfcec 100644
--- a/nixpkgs/pkgs/development/python-modules/hdmedians/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/hdmedians/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , nose
@@ -26,7 +26,7 @@ buildPythonPackage rec {
     nosetests
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://github.com/daleroberts/hdmedians";
     description = "High-dimensional medians";
     license = licenses.gpl3;
diff --git a/nixpkgs/pkgs/development/python-modules/heapdict/default.nix b/nixpkgs/pkgs/development/python-modules/heapdict/default.nix
index 159e0a7d74e9..4cd695925f28 100644
--- a/nixpkgs/pkgs/development/python-modules/heapdict/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/heapdict/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi, isPy3k }:
+{ lib, stdenv, buildPythonPackage, fetchPypi, isPy3k }:
 
 buildPythonPackage rec {
   pname = "HeapDict";
@@ -11,7 +11,7 @@ buildPythonPackage rec {
 
   doCheck = !isPy3k;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "a heap with decrease-key and increase-key operations.";
     homepage = "http://stutzbachenterprises.com";
     license = licenses.bsd3;
diff --git a/nixpkgs/pkgs/development/python-modules/helper/default.nix b/nixpkgs/pkgs/development/python-modules/helper/default.nix
index 00e4ddce8b4b..4c7ff0c3878f 100644
--- a/nixpkgs/pkgs/development/python-modules/helper/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/helper/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi, pyyaml, mock }:
+{ lib, stdenv, buildPythonPackage, fetchPypi, pyyaml, mock }:
 
 buildPythonPackage rec {
   pname = "helper";
@@ -15,7 +15,7 @@ buildPythonPackage rec {
   # No tests in the pypi tarball
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Development library for quickly writing configurable applications and daemons";
     homepage = "https://helper.readthedocs.org/";
     license = licenses.bsd3;
diff --git a/nixpkgs/pkgs/development/python-modules/hetzner/default.nix b/nixpkgs/pkgs/development/python-modules/hetzner/default.nix
index 2909d2c2a6c5..3b938dfc237c 100644
--- a/nixpkgs/pkgs/development/python-modules/hetzner/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/hetzner/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchFromGitHub
 }:
@@ -14,7 +14,7 @@ buildPythonPackage rec {
     sha256 = "152fklxff08s71v0b78yp5ajwpqyszm3sd7j0qsrwa2x9ik4968h";
   };
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://github.com/RedMoonStudios/hetzner";
     description = "High-level Python API for accessing the Hetzner robot";
     license = licenses.bsd3;
diff --git a/nixpkgs/pkgs/development/python-modules/heudiconv/default.nix b/nixpkgs/pkgs/development/python-modules/heudiconv/default.nix
index 29a29a3b6522..ce2918188241 100644
--- a/nixpkgs/pkgs/development/python-modules/heudiconv/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/heudiconv/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , isPy27
@@ -40,7 +40,7 @@ buildPythonPackage rec {
   # and these aren't in Nixpkgs
   checkPhase = "pytest -k 'not test_dlad and not test_monitor' heudiconv/tests";
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://heudiconv.readthedocs.io";
     description = "Flexible DICOM converter for organizing imaging data";
     license = licenses.asl20;
diff --git a/nixpkgs/pkgs/development/python-modules/hg-evolve/default.nix b/nixpkgs/pkgs/development/python-modules/hg-evolve/default.nix
index 434c6ffba2b9..38a770e879fa 100644
--- a/nixpkgs/pkgs/development/python-modules/hg-evolve/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/hg-evolve/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib
 , buildPythonPackage
 , fetchPypi
 , isPy3k
@@ -15,10 +15,10 @@ buildPythonPackage rec {
 
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Enables the “changeset evolution” feature of Mercurial core";
     homepage = "https://www.mercurial-scm.org/doc/evolution/";
     maintainers = with maintainers; [ xavierzwirtz ];
-    license = stdenv.lib.licenses.gpl2Plus;
+    license = licenses.gpl2Plus;
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/hg-git/default.nix b/nixpkgs/pkgs/development/python-modules/hg-git/default.nix
index c82352f9bfef..1d8e1ec1e29f 100644
--- a/nixpkgs/pkgs/development/python-modules/hg-git/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/hg-git/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib
 , buildPythonPackage
 , fetchPypi
 , dulwich
@@ -26,11 +26,11 @@ buildPythonPackage rec {
       sha256 = "12r4qzbc5xcqwv0kvf8g4wjji7n45421zkbf6i75vyi4nl6n4j15";
     };
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Push and pull from a Git server using Mercurial";
     homepage = "http://hg-git.github.com/";
     maintainers = with maintainers; [ koral ];
-    license = stdenv.lib.licenses.gpl2;
+    license = licenses.gpl2;
   };
 
 }
diff --git a/nixpkgs/pkgs/development/python-modules/hglib/default.nix b/nixpkgs/pkgs/development/python-modules/hglib/default.nix
index e96d7e228708..afac7983584c 100644
--- a/nixpkgs/pkgs/development/python-modules/hglib/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/hglib/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi, fetchpatch, substituteAll, python, nose, mercurial }:
+{ lib, stdenv, buildPythonPackage, fetchPypi, fetchpatch, substituteAll, python, nose, mercurial }:
 
 buildPythonPackage rec {
   pname = "python-hglib";
@@ -33,7 +33,7 @@ buildPythonPackage rec {
     ${python.interpreter} test.py --with-hg "${mercurial}/bin/hg" -v
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Mercurial Python library";
     homepage = "http://selenic.com/repo/python-hglib";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/hgsvn/default.nix b/nixpkgs/pkgs/development/python-modules/hgsvn/default.nix
index ccf8635b8b11..2ee6024cd475 100644
--- a/nixpkgs/pkgs/development/python-modules/hgsvn/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/hgsvn/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , nose
@@ -23,7 +23,7 @@ buildPythonPackage rec {
 
   doCheck = false;  # too many assumptions
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://pypi.python.org/pypi/hgsvn";
     description = "A set of scripts to work locally on Subversion checkouts using Mercurial";
     license = licenses.gpl2;
diff --git a/nixpkgs/pkgs/development/python-modules/hidapi/default.nix b/nixpkgs/pkgs/development/python-modules/hidapi/default.nix
index 856a36f77916..790e7aa08fc2 100644
--- a/nixpkgs/pkgs/development/python-modules/hidapi/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/hidapi/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, libusb1, udev, darwin, fetchPypi, buildPythonPackage, cython }:
+{ lib, stdenv, libusb1, udev, darwin, fetchPypi, buildPythonPackage, cython }:
 
 buildPythonPackage rec {
   pname = "hidapi";
@@ -10,22 +10,22 @@ buildPythonPackage rec {
   };
 
   propagatedBuildInputs =
-    stdenv.lib.optionals stdenv.isLinux [ libusb1 udev ] ++
-    stdenv.lib.optionals stdenv.isDarwin (with darwin.apple_sdk.frameworks; [ AppKit CoreFoundation IOKit ]) ++
+    lib.optionals stdenv.isLinux [ libusb1 udev ] ++
+    lib.optionals stdenv.isDarwin (with darwin.apple_sdk.frameworks; [ AppKit CoreFoundation IOKit ]) ++
     [ cython ];
 
   # Fix the USB backend library lookup
-  postPatch = stdenv.lib.optionalString stdenv.isLinux ''
+  postPatch = lib.optionalString stdenv.isLinux ''
     libusb=${libusb1.dev}/include/libusb-1.0
     test -d $libusb || { echo "ERROR: $libusb doesn't exist, please update/fix this build expression."; exit 1; }
     sed -i -e "s|/usr/include/libusb-1.0|$libusb|" setup.py
-  '' + stdenv.lib.optionalString stdenv.isDarwin ''
+  '' + lib.optionalString stdenv.isDarwin ''
     substituteInPlace setup.py --replace 'macos_sdk_path =' 'macos_sdk_path = "" #'
   '';
 
   pythonImportsCheck = [ "hid" ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "A Cython interface to the hidapi from https://github.com/libusb/hidapi";
     homepage = "https://github.com/trezor/cython-hidapi";
     # license can actually be either bsd3 or gpl3
diff --git a/nixpkgs/pkgs/development/python-modules/hieroglyph/default.nix b/nixpkgs/pkgs/development/python-modules/hieroglyph/default.nix
index 0959d117de34..418059c51658 100644
--- a/nixpkgs/pkgs/development/python-modules/hieroglyph/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/hieroglyph/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchPypi, buildPythonPackage, isPy27, sphinx }:
+{ lib, stdenv, fetchPypi, buildPythonPackage, isPy27, sphinx }:
 
 buildPythonPackage rec {
   pname = "hieroglyph";
@@ -16,7 +16,7 @@ buildPythonPackage rec {
   # test_absolute_paths_made_relative (hieroglyph.tests.test_path_fixing.PostProcessImageTests) ... ERROR
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Generate HTML presentations from plain text sources";
     homepage = "https://github.com/nyergler/hieroglyph/";
     license = licenses.bsd3;
diff --git a/nixpkgs/pkgs/development/python-modules/hiredis/default.nix b/nixpkgs/pkgs/development/python-modules/hiredis/default.nix
index 891c79f1b7b8..e9d5677f8beb 100644
--- a/nixpkgs/pkgs/development/python-modules/hiredis/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/hiredis/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , redis
@@ -21,7 +21,7 @@ buildPythonPackage rec {
   '';
   pythonImportsCheck = [ "hiredis" ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Wraps protocol parsing code in hiredis, speeds up parsing of multi bulk replies";
     homepage = "https://github.com/redis/hiredis-py";
     license = licenses.bsd3;
diff --git a/nixpkgs/pkgs/development/python-modules/hiro/default.nix b/nixpkgs/pkgs/development/python-modules/hiro/default.nix
index f8ef8ba028d0..3ff672a22db6 100644
--- a/nixpkgs/pkgs/development/python-modules/hiro/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/hiro/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi, six, mock }:
+{ lib, stdenv, buildPythonPackage, fetchPypi, six, mock }:
 buildPythonPackage rec {
   pname = "hiro";
   version = "0.5.1";
@@ -10,7 +10,7 @@ buildPythonPackage rec {
 
   propagatedBuildInputs = [ six mock ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Time manipulation utilities for Python";
     homepage = "https://hiro.readthedocs.io/en/latest/";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/hjson/default.nix b/nixpkgs/pkgs/development/python-modules/hjson/default.nix
index 13dce54b9c3a..3393ad186918 100644
--- a/nixpkgs/pkgs/development/python-modules/hjson/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/hjson/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchFromGitHub
 , pythonImportsCheckHook
@@ -26,7 +26,7 @@ buildPythonPackage rec {
     wrapProgram $out/bin/hjson --set PYTHONPATH "$PYTHONPATH"
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "A user interface for JSON";
     homepage = "https://github.com/hjson/hjson-py";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/hkdf/default.nix b/nixpkgs/pkgs/development/python-modules/hkdf/default.nix
index 347cd94c8f51..966ce7001fbb 100644
--- a/nixpkgs/pkgs/development/python-modules/hkdf/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/hkdf/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , nose
@@ -22,7 +22,7 @@ buildPythonPackage rec {
   # no tests in PyPI tarball
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "HMAC-based Extract-and-Expand Key Derivation Function (HKDF)";
     homepage = "https://github.com/casebeer/python-hkdf";
     license = licenses.bsd2;
diff --git a/nixpkgs/pkgs/development/python-modules/hocr-tools/default.nix b/nixpkgs/pkgs/development/python-modules/hocr-tools/default.nix
index fdc578c76dff..79a2e83508aa 100644
--- a/nixpkgs/pkgs/development/python-modules/hocr-tools/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/hocr-tools/default.nix
@@ -3,7 +3,7 @@
 , lxml
 , pillow
 , reportlab
-, stdenv
+, lib, stdenv
 }:
 buildPythonPackage rec {
   pname = "hocr-tools";
@@ -21,7 +21,7 @@ buildPythonPackage rec {
 
   propagatedBuildInputs = [ pillow lxml reportlab ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "
 Tools for manipulating and evaluating the hOCR format for representing multi-lingual OCR results by embedding them into HTML";
     homepage = "https://github.com/tmbdev/hocr-tools";
diff --git a/nixpkgs/pkgs/development/python-modules/holidays/default.nix b/nixpkgs/pkgs/development/python-modules/holidays/default.nix
index 10ee1bbf2e76..b5e0062d115a 100644
--- a/nixpkgs/pkgs/development/python-modules/holidays/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/holidays/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , convertdate
@@ -24,7 +24,7 @@ buildPythonPackage rec {
   ];
   pythonImportsCheck = [ "holidays" ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://github.com/dr-prodigy/python-holidays";
     description = "Generate and work with holidays in Python";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/hoomd-blue/default.nix b/nixpkgs/pkgs/development/python-modules/hoomd-blue/default.nix
index 7d6ceb0cc5a6..f726340b7c88 100644
--- a/nixpkgs/pkgs/development/python-modules/hoomd-blue/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/hoomd-blue/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchgit
+{ lib, stdenv, fetchgit
 , cmake, pkgconfig
 , python
 , mpi ? null
@@ -29,11 +29,9 @@ stdenv.mkDerivation rec {
   };
 
   nativeBuildInputs = [ cmake pkgconfig ];
-  buildInputs = stdenv.lib.optionals withMPI [ mpi ];
+  buildInputs = lib.optionals withMPI [ mpi ];
   propagatedBuildInputs = [ python.pkgs.numpy ]
-   ++ stdenv.lib.optionals withMPI [ python.pkgs.mpi4py ];
-
-  enableParallelBuilding = true;
+   ++ lib.optionals withMPI [ python.pkgs.mpi4py ];
 
   dontAddPrefix = true;
   cmakeFlags = [
@@ -54,7 +52,7 @@ stdenv.mkDerivation rec {
   doCheck = false;
   checkTarget = "test";
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "http://glotzerlab.engin.umich.edu/hoomd-blue/";
     description = "HOOMD-blue is a general-purpose particle simulation toolkit";
     license = licenses.bsdOriginal;
diff --git a/nixpkgs/pkgs/development/python-modules/hpack/default.nix b/nixpkgs/pkgs/development/python-modules/hpack/default.nix
index 36578856286f..9b6f724cd318 100644
--- a/nixpkgs/pkgs/development/python-modules/hpack/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/hpack/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 }:
@@ -12,7 +12,7 @@ buildPythonPackage rec {
     sha256 = "fc41de0c63e687ebffde81187a948221294896f6bdc0ae2312708df339430095";
   };
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Pure-Python HPACK header compression";
     homepage = "http://hyper.rtfd.org";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/hsaudiotag/default.nix b/nixpkgs/pkgs/development/python-modules/hsaudiotag/default.nix
index 2da6e4a150c9..fba71dc3f109 100644
--- a/nixpkgs/pkgs/development/python-modules/hsaudiotag/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/hsaudiotag/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , isPy3k
@@ -17,7 +17,7 @@ buildPythonPackage rec {
   # no tests
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "A pure Python library that lets one to read metadata from media files";
     homepage = "http://hg.hardcoded.net/hsaudiotag/";
     license = licenses.bsd3;
diff --git a/nixpkgs/pkgs/development/python-modules/hsaudiotag3k/default.nix b/nixpkgs/pkgs/development/python-modules/hsaudiotag3k/default.nix
index d12d3bc8c832..52919e489837 100644
--- a/nixpkgs/pkgs/development/python-modules/hsaudiotag3k/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/hsaudiotag3k/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , isPy3k
@@ -17,7 +17,7 @@ buildPythonPackage rec {
   # no tests
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "A pure Python library that lets one to read metadata from media files";
     homepage = "http://hg.hardcoded.net/hsaudiotag/";
     license = licenses.bsd3;
diff --git a/nixpkgs/pkgs/development/python-modules/html2text/2018.nix b/nixpkgs/pkgs/development/python-modules/html2text/2018.nix
index e0a60e1ef0ac..73540359ee1a 100644
--- a/nixpkgs/pkgs/development/python-modules/html2text/2018.nix
+++ b/nixpkgs/pkgs/development/python-modules/html2text/2018.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 }:
@@ -12,7 +12,7 @@ buildPythonPackage rec {
     sha256 = "627514fb30e7566b37be6900df26c2c78a030cc9e6211bda604d8181233bcdd4";
   };
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Turn HTML into equivalent Markdown-structured text";
     homepage = "https://github.com/Alir3z4/html2text/";
     license = licenses.gpl3;
diff --git a/nixpkgs/pkgs/development/python-modules/html5-parser/default.nix b/nixpkgs/pkgs/development/python-modules/html5-parser/default.nix
index 4962e89526d8..0ceeda045827 100644
--- a/nixpkgs/pkgs/development/python-modules/html5-parser/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/html5-parser/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi, pkgs, pkgconfig, chardet, lxml }:
+{ lib, stdenv, buildPythonPackage, fetchPypi, pkgs, pkg-config, chardet, lxml }:
 
 buildPythonPackage rec {
   pname = "html5-parser";
@@ -9,12 +9,12 @@ buildPythonPackage rec {
     sha256 = "25fe8f6848cbc15187f6748c0695df32bcf1b37df6420b6a01b4ebe1ec1ed48f";
   };
 
-  nativeBuildInputs = [ pkgconfig ];
+  nativeBuildInputs = [ pkg-config ];
   propagatedBuildInputs = [ chardet lxml pkgs.libxml2 ];
 
   doCheck = false; # No such file or directory: 'run_tests.py'
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Fast C based HTML 5 parsing for python";
     homepage = "https://html5-parser.readthedocs.io";
     license = licenses.asl20;
diff --git a/nixpkgs/pkgs/development/python-modules/htmllaundry/default.nix b/nixpkgs/pkgs/development/python-modules/htmllaundry/default.nix
index 33d3691e85ad..ef660fc0b924 100644
--- a/nixpkgs/pkgs/development/python-modules/htmllaundry/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/htmllaundry/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi, nose
 , six
@@ -21,7 +21,7 @@ buildPythonPackage rec {
   # not relevant for me, if releavnt for you, fix it...
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Simple HTML cleanup utilities";
     license = licenses.bsd3;
     homepage = "https://pypi.org/project/htmllaundry/";
diff --git a/nixpkgs/pkgs/development/python-modules/htmlmin/default.nix b/nixpkgs/pkgs/development/python-modules/htmlmin/default.nix
index ccbc157837c3..e91aedc6cdb1 100644
--- a/nixpkgs/pkgs/development/python-modules/htmlmin/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/htmlmin/default.nix
@@ -1,4 +1,5 @@
-{ stdenv, buildPythonPackage, fetchPypi }:
+{ lib, buildPythonPackage, fetchPypi }:
+
 buildPythonPackage rec {
   pname = "htmlmin";
   version = "0.1.12";
@@ -10,10 +11,10 @@ buildPythonPackage rec {
   # Tests run fine in a normal source checkout, but not when being built by nix.
   doCheck = false;
 
-  meta = {
+  meta = with lib; {
     description = "A configurable HTML Minifier with safety features";
     homepage = "https://pypi.python.org/pypi/htmlmin";
-    license = stdenv.lib.licenses.bsd3;
+    license = licenses.bsd3;
     maintainers = [];
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/httmock/default.nix b/nixpkgs/pkgs/development/python-modules/httmock/default.nix
index 5913ceca777b..117c7f5e132f 100644
--- a/nixpkgs/pkgs/development/python-modules/httmock/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/httmock/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchFromGitHub, requests }:
+{ lib, stdenv, buildPythonPackage, fetchFromGitHub, requests }:
 
 buildPythonPackage rec {
   pname   = "httmock";
@@ -13,7 +13,7 @@ buildPythonPackage rec {
 
   checkInputs = [ requests ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "A mocking library for requests";
     homepage    = "https://github.com/patrys/httmock";
     license     = licenses.asl20;
diff --git a/nixpkgs/pkgs/development/python-modules/http_signature/default.nix b/nixpkgs/pkgs/development/python-modules/http_signature/default.nix
index d86861a92517..145eea751b9b 100644
--- a/nixpkgs/pkgs/development/python-modules/http_signature/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/http_signature/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , isPy3k
@@ -17,7 +17,7 @@ buildPythonPackage rec {
 
   propagatedBuildInputs = [ pycrypto ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://github.com/atl/py-http-signature";
     description = "Simple secure signing for HTTP requests using http-signature";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/httpauth/default.nix b/nixpkgs/pkgs/development/python-modules/httpauth/default.nix
index bab2193f6a2d..b7867e22f175 100644
--- a/nixpkgs/pkgs/development/python-modules/httpauth/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/httpauth/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 }:
@@ -14,7 +14,7 @@ buildPythonPackage rec {
 
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "WSGI HTTP Digest Authentication middleware";
     homepage = "https://github.com/jonashaag/httpauth";
     license = licenses.bsd2;
diff --git a/nixpkgs/pkgs/development/python-modules/httpbin/default.nix b/nixpkgs/pkgs/development/python-modules/httpbin/default.nix
index cf5891ed0ee2..cbaf89c3ca61 100644
--- a/nixpkgs/pkgs/development/python-modules/httpbin/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/httpbin/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , fetchpatch
@@ -26,7 +26,7 @@ buildPythonPackage rec {
   # No tests
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://github.com/kennethreitz/httpbin";
     description = "HTTP Request & Response Service";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/httpretty/0.nix b/nixpkgs/pkgs/development/python-modules/httpretty/0.nix
index ee0e598a9ac2..92ed5c6616e0 100644
--- a/nixpkgs/pkgs/development/python-modules/httpretty/0.nix
+++ b/nixpkgs/pkgs/development/python-modules/httpretty/0.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib
 , buildPythonPackage
 , fetchPypi
 , tornado
@@ -20,7 +20,7 @@ buildPythonPackage rec {
 
   # drop this for version > 0.9.7
   # Flaky tests: https://github.com/gabrielfalcao/HTTPretty/pull/394
-  doCheck = stdenv.lib.versionAtLeast version "0.9.8";
+  doCheck = lib.versionAtLeast version "0.9.8";
 
   src = fetchPypi {
     inherit pname version;
@@ -37,14 +37,14 @@ buildPythonPackage rec {
   __darwinAllowLocalNetworking = true;
 
   # Those flaky tests are failing intermittently on all platforms
-  NOSE_EXCLUDE = stdenv.lib.concatStringsSep "," [
+  NOSE_EXCLUDE = lib.concatStringsSep "," [
     "tests.functional.test_httplib2.test_callback_response"
     "tests.functional.test_requests.test_streaming_responses"
     "tests.functional.test_httplib2.test_callback_response"
     "tests.functional.test_requests.test_httpretty_should_allow_adding_and_overwritting_by_kwargs_u2"
   ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://httpretty.readthedocs.org/";
     description = "HTTP client request mocking tool";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/httpretty/default.nix b/nixpkgs/pkgs/development/python-modules/httpretty/default.nix
index 0d061df86bf7..8974672d0a93 100644
--- a/nixpkgs/pkgs/development/python-modules/httpretty/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/httpretty/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib
 , buildPythonPackage
 , fetchPypi
 , tornado
@@ -23,7 +23,7 @@ buildPythonPackage rec {
 
   # drop this for version > 0.9.7
   # Flaky tests: https://github.com/gabrielfalcao/HTTPretty/pull/394
-  doCheck = stdenv.lib.versionAtLeast version "0.9.8";
+  doCheck = lib.versionAtLeast version "0.9.8";
 
   src = fetchPypi {
     inherit pname version;
@@ -44,14 +44,14 @@ buildPythonPackage rec {
   __darwinAllowLocalNetworking = true;
 
   # Those flaky tests are failing intermittently on all platforms
-  NOSE_EXCLUDE = stdenv.lib.concatStringsSep "," [
+  NOSE_EXCLUDE = lib.concatStringsSep "," [
     "tests.functional.test_httplib2.test_callback_response"
     "tests.functional.test_requests.test_streaming_responses"
     "tests.functional.test_httplib2.test_callback_response"
     "tests.functional.test_requests.test_httpretty_should_allow_adding_and_overwritting_by_kwargs_u2"
   ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://httpretty.readthedocs.org/";
     description = "HTTP client request mocking tool";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/httpx/default.nix b/nixpkgs/pkgs/development/python-modules/httpx/default.nix
index 1f527b47ec08..6e81cc92193c 100644
--- a/nixpkgs/pkgs/development/python-modules/httpx/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/httpx/default.nix
@@ -56,6 +56,8 @@ buildPythonPackage rec {
     "test_sync_proxy_close"
   ];
 
+  __darwinAllowLocalNetworking = true;
+
   meta = with lib; {
     description = "The next generation HTTP client";
     homepage = "https://github.com/encode/httpx";
diff --git a/nixpkgs/pkgs/development/python-modules/hug/default.nix b/nixpkgs/pkgs/development/python-modules/hug/default.nix
index 6769b5371b88..872798c6ced8 100644
--- a/nixpkgs/pkgs/development/python-modules/hug/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/hug/default.nix
@@ -1,8 +1,7 @@
 { lib , buildPythonPackage, fetchFromGitHub, isPy27
 , falcon
-, pytestrunner
 , requests
-, pytest
+, pytestCheckHook
 , marshmallow
 , mock
 , numpy
@@ -20,19 +19,33 @@ buildPythonPackage rec {
     sha256 = "05rsv16g7ph100p8kl4l2jba0y4wcpp3xblc02mfp67zp1279vaq";
   };
 
-  nativeBuildInputs = [ pytestrunner ];
   propagatedBuildInputs = [ falcon requests ];
 
-  checkInputs = [ mock marshmallow pytest numpy ];
-  checkPhase = ''
-    mv hug hug.hidden
-    # some tests attempt network access
-    PATH=$out/bin:$PATH pytest -k "not (test_request or test_datagram_request)"
+  checkInputs = [ mock marshmallow pytestCheckHook numpy ];
+
+  postPatch = ''
+    substituteInPlace setup.py --replace '"pytest-runner"' ""
+  '';
+
+  preCheck = ''
+    # some tests need the `hug` CLI on the PATH
+    export PATH=$out/bin:$PATH
   '';
 
+  disabledTests = [
+    # some tests attempt network access
+    "test_datagram_request"
+    "test_request"
+    # these tests use an unstable test dependency (https://github.com/hugapi/hug/issues/859)
+    "test_marshmallow_custom_context"
+    "test_marshmallow_schema"
+    "test_transform"
+    "test_validate_route_args_negative_case"
+  ];
+
   meta = with lib; {
     description = "A Python framework that makes developing APIs as simple as possible, but no simpler";
-    homepage = "https://github.com/timothycrosley/hug";
+    homepage = "https://github.com/hugapi/hug";
     license = licenses.mit;
   };
 
diff --git a/nixpkgs/pkgs/development/python-modules/humanize/default.nix b/nixpkgs/pkgs/development/python-modules/humanize/default.nix
index 70ac0297b739..09e94f6275dd 100644
--- a/nixpkgs/pkgs/development/python-modules/humanize/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/humanize/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , isPy27
@@ -21,7 +21,7 @@ buildPythonPackage rec {
 
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Python humanize utilities";
     homepage = "https://github.com/jmoiron/humanize";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/hupper/default.nix b/nixpkgs/pkgs/development/python-modules/hupper/default.nix
index b70202138d41..1fe5ab7153d3 100644
--- a/nixpkgs/pkgs/development/python-modules/hupper/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/hupper/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi
+{ lib, stdenv, buildPythonPackage, fetchPypi
 , pytest, pytestcov, watchdog, mock
 }:
 
@@ -17,5 +17,5 @@ buildPythonPackage rec {
 
   # FIXME: watchdog dependency is disabled on Darwin because of #31865, which causes very silent
   # segfaults in the testsuite that end up failing the tests in a background thread (in myapp)
-  checkInputs = [ pytest pytestcov mock ] ++ stdenv.lib.optional (!stdenv.isDarwin) watchdog;
+  checkInputs = [ pytest pytestcov mock ] ++ lib.optional (!stdenv.isDarwin) watchdog;
 }
diff --git a/nixpkgs/pkgs/development/python-modules/hwi/default.nix b/nixpkgs/pkgs/development/python-modules/hwi/default.nix
index 6431791d65e6..7c34235a190b 100644
--- a/nixpkgs/pkgs/development/python-modules/hwi/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/hwi/default.nix
@@ -1,46 +1,47 @@
 { lib
 , buildPythonPackage
-, fetchPypi
-, mnemonic
+, fetchFromGitHub
+, bitbox02
 , ecdsa
-, typing-extensions
 , hidapi
 , libusb1
+, mnemonic
 , pyaes
-, trezor
-, btchip
-, ckcc-protocol
+, pythonAtLeast
 }:
 
 buildPythonPackage rec {
   pname = "hwi";
   version = "1.2.1";
+  disabled = pythonAtLeast "3.9";
 
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "d0d220a4967d7f106b828b12a98b78c220d609d7cc6c811898e24fcf1a6f04f3";
+  src = fetchFromGitHub {
+    owner = "bitcoin-core";
+    repo = "HWI";
+    rev = version;
+    sha256 = "0fs3152lw7y5l9ssr5as8gd739m9lb7wxpv1vc5m77k5nw7l8ax5";
   };
 
+  postPatch = ''
+    substituteInPlace setup.py \
+      --replace "'ecdsa>=0.13.0,<0.14.0'" "'ecdsa'" \
+      --replace "'hidapi>=0.7.99,<0.8.0'" "'hidapi'" \
+      --replace "'mnemonic>=0.18.0,<0.19.0'" "'mnemonic'"
+  '';
+
   propagatedBuildInputs = [
-    mnemonic
+    bitbox02
     ecdsa
-    typing-extensions
     hidapi
     libusb1
+    mnemonic
     pyaes
-    trezor
-    btchip
-    ckcc-protocol
   ];
 
-  patches = [ ./relax-deps.patch ];
-
-  # tests are not packaged in the released tarball
+  # tests require to clone quite a few firmwares
   doCheck = false;
 
-  pythonImportsCheck = [
-    "hwilib"
-  ];
+  pythonImportsCheck = [ "hwilib" ];
 
   meta = {
     description = "Bitcoin Hardware Wallet Interface";
diff --git a/nixpkgs/pkgs/development/python-modules/hwi/relax-deps.patch b/nixpkgs/pkgs/development/python-modules/hwi/relax-deps.patch
deleted file mode 100644
index ff6c6b9768f6..000000000000
--- a/nixpkgs/pkgs/development/python-modules/hwi/relax-deps.patch
+++ /dev/null
@@ -1,16 +0,0 @@
---- a/setup.py
-+++ b/setup.py
-@@ -98,10 +98,10 @@ package_data = \
- modules = \
- ['hwi', 'hwi-qt']
- install_requires = \
--['ecdsa>=0.13.0,<0.14.0',
-- 'hidapi>=0.7.99,<0.8.0',
-+['ecdsa',
-+ 'hidapi',
-  'libusb1>=1.7,<2.0',
-+ 'mnemonic',
-- 'mnemonic>=0.18.0,<0.19.0',
-  'pyaes>=1.6,<2.0',
-  'typing-extensions>=3.7,<4.0']
- 
diff --git a/nixpkgs/pkgs/development/python-modules/hydrawiser/default.nix b/nixpkgs/pkgs/development/python-modules/hydrawiser/default.nix
new file mode 100644
index 000000000000..feccc73707c2
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/hydrawiser/default.nix
@@ -0,0 +1,43 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, pytest-asyncio
+, pytest-cov
+, pytestCheckHook
+, pythonOlder
+, pyyaml
+, requests
+, requests-mock
+}:
+
+buildPythonPackage rec {
+  pname = "hydrawiser";
+  version = "0.2";
+  disabled = pythonOlder "3.6";
+
+  src = fetchFromGitHub {
+    owner = "ptcryan";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "161hazlpvd71xcl2ja86560wm5lnrjv210ki3ji37l6c6gwmhjdj";
+  };
+
+  propagatedBuildInputs = [ requests ];
+
+  checkInputs = [
+    pytest-asyncio
+    pytest-cov
+    pytestCheckHook
+    requests
+    requests-mock
+  ];
+
+  pythonImportsCheck = [ "hydrawiser" ];
+
+  meta = with lib; {
+    description = "Python library for Hydrawise API";
+    homepage = "https://github.com/ptcryan/hydrawiser";
+    license = with licenses; [ mit ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/hyperframe/default.nix b/nixpkgs/pkgs/development/python-modules/hyperframe/default.nix
index 2c6796ca6d0c..a74198f38321 100644
--- a/nixpkgs/pkgs/development/python-modules/hyperframe/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/hyperframe/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi, pytestCheckHook }:
+{ lib, stdenv, buildPythonPackage, fetchPypi, pytestCheckHook }:
 
 buildPythonPackage rec {
   pname = "hyperframe";
@@ -11,7 +11,7 @@ buildPythonPackage rec {
 
   checkInputs = [ pytestCheckHook ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "HTTP/2 framing layer for Python";
     homepage = "http://hyper.rtfd.org/";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/hyperopt/default.nix b/nixpkgs/pkgs/development/python-modules/hyperopt/default.nix
index 16599214ede7..ba4aeef402ec 100644
--- a/nixpkgs/pkgs/development/python-modules/hyperopt/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/hyperopt/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchPypi, buildPythonPackage
+{ lib, stdenv, fetchPypi, buildPythonPackage
 , cloudpickle, numpy, future, networkx
 , six, tqdm, scipy, pymongo
 }:
@@ -19,7 +19,7 @@ buildPythonPackage rec {
 
   pythonImportsCheck = [ "hyperopt" ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Distributed Asynchronous Hyperparameter Optimization";
     homepage    = "http://hyperopt.github.com/hyperopt/";
     license     = licenses.bsd2;
diff --git a/nixpkgs/pkgs/development/python-modules/i3-py/default.nix b/nixpkgs/pkgs/development/python-modules/i3-py/default.nix
index ea6e449947c5..4dea7526b7e7 100644
--- a/nixpkgs/pkgs/development/python-modules/i3-py/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/i3-py/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 }:
@@ -15,7 +15,7 @@ buildPythonPackage rec {
   # no tests in tarball
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Tools for i3 users and developers";
     homepage =  "https://github.com/ziberna/i3-py";
     license = licenses.gpl3;
diff --git a/nixpkgs/pkgs/development/python-modules/i3ipc/default.nix b/nixpkgs/pkgs/development/python-modules/i3ipc/default.nix
index 231cb4f1d413..c27d41354112 100644
--- a/nixpkgs/pkgs/development/python-modules/i3ipc/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/i3ipc/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchFromGitHub
+{ lib, stdenv, buildPythonPackage, fetchFromGitHub
 , xorgserver, pytest, pytest-xvfb, i3, python, xlib, xdpyinfo
 , makeFontsConf, coreutils
 }:
@@ -32,7 +32,7 @@ buildPythonPackage rec {
   '';
 
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "An improved Python library to control i3wm and sway";
     homepage    = "https://github.com/acrisci/i3ipc-python";
     license     = licenses.bsd3;
diff --git a/nixpkgs/pkgs/development/python-modules/icalendar/default.nix b/nixpkgs/pkgs/development/python-modules/icalendar/default.nix
index c8a3a09fd550..4499d5d62f4f 100644
--- a/nixpkgs/pkgs/development/python-modules/icalendar/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/icalendar/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , setuptools
@@ -18,7 +18,7 @@ buildPythonPackage rec {
   buildInputs = [ setuptools ];
   propagatedBuildInputs = [ dateutil pytz ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "A parser/generator of iCalendar files";
     homepage = "https://icalendar.readthedocs.org/";
     license = licenses.bsd2;
diff --git a/nixpkgs/pkgs/development/python-modules/icmplib/default.nix b/nixpkgs/pkgs/development/python-modules/icmplib/default.nix
new file mode 100644
index 000000000000..b89df0bd2ce0
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/icmplib/default.nix
@@ -0,0 +1,38 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, pbr
+, pythonOlder
+, requests
+, six
+}:
+
+buildPythonPackage rec {
+  pname = "icmplib";
+  version = "2.0.1";
+  disabled = pythonOlder "3.6";
+
+  src = fetchFromGitHub {
+    owner = "ValentinBELYN";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "0vps4iz87f8l0z3va92srsx5v19nnd65c22hvbgvhag3vhqsxg7h";
+  };
+
+  propagatedBuildInputs = [
+    pbr
+    six
+    requests
+  ];
+
+  # Project has no tests
+  doCheck = false;
+  pythonImportsCheck = [ "icmplib" ];
+
+  meta = with lib; {
+    description = "Python implementation of the ICMP protocol";
+    homepage = "https://github.com/ValentinBELYN/icmplib";
+    license = with licenses; [ lgpl3Plus ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/ics/default.nix b/nixpkgs/pkgs/development/python-modules/ics/default.nix
index 30661c9bc91a..c186020fee1e 100644
--- a/nixpkgs/pkgs/development/python-modules/ics/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/ics/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchFromGitHub, pythonOlder
+{ lib, stdenv, buildPythonPackage, fetchFromGitHub, pythonOlder
 , tatsu, arrow
 , pytestCheckHook, pytest-flakes
 }:
@@ -25,7 +25,7 @@ buildPythonPackage rec {
 
   checkInputs = [ pytestCheckHook pytest-flakes ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Pythonic and easy iCalendar library (RFC 5545)";
     longDescription = ''
       Ics.py is a pythonic and easy iCalendar library. Its goals are to read and
diff --git a/nixpkgs/pkgs/development/python-modules/identify/default.nix b/nixpkgs/pkgs/development/python-modules/identify/default.nix
index 833e1e3dd29e..f3b8393a2759 100644
--- a/nixpkgs/pkgs/development/python-modules/identify/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/identify/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "identify";
-  version = "1.5.10";
+  version = "1.5.13";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "943cd299ac7f5715fcb3f684e2fc1594c1e0f22a90d15398e5888143bd4144b5";
+    sha256 = "70b638cf4743f33042bebb3b51e25261a0a10e80f978739f17e7fd4837664a66";
   };
 
   # Tests not included in PyPI tarball
diff --git a/nixpkgs/pkgs/development/python-modules/ifaddr/default.nix b/nixpkgs/pkgs/development/python-modules/ifaddr/default.nix
index b4a9b20f08d1..47997dbdc265 100644
--- a/nixpkgs/pkgs/development/python-modules/ifaddr/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/ifaddr/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , ipaddress
@@ -20,7 +20,7 @@ buildPythonPackage rec {
    ${python.interpreter} -m unittest discover
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://github.com/pydron/ifaddr";
     description = "Enumerates all IP addresses on all network adapters of the system";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/ifconfig-parser/default.nix b/nixpkgs/pkgs/development/python-modules/ifconfig-parser/default.nix
index cb3fb0fded5d..bdfd3767f8c4 100644
--- a/nixpkgs/pkgs/development/python-modules/ifconfig-parser/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/ifconfig-parser/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchFromGitHub }:
+{ lib, stdenv, buildPythonPackage, fetchFromGitHub }:
 
 buildPythonPackage rec {
   pname = "ifconfig-parser";
@@ -16,7 +16,7 @@ buildPythonPackage rec {
     python -m unittest -v test_ifconfig_parser.TestIfconfigParser
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Unsophisticated python package for parsing raw output of ifconfig.";
     homepage = "https://github.com/KnightWhoSayNi/ifconfig-parser";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/ifcopenshell/default.nix b/nixpkgs/pkgs/development/python-modules/ifcopenshell/default.nix
index 16ee8dcbace8..75d1c4d77405 100644
--- a/nixpkgs/pkgs/development/python-modules/ifcopenshell/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/ifcopenshell/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchFromGitHub
 , substituteAll
@@ -58,7 +58,7 @@ buildPythonPackage rec {
     "-DLIBXML2_LIBRARIES=${libxml2.out}/lib/${if stdenv.isDarwin then "libxml2.dylib" else "libxml2.so"}"
   ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Open source IFC library and geometry engine";
     homepage    = http://ifcopenshell.org/;
     license     = licenses.lgpl3;
diff --git a/nixpkgs/pkgs/development/python-modules/ijson/default.nix b/nixpkgs/pkgs/development/python-modules/ijson/default.nix
index 8dc22d20e69a..a82a20ca7c8a 100644
--- a/nixpkgs/pkgs/development/python-modules/ijson/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/ijson/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi }:
+{ lib, stdenv, buildPythonPackage, fetchPypi }:
 
 buildPythonPackage rec {
   pname = "ijson";
@@ -11,7 +11,7 @@ buildPythonPackage rec {
 
   doCheck = false; # something about yajl
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Iterative JSON parser with a standard Python iterator interface";
     homepage = "https://github.com/ICRAR/ijson";
     license = licenses.bsd3;
diff --git a/nixpkgs/pkgs/development/python-modules/image-match/default.nix b/nixpkgs/pkgs/development/python-modules/image-match/default.nix
index 6bb45f83790f..5c1953d6ac3f 100644
--- a/nixpkgs/pkgs/development/python-modules/image-match/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/image-match/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchFromGitHub, pytestrunner, scikitimage }:
+{ lib, stdenv, buildPythonPackage, fetchFromGitHub, pytestrunner, scikitimage }:
 
 buildPythonPackage {
   pname = "image-match";
@@ -25,7 +25,7 @@ buildPythonPackage {
   # tests cannot work without elasticsearch
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://github.com/ascribe/image-match";
     description = "Quickly search over billions of images";
     license = licenses.asl20;
diff --git a/nixpkgs/pkgs/development/python-modules/imagecorruptions/default.nix b/nixpkgs/pkgs/development/python-modules/imagecorruptions/default.nix
index 843537453c53..65c1cfd020a8 100644
--- a/nixpkgs/pkgs/development/python-modules/imagecorruptions/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/imagecorruptions/default.nix
@@ -2,7 +2,7 @@
 , fetchPypi
 , numpy
 , scikitimage
-, stdenv
+, lib, stdenv
 , opencv3
 }:
 
@@ -26,7 +26,7 @@ buildPythonPackage rec {
     opencv3
   ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://github.com/bethgelab/imagecorruptions";
     description = "This package provides a set of image corruptions";
     license = licenses.asl20;
diff --git a/nixpkgs/pkgs/development/python-modules/imageio/default.nix b/nixpkgs/pkgs/development/python-modules/imageio/default.nix
index ce24dfb5896a..71f7eae9c32f 100644
--- a/nixpkgs/pkgs/development/python-modules/imageio/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/imageio/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , isPy27
 , pathlib
@@ -24,7 +24,7 @@ buildPythonPackage rec {
     inherit pname version;
   };
 
-  checkInputs = [ pytest psutil ] ++ stdenv.lib.optionals isPy3k [
+  checkInputs = [ pytest psutil ] ++ lib.optionals isPy3k [
     imageio-ffmpeg ffmpeg_3
     ];
   propagatedBuildInputs = [ numpy pillow ];
@@ -46,7 +46,7 @@ buildPythonPackage rec {
     substituteInPlace tests/test_ffmpeg.py --replace 'test_get_exe_installed' 'get_exe_installed'
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Library for reading and writing a wide range of image, video, scientific, and volumetric data formats";
     homepage = "http://imageio.github.io/";
     license = licenses.bsd2;
diff --git a/nixpkgs/pkgs/development/python-modules/imagesize/default.nix b/nixpkgs/pkgs/development/python-modules/imagesize/default.nix
index ab3ee46c1b83..cd48f54ee8f4 100644
--- a/nixpkgs/pkgs/development/python-modules/imagesize/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/imagesize/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 }:
@@ -12,7 +12,7 @@ buildPythonPackage rec {
     sha256 = "b1f6b5a4eab1f73479a50fb79fcf729514a900c341d8503d62a62dbc4127a2b1";
   };
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Getting image size from png/jpeg/jpeg2000/gif file";
     homepage = "https://github.com/shibukawa/imagesize_py";
     license = with licenses; [ mit ];
diff --git a/nixpkgs/pkgs/development/python-modules/imapclient/default.nix b/nixpkgs/pkgs/development/python-modules/imapclient/default.nix
index ea9bc4844fad..c091f53b8d4f 100644
--- a/nixpkgs/pkgs/development/python-modules/imapclient/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/imapclient/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchFromGitHub
 , mock
@@ -26,7 +26,7 @@ buildPythonPackage rec {
 
   checkInputs = [ mock ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://imapclient.readthedocs.io";
     description = "Easy-to-use, Pythonic and complete IMAP client library";
     license = licenses.bsd3;
diff --git a/nixpkgs/pkgs/development/python-modules/imbalanced-learn/0.4.nix b/nixpkgs/pkgs/development/python-modules/imbalanced-learn/0.4.nix
index 1ec139d5b3ad..fe21096d635d 100644
--- a/nixpkgs/pkgs/development/python-modules/imbalanced-learn/0.4.nix
+++ b/nixpkgs/pkgs/development/python-modules/imbalanced-learn/0.4.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi, scikitlearn, pandas, nose, pytest }:
+{ lib, stdenv, buildPythonPackage, fetchPypi, scikitlearn, pandas, nose, pytest }:
 
 buildPythonPackage rec {
   pname = "imbalanced-learn";
@@ -21,7 +21,7 @@ buildPythonPackage rec {
                          and not wrong_memory'
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Library offering a number of re-sampling techniques commonly used in datasets showing strong between-class imbalance";
     homepage = "https://github.com/scikit-learn-contrib/imbalanced-learn";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/imbalanced-learn/default.nix b/nixpkgs/pkgs/development/python-modules/imbalanced-learn/default.nix
index 21018518ca28..4253ed30e415 100644
--- a/nixpkgs/pkgs/development/python-modules/imbalanced-learn/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/imbalanced-learn/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi, isPy27
+{ lib, stdenv, buildPythonPackage, fetchPypi, isPy27
 , pandas
 , pytestCheckHook
 , scikitlearn
@@ -28,7 +28,7 @@ buildPythonPackage rec {
     "test_make_imbalanced_iris"
   ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Library offering a number of re-sampling techniques commonly used in datasets showing strong between-class imbalance";
     homepage = "https://github.com/scikit-learn-contrib/imbalanced-learn";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/imgaug/default.nix b/nixpkgs/pkgs/development/python-modules/imgaug/default.nix
index 82f10c1bb74c..9ca8531dbbce 100644
--- a/nixpkgs/pkgs/development/python-modules/imgaug/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/imgaug/default.nix
@@ -9,7 +9,7 @@
 , scipy
 , shapely
 , six
-, stdenv
+, lib, stdenv
 }:
 
 buildPythonPackage rec {
@@ -49,7 +49,7 @@ buildPythonPackage rec {
 
   checkInputs = [ opencv3 pytest ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://github.com/aleju/imgaug";
     description = "Image augmentation for machine learning experiments";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/imgsize/default.nix b/nixpkgs/pkgs/development/python-modules/imgsize/default.nix
index d4f066b8b0b2..d1a69c043d0f 100644
--- a/nixpkgs/pkgs/development/python-modules/imgsize/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/imgsize/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchFromGitHub
 }:
@@ -14,7 +14,7 @@ buildPythonPackage rec {
     sha256 = "0k24qj4i996fz7lpjrs36il6lp51rh13b0j2wip87cy5v9109m2d";
   };
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Pure Python image size library";
     homepage = "https://github.com/ojii/imgsize";
     license = with licenses; [ bsd3 ];
diff --git a/nixpkgs/pkgs/development/python-modules/importmagic/default.nix b/nixpkgs/pkgs/development/python-modules/importmagic/default.nix
index 5217474ac232..3a6a3c9ef8d7 100644
--- a/nixpkgs/pkgs/development/python-modules/importmagic/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/importmagic/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , six
@@ -17,7 +17,7 @@ buildPythonPackage rec {
 
   doCheck = false;  # missing json file from tarball
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Python Import Magic - automagically add, remove and manage imports";
     homepage = "https://github.com/alecthomas/importmagic";
     license = licenses.bsd0;
diff --git a/nixpkgs/pkgs/development/python-modules/imread/default.nix b/nixpkgs/pkgs/development/python-modules/imread/default.nix
index 1e4ccde4b310..65ae47ed87b0 100644
--- a/nixpkgs/pkgs/development/python-modules/imread/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/imread/default.nix
@@ -1,8 +1,8 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , nose
-, pkgconfig
+, pkg-config
 , libjpeg
 , libpng
 , libtiff
@@ -21,11 +21,11 @@ buildPythonPackage rec {
   };
 
 
-  nativeBuildInputs = [ pkgconfig ];
+  nativeBuildInputs = [ pkg-config ];
   buildInputs = [ nose libjpeg libpng libtiff libwebp ];
   propagatedBuildInputs = [ numpy ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Python package to load images as numpy arrays";
     homepage = "https://imread.readthedocs.io/en/latest/";
     maintainers = with maintainers; [ luispedro ];
diff --git a/nixpkgs/pkgs/development/python-modules/imutils/default.nix b/nixpkgs/pkgs/development/python-modules/imutils/default.nix
index 9a0797f095f6..33c2ae0001c2 100644
--- a/nixpkgs/pkgs/development/python-modules/imutils/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/imutils/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , opencv3
@@ -18,7 +18,7 @@ buildPythonPackage rec {
   # no tests
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://github.com/jrosebr1/imutils";
     description = "A series of convenience functions to make basic image processing functions";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/inflection/default.nix b/nixpkgs/pkgs/development/python-modules/inflection/default.nix
index 6f439f0f69ac..f6d327d229d8 100644
--- a/nixpkgs/pkgs/development/python-modules/inflection/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/inflection/default.nix
@@ -12,7 +12,7 @@ buildPythonPackage rec {
 
   checkInputs = [ pytest ];
   # Suppress overly verbose output if tests run successfully
-  checkPhase = ''pytest >/dev/null || pytest'';
+  checkPhase = "pytest >/dev/null || pytest";
 
   meta = {
    homepage = "https://github.com/jpvanhal/inflection";
diff --git a/nixpkgs/pkgs/development/python-modules/influxdb/default.nix b/nixpkgs/pkgs/development/python-modules/influxdb/default.nix
index 650235b29401..2d0fd5a93adb 100644
--- a/nixpkgs/pkgs/development/python-modules/influxdb/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/influxdb/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , requests
@@ -29,7 +29,7 @@ buildPythonPackage rec {
   doCheck = false;
   propagatedBuildInputs = [ requests dateutil pytz six msgpack ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Python client for InfluxDB";
     homepage = "https://github.com/influxdb/influxdb-python";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/influxgraph/default.nix b/nixpkgs/pkgs/development/python-modules/influxgraph/default.nix
index c4597650fe71..32374453375d 100644
--- a/nixpkgs/pkgs/development/python-modules/influxgraph/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/influxgraph/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi, isPy3k
+{ lib, stdenv, buildPythonPackage, fetchPypi, isPy3k
 , influxdb, graphite_api, memcached
 }:
 
@@ -11,7 +11,7 @@ buildPythonPackage rec {
     sha256 = "0l33sfwdh4bfprmzp2kx0d9098g6yxbnhyyx9qr3kzczpm0jg9vy";
   };
 
-  patchPhase = stdenv.lib.optionalString isPy3k ''
+  patchPhase = lib.optionalString isPy3k ''
     sed 's/python-memcached/python3-memcached/' \
       -i ./influxgraph.egg-info/requires.txt    \
       -i ./setup.py
@@ -21,7 +21,7 @@ buildPythonPackage rec {
 
   passthru.moduleName = "influxgraph.InfluxDBFinder";
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "InfluxDB storage plugin for Graphite-API";
     homepage = "https://github.com/InfluxGraph/influxgraph";
     license = licenses.asl20;
diff --git a/nixpkgs/pkgs/development/python-modules/infoqscraper/default.nix b/nixpkgs/pkgs/development/python-modules/infoqscraper/default.nix
index 4a1543083432..4baa891a7790 100644
--- a/nixpkgs/pkgs/development/python-modules/infoqscraper/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/infoqscraper/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , html5lib
 , six
@@ -23,7 +23,7 @@ buildPythonPackage rec {
   buildInputs = [ html5lib ];
   propagatedBuildInputs = [ six beautifulsoup4 pkgs.ffmpeg_3 pkgs.swftools pkgs.rtmpdump ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Discover presentations and/or create a movie consisting of slides and audio track from an infoq url";
     homepage = "https://github.com/cykl/infoqscraper/wiki";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/inifile/default.nix b/nixpkgs/pkgs/development/python-modules/inifile/default.nix
index e64ef76356d1..9bd24a4d7889 100644
--- a/nixpkgs/pkgs/development/python-modules/inifile/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/inifile/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 }:
@@ -12,7 +12,7 @@ buildPythonPackage rec {
     sha256 = "0zgd53czc1irwx6b5zip8xlmyfr40hz2pd498d8yv61znj6lm16h";
   };
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "A small INI library for Python";
     homepage    = "https://github.com/mitsuhiko/python-inifile";
     license     = licenses.bsd0;
diff --git a/nixpkgs/pkgs/development/python-modules/iniparse/default.nix b/nixpkgs/pkgs/development/python-modules/iniparse/default.nix
index e240b0863c23..c515b7865b15 100644
--- a/nixpkgs/pkgs/development/python-modules/iniparse/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/iniparse/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , python
@@ -23,7 +23,7 @@ buildPythonPackage rec {
   # Does not install tests
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Accessing and Modifying INI files";
     homepage = "https://github.com/candlepin/python-iniparse";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/inquirer/default.nix b/nixpkgs/pkgs/development/python-modules/inquirer/default.nix
index c17c3eb4af88..c434a3f52bce 100644
--- a/nixpkgs/pkgs/development/python-modules/inquirer/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/inquirer/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchFromGitHub, python-editor, readchar, blessed, pytest, pytestcov, pexpect, pytest-mock }:
+{ lib, stdenv, buildPythonPackage, fetchFromGitHub, python-editor, readchar, blessed, pytest, pytestcov, pexpect, pytest-mock }:
 
 buildPythonPackage rec {
   pname = "inquirer";
@@ -26,7 +26,7 @@ buildPythonPackage rec {
     pytest --cov-report=term-missing  --cov inquirer --no-cov-on-fail tests/unit tests/integration
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://github.com/magmax/python-inquirer";
     description = "A collection of common interactive command line user interfaces, based on Inquirer.js";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/interruptingcow/default.nix b/nixpkgs/pkgs/development/python-modules/interruptingcow/default.nix
index 279fb1c9685b..b4e1dfaff181 100644
--- a/nixpkgs/pkgs/development/python-modules/interruptingcow/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/interruptingcow/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi }:
+{ lib, stdenv, buildPythonPackage, fetchPypi }:
 buildPythonPackage rec {
   pname = "interruptingcow";
   version = "0.8";
@@ -8,7 +8,7 @@ buildPythonPackage rec {
     sha256 = "3e8cd5058b651e625702cba53e3b1fb76d7a5ec07ab69c52a167a9f784e3306c";
   };
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "A watchdog that interrupts long running code";
     homepage = "https://bitbucket.org/evzijst/interruptingcow";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/intervaltree/default.nix b/nixpkgs/pkgs/development/python-modules/intervaltree/default.nix
index 8b0bbf2dd395..27a5fa3650e8 100644
--- a/nixpkgs/pkgs/development/python-modules/intervaltree/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/intervaltree/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi
+{ lib, stdenv, buildPythonPackage, fetchPypi
 , python, pytest, sortedcontainers }:
 
 buildPythonPackage rec {
@@ -21,7 +21,7 @@ buildPythonPackage rec {
     runHook postCheck
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Editable interval tree data structure for Python 2 and 3";
     homepage =  "https://github.com/chaimleib/intervaltree";
     license = [ licenses.asl20 ];
diff --git a/nixpkgs/pkgs/development/python-modules/ipaddr/default.nix b/nixpkgs/pkgs/development/python-modules/ipaddr/default.nix
index e76aa6ee2a57..427681fedb86 100644
--- a/nixpkgs/pkgs/development/python-modules/ipaddr/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/ipaddr/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , isPy3k
@@ -14,7 +14,7 @@ buildPythonPackage rec {
     sha256 = "1ml8r8z3f0mnn381qs1snbffa920i9ycp6mm2am1d3aqczkdz4j0";
   };
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Google's IP address manipulation library";
     homepage = "https://github.com/google/ipaddr-py";
     license = licenses.asl20;
diff --git a/nixpkgs/pkgs/development/python-modules/ipaddress/default.nix b/nixpkgs/pkgs/development/python-modules/ipaddress/default.nix
index 0074ad2420d8..f2e479aff96e 100644
--- a/nixpkgs/pkgs/development/python-modules/ipaddress/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/ipaddress/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , pythonAtLeast
@@ -18,7 +18,7 @@ if (pythonAtLeast "3.3") then null else buildPythonPackage rec {
     ${python.interpreter} test_ipaddress.py
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Port of the 3.3+ ipaddress module to 2.6, 2.7, and 3.2";
     homepage = "https://github.com/phihag/ipaddress";
     license = licenses.psfl;
diff --git a/nixpkgs/pkgs/development/python-modules/ipdb/default.nix b/nixpkgs/pkgs/development/python-modules/ipdb/default.nix
index df2ae6b46616..b21907f75ff5 100644
--- a/nixpkgs/pkgs/development/python-modules/ipdb/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/ipdb/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , ipython
@@ -24,7 +24,7 @@ buildPythonPackage rec {
     export HOME=$(mktemp -d)
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://github.com/gotcha/ipdb";
     description = "IPython-enabled pdb";
     license = licenses.bsd0;
diff --git a/nixpkgs/pkgs/development/python-modules/ipdbplugin/default.nix b/nixpkgs/pkgs/development/python-modules/ipdbplugin/default.nix
index 7c9ee263b2b4..057d82cbebc3 100644
--- a/nixpkgs/pkgs/development/python-modules/ipdbplugin/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/ipdbplugin/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , nose
@@ -16,7 +16,7 @@ buildPythonPackage rec {
 
   propagatedBuildInputs = [ nose ipython ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://github.com/flavioamieiro/nose-ipdb/tree/master";
     description = "Nose plugin to use iPdb instead of Pdb when tests fail";
     license = licenses.lgpl2;
diff --git a/nixpkgs/pkgs/development/python-modules/ipfsapi/default.nix b/nixpkgs/pkgs/development/python-modules/ipfsapi/default.nix
index 1778e5a81af6..3deb0c6cb80c 100644
--- a/nixpkgs/pkgs/development/python-modules/ipfsapi/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/ipfsapi/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchFromGitHub
 , isPy27
@@ -20,7 +20,7 @@ buildPythonPackage {
 
   propagatedBuildInputs = [ six requests ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "A python client library for the IPFS API";
     license = licenses.mit;
     maintainers = with maintainers; [ mguentner ];
diff --git a/nixpkgs/pkgs/development/python-modules/iptools/default.nix b/nixpkgs/pkgs/development/python-modules/iptools/default.nix
index 9498ee2762a3..431c05bb3881 100644
--- a/nixpkgs/pkgs/development/python-modules/iptools/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/iptools/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , nose
@@ -15,7 +15,7 @@ buildPythonPackage rec {
 
   buildInputs = [ nose ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Utilities for manipulating IP addresses including a class that can be used to include CIDR network blocks in Django's INTERNAL_IPS setting";
     homepage = "https://pypi.python.org/pypi/iptools";
     license = licenses.bsd0;
diff --git a/nixpkgs/pkgs/development/python-modules/ipython/5.nix b/nixpkgs/pkgs/development/python-modules/ipython/5.nix
index 598e890bb1c5..a75ceaa0b76d 100644
--- a/nixpkgs/pkgs/development/python-modules/ipython/5.nix
+++ b/nixpkgs/pkgs/development/python-modules/ipython/5.nix
@@ -33,7 +33,7 @@ buildPythonPackage rec {
     sha256 = "4bac649857611baaaf76bc82c173aa542f7486446c335fe1a6c05d0d491c8906";
   };
 
-  prePatch = stdenv.lib.optionalString stdenv.isDarwin ''
+  prePatch = lib.optionalString stdenv.isDarwin ''
     substituteInPlace setup.py --replace "'gnureadline'" " "
   '';
 
diff --git a/nixpkgs/pkgs/development/python-modules/ipyvue/default.nix b/nixpkgs/pkgs/development/python-modules/ipyvue/default.nix
index 3941f08348a5..0ccb1b2a4e14 100644
--- a/nixpkgs/pkgs/development/python-modules/ipyvue/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/ipyvue/default.nix
@@ -8,13 +8,13 @@
 
 buildPythonPackage rec {
   pname = "ipyvue";
-  version = "1.4.1";
+  version = "1.5.0";
 
   disabled = isPy27;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "5b59cf92a1eb7fbef4f2d02be49ac562a721a6cf34f991ac963222cf4c8885a1";
+    sha256 = "e8549a7ac7dc45948a5f2735e17f97622313c7fea24ea3c1bd4a5ebf02bf5638";
   };
 
   propagatedBuildInputs = [ ipywidgets ];
diff --git a/nixpkgs/pkgs/development/python-modules/isbnlib/default.nix b/nixpkgs/pkgs/development/python-modules/isbnlib/default.nix
index 8398117041be..3b03a15b9a4d 100644
--- a/nixpkgs/pkgs/development/python-modules/isbnlib/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/isbnlib/default.nix
@@ -7,11 +7,11 @@
 
 buildPythonPackage rec {
   pname = "isbnlib";
-  version = "3.10.4";
+  version = "3.10.5";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "f5bfbc362e2a73dfc82449ac459b59a7f6b20bcebf82f6bd87d773dc45073646";
+    sha256 = "cb3b400b37a73cf4a0bc698be2ea414e78ff117867baed9313aa8c97596e1b98";
   };
 
   checkInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/iso3166/default.nix b/nixpkgs/pkgs/development/python-modules/iso3166/default.nix
index f6a4a00283c5..acf6d3c9331d 100644
--- a/nixpkgs/pkgs/development/python-modules/iso3166/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/iso3166/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchFromGitHub, buildPythonPackage, pytest }:
+{ lib, stdenv, fetchFromGitHub, buildPythonPackage, pytest }:
 
 buildPythonPackage {
   pname = "iso3166";
@@ -18,7 +18,7 @@ buildPythonPackage {
     py.test
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://github.com/deactivated/python-iso3166";
     description = "Self-contained ISO 3166-1 country definitions";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/isodate/default.nix b/nixpkgs/pkgs/development/python-modules/isodate/default.nix
index d46fb7ed74ca..d2098a83c95e 100644
--- a/nixpkgs/pkgs/development/python-modules/isodate/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/isodate/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , python
@@ -20,7 +20,7 @@ buildPythonPackage rec {
     ${python.interpreter} -m unittest discover -s src/isodate/tests
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "ISO 8601 date/time parser";
     homepage = "http://cheeseshop.python.org/pypi/isodate";
     license = licenses.bsd0;
diff --git a/nixpkgs/pkgs/development/python-modules/itemloaders/default.nix b/nixpkgs/pkgs/development/python-modules/itemloaders/default.nix
index 08c7e50e95e9..107585f0416c 100644
--- a/nixpkgs/pkgs/development/python-modules/itemloaders/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/itemloaders/default.nix
@@ -11,7 +11,7 @@
 
 buildPythonPackage rec {
   pname = "itemloaders";
-  version = "1.0.3";
+  version = "1.0.4";
 
   disabled = isPy27;
 
@@ -20,7 +20,7 @@ buildPythonPackage rec {
     owner = "scrapy";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1s8c2il7jyfixpb7h5zq0lf4s07pqwia4ycpf3slb8whcp0h8bfm";
+    sha256 = "0j68xgx2z63sc1nc9clw6744036vfbijdsghvjv6pk674d5lgyam";
   };
 
   propagatedBuildInputs = [ w3lib parsel jmespath itemadapter ];
diff --git a/nixpkgs/pkgs/development/python-modules/itsdangerous/default.nix b/nixpkgs/pkgs/development/python-modules/itsdangerous/default.nix
index 4761a98dc301..e89786d4e18d 100644
--- a/nixpkgs/pkgs/development/python-modules/itsdangerous/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/itsdangerous/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 }:
@@ -12,7 +12,7 @@ buildPythonPackage rec {
     sha256 = "321b033d07f2a4136d3ec762eac9f16a10ccd60f53c0c91af90217ace7ba1f19";
   };
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Helpers to pass trusted data to untrusted environments and back";
     homepage = "https://pypi.python.org/pypi/itsdangerous/";
     license = licenses.bsd0;
diff --git a/nixpkgs/pkgs/development/python-modules/itypes/default.nix b/nixpkgs/pkgs/development/python-modules/itypes/default.nix
index 17ba3a2183a3..417d1a20b3bf 100644
--- a/nixpkgs/pkgs/development/python-modules/itypes/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/itypes/default.nix
@@ -1,5 +1,5 @@
 {
-  stdenv,
+  lib, stdenv,
   fetchFromGitHub,
   buildPythonPackage,
   pytest,
@@ -22,7 +22,7 @@ buildPythonPackage rec {
     pytest tests.py
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Simple immutable types for python";
     homepage = "https://github.com/tomchristie/itypes";
     license = licenses.bsd3;
diff --git a/nixpkgs/pkgs/development/python-modules/j2cli/default.nix b/nixpkgs/pkgs/development/python-modules/j2cli/default.nix
index b2b80e2766c7..14cf18ae694f 100644
--- a/nixpkgs/pkgs/development/python-modules/j2cli/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/j2cli/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , jinja2
@@ -18,7 +18,7 @@ buildPythonPackage rec {
   doCheck = false; # tests aren't installed thus aren't found, so skip
   propagatedBuildInputs = [ jinja2 pyyaml setuptools ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://github.com/kolypto/j2cli";
     description = "Jinja2 Command-Line Tool";
     license = licenses.bsd2;
diff --git a/nixpkgs/pkgs/development/python-modules/jabberbot/default.nix b/nixpkgs/pkgs/development/python-modules/jabberbot/default.nix
index 4e550bcca20c..4c625d944859 100644
--- a/nixpkgs/pkgs/development/python-modules/jabberbot/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/jabberbot/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, isPy3k, fetchPypi, xmpppy }:
+{ lib, stdenv, buildPythonPackage, isPy3k, fetchPypi, xmpppy }:
 
 buildPythonPackage rec {
   pname = "jabberbot";
@@ -14,7 +14,7 @@ buildPythonPackage rec {
 
   doCheck = false; # lol, it does not even specify dependencies properly
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "A framework for writing Jabber/XMPP bots and services";
     homepage = "http://thp.io/2007/python-jabberbot/";
     license = licenses.gpl3;
diff --git a/nixpkgs/pkgs/development/python-modules/jc/default.nix b/nixpkgs/pkgs/development/python-modules/jc/default.nix
index ba96f8ccfb94..6f120fa6ea2e 100644
--- a/nixpkgs/pkgs/development/python-modules/jc/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/jc/default.nix
@@ -1,27 +1,30 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchFromGitHub
 , ruamel_yaml
 , xmltodict
 , pygments
 , isPy27
+, pytestCheckHook
 }:
 
 buildPythonPackage rec {
   pname = "jc";
-  version = "1.14.0";
+  version = "1.14.1";
   disabled = isPy27;
 
   src = fetchFromGitHub {
     owner = "kellyjonbrazil";
     repo = "jc";
     rev = "v${version}";
-    sha256 = "0js3mqp6xxg45qsz8wnyyqf4m0wj1kz67bkmvirhdy7s01zhd5hq";
+    sha256 = "1vzzz7dlg6apxhcl0qkfdpp2v9d0q6jyafpfmklkcbjs31zvwcsw";
   };
 
   propagatedBuildInputs = [ ruamel_yaml xmltodict pygments ];
 
-  meta = with stdenv.lib; {
+  checkInputs = [ pytestCheckHook ];
+
+  meta = with lib; {
     description = "This tool serializes the output of popular command line tools and filetypes to structured JSON output";
     homepage = "https://github.com/kellyjonbrazil/jc";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/jdatetime/default.nix b/nixpkgs/pkgs/development/python-modules/jdatetime/default.nix
index d51d54287e76..d4aa49c3ca3c 100644
--- a/nixpkgs/pkgs/development/python-modules/jdatetime/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/jdatetime/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi, six }:
+{ lib, stdenv, buildPythonPackage, fetchPypi, six }:
 
 buildPythonPackage rec {
   pname = "jdatetime";
@@ -11,7 +11,7 @@ buildPythonPackage rec {
 
   propagatedBuildInputs = [ six ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Jalali datetime binding for python";
     homepage = "https://pypi.python.org/pypi/jdatetime";
     license = licenses.psfl;
diff --git a/nixpkgs/pkgs/development/python-modules/jedi/default.nix b/nixpkgs/pkgs/development/python-modules/jedi/default.nix
index ab8f72ea9f18..6e833a774604 100644
--- a/nixpkgs/pkgs/development/python-modules/jedi/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/jedi/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchFromGitHub, fetchPypi, pytest, glibcLocales, tox, pytestcov, parso }:
+{ lib, stdenv, buildPythonPackage, fetchFromGitHub, fetchPypi, pytest, glibcLocales, tox, pytestcov, parso }:
 
 buildPythonPackage rec {
   pname = "jedi";
@@ -25,7 +25,7 @@ buildPythonPackage rec {
   # tox required for tests: https://github.com/davidhalter/jedi/issues/808
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://github.com/davidhalter/jedi";
     description = "An autocompletion tool for Python that can be used for text editors";
     license = licenses.lgpl3Plus;
diff --git a/nixpkgs/pkgs/development/python-modules/jenkins-job-builder/default.nix b/nixpkgs/pkgs/development/python-modules/jenkins-job-builder/default.nix
index 3cc2bb69e0e9..7d4f6dd93639 100644
--- a/nixpkgs/pkgs/development/python-modules/jenkins-job-builder/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/jenkins-job-builder/default.nix
@@ -10,11 +10,11 @@
 
 buildPythonPackage rec {
   pname = "jenkins-job-builder";
-  version = "3.7.0";
+  version = "3.8.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "bca1f458206fc8be82d790685b603d4158e2034a651f2e148e31526984b9d551";
+    sha256 = "sha256-uRyeRP1y3GS7tXb0kHLBi7+trJRme/Ke3xgOY+LqZ6k=";
   };
 
   postPatch = ''
@@ -24,7 +24,7 @@ buildPythonPackage rec {
   propagatedBuildInputs = [ pbr python-jenkins pyyaml six stevedore fasteners jinja2 ];
 
   # Need to fix test deps, relies on stestr and a few other packages that aren't available on nixpkgs
-  checkPhase = ''$out/bin/jenkins-jobs --help'';
+  checkPhase = "$out/bin/jenkins-jobs --help";
 
   meta = with lib; {
     description = "Jenkins Job Builder is a system for configuring Jenkins jobs using simple YAML files stored in Git";
diff --git a/nixpkgs/pkgs/development/python-modules/jenkinsapi/default.nix b/nixpkgs/pkgs/development/python-modules/jenkinsapi/default.nix
index 40bf7752a90b..912c21cc8fb4 100644
--- a/nixpkgs/pkgs/development/python-modules/jenkinsapi/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/jenkinsapi/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , mock
@@ -30,7 +30,7 @@ buildPythonPackage rec {
       -k "not systests and not test_plugins and not test_view"
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "A Python API for accessing resources on a Jenkins continuous-integration server";
     homepage = "https://github.com/salimfadhley/jenkinsapi";
     maintainers = with maintainers; [ drets ];
diff --git a/nixpkgs/pkgs/development/python-modules/jinja2/default.nix b/nixpkgs/pkgs/development/python-modules/jinja2/default.nix
index 33d6003cae74..5dc3cbe105e5 100644
--- a/nixpkgs/pkgs/development/python-modules/jinja2/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/jinja2/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , isPy3k
 , fetchPypi
@@ -27,7 +27,7 @@ buildPythonPackage rec {
     pytest -v tests
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "http://jinja.pocoo.org/";
     description = "Stand-alone template engine";
     license = licenses.bsd3;
diff --git a/nixpkgs/pkgs/development/python-modules/jinja2_pluralize/default.nix b/nixpkgs/pkgs/development/python-modules/jinja2_pluralize/default.nix
index 4a62fa4c25b7..0a6d0c365a04 100644
--- a/nixpkgs/pkgs/development/python-modules/jinja2_pluralize/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/jinja2_pluralize/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi, jinja2, inflect }:
+{ lib, stdenv, buildPythonPackage, fetchPypi, jinja2, inflect }:
 
 buildPythonPackage rec {
   pname = "jinja2_pluralize";
@@ -14,7 +14,7 @@ buildPythonPackage rec {
     inflect
   ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Jinja2 pluralize filters";
     homepage = "https://github.com/audreyr/jinja2_pluralize";
     license = licenses.bsd3;
diff --git a/nixpkgs/pkgs/development/python-modules/jinja2_time/default.nix b/nixpkgs/pkgs/development/python-modules/jinja2_time/default.nix
index d84c16f1abae..7887fe96f75e 100644
--- a/nixpkgs/pkgs/development/python-modules/jinja2_time/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/jinja2_time/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , arrow
@@ -16,7 +16,7 @@ buildPythonPackage rec {
 
   propagatedBuildInputs = [ arrow jinja2 ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://github.com/hackebrot/jinja2-time";
     description = "Jinja2 Extension for Dates and Times";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/jmespath/default.nix b/nixpkgs/pkgs/development/python-modules/jmespath/default.nix
index 993955f2a032..3b31700de0eb 100644
--- a/nixpkgs/pkgs/development/python-modules/jmespath/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/jmespath/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , ply
@@ -17,7 +17,7 @@ buildPythonPackage rec {
   buildInputs = [ nose ];
   propagatedBuildInputs = [ ply ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://github.com/boto/jmespath";
     description = "JMESPath allows you to declaratively specify how to extract elements from a JSON document";
     license = "BSD";
diff --git a/nixpkgs/pkgs/development/python-modules/johnnycanencrypt/Cargo.lock.patch b/nixpkgs/pkgs/development/python-modules/johnnycanencrypt/Cargo.lock.patch
new file mode 100644
index 000000000000..b70f9304c728
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/johnnycanencrypt/Cargo.lock.patch
@@ -0,0 +1,1194 @@
+diff --git a/Cargo.lock b/Cargo.lock
+new file mode 100644
+index 0000000..84c37bc
+--- /dev/null
++++ b/Cargo.lock
+@@ -0,0 +1,1188 @@
++# This file is automatically @generated by Cargo.
++# It is not intended for manual editing.
++[[package]]
++name = "addr2line"
++version = "0.14.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "a55f82cfe485775d02112886f4169bde0c5894d75e79ead7eafe7e40a25e45f7"
++dependencies = [
++ "gimli",
++]
++
++[[package]]
++name = "adler"
++version = "0.2.3"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "ee2a4ec343196209d6594e19543ae87a39f96d5534d7174822a3ad825dd6ed7e"
++
++[[package]]
++name = "aead"
++version = "0.3.2"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "7fc95d1bdb8e6666b2b217308eeeb09f2d6728d104be3e31916cc74d15420331"
++dependencies = [
++ "generic-array",
++]
++
++[[package]]
++name = "aho-corasick"
++version = "0.7.15"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "7404febffaa47dac81aa44dba71523c9d069b1bdc50a77db41195149e17f68e5"
++dependencies = [
++ "memchr",
++]
++
++[[package]]
++name = "anyhow"
++version = "1.0.37"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "ee67c11feeac938fae061b232e38e0b6d94f97a9df10e6271319325ac4c56a86"
++
++[[package]]
++name = "arrayref"
++version = "0.3.6"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "a4c527152e37cf757a3f78aae5a06fbeefdb07ccc535c980a3208ee3060dd544"
++
++[[package]]
++name = "arrayvec"
++version = "0.5.2"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "23b62fc65de8e4e7f52534fb52b0f3ed04746ae267519eef2a83941e8085068b"
++
++[[package]]
++name = "ascii-canvas"
++version = "2.0.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "ff8eb72df928aafb99fe5d37b383f2fe25bd2a765e3e5f7c365916b6f2463a29"
++dependencies = [
++ "term",
++]
++
++[[package]]
++name = "atty"
++version = "0.2.14"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8"
++dependencies = [
++ "hermit-abi",
++ "libc",
++ "winapi",
++]
++
++[[package]]
++name = "autocfg"
++version = "1.0.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "cdb031dd78e28731d87d56cc8ffef4a8f36ca26c38fe2de700543e627f8a464a"
++
++[[package]]
++name = "backtrace"
++version = "0.3.55"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "ef5140344c85b01f9bbb4d4b7288a8aa4b3287ccef913a14bcc78a1063623598"
++dependencies = [
++ "addr2line",
++ "cfg-if 1.0.0",
++ "libc",
++ "miniz_oxide",
++ "object",
++ "rustc-demangle",
++]
++
++[[package]]
++name = "base64"
++version = "0.13.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "904dfeac50f3cdaba28fc6f57fdcddb75f49ed61346676a78c4ffe55877802fd"
++
++[[package]]
++name = "bindgen"
++version = "0.51.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "ebd71393f1ec0509b553aa012b9b58e81dadbdff7130bd3b8cba576e69b32f75"
++dependencies = [
++ "bitflags",
++ "cexpr",
++ "cfg-if 0.1.10",
++ "clang-sys",
++ "lazy_static",
++ "peeking_take_while",
++ "proc-macro2",
++ "quote",
++ "regex",
++ "rustc-hash",
++ "shlex",
++]
++
++[[package]]
++name = "bit-set"
++version = "0.5.2"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "6e11e16035ea35e4e5997b393eacbf6f63983188f7a2ad25bfb13465f5ad59de"
++dependencies = [
++ "bit-vec",
++]
++
++[[package]]
++name = "bit-vec"
++version = "0.6.3"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "349f9b6a179ed607305526ca489b34ad0a41aed5f7980fa90eb03160b69598fb"
++
++[[package]]
++name = "bitflags"
++version = "1.2.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "cf1de2fe8c75bc145a2f577add951f8134889b4795d47466a54a5c846d691693"
++
++[[package]]
++name = "blake2b_simd"
++version = "0.5.11"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "afa748e348ad3be8263be728124b24a24f268266f6f5d58af9d75f6a40b5c587"
++dependencies = [
++ "arrayref",
++ "arrayvec",
++ "constant_time_eq",
++]
++
++[[package]]
++name = "buffered-reader"
++version = "1.0.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "f5711ccfa79a8167779ad2176d3334078f03b1579ddf8f42aa556196eba60a42"
++dependencies = [
++ "bzip2",
++ "flate2",
++ "libc",
++]
++
++[[package]]
++name = "byteorder"
++version = "1.3.4"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "08c48aae112d48ed9f069b33538ea9e3e90aa263cfa3d1c24309612b1f7472de"
++
++[[package]]
++name = "bzip2"
++version = "0.4.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "275d84fe348b838dc49477d39770682839b3e73e21a3eadc07b12924f1a9fcbe"
++dependencies = [
++ "bzip2-sys",
++ "libc",
++]
++
++[[package]]
++name = "bzip2-sys"
++version = "0.1.9+1.0.8"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "ad3b39a260062fca31f7b0b12f207e8f2590a67d32ec7d59c20484b07ea7285e"
++dependencies = [
++ "cc",
++ "libc",
++ "pkg-config",
++]
++
++[[package]]
++name = "cc"
++version = "1.0.66"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "4c0496836a84f8d0495758516b8621a622beb77c0fed418570e50764093ced48"
++
++[[package]]
++name = "cexpr"
++version = "0.3.6"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "fce5b5fb86b0c57c20c834c1b412fd09c77c8a59b9473f86272709e78874cd1d"
++dependencies = [
++ "nom",
++]
++
++[[package]]
++name = "cfg-if"
++version = "0.1.10"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "4785bdd1c96b2a846b2bd7cc02e86b6b3dbf14e7e53446c4f54c92a361040822"
++
++[[package]]
++name = "cfg-if"
++version = "1.0.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
++
++[[package]]
++name = "chrono"
++version = "0.4.19"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "670ad68c9088c2a963aaa298cb369688cf3f9465ce5e2d4ca10e6e0098a1ce73"
++dependencies = [
++ "libc",
++ "num-integer",
++ "num-traits",
++ "time",
++ "winapi",
++]
++
++[[package]]
++name = "cipher"
++version = "0.2.5"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "12f8e7987cbd042a63249497f41aed09f8e65add917ea6566effbc56578d6801"
++dependencies = [
++ "generic-array",
++]
++
++[[package]]
++name = "clang-sys"
++version = "0.28.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "81de550971c976f176130da4b2978d3b524eaa0fd9ac31f3ceb5ae1231fb4853"
++dependencies = [
++ "glob",
++ "libc",
++ "libloading",
++]
++
++[[package]]
++name = "cmac"
++version = "0.5.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "73d4de4f7724e5fe70addfb2bd37c2abd2f95084a429d7773b0b9645499b4272"
++dependencies = [
++ "crypto-mac",
++ "dbl",
++]
++
++[[package]]
++name = "constant_time_eq"
++version = "0.1.5"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "245097e9a4535ee1e3e3931fcfcd55a796a44c643e8596ff6566d68f09b87bbc"
++
++[[package]]
++name = "crc32fast"
++version = "1.2.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "81156fece84ab6a9f2afdb109ce3ae577e42b1228441eded99bd77f627953b1a"
++dependencies = [
++ "cfg-if 1.0.0",
++]
++
++[[package]]
++name = "crossbeam-utils"
++version = "0.8.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "02d96d1e189ef58269ebe5b97953da3274d83a93af647c2ddd6f9dab28cedb8d"
++dependencies = [
++ "autocfg",
++ "cfg-if 1.0.0",
++ "lazy_static",
++]
++
++[[package]]
++name = "crunchy"
++version = "0.2.2"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "7a81dae078cea95a014a339291cec439d2f232ebe854a9d672b796c6afafa9b7"
++
++[[package]]
++name = "crypto-mac"
++version = "0.10.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "4857fd85a0c34b3c3297875b747c1e02e06b6a0ea32dd892d8192b9ce0813ea6"
++dependencies = [
++ "cipher",
++ "generic-array",
++ "subtle",
++]
++
++[[package]]
++name = "ctor"
++version = "0.1.17"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "373c88d9506e2e9230f6107701b7d8425f4cb3f6df108ec3042a26e936666da5"
++dependencies = [
++ "quote",
++ "syn",
++]
++
++[[package]]
++name = "ctr"
++version = "0.6.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "fb4a30d54f7443bf3d6191dcd486aca19e67cb3c49fa7a06a319966346707e7f"
++dependencies = [
++ "cipher",
++]
++
++[[package]]
++name = "dbl"
++version = "0.3.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "2735145c3b9ba15f2d7a3ae8cdafcbc8c98a7bef7f62afe9d08bd99fbf7130de"
++dependencies = [
++ "generic-array",
++]
++
++[[package]]
++name = "diff"
++version = "0.1.12"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "0e25ea47919b1560c4e3b7fe0aaab9becf5b84a10325ddf7db0f0ba5e1026499"
++
++[[package]]
++name = "digest"
++version = "0.9.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "d3dd60d1080a57a05ab032377049e0591415d2b31afd7028356dbf3cc6dcb066"
++dependencies = [
++ "generic-array",
++]
++
++[[package]]
++name = "dirs"
++version = "1.0.5"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "3fd78930633bd1c6e35c4b42b1df7b0cbc6bc191146e512bb3bedf243fcc3901"
++dependencies = [
++ "libc",
++ "redox_users",
++ "winapi",
++]
++
++[[package]]
++name = "dyn-clone"
++version = "1.0.4"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "ee2626afccd7561a06cf1367e2950c4718ea04565e20fb5029b6c7d8ad09abcf"
++
++[[package]]
++name = "eax"
++version = "0.3.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "e1f76e7a5e594b299a0fa9a99de627530725e341df41376aa342aecb2c5eb76e"
++dependencies = [
++ "aead",
++ "cipher",
++ "cmac",
++ "ctr",
++ "subtle",
++]
++
++[[package]]
++name = "either"
++version = "1.6.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "e78d4f1cc4ae33bbfc157ed5d5a5ef3bc29227303d595861deb238fcec4e9457"
++
++[[package]]
++name = "ena"
++version = "0.14.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "d7402b94a93c24e742487327a7cd839dc9d36fec9de9fb25b09f2dae459f36c3"
++dependencies = [
++ "log",
++]
++
++[[package]]
++name = "fixedbitset"
++version = "0.2.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "37ab347416e802de484e4d03c7316c48f1ecb56574dfd4a46a80f173ce1de04d"
++
++[[package]]
++name = "flate2"
++version = "1.0.19"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "7411863d55df97a419aa64cb4d2f167103ea9d767e2c54a1868b7ac3f6b47129"
++dependencies = [
++ "cfg-if 1.0.0",
++ "crc32fast",
++ "libc",
++ "miniz_oxide",
++]
++
++[[package]]
++name = "generic-array"
++version = "0.14.4"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "501466ecc8a30d1d3b7fc9229b122b2ce8ed6e9d9223f1138d4babb253e51817"
++dependencies = [
++ "typenum",
++ "version_check 0.9.2",
++]
++
++[[package]]
++name = "getrandom"
++version = "0.1.16"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "8fc3cb4d91f53b50155bdcfd23f6a4c39ae1969c2ae85982b135750cccaf5fce"
++dependencies = [
++ "cfg-if 1.0.0",
++ "libc",
++ "wasi 0.9.0+wasi-snapshot-preview1",
++]
++
++[[package]]
++name = "ghost"
++version = "0.1.2"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "1a5bcf1bbeab73aa4cf2fde60a846858dc036163c7c33bec309f8d17de785479"
++dependencies = [
++ "proc-macro2",
++ "quote",
++ "syn",
++]
++
++[[package]]
++name = "gimli"
++version = "0.23.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "f6503fe142514ca4799d4c26297c4248239fe8838d827db6bd6065c6ed29a6ce"
++
++[[package]]
++name = "glob"
++version = "0.3.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "9b919933a397b79c37e33b77bb2aa3dc8eb6e165ad809e58ff75bc7db2e34574"
++
++[[package]]
++name = "hashbrown"
++version = "0.9.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "d7afe4a420e3fe79967a00898cc1f4db7c8a49a9333a29f8a4bd76a253d5cd04"
++
++[[package]]
++name = "hermit-abi"
++version = "0.1.17"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "5aca5565f760fb5b220e499d72710ed156fdb74e631659e99377d9ebfbd13ae8"
++dependencies = [
++ "libc",
++]
++
++[[package]]
++name = "idna"
++version = "0.2.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "02e2673c30ee86b5b96a9cb52ad15718aa1f966f5ab9ad54a8b95d5ca33120a9"
++dependencies = [
++ "matches",
++ "unicode-bidi",
++ "unicode-normalization",
++]
++
++[[package]]
++name = "indexmap"
++version = "1.6.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "4fb1fa934250de4de8aef298d81c729a7d33d8c239daa3a7575e6b92bfc7313b"
++dependencies = [
++ "autocfg",
++ "hashbrown",
++]
++
++[[package]]
++name = "indoc"
++version = "1.0.3"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "e5a75aeaaef0ce18b58056d306c27b07436fbb34b8816c53094b76dd81803136"
++dependencies = [
++ "unindent",
++]
++
++[[package]]
++name = "instant"
++version = "0.1.9"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "61124eeebbd69b8190558df225adf7e4caafce0d743919e5d6b19652314ec5ec"
++dependencies = [
++ "cfg-if 1.0.0",
++]
++
++[[package]]
++name = "inventory"
++version = "0.1.10"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "0f0f7efb804ec95e33db9ad49e4252f049e37e8b0a4652e3cd61f7999f2eff7f"
++dependencies = [
++ "ctor",
++ "ghost",
++ "inventory-impl",
++]
++
++[[package]]
++name = "inventory-impl"
++version = "0.1.10"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "75c094e94816723ab936484666968f5b58060492e880f3c8d00489a1e244fa51"
++dependencies = [
++ "proc-macro2",
++ "quote",
++ "syn",
++]
++
++[[package]]
++name = "itertools"
++version = "0.9.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "284f18f85651fe11e8a991b2adb42cb078325c996ed026d994719efcfca1d54b"
++dependencies = [
++ "either",
++]
++
++[[package]]
++name = "johnnycanencrypt"
++version = "0.5.0"
++dependencies = [
++ "anyhow",
++ "chrono",
++ "pyo3",
++ "sequoia-openpgp",
++ "talktosc",
++]
++
++[[package]]
++name = "lalrpop"
++version = "0.19.3"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "5c64e04d8ea9c95c2135dfc4298088eafaf956bc90ba372eb1bea4f715634587"
++dependencies = [
++ "ascii-canvas",
++ "atty",
++ "bit-set",
++ "diff",
++ "ena",
++ "itertools",
++ "lalrpop-util",
++ "petgraph",
++ "pico-args",
++ "regex",
++ "regex-syntax",
++ "string_cache",
++ "term",
++ "tiny-keccak",
++ "unicode-xid",
++]
++
++[[package]]
++name = "lalrpop-util"
++version = "0.19.3"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "f9de203e2fa3e883364fcc778a1293ab4d936f6cff400433013c20105df178c5"
++dependencies = [
++ "regex",
++]
++
++[[package]]
++name = "lazy_static"
++version = "1.4.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646"
++
++[[package]]
++name = "libc"
++version = "0.2.81"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "1482821306169ec4d07f6aca392a4681f66c75c9918aa49641a2595db64053cb"
++
++[[package]]
++name = "libloading"
++version = "0.5.2"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "f2b111a074963af1d37a139918ac6d49ad1d0d5e47f72fd55388619691a7d753"
++dependencies = [
++ "cc",
++ "winapi",
++]
++
++[[package]]
++name = "lock_api"
++version = "0.4.2"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "dd96ffd135b2fd7b973ac026d28085defbe8983df057ced3eb4f2130b0831312"
++dependencies = [
++ "scopeguard",
++]
++
++[[package]]
++name = "log"
++version = "0.4.11"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "4fabed175da42fed1fa0746b0ea71f412aa9d35e76e95e59b192c64b9dc2bf8b"
++dependencies = [
++ "cfg-if 0.1.10",
++]
++
++[[package]]
++name = "matches"
++version = "0.1.8"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "7ffc5c5338469d4d3ea17d269fa8ea3512ad247247c30bd2df69e68309ed0a08"
++
++[[package]]
++name = "memchr"
++version = "2.3.4"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "0ee1c47aaa256ecabcaea351eae4a9b01ef39ed810004e298d2511ed284b1525"
++
++[[package]]
++name = "memsec"
++version = "0.6.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "2af4f95d8737f4ffafbd1fb3c703cdc898868a244a59786793cba0520ebdcbdd"
++
++[[package]]
++name = "miniz_oxide"
++version = "0.4.3"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "0f2d26ec3309788e423cfbf68ad1800f061638098d76a83681af979dc4eda19d"
++dependencies = [
++ "adler",
++ "autocfg",
++]
++
++[[package]]
++name = "nettle"
++version = "7.0.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "b1afae85450b829ad720f2827e3b07d78e06b5521cfe5ed72808a9f593e7cdd8"
++dependencies = [
++ "getrandom",
++ "libc",
++ "nettle-sys",
++ "thiserror",
++]
++
++[[package]]
++name = "nettle-sys"
++version = "2.0.4"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "b8629333ff5f3b74d251dae253e383cda9242410fac4244a4fe855469be101fb"
++dependencies = [
++ "bindgen",
++ "pkg-config",
++]
++
++[[package]]
++name = "new_debug_unreachable"
++version = "1.0.4"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "e4a24736216ec316047a1fc4252e27dabb04218aa4a3f37c6e7ddbf1f9782b54"
++
++[[package]]
++name = "nom"
++version = "4.2.3"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "2ad2a91a8e869eeb30b9cb3119ae87773a8f4ae617f41b1eb9c154b2905f7bd6"
++dependencies = [
++ "memchr",
++ "version_check 0.1.5",
++]
++
++[[package]]
++name = "num-integer"
++version = "0.1.44"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "d2cc698a63b549a70bc047073d2949cce27cd1c7b0a4a862d08a8031bc2801db"
++dependencies = [
++ "autocfg",
++ "num-traits",
++]
++
++[[package]]
++name = "num-traits"
++version = "0.2.14"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "9a64b1ec5cda2586e284722486d802acf1f7dbdc623e2bfc57e65ca1cd099290"
++dependencies = [
++ "autocfg",
++]
++
++[[package]]
++name = "object"
++version = "0.22.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "8d3b63360ec3cb337817c2dbd47ab4a0f170d285d8e5a2064600f3def1402397"
++
++[[package]]
++name = "parking_lot"
++version = "0.11.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "6d7744ac029df22dca6284efe4e898991d28e3085c706c972bcd7da4a27a15eb"
++dependencies = [
++ "instant",
++ "lock_api",
++ "parking_lot_core",
++]
++
++[[package]]
++name = "parking_lot_core"
++version = "0.8.2"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "9ccb628cad4f84851442432c60ad8e1f607e29752d0bf072cbd0baf28aa34272"
++dependencies = [
++ "cfg-if 1.0.0",
++ "instant",
++ "libc",
++ "redox_syscall",
++ "smallvec",
++ "winapi",
++]
++
++[[package]]
++name = "paste"
++version = "1.0.4"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "c5d65c4d95931acda4498f675e332fcbdc9a06705cd07086c510e9b6009cd1c1"
++
++[[package]]
++name = "pcsc"
++version = "2.4.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "88e09a8d8705a2c9b1ffe1f9dd9580efe3f8e80c19fc9f99038fe99b7bb56c83"
++dependencies = [
++ "bitflags",
++ "pcsc-sys",
++]
++
++[[package]]
++name = "pcsc-sys"
++version = "1.2.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "e1b7bfecba2c0f1b5efb0e7caf7533ab1c295024165bcbb066231f60d33e23ea"
++dependencies = [
++ "pkg-config",
++]
++
++[[package]]
++name = "peeking_take_while"
++version = "0.1.2"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "19b17cddbe7ec3f8bc800887bab5e717348c95ea2ca0b1bf0837fb964dc67099"
++
++[[package]]
++name = "petgraph"
++version = "0.5.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "467d164a6de56270bd7c4d070df81d07beace25012d5103ced4e9ff08d6afdb7"
++dependencies = [
++ "fixedbitset",
++ "indexmap",
++]
++
++[[package]]
++name = "phf_shared"
++version = "0.8.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "c00cf8b9eafe68dde5e9eaa2cef8ee84a9336a47d566ec55ca16589633b65af7"
++dependencies = [
++ "siphasher",
++]
++
++[[package]]
++name = "pico-args"
++version = "0.3.4"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "28b9b4df73455c861d7cbf8be42f01d3b373ed7f02e378d55fa84eafc6f638b1"
++
++[[package]]
++name = "pkg-config"
++version = "0.3.19"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "3831453b3449ceb48b6d9c7ad7c96d5ea673e9b470a1dc578c2ce6521230884c"
++
++[[package]]
++name = "precomputed-hash"
++version = "0.1.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "925383efa346730478fb4838dbe9137d2a47675ad789c546d150a6e1dd4ab31c"
++
++[[package]]
++name = "proc-macro2"
++version = "1.0.24"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "1e0704ee1a7e00d7bb417d0770ea303c1bccbabf0ef1667dae92b5967f5f8a71"
++dependencies = [
++ "unicode-xid",
++]
++
++[[package]]
++name = "pyo3"
++version = "0.13.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "5cdd01a4c2719dd1f3ceab0875fa1a2c2cd3c619477349d78f43cd716b345436"
++dependencies = [
++ "cfg-if 1.0.0",
++ "ctor",
++ "indoc",
++ "inventory",
++ "libc",
++ "parking_lot",
++ "paste",
++ "pyo3-macros",
++ "unindent",
++]
++
++[[package]]
++name = "pyo3-macros"
++version = "0.13.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "7f8218769d13e354f841d559a19b0cf22cfd55959c7046ef594e5f34dbe46d16"
++dependencies = [
++ "pyo3-macros-backend",
++ "quote",
++ "syn",
++]
++
++[[package]]
++name = "pyo3-macros-backend"
++version = "0.13.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "fc4da0bfdf76f0a5971c698f2cb6b3f832a6f80f16dedeeb3f123eb0431ecce2"
++dependencies = [
++ "proc-macro2",
++ "quote",
++ "syn",
++]
++
++[[package]]
++name = "quote"
++version = "1.0.8"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "991431c3519a3f36861882da93630ce66b52918dcf1b8e2fd66b397fc96f28df"
++dependencies = [
++ "proc-macro2",
++]
++
++[[package]]
++name = "redox_syscall"
++version = "0.1.57"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "41cc0f7e4d5d4544e8861606a285bb08d3e70712ccc7d2b84d7c0ccfaf4b05ce"
++
++[[package]]
++name = "redox_users"
++version = "0.3.5"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "de0737333e7a9502c789a36d7c7fa6092a49895d4faa31ca5df163857ded2e9d"
++dependencies = [
++ "getrandom",
++ "redox_syscall",
++ "rust-argon2",
++]
++
++[[package]]
++name = "regex"
++version = "1.4.2"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "38cf2c13ed4745de91a5eb834e11c00bcc3709e773173b2ce4c56c9fbde04b9c"
++dependencies = [
++ "aho-corasick",
++ "memchr",
++ "regex-syntax",
++ "thread_local",
++]
++
++[[package]]
++name = "regex-syntax"
++version = "0.6.21"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "3b181ba2dcf07aaccad5448e8ead58db5b742cf85dfe035e2227f137a539a189"
++
++[[package]]
++name = "rpassword"
++version = "5.0.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "d755237fc0f99d98641540e66abac8bc46a0652f19148ac9e21de2da06b326c9"
++dependencies = [
++ "libc",
++ "winapi",
++]
++
++[[package]]
++name = "rust-argon2"
++version = "0.8.3"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "4b18820d944b33caa75a71378964ac46f58517c92b6ae5f762636247c09e78fb"
++dependencies = [
++ "base64",
++ "blake2b_simd",
++ "constant_time_eq",
++ "crossbeam-utils",
++]
++
++[[package]]
++name = "rustc-demangle"
++version = "0.1.18"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "6e3bad0ee36814ca07d7968269dd4b7ec89ec2da10c4bb613928d3077083c232"
++
++[[package]]
++name = "rustc-hash"
++version = "1.1.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2"
++
++[[package]]
++name = "scopeguard"
++version = "1.1.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd"
++
++[[package]]
++name = "sequoia-openpgp"
++version = "1.0.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "664de0a9388e38d0f350547056f18fcc03f78d85e5a49fa4fa8927ca6aea1424"
++dependencies = [
++ "anyhow",
++ "backtrace",
++ "base64",
++ "buffered-reader",
++ "bzip2",
++ "chrono",
++ "dyn-clone",
++ "eax",
++ "flate2",
++ "idna",
++ "lalrpop",
++ "lalrpop-util",
++ "lazy_static",
++ "libc",
++ "memsec",
++ "nettle",
++ "regex",
++ "sha1collisiondetection",
++ "thiserror",
++ "unicode-normalization",
++]
++
++[[package]]
++name = "sha1collisiondetection"
++version = "0.2.3"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "d7a6cf187c4059b3e63de2358b7e2f9a2261b6f3fd8ef4e7342308d0863ed082"
++dependencies = [
++ "digest",
++ "generic-array",
++ "libc",
++]
++
++[[package]]
++name = "shlex"
++version = "0.1.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "7fdf1b9db47230893d76faad238fd6097fd6d6a9245cd7a4d90dbd639536bbd2"
++
++[[package]]
++name = "siphasher"
++version = "0.3.3"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "fa8f3741c7372e75519bd9346068370c9cdaabcc1f9599cbcf2a2719352286b7"
++
++[[package]]
++name = "smallvec"
++version = "1.6.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "1a55ca5f3b68e41c979bf8c46a6f1da892ca4db8f94023ce0bd32407573b1ac0"
++
++[[package]]
++name = "string_cache"
++version = "0.8.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "8ddb1139b5353f96e429e1a5e19fbaf663bddedaa06d1dbd49f82e352601209a"
++dependencies = [
++ "lazy_static",
++ "new_debug_unreachable",
++ "phf_shared",
++ "precomputed-hash",
++]
++
++[[package]]
++name = "subtle"
++version = "2.4.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "1e81da0851ada1f3e9d4312c704aa4f8806f0f9d69faaf8df2f3464b4a9437c2"
++
++[[package]]
++name = "syn"
++version = "1.0.57"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "4211ce9909eb971f111059df92c45640aad50a619cf55cd76476be803c4c68e6"
++dependencies = [
++ "proc-macro2",
++ "quote",
++ "unicode-xid",
++]
++
++[[package]]
++name = "talktosc"
++version = "0.1.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "eda5fee425f91e5a4083946f4468948f59cc16412cdcd659554e474c647a5645"
++dependencies = [
++ "pcsc",
++ "rpassword",
++ "thiserror",
++]
++
++[[package]]
++name = "term"
++version = "0.5.2"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "edd106a334b7657c10b7c540a0106114feadeb4dc314513e97df481d5d966f42"
++dependencies = [
++ "byteorder",
++ "dirs",
++ "winapi",
++]
++
++[[package]]
++name = "thiserror"
++version = "1.0.23"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "76cc616c6abf8c8928e2fdcc0dbfab37175edd8fb49a4641066ad1364fdab146"
++dependencies = [
++ "thiserror-impl",
++]
++
++[[package]]
++name = "thiserror-impl"
++version = "1.0.23"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "9be73a2caec27583d0046ef3796c3794f868a5bc813db689eed00c7631275cd1"
++dependencies = [
++ "proc-macro2",
++ "quote",
++ "syn",
++]
++
++[[package]]
++name = "thread_local"
++version = "1.0.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "d40c6d1b69745a6ec6fb1ca717914848da4b44ae29d9b3080cbee91d72a69b14"
++dependencies = [
++ "lazy_static",
++]
++
++[[package]]
++name = "time"
++version = "0.1.44"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "6db9e6914ab8b1ae1c260a4ae7a49b6c5611b40328a735b21862567685e73255"
++dependencies = [
++ "libc",
++ "wasi 0.10.0+wasi-snapshot-preview1",
++ "winapi",
++]
++
++[[package]]
++name = "tiny-keccak"
++version = "2.0.2"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "2c9d3793400a45f954c52e73d068316d76b6f4e36977e3fcebb13a2721e80237"
++dependencies = [
++ "crunchy",
++]
++
++[[package]]
++name = "tinyvec"
++version = "1.1.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "ccf8dbc19eb42fba10e8feaaec282fb50e2c14b2726d6301dbfeed0f73306a6f"
++dependencies = [
++ "tinyvec_macros",
++]
++
++[[package]]
++name = "tinyvec_macros"
++version = "0.1.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "cda74da7e1a664f795bb1f8a87ec406fb89a02522cf6e50620d016add6dbbf5c"
++
++[[package]]
++name = "typenum"
++version = "1.12.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "373c8a200f9e67a0c95e62a4f52fbf80c23b4381c05a17845531982fa99e6b33"
++
++[[package]]
++name = "unicode-bidi"
++version = "0.3.4"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "49f2bd0c6468a8230e1db229cff8029217cf623c767ea5d60bfbd42729ea54d5"
++dependencies = [
++ "matches",
++]
++
++[[package]]
++name = "unicode-normalization"
++version = "0.1.16"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "a13e63ab62dbe32aeee58d1c5408d35c36c392bba5d9d3142287219721afe606"
++dependencies = [
++ "tinyvec",
++]
++
++[[package]]
++name = "unicode-xid"
++version = "0.2.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "f7fe0bb3479651439c9112f72b6c505038574c9fbb575ed1bf3b797fa39dd564"
++
++[[package]]
++name = "unindent"
++version = "0.1.7"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "f14ee04d9415b52b3aeab06258a3f07093182b88ba0f9b8d203f211a7a7d41c7"
++
++[[package]]
++name = "version_check"
++version = "0.1.5"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "914b1a6776c4c929a602fafd8bc742e06365d4bcbe48c30f9cca5824f70dc9dd"
++
++[[package]]
++name = "version_check"
++version = "0.9.2"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "b5a972e5669d67ba988ce3dc826706fb0a8b01471c088cb0b6110b805cc36aed"
++
++[[package]]
++name = "wasi"
++version = "0.9.0+wasi-snapshot-preview1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "cccddf32554fecc6acb585f82a32a72e28b48f8c4c1883ddfeeeaa96f7d8e519"
++
++[[package]]
++name = "wasi"
++version = "0.10.0+wasi-snapshot-preview1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "1a143597ca7c7793eff794def352d41792a93c481eb1042423ff7ff72ba2c31f"
++
++[[package]]
++name = "winapi"
++version = "0.3.9"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419"
++dependencies = [
++ "winapi-i686-pc-windows-gnu",
++ "winapi-x86_64-pc-windows-gnu",
++]
++
++[[package]]
++name = "winapi-i686-pc-windows-gnu"
++version = "0.4.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6"
++
++[[package]]
++name = "winapi-x86_64-pc-windows-gnu"
++version = "0.4.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
diff --git a/nixpkgs/pkgs/development/python-modules/johnnycanencrypt/default.nix b/nixpkgs/pkgs/development/python-modules/johnnycanencrypt/default.nix
new file mode 100644
index 000000000000..77789fa44dbe
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/johnnycanencrypt/default.nix
@@ -0,0 +1,99 @@
+{ lib
+, stdenv
+, rustPlatform
+, fetchFromGitHub
+, pipInstallHook
+, llvmPackages
+, pkg-config
+, maturin
+, pcsclite
+, nettle
+, python
+, requests
+, vcrpy
+, numpy
+, pytestCheckHook
+, pythonOlder
+, PCSC
+}:
+
+rustPlatform.buildRustPackage rec {
+  pname = "johnnycanencrypt";
+  version = "0.5.0";
+  disabled = pythonOlder "3.7";
+
+  src = fetchFromGitHub {
+    owner = "kushaldas";
+    repo = "johnnycanencrypt";
+    rev = "v${version}";
+    sha256 = "192wfrlyylrpzq70yki421mi1smk8q2cyki2a1d03q7h6apib3j4";
+  };
+  cargoPatches = [ ./Cargo.lock.patch ];
+
+  cargoSha256 = "0ifvpdizcdp2c5x2x2j1bhhy5a75q0pk7a63dmh52mlpmh45fy6r";
+
+  LIBCLANG_PATH = llvmPackages.libclang + "/lib";
+
+  propagatedBuildInputs = [
+    requests
+    vcrpy
+  ];
+
+  nativeBuildInputs = [
+    llvmPackages.clang
+    pkg-config
+    python
+    maturin
+    pipInstallHook
+  ];
+
+  buildInputs = [
+    pcsclite
+    nettle
+  ] ++ lib.optionals stdenv.isDarwin [ PCSC ];
+
+  # Needed b/c need to check AFTER python wheel is installed (using Rust Build, not buildPythonPackage)
+  doCheck = false;
+  doInstallCheck = true;
+
+  installCheckInputs = [
+    pytestCheckHook
+    numpy
+  ];
+
+  # Remove with the next release after 0.5.0. This change is required
+  # for compatibility with maturin 0.9.0.
+  postPatch = ''
+    sed '/project-url = /d' -i Cargo.toml
+  '';
+
+  buildPhase = ''
+    runHook preBuild
+    maturin build --release --manylinux off --strip --cargo-extra-args="-j $NIX_BUILD_CORES --frozen"
+    runHook postBuild
+  '';
+
+  installPhase = ''
+    install -Dm644 -t dist target/wheels/*.whl
+    pipInstallPhase
+  '';
+
+  preCheck = ''
+    export TESTDIR=$(mktemp -d)
+    cp -r tests/ $TESTDIR
+    pushd $TESTDIR
+  '';
+
+  postCheck = ''
+    popd
+  '';
+
+  pythonImportsCheck = [ "johnnycanencrypt" ];
+
+  meta = with lib; {
+    homepage = "https://github.com/kushaldas/johnnycanencrypt";
+    description = "Python module for OpenPGP written in Rust";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ _0x4A6F ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/jpylyzer/default.nix b/nixpkgs/pkgs/development/python-modules/jpylyzer/default.nix
index 0d6398a768a1..c5c9cdf15056 100644
--- a/nixpkgs/pkgs/development/python-modules/jpylyzer/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/jpylyzer/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , fetchFromGitHub
 , buildPythonPackage
 , six
@@ -21,7 +21,7 @@ buildPythonPackage rec {
   # runner seems to be upset by the project layout
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "JP2 (JPEG 2000 Part 1) image validator and properties extractor";
     homepage = "https://jpylyzer.openpreservation.org/";
     license = licenses.lgpl3;
diff --git a/nixpkgs/pkgs/development/python-modules/json-schema-for-humans/default.nix b/nixpkgs/pkgs/development/python-modules/json-schema-for-humans/default.nix
new file mode 100644
index 000000000000..4e762e456ceb
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/json-schema-for-humans/default.nix
@@ -0,0 +1,35 @@
+{ lib, buildPythonPackage, fetchFromGitHub
+, pbr, click, dataclasses-json, htmlmin, jinja2, markdown2, pygments, pytz, pyyaml, requests, pytestCheckHook, beautifulsoup4, tox
+}:
+
+buildPythonPackage rec {
+  pname = "json-schema-for-humans";
+  version = "0.27.1";
+
+  src = fetchFromGitHub {
+    owner = "coveooss";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "0d2a4a2lcqssr5g9rmc76f86nkqc9grixh507vzc9fi1h3gbi765";
+  };
+
+  nativeBuildInputs = [ pbr ];
+  propagatedBuildInputs = [
+    click dataclasses-json htmlmin jinja2 markdown2
+    pygments pytz pyyaml requests
+  ];
+
+  preBuild = ''
+    export PBR_VERSION=0.0.1
+  '';
+
+  checkInputs = [ pytestCheckHook beautifulsoup4 ];
+  pytestFlagsArray = [ "--ignore tests/generate_test.py" ];
+
+  meta = with lib; {
+    description = "Quickly generate HTML documentation from a JSON schema";
+    homepage    = "https://github.com/coveooss/json-schema-for-humans";
+    license     = licenses.asl20;
+    maintainers = with maintainers; [ astro ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/jsonfield/default.nix b/nixpkgs/pkgs/development/python-modules/jsonfield/default.nix
index e9887b473793..07ee609d6534 100644
--- a/nixpkgs/pkgs/development/python-modules/jsonfield/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/jsonfield/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchPypi, buildPythonPackage, django, pytestCheckHook, pytest-django }:
+{ lib, stdenv, fetchPypi, buildPythonPackage, django, pytestCheckHook, pytest-django }:
 
 buildPythonPackage rec {
   pname = "jsonfield";
@@ -15,7 +15,7 @@ buildPythonPackage rec {
 
   propagatedBuildInputs = [ django ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Reusable model field that allows you to store validated JSON, automatically handling serialization to and from the database";
     homepage = "https://github.com/rpkilby/jsonfield/";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/jsonpath_rw/default.nix b/nixpkgs/pkgs/development/python-modules/jsonpath_rw/default.nix
index 4b842a02af83..81a6eb3fb27b 100644
--- a/nixpkgs/pkgs/development/python-modules/jsonpath_rw/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/jsonpath_rw/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , isPyPy
@@ -22,7 +22,7 @@ buildPythonPackage rec {
   # ImportError: No module named tests
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://github.com/kennknowles/python-jsonpath-rw";
     description = "A robust and significantly extended implementation of JSONPath for Python, with a clear AST for metaprogramming";
     license = licenses.asl20;
diff --git a/nixpkgs/pkgs/development/python-modules/jsonpointer/default.nix b/nixpkgs/pkgs/development/python-modules/jsonpointer/default.nix
index 6971393b80c9..e1eaaed6c178 100644
--- a/nixpkgs/pkgs/development/python-modules/jsonpointer/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/jsonpointer/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib
 , buildPythonPackage
 , fetchPypi
 }:
@@ -12,10 +12,10 @@ buildPythonPackage rec {
     sha256 = "0qjkjy1qlyc1nl3k95wd03ssxac0a717x8889ypgs1cfcj3bm4n1";
   };
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Resolve JSON Pointers in Python";
     homepage = "https://github.com/stefankoegl/python-json-pointer";
-    license = stdenv.lib.licenses.bsd2; # "Modified BSD license, says pypi"
+    license = licenses.bsd2; # "Modified BSD license, says pypi"
   };
 
 }
diff --git a/nixpkgs/pkgs/development/python-modules/jsonref/default.nix b/nixpkgs/pkgs/development/python-modules/jsonref/default.nix
index c174a011b5fa..b901d811a230 100644
--- a/nixpkgs/pkgs/development/python-modules/jsonref/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/jsonref/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi
+{ lib, stdenv, buildPythonPackage, fetchPypi
 , pytest, mock }:
 
 buildPythonPackage rec {
@@ -16,7 +16,7 @@ buildPythonPackage rec {
     py.test tests.py
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "An implementation of JSON Reference for Python";
     homepage    = "https://github.com/gazpachoking/jsonref";
     license     = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/jsonrpc-async/default.nix b/nixpkgs/pkgs/development/python-modules/jsonrpc-async/default.nix
index c410b9407ea6..0b77db5df4e6 100644
--- a/nixpkgs/pkgs/development/python-modules/jsonrpc-async/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/jsonrpc-async/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi
+{ lib, stdenv, buildPythonPackage, fetchPypi
 , aiohttp, jsonrpc-base }:
 
 buildPythonPackage rec {
@@ -12,7 +12,7 @@ buildPythonPackage rec {
 
   propagatedBuildInputs = [ aiohttp jsonrpc-base ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "A JSON-RPC client library for asyncio";
     homepage = "https://github.com/armills/jsonrpc-async";
     license = licenses.bsd3;
diff --git a/nixpkgs/pkgs/development/python-modules/jsonrpc-base/default.nix b/nixpkgs/pkgs/development/python-modules/jsonrpc-base/default.nix
index 9318fc09373c..cc4bd1b2f686 100644
--- a/nixpkgs/pkgs/development/python-modules/jsonrpc-base/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/jsonrpc-base/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi }:
+{ lib, stdenv, buildPythonPackage, fetchPypi }:
 
 buildPythonPackage rec {
   pname = "jsonrpc-base";
@@ -11,7 +11,7 @@ buildPythonPackage rec {
 
   propagatedBuildInputs = [ ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "A JSON-RPC client library base interface";
     homepage = "https://github.com/armills/jsonrpc-base";
     license = licenses.bsd3;
diff --git a/nixpkgs/pkgs/development/python-modules/jsonrpc-websocket/default.nix b/nixpkgs/pkgs/development/python-modules/jsonrpc-websocket/default.nix
index 4fe136f69b7b..d14d382f013c 100644
--- a/nixpkgs/pkgs/development/python-modules/jsonrpc-websocket/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/jsonrpc-websocket/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi
+{ lib, stdenv, buildPythonPackage, fetchPypi
 , aiohttp, jsonrpc-base, pep8
 , pytestCheckHook
 , pytest-asyncio
@@ -20,7 +20,7 @@ buildPythonPackage rec {
   checkInputs = [ pytestCheckHook pytest-asyncio ];
   pytestFlagsArray = [ "tests.py" ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "A JSON-RPC websocket client library for asyncio";
     homepage = "https://github.com/armills/jsonrpc-websocket";
     license = licenses.bsd3;
diff --git a/nixpkgs/pkgs/development/python-modules/jsonwatch/default.nix b/nixpkgs/pkgs/development/python-modules/jsonwatch/default.nix
index 1b859e21e904..feced9442257 100644
--- a/nixpkgs/pkgs/development/python-modules/jsonwatch/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/jsonwatch/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchurl
 , six
@@ -17,7 +17,7 @@ buildPythonPackage {
 
   propagatedBuildInputs = [ six ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Like watch -d but for JSON";
     longDescription = ''
       jsonwatch is a command line utility with which you can track
diff --git a/nixpkgs/pkgs/development/python-modules/jug/default.nix b/nixpkgs/pkgs/development/python-modules/jug/default.nix
index edfc7573d4e4..eff6accaa024 100644
--- a/nixpkgs/pkgs/development/python-modules/jug/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/jug/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi, fetchpatch
+{ lib, stdenv, buildPythonPackage, fetchPypi, fetchpatch
 , nose, numpy
 , bottle, pyyaml, redis, six
 , zlib
@@ -25,7 +25,7 @@ buildPythonPackage rec {
   checkInputs = [ pytestCheckHook ];
   pythonImportsCheck = [ "jug" ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "A Task-Based Parallelization Framework";
     license = licenses.mit;
     homepage = "https://jug.readthedocs.io/";
diff --git a/nixpkgs/pkgs/development/python-modules/junos-eznc/default.nix b/nixpkgs/pkgs/development/python-modules/junos-eznc/default.nix
index d47130c5f3fb..d9234d836b0f 100644
--- a/nixpkgs/pkgs/development/python-modules/junos-eznc/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/junos-eznc/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , six
@@ -35,7 +35,7 @@ buildPythonPackage rec {
     nosetests -v --with-coverage --cover-package=jnpr.junos --cover-inclusive -a unit
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "http://www.github.com/Juniper/py-junos-eznc";
     description = "Junos 'EZ' automation for non-programmers";
     license = licenses.asl20;
diff --git a/nixpkgs/pkgs/development/python-modules/jupyter-repo2docker/default.nix b/nixpkgs/pkgs/development/python-modules/jupyter-repo2docker/default.nix
index 4dc878e26701..f01605513cb6 100644
--- a/nixpkgs/pkgs/development/python-modules/jupyter-repo2docker/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/jupyter-repo2docker/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi, pythonAtLeast
+{ lib, stdenv, buildPythonPackage, fetchPypi, pythonAtLeast
 , docker
 , escapism
 , jinja2
@@ -43,7 +43,7 @@ buildPythonPackage rec {
     "repo2docker.contentproviders.base"
   ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://repo2docker.readthedocs.io/en/latest/";
     description = "Repo2docker: Turn code repositories into Jupyter enabled Docker Images";
     license = licenses.bsdOriginal;
diff --git a/nixpkgs/pkgs/development/python-modules/jupyter-telemetry/default.nix b/nixpkgs/pkgs/development/python-modules/jupyter-telemetry/default.nix
index 4b3093cf6ce1..0f0c0d346e6a 100644
--- a/nixpkgs/pkgs/development/python-modules/jupyter-telemetry/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/jupyter-telemetry/default.nix
@@ -23,7 +23,7 @@ buildPythonPackage rec {
     python-json-logger jsonschema ruamel_yaml traitlets
   ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Telemetry for Jupyter Applications and extensions";
     homepage = "https://jupyter-telemetry.readthedocs.io/";
     license = licenses.bsd3;
diff --git a/nixpkgs/pkgs/development/python-modules/jupyter/default.nix b/nixpkgs/pkgs/development/python-modules/jupyter/default.nix
index b6d2a5e5a901..03d28bbf55d6 100644
--- a/nixpkgs/pkgs/development/python-modules/jupyter/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/jupyter/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , notebook
@@ -23,7 +23,7 @@ buildPythonPackage rec {
   # Meta-package, no tests
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Installs all the Jupyter components in one go";
     homepage = "https://jupyter.org/";
     license = licenses.bsd3;
diff --git a/nixpkgs/pkgs/development/python-modules/jupyterhub-systemdspawner/default.nix b/nixpkgs/pkgs/development/python-modules/jupyterhub-systemdspawner/default.nix
index dc38acc66f7c..71fba8a12225 100644
--- a/nixpkgs/pkgs/development/python-modules/jupyterhub-systemdspawner/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/jupyterhub-systemdspawner/default.nix
@@ -8,11 +8,11 @@
 
 buildPythonPackage rec {
   pname = "jupyterhub-systemdspawner";
-  version = "0.14";
+  version = "0.15.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "080dd9cd9292266dad35d1efc7aa1af0ed6993d15eadc79bd959d1ee273d1923";
+    sha256 = "b6e2d981657aa5d3794abb89b1650d056524158a3d0f0f706007cae9b6dbeb2b";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/jupyterlab-git/default.nix b/nixpkgs/pkgs/development/python-modules/jupyterlab-git/default.nix
index 1c6c9a5b9e3c..3219bd5730bb 100644
--- a/nixpkgs/pkgs/development/python-modules/jupyterlab-git/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/jupyterlab-git/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , pythonOlder
@@ -31,7 +31,7 @@ buildPythonPackage rec {
 
   pythonImportsCheck = [ "jupyterlab_git" ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Jupyter lab extension for version control with Git.";
     license = with licenses; [ bsd3 ];
     homepage = "https://github.com/jupyterlab/jupyterlab-git";
diff --git a/nixpkgs/pkgs/development/python-modules/jupyterlab_server/default.nix b/nixpkgs/pkgs/development/python-modules/jupyterlab_server/default.nix
index 0344a66cf663..bfbd1cc89e08 100644
--- a/nixpkgs/pkgs/development/python-modules/jupyterlab_server/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/jupyterlab_server/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , notebook
@@ -30,7 +30,7 @@ buildPythonPackage rec {
     pytest
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "JupyterLab Server";
     homepage = "https://jupyter.org";
     license = licenses.bsdOriginal;
diff --git a/nixpkgs/pkgs/development/python-modules/kaa-base/default.nix b/nixpkgs/pkgs/development/python-modules/kaa-base/default.nix
index a0b8cd97ced6..24a02f7f696a 100644
--- a/nixpkgs/pkgs/development/python-modules/kaa-base/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/kaa-base/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , isPyPy
@@ -41,7 +41,7 @@ buildPythonPackage rec {
     runHook postInstall
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Generic application framework, providing the foundation for other modules";
     homepage = "https://github.com/freevo/kaa-base";
     license = licenses.lgpl21;
diff --git a/nixpkgs/pkgs/development/python-modules/kaa-metadata/default.nix b/nixpkgs/pkgs/development/python-modules/kaa-metadata/default.nix
index 31f87965a038..5164004e8ea5 100644
--- a/nixpkgs/pkgs/development/python-modules/kaa-metadata/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/kaa-metadata/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , kaa-base
@@ -46,7 +46,7 @@ buildPythonPackage rec {
     runHook postInstall
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Python library for parsing media metadata, which can extract metadata (e.g., such as id3 tags) from a wide range of media files";
     homepage = "https://github.com/freevo/kaa-metadata";
     license = licenses.gpl2;
diff --git a/nixpkgs/pkgs/development/python-modules/kafka-python/default.nix b/nixpkgs/pkgs/development/python-modules/kafka-python/default.nix
index 8069632c1705..b147b30c2ce3 100644
--- a/nixpkgs/pkgs/development/python-modules/kafka-python/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/kafka-python/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi, pytest, six, mock }:
+{ lib, stdenv, buildPythonPackage, fetchPypi, pytest, six, mock }:
 
 buildPythonPackage rec {
   version = "2.0.2";
@@ -20,7 +20,7 @@ buildPythonPackage rec {
   # E   ImportError: cannot import name 'unittest'
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Pure Python client for Apache Kafka";
     homepage = "https://github.com/dpkp/kafka-python";
     license = licenses.asl20;
diff --git a/nixpkgs/pkgs/development/python-modules/kaitaistruct/default.nix b/nixpkgs/pkgs/development/python-modules/kaitaistruct/default.nix
index 61892063278b..866042b6942c 100644
--- a/nixpkgs/pkgs/development/python-modules/kaitaistruct/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/kaitaistruct/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi }:
+{ lib, stdenv, buildPythonPackage, fetchPypi }:
 
 buildPythonPackage rec {
   pname = "kaitaistruct";
@@ -9,7 +9,7 @@ buildPythonPackage rec {
     sha256 = "3d5845817ec8a4d5504379cc11bd570b038850ee49c4580bc0998c8fb1d327ad";
   };
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Kaitai Struct: runtime library for Python";
     homepage = "https://github.com/kaitai-io/kaitai_struct_python_runtime";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/kajiki/default.nix b/nixpkgs/pkgs/development/python-modules/kajiki/default.nix
index 8643e562fa07..2a45404919c0 100644
--- a/nixpkgs/pkgs/development/python-modules/kajiki/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/kajiki/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , Babel
@@ -19,7 +19,7 @@ buildPythonPackage rec {
   propagatedBuildInputs = [ Babel pytz nine ];
   checkInputs = [ nose ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Kajiki provides fast well-formed XML templates";
     homepage = "https://github.com/nandoflorestan/kajiki";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/kaptan/default.nix b/nixpkgs/pkgs/development/python-modules/kaptan/default.nix
index 78a33a8e3022..dea22059f096 100644
--- a/nixpkgs/pkgs/development/python-modules/kaptan/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/kaptan/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , pyyaml
@@ -22,7 +22,7 @@ buildPythonPackage rec {
 
   checkInputs = [ pytest ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Configuration manager for python applications";
     homepage = "https://kaptan.readthedocs.io/";
     license = licenses.bsd3;
diff --git a/nixpkgs/pkgs/development/python-modules/kazoo/default.nix b/nixpkgs/pkgs/development/python-modules/kazoo/default.nix
index 3c040abc7247..d8743776578e 100644
--- a/nixpkgs/pkgs/development/python-modules/kazoo/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/kazoo/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , six
@@ -35,7 +35,7 @@ buildPythonPackage rec {
   doCheck = false;
   #ZOOKEEPER_PATH = "${pkgs.zookeeper}";
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://kazoo.readthedocs.org";
     description = "Higher Level Zookeeper Client";
     license = licenses.asl20;
diff --git a/nixpkgs/pkgs/development/python-modules/keep/default.nix b/nixpkgs/pkgs/development/python-modules/keep/default.nix
index 4e7003aef9f9..22ae853c043c 100644
--- a/nixpkgs/pkgs/development/python-modules/keep/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/keep/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , PyGithub
@@ -24,9 +24,10 @@ buildPythonPackage rec {
   ];
 
   # no tests
+  doCheck = false;
   pythonImportsCheck = [ "keep" ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://github.com/orkohunter/keep";
     description = "A Meta CLI toolkit: Personal shell command keeper and snippets manager";
     platforms = platforms.all;
diff --git a/nixpkgs/pkgs/development/python-modules/keepalive/default.nix b/nixpkgs/pkgs/development/python-modules/keepalive/default.nix
index c53bc25d198d..7a488edf895d 100644
--- a/nixpkgs/pkgs/development/python-modules/keepalive/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/keepalive/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 }:
@@ -15,7 +15,7 @@ buildPythonPackage rec {
   # No tests included
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "An HTTP handler for `urllib2` that supports HTTP 1.1 and keepalive";
     homepage = "https://github.com/wikier/keepalive";
     license = licenses.asl20;
diff --git a/nixpkgs/pkgs/development/python-modules/keepkey/default.nix b/nixpkgs/pkgs/development/python-modules/keepkey/default.nix
index 82391d377503..437a0193c61d 100644
--- a/nixpkgs/pkgs/development/python-modules/keepkey/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/keepkey/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchFromGitHub, buildPythonPackage, pytest
+{ lib, stdenv, fetchFromGitHub, buildPythonPackage, pytest
 , ecdsa , mnemonic, protobuf, hidapi, trezor }:
 
 buildPythonPackage rec {
@@ -24,7 +24,7 @@ buildPythonPackage rec {
   # Remove impossible dependency constraint
   postPatch = "sed -i -e 's|hidapi==|hidapi>=|' setup.py";
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "KeepKey Python client";
     homepage = "https://github.com/keepkey/python-keepkey";
     license = licenses.gpl3;
diff --git a/nixpkgs/pkgs/development/python-modules/keepkey_agent/default.nix b/nixpkgs/pkgs/development/python-modules/keepkey_agent/default.nix
index fec2d198fdd9..b9189cf4e167 100644
--- a/nixpkgs/pkgs/development/python-modules/keepkey_agent/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/keepkey_agent/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , keepkey
@@ -20,7 +20,10 @@ buildPythonPackage rec {
     keepkey libagent setuptools wheel
   ];
 
-  meta = with stdenv.lib; {
+  doCheck = false;
+  pythonImportsChecks = [ "keepkey_agent" ];
+
+  meta = with lib; {
     description = "Using KeepKey as hardware-based SSH/PGP agent";
     homepage = "https://github.com/romanz/trezor-agent";
     license = licenses.gpl3;
diff --git a/nixpkgs/pkgs/development/python-modules/keras/default.nix b/nixpkgs/pkgs/development/python-modules/keras/default.nix
index f2243a1531f6..7274d3d17a69 100644
--- a/nixpkgs/pkgs/development/python-modules/keras/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/keras/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi
+{ lib, stdenv, buildPythonPackage, fetchPypi
 , pytest, pytestcov, pytest_xdist
 , six, numpy, scipy, pyyaml, h5py
 , keras-applications, keras-preprocessing
@@ -27,7 +27,7 @@ buildPythonPackage rec {
   # Couldn't get tests working
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Deep Learning library for Theano and TensorFlow";
     homepage = "https://keras.io";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/kerberos/default.nix b/nixpkgs/pkgs/development/python-modules/kerberos/default.nix
index 7f5341a6a253..985339caed53 100644
--- a/nixpkgs/pkgs/development/python-modules/kerberos/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/kerberos/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , kerberos
@@ -6,11 +6,11 @@
 
 buildPythonPackage rec {
   pname = "kerberos";
-  version = "1.3.0";
+  version = "1.3.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "19663qxmma0i8bfbjc2iwy5hgq0g4pfb75r023v5dps68zfvffgh";
+    sha256 = "cdd046142a4e0060f96a00eb13d82a5d9ebc0f2d7934393ed559bac773460a2c";
   };
 
   nativeBuildInputs = [ kerberos ];
@@ -18,7 +18,7 @@ buildPythonPackage rec {
   # No tests in archive
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Kerberos high-level interface";
     homepage = "https://pypi.python.org/pypi/kerberos";
     license = licenses.asl20;
diff --git a/nixpkgs/pkgs/development/python-modules/keyring/2.nix b/nixpkgs/pkgs/development/python-modules/keyring/2.nix
index ce4aa145e8ee..ee3b42b9bb85 100644
--- a/nixpkgs/pkgs/development/python-modules/keyring/2.nix
+++ b/nixpkgs/pkgs/development/python-modules/keyring/2.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi
+{ lib, stdenv, buildPythonPackage, fetchPypi
 , dbus-python, setuptools_scm, entrypoints, secretstorage
 , pytest, pytest-flake8 }:
 
@@ -15,7 +15,7 @@ buildPythonPackage rec {
 
   checkInputs = [ pytest pytest-flake8 ];
 
-  propagatedBuildInputs = [ dbus-python entrypoints ] ++ stdenv.lib.optional stdenv.isLinux secretstorage;
+  propagatedBuildInputs = [ dbus-python entrypoints ] ++ lib.optional stdenv.isLinux secretstorage;
 
   doCheck = !stdenv.isDarwin;
 
@@ -23,7 +23,7 @@ buildPythonPackage rec {
     py.test
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Store and access your passwords safely";
     homepage    = "https://pypi.python.org/pypi/keyring";
     license     = licenses.psfl;
diff --git a/nixpkgs/pkgs/development/python-modules/keyrings-alt/default.nix b/nixpkgs/pkgs/development/python-modules/keyrings-alt/default.nix
index 506081659f65..bc20ff4e3740 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 @@
-{ stdenv, buildPythonPackage, fetchPypi, pythonOlder, isPy27, six
+{ lib, stdenv, buildPythonPackage, fetchPypi, pythonOlder, isPy27, six
 , pytest, backports_unittest-mock, keyring, setuptools_scm, toml
 }:
 
 buildPythonPackage rec {
   pname = "keyrings.alt";
-  version = "4.0.1";
+  version = "4.0.2";
   disabled = isPy27;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "cd23d4c6930b5271134ac815d868164cb6d0d2252ee6dcb07fadfca26caaa230";
+    sha256 = "cc475635099d6edd7e475c5a479e5b4da5e811a3af04495a1e9ada488d16fe25";
   };
 
   postPatch = ''
@@ -20,7 +20,7 @@ buildPythonPackage rec {
   nativeBuildInputs = [ setuptools_scm toml ];
   propagatedBuildInputs = [ six ];
 
-  checkInputs = [ pytest keyring ] ++ stdenv.lib.optional (pythonOlder "3.3") backports_unittest-mock;
+  checkInputs = [ pytest keyring ] ++ lib.optional (pythonOlder "3.3") backports_unittest-mock;
 
   # heavily relies on importing tests from keyring package
   doCheck = false;
@@ -32,7 +32,7 @@ buildPythonPackage rec {
     "keyrings.alt"
   ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     license = licenses.mit;
     description = "Alternate keyring implementations";
     homepage = "https://github.com/jaraco/keyrings.alt";
diff --git a/nixpkgs/pkgs/development/python-modules/kitchen/default.nix b/nixpkgs/pkgs/development/python-modules/kitchen/default.nix
index 494a4f8fc063..1a14b974114e 100644
--- a/nixpkgs/pkgs/development/python-modules/kitchen/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/kitchen/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi }:
+{ lib, stdenv, buildPythonPackage, fetchPypi }:
 buildPythonPackage rec {
   pname = "kitchen";
   version = "1.2.6";
@@ -8,7 +8,7 @@ buildPythonPackage rec {
     sha256 = "0g5hq2icnng9vy4www5hnr3r5srisfwp0wxw1sv5c5dxy61gak5q";
   };
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Kitchen contains a cornucopia of useful code";
     license = licenses.lgpl2;
     maintainers = with maintainers; [ ];
diff --git a/nixpkgs/pkgs/development/python-modules/kiwisolver/1_1.nix b/nixpkgs/pkgs/development/python-modules/kiwisolver/1_1.nix
index f4621c9c54de..0702e3518e01 100644
--- a/nixpkgs/pkgs/development/python-modules/kiwisolver/1_1.nix
+++ b/nixpkgs/pkgs/development/python-modules/kiwisolver/1_1.nix
@@ -14,7 +14,7 @@ buildPythonPackage rec {
     sha256 = "53eaed412477c836e1b9522c19858a8557d6e595077830146182225613b11a75";
   };
 
-  NIX_CFLAGS_COMPILE = stdenv.lib.optionalString stdenv.isDarwin "-I${libcxx}/include/c++/v1";
+  NIX_CFLAGS_COMPILE = lib.optionalString stdenv.isDarwin "-I${libcxx}/include/c++/v1";
 
   # Does not include tests
   doCheck = false;
diff --git a/nixpkgs/pkgs/development/python-modules/kiwisolver/default.nix b/nixpkgs/pkgs/development/python-modules/kiwisolver/default.nix
index a24e7300538a..d4d62787092b 100644
--- a/nixpkgs/pkgs/development/python-modules/kiwisolver/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/kiwisolver/default.nix
@@ -15,7 +15,7 @@ buildPythonPackage rec {
     sha256 = "950a199911a8d94683a6b10321f9345d5a3a8433ec58b217ace979e18f16e248";
   };
 
-  NIX_CFLAGS_COMPILE = stdenv.lib.optionalString stdenv.isDarwin "-I${libcxx}/include/c++/v1";
+  NIX_CFLAGS_COMPILE = lib.optionalString stdenv.isDarwin "-I${libcxx}/include/c++/v1";
 
   nativeBuildInputs = [
     cppy
diff --git a/nixpkgs/pkgs/development/python-modules/koji/default.nix b/nixpkgs/pkgs/development/python-modules/koji/default.nix
index eac2ab596433..5f560be4e887 100644
--- a/nixpkgs/pkgs/development/python-modules/koji/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/koji/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, buildPythonPackage, isPy3k, pycurl, six, rpm, dateutil }:
+{ lib, fetchurl, buildPythonPackage, isPy3k, pycurl, six, rpm, dateutil }:
 
 buildPythonPackage rec {
   pname = "koji";
@@ -23,10 +23,10 @@ buildPythonPackage rec {
     rm -rf $out/nix
   '';
 
-  meta = {
+  meta = with lib; {
     description = "An RPM-based build system";
     homepage = "https://pagure.io/koji";
-    license = stdenv.lib.licenses.lgpl21;
-    platforms = stdenv.lib.platforms.unix;
+    license = licenses.lgpl21;
+    platforms = platforms.unix;
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/korean-lunar-calendar/default.nix b/nixpkgs/pkgs/development/python-modules/korean-lunar-calendar/default.nix
index 41569ac9dc9b..8ad94d955aec 100644
--- a/nixpkgs/pkgs/development/python-modules/korean-lunar-calendar/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/korean-lunar-calendar/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 }:
@@ -16,7 +16,7 @@ buildPythonPackage rec {
   # no real tests
   pythonImportsCheck = [ "korean_lunar_calendar" ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "A library to convert Korean lunar-calendar to Gregorian calendar.";
     homepage = "https://github.com/usingsky/korean_lunar_calendar_py";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/kubernetes/default.nix b/nixpkgs/pkgs/development/python-modules/kubernetes/default.nix
index 2679c81de0f0..172180781968 100644
--- a/nixpkgs/pkgs/development/python-modules/kubernetes/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/kubernetes/default.nix
@@ -1,5 +1,5 @@
-{ stdenv, buildPythonPackage, fetchPypi, pythonAtLeast,
-  ipaddress, websocket_client, urllib3, pyyaml, requests_oauthlib, python-dateutil, google_auth, adal,
+{ lib, stdenv, 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 }:
 
 buildPythonPackage rec {
@@ -28,9 +28,9 @@ buildPythonPackage rec {
   };
 
   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 = [ ipaddress websocket_client urllib3 pyyaml requests_oauthlib python-dateutil google-auth adal ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Kubernetes python client";
     homepage = "https://github.com/kubernetes-client/python";
     license = licenses.asl20;
diff --git a/nixpkgs/pkgs/development/python-modules/labelbox/default.nix b/nixpkgs/pkgs/development/python-modules/labelbox/default.nix
index 0556411ee47e..1efe01092124 100644
--- a/nixpkgs/pkgs/development/python-modules/labelbox/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/labelbox/default.nix
@@ -8,7 +8,8 @@
 , shapely
 , ndjson
 , backoff
-, google_api_core
+, google-api-core
+, backports-datetime-fromisoformat
 }:
 
 buildPythonPackage rec {
@@ -22,12 +23,11 @@ buildPythonPackage rec {
 
   propagatedBuildInputs = [
     jinja2 requests pillow rasterio shapely ndjson backoff
-    google_api_core
+    google-api-core backports-datetime-fromisoformat
   ];
 
   # Test cases are not running on pypi or GitHub
   doCheck = false;
-
   pythonImportsCheck = [ "labelbox" ];
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/development/python-modules/larch/default.nix b/nixpkgs/pkgs/development/python-modules/larch/default.nix
index 3be8b2404192..7708bc0dbc02 100644
--- a/nixpkgs/pkgs/development/python-modules/larch/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/larch/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchurl
 , sphinx
@@ -22,7 +22,7 @@ buildPythonPackage rec {
   # error: invalid command 'test'
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://liw.fi/larch/";
     description = "Python B-tree library";
     license = licenses.gpl3;
diff --git a/nixpkgs/pkgs/development/python-modules/lasagne/default.nix b/nixpkgs/pkgs/development/python-modules/lasagne/default.nix
index febd38acc63f..5bddf5cbe6f2 100644
--- a/nixpkgs/pkgs/development/python-modules/lasagne/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/lasagne/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , numpy
@@ -21,7 +21,7 @@ buildPythonPackage rec {
   # there are no tests
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Lightweight library to build and train neural networks in Theano";
     homepage = "https://github.com/Lasagne/Lasagne";
     maintainers = with maintainers; [ NikolaMandic ];
diff --git a/nixpkgs/pkgs/development/python-modules/latexcodec/default.nix b/nixpkgs/pkgs/development/python-modules/latexcodec/default.nix
index 77b75193ca40..37ffe23b8061 100644
--- a/nixpkgs/pkgs/development/python-modules/latexcodec/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/latexcodec/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi, six, pytest }:
+{ lib, buildPythonPackage, fetchPypi, six, pytest }:
 
 buildPythonPackage rec {
   pname = "latexcodec";
@@ -17,10 +17,10 @@ buildPythonPackage rec {
     pytest
   '';
 
-  meta = {
+  meta = with lib; {
     homepage = "https://github.com/mcmtroffaes/latexcodec";
     description = "Lexer and codec to work with LaTeX code in Python";
-    license = stdenv.lib.licenses.mit;
+    license = licenses.mit;
   };
 
 }
diff --git a/nixpkgs/pkgs/development/python-modules/lazy-object-proxy/default.nix b/nixpkgs/pkgs/development/python-modules/lazy-object-proxy/default.nix
index dc2eecb002d4..63784b4005bb 100644
--- a/nixpkgs/pkgs/development/python-modules/lazy-object-proxy/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/lazy-object-proxy/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , pytest
@@ -24,7 +24,7 @@ buildPythonPackage rec {
   # Broken tests. Seem to be fixed upstream according to Travis.
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "A fast and thorough lazy object proxy";
     homepage = "https://github.com/ionelmc/python-lazy-object-proxy";
     license = with licenses; [ bsd2 ];
diff --git a/nixpkgs/pkgs/development/python-modules/lazy_import/default.nix b/nixpkgs/pkgs/development/python-modules/lazy_import/default.nix
index 743604d539ba..1bc52b3a65c8 100644
--- a/nixpkgs/pkgs/development/python-modules/lazy_import/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/lazy_import/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi
+{ lib, stdenv, buildPythonPackage, fetchPypi
 , pytest
 , pytest_xdist
 , six }:
@@ -26,7 +26,7 @@ buildPythonPackage rec {
     pytest --boxed
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "lazy_import provides a set of functions that load modules, and related attributes, in a lazy fashion.";
     homepage = https://github.com/mnmelo/lazy_import;
     license = licenses.gpl3;
diff --git a/nixpkgs/pkgs/development/python-modules/ldap/default.nix b/nixpkgs/pkgs/development/python-modules/ldap/default.nix
index 0e4f5597ce64..e5cd3d3828e1 100644
--- a/nixpkgs/pkgs/development/python-modules/ldap/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/ldap/default.nix
@@ -1,6 +1,6 @@
 { buildPythonPackage, fetchPypi
 , pyasn1, pyasn1-modules, pytest
-, openldap, cyrus_sasl, stdenv }:
+, openldap, cyrus_sasl, lib, stdenv }:
 
 buildPythonPackage rec {
   pname = "python-ldap";
@@ -29,7 +29,7 @@ buildPythonPackage rec {
 
   doCheck = !stdenv.isDarwin;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Python modules for implementing LDAP clients";
     homepage = "https://www.python-ldap.org/";
     license = licenses.psfl;
diff --git a/nixpkgs/pkgs/development/python-modules/ldap3/default.nix b/nixpkgs/pkgs/development/python-modules/ldap3/default.nix
index 178477dcc6b0..e1accc4d177e 100644
--- a/nixpkgs/pkgs/development/python-modules/ldap3/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/ldap3/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchPypi, buildPythonPackage, pyasn1 }:
+{ lib, stdenv, fetchPypi, buildPythonPackage, pyasn1 }:
 
 buildPythonPackage rec {
   pname = "ldap3";
@@ -13,7 +13,7 @@ buildPythonPackage rec {
 
   doCheck = false; # requires network
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://pypi.python.org/pypi/ldap3";
     description = "A strictly RFC 4510 conforming LDAP V3 pure Python client library";
     license = licenses.lgpl3;
diff --git a/nixpkgs/pkgs/development/python-modules/ldappool/default.nix b/nixpkgs/pkgs/development/python-modules/ldappool/default.nix
index d1b9da15cc5f..bc08633da8b4 100644
--- a/nixpkgs/pkgs/development/python-modules/ldappool/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/ldappool/default.nix
@@ -14,6 +14,8 @@ buildPythonPackage rec {
   postPatch = ''
     # Tests run without most of the dependencies
     echo "" > test-requirements.txt
+    # PrettyTable is now maintained again
+    substituteInPlace requirements.txt --replace "PrettyTable<0.8,>=0.7.2" "PrettyTable"
   '';
 
   nativeBuildInputs = [ pbr ];
@@ -24,7 +26,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "A simple connector pool for python-ldap";
-    homepage = "https://git.openstack.org/cgit/openstack/ldappool";
-    license = licenses.mpl20;
+    homepage = "https://opendev.org/openstack/ldappool/";
+    license = with licenses; [ mpl11 lgpl21Plus gpl2Plus ];
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/ldaptor/default.nix b/nixpkgs/pkgs/development/python-modules/ldaptor/default.nix
index 2a4550d6b423..e3694bffe378 100644
--- a/nixpkgs/pkgs/development/python-modules/ldaptor/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/ldaptor/default.nix
@@ -3,12 +3,13 @@
 , fetchPypi
 , twisted
 , passlib
-, pycrypto
 , pyopenssl
 , pyparsing
 , service-identity
 , zope_interface
 , isPy3k
+, pythonAtLeast
+, python
 }:
 
 buildPythonPackage rec {
@@ -21,13 +22,15 @@ buildPythonPackage rec {
   };
 
   propagatedBuildInputs = [
-    twisted passlib pycrypto pyopenssl pyparsing service-identity zope_interface
+    twisted passlib pyopenssl pyparsing service-identity zope_interface
   ];
 
-  disabled = isPy3k;
+  # https://github.com/twisted/ldaptor/pull/210
+  disabled = !isPy3k || pythonAtLeast "3.9";
 
-  # TypeError: None is neither bytes nor unicode
-  doCheck = false;
+  checkPhase = ''
+    ${python.interpreter} -m twisted.trial ldaptor
+  '';
 
   meta = {
     description = "A Pure-Python Twisted library for LDAP";
diff --git a/nixpkgs/pkgs/development/python-modules/le/default.nix b/nixpkgs/pkgs/development/python-modules/le/default.nix
index 927b3f44bcf3..6415b255c716 100644
--- a/nixpkgs/pkgs/development/python-modules/le/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/le/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchurl
 , isPy3k
@@ -21,7 +21,7 @@ buildPythonPackage rec {
 
   propagatedBuildInputs = [ simplejson psutil ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://github.com/rapid7/le";
     description = "Logentries agent";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/leather/default.nix b/nixpkgs/pkgs/development/python-modules/leather/default.nix
index 30a76747723a..99c1f080a031 100644
--- a/nixpkgs/pkgs/development/python-modules/leather/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/leather/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchPypi, buildPythonPackage, six }:
+{ lib, stdenv, fetchPypi, buildPythonPackage, six }:
 
 buildPythonPackage rec {
   pname = "leather";
@@ -11,7 +11,7 @@ buildPythonPackage rec {
 
   propagatedBuildInputs = [ six ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "http://leather.rtfd.io";
     description = "Python charting library";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/ledger_agent/default.nix b/nixpkgs/pkgs/development/python-modules/ledger_agent/default.nix
index 605fbed98a19..4fc935799c31 100644
--- a/nixpkgs/pkgs/development/python-modules/ledger_agent/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/ledger_agent/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , ledgerblue
@@ -20,7 +20,10 @@ buildPythonPackage rec {
     ledgerblue libagent setuptools wheel
   ];
 
-  meta = with stdenv.lib; {
+  # no tests
+  doCheck = false;
+
+  meta = with lib; {
     description = "Using Ledger as hardware-based SSH/PGP agent";
     homepage = "https://github.com/romanz/trezor-agent";
     license = licenses.gpl3;
diff --git a/nixpkgs/pkgs/development/python-modules/ledgerblue/default.nix b/nixpkgs/pkgs/development/python-modules/ledgerblue/default.nix
index c84d5fa471bd..f853dfbf01f9 100644
--- a/nixpkgs/pkgs/development/python-modules/ledgerblue/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/ledgerblue/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchPypi, buildPythonPackage, hidapi
+{ lib, stdenv, fetchPypi, buildPythonPackage, hidapi
 , pycrypto, pillow, protobuf, future, ecpy, python-u2flib-host, pycryptodomex
 , websocket_client
 }:
@@ -19,7 +19,7 @@ buildPythonPackage rec {
   # No tests
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Python library to communicate with Ledger Blue/Nano S";
     homepage = "https://github.com/LedgerHQ/blue-loader-python";
     license = licenses.asl20;
diff --git a/nixpkgs/pkgs/development/python-modules/ledgerwallet/default.nix b/nixpkgs/pkgs/development/python-modules/ledgerwallet/default.nix
index e25e9d5d2a4f..42bc0c391295 100644
--- a/nixpkgs/pkgs/development/python-modules/ledgerwallet/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/ledgerwallet/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , fetchFromGitHub
 , buildPythonPackage
 , cryptography
@@ -25,14 +25,14 @@ buildPythonPackage rec {
     sha256 = "0fb93h2wxm9as9rsywlgz2ng4wrlbjphn6mgbhj6nls2i86rrdxk";
   };
 
-  buildInputs = stdenv.lib.optionals stdenv.isDarwin [ AppKit ];
+  buildInputs = lib.optionals stdenv.isDarwin [ AppKit ];
   propagatedBuildInputs = [
     cryptography click construct ecdsa hidapi intelhex pillow protobuf requests tabulate
   ];
 
   pythonImportsCheck = [ "ledgerwallet" ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://github.com/LedgerHQ/ledgerctl";
     description = "A library to control Ledger devices";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/libagent/default.nix b/nixpkgs/pkgs/development/python-modules/libagent/default.nix
index 4bc07e969330..debe88f2f6cc 100644
--- a/nixpkgs/pkgs/development/python-modules/libagent/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/libagent/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchFromGitHub, buildPythonPackage, ed25519, ecdsa , semver, mnemonic,
+{ lib, stdenv, fetchFromGitHub, buildPythonPackage, ed25519, ecdsa , semver, mnemonic,
   unidecode, mock, pytest , backports-shutil-which, ConfigArgParse,
   python-daemon, pymsgbox }:
 
@@ -22,7 +22,7 @@ buildPythonPackage rec {
     py.test libagent/tests
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Using hardware wallets as SSH/GPG agent";
     homepage = "https://github.com/romanz/trezor-agent";
     license = licenses.gpl3;
diff --git a/nixpkgs/pkgs/development/python-modules/libais/default.nix b/nixpkgs/pkgs/development/python-modules/libais/default.nix
index 3d7408e87126..eb1ce861dd26 100644
--- a/nixpkgs/pkgs/development/python-modules/libais/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/libais/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi,
+{ lib, stdenv, buildPythonPackage, fetchPypi,
   six, pytest, pytestrunner, pytestcov, coverage
 }:
 buildPythonPackage rec {
@@ -16,7 +16,7 @@ buildPythonPackage rec {
   checkInputs = [ pytest pytestrunner pytestcov coverage ];
   propagatedBuildInputs = [ six ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://github.com/schwehr/libais";
     description = "Library for decoding maritime Automatic Identification System messages";
     license = licenses.asl20;
diff --git a/nixpkgs/pkgs/development/python-modules/libarchive-c/default.nix b/nixpkgs/pkgs/development/python-modules/libarchive-c/default.nix
index 6bcb7f80484c..73d99afda674 100644
--- a/nixpkgs/pkgs/development/python-modules/libarchive-c/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/libarchive-c/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , pytest
@@ -29,7 +29,7 @@ buildPythonPackage rec {
     py.test tests -k 'not test_check_archiveentry_with_unicode_entries_and_name_zip and not test_check_archiveentry_using_python_testtar'
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://github.com/Changaco/python-libarchive-c";
     description = "Python interface to libarchive";
     license = licenses.cc0;
diff --git a/nixpkgs/pkgs/development/python-modules/libarcus/default.nix b/nixpkgs/pkgs/development/python-modules/libarcus/default.nix
index e69e51ccf555..5a5116de5478 100644
--- a/nixpkgs/pkgs/development/python-modules/libarcus/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/libarcus/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, python, fetchFromGitHub
+{ lib, stdenv, buildPythonPackage, python, fetchFromGitHub
 , cmake, sip, protobuf, pythonOlder }:
 
 buildPythonPackage rec {
@@ -23,7 +23,7 @@ buildPythonPackage rec {
     sed -i 's#''${Python3_SITEARCH}#${placeholder "out"}/${python.sitePackages}#' cmake/SIPMacros.cmake
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Communication library between internal components for Ultimaker software";
     homepage = "https://github.com/Ultimaker/libArcus";
     license = licenses.lgpl3Plus;
diff --git a/nixpkgs/pkgs/development/python-modules/libasyncns/default.nix b/nixpkgs/pkgs/development/python-modules/libasyncns/default.nix
index fa7320bdf4ec..fc45622a671d 100644
--- a/nixpkgs/pkgs/development/python-modules/libasyncns/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/libasyncns/default.nix
@@ -1,5 +1,5 @@
-{ stdenv, buildPythonPackage, fetchurl
-, libasyncns, pkgconfig }:
+{ lib, stdenv, buildPythonPackage, fetchurl
+, libasyncns, pkg-config }:
 
 buildPythonPackage rec {
   pname = "libasyncns-python";
@@ -13,10 +13,10 @@ buildPythonPackage rec {
   patches = [ ./libasyncns-fix-res-consts.patch ];
 
   buildInputs = [ libasyncns ];
-  nativeBuildInputs = [ pkgconfig ];
+  nativeBuildInputs = [ pkg-config ];
   doCheck = false; # requires network access
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "libasyncns-python is a python binding for the asynchronous name service query library";
     license = licenses.lgpl21;
     maintainers = [ maintainers.mic92 ];
diff --git a/nixpkgs/pkgs/development/python-modules/libcloud/default.nix b/nixpkgs/pkgs/development/python-modules/libcloud/default.nix
index 671de812f272..bda0553b8eee 100644
--- a/nixpkgs/pkgs/development/python-modules/libcloud/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/libcloud/default.nix
@@ -13,11 +13,11 @@
 
 buildPythonPackage rec {
   pname = "apache-libcloud";
-  version = "3.2.0";
+  version = "3.3.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1b14b1f5f91ceeff5cf228613e76577d7b41e790dccd53a0f647ef816fb5495c";
+    sha256 = "2e3e4d02f9b3197f9119e737bc704fba52f34459d4bc96d8ad8f183d600747ba";
   };
 
   checkInputs = [ mock pytest pytestrunner requests-mock ];
diff --git a/nixpkgs/pkgs/development/python-modules/libcst/default.nix b/nixpkgs/pkgs/development/python-modules/libcst/default.nix
index e0ea0e332af6..f064c34e1586 100644
--- a/nixpkgs/pkgs/development/python-modules/libcst/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/libcst/default.nix
@@ -1,5 +1,5 @@
 { lib, buildPythonPackage, fetchFromGitHub, pythonOlder, black, isort
-, pytestCheckHook, pyyaml, typing-extensions, typing-inspect }:
+, pytestCheckHook, pyyaml, typing-extensions, typing-inspect, dataclasses }:
 
 buildPythonPackage rec {
   pname = "libcst";
@@ -16,7 +16,8 @@ buildPythonPackage rec {
 
   disabled = pythonOlder "3.6";
 
-  propagatedBuildInputs = [ pyyaml typing-inspect ];
+  propagatedBuildInputs = [ pyyaml typing-inspect ]
+    ++ lib.optional (pythonOlder "3.7") dataclasses;
 
   checkInputs = [ black isort pytestCheckHook ];
 
diff --git a/nixpkgs/pkgs/development/python-modules/libevdev/default.nix b/nixpkgs/pkgs/development/python-modules/libevdev/default.nix
index a17612c79cbc..4a4ba489e0a6 100644
--- a/nixpkgs/pkgs/development/python-modules/libevdev/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/libevdev/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib
 , buildPythonPackage
 , isPy27
 , fetchPypi
@@ -20,13 +20,13 @@ buildPythonPackage rec {
   patches = [
     (substituteAll {
       src = ./fix-paths.patch;
-      libevdev = stdenv.lib.getLib pkgs.libevdev;
+      libevdev = lib.getLib pkgs.libevdev;
     })
   ];
 
   checkInputs = [ pytestCheckHook ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Python wrapper around the libevdev C library";
     homepage = "https://gitlab.freedesktop.org/libevdev/python-libevdev";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/libgpuarray/default.nix b/nixpkgs/pkgs/development/python-modules/libgpuarray/default.nix
index 40a4f6f7429f..567ad2cf4892 100644
--- a/nixpkgs/pkgs/development/python-modules/libgpuarray/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/libgpuarray/default.nix
@@ -48,7 +48,7 @@ buildPythonPackage rec {
 
   postFixup = ''
     rm $out/lib/libgpuarray-static.a
-  '' + stdenv.lib.optionalString (!stdenv.isDarwin) ''
+  '' + lib.optionalString (!stdenv.isDarwin) ''
     function fixRunPath {
       p=$(patchelf --print-rpath $1)
       patchelf --set-rpath "$p:$libraryPath" $1
@@ -63,8 +63,6 @@ buildPythonPackage rec {
     Mako
   ];
 
-  enableParallelBuilding = true;
-
   nativeBuildInputs = [ cmake ];
 
   buildInputs = [
@@ -72,7 +70,7 @@ buildPythonPackage rec {
     nose
   ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://github.com/Theano/libgpuarray";
     description = "Library to manipulate tensors on GPU.";
     license = licenses.free;
diff --git a/nixpkgs/pkgs/development/python-modules/libkeepass/default.nix b/nixpkgs/pkgs/development/python-modules/libkeepass/default.nix
index 0969e62c79e8..cfc687e37c14 100644
--- a/nixpkgs/pkgs/development/python-modules/libkeepass/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/libkeepass/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchPypi, buildPythonPackage
+{ lib, stdenv, fetchPypi, buildPythonPackage
 , lxml, pycryptodome, colorama }:
 
 buildPythonPackage rec {
@@ -15,7 +15,7 @@ buildPythonPackage rec {
   # No tests on PyPI
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://github.com/libkeepass/libkeepass";
     description = "A library to access KeePass 1.x/KeePassX (v3) and KeePass 2.x (v4) files";
     license = licenses.gpl2Plus;
diff --git a/nixpkgs/pkgs/development/python-modules/liblarch/default.nix b/nixpkgs/pkgs/development/python-modules/liblarch/default.nix
index 30b52be0b850..b824dec172ed 100644
--- a/nixpkgs/pkgs/development/python-modules/liblarch/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/liblarch/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , fetchFromGitHub
 , buildPythonPackage
 , python
@@ -37,7 +37,7 @@ buildPythonPackage rec {
     runHook postCheck
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "A python library built to easily handle data structure such are lists, trees and acyclic graphs";
     homepage = "https://github.com/getting-things-gnome/liblarch";
     downloadPage = "https://github.com/getting-things-gnome/liblarch/releases";
diff --git a/nixpkgs/pkgs/development/python-modules/libmr/default.nix b/nixpkgs/pkgs/development/python-modules/libmr/default.nix
index 7b1bbf6020d2..a0ef924e56e6 100644
--- a/nixpkgs/pkgs/development/python-modules/libmr/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/libmr/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi, numpy, cython }:
+{ lib, stdenv, buildPythonPackage, fetchPypi, numpy, cython }:
 
 buildPythonPackage rec {
   pname = "libmr";
@@ -15,7 +15,7 @@ buildPythonPackage rec {
   # No tests in the pypi tarball
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "libMR provides core MetaRecognition and Weibull fitting functionality";
     homepage = "https://github.com/Vastlab/libMR";
     license = licenses.bsd3;
diff --git a/nixpkgs/pkgs/development/python-modules/libnacl/default.nix b/nixpkgs/pkgs/development/python-modules/libnacl/default.nix
index 9e19fe5e8e17..2406738cf1bb 100644
--- a/nixpkgs/pkgs/development/python-modules/libnacl/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/libnacl/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchFromGitHub, pytest, libsodium }:
+{ lib, stdenv, buildPythonPackage, fetchFromGitHub, pytest, libsodium }:
 
 buildPythonPackage rec {
   pname = "libnacl";
@@ -23,7 +23,7 @@ buildPythonPackage rec {
     py.test
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     maintainers = with maintainers; [ xvapx ];
     description = "Python bindings for libsodium based on ctypes";
     homepage = "https://pypi.python.org/pypi/libnacl";
diff --git a/nixpkgs/pkgs/development/python-modules/librosa/default.nix b/nixpkgs/pkgs/development/python-modules/librosa/default.nix
index 0fc5d857fb84..777eed4ddb33 100644
--- a/nixpkgs/pkgs/development/python-modules/librosa/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/librosa/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , joblib
@@ -31,7 +31,7 @@ buildPythonPackage rec {
   # check that import works, this allows to capture errors like https://github.com/librosa/librosa/issues/1160
   pythonImportsCheck = [ "librosa" ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Python module for audio and music processing";
     homepage = "http://librosa.github.io/";
     license = licenses.isc;
diff --git a/nixpkgs/pkgs/development/python-modules/libsavitar/default.nix b/nixpkgs/pkgs/development/python-modules/libsavitar/default.nix
index 9b6aa7bc3a8d..559289987e6c 100644
--- a/nixpkgs/pkgs/development/python-modules/libsavitar/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/libsavitar/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, python, pythonOlder, fetchFromGitHub, cmake, sip }:
+{ lib, stdenv, buildPythonPackage, python, pythonOlder, fetchFromGitHub, cmake, sip }:
 
 buildPythonPackage rec {
   pname = "libsavitar";
@@ -22,7 +22,7 @@ buildPythonPackage rec {
 
   disabled = pythonOlder "3.4.0";
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "C++ implementation of 3mf loading with SIP python bindings";
     homepage = "https://github.com/Ultimaker/libSavitar";
     license = licenses.lgpl3Plus;
diff --git a/nixpkgs/pkgs/development/python-modules/libsoundtouch/default.nix b/nixpkgs/pkgs/development/python-modules/libsoundtouch/default.nix
index 119cb6cbefa7..40f1b2f8e9ca 100644
--- a/nixpkgs/pkgs/development/python-modules/libsoundtouch/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/libsoundtouch/default.nix
@@ -26,7 +26,7 @@ buildPythonPackage {
 
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Bose Soundtouch Python library";
     homepage    = "https://github.com/CharlesBlonde/libsoundtouch";
     license     = licenses.asl20;
diff --git a/nixpkgs/pkgs/development/python-modules/libthumbor/default.nix b/nixpkgs/pkgs/development/python-modules/libthumbor/default.nix
index e8b7c45417a1..72e62514a526 100644
--- a/nixpkgs/pkgs/development/python-modules/libthumbor/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/libthumbor/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , django
@@ -20,7 +20,7 @@ buildPythonPackage rec {
 
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "libthumbor is the python extension to thumbor";
     homepage = "https://github.com/heynemann/libthumbor";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/libtmux/default.nix b/nixpkgs/pkgs/development/python-modules/libtmux/default.nix
index 9df5cffec97b..df9728eb334b 100644
--- a/nixpkgs/pkgs/development/python-modules/libtmux/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/libtmux/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchPypi, buildPythonPackage, pytest }:
+{ lib, stdenv, fetchPypi, buildPythonPackage, pytest }:
 
 buildPythonPackage rec {
   pname = "libtmux";
@@ -17,7 +17,7 @@ buildPythonPackage rec {
   # No tests in archive
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Scripting library for tmux";
     homepage = "https://libtmux.readthedocs.io/";
     license = licenses.bsd3;
diff --git a/nixpkgs/pkgs/development/python-modules/libusb1/default.nix b/nixpkgs/pkgs/development/python-modules/libusb1/default.nix
index 63a97652381b..0446299fd1bd 100644
--- a/nixpkgs/pkgs/development/python-modules/libusb1/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/libusb1/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi, libusb1, pytest }:
+{ lib, stdenv, buildPythonPackage, fetchPypi, libusb1, pytest }:
 
 buildPythonPackage rec {
   pname = "libusb1";
@@ -25,7 +25,7 @@ buildPythonPackage rec {
     py.test -k 'not testUSBPollerThreadExit' usb1/testUSB1.py
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage    = "https://github.com/vpelletier/python-libusb1";
     description = "Python ctype-based wrapper around libusb1";
     license     = licenses.lgpl2Plus;
diff --git a/nixpkgs/pkgs/development/python-modules/libversion/default.nix b/nixpkgs/pkgs/development/python-modules/libversion/default.nix
index ed3629ce65d5..d54a176f6862 100644
--- a/nixpkgs/pkgs/development/python-modules/libversion/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/libversion/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi, pkgconfig, libversion, pythonOlder }:
+{ lib, stdenv, buildPythonPackage, fetchPypi, pkg-config, libversion, pythonOlder }:
 
 buildPythonPackage rec {
   pname = "libversion";
@@ -9,12 +9,12 @@ buildPythonPackage rec {
     sha256 = "1h8x9hglrqi03f461lhw3wwz23zs84dgw7hx4laxcmyrgvyzvcq1";
   };
 
-  nativeBuildInputs = [ pkgconfig ];
+  nativeBuildInputs = [ pkg-config ];
   buildInputs = [ libversion ];
 
   disabled = pythonOlder "3.6";
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://github.com/repology/py-libversion";
     description = "Python bindings for libversion, which provides fast, powerful and correct generic version string comparison algorithm";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/libvirt/5.9.0.nix b/nixpkgs/pkgs/development/python-modules/libvirt/5.9.0.nix
index 7b0b7c438d9a..1134d4f1c57b 100644
--- a/nixpkgs/pkgs/development/python-modules/libvirt/5.9.0.nix
+++ b/nixpkgs/pkgs/development/python-modules/libvirt/5.9.0.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchgit, pkgconfig, lxml, libvirt, nose }:
+{ lib, stdenv, buildPythonPackage, fetchgit, pkg-config, lxml, libvirt, nose }:
 
 buildPythonPackage rec {
   pname = "libvirt";
@@ -10,7 +10,7 @@ buildPythonPackage rec {
     sha256 = "0qvr0s7yasswy1s5cvkm91iifk33pb8s7nbb38zznc46706b358r";
   };
 
-  nativeBuildInputs = [ pkgconfig ];
+  nativeBuildInputs = [ pkg-config ];
   buildInputs = [ libvirt lxml ];
 
   checkInputs = [ nose ];
@@ -18,7 +18,7 @@ buildPythonPackage rec {
     nosetests
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "http://www.libvirt.org/";
     description = "libvirt Python bindings";
     license = licenses.lgpl2;
diff --git a/nixpkgs/pkgs/development/python-modules/libvirt/default.nix b/nixpkgs/pkgs/development/python-modules/libvirt/default.nix
index 4c0e730f7d57..d29cf5a7a85f 100644
--- a/nixpkgs/pkgs/development/python-modules/libvirt/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/libvirt/default.nix
@@ -1,17 +1,17 @@
-{ stdenv, buildPythonPackage, fetchFromGitLab, pkgconfig, lxml, libvirt, nose }:
+{ lib, stdenv, buildPythonPackage, fetchFromGitLab, pkg-config, lxml, libvirt, nose }:
 
 buildPythonPackage rec {
   pname = "libvirt";
-  version = "6.6.0";
+  version = "6.8.0";
 
   src = assert version == libvirt.version; fetchFromGitLab {
     owner = "libvirt";
     repo = "libvirt-python";
     rev = "v${version}";
-    sha256 = "0jj6b2nlx7qldwbvixz74abn3p0sq4lkf6ak74vynrv5xvlycb9v";
+    sha256 = "sha256-A3eRfzQAfubyPefDlq5bAiFJ/G90D2JKdJO2Em0wE00=";
   };
 
-  nativeBuildInputs = [ pkgconfig ];
+  nativeBuildInputs = [ pkg-config ];
   buildInputs = [ libvirt lxml ];
 
   checkInputs = [ nose ];
@@ -19,7 +19,7 @@ buildPythonPackage rec {
     nosetests
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://libvirt.org/python.html";
     description = "libvirt Python bindings";
     license = licenses.lgpl2;
diff --git a/nixpkgs/pkgs/development/python-modules/lightblue/default.nix b/nixpkgs/pkgs/development/python-modules/lightblue/default.nix
index 99db9e5c2f73..3e85a3cfaa04 100644
--- a/nixpkgs/pkgs/development/python-modules/lightblue/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/lightblue/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchurl
 , pkgs
@@ -17,7 +17,7 @@ buildPythonPackage rec {
 
   buildInputs = [ pkgs.bluez pkgs.openobex ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "http://lightblue.sourceforge.net";
     description = "Cross-platform Bluetooth API for Python";
     maintainers = with maintainers; [ leenaars ];
diff --git a/nixpkgs/pkgs/development/python-modules/lightgbm/default.nix b/nixpkgs/pkgs/development/python-modules/lightgbm/default.nix
index eae2e4208d1d..62686234b6e9 100644
--- a/nixpkgs/pkgs/development/python-modules/lightgbm/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/lightgbm/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , cmake
@@ -26,7 +26,7 @@ buildPythonPackage rec {
   # we never actually explicitly call the install command so this is the only way
   # to inject these options to it - however, openmp-library doesn't appear to have
   # any effect, so we have to inject it into NIX_LDFLAGS manually below
-  postPatch = stdenv.lib.optionalString stdenv.cc.isClang ''
+  postPatch = lib.optionalString stdenv.cc.isClang ''
     cat >> setup.cfg <<EOF
 
     [install]
@@ -44,7 +44,7 @@ buildPythonPackage rec {
 
   postConfigure = ''
     export HOME=$(mktemp -d)
-  '' + stdenv.lib.optionalString stdenv.cc.isClang ''
+  '' + lib.optionalString stdenv.cc.isClang ''
     export NIX_LDFLAGS="$NIX_LDFLAGS -L${llvmPackages.openmp}/lib -lomp"
   '';
 
@@ -53,7 +53,7 @@ buildPythonPackage rec {
   # `make check`.
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "A fast, distributed, high performance gradient boosting (GBDT, GBRT, GBM or MART) framework";
     homepage = "https://github.com/Microsoft/LightGBM";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/lightning/default.nix b/nixpkgs/pkgs/development/python-modules/lightning/default.nix
index 8b128e7cb892..782bd41413eb 100644
--- a/nixpkgs/pkgs/development/python-modules/lightning/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/lightning/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , pytest
@@ -21,7 +21,7 @@ buildPythonPackage rec {
   buildInputs = [ pytest ];
   propagatedBuildInputs = [ jinja2 matplotlib numpy requests six ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "A Python client library for the Lightning data visualization server";
     homepage = "http://lightning-viz.org";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/limits/default.nix b/nixpkgs/pkgs/development/python-modules/limits/default.nix
index 22bd6607fb6b..e1cd31867de4 100644
--- a/nixpkgs/pkgs/development/python-modules/limits/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/limits/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchPypi, buildPythonPackage, six }:
+{ lib, stdenv, fetchPypi, buildPythonPackage, six }:
 
 buildPythonPackage rec {
   pname = "limits";
@@ -13,7 +13,7 @@ buildPythonPackage rec {
 
   doCheck = false; # ifilter
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Rate limiting utilities";
     license = licenses.mit;
     homepage = "https://limits.readthedocs.org/";
diff --git a/nixpkgs/pkgs/development/python-modules/limnoria/default.nix b/nixpkgs/pkgs/development/python-modules/limnoria/default.nix
index b46d1566532b..c92e014e9898 100644
--- a/nixpkgs/pkgs/development/python-modules/limnoria/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/limnoria/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , isPy27
@@ -22,7 +22,7 @@ buildPythonPackage rec {
 
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "A modified version of Supybot, an IRC bot";
     homepage = "https://github.com/ProgVal/Limnoria";
     license = licenses.bsd3;
diff --git a/nixpkgs/pkgs/development/python-modules/linecache2/default.nix b/nixpkgs/pkgs/development/python-modules/linecache2/default.nix
index ba2525155d30..3945ec5001cd 100644
--- a/nixpkgs/pkgs/development/python-modules/linecache2/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/linecache2/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , pbr
@@ -18,7 +18,7 @@ buildPythonPackage rec {
   # circular dependencies for tests
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "A backport of linecache to older supported Pythons";
     homepage = "https://github.com/testing-cabal/linecache2";
     license = licenses.psfl;
diff --git a/nixpkgs/pkgs/development/python-modules/linode-api/default.nix b/nixpkgs/pkgs/development/python-modules/linode-api/default.nix
index 4689050ba6c7..61624a64d66a 100644
--- a/nixpkgs/pkgs/development/python-modules/linode-api/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/linode-api/default.nix
@@ -15,9 +15,9 @@ buildPythonPackage rec {
   disabled = (pythonOlder "2.7");
 
   propagatedBuildInputs = [ requests future ]
-                             ++ stdenv.lib.optionals (pythonOlder "3.4") [ enum34 ];
+                             ++ lib.optionals (pythonOlder "3.4") [ enum34 ];
 
-  postPatch = (stdenv.lib.optionalString (!pythonOlder "3.4") ''
+  postPatch = (lib.optionalString (!pythonOlder "3.4") ''
     sed -i -e '/"enum34",/d' setup.py
   '');
 
diff --git a/nixpkgs/pkgs/development/python-modules/linode/default.nix b/nixpkgs/pkgs/development/python-modules/linode/default.nix
index d0c8b0ff7943..611b91bb9309 100644
--- a/nixpkgs/pkgs/development/python-modules/linode/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/linode/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , requests
@@ -15,7 +15,7 @@ buildPythonPackage rec {
 
   propagatedBuildInputs = [ requests ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://github.com/ghickman/linode";
     description = "A thin python wrapper around Linode's API";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/liquidctl/default.nix b/nixpkgs/pkgs/development/python-modules/liquidctl/default.nix
index 888f09dba95b..97d80fbbbda7 100644
--- a/nixpkgs/pkgs/development/python-modules/liquidctl/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/liquidctl/default.nix
@@ -27,6 +27,10 @@ buildPythonPackage rec {
     smbus-cffi
   ];
 
+  # does not contain tests
+  doCheck = false;
+  pythonImportsCheck = [ "liquidctl" ];
+
   meta = with lib; {
     description = "Cross-platform CLI and Python drivers for AIO liquid coolers and other devices";
     homepage    = "https://github.com/liquidctl/liquidctl";
diff --git a/nixpkgs/pkgs/development/python-modules/livelossplot/default.nix b/nixpkgs/pkgs/development/python-modules/livelossplot/default.nix
index c58a18dffe8e..bbf1b966bf1e 100644
--- a/nixpkgs/pkgs/development/python-modules/livelossplot/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/livelossplot/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchFromGitHub
 , isPy27
@@ -31,7 +31,7 @@ buildPythonPackage rec {
     pytest tests tests/external_test_examples.py
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Live training loss plot in Jupyter for Keras, PyTorch, and others";
     homepage = "https://github.com/stared/livelossplot";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/livestreamer-curses/default.nix b/nixpkgs/pkgs/development/python-modules/livestreamer-curses/default.nix
index 846f7633924b..d76eb736ac73 100644
--- a/nixpkgs/pkgs/development/python-modules/livestreamer-curses/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/livestreamer-curses/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchurl
 , isPyPy
@@ -17,7 +17,7 @@ buildPythonPackage rec {
 
   propagatedBuildInputs = [ livestreamer ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://github.com/gapato/livestreamer-curses";
     description = "Curses frontend for livestreamer";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/livestreamer/default.nix b/nixpkgs/pkgs/development/python-modules/livestreamer/default.nix
index 83bd4bcfb72c..7ae9124bb82c 100644
--- a/nixpkgs/pkgs/development/python-modules/livestreamer/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/livestreamer/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , pkgs
 , isPyPy
@@ -22,13 +22,13 @@ buildPythonPackage rec {
   buildInputs = [ pkgs.makeWrapper ];
 
   propagatedBuildInputs = [ pkgs.rtmpdump pycrypto requests ]
-    ++ stdenv.lib.optionals isPy27 [ singledispatch futures ];
+    ++ lib.optionals isPy27 [ singledispatch futures ];
 
   postInstall = ''
     wrapProgram $out/bin/livestreamer --prefix PATH : ${pkgs.rtmpdump}/bin
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "http://livestreamer.tanuki.se";
     description = ''
       Livestreamer is CLI program that extracts streams from various
diff --git a/nixpkgs/pkgs/development/python-modules/llfuse/default.nix b/nixpkgs/pkgs/development/python-modules/llfuse/default.nix
index ac9360cb02df..e615582a282d 100644
--- a/nixpkgs/pkgs/development/python-modules/llfuse/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/llfuse/default.nix
@@ -1,11 +1,7 @@
-{ stdenv, fetchPypi, fetchpatch, buildPythonPackage, pkgconfig, pytest, fuse, attr, which
+{ lib, stdenv, fetchPypi, fetchpatch, buildPythonPackage, pkg-config, pytest, fuse, attr, which
 , contextlib2, osxfuse
 }:
 
-let
-  inherit (stdenv.lib) optionals optionalString;
-in
-
 buildPythonPackage rec {
   pname = "llfuse";
   version = "1.3.8";
@@ -23,20 +19,22 @@ buildPythonPackage rec {
     })
   ];
 
-  nativeBuildInputs = [ pkgconfig ];
+  nativeBuildInputs = [ pkg-config ];
+
   buildInputs =
-    optionals stdenv.isLinux [ fuse ]
-    ++ optionals stdenv.isDarwin [ osxfuse ];
+    lib.optionals stdenv.isLinux [ fuse ]
+    ++ lib.optionals stdenv.isDarwin [ osxfuse ];
+
   checkInputs = [ pytest which ] ++
-    optionals stdenv.isLinux [ attr ];
+    lib.optionals stdenv.isLinux [ attr ];
 
   propagatedBuildInputs = [ contextlib2 ];
 
   checkPhase = ''
-    py.test -k "not test_listdir" ${optionalString stdenv.isDarwin ''-m "not uses_fuse"''}
+    py.test -k "not test_listdir" ${lib.optionalString stdenv.isDarwin ''-m "not uses_fuse"''}
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Python bindings for the low-level FUSE API";
     homepage = "https://github.com/python-llfuse/python-llfuse";
     license = licenses.lgpl2Plus;
diff --git a/nixpkgs/pkgs/development/python-modules/llvmlite/default.nix b/nixpkgs/pkgs/development/python-modules/llvmlite/default.nix
index 7a7106a5eaa6..02ee088782aa 100644
--- a/nixpkgs/pkgs/development/python-modules/llvmlite/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/llvmlite/default.nix
@@ -1,4 +1,5 @@
-{ stdenv
+{ lib
+, stdenv
 , fetchPypi
 , buildPythonPackage
 , python
@@ -21,7 +22,7 @@ buildPythonPackage rec {
   };
 
   nativeBuildInputs = [ llvm ];
-  propagatedBuildInputs = [ ] ++ stdenv.lib.optional (pythonOlder "3.4") enum34;
+  propagatedBuildInputs = [ ] ++ lib.optional (pythonOlder "3.4") enum34;
 
   # Disable static linking
   # https://github.com/numba/llvmlite/issues/93
@@ -38,14 +39,14 @@ buildPythonPackage rec {
     ${python.executable} runtests.py
   '';
 
-  __impureHostDeps = stdenv.lib.optionals stdenv.isDarwin [ "/usr/lib/libm.dylib" ];
+  __impureHostDeps = lib.optionals stdenv.isDarwin [ "/usr/lib/libm.dylib" ];
 
   passthru.llvm = llvm;
 
-  meta = {
+  meta = with lib; {
     description = "A lightweight LLVM python binding for writing JIT compilers";
     homepage = "http://llvmlite.pydata.org/";
-    license = stdenv.lib.licenses.bsd2;
-    maintainers = with stdenv.lib.maintainers; [ fridh ];
+    license = licenses.bsd2;
+    maintainers = with maintainers; [ fridh ];
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/lmdb/default.nix b/nixpkgs/pkgs/development/python-modules/lmdb/default.nix
index 76cd2acd7435..20020b97ef23 100644
--- a/nixpkgs/pkgs/development/python-modules/lmdb/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/lmdb/default.nix
@@ -1,8 +1,10 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
-, pytest
+, pytestCheckHook
 , cffi
+, lmdb
+, ludios_wpull
 }:
 
 buildPythonPackage rec {
@@ -14,16 +16,18 @@ buildPythonPackage rec {
     sha256 = "4136ffdf0aad61da86d1402808029d002a771b2a9ccc9b39c6bcafa7847c21b6";
   };
 
-  checkInputs = [ pytest cffi ];
-  checkPhase = ''
-    py.test
-  '';
+  buildInputs = [ lmdb ];
 
-  meta = with stdenv.lib; {
+  propogatedBuildInputs = [ ludios_wpull ];
+
+  checkInputs = [ cffi pytestCheckHook ];
+
+  LMDB_FORCE_SYSTEM=1;
+
+  meta = with lib; {
     description = "Universal Python binding for the LMDB 'Lightning' Database";
     homepage = "https://github.com/dw/py-lmdb";
     license = licenses.openldap;
     maintainers = with maintainers; [ copumpkin ivan ];
   };
-
 }
diff --git a/nixpkgs/pkgs/development/python-modules/lmtpd/default.nix b/nixpkgs/pkgs/development/python-modules/lmtpd/default.nix
index 336b799eee2c..3a1beba29d40 100644
--- a/nixpkgs/pkgs/development/python-modules/lmtpd/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/lmtpd/default.nix
@@ -1,4 +1,4 @@
-{ buildPythonPackage, fetchPypi, isPy3k, stdenv }:
+{ buildPythonPackage, fetchPypi, isPy3k, lib, stdenv }:
 
 buildPythonPackage rec {
   pname = "lmtpd";
@@ -11,7 +11,7 @@ buildPythonPackage rec {
     sha256 = "2c6825d2ffa1de099440411a742f58e1b3e8deeb3345adcfd4c2c38d4baf62b3";
   };
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://github.com/moggers87/lmtpd";
     description = "LMTP counterpart to smtpd in the Python standard library";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/localzone/default.nix b/nixpkgs/pkgs/development/python-modules/localzone/default.nix
index f4ed4b98ef59..8690b1e4c91e 100644
--- a/nixpkgs/pkgs/development/python-modules/localzone/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/localzone/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchFromGitHub
 , dnspython
@@ -25,7 +25,7 @@ buildPythonPackage rec {
     pytest
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "A simple DNS library for managing zone files";
     homepage = "https://localzone.iomaestro.com";
     license = licenses.bsd3;
diff --git a/nixpkgs/pkgs/development/python-modules/locket/default.nix b/nixpkgs/pkgs/development/python-modules/locket/default.nix
index d98ab6379744..45985a17d3e9 100644
--- a/nixpkgs/pkgs/development/python-modules/locket/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/locket/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi, pytest }:
+{ lib, stdenv, buildPythonPackage, fetchPypi, pytest }:
 
 buildPythonPackage rec {
   pname = "locket";
@@ -14,7 +14,7 @@ buildPythonPackage rec {
   # weird test requirements (spur.local>=0.3.7,<0.4)
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Locket implements a lock that can be used by multiple processes provided they use the same path.";
     homepage = "https://github.com/mwilliamson/locket.py";
     license = licenses.bsd2;
diff --git a/nixpkgs/pkgs/development/python-modules/logilab/common.nix b/nixpkgs/pkgs/development/python-modules/logilab/common.nix
index 3da263757cc6..b7ba746d79ee 100644
--- a/nixpkgs/pkgs/development/python-modules/logilab/common.nix
+++ b/nixpkgs/pkgs/development/python-modules/logilab/common.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi, isPy27, unittest2, six }:
+{ lib, stdenv, buildPythonPackage, fetchPypi, isPy27, unittest2, six }:
 
 buildPythonPackage rec {
   pname = "logilab-common";
@@ -16,7 +16,7 @@ buildPythonPackage rec {
   # and is not currently in nixos
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Python packages and modules used by Logilab ";
     homepage = "https://www.logilab.org/project/logilab-common";
     license = licenses.lgpl21;
diff --git a/nixpkgs/pkgs/development/python-modules/logilab/constraint.nix b/nixpkgs/pkgs/development/python-modules/logilab/constraint.nix
index aa26f21820b7..9a071b5cf5f9 100644
--- a/nixpkgs/pkgs/development/python-modules/logilab/constraint.nix
+++ b/nixpkgs/pkgs/development/python-modules/logilab/constraint.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi, logilab_common, six }:
+{ lib, stdenv, buildPythonPackage, fetchPypi, logilab_common, six }:
 
 buildPythonPackage rec {
   pname = "logilab-constraint";
@@ -14,7 +14,7 @@ buildPythonPackage rec {
   ];
 
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "logilab-database provides some classes to make unified access to different";
     homepage = "https://www.logilab.org/project/logilab-database";
   };
diff --git a/nixpkgs/pkgs/development/python-modules/logilab_astng/default.nix b/nixpkgs/pkgs/development/python-modules/logilab_astng/default.nix
index 81879b2218de..15cea1d7baaa 100644
--- a/nixpkgs/pkgs/development/python-modules/logilab_astng/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/logilab_astng/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchurl
 , logilab_common
@@ -15,7 +15,7 @@ buildPythonPackage rec {
 
   propagatedBuildInputs = [ logilab_common ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://www.logilab.org/project/logilab-astng";
     description = "Python Abstract Syntax Tree New Generation";
     license = licenses.lgpl2;
diff --git a/nixpkgs/pkgs/development/python-modules/loguru/default.nix b/nixpkgs/pkgs/development/python-modules/loguru/default.nix
index 216fb3c5181e..458d2ca50329 100644
--- a/nixpkgs/pkgs/development/python-modules/loguru/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/loguru/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi, isPy27, colorama, pytestCheckHook }:
+{ lib, stdenv, buildPythonPackage, fetchPypi, isPy27, colorama, pytestCheckHook }:
 
 buildPythonPackage rec {
   pname = "loguru";
@@ -12,12 +12,12 @@ buildPythonPackage rec {
 
   checkInputs = [ pytestCheckHook colorama ];
 
-  pytestFlagsArray = stdenv.lib.optionals stdenv.isDarwin [ "--ignore=tests/test_multiprocessing.py" ];
+  pytestFlagsArray = lib.optionals stdenv.isDarwin [ "--ignore=tests/test_multiprocessing.py" ];
 
   disabledTests = [ "test_time_rotation_reopening" "test_file_buffering" ]
-    ++ stdenv.lib.optionals stdenv.isDarwin [ "test_rotation_and_retention" "test_rotation_and_retention_timed_file" "test_renaming" "test_await_complete_inheritance" ];
+    ++ lib.optionals stdenv.isDarwin [ "test_rotation_and_retention" "test_rotation_and_retention_timed_file" "test_renaming" "test_await_complete_inheritance" ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://github.com/Delgan/loguru";
     description = "Python logging made (stupidly) simple";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/logutils/default.nix b/nixpkgs/pkgs/development/python-modules/logutils/default.nix
index 8b4cb4e69c5c..d49667d7cc8a 100644
--- a/nixpkgs/pkgs/development/python-modules/logutils/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/logutils/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 }:
@@ -12,7 +12,7 @@ buildPythonPackage rec {
     sha256 = "bc058a25d5c209461f134e1f03cab637d66a7a5ccc12e593db56fbb279899a82";
   };
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Logging utilities";
     homepage = "https://bitbucket.org/vinay.sajip/logutils/";
     license = licenses.bsd0;
diff --git a/nixpkgs/pkgs/development/python-modules/lpod/default.nix b/nixpkgs/pkgs/development/python-modules/lpod/default.nix
index effdc3f432a6..67b48cecd62c 100644
--- a/nixpkgs/pkgs/development/python-modules/lpod/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/lpod/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchFromGitHub
 , lxml
@@ -22,7 +22,7 @@ buildPythonPackage {
     sha256 = "1mikvzp27wxkzpr2lii4wg1hhx8h610agckqynvsrdc8v3nw9ciw";
   };
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://github.com/lpod/lpod-python/";
     description = "Library implementing the ISO/IEC 26300 OpenDocument Format standard (ODF) ";
     license = licenses.gpl3;
diff --git a/nixpkgs/pkgs/development/python-modules/lsassy/default.nix b/nixpkgs/pkgs/development/python-modules/lsassy/default.nix
new file mode 100644
index 000000000000..6b1d5ec2bb4c
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/lsassy/default.nix
@@ -0,0 +1,37 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, impacket
+, netaddr
+, pypykatz
+, pytestCheckHook
+}:
+
+buildPythonPackage rec {
+  pname = "lsassy";
+  version = "2.1.3";
+
+  src = fetchFromGitHub {
+    owner = "Hackndo";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "1zig34ymc1h18gjc2ji0w0711im5sm9xm6nydc01c13yfpvvj1rh";
+  };
+
+  propagatedBuildInputs = [
+    impacket
+    netaddr
+    pypykatz
+  ];
+
+  # Tests require an active domain controller
+  doCheck = false;
+  pythonImportsCheck = [ "lsassy" ];
+
+  meta = with lib; {
+    description = "Python module to extract data from Local Security Authority Subsystem Service (LSASS)";
+    homepage = "https://github.com/Hackndo/lsassy";
+    license = with licenses; [ mit ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/lsi/default.nix b/nixpkgs/pkgs/development/python-modules/lsi/default.nix
index 5f193f52e9a5..0fca2f7b372f 100644
--- a/nixpkgs/pkgs/development/python-modules/lsi/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/lsi/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , isPy3k
 , fetchPypi
@@ -19,7 +19,7 @@ buildPythonPackage rec {
 
   propagatedBuildInputs = [ colored boto pkgs.openssh pkgs.which ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "CLI for querying and SSHing onto AWS EC2 instances";
     homepage = "https://github.com/NarrativeScience/lsi";
     maintainers = [maintainers.adnelson];
diff --git a/nixpkgs/pkgs/development/python-modules/lxc/default.nix b/nixpkgs/pkgs/development/python-modules/lxc/default.nix
index 2798cb800757..a20db9dd5034 100644
--- a/nixpkgs/pkgs/development/python-modules/lxc/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/lxc/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchFromGitHub
 , isPy3k
@@ -19,7 +19,7 @@ buildPythonPackage {
 
   buildInputs = [ pkgs.lxc ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Out of tree python 2.7 binding for liblxc";
     homepage = "https://github.com/lxc/python2-lxc";
     license = licenses.lgpl2;
diff --git a/nixpkgs/pkgs/development/python-modules/lyricwikia/default.nix b/nixpkgs/pkgs/development/python-modules/lyricwikia/default.nix
index 4e58c6a7d676..585c38ab33ec 100644
--- a/nixpkgs/pkgs/development/python-modules/lyricwikia/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/lyricwikia/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchPypi, buildPythonPackage, pytestrunner, six, beautifulsoup4, requests, }:
+{ lib, stdenv, fetchPypi, buildPythonPackage, pytestrunner, six, beautifulsoup4, requests, }:
 buildPythonPackage rec {
   pname = "lyricwikia";
   version = "0.1.11";
@@ -13,7 +13,7 @@ buildPythonPackage rec {
   # upstream has no code tests
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://github.com/enricobacis/lyricwikia";
     maintainers = [ maintainers.kmein ];
     description = "LyricWikia API for song lyrics";
diff --git a/nixpkgs/pkgs/development/python-modules/m2crypto/default.nix b/nixpkgs/pkgs/development/python-modules/m2crypto/default.nix
index f3ca43f5e9a5..af07be47dcdc 100644
--- a/nixpkgs/pkgs/development/python-modules/m2crypto/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/m2crypto/default.nix
@@ -38,7 +38,7 @@ buildPythonPackage rec {
 
   doCheck = false; # another test that depends on the network.
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "A Python crypto and SSL toolkit";
     homepage = "https://gitlab.com/m2crypto/m2crypto";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/m2r/default.nix b/nixpkgs/pkgs/development/python-modules/m2r/default.nix
index 3de9ec079d49..149e4d6ed562 100644
--- a/nixpkgs/pkgs/development/python-modules/m2r/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/m2r/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi,
+{ lib, stdenv, buildPythonPackage, fetchPypi,
   mistune, docutils } :
 buildPythonPackage rec {
   pname = "m2r";
@@ -15,7 +15,7 @@ buildPythonPackage rec {
   # deleted by some tests and not properly regenerated)
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://github.com/miyakogi/m2r";
     description = "converts a markdown file including reST markups to a valid reST format";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/maestral/default.nix b/nixpkgs/pkgs/development/python-modules/maestral/default.nix
index cb7119860f59..990545e41736 100644
--- a/nixpkgs/pkgs/development/python-modules/maestral/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/maestral/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchFromGitHub
 , pythonOlder
@@ -38,24 +38,24 @@ buildPythonPackage rec {
     sqlalchemy
     survey
     watchdog
-  ] ++ stdenv.lib.optionals (pythonOlder "3.8") [
+  ] ++ lib.optionals (pythonOlder "3.8") [
     importlib-metadata
-  ] ++ stdenv.lib.optionals (pythonOlder "3.9") [
+  ] ++ lib.optionals (pythonOlder "3.9") [
     importlib-resources
-  ] ++ stdenv.lib.optionals stdenv.isLinux [
+  ] ++ lib.optionals stdenv.isLinux [
     dbus-next
   ];
 
   makeWrapperArgs = [
     # Add the installed directories to the python path so the daemon can find them
-    "--prefix" "PYTHONPATH" ":" "${stdenv.lib.concatStringsSep ":" (map (p: p + "/lib/${python.libPrefix}/site-packages") (python.pkgs.requiredPythonModules propagatedBuildInputs))}"
+    "--prefix" "PYTHONPATH" ":" "${lib.concatStringsSep ":" (map (p: p + "/lib/${python.libPrefix}/site-packages") (python.pkgs.requiredPythonModules propagatedBuildInputs))}"
     "--prefix" "PYTHONPATH" ":" "$out/lib/${python.libPrefix}/site-packages"
   ];
 
   # no tests
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Open-source Dropbox client for macOS and Linux";
     license = licenses.mit;
     maintainers = with maintainers; [ peterhoeg ];
diff --git a/nixpkgs/pkgs/development/python-modules/magic-wormhole-mailbox-server/default.nix b/nixpkgs/pkgs/development/python-modules/magic-wormhole-mailbox-server/default.nix
index 571a92900c90..14ae268c03a0 100644
--- a/nixpkgs/pkgs/development/python-modules/magic-wormhole-mailbox-server/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/magic-wormhole-mailbox-server/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi, isPy27, six, attrs, twisted, pyopenssl, service-identity, autobahn, treq, mock, pytest }:
+{ lib, stdenv, buildPythonPackage, fetchPypi, isPy27, six, attrs, twisted, pyopenssl, service-identity, autobahn, treq, mock, pytest }:
 
 buildPythonPackage rec {
   version = "0.4.1";
@@ -18,7 +18,7 @@ buildPythonPackage rec {
     pytest
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Securely transfer data between computers";
     homepage = "https://github.com/warner/magic-wormhole-mailbox-server";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/magic-wormhole/default.nix b/nixpkgs/pkgs/development/python-modules/magic-wormhole/default.nix
index 9e73001a1499..0d8b3a1ec070 100644
--- a/nixpkgs/pkgs/development/python-modules/magic-wormhole/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/magic-wormhole/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , isPy27
@@ -34,7 +34,7 @@ buildPythonPackage rec {
   propagatedBuildInputs = [ spake2 pynacl six attrs twisted autobahn automat hkdf tqdm click humanize txtorcon ];
   checkInputs = [ mock magic-wormhole-transit-relay magic-wormhole-mailbox-server ];
 
-  postPatch = stdenv.lib.optionalString stdenv.isLinux ''
+  postPatch = lib.optionalString stdenv.isLinux ''
     sed -i -e "s|'ifconfig'|'${nettools}/bin/ifconfig'|" src/wormhole/ipaddrs.py
   '';
 
@@ -54,7 +54,7 @@ buildPythonPackage rec {
       --replace 'locale_env = dict(LC_ALL=locale, LANG=locale)' 'locale_env = dict(LC_ALL=locale, LANG=locale, LOCALE_ARCHIVE=os.getenv("LOCALE_ARCHIVE"))'
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Securely transfer data between computers";
     homepage = "https://github.com/warner/magic-wormhole";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/magic/default.nix b/nixpkgs/pkgs/development/python-modules/magic/default.nix
index 98e6731a1b86..45fd740e2e89 100644
--- a/nixpkgs/pkgs/development/python-modules/magic/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/magic/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , pkgs
 }:
@@ -19,7 +19,7 @@ buildPythonPackage {
   # No test suite
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "A Python wrapper around libmagic";
     homepage = "http://www.darwinsys.com/file/";
     license = licenses.lgpl2;
diff --git a/nixpkgs/pkgs/development/python-modules/mahotas/default.nix b/nixpkgs/pkgs/development/python-modules/mahotas/default.nix
index b7d17d943f7b..818ff459985c 100644
--- a/nixpkgs/pkgs/development/python-modules/mahotas/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/mahotas/default.nix
@@ -1,4 +1,4 @@
-{ buildPythonPackage, fetchFromGitHub, nose, pillow, scipy, numpy, imread, stdenv }:
+{ buildPythonPackage, fetchFromGitHub, nose, pillow, scipy, numpy, imread, lib, stdenv }:
 
 buildPythonPackage rec {
   pname = "mahotas";
@@ -23,7 +23,7 @@ buildPythonPackage rec {
 
   disabled = stdenv.isi686; # Failing tests
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Computer vision package based on numpy";
     homepage = "https://mahotas.readthedocs.io/";
     maintainers = with maintainers; [ luispedro ];
diff --git a/nixpkgs/pkgs/development/python-modules/mailcap-fix/default.nix b/nixpkgs/pkgs/development/python-modules/mailcap-fix/default.nix
index 886a3ed66b37..08991edce4aa 100644
--- a/nixpkgs/pkgs/development/python-modules/mailcap-fix/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/mailcap-fix/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , isPy36
@@ -14,7 +14,7 @@ buildPythonPackage rec {
     sha256 = "02lijkq6v379r8zkqg9q2srin3i80m4wvwik3hcbih0s14v0ng0i";
   };
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "A patched mailcap module that conforms to RFC 1524";
     homepage = "https://github.com/michael-lazar/mailcap_fix";
     license = licenses.unlicense;
diff --git a/nixpkgs/pkgs/development/python-modules/mailchimp/default.nix b/nixpkgs/pkgs/development/python-modules/mailchimp/default.nix
index b9640a4ab5d5..0032caa7a0a5 100644
--- a/nixpkgs/pkgs/development/python-modules/mailchimp/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/mailchimp/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , docopt
@@ -20,7 +20,7 @@ buildPythonPackage rec {
     sed -i 's/==/>=/' setup.py
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "A CLI client and Python API library for the MailChimp email platform";
     homepage = "http://apidocs.mailchimp.com/api/2.0/";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/mailman-hyperkitty/default.nix b/nixpkgs/pkgs/development/python-modules/mailman-hyperkitty/default.nix
index 6abe5f5c6bc4..8ab80e337179 100644
--- a/nixpkgs/pkgs/development/python-modules/mailman-hyperkitty/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/mailman-hyperkitty/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi, mailman, mock }:
+{ lib, stdenv, buildPythonPackage, fetchPypi, mailman, mock }:
 
 buildPythonPackage rec {
   pname = "mailman-hyperkitty";
@@ -17,7 +17,7 @@ buildPythonPackage rec {
   '';
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Mailman archiver plugin for HyperKitty";
     homepage = "https://gitlab.com/mailman/mailman-hyperkitty";
     license = licenses.gpl3;
diff --git a/nixpkgs/pkgs/development/python-modules/mailman-rss/default.nix b/nixpkgs/pkgs/development/python-modules/mailman-rss/default.nix
index d0d103bfbec5..84c97eb16e2e 100644
--- a/nixpkgs/pkgs/development/python-modules/mailman-rss/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/mailman-rss/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, python3Packages, withTwitter ? false}:
+{ lib, stdenv, python3Packages, withTwitter ? false}:
 
 python3Packages.buildPythonApplication rec {
   pname = "mailman-rss";
@@ -10,13 +10,13 @@ python3Packages.buildPythonApplication rec {
   };
 
   propagatedBuildInputs = with python3Packages; [ dateutil future requests beautifulsoup4 ]
-    ++ stdenv.lib.optional withTwitter python3Packages.twitter
+    ++ lib.optional withTwitter python3Packages.twitter
   ;
 
   # No tests in Pypi Tarball
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Mailman archive -> rss converter";
     homepage = "https://github.com/kyamagu/mailman-rss";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/mailmanclient/default.nix b/nixpkgs/pkgs/development/python-modules/mailmanclient/default.nix
index 45dfc55ae9a8..280ee95b8301 100644
--- a/nixpkgs/pkgs/development/python-modules/mailmanclient/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/mailmanclient/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi, isPy3k, six, httplib2, requests }:
+{ lib, stdenv, buildPythonPackage, fetchPypi, isPy3k, six, httplib2, requests }:
 
 buildPythonPackage rec {
   pname = "mailmanclient";
@@ -12,7 +12,7 @@ buildPythonPackage rec {
 
   propagatedBuildInputs = [ six httplib2 requests ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://www.gnu.org/software/mailman/";
     description = "REST client for driving Mailman 3";
     license = licenses.lgpl3;
diff --git a/nixpkgs/pkgs/development/python-modules/manhole/default.nix b/nixpkgs/pkgs/development/python-modules/manhole/default.nix
index 13b887f6ee4d..b9d57a7c0899 100644
--- a/nixpkgs/pkgs/development/python-modules/manhole/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/manhole/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , pytest
@@ -38,7 +38,7 @@ buildPythonPackage rec {
     py.test -vv -k "not test_uwsgi"
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://github.com/ionelmc/python-manhole";
     description = "Debugging manhole for Python applications";
     license = licenses.bsd2;
diff --git a/nixpkgs/pkgs/development/python-modules/manticore/default.nix b/nixpkgs/pkgs/development/python-modules/manticore/default.nix
new file mode 100644
index 000000000000..f9ca3afc4b15
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/manticore/default.nix
@@ -0,0 +1,109 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, capstone
+, crytic-compile
+, ply
+, prettytable
+, pyelftools
+, pyevmasm
+, pysha3
+, pyyaml
+, rlp
+, stdenv
+, unicorn
+, wasm
+, yices
+, pytestCheckHook
+, z3
+}:
+
+buildPythonPackage rec {
+  pname = "manticore";
+  version = "0.3.5";
+
+  src = fetchFromGitHub {
+    owner = "trailofbits";
+    repo = "manticore";
+    rev = version;
+    sha256 = "0z2nhfcraa5dx6srbrw8s11awh2la0x7d88yw9in8g548nv6qa69";
+  };
+
+  propagatedBuildInputs = [
+    crytic-compile
+    ply
+    prettytable
+    pyevmasm
+    pysha3
+    pyyaml
+    rlp
+    wasm
+  ] ++ lib.optionals (stdenv.isLinux) [
+    capstone
+    pyelftools
+    unicorn
+  ];
+
+  # Python API is not used in the code, only z3 from PATH
+  postPatch = ''
+    sed -ie s/z3-solver// setup.py
+  '';
+
+  checkInputs = [ pytestCheckHook ];
+  preCheck = "export PATH=${yices}/bin:${z3}/bin:$PATH";
+  pytestFlagsArray = [
+    "--ignore=tests/ethereum" # TODO: enable when solc works again
+    "--ignore=tests/ethereum_bench"
+  ] ++ lib.optionals (!stdenv.isLinux) [
+    "--ignore=tests/native"
+    "--ignore=tests/other/test_locking.py"
+  ];
+  disabledTests = [
+    # failing tests
+    "test_chmod"
+    "test_timeout"
+    "test_wasm_main"
+    # slow tests
+    "testmprotectFailSymbReading"
+    "test_ConstraintsForking"
+    "test_resume"
+    "test_symbolic"
+    "test_symbolic_syscall_arg"
+    "test_state_merging"
+    "test_decree"
+    "test_register_comparison"
+    "test_arguments_assertions_armv7"
+    "test_integration_basic_stdout"
+    "test_fclose_linux_amd64"
+    "test_fileio_linux_amd64"
+    "test_arguments_assertions_amd64"
+    "test_ioctl_bogus"
+    "test_ioctl_socket"
+    "test_brk_regression"
+    "test_basic_arm"
+    "test_logger_verbosity"
+    "test_profiling_data"
+    "test_integration_basic_stdin"
+    "test_getchar"
+    "test_ccmp_reg"
+    "test_ld1_mlt_structs"
+    "test_ccmp_imm"
+    "test_try_to_allocate_greater_than_last_space_memory_page_12"
+    "test_not_enough_memory_page_12"
+    "test_PCMPISTRI_30_symbolic"
+    "test_ld1_mlt_structs"
+    "test_time"
+    "test_implicit_call"
+    "test_trace"
+    "test_plugin"
+  ];
+
+  meta = with lib; {
+    description = "Symbolic execution tool for analysis of smart contracts and binaries";
+    homepage = "https://github.com/trailofbits/manticore";
+    changelog = "https://github.com/trailofbits/manticore/releases/tag/${version}";
+    license = licenses.agpl3Only;
+    platforms = platforms.unix;
+    maintainers = with maintainers; [ arturcygan ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/manuel/default.nix b/nixpkgs/pkgs/development/python-modules/manuel/default.nix
index 1f2c09d43709..59243783ecf9 100644
--- a/nixpkgs/pkgs/development/python-modules/manuel/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/manuel/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , isPy27
@@ -19,7 +19,7 @@ buildPythonPackage rec {
   propagatedBuildInputs = [ six ];
   checkInputs = [ zope_testing ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "A documentation builder";
     homepage = "https://pypi.python.org/pypi/manuel";
     license = licenses.zpl20;
diff --git a/nixpkgs/pkgs/development/python-modules/mapsplotlib/default.nix b/nixpkgs/pkgs/development/python-modules/mapsplotlib/default.nix
index d21d09571ad1..54d0ade40f35 100644
--- a/nixpkgs/pkgs/development/python-modules/mapsplotlib/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/mapsplotlib/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , isPy3k
 , fetchPypi
@@ -22,7 +22,7 @@ buildPythonPackage rec {
 
   propagatedBuildInputs = [ matplotlib scipy pandas requests pillow ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Custom Python plots on a Google Maps background";
     homepage = "https://github.com/tcassou/mapsplotlib";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/marionette-harness/mozdevice.nix b/nixpkgs/pkgs/development/python-modules/marionette-harness/mozdevice.nix
index 03187c00bef9..56c8fc5254d2 100644
--- a/nixpkgs/pkgs/development/python-modules/marionette-harness/mozdevice.nix
+++ b/nixpkgs/pkgs/development/python-modules/marionette-harness/mozdevice.nix
@@ -12,9 +12,8 @@ buildPythonPackage rec {
   format = "wheel";
 
   src = fetchPypi {
-    inherit pname version;
+    inherit pname version format;
     sha256 = "1n7l3drdh3rm3320v98c9hhh37ljk9l861hyw18psca7jdd717n5";
-    format = "wheel";
   };
 
   propagatedBuildInputs = [ mozlog moznetwork mozprocess ];
diff --git a/nixpkgs/pkgs/development/python-modules/marionette-harness/mozinfo.nix b/nixpkgs/pkgs/development/python-modules/marionette-harness/mozinfo.nix
index 1aca4cb58468..b7d91cc16f52 100644
--- a/nixpkgs/pkgs/development/python-modules/marionette-harness/mozinfo.nix
+++ b/nixpkgs/pkgs/development/python-modules/marionette-harness/mozinfo.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , isPy3k
@@ -18,7 +18,7 @@ buildPythonPackage rec {
 
   propagatedBuildInputs = [ mozfile ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "System information utilities for Mozilla testing";
     homepage = "https://wiki.mozilla.org/Auto-tools/Projects/Mozbase";
     license = licenses.mpl20;
diff --git a/nixpkgs/pkgs/development/python-modules/marisa/default.nix b/nixpkgs/pkgs/development/python-modules/marisa/default.nix
index 0fa5a98f7522..a30f7062df0a 100644
--- a/nixpkgs/pkgs/development/python-modules/marisa/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/marisa/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchFromGitHub, marisa, swig
+{ lib, stdenv, buildPythonPackage, fetchFromGitHub, marisa, swig
 , isPy3k
 }:
 
@@ -20,7 +20,7 @@ buildPythonPackage rec {
 
   sourceRoot = "${src.name}/bindings/python";
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Python binding for marisa package (do not confuse with marisa-trie python bindings)";
     homepage    = "https://github.com/s-yata/marisa-trie";
     license     = with licenses; [ bsd2 lgpl2 ];
diff --git a/nixpkgs/pkgs/development/python-modules/markdown-macros/default.nix b/nixpkgs/pkgs/development/python-modules/markdown-macros/default.nix
index 41a634f4b9a5..e248bfe60cc4 100644
--- a/nixpkgs/pkgs/development/python-modules/markdown-macros/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/markdown-macros/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , fetchpatch
@@ -30,7 +30,7 @@ buildPythonPackage rec {
 
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "An extension for python-markdown that makes writing trac-like macros easy";
     homepage = "https://github.com/wnielson/markdown-macros";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/markdown2/default.nix b/nixpkgs/pkgs/development/python-modules/markdown2/default.nix
index 8add8f15298f..2f929012df89 100644
--- a/nixpkgs/pkgs/development/python-modules/markdown2/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/markdown2/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi }:
+{ lib, stdenv, buildPythonPackage, fetchPypi }:
 
 buildPythonPackage rec {
   pname = "markdown2";
@@ -10,7 +10,7 @@ buildPythonPackage rec {
     sha256 = "08a124043aa0ad36ba2136239547d5011a2b770278abb11a5609611e0040ea05";
   };
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "A fast and complete Python implementation of Markdown";
     homepage =  "https://github.com/trentm/python-markdown2";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/markdownsuperscript/default.nix b/nixpkgs/pkgs/development/python-modules/markdownsuperscript/default.nix
index 6c2e6ab1b634..94cfb637a15e 100644
--- a/nixpkgs/pkgs/development/python-modules/markdownsuperscript/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/markdownsuperscript/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi, markdown,
+{ lib, buildPythonPackage, fetchPypi, markdown,
   pytest, pytestrunner, pytestcov, coverage }:
 
 buildPythonPackage rec {
@@ -22,10 +22,10 @@ buildPythonPackage rec {
 
   checkInputs = [ pytest pytestrunner pytestcov coverage ];
 
-  meta = {
+  meta = with lib; {
     description = "An extension to the Python Markdown package enabling superscript text";
     homepage = "https://github.com/jambonrose/markdown_superscript_extension";
-    license = stdenv.lib.licenses.bsd2;
+    license = licenses.bsd2;
     broken = true; # unmaintained in nixpkgs, barely maintained in pypi, added 2020-11-29
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/markerlib/default.nix b/nixpkgs/pkgs/development/python-modules/markerlib/default.nix
index 256f395a8f8f..d039198b3938 100644
--- a/nixpkgs/pkgs/development/python-modules/markerlib/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/markerlib/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , setuptools
@@ -21,7 +21,7 @@ buildPythonPackage rec {
     nosetests
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://bitbucket.org/dholth/markerlib/";
     description = "A compiler for PEP 345 environment markers";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/markupsafe/default.nix b/nixpkgs/pkgs/development/python-modules/markupsafe/default.nix
index 864e30214efa..6a6e06cd3177 100644
--- a/nixpkgs/pkgs/development/python-modules/markupsafe/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/markupsafe/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 }:
@@ -12,7 +12,7 @@ buildPythonPackage rec {
     sha256 = "29872e92839765e546828bb7754a68c418d927cd064fd4708fab9fe9c8bb116b";
   };
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Implements a XML/HTML/XHTML Markup safe string";
     homepage = "http://dev.pocoo.org";
     license = licenses.bsd3;
diff --git a/nixpkgs/pkgs/development/python-modules/matplotlib/2.nix b/nixpkgs/pkgs/development/python-modules/matplotlib/2.nix
index dd25860795ba..2c929d9a694e 100644
--- a/nixpkgs/pkgs/development/python-modules/matplotlib/2.nix
+++ b/nixpkgs/pkgs/development/python-modules/matplotlib/2.nix
@@ -1,6 +1,6 @@
-{ stdenv, fetchPypi, python, buildPythonPackage, pycairo, backports_functools_lru_cache
+{ lib, stdenv, fetchPypi, python, buildPythonPackage, pycairo, backports_functools_lru_cache
 , which, cycler, dateutil, nose, numpy, pyparsing, sphinx, tornado, kiwisolver
-, freetype, libpng, pkgconfig, mock, pytz, pygobject3, gobject-introspection, functools32, subprocess32
+, freetype, libpng, pkg-config, mock, pytz, pygobject3, gobject-introspection, functools32, subprocess32
 , fetchpatch
 , enableGhostscript ? false, ghostscript ? null, gtk3
 , enableGtk3 ? false, cairo
@@ -39,20 +39,20 @@ buildPythonPackage rec {
 
   XDG_RUNTIME_DIR = "/tmp";
 
-  nativeBuildInputs = [ pkgconfig ];
+  nativeBuildInputs = [ pkg-config ];
 
   buildInputs = [ which sphinx ]
-    ++ stdenv.lib.optional enableGhostscript ghostscript
-    ++ stdenv.lib.optional stdenv.isDarwin [ Cocoa ];
+    ++ lib.optional enableGhostscript ghostscript
+    ++ lib.optional stdenv.isDarwin [ Cocoa ];
 
   propagatedBuildInputs =
     [ cycler dateutil nose numpy pyparsing tornado freetype kiwisolver
       libpng mock pytz ]
-    ++ stdenv.lib.optional (pythonOlder "3.3") backports_functools_lru_cache
-    ++ stdenv.lib.optionals enableGtk3 [ cairo pycairo gtk3 gobject-introspection pygobject3 ]
-    ++ stdenv.lib.optionals enableTk [ tcl tk tkinter libX11 ]
-    ++ stdenv.lib.optionals enableQt [ pyqt4 ]
-    ++ stdenv.lib.optionals python.isPy2 [ functools32 subprocess32 ];
+    ++ lib.optional (pythonOlder "3.3") backports_functools_lru_cache
+    ++ lib.optionals enableGtk3 [ cairo pycairo gtk3 gobject-introspection pygobject3 ]
+    ++ lib.optionals enableTk [ tcl tk tkinter libX11 ]
+    ++ lib.optionals enableQt [ pyqt4 ]
+    ++ lib.optionals python.isPy2 [ functools32 subprocess32 ];
 
   setup_cfg = ./setup.cfg;
   preBuild = ''
@@ -67,17 +67,16 @@ buildPythonPackage rec {
   # script.
   postPatch =
     let
-      inherit (stdenv.lib.strings) substring;
-      tcl_tk_cache = ''"${tk}/lib", "${tcl}/lib", "${substring 0 3 tk.version}"'';
+      tcl_tk_cache = ''"${tk}/lib", "${tcl}/lib", "${lib.strings.substring 0 3 tk.version}"'';
     in
-    stdenv.lib.optionalString enableTk
+    lib.optionalString enableTk
       "sed -i '/self.tcl_tk_cache = None/s|None|${tcl_tk_cache}|' setupext.py";
 
   # Matplotlib needs to be built against a specific version of freetype in
   # order for all of the tests to pass.
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Python plotting library, making publication quality plots";
     homepage    = "https://matplotlib.org/";
     maintainers = with maintainers; [ lovek323 veprbl ];
diff --git a/nixpkgs/pkgs/development/python-modules/matplotlib/default.nix b/nixpkgs/pkgs/development/python-modules/matplotlib/default.nix
index 5ad3c92393d8..bf21422b7721 100644
--- a/nixpkgs/pkgs/development/python-modules/matplotlib/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/matplotlib/default.nix
@@ -1,6 +1,6 @@
-{ stdenv, fetchPypi, python, buildPythonPackage, isPy3k, pycairo, backports_functools_lru_cache
+{ lib, stdenv, fetchPypi, python, buildPythonPackage, isPy3k, pycairo, backports_functools_lru_cache
 , which, cycler, dateutil, nose, numpy, pyparsing, sphinx, tornado, kiwisolver
-, freetype, libpng, pkgconfig, mock, pytz, pygobject3, gobject-introspection
+, freetype, libpng, pkg-config, mock, pytz, pygobject3, gobject-introspection
 , certifi, pillow
 , enableGhostscript ? true, ghostscript ? null, gtk3
 , enableGtk3 ? false, cairo
@@ -32,18 +32,18 @@ buildPythonPackage rec {
 
   XDG_RUNTIME_DIR = "/tmp";
 
-  nativeBuildInputs = [ pkgconfig ];
+  nativeBuildInputs = [ pkg-config ];
 
   buildInputs = [ which sphinx ]
-    ++ stdenv.lib.optional enableGhostscript ghostscript
-    ++ stdenv.lib.optional stdenv.isDarwin [ Cocoa ];
+    ++ lib.optional enableGhostscript ghostscript
+    ++ lib.optional stdenv.isDarwin [ Cocoa ];
 
   propagatedBuildInputs =
     [ cycler dateutil numpy pyparsing tornado freetype kiwisolver
       certifi libpng mock pytz pillow ]
-    ++ stdenv.lib.optionals enableGtk3 [ cairo pycairo gtk3 gobject-introspection pygobject3 ]
-    ++ stdenv.lib.optionals enableTk [ tcl tk tkinter libX11 ]
-    ++ stdenv.lib.optionals enableQt [ pyqt5 ];
+    ++ lib.optionals enableGtk3 [ cairo pycairo gtk3 gobject-introspection pygobject3 ]
+    ++ lib.optionals enableTk [ tcl tk tkinter libX11 ]
+    ++ lib.optionals enableQt [ pyqt5 ];
 
   setup_cfg = if stdenv.isDarwin then ./setup-darwin.cfg else ./setup.cfg;
   preBuild = ''
@@ -58,17 +58,16 @@ buildPythonPackage rec {
   # script.
   postPatch =
     let
-      inherit (stdenv.lib.strings) substring;
-      tcl_tk_cache = ''"${tk}/lib", "${tcl}/lib", "${substring 0 3 tk.version}"'';
+      tcl_tk_cache = ''"${tk}/lib", "${tcl}/lib", "${lib.strings.substring 0 3 tk.version}"'';
     in
-    stdenv.lib.optionalString enableTk
+    lib.optionalString enableTk
       "sed -i '/self.tcl_tk_cache = None/s|None|${tcl_tk_cache}|' setupext.py";
 
   # Matplotlib needs to be built against a specific version of freetype in
   # order for all of the tests to pass.
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Python plotting library, making publication quality plots";
     homepage    = "https://matplotlib.org/";
     maintainers = with maintainers; [ lovek323 veprbl ];
diff --git a/nixpkgs/pkgs/development/python-modules/matrix-client/default.nix b/nixpkgs/pkgs/development/python-modules/matrix-client/default.nix
index 71092583d7fd..34c99a1ebe1c 100644
--- a/nixpkgs/pkgs/development/python-modules/matrix-client/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/matrix-client/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , requests
@@ -18,7 +18,7 @@ buildPythonPackage rec {
 
   propagatedBuildInputs = [ requests ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Matrix Client-Server SDK";
     homepage = "https://github.com/matrix-org/matrix-python-sdk";
     license = licenses.asl20;
diff --git a/nixpkgs/pkgs/development/python-modules/mautrix/default.nix b/nixpkgs/pkgs/development/python-modules/mautrix/default.nix
index 0944d5fa4cfe..2d890115a51d 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.8.6";
+  version = "0.8.9";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "e28d89cb8297ec36d78ef79507613c45ab3ab0bc709f1944ca5be349797f8f6b";
+    sha256 = "13669a0150370c96cabcff859fb4d17f4a539dc7c707ff0c99c00612e24f5447";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/maya/default.nix b/nixpkgs/pkgs/development/python-modules/maya/default.nix
index 6df4091664b3..9cd1019a0301 100644
--- a/nixpkgs/pkgs/development/python-modules/maya/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/maya/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchPypi, fetchpatch, buildPythonPackage
+{ lib, stdenv, fetchPypi, fetchpatch, buildPythonPackage
 , dateparser, humanize, pendulum, ruamel_yaml, tzlocal }:
 
 buildPythonPackage rec {
@@ -24,7 +24,7 @@ buildPythonPackage rec {
   # No tests
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Datetimes for Humans";
     homepage = "https://github.com/kennethreitz/maya";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/mccabe/default.nix b/nixpkgs/pkgs/development/python-modules/mccabe/default.nix
index 7a4605e68ced..2886a436a00d 100644
--- a/nixpkgs/pkgs/development/python-modules/mccabe/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/mccabe/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi, pytest, pytestrunner }:
+{ lib, stdenv, buildPythonPackage, fetchPypi, pytest, pytestrunner }:
 
 buildPythonPackage rec {
   pname = "mccabe";
@@ -11,7 +11,7 @@ buildPythonPackage rec {
 
   buildInputs = [ pytest pytestrunner ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "McCabe checker, plugin for flake8";
     homepage = "https://github.com/flintwork/mccabe";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/mdp/default.nix b/nixpkgs/pkgs/development/python-modules/mdp/default.nix
index a93b00a0f91e..5313cd8e89aa 100644
--- a/nixpkgs/pkgs/development/python-modules/mdp/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/mdp/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi, pytest, future, numpy }:
+{ lib, stdenv, buildPythonPackage, fetchPypi, pytest, future, numpy }:
 
 buildPythonPackage rec {
   pname = "MDP";
@@ -15,7 +15,7 @@ buildPythonPackage rec {
   # Tests disabled because of missing dependencies not in nix
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Library for building complex data processing software by combining widely used machine learning algorithms";
     homepage = "http://mdp-toolkit.sourceforge.net";
     license = licenses.bsd3;
diff --git a/nixpkgs/pkgs/development/python-modules/mechanize/default.nix b/nixpkgs/pkgs/development/python-modules/mechanize/default.nix
index 1d63a6e2b6a1..e2d2269a43c0 100644
--- a/nixpkgs/pkgs/development/python-modules/mechanize/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/mechanize/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , html5lib
@@ -17,7 +17,7 @@ buildPythonPackage rec {
 
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Stateful programmatic web browsing in Python";
     homepage = "https://github.com/python-mechanize/mechanize";
     license = "BSD-style";
diff --git a/nixpkgs/pkgs/development/python-modules/meinheld/default.nix b/nixpkgs/pkgs/development/python-modules/meinheld/default.nix
index 2941505184de..ce7f23168007 100644
--- a/nixpkgs/pkgs/development/python-modules/meinheld/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/meinheld/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchPypi, buildPythonPackage, greenlet }:
+{ lib, stdenv, fetchPypi, buildPythonPackage, greenlet }:
 
 buildPythonPackage rec {
   pname = "meinheld";
@@ -14,7 +14,7 @@ buildPythonPackage rec {
   # No tests
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "High performance asynchronous Python WSGI Web Server";
     homepage = "https://meinheld.org/";
     license = licenses.bsd3;
diff --git a/nixpkgs/pkgs/development/python-modules/meld3/default.nix b/nixpkgs/pkgs/development/python-modules/meld3/default.nix
index b2f514623315..8871bfdda463 100644
--- a/nixpkgs/pkgs/development/python-modules/meld3/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/meld3/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 }:
@@ -14,7 +14,7 @@ buildPythonPackage rec {
 
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "An HTML/XML templating engine used by supervisor";
     homepage = "https://github.com/supervisor/meld3";
     license = licenses.free;
diff --git a/nixpkgs/pkgs/development/python-modules/meliae/default.nix b/nixpkgs/pkgs/development/python-modules/meliae/default.nix
index e02e72c1add5..d602e3d94fdc 100644
--- a/nixpkgs/pkgs/development/python-modules/meliae/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/meliae/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , cython
@@ -32,7 +32,7 @@ buildPythonPackage rec {
 
   propagatedBuildInputs = [ cython ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Python Memory Usage Analyzer";
     homepage = "https://launchpad.net/meliae";
     license = licenses.gpl3;
diff --git a/nixpkgs/pkgs/development/python-modules/memcached/default.nix b/nixpkgs/pkgs/development/python-modules/memcached/default.nix
index 0e1ec2a2765c..b75bd31361de 100644
--- a/nixpkgs/pkgs/development/python-modules/memcached/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/memcached/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchurl
 , fetchPypi
@@ -18,7 +18,7 @@ buildPythonPackage rec {
     sha256 = "124s98m6hvxj6x90d7aynsjfz878zli771q96ns767r2mbqn7192";
   };
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Python API for communicating with the memcached distributed memory object cache daemon";
     homepage = "http://www.tummy.com/Community/software/python-memcached/";
     license = licenses.psfl;
diff --git a/nixpkgs/pkgs/development/python-modules/memory_profiler/default.nix b/nixpkgs/pkgs/development/python-modules/memory_profiler/default.nix
index 0dafde83c404..28ff6b7c5e31 100644
--- a/nixpkgs/pkgs/development/python-modules/memory_profiler/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/memory_profiler/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , python
 }:
 
@@ -16,7 +16,7 @@ python.pkgs.buildPythonPackage rec {
     matplotlib # needed for plotting memory usage
   ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "A module for monitoring memory usage of a process";
     longDescription = ''
       This is a python module for monitoring memory consumption of a process as
diff --git a/nixpkgs/pkgs/development/python-modules/mergedeep/default.nix b/nixpkgs/pkgs/development/python-modules/mergedeep/default.nix
index 3b5536ed6fbc..bcbca3475485 100644
--- a/nixpkgs/pkgs/development/python-modules/mergedeep/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/mergedeep/default.nix
@@ -1,8 +1,8 @@
-{ stdenv, buildPythonPackage, isPy27, fetchFromGitHub, pytest }:
+{ lib, stdenv, buildPythonPackage, isPy27, fetchFromGitHub, pytest }:
 
 buildPythonPackage rec {
   pname = "mergedeep";
-  version = "1.3.0";
+  version = "1.3.1";
   disabled = isPy27;
 
   # PyPI tarball doesn't include tests directory
@@ -10,14 +10,14 @@ buildPythonPackage rec {
     owner = "clarketm";
     repo = "mergedeep";
     rev = "v${version}";
-    sha256 = "1a0y26a04limiggjwqyyqpryxiylbqya74nq1bij75zhz42sa02b";
+    sha256 = "1ryccb64hg438y1wsjlfp4ciq05q4c6khwhllwdnndm8cbkbrgph";
   };
 
   checkInputs = [ pytest ];
   checkPhase = "pytest";
   pythonImportsCheck = [ "mergedeep" ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://github.com/clarketm/mergedeep";
     description = "A deep merge function for python";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/mesa/default.nix b/nixpkgs/pkgs/development/python-modules/mesa/default.nix
index 78c0f1656a3c..5b97f972dad1 100644
--- a/nixpkgs/pkgs/development/python-modules/mesa/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/mesa/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchFromGitHub, isPy27
+{ lib, stdenv, buildPythonPackage, fetchFromGitHub, isPy27
 , cookiecutter, networkx , pandas, tornado, tqdm
 , pytest }:
 
@@ -25,7 +25,7 @@ buildPythonPackage rec {
 
   propagatedBuildInputs = [ cookiecutter networkx pandas tornado tqdm ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://github.com/projectmesa/mesa";
     description = "An agent-based modeling (or ABM) framework in Python";
     license = licenses.asl20;
diff --git a/nixpkgs/pkgs/development/python-modules/metaphone/default.nix b/nixpkgs/pkgs/development/python-modules/metaphone/default.nix
index a9a4409c0de6..1c8557f15c41 100644
--- a/nixpkgs/pkgs/development/python-modules/metaphone/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/metaphone/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, isPy3k, fetchPypi, nose }:
+{ lib, stdenv, buildPythonPackage, isPy3k, fetchPypi, nose }:
 
 buildPythonPackage rec {
   pname = "metaphone";
@@ -14,7 +14,7 @@ buildPythonPackage rec {
 
   buildInputs = [ nose ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://github.com/oubiwann/metaphone";
     description = "A Python implementation of the metaphone and double metaphone algorithms";
     license = licenses.bsd3;
diff --git a/nixpkgs/pkgs/development/python-modules/mezzanine/default.nix b/nixpkgs/pkgs/development/python-modules/mezzanine/default.nix
index d27fd8620459..86deecb5d4f2 100644
--- a/nixpkgs/pkgs/development/python-modules/mezzanine/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/mezzanine/default.nix
@@ -28,8 +28,8 @@ buildPythonPackage rec {
     sha256 = "42c7909953cc5aea91921b47d804b61e14893bf48a2a476ce49a96559a0fa1d3";
   };
 
-  disabled = isPyPy || stdenv.lib.versionOlder django.version "1.11"
-    || stdenv.lib.versionAtLeast django.version "2.0";
+  disabled = isPyPy || lib.versionOlder django.version "1.11"
+    || lib.versionAtLeast django.version "2.0";
 
   buildInputs = [ pyflakes pep8 ];
   propagatedBuildInputs = [ django django_contrib_comments filebrowser_safe grappelli_safe bleach tzlocal beautifulsoup4 requests requests_oauthlib future pillow chardet ];
diff --git a/nixpkgs/pkgs/development/python-modules/micawber/default.nix b/nixpkgs/pkgs/development/python-modules/micawber/default.nix
index 0240a21aca33..9d31dd378ac4 100644
--- a/nixpkgs/pkgs/development/python-modules/micawber/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/micawber/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi, beautifulsoup4 }:
+{ lib, stdenv, buildPythonPackage, fetchPypi, beautifulsoup4 }:
 
 buildPythonPackage rec {
   pname = "micawber";
@@ -11,7 +11,7 @@ buildPythonPackage rec {
 
   propagatedBuildInputs = [ beautifulsoup4 ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://micawber.readthedocs.io/en/latest/";
     description = "A small library for extracting rich content from urls";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/midiutil/default.nix b/nixpkgs/pkgs/development/python-modules/midiutil/default.nix
index 0b9945f97d3d..5ac8d917d75d 100644
--- a/nixpkgs/pkgs/development/python-modules/midiutil/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/midiutil/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi }:
+{ lib, stdenv, buildPythonPackage, fetchPypi }:
 
 buildPythonPackage rec {
   pname = "MIDIUtil";
@@ -9,7 +9,7 @@ buildPythonPackage rec {
     sha256 = "02m9sqv36zrzgz5zg2w9qmz8snzlm27yg3ways2hgipgs4xriykr";
   };
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://github.com/MarkCWirt/MIDIUtil";
     description = "A pure python library for creating multi-track MIDI files";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/milc/default.nix b/nixpkgs/pkgs/development/python-modules/milc/default.nix
index adee40650bce..dc824d565474 100644
--- a/nixpkgs/pkgs/development/python-modules/milc/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/milc/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchFromGitHub
 , appdirs
@@ -29,7 +29,7 @@ buildPythonPackage rec {
     ./hello | grep "Hello, World"
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "An Opinionated Batteries-Included Python 3 CLI Framework";
     homepage = "https://milc.clueboard.co";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/minidump/default.nix b/nixpkgs/pkgs/development/python-modules/minidump/default.nix
new file mode 100644
index 000000000000..346430d23926
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/minidump/default.nix
@@ -0,0 +1,25 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+}:
+
+buildPythonPackage rec {
+  pname = "minidump";
+  version = "0.0.13";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1w93yh2dz7llxjgv0jn7gf9praz7d5952is7idgh0lsyj67ri2ms";
+  };
+
+  # Upstream doesn't have tests
+  doCheck = false;
+  pythonImportsCheck = [ "minidump" ];
+
+  meta = with lib; {
+    description = "Python library to parse and read Microsoft minidump file format";
+    homepage = "https://github.com/skelsec/minidump";
+    license = with licenses; [ mit ];
+    maintainers = [ maintainers.fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/minikerberos/default.nix b/nixpkgs/pkgs/development/python-modules/minikerberos/default.nix
new file mode 100644
index 000000000000..51ee529e234b
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/minikerberos/default.nix
@@ -0,0 +1,32 @@
+{ lib
+, asn1crypto
+, asysocks
+, buildPythonPackage
+, fetchPypi
+}:
+
+buildPythonPackage rec {
+  pname = "minikerberos";
+  version = "0.2.8";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "16bbyihap2ygsi7xg58rwdn14ms1j0jy2kxbdljpg39s9q1rz6ps";
+  };
+
+  propagatedBuildInputs = [
+    asn1crypto
+    asysocks
+  ];
+
+  # no tests are published: https://github.com/skelsec/minikerberos/pull/5
+  doCheck = false;
+  pythonImportsCheck = [ "minikerberos" ];
+
+  meta = with lib; {
+    description = "Kerberos manipulation library in Python";
+    homepage = "https://github.com/skelsec/minikerberos";
+    license = with licenses; [ mit ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/minimock/default.nix b/nixpkgs/pkgs/development/python-modules/minimock/default.nix
index 6275d92b0559..f154eabb744c 100644
--- a/nixpkgs/pkgs/development/python-modules/minimock/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/minimock/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchurl
 , nose
@@ -19,7 +19,7 @@ buildPythonPackage rec {
     ./test
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "A minimalistic mocking library for python";
     homepage = "https://pypi.python.org/pypi/MiniMock";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/miniupnpc/default.nix b/nixpkgs/pkgs/development/python-modules/miniupnpc/default.nix
index b3c559c84622..7178405ab74c 100644
--- a/nixpkgs/pkgs/development/python-modules/miniupnpc/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/miniupnpc/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi }:
+{ lib, stdenv, buildPythonPackage, fetchPypi }:
 
 buildPythonPackage rec {
   pname = "miniupnpc";
@@ -9,7 +9,7 @@ buildPythonPackage rec {
     sha256 = "0ca94zz7sr2x57j218aypxqcwkr23n8js30f3yrvvqbg929nr93y";
   };
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "miniUPnP client";
     homepage = "http://miniupnp.free.fr/";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/mitmproxy/default.nix b/nixpkgs/pkgs/development/python-modules/mitmproxy/default.nix
index d22ce7df128a..dd351931e062 100644
--- a/nixpkgs/pkgs/development/python-modules/mitmproxy/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/mitmproxy/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , fetchFromGitHub
 , buildPythonPackage
 , isPy27
@@ -107,7 +107,7 @@ buildPythonPackage rec {
     requests
   ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Man-in-the-middle proxy";
     homepage    = "https://mitmproxy.org/";
     license     = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/mlflow/default.nix b/nixpkgs/pkgs/development/python-modules/mlflow/default.nix
index e86a27e1657f..89cc8f991466 100644
--- a/nixpkgs/pkgs/development/python-modules/mlflow/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/mlflow/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi, isPy27
+{ lib, stdenv, buildPythonPackage, fetchPypi, isPy27
 , alembic
 , click
 , cloudpickle
@@ -61,7 +61,7 @@ buildPythonPackage rec {
     gunicorn
   ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://github.com/mlflow/mlflow";
     description = "Open source platform for the machine learning lifecycle";
     license = licenses.asl20;
diff --git a/nixpkgs/pkgs/development/python-modules/mlrose/default.nix b/nixpkgs/pkgs/development/python-modules/mlrose/default.nix
index 5fd39d9b347a..c3c7c55f292d 100644
--- a/nixpkgs/pkgs/development/python-modules/mlrose/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/mlrose/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, isPy27, buildPythonPackage, fetchPypi, scikitlearn }:
+{ lib, stdenv, isPy27, buildPythonPackage, fetchPypi, scikitlearn }:
 
 buildPythonPackage rec {
   pname = "mlrose";
@@ -16,7 +16,7 @@ buildPythonPackage rec {
     sed -i 's,sklearn,scikit-learn,g' setup.py
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Machine Learning, Randomized Optimization and SEarch";
     homepage    = "https://github.com/gkhayes/mlrose";
     license     = licenses.bsd3;
diff --git a/nixpkgs/pkgs/development/python-modules/mlxtend/default.nix b/nixpkgs/pkgs/development/python-modules/mlxtend/default.nix
index 2bfd12249101..94af156d9afb 100644
--- a/nixpkgs/pkgs/development/python-modules/mlxtend/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/mlxtend/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchFromGitHub
 , isPy27
@@ -39,7 +39,7 @@ buildPythonPackage rec {
     joblib
   ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "A library of Python tools and extensions for data science";
     homepage = "https://github.com/rasbt/mlxtend";
     license= licenses.bsd3;
diff --git a/nixpkgs/pkgs/development/python-modules/mmpython/default.nix b/nixpkgs/pkgs/development/python-modules/mmpython/default.nix
index dbb6590eee6d..e40fc197a5bf 100644
--- a/nixpkgs/pkgs/development/python-modules/mmpython/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/mmpython/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchurl
 , isPyPy
@@ -17,7 +17,7 @@ buildPythonPackage rec {
 
   disabled = isPyPy || isPy3k;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Media Meta Data retrieval framework";
     homepage = "https://sourceforge.net/projects/mmpython/";
     license = licenses.gpl2;
diff --git a/nixpkgs/pkgs/development/python-modules/mocket/default.nix b/nixpkgs/pkgs/development/python-modules/mocket/default.nix
index f7e97bb955c3..2102718ab6ef 100644
--- a/nixpkgs/pkgs/development/python-modules/mocket/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/mocket/default.nix
@@ -5,23 +5,25 @@
 , python
 , python_magic
 , six
-, urllib3 }:
+, urllib3
+, pytestCheckHook
+, pytest-mock
+, aiohttp
+, gevent
+, redis
+, requests
+, sure
+}:
 
 buildPythonPackage rec {
   pname = "mocket";
-  version = "3.9.35";
+  version = "3.9.39";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "d822a2adfd8e028a2856785fbfe78e7dd8c7a3b623516298aef6d42a4c9149d1";
+    sha256 = "1mbcgfy1vfwwzn54vkq8xmfzdyc28brfpqk4d55r3a6abwwsn6a4";
   };
 
-  patchPhase = ''
-    sed -iE "s,python-magic==.*,python-magic," requirements.txt
-    sed -iE "s,urllib3==.*,urllib3," requirements.txt
-    substituteInPlace setup.py --replace 'setup_requires=["pipenv"]' "setup_requires=[]"
-  '';
-
   propagatedBuildInputs = [
     decorator
     http-parser
@@ -30,8 +32,36 @@ buildPythonPackage rec {
     six
   ] ++ lib.optionals (isPy27) [ six ];
 
-  # Pypi has no runtests.py, github has no requirements.txt. No way to test, no way to install.
-  doCheck = false;
+  checkInputs = [
+    pytestCheckHook
+    pytest-mock
+    aiohttp
+    gevent
+    redis
+    requests
+    sure
+  ];
+
+  pytestFlagsArray = [
+    "--ignore=tests/main/test_pook.py" # pook is not packaged
+    "--ignore=tests/main/test_redis.py" # requires a live redis instance
+  ] ++ lib.optionals (pythonOlder "3.8") [
+    # uses IsolatedAsyncioTestCase which is only available >= 3.8
+    "--ignore=tests/tests38/test_http_aiohttp.py"
+  ];
+
+  disabledTests = [
+    # tests that require network access (like DNS lookups)
+    "test_truesendall"
+    "test_truesendall_with_chunk_recording"
+    "test_truesendall_with_gzip_recording"
+    "test_truesendall_with_recording"
+    "test_wrongpath_truesendall"
+    "test_truesendall_with_dump_from_recording"
+    "test_truesendall_with_recording_https"
+    "test_truesendall_after_mocket_session"
+    "test_real_request_session"
+  ];
 
   pythonImportsCheck = [ "mocket" ];
 
diff --git a/nixpkgs/pkgs/development/python-modules/mockito/default.nix b/nixpkgs/pkgs/development/python-modules/mockito/default.nix
index 1238388a91c0..d7ca86b8ea30 100644
--- a/nixpkgs/pkgs/development/python-modules/mockito/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/mockito/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi, isPy3k, funcsigs, pytest, numpy }:
+{ lib, stdenv, buildPythonPackage, fetchPypi, isPy3k, funcsigs, pytest, numpy }:
 
 buildPythonPackage rec {
   version = "1.2.2";
@@ -9,7 +9,7 @@ buildPythonPackage rec {
     sha256 = "d6b3aca6cdb92bbd47e19ebdb1a0b84ef23ab874eae5c6d505323c8657257c06";
   };
 
-  propagatedBuildInputs = stdenv.lib.optionals (!isPy3k) [ funcsigs ];
+  propagatedBuildInputs = lib.optionals (!isPy3k) [ funcsigs ];
   checkInputs = [ pytest numpy ];
 
   # tests are no longer packaged in pypi tarball
@@ -18,7 +18,7 @@ buildPythonPackage rec {
     pytest
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Spying framework";
     homepage = "https://github.com/kaste/mockito-python";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/modestmaps/default.nix b/nixpkgs/pkgs/development/python-modules/modestmaps/default.nix
index c7b1071954d2..a7862ef5c678 100644
--- a/nixpkgs/pkgs/development/python-modules/modestmaps/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/modestmaps/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , pillow
@@ -17,10 +17,10 @@ buildPythonPackage rec {
 
   propagatedBuildInputs = [ pillow ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "A library for building interactive maps";
     homepage = "http://modestmaps.com";
-    license = stdenv.lib.licenses.bsd3;
+    license = licenses.bsd3;
   };
 
 }
diff --git a/nixpkgs/pkgs/development/python-modules/mongodict/default.nix b/nixpkgs/pkgs/development/python-modules/mongodict/default.nix
index 932160bb9fad..467093e84ceb 100644
--- a/nixpkgs/pkgs/development/python-modules/mongodict/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/mongodict/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , pymongo
@@ -15,7 +15,7 @@ buildPythonPackage rec {
 
   propagatedBuildInputs = [ pymongo ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "MongoDB-backed Python dict-like interface";
     homepage = "https://github.com/turicas/mongodict/";
     license = licenses.gpl3;
diff --git a/nixpkgs/pkgs/development/python-modules/mongoengine/default.nix b/nixpkgs/pkgs/development/python-modules/mongoengine/default.nix
index 3ac24f7430d9..c8969d9e2d4d 100644
--- a/nixpkgs/pkgs/development/python-modules/mongoengine/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/mongoengine/default.nix
@@ -12,14 +12,14 @@
 
 buildPythonPackage rec {
   pname = "mongoengine";
-  version = "0.21.0";
+  version = "0.22.0";
   disabled = isPy27;
 
   src = fetchFromGitHub {
     owner = "MongoEngine";
     repo = pname;
     rev = "v${version}";
-    sha256 = "02amfdirdw3nc0kgiyax7yndk5b65g83kbjvwwxbgnlcrb9vjzcd";
+    sha256 = "14n9rl8w3i1fq96f3jzsg7gy331d7fmrapva6m38ih53rnf38bdf";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/monotonic/default.nix b/nixpkgs/pkgs/development/python-modules/monotonic/default.nix
index 38a25841c7b6..e93bf206edaa 100644
--- a/nixpkgs/pkgs/development/python-modules/monotonic/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/monotonic/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 }:
@@ -12,14 +12,14 @@ buildPythonPackage rec {
     sha256 = "23953d55076df038541e648a53676fb24980f7a1be290cdda21300b3bc21dfb0";
   };
 
-  __propagatedImpureHostDeps = stdenv.lib.optional stdenv.isDarwin "/usr/lib/libc.dylib";
+  __propagatedImpureHostDeps = lib.optional stdenv.isDarwin "/usr/lib/libc.dylib";
 
-  patchPhase = stdenv.lib.optionalString stdenv.isLinux ''
+  patchPhase = lib.optionalString stdenv.isLinux ''
     substituteInPlace monotonic.py --replace \
       "ctypes.util.find_library('c')" "'${stdenv.glibc.out}/lib/libc.so.6'"
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "An implementation of time.monotonic() for Python 2 & < 3.3";
     homepage = "https://github.com/atdt/monotonic";
     license = licenses.asl20;
diff --git a/nixpkgs/pkgs/development/python-modules/moretools/default.nix b/nixpkgs/pkgs/development/python-modules/moretools/default.nix
index c9fd953f350e..d39f67a73113 100644
--- a/nixpkgs/pkgs/development/python-modules/moretools/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/moretools/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi
+{ lib, stdenv, buildPythonPackage, fetchPypi
 , six, pathpy, zetup, pytest
 , decorator }:
 
@@ -19,7 +19,7 @@ buildPythonPackage rec {
   checkInputs = [ six pathpy pytest ];
   propagatedBuildInputs = [ decorator ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = ''
       Many more basic tools for python 2/3 extending itertools, functools, operator and collections
     '';
diff --git a/nixpkgs/pkgs/development/python-modules/moviepy/default.nix b/nixpkgs/pkgs/development/python-modules/moviepy/default.nix
index 1e08d5dc3af2..8bc984a52879 100644
--- a/nixpkgs/pkgs/development/python-modules/moviepy/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/moviepy/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , pythonAtLeast
@@ -39,11 +39,11 @@ buildPythonPackage rec {
 
   propagatedBuildInputs = [
     numpy decorator imageio imageio-ffmpeg tqdm requests proglog
-  ] ++ (stdenv.lib.optionals advancedProcessing [
+  ] ++ (lib.optionals advancedProcessing [
     opencv3 scikitimage scikitlearn scipy matplotlib youtube-dl
   ]);
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Video editing with Python";
     homepage = "https://zulko.github.io/moviepy/";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/mox/default.nix b/nixpkgs/pkgs/development/python-modules/mox/default.nix
index 3537d936bb61..94d4791224df 100644
--- a/nixpkgs/pkgs/development/python-modules/mox/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/mox/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchurl
 }:
@@ -15,7 +15,7 @@ buildPythonPackage rec {
   # error: invalid command 'test'
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://pymox.readthedocs.io/";
     description = "A mock object framework for Python";
     license = licenses.asl20;
diff --git a/nixpkgs/pkgs/development/python-modules/mox3/default.nix b/nixpkgs/pkgs/development/python-modules/mox3/default.nix
index 70b982ef4b86..77a02ae8a733 100644
--- a/nixpkgs/pkgs/development/python-modules/mox3/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/mox3/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , pythonOlder
@@ -29,7 +29,7 @@ buildPythonPackage rec {
   # https://opendev.org/openstack/mox3/src/branch/master/test-requirements.txt
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Mock object framework for Python";
     homepage = "https://docs.openstack.org/mox3/latest/";
     license = licenses.asl20;
diff --git a/nixpkgs/pkgs/development/python-modules/mozsvc/default.nix b/nixpkgs/pkgs/development/python-modules/mozsvc/default.nix
index 780a162a916e..55afb1773fe3 100644
--- a/nixpkgs/pkgs/development/python-modules/mozsvc/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/mozsvc/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchFromGitHub
 , pyramid
@@ -20,7 +20,7 @@ buildPythonPackage rec {
   doCheck = false; # too many dependencies and conflicting versions; I (nadrieril) gave up
   propagatedBuildInputs = [ pyramid simplejson konfig ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://github.com/mozilla-services/mozservices";
     description = "Various utilities for Mozilla apps";
     license = licenses.mpl20;
diff --git a/nixpkgs/pkgs/development/python-modules/mpd/default.nix b/nixpkgs/pkgs/development/python-modules/mpd/default.nix
index 5ae3e2b41ec7..212e6b5f13c4 100644
--- a/nixpkgs/pkgs/development/python-modules/mpd/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/mpd/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , isPy3k
@@ -14,7 +14,7 @@ buildPythonPackage rec {
     sha256 = "02812eba1d2e0f46e37457f5a6fa23ba203622e4bcab0a19b265e66b08cd21b4";
   };
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "An MPD (Music Player Daemon) client library written in pure Python";
     homepage = "http://jatreuman.indefero.net/p/python-mpd/";
     license = licenses.gpl3;
diff --git a/nixpkgs/pkgs/development/python-modules/mpd2/default.nix b/nixpkgs/pkgs/development/python-modules/mpd2/default.nix
index 3573c7987c59..7fdf64c0e4b7 100644
--- a/nixpkgs/pkgs/development/python-modules/mpd2/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/mpd2/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , pythonOlder
@@ -8,13 +8,13 @@
 
 buildPythonPackage rec {
   pname = "python-mpd2";
-  version = "3.0.1";
+  version = "3.0.3";
 
   disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "772fa6861273bb9f363a97987c2c45ca3965eb770570f1f02566efec9c89fc5f";
+    sha256 = "1ikvn2qv6cnbjscpbk6hhsqg34h832mxgg6hp1mf4d8d6nwdx4sn";
   };
 
   buildInputs = [ mock ];
@@ -23,11 +23,11 @@ buildPythonPackage rec {
     ${python.interpreter} -m unittest mpd.tests
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "A Python client module for the Music Player Daemon";
     homepage = "https://github.com/Mic92/python-mpd2";
     license = licenses.lgpl3Plus;
-    maintainers = with maintainers; [ rvl mic92 ];
+    maintainers = with maintainers; [ rvl mic92 hexa ];
   };
 
 }
diff --git a/nixpkgs/pkgs/development/python-modules/mpi4py/default.nix b/nixpkgs/pkgs/development/python-modules/mpi4py/default.nix
index c16c4719a34d..058133665f4a 100644
--- a/nixpkgs/pkgs/development/python-modules/mpi4py/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/mpi4py/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchPypi, python, buildPythonPackage, mpi, openssh }:
+{ lib, fetchPypi, python, buildPythonPackage, mpi, openssh }:
 
 buildPythonPackage rec {
   pname = "mpi4py";
@@ -43,10 +43,9 @@ buildPythonPackage rec {
 
   nativeBuildInputs = [ mpi openssh ];
 
-  meta = {
-    description =
-      "Python bindings for the Message Passing Interface standard";
+  meta = with lib; {
+    description = "Python bindings for the Message Passing Interface standard";
     homepage = "https://bitbucket.org/mpi4py/mpi4py/";
-    license = stdenv.lib.licenses.bsd3;
+    license = licenses.bsd3;
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/mpmath/default.nix b/nixpkgs/pkgs/development/python-modules/mpmath/default.nix
index 1cbb8b04130b..86d55b34f044 100644
--- a/nixpkgs/pkgs/development/python-modules/mpmath/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/mpmath/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 }:
@@ -15,7 +15,7 @@ buildPythonPackage rec {
   # error: invalid command 'test'
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage    = "http://mpmath.org/";
     description = "A pure-Python library for multiprecision floating arithmetic";
     license     = licenses.bsd3;
diff --git a/nixpkgs/pkgs/development/python-modules/mpv/default.nix b/nixpkgs/pkgs/development/python-modules/mpv/default.nix
index 6dab88e0286c..0ff66fa8132e 100644
--- a/nixpkgs/pkgs/development/python-modules/mpv/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/mpv/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchFromGitHub, python, isPy27
+{ lib, stdenv, buildPythonPackage, fetchFromGitHub, python, isPy27
 , mpv
 }:
 
@@ -25,7 +25,7 @@ buildPythonPackage rec {
   # tests impure, will error if it can't load libmpv.so
   checkPhase = "${python.interpreter} -c 'import mpv'";
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "A python interface to the mpv media player";
     homepage = "https://github.com/jaseg/python-mpv";
     license = licenses.agpl3;
diff --git a/nixpkgs/pkgs/development/python-modules/mrbob/default.nix b/nixpkgs/pkgs/development/python-modules/mrbob/default.nix
index 7074dab739be..64d0ce13a86d 100644
--- a/nixpkgs/pkgs/development/python-modules/mrbob/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/mrbob/default.nix
@@ -1,4 +1,4 @@
-{ buildPythonPackage, stdenv, glibcLocales, mock, nose, isPy3k, jinja2, six
+{ buildPythonPackage, lib, stdenv, glibcLocales, mock, nose, isPy3k, jinja2, six
 , fetchPypi
 }:
 
@@ -21,7 +21,7 @@ buildPythonPackage rec {
 
   propagatedBuildInputs = [ jinja2 six ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://github.com/domenkozar/mr.bob";
     description = "A tool to generate code skeletons from templates";
     license = licenses.bsd3;
diff --git a/nixpkgs/pkgs/development/python-modules/msal/default.nix b/nixpkgs/pkgs/development/python-modules/msal/default.nix
index 6bbdc6f5e5f9..37266df5f216 100644
--- a/nixpkgs/pkgs/development/python-modules/msal/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/msal/default.nix
@@ -9,11 +9,11 @@
 
 buildPythonPackage rec {
   pname = "msal";
-  version = "1.6.0";
+  version = "1.8.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "15mx1fakz9c5qrrspsckd3yr3l5lac0pbjq8v65r26n3203xx5f9";
+    sha256 = "1dcc737ca517df53438bc9a3fae97f17d93d7a93fa1389e6bc44e82eee81ab83";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/msgpack-numpy/default.nix b/nixpkgs/pkgs/development/python-modules/msgpack-numpy/default.nix
index ad612550d7e8..56bfa06a628a 100644
--- a/nixpkgs/pkgs/development/python-modules/msgpack-numpy/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/msgpack-numpy/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , cython
@@ -29,7 +29,7 @@ buildPythonPackage rec {
     ${python.interpreter} msgpack_numpy.py
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Numpy data type serialization using msgpack";
     homepage = "https://github.com/lebedov/msgpack-numpy";
     license = licenses.bsd3;
diff --git a/nixpkgs/pkgs/development/python-modules/msldap/default.nix b/nixpkgs/pkgs/development/python-modules/msldap/default.nix
new file mode 100644
index 000000000000..ea2ae26c96bc
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/msldap/default.nix
@@ -0,0 +1,42 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, asn1crypto
+, asysocks
+, minikerberos
+, prompt_toolkit
+, tqdm
+, winacl
+, winsspi
+}:
+
+buildPythonPackage rec {
+  pname = "msldap";
+  version = "0.3.24";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "0q9bhw0lfw9iykjdsqz62ipy3ihfz6kprzw5sc7v1678l2pvs84j";
+  };
+
+  propagatedBuildInputs = [
+    asn1crypto
+    asysocks
+    minikerberos
+    prompt_toolkit
+    tqdm
+    winacl
+    winsspi
+  ];
+
+  # Project doesn't have tests
+  doCheck = false;
+  pythonImportsCheck = [ "msldap" ];
+
+  meta = with lib; {
+    description = "Python LDAP library for auditing MS AD";
+    homepage = "https://github.com/skelsec/msldap";
+    license = with licenses; [ mit ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/msrest/default.nix b/nixpkgs/pkgs/development/python-modules/msrest/default.nix
index 1f21778f7db8..21b93bf5bfe3 100644
--- a/nixpkgs/pkgs/development/python-modules/msrest/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/msrest/default.nix
@@ -18,7 +18,7 @@
 }:
 
 buildPythonPackage rec {
-  version = "0.6.18";
+  version = "0.6.19";
   pname = "msrest";
 
   # no tests in PyPI tarball
@@ -27,7 +27,7 @@ buildPythonPackage rec {
     owner = "Azure";
     repo = "msrest-for-python";
     rev = "v${version}";
-    sha256 = "0j0dbca47qnxnhpfgj3v5bglg8dpx2cy1psix8kp3ldrkf6rjwdb";
+    sha256 = "sha256-hcUJrWw5EU0aO5Gyhn5+LmuRQN9Bom59cTz3maQ0jvw=";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/msrplib/default.nix b/nixpkgs/pkgs/development/python-modules/msrplib/default.nix
index ffb87ff48ee0..16c4cc0f43ae 100644
--- a/nixpkgs/pkgs/development/python-modules/msrplib/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/msrplib/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchdarcs
 , eventlib
@@ -18,7 +18,7 @@ buildPythonPackage rec {
 
   propagatedBuildInputs = [ eventlib application gnutls ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://github.com/AGProjects/python-msrplib";
     description = "Client library for MSRP protocol and its relay extension (RFC 4975 and RFC4976)";
     license = licenses.lgpl3;
diff --git a/nixpkgs/pkgs/development/python-modules/mulpyplexer/default.nix b/nixpkgs/pkgs/development/python-modules/mulpyplexer/default.nix
new file mode 100644
index 000000000000..ee27dc20766d
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/mulpyplexer/default.nix
@@ -0,0 +1,25 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+}:
+
+buildPythonPackage rec {
+  pname = "mulpyplexer";
+  version = "0.09";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "0c5xzci1djy1yi9hxxh8g67l6ms8r7ad7ja20pv8hfbdysdrwkhl";
+  };
+
+  # Project has no tests
+  doCheck = false;
+  pythonImportsCheck = [ "mulpyplexer" ];
+
+  meta = with lib; {
+    description = "Multiplex interactions with lists of Python objects";
+    homepage = "https://github.com/zardus/mulpyplexer";
+    license = with licenses; [ bsd2 ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/multi_key_dict/default.nix b/nixpkgs/pkgs/development/python-modules/multi_key_dict/default.nix
index a094b373f8f3..f76cde9bec53 100644
--- a/nixpkgs/pkgs/development/python-modules/multi_key_dict/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/multi_key_dict/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 }:
@@ -12,7 +12,7 @@ buildPythonPackage rec {
     sha256 = "17lkx4rf4waglwbhc31aak0f28c63zl3gx5k5i1iq2m3gb0xxsyy";
   };
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "multi_key_dict";
     homepage = "https://github.com/formiaczek/multi_key_dict";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/munch/default.nix b/nixpkgs/pkgs/development/python-modules/munch/default.nix
index 0d7d6f7c633a..2ff2ce4cefb9 100644
--- a/nixpkgs/pkgs/development/python-modules/munch/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/munch/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , six
@@ -19,7 +19,7 @@ buildPythonPackage rec {
   # No tests in archive
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "A dot-accessible dictionary (a la JavaScript objects)";
     license = licenses.mit;
     homepage = "https://github.com/Infinidat/munch";
diff --git a/nixpkgs/pkgs/development/python-modules/munkres/default.nix b/nixpkgs/pkgs/development/python-modules/munkres/default.nix
index 3df0e2b01f3b..cb88b666cfa0 100644
--- a/nixpkgs/pkgs/development/python-modules/munkres/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/munkres/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , fetchpatch
@@ -28,7 +28,7 @@ buildPythonPackage rec {
 
   checkInputs = [ pytestCheckHook ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "http://bmc.github.com/munkres/";
     description = "Munkres algorithm for the Assignment Problem";
     license = licenses.bsd3;
diff --git a/nixpkgs/pkgs/development/python-modules/murmurhash/default.nix b/nixpkgs/pkgs/development/python-modules/murmurhash/default.nix
index 2bd156bd63fd..68aa29a6edeb 100644
--- a/nixpkgs/pkgs/development/python-modules/murmurhash/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/murmurhash/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , cython
@@ -28,7 +28,7 @@ buildPythonPackage rec {
     pytest murmurhash
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Cython bindings for MurmurHash2";
     homepage = "https://github.com/explosion/murmurhash";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/musicbrainzngs/default.nix b/nixpkgs/pkgs/development/python-modules/musicbrainzngs/default.nix
index 7ae3445377e6..02ec38157117 100644
--- a/nixpkgs/pkgs/development/python-modules/musicbrainzngs/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/musicbrainzngs/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , pkgs
@@ -22,7 +22,7 @@ buildPythonPackage rec {
     rm test/test_submit.py
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://python-musicbrainzngs.readthedocs.org/";
     description = "Python bindings for musicbrainz NGS webservice";
     license = licenses.bsd2;
diff --git a/nixpkgs/pkgs/development/python-modules/mutag/default.nix b/nixpkgs/pkgs/development/python-modules/mutag/default.nix
index 273a009a1f41..45725c0fabb7 100644
--- a/nixpkgs/pkgs/development/python-modules/mutag/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/mutag/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchgit
 , isPy3k
@@ -18,7 +18,7 @@ buildPythonPackage {
 
   propagatedBuildInputs = [ pyparsing ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://github.com/aroig/mutag";
     description = "A script to change email tags in a mu indexed maildir";
     license = licenses.gpl3;
diff --git a/nixpkgs/pkgs/development/python-modules/muttils/default.nix b/nixpkgs/pkgs/development/python-modules/muttils/default.nix
index 01e789fb7594..1d6b5ce8df44 100644
--- a/nixpkgs/pkgs/development/python-modules/muttils/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/muttils/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchurl
 , isPy3k
@@ -17,7 +17,7 @@ buildPythonPackage {
   # Tests don't work
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Utilities for use with console mail clients, like mutt";
     homepage = "https://www.blacktrash.org/hg/muttils";
     license = licenses.gpl2Plus;
diff --git a/nixpkgs/pkgs/development/python-modules/mwclient/default.nix b/nixpkgs/pkgs/development/python-modules/mwclient/default.nix
index 644f01fdb1f2..ac9373b574ac 100644
--- a/nixpkgs/pkgs/development/python-modules/mwclient/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/mwclient/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchFromGitHub
+{ lib, stdenv, buildPythonPackage, fetchFromGitHub
 , requests, requests_oauthlib, six
 , pytest, pytestcache, pytestcov, responses, mock
 }:
@@ -22,7 +22,7 @@ buildPythonPackage rec {
     py.test
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Python client library to the MediaWiki API";
     license = licenses.mit;
     homepage = "https://github.com/mwclient/mwclient";
diff --git a/nixpkgs/pkgs/development/python-modules/mwlib-ext/default.nix b/nixpkgs/pkgs/development/python-modules/mwlib-ext/default.nix
index cfcbdc2d0ac3..0a81fd58d7ee 100644
--- a/nixpkgs/pkgs/development/python-modules/mwlib-ext/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/mwlib-ext/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , isPy3k
@@ -15,7 +15,7 @@ buildPythonPackage rec {
     sha256 = "9229193ee719568d482192d9d913b3c4bb96af7c589d6c31ed4a62caf5054278";
   };
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Dependencies for mwlib markup";
     homepage = "http://pediapress.com/code/";
     license = licenses.bsd3;
diff --git a/nixpkgs/pkgs/development/python-modules/mwlib-rl/default.nix b/nixpkgs/pkgs/development/python-modules/mwlib-rl/default.nix
index 21820d95c7fa..d27de2ed45cc 100644
--- a/nixpkgs/pkgs/development/python-modules/mwlib-rl/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/mwlib-rl/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , mwlib
@@ -18,7 +18,7 @@ buildPythonPackage rec {
 
   buildInputs = [ mwlib mwlib-ext pygments ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Generate pdfs from mediawiki markup";
     homepage = "http://pediapress.com/code/";
     license = licenses.bsd3;
diff --git a/nixpkgs/pkgs/development/python-modules/mwlib/default.nix b/nixpkgs/pkgs/development/python-modules/mwlib/default.nix
index 55a19e1a6da3..e9defe3ee148 100644
--- a/nixpkgs/pkgs/development/python-modules/mwlib/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/mwlib/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , isPy3k
@@ -45,7 +45,7 @@ buildPythonPackage rec {
   # Tests are in build directory but we need extension modules that are in $out
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Library for parsing MediaWiki articles and converting them to different output formats";
     homepage = "http://pediapress.com/code/";
     license = licenses.bsd3;
diff --git a/nixpkgs/pkgs/development/python-modules/mwparserfromhell/default.nix b/nixpkgs/pkgs/development/python-modules/mwparserfromhell/default.nix
index 791ffe0b1ea3..0546688b867e 100644
--- a/nixpkgs/pkgs/development/python-modules/mwparserfromhell/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/mwparserfromhell/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 }:
@@ -12,7 +12,7 @@ buildPythonPackage rec {
     sha256 = "75787b6ab140ab267b313d37d045f3276f5dc6a9741074eddfbabc1635cb2efc";
   };
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "MWParserFromHell is a parser for MediaWiki wikicode";
     homepage = "https://mwparserfromhell.readthedocs.io/en/latest/";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/mxnet/default.nix b/nixpkgs/pkgs/development/python-modules/mxnet/default.nix
index 65eb2d44ffcc..2ad3b9fd6df1 100644
--- a/nixpkgs/pkgs/development/python-modules/mxnet/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/mxnet/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib
 , buildPythonPackage
 , pkgs
 , requests
@@ -14,15 +14,13 @@ buildPythonPackage {
   buildInputs = [ pkgs.mxnet ];
   propagatedBuildInputs = [ requests numpy graphviz ];
 
-  LD_LIBRARY_PATH = stdenv.lib.makeLibraryPath [ pkgs.mxnet ];
+  LD_LIBRARY_PATH = lib.makeLibraryPath [ pkgs.mxnet ];
 
   doCheck = !isPy3k;
 
   postPatch = ''
     substituteInPlace python/setup.py \
-      --replace "graphviz<0.9.0," "graphviz" \
-      --replace "numpy<=1.15.2," "numpy" \
-      --replace "requests<2.19.0," "requests"
+      --replace "graphviz<0.9.0," "graphviz"
   '';
 
   preConfigure = ''
diff --git a/nixpkgs/pkgs/development/python-modules/mygpoclient/default.nix b/nixpkgs/pkgs/development/python-modules/mygpoclient/default.nix
index 2af73f2d8974..c6956b828dbc 100644
--- a/nixpkgs/pkgs/development/python-modules/mygpoclient/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/mygpoclient/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchFromGitHub, buildPythonPackage, nose, minimock }:
+{ lib, stdenv, fetchFromGitHub, buildPythonPackage, nose, minimock }:
 
 buildPythonPackage rec {
   pname = "mypgoclient";
@@ -19,7 +19,7 @@ buildPythonPackage rec {
 
   doCheck = (!stdenv.isDarwin);
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "A gpodder.net client library";
     longDescription = ''
         The mygpoclient library allows developers to utilize a Pythonic interface
diff --git a/nixpkgs/pkgs/development/python-modules/mypy-protobuf/default.nix b/nixpkgs/pkgs/development/python-modules/mypy-protobuf/default.nix
index 3e0ab2cf1820..f444ba039c20 100644
--- a/nixpkgs/pkgs/development/python-modules/mypy-protobuf/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/mypy-protobuf/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchPypi, buildPythonApplication, protobuf }:
+{ lib, stdenv, fetchPypi, buildPythonApplication, protobuf }:
 
 buildPythonApplication rec {
   pname = "mypy-protobuf";
@@ -11,7 +11,7 @@ buildPythonApplication rec {
 
   propagatedBuildInputs = [ protobuf ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Generate mypy stub files from protobuf specs";
     homepage = "https://github.com/dropbox/mypy-protobuf";
     license = licenses.asl20;
diff --git a/nixpkgs/pkgs/development/python-modules/mypy/default.nix b/nixpkgs/pkgs/development/python-modules/mypy/default.nix
index 1b8d763eb6fe..4bea992f6ba8 100644
--- a/nixpkgs/pkgs/development/python-modules/mypy/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/mypy/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchFromGitHub, buildPythonPackage, typed-ast, psutil, isPy3k
+{ lib, stdenv, fetchFromGitHub, buildPythonPackage, typed-ast, psutil, isPy3k
 , mypy-extensions
 , typing-extensions
 , fetchpatch
@@ -56,7 +56,7 @@ buildPythonPackage rec {
   # is64bit: unfortunately the build would exhaust all possible memory on i686-linux.
   MYPY_USE_MYPYC = stdenv.buildPlatform.is64bit;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Optional static typing for Python";
     homepage    = "http://www.mypy-lang.org";
     license     = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/mypy/extensions.nix b/nixpkgs/pkgs/development/python-modules/mypy/extensions.nix
index b3bb68a53b72..21a3ee21dbd9 100644
--- a/nixpkgs/pkgs/development/python-modules/mypy/extensions.nix
+++ b/nixpkgs/pkgs/development/python-modules/mypy/extensions.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchPypi, buildPythonPackage, typing, pythonOlder }:
+{ lib, stdenv, fetchPypi, buildPythonPackage, typing, pythonOlder }:
 
 buildPythonPackage rec {
   pname = "mypy-extensions";
@@ -15,7 +15,7 @@ buildPythonPackage rec {
 
   propagatedBuildInputs = if pythonOlder "3.5" then [ typing ] else [ ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Experimental type system extensions for programs checked with the mypy typechecker";
     homepage    = "http://www.mypy-lang.org";
     license     = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/mysql-connector/default.nix b/nixpkgs/pkgs/development/python-modules/mysql-connector/default.nix
index d3465110194e..692c021a64ff 100644
--- a/nixpkgs/pkgs/development/python-modules/mysql-connector/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/mysql-connector/default.nix
@@ -4,13 +4,13 @@ let
   py = python;
 in buildPythonPackage rec {
   pname = "mysql-connector";
-  version = "8.0.22";
+  version = "8.0.23";
 
   src = fetchFromGitHub {
     owner = "mysql";
     repo = "mysql-connector-python";
     rev = version;
-    sha256 = "084q8x86ywgxgpsgdid8y9rjjys06146dqinfpmlggjswbq9kl0d";
+    sha256 = "sha256-YVtcHbDsW1mTjbCY1YhqgtqWv4keKlLExn2AhlOzNEw=";
   };
 
   propagatedBuildInputs = with py.pkgs; [ protobuf dnspython ];
diff --git a/nixpkgs/pkgs/development/python-modules/mysqlclient/default.nix b/nixpkgs/pkgs/development/python-modules/mysqlclient/default.nix
index b844d9e2c025..9d91543b7ff3 100644
--- a/nixpkgs/pkgs/development/python-modules/mysqlclient/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/mysqlclient/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi, libmysqlclient }:
+{ lib, stdenv, buildPythonPackage, fetchPypi, libmysqlclient }:
 
 buildPythonPackage rec {
   pname = "mysqlclient";
@@ -20,7 +20,7 @@ buildPythonPackage rec {
     sha256 = "f6ebea7c008f155baeefe16c56cd3ee6239f7a5a9ae42396c2f1860f08a7c432";
   };
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Python interface to MySQL";
     homepage = "https://github.com/PyMySQL/mysqlclient-python";
     license = licenses.gpl1;
diff --git a/nixpkgs/pkgs/development/python-modules/namebench/default.nix b/nixpkgs/pkgs/development/python-modules/namebench/default.nix
index 44b590bae2cf..eefdcce79901 100644
--- a/nixpkgs/pkgs/development/python-modules/namebench/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/namebench/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , isPy3k
 , isPyPy
@@ -27,7 +27,7 @@ buildPythonPackage rec {
     sed -i "s|import os|import os; os.chdir(\"$out/namebench\")|" "$out/bin/namebench.py"
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://github.com/google/namebench"; # Formerly https://code.google.com/archive/p/namebench/
     description = "Find fastest DNS servers available";
     license = with licenses; [
diff --git a/nixpkgs/pkgs/development/python-modules/nameparser/default.nix b/nixpkgs/pkgs/development/python-modules/nameparser/default.nix
index 3384ed67c1ef..0c8e442affcf 100644
--- a/nixpkgs/pkgs/development/python-modules/nameparser/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/nameparser/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , glibcLocales
@@ -16,7 +16,7 @@ buildPythonPackage rec {
   LC_ALL="en_US.UTF-8";
   buildInputs = [ glibcLocales ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "A simple Python module for parsing human names into their individual components";
     homepage = "https://github.com/derek73/python-nameparser";
     license = licenses.lgpl21Plus;
diff --git a/nixpkgs/pkgs/development/python-modules/nanoleaf/default.nix b/nixpkgs/pkgs/development/python-modules/nanoleaf/default.nix
index ea15da78bfb5..f6131cd53095 100644
--- a/nixpkgs/pkgs/development/python-modules/nanoleaf/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/nanoleaf/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi, requests }:
+{ lib, stdenv, buildPythonPackage, fetchPypi, requests }:
 
 buildPythonPackage rec {
   pname = "nanoleaf";
@@ -16,7 +16,7 @@ buildPythonPackage rec {
 
   propagatedBuildInputs = [ requests ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "A python interface for Nanoleaf Aurora lighting";
     homepage = "https://github.com/software-2/nanoleaf";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/nanomsg-python/default.nix b/nixpkgs/pkgs/development/python-modules/nanomsg-python/default.nix
index 29d71d0243f9..4cf33fb2074c 100644
--- a/nixpkgs/pkgs/development/python-modules/nanomsg-python/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/nanomsg-python/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchFromGitHub, nanomsg }:
+{ lib, stdenv, buildPythonPackage, fetchFromGitHub, nanomsg }:
 
 buildPythonPackage {
   pname = "nanomsg-python";
@@ -16,7 +16,7 @@ buildPythonPackage {
   # Tests requires network connections
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Bindings for nanomsg";
     homepage = "https://github.com/tonysimpson/nanomsg-python";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/nassl/default.nix b/nixpkgs/pkgs/development/python-modules/nassl/default.nix
index 0df4b0218b59..908ecff8c177 100644
--- a/nixpkgs/pkgs/development/python-modules/nassl/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/nassl/default.nix
@@ -5,13 +5,15 @@
 , pkgsStatic
 , openssl
 , invoke
-, pytest
 , tls-parser
 , cacert
+, pytestCheckHook
 }:
 
 let
-  zlibStatic = pkgsStatic.zlib;
+  zlibStatic = pkgsStatic.zlib.override {
+    splitStaticOutput = false;
+  };
   nasslOpensslArgs = {
     static = true;
     enableSSL2 = true;
@@ -34,17 +36,16 @@ let
   opensslStatic = (openssl.override nasslOpensslArgs).overrideAttrs (
     oldAttrs: rec {
       name = "openssl-${version}";
-      version = "1.1.1";
+      version = "1.1.1h";
       src = fetchurl {
         url = "https://www.openssl.org/source/${name}.tar.gz";
-        sha256 = "0gbab2fjgms1kx5xjvqx8bxhr98k4r8l2fa8vw7kvh491xd8fdi8";
+        sha256 = "1ncmcnh5bmxkwrvm0m1q4kdcjjfpwvlyjspjhibkxc6p9dvsi72w";
       };
       configureFlags = oldAttrs.configureFlags ++ nasslOpensslFlagsCommon ++ [
         "enable-weak-ssl-ciphers"
         "enable-tls1_3"
         "no-async"
       ];
-      patches = [ ./nix-ssl-cert-file.patch ];
       buildInputs = oldAttrs.buildInputs ++ [ zlibStatic cacert ];
     }
   );
@@ -66,32 +67,36 @@ let
 in
 buildPythonPackage rec {
   pname = "nassl";
-  version = "3.0.0";
+  version = "3.1.0";
 
   src = fetchFromGitHub {
     owner = "nabla-c0d3";
     repo = pname;
     rev = version;
-    sha256 = "1dhgkpldadq9hg5isb6mrab7z80sy5bvzad2fb54pihnknfwhp8z";
+    sha256 = "1x1v0fpb6gcc2r0k2rsy0mc3v25s3qbva78apvi46n08c2l309ci";
   };
 
-  postPatch = ''
-    mkdir -p deps/openssl-OpenSSL_1_0_2e/
+  postPatch = let
+    legacyOpenSSLVersion = lib.replaceStrings ["."] ["_"] opensslLegacyStatic.version;
+    modernOpenSSLVersion = lib.replaceStrings ["."] ["_"] opensslStatic.version;
+    zlibVersion = zlibStatic.version;
+  in ''
+    mkdir -p deps/openssl-OpenSSL_${legacyOpenSSLVersion}/
     cp ${opensslLegacyStatic.out}/lib/libssl.a \
       ${opensslLegacyStatic.out}/lib/libcrypto.a \
-      deps/openssl-OpenSSL_1_0_2e/
-    ln -s ${opensslLegacyStatic.out.dev}/include deps/openssl-OpenSSL_1_0_2e/include
-    ln -s ${opensslLegacyStatic.bin}/bin deps/openssl-OpenSSL_1_0_2e/apps
+      deps/openssl-OpenSSL_${legacyOpenSSLVersion}/
+    ln -s ${opensslLegacyStatic.out.dev}/include deps/openssl-OpenSSL_${legacyOpenSSLVersion}/include
+    ln -s ${opensslLegacyStatic.bin}/bin deps/openssl-OpenSSL_${legacyOpenSSLVersion}/apps
 
-    mkdir -p deps/openssl-OpenSSL_1_1_1/
+    mkdir -p deps/openssl-OpenSSL_${modernOpenSSLVersion}/
     cp ${opensslStatic.out}/lib/libssl.a \
       ${opensslStatic.out}/lib/libcrypto.a \
-      deps/openssl-OpenSSL_1_1_1/
-    ln -s ${opensslStatic.out.dev}/include deps/openssl-OpenSSL_1_1_1/include
-    ln -s ${opensslStatic.bin}/bin deps/openssl-OpenSSL_1_1_1/apps
+      deps/openssl-OpenSSL_${modernOpenSSLVersion}/
+    ln -s ${opensslStatic.out.dev}/include deps/openssl-OpenSSL_${modernOpenSSLVersion}/include
+    ln -s ${opensslStatic.bin}/bin deps/openssl-OpenSSL_${modernOpenSSLVersion}/apps
 
-    mkdir -p deps/zlib-1.2.11/
-    cp ${zlibStatic.out}/lib/libz.a deps/zlib-1.2.11/
+    mkdir -p deps/zlib-${zlibVersion}/
+    cp ${zlibStatic.out}/lib/libz.a deps/zlib-${zlibVersion}/
   '';
 
   propagatedBuildInputs = [ tls-parser ];
@@ -103,7 +108,7 @@ buildPythonPackage rec {
     invoke package.wheel
   '';
 
-  checkInputs = [ pytest ];
+  checkInputs = [ pytestCheckHook ];
 
   checkPhase = ''
     # Skip online tests
diff --git a/nixpkgs/pkgs/development/python-modules/nassl/nix-ssl-cert-file.patch b/nixpkgs/pkgs/development/python-modules/nassl/nix-ssl-cert-file.patch
deleted file mode 100644
index 893fb3eb6643..000000000000
--- a/nixpkgs/pkgs/development/python-modules/nassl/nix-ssl-cert-file.patch
+++ /dev/null
@@ -1,14 +0,0 @@
-diff -ru -x '*~' openssl-1.0.2j-orig/crypto/x509/by_file.c openssl-1.0.2j/crypto/x509/by_file.c
---- openssl-1.0.2j-orig/crypto/x509/by_file.c	2016-09-26 11:49:07.000000000 +0200
-+++ openssl-1.0.2j/crypto/x509/by_file.c	2016-10-13 16:54:31.400288302 +0200
-@@ -97,7 +97,9 @@
-     switch (cmd) {
-     case X509_L_FILE_LOAD:
-         if (argl == X509_FILETYPE_DEFAULT) {
--            file = getenv(X509_get_default_cert_file_env());
-+            file = getenv("NIX_SSL_CERT_FILE");
-+            if (!file)
-+                file = getenv(X509_get_default_cert_file_env());
-             if (file)
-                 ok = (X509_load_cert_crl_file(ctx, file,
-                                               X509_FILETYPE_PEM) != 0);
diff --git a/nixpkgs/pkgs/development/python-modules/nbclient/default.nix b/nixpkgs/pkgs/development/python-modules/nbclient/default.nix
index f37cb3bc58f9..d846511eb3f4 100644
--- a/nixpkgs/pkgs/development/python-modules/nbclient/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/nbclient/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi, pythonOlder,
+{ lib, stdenv, buildPythonPackage, fetchPypi, pythonOlder,
   async_generator, traitlets, nbformat, nest-asyncio, jupyter_client,
   pytest, xmltodict, nbconvert, ipywidgets
 , doCheck ? true
@@ -18,7 +18,7 @@ buildPythonPackage rec {
   checkInputs = [ pytest xmltodict nbconvert ipywidgets ];
   propagatedBuildInputs = [ async_generator traitlets nbformat nest-asyncio jupyter_client ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://github.com/jupyter/nbclient";
     description = "A client library for executing notebooks";
     license = licenses.bsd3;
diff --git a/nixpkgs/pkgs/development/python-modules/nbxmpp/default.nix b/nixpkgs/pkgs/development/python-modules/nbxmpp/default.nix
index fb1945ddf427..28946bd1a6e7 100644
--- a/nixpkgs/pkgs/development/python-modules/nbxmpp/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/nbxmpp/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchzip, gobject-introspection, idna, libsoup, precis-i18n, pygobject3, pyopenssl }:
+{ lib, stdenv, buildPythonPackage, fetchzip, gobject-introspection, idna, libsoup, precis-i18n, pygobject3, pyopenssl }:
 
 let
   pname = "nbxmpp";
@@ -18,7 +18,7 @@ in buildPythonPackage {
   checkInputs = [ gobject-introspection libsoup pygobject3 ];
   propagatedBuildInputs = [ idna pyopenssl ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://dev.gajim.org/gajim/python-nbxmpp";
     description = "Non-blocking Jabber/XMPP module";
     license = licenses.gpl3;
diff --git a/nixpkgs/pkgs/development/python-modules/ncclient/default.nix b/nixpkgs/pkgs/development/python-modules/ncclient/default.nix
index 203ffc656806..f933587dcad1 100644
--- a/nixpkgs/pkgs/development/python-modules/ncclient/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/ncclient/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , paramiko
@@ -30,7 +30,7 @@ buildPythonPackage rec {
   #Unfortunately the test hangs at te end
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://github.com/ncclient/ncclient";
     description = "Python library for NETCONF clients";
     license = licenses.asl20;
diff --git a/nixpkgs/pkgs/development/python-modules/ndg-httpsclient/default.nix b/nixpkgs/pkgs/development/python-modules/ndg-httpsclient/default.nix
index 687f589fe1af..7768614a5d12 100644
--- a/nixpkgs/pkgs/development/python-modules/ndg-httpsclient/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/ndg-httpsclient/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchFromGitHub
 , pyopenssl
@@ -20,7 +20,7 @@ buildPythonPackage rec {
   # uses networking
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://github.com/cedadev/ndg_httpsclient/";
     description = "Provide enhanced HTTPS support for httplib and urllib2 using PyOpenSSL";
     license = licenses.bsd2;
diff --git a/nixpkgs/pkgs/development/python-modules/ndtypes/default.nix b/nixpkgs/pkgs/development/python-modules/ndtypes/default.nix
index 0a6e5635a4fa..75fc5373b4c5 100644
--- a/nixpkgs/pkgs/development/python-modules/ndtypes/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/ndtypes/default.nix
@@ -1,4 +1,5 @@
-{ stdenv
+{ lib
+, stdenv
 , buildPythonPackage
 , python
 , numpy
@@ -26,7 +27,7 @@ buildPythonPackage {
   postInstall = ''
     mkdir $out/include
     cp python/ndtypes/*.h $out/include
-  '' + stdenv.lib.optionalString stdenv.isDarwin ''
+  '' + lib.optionalString stdenv.isDarwin ''
     install_name_tool -add_rpath ${libndtypes}/lib $out/${python.sitePackages}/ndtypes/_ndtypes.*.so
   '';
 
diff --git a/nixpkgs/pkgs/development/python-modules/netaddr/default.nix b/nixpkgs/pkgs/development/python-modules/netaddr/default.nix
index 95f567a6c0c6..7f4aab9c3714 100644
--- a/nixpkgs/pkgs/development/python-modules/netaddr/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/netaddr/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , pythonOlder
@@ -18,11 +18,11 @@ buildPythonPackage rec {
 
   LC_ALL = "en_US.UTF-8";
 
-  propagatedBuildInputs = stdenv.lib.optionals (pythonOlder "3.7") [ importlib-resources ];
+  propagatedBuildInputs = lib.optionals (pythonOlder "3.7") [ importlib-resources ];
 
   checkInputs = [ glibcLocales pytestCheckHook ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://netaddr.readthedocs.io/en/latest/";
     downloadPage = "https://github.com/netaddr/netaddr/releases";
     changelog = "https://netaddr.readthedocs.io/en/latest/changes.html";
diff --git a/nixpkgs/pkgs/development/python-modules/netcdf4/default.nix b/nixpkgs/pkgs/development/python-modules/netcdf4/default.nix
index 33c7d307b037..456124b19bd3 100644
--- a/nixpkgs/pkgs/development/python-modules/netcdf4/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/netcdf4/default.nix
@@ -42,7 +42,7 @@ buildPythonPackage rec {
   CURL_DIR=curl.dev;
   JPEG_DIR=libjpeg.dev;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Interface to netCDF library (versions 3 and 4)";
     homepage = "https://pypi.python.org/pypi/netCDF4";
     license = licenses.free;  # Mix of license (all MIT* like)
diff --git a/nixpkgs/pkgs/development/python-modules/netdisco/default.nix b/nixpkgs/pkgs/development/python-modules/netdisco/default.nix
index a26a212d8f7e..e546ac6cd579 100644
--- a/nixpkgs/pkgs/development/python-modules/netdisco/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/netdisco/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, isPy3k, fetchPypi, requests, zeroconf, netifaces, pytest }:
+{ lib, stdenv, buildPythonPackage, isPy3k, fetchPypi, requests, zeroconf, netifaces, pytest }:
 
 buildPythonPackage rec {
   pname = "netdisco";
@@ -19,7 +19,7 @@ buildPythonPackage rec {
     py.test
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Python library to scan local network for services and devices";
     homepage = "https://github.com/home-assistant/netdisco";
     license = licenses.asl20;
diff --git a/nixpkgs/pkgs/development/python-modules/netifaces/default.nix b/nixpkgs/pkgs/development/python-modules/netifaces/default.nix
index 94cdb8290133..07dc63c2181f 100644
--- a/nixpkgs/pkgs/development/python-modules/netifaces/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/netifaces/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 }:
@@ -12,7 +12,7 @@ buildPythonPackage rec {
     sha256 = "2dee9ffdd16292878336a58d04a20f0ffe95555465fee7c9bd23b3490ef2abf3";
   };
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://alastairs-place.net/projects/netifaces/";
     description = "Portable access to network interfaces from Python";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/neuronpy/default.nix b/nixpkgs/pkgs/development/python-modules/neuronpy/default.nix
index 1d258effda7d..b81398f918cd 100644
--- a/nixpkgs/pkgs/development/python-modules/neuronpy/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/neuronpy/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , numpy
@@ -22,7 +22,7 @@ buildPythonPackage rec {
   #No tests included
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Interfaces and utilities for the NEURON simulator and analysis of neural data";
     maintainers = [ maintainers.nico202 ];
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/nevow/default.nix b/nixpkgs/pkgs/development/python-modules/nevow/default.nix
index 301d2c7a3947..356754fdeac8 100644
--- a/nixpkgs/pkgs/development/python-modules/nevow/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/nevow/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchpatch, fetchPypi, isPy3k, twisted }:
+{ lib, stdenv, buildPythonPackage, fetchpatch, fetchPypi, isPy3k, twisted }:
 
 buildPythonPackage rec {
   pname = "Nevow";
@@ -18,7 +18,7 @@ buildPythonPackage rec {
     trial formless nevow
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Nevow, a web application construction kit for Python";
     longDescription = ''
       Nevow - Pronounced as the French "nouveau", or "noo-voh", Nevow
diff --git a/nixpkgs/pkgs/development/python-modules/nibabel/default.nix b/nixpkgs/pkgs/development/python-modules/nibabel/default.nix
index e67bdcc31946..91195abce1cd 100644
--- a/nixpkgs/pkgs/development/python-modules/nibabel/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/nibabel/default.nix
@@ -34,6 +34,5 @@ buildPythonPackage rec {
     description = "Access a multitude of neuroimaging data formats";
     license = licenses.mit;
     maintainers = with maintainers; [ ashgillman ];
-    platforms = platforms.x86_64;  # https://github.com/nipy/nibabel/issues/861
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/nidaqmx/default.nix b/nixpkgs/pkgs/development/python-modules/nidaqmx/default.nix
index 937e6c1c91bd..9d916cc9324d 100644
--- a/nixpkgs/pkgs/development/python-modules/nidaqmx/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/nidaqmx/default.nix
@@ -43,7 +43,7 @@ buildPythonPackage rec {
   # Fixture "x_series_device" called directly. Fixtures are not meant to be called directly
   doCheck = false;
 
-  pythonCheckImports = [
+  pythonImportsCheck = [
     "nidaqmx.task"
   ];
 
diff --git a/nixpkgs/pkgs/development/python-modules/nimfa/default.nix b/nixpkgs/pkgs/development/python-modules/nimfa/default.nix
index bd3e92e90dbc..dc889440aa41 100644
--- a/nixpkgs/pkgs/development/python-modules/nimfa/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/nimfa/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , isPy3k
@@ -21,7 +21,7 @@ buildPythonPackage rec {
   checkInputs = [ matplotlib pytest ];
   doCheck = !isPy3k;  # https://github.com/marinkaz/nimfa/issues/42
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Nonnegative matrix factorization library";
     homepage = "http://nimfa.biolab.si";
     license = licenses.bsd3;
diff --git a/nixpkgs/pkgs/development/python-modules/nine/default.nix b/nixpkgs/pkgs/development/python-modules/nine/default.nix
index e0d1cb173ea7..1747332ed5a2 100644
--- a/nixpkgs/pkgs/development/python-modules/nine/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/nine/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 }:
@@ -12,7 +12,7 @@ buildPythonPackage rec {
     sha256 = "e8a96b6326341637d25ca9c257c1d2af4033c957946438d9d37bf6eb798d3bbe";
   };
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Let's write Python 3 right now!";
     homepage = "https://github.com/nandoflorestan/nine";
     license = licenses.free;
diff --git a/nixpkgs/pkgs/development/python-modules/nipy/default.nix b/nixpkgs/pkgs/development/python-modules/nipy/default.nix
index fef24e837d1b..cb7871aed610 100644
--- a/nixpkgs/pkgs/development/python-modules/nipy/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/nipy/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , pythonOlder
@@ -21,7 +21,7 @@ buildPythonPackage rec {
     sha256 = "1pn731nsczrx198i2gadffqmfbhviglrclv6xxwhnbv6w5hfs2yk";
   };
 
-  buildInputs = stdenv.lib.optional doCheck [ nose ];
+  buildInputs = lib.optional doCheck [ nose ];
   propagatedBuildInputs = [ matplotlib nibabel numpy scipy sympy ];
 
   checkPhase = ''    # wants to be run in a different directory
@@ -40,7 +40,7 @@ buildPythonPackage rec {
   # nipy.tests.test_scripts.test_nipy_3_4d         # ditto re.: `nipy_3_4d` script
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://nipy.org/nipy";
     description = "Software for structural and functional neuroimaging analysis";
     license = licenses.bsd3;
diff --git a/nixpkgs/pkgs/development/python-modules/nipype/default.nix b/nixpkgs/pkgs/development/python-modules/nipype/default.nix
index f152287d25dc..5f847007bdc5 100644
--- a/nixpkgs/pkgs/development/python-modules/nipype/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/nipype/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , isPy27
@@ -106,7 +106,7 @@ buildPythonPackage rec {
   '';
   pythonImportsCheck = [ "nipype" ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://nipy.org/nipype/";
     description = "Neuroimaging in Python: Pipelines and Interfaces";
     license = licenses.bsd3;
diff --git a/nixpkgs/pkgs/development/python-modules/nitime/default.nix b/nixpkgs/pkgs/development/python-modules/nitime/default.nix
index 8fa40465c10d..ccbf540f75f4 100644
--- a/nixpkgs/pkgs/development/python-modules/nitime/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/nitime/default.nix
@@ -2,7 +2,8 @@
 , buildPythonPackage
 , python
 , fetchPypi
-, pytest
+, isPy27
+, pytestCheckHook
 , cython
 , numpy
 , scipy
@@ -13,20 +14,18 @@
 
 buildPythonPackage rec {
   pname = "nitime";
-  version = "0.8.1";
-  disabled = python.pythonVersion != "3.7";  # gcc error when running Cython with Python 3.8
+  version = "0.9";
+  disabled = isPy27;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0hb3x5196z2zaawb8s7lhja0vd3n983ncaynqfl9qg315x9ax7i6";
+    sha256 = "sha256-bn2QrbsfqUJim84vH5tt5T6h3YsGAlgu9GCMiNQ0OHQ=";
   };
 
-  checkInputs = [ pytest ];
+  checkInputs = [ pytestCheckHook ];
   buildInputs = [ cython ];
   propagatedBuildInputs = [ numpy scipy matplotlib networkx nibabel ];
 
-  checkPhase = "pytest nitime/tests";
-
   meta = with lib; {
     homepage = "https://nipy.org/nitime";
     description = "Algorithms and containers for time-series analysis in time and spectral domains";
diff --git a/nixpkgs/pkgs/development/python-modules/nixpkgs/default.nix b/nixpkgs/pkgs/development/python-modules/nixpkgs/default.nix
index 7df6d72c55c4..4edd31d6a25f 100644
--- a/nixpkgs/pkgs/development/python-modules/nixpkgs/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/nixpkgs/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , pbr
@@ -19,7 +19,11 @@ buildPythonPackage rec {
   buildInputs = [ pbr ];
   propagatedBuildInputs = [ pythonix ];
 
-  meta = with stdenv.lib; {
+  # does not have any tests
+  doCheck = false;
+  pythonImportsCheck = [ "nixpkgs" ];
+
+  meta = with lib; {
     description = "Allows to `from nixpkgs import` stuff in interactive Python sessions";
     homepage = "https://github.com/t184256/nixpkgs-python-importer";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/node-semver/default.nix b/nixpkgs/pkgs/development/python-modules/node-semver/default.nix
index 9c787147407a..5ba62fb9210e 100644
--- a/nixpkgs/pkgs/development/python-modules/node-semver/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/node-semver/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchPypi, buildPythonPackage, pytest }:
+{ lib, stdenv, fetchPypi, buildPythonPackage, pytest }:
 
 buildPythonPackage rec {
   version = "0.7.0";
@@ -11,7 +11,7 @@ buildPythonPackage rec {
     sha256 = "1p7ink1wajkc31r05k1yn37gk377033a9vhin8v4j757d4ha1f91";
   };
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://github.com/podhmo/python-semver";
     description = "A port of node-semver";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/noise/default.nix b/nixpkgs/pkgs/development/python-modules/noise/default.nix
index 736444ec6e19..98f336c49866 100644
--- a/nixpkgs/pkgs/development/python-modules/noise/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/noise/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi }:
+{ lib, stdenv, buildPythonPackage, fetchPypi }:
 
 buildPythonPackage rec {
   pname = "noise";
@@ -9,7 +9,7 @@ buildPythonPackage rec {
     sha256 = "0rcv40dcshqpchwkdlhsv3n68h9swm9fh4d1cgzr2hsp6rs7k8jp";
   };
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://github.com/caseman/noise";
     description = "Native-code and shader implementations of Perlin noise";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/noiseprotocol/default.nix b/nixpkgs/pkgs/development/python-modules/noiseprotocol/default.nix
new file mode 100644
index 000000000000..76ed1b1fc2a0
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/noiseprotocol/default.nix
@@ -0,0 +1,26 @@
+{ lib, buildPythonPackage, fetchFromGitHub, cryptography, pytestCheckHook }:
+
+buildPythonPackage rec {
+  pname = "noiseprotocol";
+  version = "0.3.1";
+
+  src = fetchFromGitHub {
+    owner = "plizonczyk";
+    repo = "noiseprotocol";
+    rev = "v${version}";
+    sha256 = "1mk0rqpjifdv3v1cjwkdnjbrfmzzjm9f3qqs1r8vii4j2wvhm6am";
+  };
+
+  propagatedBuildInputs = [ cryptography ];
+
+  checkInputs = [ pytestCheckHook ];
+
+  pythonImportsCheck = [ "noise" ];
+
+  meta = with lib; {
+    description = "Noise Protocol Framework";
+    homepage = "https://github.com/plizonczyk/noiseprotocol/";
+    license = licenses.mit;
+    maintainers = with maintainers; [ SuperSandro2000 ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/nose-cover3/default.nix b/nixpkgs/pkgs/development/python-modules/nose-cover3/default.nix
index 7f954f7ebca3..185270176acb 100644
--- a/nixpkgs/pkgs/development/python-modules/nose-cover3/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/nose-cover3/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , nose
@@ -18,7 +18,7 @@ buildPythonPackage rec {
   # No tests included
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Coverage 3.x support for Nose";
     homepage = "https://github.com/ask/nosecover3";
     license = licenses.lgpl21;
diff --git a/nixpkgs/pkgs/development/python-modules/nose-cprof/default.nix b/nixpkgs/pkgs/development/python-modules/nose-cprof/default.nix
index aa3f0d37f092..4f90ee4be8b4 100644
--- a/nixpkgs/pkgs/development/python-modules/nose-cprof/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/nose-cprof/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , nose
@@ -16,7 +16,7 @@ buildPythonPackage rec {
 
   buildInputs = [ nose ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "A python nose plugin to profile using cProfile rather than the default Hotshot profiler";
     homepage = "https://github.com/msherry/nose-cprof";
     license = licenses.bsd0;
diff --git a/nixpkgs/pkgs/development/python-modules/nose-focus/default.nix b/nixpkgs/pkgs/development/python-modules/nose-focus/default.nix
index d7b13eb1059b..8e31867d85c0 100644
--- a/nixpkgs/pkgs/development/python-modules/nose-focus/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/nose-focus/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchFromGitHub, six, nose, nose-of-yeti
+{ lib, stdenv, buildPythonPackage, fetchFromGitHub, six, nose, nose-of-yeti
 , nose-pattern-exclude, which }:
 
 buildPythonPackage rec {
@@ -26,7 +26,7 @@ buildPythonPackage rec {
     ./test.sh
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Decorator and plugin to make nose focus on specific tests";
     homepage = "https://nose-focus.readthedocs.io/en/latest/";
     license = licenses.wtfpl;
diff --git a/nixpkgs/pkgs/development/python-modules/nose-of-yeti/default.nix b/nixpkgs/pkgs/development/python-modules/nose-of-yeti/default.nix
index b7fd1e241aaa..2bd63f3295d4 100644
--- a/nixpkgs/pkgs/development/python-modules/nose-of-yeti/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/nose-of-yeti/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchFromGitHub, six, nose, fudge, should-dsl }:
+{ lib, stdenv, buildPythonPackage, fetchFromGitHub, six, nose, fudge, should-dsl }:
 
 buildPythonPackage rec {
   pname = "nose-of-yeti";
@@ -21,7 +21,7 @@ buildPythonPackage rec {
     ./test.sh
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Nose plugin providing BDD dsl for python";
     homepage = "https://github.com/delfick/nose-of-yeti";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/nose-pattern-exclude/default.nix b/nixpkgs/pkgs/development/python-modules/nose-pattern-exclude/default.nix
index 2170ac224d95..05a7102f1ae7 100644
--- a/nixpkgs/pkgs/development/python-modules/nose-pattern-exclude/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/nose-pattern-exclude/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi, nose }:
+{ lib, stdenv, buildPythonPackage, fetchPypi, nose }:
 
 buildPythonPackage rec {
   pname = "nose-pattern-exclude";
@@ -14,7 +14,7 @@ buildPythonPackage rec {
   # There are no tests
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Exclude specific files and directories from nosetests runs";
     homepage = "https://github.com/jakubroztocil/nose-pattern-exclude";
     license = licenses.bsd3;
diff --git a/nixpkgs/pkgs/development/python-modules/nose/default.nix b/nixpkgs/pkgs/development/python-modules/nose/default.nix
index a5ed49a29d73..2805b7c2ea19 100644
--- a/nixpkgs/pkgs/development/python-modules/nose/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/nose/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , python
@@ -24,7 +24,7 @@ buildPythonPackage rec {
     ${python}/bin/${python.executable} selftest.py
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "A unittest-based testing framework for python that makes writing and running tests easier";
     homepage = "http://readthedocs.org/docs/nose/";
     license = licenses.lgpl3;
diff --git a/nixpkgs/pkgs/development/python-modules/nose2/default.nix b/nixpkgs/pkgs/development/python-modules/nose2/default.nix
index 300ed80ca408..b815e223d82d 100644
--- a/nixpkgs/pkgs/development/python-modules/nose2/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/nose2/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , six
@@ -23,7 +23,7 @@ buildPythonPackage rec {
   # AttributeError: 'module' object has no attribute 'collector'
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "nose2 is the next generation of nicer testing for Python";
     homepage = "https://github.com/nose-devs/nose2";
     license = licenses.bsd0;
diff --git a/nixpkgs/pkgs/development/python-modules/nose_progressive/default.nix b/nixpkgs/pkgs/development/python-modules/nose_progressive/default.nix
index b4683ef12cbf..b920bb40736c 100644
--- a/nixpkgs/pkgs/development/python-modules/nose_progressive/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/nose_progressive/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , nose
@@ -22,7 +22,7 @@ buildPythonPackage rec {
   # fails with obscure error
   doCheck = !isPy3k;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://github.com/erikrose/nose-progressive";
     description = "A testrunner with a progress bar and smarter tracebacks";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/nosejs/default.nix b/nixpkgs/pkgs/development/python-modules/nosejs/default.nix
index 9d30855c68e1..c165e87ff2ee 100644
--- a/nixpkgs/pkgs/development/python-modules/nosejs/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/nosejs/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , nose
@@ -19,7 +19,7 @@ buildPythonPackage rec {
     nosetests -v
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://pypi.org/project/NoseJS/";
     description = "A Nose plugin for integrating JavaScript tests into a Python test suite";
     license = licenses.free;
diff --git a/nixpkgs/pkgs/development/python-modules/nosexcover/default.nix b/nixpkgs/pkgs/development/python-modules/nosexcover/default.nix
index 84cc4994b08a..36747a50aae7 100644
--- a/nixpkgs/pkgs/development/python-modules/nosexcover/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/nosexcover/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , coverage
@@ -16,7 +16,7 @@ buildPythonPackage rec {
 
   propagatedBuildInputs = [ coverage nose ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Extends nose.plugins.cover to add Cobertura-style XML reports";
     homepage = "https://github.com/cmheisel/nose-xcover/";
     license = licenses.bsd3;
diff --git a/nixpkgs/pkgs/development/python-modules/notebook/default.nix b/nixpkgs/pkgs/development/python-modules/notebook/default.nix
index 116fa153cdad..bab3aa590ec6 100644
--- a/nixpkgs/pkgs/development/python-modules/notebook/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/notebook/default.nix
@@ -68,6 +68,7 @@ buildPythonPackage rec {
     "launch_socket"
     "sock_server"
     "test_list_formats" # tries to find python MIME type
+    "KernelCullingTest" # has a race condition failing on slower hardware
   ] ++ lib.optional stdenv.isDarwin [
     "test_delete"
     "test_checkpoints_follow_file"
diff --git a/nixpkgs/pkgs/development/python-modules/notify/default.nix b/nixpkgs/pkgs/development/python-modules/notify/default.nix
index 7e71eb8b3021..1a60cf70d2d2 100644
--- a/nixpkgs/pkgs/development/python-modules/notify/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/notify/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , fetchurl
 , python
 , pygobject2
@@ -15,7 +15,7 @@ stdenv.mkDerivation {
     sha256 = "1kh4spwgqxm534qlzzf2ijchckvs0pwjxl1irhicjmlg7mybnfvx";
   };
 
-  patches = stdenv.lib.singleton (fetchurl {
+  patches = lib.singleton (fetchurl {
     name = "libnotify07.patch";
     url = "https://src.fedoraproject.org/cgit/notify-python.git/plain/"
         + "libnotify07.patch?id2=289573d50ae4838a1658d573d2c9f4c75e86db0c";
@@ -32,7 +32,7 @@ stdenv.mkDerivation {
 
   postInstall = "cd $out/lib/python*/site-packages && ln -s gtk-*/pynotify .";
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Python bindings for libnotify";
     homepage = "http://www.galago-project.org/";
     license = licenses.lgpl3;
diff --git a/nixpkgs/pkgs/development/python-modules/notmuch/2.nix b/nixpkgs/pkgs/development/python-modules/notmuch/2.nix
index 593eed6c2514..970928e03f40 100644
--- a/nixpkgs/pkgs/development/python-modules/notmuch/2.nix
+++ b/nixpkgs/pkgs/development/python-modules/notmuch/2.nix
@@ -1,4 +1,5 @@
-{ stdenv
+{ lib
+, stdenv
 , buildPythonPackage
 , notmuch
 , python
@@ -13,7 +14,11 @@ buildPythonPackage {
 
   buildInputs = [ python notmuch cffi ];
 
-  meta = with stdenv.lib; {
+  # no tests
+  doCheck = false;
+  pythonImportsCheck = [ "notmuch2" ];
+
+  meta = with lib; {
     description = "Pythonic bindings for the notmuch mail database using CFFI";
     homepage = "https://notmuchmail.org/";
     license = licenses.gpl3;
diff --git a/nixpkgs/pkgs/development/python-modules/notmuch/default.nix b/nixpkgs/pkgs/development/python-modules/notmuch/default.nix
index 4ae42b3390b5..609d4c78d5d7 100644
--- a/nixpkgs/pkgs/development/python-modules/notmuch/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/notmuch/default.nix
@@ -1,4 +1,5 @@
-{ stdenv
+{ lib
+, stdenv
 , buildPythonPackage
 , notmuch
 , python
@@ -16,7 +17,11 @@ buildPythonPackage {
       notmuch/globals.py
   '';
 
-  meta = with stdenv.lib; {
+  # no tests
+  doCheck = false;
+  pythonImportsCheck = [ "notmuch" ];
+
+  meta = with lib; {
     description = "A Python wrapper around notmuch";
     homepage = "https://notmuchmail.org/";
     license = licenses.gpl3;
diff --git a/nixpkgs/pkgs/development/python-modules/ntplib/default.nix b/nixpkgs/pkgs/development/python-modules/ntplib/default.nix
index e87fc6292e74..266482a8ff28 100644
--- a/nixpkgs/pkgs/development/python-modules/ntplib/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/ntplib/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 }:
@@ -15,7 +15,7 @@ buildPythonPackage rec {
   # Require networking
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Python NTP library";
     homepage = "http://code.google.com/p/ntplib/";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/nuitka/default.nix b/nixpkgs/pkgs/development/python-modules/nuitka/default.nix
index 890180d0dec9..44ee4597dbe4 100644
--- a/nixpkgs/pkgs/development/python-modules/nuitka/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/nuitka/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchurl
 , vmprof
@@ -26,12 +26,12 @@ in buildPythonPackage rec {
 
   postPatch = ''
     patchShebangs tests/run-tests
-  '' + stdenv.lib.optionalString stdenv.isLinux ''
+  '' + lib.optionalString stdenv.isLinux ''
     substituteInPlace nuitka/plugins/standard/ImplicitImports.py --replace 'locateDLL("uuid")' '"${pkgs.util-linux.out}/lib/libuuid.so"'
   '';
 
   # We do not want any wrappers here.
-  postFixup = '''';
+  postFixup = "";
 
   checkPhase = ''
     tests/run-tests
@@ -43,7 +43,7 @@ in buildPythonPackage rec {
   # Requires CPython
   disabled = isPyPy;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Python compiler with full language support and CPython compatibility";
     license = licenses.asl20;
     homepage = "https://nuitka.net/";
diff --git a/nixpkgs/pkgs/development/python-modules/numba/default.nix b/nixpkgs/pkgs/development/python-modules/numba/default.nix
index ad31b8e960c8..aa08ead2d971 100644
--- a/nixpkgs/pkgs/development/python-modules/numba/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/numba/default.nix
@@ -1,4 +1,5 @@
-{ stdenv
+{ lib
+, stdenv
 , pythonOlder
 , fetchPypi
 , python
@@ -23,10 +24,10 @@ buildPythonPackage rec {
     sha256 = "16bd59572114adbf5f600ea383880d7b2071ae45477e84a24994e089ea390768";
   };
 
-  NIX_CFLAGS_COMPILE = stdenv.lib.optionalString stdenv.isDarwin "-I${libcxx}/include/c++/v1";
+  NIX_CFLAGS_COMPILE = lib.optionalString stdenv.isDarwin "-I${libcxx}/include/c++/v1";
 
   propagatedBuildInputs = [numpy llvmlite]
-    ++ stdenv.lib.optionals isPy27 [ funcsigs singledispatch];
+    ++ lib.optionals isPy27 [ funcsigs singledispatch];
 
   # Copy test script into $out and run the test suite.
   checkPhase = ''
@@ -35,10 +36,10 @@ buildPythonPackage rec {
   # ImportError: cannot import name '_typeconv'
   doCheck = false;
 
-  meta =  {
+  meta =  with lib; {
     homepage = "http://numba.pydata.org/";
-    license = stdenv.lib.licenses.bsd2;
+    license = licenses.bsd2;
     description = "Compiling Python code using LLVM";
-    maintainers = with stdenv.lib.maintainers; [ fridh ];
+    maintainers = with maintainers; [ fridh ];
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/numericalunits/default.nix b/nixpkgs/pkgs/development/python-modules/numericalunits/default.nix
index f628daf833b4..0c71b065a32d 100644
--- a/nixpkgs/pkgs/development/python-modules/numericalunits/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/numericalunits/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , isPy3k
@@ -15,7 +15,7 @@ buildPythonPackage rec {
 
   disabled = !isPy3k;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "http://pypi.python.org/pypi/numericalunits";
     description = "A package that lets you define quantities with unit";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/nvchecker/default.nix b/nixpkgs/pkgs/development/python-modules/nvchecker/default.nix
index b675fa6f06be..832e281a9a1e 100644
--- a/nixpkgs/pkgs/development/python-modules/nvchecker/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/nvchecker/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchFromGitHub
 , pythonOlder
@@ -46,7 +46,7 @@ buildPythonPackage rec {
 
   pytestFlagsArray = [ "-m 'not needs_net'" ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://github.com/lilydjwg/nvchecker";
     description = "New version checker for software";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/nwdiag/default.nix b/nixpkgs/pkgs/development/python-modules/nwdiag/default.nix
index 9e7d4958e3be..4676fdef0cdc 100644
--- a/nixpkgs/pkgs/development/python-modules/nwdiag/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/nwdiag/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, buildPythonPackage, pep8, nose, unittest2, docutils
+{ lib, stdenv, fetchurl, buildPythonPackage, pep8, nose, unittest2, docutils
 , blockdiag, setuptools
 }:
 
@@ -18,7 +18,7 @@ buildPythonPackage rec {
   # tests fail
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Generate network-diagram image from spec-text file (similar to Graphviz)";
     homepage = "http://blockdiag.com/";
     license = licenses.asl20;
diff --git a/nixpkgs/pkgs/development/python-modules/nxt-python/default.nix b/nixpkgs/pkgs/development/python-modules/nxt-python/default.nix
index aae9b5f74370..4057ba1de8ad 100644
--- a/nixpkgs/pkgs/development/python-modules/nxt-python/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/nxt-python/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchgit
 , isPy3k
@@ -25,7 +25,7 @@ buildPythonPackage {
   # Tests fail on Mac dependency
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Python driver/interface for Lego Mindstorms NXT robot";
     homepage = "https://github.com/Eelviny/nxt-python";
     license = licenses.gpl3;
diff --git a/nixpkgs/pkgs/development/python-modules/oath/default.nix b/nixpkgs/pkgs/development/python-modules/oath/default.nix
index a64eeb8e1036..158cf0368406 100644
--- a/nixpkgs/pkgs/development/python-modules/oath/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/oath/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 }:
@@ -12,7 +12,7 @@ buildPythonPackage rec {
     sha256 = "1xqgcqgx6aa0j21hwsdb3aqpqhviwj756bcqjjjcm1h1aij11p6m";
   };
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Python implementation of the three main OATH specifications: HOTP, TOTP and OCRA";
     homepage = "https://github.com/bdauvergne/python-oath";
     license = licenses.bsd3;
diff --git a/nixpkgs/pkgs/development/python-modules/oauth/default.nix b/nixpkgs/pkgs/development/python-modules/oauth/default.nix
index 133640f66202..0e53eaec7c0e 100644
--- a/nixpkgs/pkgs/development/python-modules/oauth/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/oauth/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 }:
@@ -15,7 +15,7 @@ buildPythonPackage rec {
   # No tests included in archive
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://code.google.com/archive/p/oauth/";
     description = "Library for OAuth version 1.0a";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/oauth2/default.nix b/nixpkgs/pkgs/development/python-modules/oauth2/default.nix
index 8233b132344f..70b2e94e37ca 100644
--- a/nixpkgs/pkgs/development/python-modules/oauth2/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/oauth2/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , httplib2
@@ -21,7 +21,7 @@ buildPythonPackage rec {
   # ServerNotFoundError: Unable to find the server at oauth-sandbox.sevengoslings.net
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://github.com/simplegeo/python-oauth2";
     description = "Library for OAuth version 1.0";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/oauthlib/3.1.nix b/nixpkgs/pkgs/development/python-modules/oauthlib/3.1.nix
index 185ef9748637..40501733e4c7 100644
--- a/nixpkgs/pkgs/development/python-modules/oauthlib/3.1.nix
+++ b/nixpkgs/pkgs/development/python-modules/oauthlib/3.1.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , mock
@@ -24,7 +24,7 @@ buildPythonPackage rec {
     py.test tests/
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://github.com/idan/oauthlib";
     description = "A generic, spec-compliant, thorough implementation of the OAuth request-signing logic";
     maintainers = with maintainers; [ prikhi ];
diff --git a/nixpkgs/pkgs/development/python-modules/oauthlib/default.nix b/nixpkgs/pkgs/development/python-modules/oauthlib/default.nix
index bc2c8c1094c0..df65547a256d 100644
--- a/nixpkgs/pkgs/development/python-modules/oauthlib/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/oauthlib/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchFromGitHub
 , mock
@@ -27,7 +27,7 @@ buildPythonPackage rec {
     py.test tests/
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://github.com/idan/oauthlib";
     description = "A generic, spec-compliant, thorough implementation of the OAuth request-signing logic";
     maintainers = with maintainers; [ prikhi ];
diff --git a/nixpkgs/pkgs/development/python-modules/obfsproxy/default.nix b/nixpkgs/pkgs/development/python-modules/obfsproxy/default.nix
index c320f299ddb1..1dec57cafb44 100644
--- a/nixpkgs/pkgs/development/python-modules/obfsproxy/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/obfsproxy/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchgit
 , pyptlib
@@ -27,7 +27,7 @@ buildPythonPackage rec {
   # No tests in archive
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "A pluggable transport proxy";
     homepage = "https://www.torproject.org/projects/obfsproxy";
     repositories.git = "https://git.torproject.org/pluggable-transports/obfsproxy.git";
diff --git a/nixpkgs/pkgs/development/python-modules/objgraph/default.nix b/nixpkgs/pkgs/development/python-modules/objgraph/default.nix
index 79c448b5cced..8bb119bcb4bf 100644
--- a/nixpkgs/pkgs/development/python-modules/objgraph/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/objgraph/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , isPyPy
@@ -31,7 +31,7 @@ buildPythonPackage rec {
 
   checkInputs = [ mock ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Draws Python object reference graphs with graphviz";
     homepage = "https://mg.pov.lt/objgraph/";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/offtrac/default.nix b/nixpkgs/pkgs/development/python-modules/offtrac/default.nix
index be796b5c37df..edec161a133b 100644
--- a/nixpkgs/pkgs/development/python-modules/offtrac/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/offtrac/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 }:
@@ -14,7 +14,7 @@ buildPythonPackage rec {
 
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "http://fedorahosted.org/offtrac";
     description = "Trac xmlrpc library";
     license = licenses.gpl2;
diff --git a/nixpkgs/pkgs/development/python-modules/ofxclient/default.nix b/nixpkgs/pkgs/development/python-modules/ofxclient/default.nix
index 7eb4bef73504..5ef7060b7f66 100644
--- a/nixpkgs/pkgs/development/python-modules/ofxclient/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/ofxclient/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi,
+{ lib, stdenv, buildPythonPackage, fetchPypi,
  ofxhome, ofxparse, beautifulsoup4, lxml, keyring
 }:
 
@@ -20,7 +20,7 @@ buildPythonPackage rec {
 
   propagatedBuildInputs = [ ofxhome ofxparse beautifulsoup4 lxml keyring ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://github.com/captin411/ofxclient";
     description = "OFX client for dowloading transactions from banks";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/ofxhome/default.nix b/nixpkgs/pkgs/development/python-modules/ofxhome/default.nix
index 518c34951fce..d9a28da18060 100644
--- a/nixpkgs/pkgs/development/python-modules/ofxhome/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/ofxhome/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi, nose }:
+{ lib, stdenv, buildPythonPackage, fetchPypi, nose }:
 
 buildPythonPackage rec {
   version = "0.3.3";
@@ -14,7 +14,7 @@ buildPythonPackage rec {
   # ImportError: No module named tests
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://github.com/captin411/ofxhome";
     description = "ofxhome.com financial institution lookup REST client";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/ofxparse/default.nix b/nixpkgs/pkgs/development/python-modules/ofxparse/default.nix
index fbdafc291dc5..235875eec7ce 100644
--- a/nixpkgs/pkgs/development/python-modules/ofxparse/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/ofxparse/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , six
@@ -17,7 +17,7 @@ buildPythonPackage rec {
 
   propagatedBuildInputs = [ six beautifulsoup4 lxml ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "http://sites.google.com/site/ofxparse";
     description = "Tools for working with the OFX (Open Financial Exchange) file format";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/ofxtools/default.nix b/nixpkgs/pkgs/development/python-modules/ofxtools/default.nix
index da087e8b520f..8f280d1cfd45 100644
--- a/nixpkgs/pkgs/development/python-modules/ofxtools/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/ofxtools/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchFromGitHub
 , nose
@@ -27,7 +27,7 @@ buildPythonPackage rec {
     HOME=$TMPDIR nosetests tests/*.py
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://github.com/csingley/ofxtools";
     description = "Library for working with Open Financial Exchange (OFX) formatted data used by financial institutions";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/olefile/default.nix b/nixpkgs/pkgs/development/python-modules/olefile/default.nix
index 5667da7fbc6d..96c0a0b51bef 100644
--- a/nixpkgs/pkgs/development/python-modules/olefile/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/olefile/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi }:
+{ lib, stdenv, buildPythonPackage, fetchPypi }:
 buildPythonPackage rec {
   pname = "olefile";
   version = "0.46";
@@ -9,7 +9,7 @@ buildPythonPackage rec {
     sha256 = "133b031eaf8fd2c9399b78b8bc5b8fcbe4c31e85295749bb17a87cba8f3c3964";
   };
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Python package to parse, read and write Microsoft OLE2 files";
     homepage = "https://www.decalage.info/python/olefileio";
     # BSD like + reference to Pillow
diff --git a/nixpkgs/pkgs/development/python-modules/omegaconf/default.nix b/nixpkgs/pkgs/development/python-modules/omegaconf/default.nix
index 4219aad3865f..99b9cccc7de6 100644
--- a/nixpkgs/pkgs/development/python-modules/omegaconf/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/omegaconf/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchFromGitHub, pythonOlder
+{ lib, stdenv, buildPythonPackage, fetchFromGitHub, pythonOlder
 , pytest, pytestrunner, pyyaml, six, pathlib2, isPy27 }:
 
 buildPythonPackage rec {
@@ -14,9 +14,9 @@ buildPythonPackage rec {
 
   checkInputs = [ pytest ];
   buildInputs = [ pytestrunner ];
-  propagatedBuildInputs = [ pyyaml six ] ++ stdenv.lib.optional isPy27 pathlib2;
+  propagatedBuildInputs = [ pyyaml six ] ++ lib.optional isPy27 pathlib2;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "A framework for configuring complex applications";
     homepage = "https://github.com/omry/omegaconf";
     license = licenses.free;  # prior bsd license (1988)
diff --git a/nixpkgs/pkgs/development/python-modules/onkyo-eiscp/default.nix b/nixpkgs/pkgs/development/python-modules/onkyo-eiscp/default.nix
index 117b8228d2e5..067db3a69fef 100644
--- a/nixpkgs/pkgs/development/python-modules/onkyo-eiscp/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/onkyo-eiscp/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi
+{ lib, stdenv, buildPythonPackage, fetchPypi
 , docopt, netifaces }:
 
 buildPythonPackage rec {
@@ -12,7 +12,7 @@ buildPythonPackage rec {
 
   propagatedBuildInputs = [ docopt netifaces ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Control Onkyo receivers over ethernet";
     homepage = "https://github.com/miracle2k/onkyo-eiscp";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/openant/default.nix b/nixpkgs/pkgs/development/python-modules/openant/default.nix
index a9598825dd00..374b7cb059d1 100644
--- a/nixpkgs/pkgs/development/python-modules/openant/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/openant/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchFromGitHub
 , pyusb
@@ -28,7 +28,7 @@ buildPythonPackage {
 
   propagatedBuildInputs = [ pyusb ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://github.com/Tigge/openant";
     description = "ANT and ANT-FS Python Library";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/openbabel-bindings/default.nix b/nixpkgs/pkgs/development/python-modules/openbabel-bindings/default.nix
new file mode 100644
index 000000000000..18a6a8dd032c
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/openbabel-bindings/default.nix
@@ -0,0 +1,27 @@
+{ stdenv, lib, openbabel, python, buildPythonPackage }:
+
+buildPythonPackage rec {
+  pname = "openbabel";
+  version = "3.1.1";
+
+  src = "${openbabel}/lib/python${python.sourceVersion.major}.${python.sourceVersion.minor}/site-packages";
+
+  nativeBuildInputs = [ openbabel ];
+
+  # these env variables are used by the bindings to find libraries
+  # they need to be included explicitly in your nix-shell for
+  # some functionality to work (inparticular, pybel).
+  # see https://openbabel.org/docs/dev/Installation/install.html
+  BABEL_LIBDIR = "${openbabel}/lib/openbabel/3.1.0";
+  LD_LIBRARY_PATH = "$LD_LIBRARY_PATH:${openbabel}/lib";
+
+  doCheck = false;
+  pythonImportsCheck = [ "openbabel" ];
+
+  meta = with lib; {
+    homepage = "http://openbabel.org/wiki/Main_Page";
+    description = "Python bindings for openbabel";
+    license = licenses.gpl2Plus;
+    maintainers = with maintainers; [ danielbarter ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/openidc-client/default.nix b/nixpkgs/pkgs/development/python-modules/openidc-client/default.nix
index 9cfe714ef6f2..7d373c13a8a5 100644
--- a/nixpkgs/pkgs/development/python-modules/openidc-client/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/openidc-client/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi, requests }:
+{ lib, stdenv, buildPythonPackage, fetchPypi, requests }:
 
 buildPythonPackage rec {
   pname = "openidc-client";
@@ -12,7 +12,7 @@ buildPythonPackage rec {
 
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "A CLI python OpenID Connect client with token caching and management";
     homepage = "https://github.com/puiterwijk";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/openrazer/common.nix b/nixpkgs/pkgs/development/python-modules/openrazer/common.nix
index 67896c362f56..843380ebf21d 100644
--- a/nixpkgs/pkgs/development/python-modules/openrazer/common.nix
+++ b/nixpkgs/pkgs/development/python-modules/openrazer/common.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , fetchFromGitHub
 }: rec {
   version = "2.9.0";
@@ -8,7 +8,7 @@
     rev = "v${version}";
     sha256 = "1js7hq7zx5kj99brffrfaaah283ydkffmmrzsxv4mkd3nnd6rykk";
   };
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://openrazer.github.io/";
     license = licenses.gpl2;
     maintainers = with maintainers; [ roelvandijk evanjs ];
diff --git a/nixpkgs/pkgs/development/python-modules/openrazer/daemon.nix b/nixpkgs/pkgs/development/python-modules/openrazer/daemon.nix
index fb7b48e2266f..6c22d3bae5d0 100644
--- a/nixpkgs/pkgs/development/python-modules/openrazer/daemon.nix
+++ b/nixpkgs/pkgs/development/python-modules/openrazer/daemon.nix
@@ -1,4 +1,5 @@
-{ buildPythonApplication
+{ lib
+, buildPythonApplication
 , isPy3k
 , daemonize
 , dbus-python
@@ -15,7 +16,7 @@
 }:
 
 let
-  common = import ./common.nix { inherit stdenv fetchFromGitHub; };
+  common = import ./common.nix { inherit stdenv lib fetchFromGitHub; };
 in
 buildPythonApplication (common // rec {
   pname = "openrazer_daemon";
diff --git a/nixpkgs/pkgs/development/python-modules/openrazer/pylib.nix b/nixpkgs/pkgs/development/python-modules/openrazer/pylib.nix
index 2f9ff467b2d9..52fe63318a3e 100644
--- a/nixpkgs/pkgs/development/python-modules/openrazer/pylib.nix
+++ b/nixpkgs/pkgs/development/python-modules/openrazer/pylib.nix
@@ -1,4 +1,5 @@
-{ buildPythonPackage
+{ lib
+, buildPythonPackage
 , dbus-python
 , fetchFromGitHub
 , numpy
@@ -7,7 +8,7 @@
 }:
 
 let
-  common = import ./common.nix { inherit stdenv fetchFromGitHub; };
+  common = import ./common.nix { inherit stdenv lib fetchFromGitHub; };
 in
 buildPythonPackage (common // rec {
   pname = "openrazer";
diff --git a/nixpkgs/pkgs/development/python-modules/openwebifpy/default.nix b/nixpkgs/pkgs/development/python-modules/openwebifpy/default.nix
index 5cf070d610fb..60f94072681d 100644
--- a/nixpkgs/pkgs/development/python-modules/openwebifpy/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/openwebifpy/default.nix
@@ -4,12 +4,12 @@
 
 buildPythonPackage rec {
   pname = "openwebifpy";
-  version = "3.1.1";
+  version = "3.2.7";
   disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0zqa74i54ww9qjciiv8s58mxbs6vxq06cq5k4pxfarc0l75l4gh2";
+    sha256 = "0n9vi6b0y8b41fd7m9p361y3qb5m3b9p9d8g4fasqi7yy4mw2hns";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/optuna/default.nix b/nixpkgs/pkgs/development/python-modules/optuna/default.nix
index 64ed54cafbe2..aa61b18291d6 100644
--- a/nixpkgs/pkgs/development/python-modules/optuna/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/optuna/default.nix
@@ -84,6 +84,7 @@ buildPythonPackage rec {
   '';
 
   meta = with lib; {
+    broken = true;  # Dashboard broken, other build failures.
     description = "A hyperparameter optimization framework";
     homepage = "https://optuna.org/";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/opuslib/default.nix b/nixpkgs/pkgs/development/python-modules/opuslib/default.nix
index aa7fc4add493..7db467f26d50 100644
--- a/nixpkgs/pkgs/development/python-modules/opuslib/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/opuslib/default.nix
@@ -3,7 +3,7 @@
   isPy27,
   libopus,
   nose,
-  stdenv,
+  lib, stdenv,
   substituteAll,
 }:
 
@@ -29,7 +29,7 @@ buildPythonPackage rec {
 
   checkInputs = [ nose ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Python bindings to the libopus, IETF low-delay audio codec";
     homepage = "https://github.com/orion-labs/opuslib";
     license = licenses.bsd3;
diff --git a/nixpkgs/pkgs/development/python-modules/ordereddict/default.nix b/nixpkgs/pkgs/development/python-modules/ordereddict/default.nix
index 9c028777fc9f..e2931840a66a 100644
--- a/nixpkgs/pkgs/development/python-modules/ordereddict/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/ordereddict/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 }:
@@ -12,7 +12,7 @@ buildPythonPackage rec {
     sha256 = "07qvy11nvgxpzarrni3wrww3vpc9yafgi2bch4j2vvvc42nb8d8w";
   };
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "A drop-in substitute for Py2.7's new collections.OrderedDict that works in Python 2.4-2.6";
     license = licenses.bsd3;
     maintainers = with maintainers; [ ];
diff --git a/nixpkgs/pkgs/development/python-modules/orderedmultidict/default.nix b/nixpkgs/pkgs/development/python-modules/orderedmultidict/default.nix
index 1a3ab347945a..1cd0f648bd3e 100644
--- a/nixpkgs/pkgs/development/python-modules/orderedmultidict/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/orderedmultidict/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi, flake8, six, pythonOlder, importlib-metadata }:
+{ lib, stdenv, buildPythonPackage, fetchPypi, flake8, six, pythonOlder, importlib-metadata }:
 
 buildPythonPackage rec {
   pname = "orderedmultidict";
@@ -12,11 +12,11 @@ buildPythonPackage rec {
   checkInputs = [ flake8 ];
 
   propagatedBuildInputs = [ six ]
-    ++ stdenv.lib.optionals (pythonOlder "3.8") [
+    ++ lib.optionals (pythonOlder "3.8") [
       importlib-metadata
     ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Ordered Multivalue Dictionary.";
     homepage = "https://github.com/gruns/orderedmultidict";
     license = licenses.publicDomain;
diff --git a/nixpkgs/pkgs/development/python-modules/orderedset/default.nix b/nixpkgs/pkgs/development/python-modules/orderedset/default.nix
index ac7b21361c97..aced6cf08536 100644
--- a/nixpkgs/pkgs/development/python-modules/orderedset/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/orderedset/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi }:
+{ lib, stdenv, buildPythonPackage, fetchPypi }:
 
 buildPythonPackage rec {
   pname = "orderedset";
@@ -9,7 +9,7 @@ buildPythonPackage rec {
     sha256 = "0abf19w37kxypsj6v7dz79jj92y1kivjk2zivnrv7rw6bbxwrxdj";
   };
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "An Ordered Set implementation in Cython";
     homepage = "https://pypi.python.org/pypi/orderedset";
     license = licenses.bsd3;
diff --git a/nixpkgs/pkgs/development/python-modules/orm/default.nix b/nixpkgs/pkgs/development/python-modules/orm/default.nix
index dece359b0c0f..872a54076125 100644
--- a/nixpkgs/pkgs/development/python-modules/orm/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/orm/default.nix
@@ -4,8 +4,9 @@
 , databases
 , typesystem
 , aiosqlite
-, pytest
+, pytestCheckHook
 , pytestcov
+, typing-extensions
 }:
 
 buildPythonPackage rec {
@@ -26,13 +27,12 @@ buildPythonPackage rec {
 
   checkInputs = [
     aiosqlite
-    pytest
+    pytestCheckHook
     pytestcov
+    typing-extensions
   ];
 
-  checkPhase = ''
-    PYTHONPATH=$PYTHONPATH:. pytest
-  '';
+  pythonImportsCheck = [ "orm" ];
 
   meta = with lib; {
     description = "An async ORM";
diff --git a/nixpkgs/pkgs/development/python-modules/orvibo/default.nix b/nixpkgs/pkgs/development/python-modules/orvibo/default.nix
new file mode 100644
index 000000000000..6209baa144bb
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/orvibo/default.nix
@@ -0,0 +1,33 @@
+{ lib
+, buildPythonPackage
+, click
+, fetchFromGitHub
+, mock
+, pytest-runner
+, pytestCheckHook
+, requests
+, websocket_client
+}:
+
+buildPythonPackage rec {
+  pname = "orvibo";
+  version = "1.1.1";
+
+  src = fetchFromGitHub {
+    owner = "happyleavesaoc";
+    repo = "python-orvibo";
+    rev = version;
+    sha256 = "042prd5yxqvlfija7ii1xn424iv1p7ndhxv6m67ij8cbvspwx356";
+  };
+
+  # Project as no tests
+  doCheck = false;
+  pythonImportsCheck = [ "orvibo" ];
+
+  meta = with lib; {
+    description = "Python client to work with Orvibo devices";
+    homepage = "https://github.com/happyleavesaoc/python-orvibo";
+    license = with licenses; [ mit ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/osc/default.nix b/nixpkgs/pkgs/development/python-modules/osc/default.nix
index cae6a468c776..dad78727f2d1 100644
--- a/nixpkgs/pkgs/development/python-modules/osc/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/osc/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchFromGitHub, bashInteractive, urlgrabber
+{ lib, stdenv, buildPythonPackage, fetchFromGitHub, bashInteractive, urlgrabber
 , m2crypto, rpm, chardet
 }:
 
@@ -30,7 +30,7 @@ buildPythonPackage rec {
     EOF
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://github.com/openSUSE/osc";
     description = "opensuse-commander with svn like handling";
     maintainers = [ maintainers.peti ];
diff --git a/nixpkgs/pkgs/development/python-modules/oset/default.nix b/nixpkgs/pkgs/development/python-modules/oset/default.nix
index aa435b403e8b..5d8a5f741bdc 100644
--- a/nixpkgs/pkgs/development/python-modules/oset/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/oset/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi }:
+{ lib, buildPythonPackage, fetchPypi }:
 
 buildPythonPackage rec {
   pname = "oset";
@@ -11,9 +11,9 @@ buildPythonPackage rec {
 
   doCheck = false;
 
-  meta = {
+  meta = with lib; {
     description = "Ordered set";
-    license = stdenv.lib.licenses.psfl;
+    license = licenses.psfl;
   };
 
 }
diff --git a/nixpkgs/pkgs/development/python-modules/osmnx/default.nix b/nixpkgs/pkgs/development/python-modules/osmnx/default.nix
index 856c2bb45dbc..c624e262cf96 100755
--- a/nixpkgs/pkgs/development/python-modules/osmnx/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/osmnx/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchFromGitHub, geopandas, descartes, matplotlib, networkx, numpy
+{ lib, stdenv, buildPythonPackage, fetchFromGitHub, geopandas, descartes, matplotlib, networkx, numpy
 , pandas, requests, Rtree, shapely, pytest, coverage, coveralls, folium, scikitlearn, scipy}:
 
 buildPythonPackage rec {
@@ -23,7 +23,7 @@ buildPythonPackage rec {
   #  coverage run --source osmnx -m pytest --verbose
   #'';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "A package to easily download, construct, project, visualize, and analyze complex street networks from OpenStreetMap with NetworkX.";
     homepage = "https://github.com/gboeing/osmnx";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/osqp/default.nix b/nixpkgs/pkgs/development/python-modules/osqp/default.nix
index 88189493a62f..1db266e116d4 100644
--- a/nixpkgs/pkgs/development/python-modules/osqp/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/osqp/default.nix
@@ -4,18 +4,20 @@
 , cmake
 , future
 , numpy
+, qdldl
 , scipy
 # check inputs
 , pytestCheckHook
+, cvxopt
 }:
 
 buildPythonPackage rec {
   pname = "osqp";
-  version = "0.6.1";
+  version = "0.6.2.post0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "130frig5bznfacqp9jwbshmbqd2xw3ixdspsbkrwsvkdaab7kca7";
+    sha256 = "5f0695f26a3bef0fae91254bc283fab790dcca0064bfe0f425167f9c9e8b4cbc";
   };
 
   nativeBuildInputs = [ cmake ];
@@ -24,15 +26,14 @@ buildPythonPackage rec {
   propagatedBuildInputs = [
     future
     numpy
+    qdldl
     scipy
   ];
 
   pythonImportsCheck = [ "osqp" ];
-  checkInputs = [ pytestCheckHook ];
-  dontUseSetuptoolsCheck = true;  # don't run checks twice
+  checkInputs = [ pytestCheckHook cvxopt ];
   disabledTests = [
     "mkl_"
-    "update_matrices_tests" # broken w/ scipy >= 1.5.0. Remove next release. See https://github.com/oxfordcontrol/osqp-python/issues/44
   ];
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/development/python-modules/ovito/default.nix b/nixpkgs/pkgs/development/python-modules/ovito/default.nix
index d813d2ac47f3..a33e5d19b44e 100644
--- a/nixpkgs/pkgs/development/python-modules/ovito/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/ovito/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , fetchFromGitLab
 , cmake
 , ffmpeg
@@ -30,7 +30,7 @@ stdenv.mkDerivation rec {
 
   propagatedBuildInputs = with python.pkgs; [ sphinx numpy sip pyqt5 matplotlib ase ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Scientific visualization and analysis software for atomistic simulation data";
     homepage = "https://www.ovito.org";
     license = with licenses; [ gpl3Only mit ];
diff --git a/nixpkgs/pkgs/development/python-modules/packaging/2.nix b/nixpkgs/pkgs/development/python-modules/packaging/2.nix
index 36764e64b860..5d841eb4fb13 100644
--- a/nixpkgs/pkgs/development/python-modules/packaging/2.nix
+++ b/nixpkgs/pkgs/development/python-modules/packaging/2.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , pyparsing
@@ -31,7 +31,7 @@ buildPythonPackage rec {
   # Prevent circular dependency
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Core utilities for Python packages";
     homepage = "https://github.com/pypa/packaging";
     license = [ licenses.bsd2 licenses.asl20 ];
diff --git a/nixpkgs/pkgs/development/python-modules/packaging/default.nix b/nixpkgs/pkgs/development/python-modules/packaging/default.nix
index 061e8edaac6f..973e516f5a90 100644
--- a/nixpkgs/pkgs/development/python-modules/packaging/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/packaging/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , pyparsing
@@ -36,7 +36,7 @@ buildPythonPackage rec {
   # Prevent circular dependency
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Core utilities for Python packages";
     homepage = "https://github.com/pypa/packaging";
     license = [ licenses.bsd2 licenses.asl20 ];
diff --git a/nixpkgs/pkgs/development/python-modules/pagelabels/default.nix b/nixpkgs/pkgs/development/python-modules/pagelabels/default.nix
index d7adc9b17c04..5daa60f475d3 100644
--- a/nixpkgs/pkgs/development/python-modules/pagelabels/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pagelabels/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi, pdfrw }:
+{ lib, stdenv, buildPythonPackage, fetchPypi, pdfrw }:
 
 buildPythonPackage rec {
   pname = "pagelabels";
@@ -14,7 +14,7 @@ buildPythonPackage rec {
   # upstream doesn't contain tests
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Python library to manipulate PDF page labels.";
     homepage = "https://github.com/lovasoa/pagelabels-py";
     maintainers = with maintainers; [ teto ];
diff --git a/nixpkgs/pkgs/development/python-modules/pagerduty/default.nix b/nixpkgs/pkgs/development/python-modules/pagerduty/default.nix
index 00236f3c2345..ebe2c8b5854d 100644
--- a/nixpkgs/pkgs/development/python-modules/pagerduty/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pagerduty/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , isPy3k
@@ -14,7 +14,7 @@ buildPythonPackage rec {
     sha256 = "e8c237239d3ffb061069aa04fc5b3d8ae4fb0af16a9713fe0977f02261d323e9";
   };
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://github.com/samuel/python-pagerduty";
     description = "Library for the PagerDuty service API";
     license = licenses.bsd0;
diff --git a/nixpkgs/pkgs/development/python-modules/palettable/default.nix b/nixpkgs/pkgs/development/python-modules/palettable/default.nix
index f96e05950b80..d61973aa3bfa 100644
--- a/nixpkgs/pkgs/development/python-modules/palettable/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/palettable/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi, pytest }:
+{ lib, stdenv, buildPythonPackage, fetchPypi, pytest }:
 
 buildPythonPackage rec {
   pname = "palettable";
@@ -15,7 +15,7 @@ buildPythonPackage rec {
     pytest
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "A library of color palettes";
     homepage = "https://jiffyclub.github.io/palettable/";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/pamela/default.nix b/nixpkgs/pkgs/development/python-modules/pamela/default.nix
index 9a55719d77f3..7fd62dae2cd9 100644
--- a/nixpkgs/pkgs/development/python-modules/pamela/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pamela/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib
 , buildPythonPackage
 , fetchPypi
 , pkgs
@@ -16,12 +16,12 @@ buildPythonPackage rec {
   postUnpack = ''
     substituteInPlace $sourceRoot/pamela.py --replace \
       'find_library("pam")' \
-      '"${stdenv.lib.getLib pkgs.pam}/lib/libpam.so"'
+      '"${lib.getLib pkgs.pam}/lib/libpam.so"'
   '';
 
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "PAM interface using ctypes";
     homepage = "https://github.com/minrk/pamela";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/pamqp/default.nix b/nixpkgs/pkgs/development/python-modules/pamqp/default.nix
index 8353e8d7895f..2e8e4500f247 100644
--- a/nixpkgs/pkgs/development/python-modules/pamqp/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pamqp/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , mock
@@ -19,7 +19,7 @@ buildPythonPackage rec {
 
   buildInputs = [ mock nose pep8 pylint mccabe ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "RabbitMQ Focused AMQP low-level library";
     homepage = "https://pypi.python.org/pypi/pamqp";
     license = licenses.bsd3;
diff --git a/nixpkgs/pkgs/development/python-modules/pandas-datareader/default.nix b/nixpkgs/pkgs/development/python-modules/pandas-datareader/default.nix
index 92adfb9d3f16..c4bf9c140df3 100644
--- a/nixpkgs/pkgs/development/python-modules/pandas-datareader/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pandas-datareader/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , pytestCheckHook
@@ -24,7 +24,7 @@ buildPythonPackage rec {
 
   propagatedBuildInputs = [ pandas lxml requests ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Up to date remote data access for pandas, works for multiple versions of pandas";
     homepage = "https://github.com/pydata/pandas-datareader";
     license= licenses.bsd3;
diff --git a/nixpkgs/pkgs/development/python-modules/pandas/2.nix b/nixpkgs/pkgs/development/python-modules/pandas/2.nix
index e4f65a94dc53..936a3db296ec 100644
--- a/nixpkgs/pkgs/development/python-modules/pandas/2.nix
+++ b/nixpkgs/pkgs/development/python-modules/pandas/2.nix
@@ -1,6 +1,7 @@
 # Python 2 expression
 
-{ buildPythonPackage
+{ lib
+, buildPythonPackage
 , fetchPypi
 , python
 , stdenv
@@ -26,11 +27,7 @@
 , libcxx ? null
 }:
 
-let
-  inherit (stdenv.lib) optional optionals optionalString;
-  inherit (stdenv) isDarwin;
-
-in buildPythonPackage rec {
+buildPythonPackage rec {
   pname = "pandas";
   version = "0.24.2";
 
@@ -42,7 +39,7 @@ in buildPythonPackage rec {
   checkInputs = [ pytest glibcLocales moto hypothesis ];
 
   nativeBuildInputs = [ cython ];
-  buildInputs = optional isDarwin libcxx;
+  buildInputs = lib.optional stdenv.isDarwin libcxx;
   propagatedBuildInputs = [
     dateutil
     scipy
@@ -61,7 +58,7 @@ in buildPythonPackage rec {
 
   # For OSX, we need to add a dependency on libcxx, which provides
   # `complex.h` and other libraries that pandas depends on to build.
-  postPatch = optionalString isDarwin ''
+  postPatch = lib.optionalString stdenv.isDarwin ''
     cpp_sdk="${libcxx}/include/c++/v1";
     echo "Adding $cpp_sdk to the setup.py common_include variable"
     substituteInPlace setup.py \
@@ -70,7 +67,7 @@ in buildPythonPackage rec {
   '';
 
 
-  disabledTests = stdenv.lib.concatMapStringsSep " and " (s: "not " + s) ([
+  disabledTests = lib.concatMapStringsSep " and " (s: "not " + s) ([
     # since dateutil 0.6.0 the following fails: test_fallback_plural, test_ambiguous_flags, test_ambiguous_compat
     # was supposed to be solved by https://github.com/dateutil/dateutil/issues/321, but is not the case
     "test_fallback_plural"
@@ -86,7 +83,7 @@ in buildPythonPackage rec {
     "io"
     # KeyError Timestamp
     "test_to_excel"
-  ] ++ optionals isDarwin [
+  ] ++ lib.optionals stdenv.isDarwin [
     "test_locale"
     "test_clipboard"
   ]);
@@ -98,7 +95,7 @@ in buildPythonPackage rec {
   ''
   # TODO: Get locale and clipboard support working on darwin.
   #       Until then we disable the tests.
-  + optionalString isDarwin ''
+  + lib.optionalString stdenv.isDarwin ''
     # Fake the impure dependencies pbpaste and pbcopy
     echo "#!${runtimeShell}" > pbcopy
     echo "#!${runtimeShell}" > pbpaste
@@ -109,14 +106,14 @@ in buildPythonPackage rec {
     runHook postCheck
   '';
 
-  meta = {
+  meta = with lib; {
     # https://github.com/pandas-dev/pandas/issues/14866
     # pandas devs are no longer testing i686 so safer to assume it's broken
     broken = stdenv.isi686;
     homepage = "https://pandas.pydata.org/";
     description = "Python Data Analysis Library";
-    license = stdenv.lib.licenses.bsd3;
-    maintainers = with stdenv.lib.maintainers; [ raskin knedlsepp ];
-    platforms = stdenv.lib.platforms.unix;
+    license = licenses.bsd3;
+    maintainers = with maintainers; [ raskin knedlsepp ];
+    platforms = platforms.unix;
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/pandas/default.nix b/nixpkgs/pkgs/development/python-modules/pandas/default.nix
index 46348deca8d6..ab70a7782adf 100644
--- a/nixpkgs/pkgs/development/python-modules/pandas/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pandas/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , python
@@ -27,11 +27,7 @@
 , libcxx ? null
 }:
 
-let
-  inherit (stdenv.lib) optional optionals optionalString;
-  inherit (stdenv) isDarwin;
-
-in buildPythonPackage rec {
+buildPythonPackage rec {
   pname = "pandas";
   version = "1.1.5";
 
@@ -41,7 +37,7 @@ in buildPythonPackage rec {
   };
 
   nativeBuildInputs = [ cython ];
-  buildInputs = optional isDarwin libcxx;
+  buildInputs = lib.optional stdenv.isDarwin libcxx;
   propagatedBuildInputs = [
     beautifulsoup4
     bottleneck
@@ -62,11 +58,11 @@ in buildPythonPackage rec {
 
   # doesn't work with -Werror,-Wunused-command-line-argument
   # https://github.com/NixOS/nixpkgs/issues/39687
-  hardeningDisable = optional stdenv.cc.isClang "strictoverflow";
+  hardeningDisable = lib.optional stdenv.cc.isClang "strictoverflow";
 
   # For OSX, we need to add a dependency on libcxx, which provides
   # `complex.h` and other libraries that pandas depends on to build.
-  postPatch = optionalString isDarwin ''
+  postPatch = lib.optionalString stdenv.isDarwin ''
     cpp_sdk="${libcxx}/include/c++/v1";
     echo "Adding $cpp_sdk to the setup.py common_include variable"
     substituteInPlace setup.py \
@@ -76,7 +72,7 @@ in buildPythonPackage rec {
 
   # Parallel Cythonization is broken in Python 3.8 on Darwin. Fixed in the next
   # release. https://github.com/pandas-dev/pandas/pull/30862
-  setupPyBuildFlags = optionals (!(isPy38 && isDarwin)) [
+  setupPyBuildFlags = lib.optionals (!(isPy38 && stdenv.isDarwin)) [
     # As suggested by
     # https://pandas.pydata.org/pandas-docs/stable/development/contributing.html#creating-a-python-environment
     "--parallel=$NIX_BUILD_CORES"
@@ -85,7 +81,6 @@ in buildPythonPackage rec {
   doCheck = !stdenv.isAarch64; # upstream doesn't test this architecture
 
   pytestFlagsArray = [
-    "$out/${python.sitePackages}/pandas"
     "--skip-slow"
     "--skip-network"
   ];
@@ -115,18 +110,21 @@ in buildPythonPackage rec {
     "test_constructor_with_embedded_frames"
     # tries to import compiled C extension locally
     "test_missing_required_dependency"
-  ] ++ optionals isDarwin [
+  ] ++ lib.optionals stdenv.isDarwin [
     "test_locale"
     "test_clipboard"
   ];
 
+  # tests have relative paths, and need to reference compiled C extensions
+  # so change directory where `import .test` is able to be resolved
   preCheck = ''
+    cd $out/${python.sitePackages}/pandas
     export LC_ALL="en_US.UTF-8"
     PYTHONPATH=$out/${python.sitePackages}:$PYTHONPATH
   ''
   # TODO: Get locale and clipboard support working on darwin.
   #       Until then we disable the tests.
-  + optionalString isDarwin ''
+  + lib.optionalString stdenv.isDarwin ''
     # Fake the impure dependencies pbpaste and pbcopy
     echo "#!${runtimeShell}" > pbcopy
     echo "#!${runtimeShell}" > pbpaste
@@ -134,7 +132,7 @@ in buildPythonPackage rec {
     export PATH=$(pwd):$PATH
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     # https://github.com/pandas-dev/pandas/issues/14866
     # pandas devs are no longer testing i686 so safer to assume it's broken
     broken = stdenv.isi686;
diff --git a/nixpkgs/pkgs/development/python-modules/pandocfilters/default.nix b/nixpkgs/pkgs/development/python-modules/pandocfilters/default.nix
index 848e59313af9..d31bc2657c93 100644
--- a/nixpkgs/pkgs/development/python-modules/pandocfilters/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pandocfilters/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 }:
@@ -15,7 +15,7 @@ buildPythonPackage rec {
   # No tests available
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "A python module for writing pandoc filters, with a collection of examples";
     homepage = "https://github.com/jgm/pandocfilters";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/paperspace/default.nix b/nixpkgs/pkgs/development/python-modules/paperspace/default.nix
index fad394a5339b..4553b253819f 100644
--- a/nixpkgs/pkgs/development/python-modules/paperspace/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/paperspace/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchPypi, buildPythonPackage
+{ lib, stdenv, fetchPypi, buildPythonPackage
 , boto3, requests, gradient_statsd, terminaltables
 , click-completion , click-didyoumean, click-help-colors
 , colorama, requests_toolbelt, gradient_sdk, progressbar2
@@ -21,7 +21,7 @@ buildPythonPackage rec {
   # tries to use /homeless-shelter to mimic container usage, etc
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Python API for Paperspace Cloud";
     homepage    = "https://paperspace.com";
     license     = licenses.isc;
diff --git a/nixpkgs/pkgs/development/python-modules/parameterized/default.nix b/nixpkgs/pkgs/development/python-modules/parameterized/default.nix
index 77529c059afd..16925bd1286b 100644
--- a/nixpkgs/pkgs/development/python-modules/parameterized/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/parameterized/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchPypi, buildPythonPackage, nose, mock, glibcLocales, isPy3k, isPy38 }:
+{ lib, stdenv, fetchPypi, buildPythonPackage, nose, mock, glibcLocales, isPy3k, isPy38 }:
 
 buildPythonPackage rec {
   pname = "parameterized";
@@ -19,7 +19,7 @@ buildPythonPackage rec {
     LC_ALL="en_US.UTF-8" nosetests -v
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Parameterized testing with any Python test framework";
     homepage = "https://pypi.python.org/pypi/parameterized";
     license = licenses.bsd3;
diff --git a/nixpkgs/pkgs/development/python-modules/paramz/default.nix b/nixpkgs/pkgs/development/python-modules/paramz/default.nix
index 63014647880d..65cc79745caa 100644
--- a/nixpkgs/pkgs/development/python-modules/paramz/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/paramz/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi, numpy, scipy, six, decorator, nose }:
+{ lib, stdenv, buildPythonPackage, fetchPypi, numpy, scipy, six, decorator, nose }:
 
 buildPythonPackage rec {
   pname = "paramz";
@@ -17,7 +17,7 @@ buildPythonPackage rec {
       nosetests -v paramz/tests
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Parameterization framework for parameterized model creation and handling";
     homepage = "https://github.com/sods/paramz";
     license = licenses.bsd3;
diff --git a/nixpkgs/pkgs/development/python-modules/parse-type/default.nix b/nixpkgs/pkgs/development/python-modules/parse-type/default.nix
index cbf4ee0836e4..d338a351e54b 100644
--- a/nixpkgs/pkgs/development/python-modules/parse-type/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/parse-type/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchPypi
+{ lib, stdenv, fetchPypi
 , buildPythonPackage, pythonOlder
 , pytest, pytestrunner
 , parse, six, enum34
@@ -14,13 +14,13 @@ buildPythonPackage rec {
   };
 
   checkInputs = [ pytest pytestrunner ];
-  propagatedBuildInputs = [ parse six ] ++ stdenv.lib.optional (pythonOlder "3.4") enum34;
+  propagatedBuildInputs = [ parse six ] ++ lib.optional (pythonOlder "3.4") enum34;
 
   checkPhase = ''
     py.test tests
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://github.com/jenisys/parse_type";
     description = "Simplifies to build parse types based on the parse module";
     license = licenses.bsd3;
diff --git a/nixpkgs/pkgs/development/python-modules/parse/default.nix b/nixpkgs/pkgs/development/python-modules/parse/default.nix
index 7b160237d5eb..d72e607bc410 100644
--- a/nixpkgs/pkgs/development/python-modules/parse/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/parse/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchPypi
+{ lib, stdenv, fetchPypi
 , buildPythonPackage, python
 }:
 buildPythonPackage rec {
@@ -14,7 +14,7 @@ buildPythonPackage rec {
     ${python.interpreter} test_parse.py
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://github.com/r1chardj0n3s/parse";
     description = "parse() is the opposite of format()";
     license = licenses.bsdOriginal;
diff --git a/nixpkgs/pkgs/development/python-modules/parsedatetime/default.nix b/nixpkgs/pkgs/development/python-modules/parsedatetime/default.nix
index 0b7d5cd6fb4c..1f98940fff06 100644
--- a/nixpkgs/pkgs/development/python-modules/parsedatetime/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/parsedatetime/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , isPy27
@@ -20,7 +20,7 @@ buildPythonPackage rec {
   buildInputs = [ pytest pytestrunner ];
   propagatedBuildInputs = [ future ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Parse human-readable date/time text";
     homepage = "https://github.com/bear/parsedatetime";
     license = licenses.asl20;
diff --git a/nixpkgs/pkgs/development/python-modules/parsimonious/default.nix b/nixpkgs/pkgs/development/python-modules/parsimonious/default.nix
index 25d87a7f2f1f..d41953246db9 100644
--- a/nixpkgs/pkgs/development/python-modules/parsimonious/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/parsimonious/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , nose
@@ -20,7 +20,7 @@ buildPythonPackage rec {
   # performance tests tend to fail sometimes
   NOSE_EXCLUDE = "test_benchmarks";
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://github.com/erikrose/parsimonious";
     description = "Fast arbitrary-lookahead parser written in pure Python";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/paste/default.nix b/nixpkgs/pkgs/development/python-modules/paste/default.nix
index 6bed8144a21e..a29deed503ed 100644
--- a/nixpkgs/pkgs/development/python-modules/paste/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/paste/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , six
@@ -25,7 +25,7 @@ buildPythonPackage rec {
     py.test -k "not test_cgiapp and not test_proxy"
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Tools for using a Web Server Gateway Interface stack";
     homepage = "http://pythonpaste.org/";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/pastedeploy/default.nix b/nixpkgs/pkgs/development/python-modules/pastedeploy/default.nix
index 21149da917f1..950b232fa7e4 100644
--- a/nixpkgs/pkgs/development/python-modules/pastedeploy/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pastedeploy/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , pytestrunner
@@ -22,7 +22,7 @@ buildPythonPackage rec {
   # should be included with versions > 2.0.1
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Load, configure, and compose WSGI applications and servers";
     homepage = "http://pythonpaste.org/deploy/";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/pastescript/default.nix b/nixpkgs/pkgs/development/python-modules/pastescript/default.nix
index ce012c3d102a..57dbb7b9352e 100644
--- a/nixpkgs/pkgs/development/python-modules/pastescript/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pastescript/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , nose
@@ -22,7 +22,7 @@ buildPythonPackage rec {
 
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "A pluggable command-line frontend, including commands to setup package file layouts";
     homepage = "https://github.com/cdent/pastescript/";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/patator/default.nix b/nixpkgs/pkgs/development/python-modules/patator/default.nix
index b876e913e3cf..96ed85d7bcee 100644
--- a/nixpkgs/pkgs/development/python-modules/patator/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/patator/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, isPy27, fetchPypi
+{ lib, stdenv, buildPythonPackage, isPy27, fetchPypi
 , paramiko, pycurl, ajpy, impacket, pyopenssl, cx_oracle, mysqlclient
 , psycopg2, pycrypto, dnspython, ipy, pysnmp, pyasn1, pysqlcipher3 }:
 
@@ -38,7 +38,7 @@ buildPythonPackage rec {
   # tests require docker-compose and vagrant
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "multi-purpose brute-forcer";
     homepage = "https://github.com/lanjelot/patator";
     license = licenses.gpl2;
diff --git a/nixpkgs/pkgs/development/python-modules/patch-ng/default.nix b/nixpkgs/pkgs/development/python-modules/patch-ng/default.nix
index 7cab25707984..981dc067fe7e 100644
--- a/nixpkgs/pkgs/development/python-modules/patch-ng/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/patch-ng/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 }:
@@ -12,7 +12,7 @@ buildPythonPackage rec {
     sha256 = "1kja1nn08w0k8k6j4kad48k581hh9drvjjb8x60v9j13sxdvqyk2";
   };
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Library to parse and apply unified diffs.";
     homepage = "https://github.com/conan-io/python-patch";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/patch/default.nix b/nixpkgs/pkgs/development/python-modules/patch/default.nix
index a4af8319f622..8d7e78c6c27c 100644
--- a/nixpkgs/pkgs/development/python-modules/patch/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/patch/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchzip
 }:
@@ -16,7 +16,7 @@ buildPythonPackage rec {
   # No tests included in archive
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "A library to parse and apply unified diffs";
     homepage = "https://github.com/techtonik/python-patch/";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/path-and-address/default.nix b/nixpkgs/pkgs/development/python-modules/path-and-address/default.nix
index f30a6ddd4083..9512b0eb0b88 100644
--- a/nixpkgs/pkgs/development/python-modules/path-and-address/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/path-and-address/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchFromGitHub
 , pytest
@@ -21,7 +21,7 @@ buildPythonPackage rec {
     py.test
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Functions for server CLI applications used by humans";
     homepage = "https://github.com/joeyespo/path-and-address";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/pathos/default.nix b/nixpkgs/pkgs/development/python-modules/pathos/default.nix
index 2b9134750fe2..778070906022 100644
--- a/nixpkgs/pkgs/development/python-modules/pathos/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pathos/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , dill
@@ -21,7 +21,7 @@ buildPythonPackage rec {
   # Require network
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Parallel graph management and execution in heterogeneous computing";
     homepage = "https://github.com/uqfoundation/pathos/";
     license = licenses.bsd3;
diff --git a/nixpkgs/pkgs/development/python-modules/pathtools/default.nix b/nixpkgs/pkgs/development/python-modules/pathtools/default.nix
index 75901743c7e4..57fff82a81d7 100644
--- a/nixpkgs/pkgs/development/python-modules/pathtools/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pathtools/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 }:
@@ -12,7 +12,7 @@ buildPythonPackage rec {
     sha256 = "1h7iam33vwxk8bvslfj4qlsdprdnwf8bvzhqh3jq5frr391cadbw";
   };
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Pattern matching and various utilities for file systems paths";
     homepage = "https://github.com/gorakhargosh/pathtools";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/paver/default.nix b/nixpkgs/pkgs/development/python-modules/paver/default.nix
index ec4a40fec1b4..5d01df22b6d5 100644
--- a/nixpkgs/pkgs/development/python-modules/paver/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/paver/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , nose
@@ -23,7 +23,7 @@ buildPythonPackage rec {
   # the tests do not pass
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "A Python-based build/distribution/deployment scripting tool";
     homepage    = "https://github.com/paver/paver";
     maintainers = with maintainers; [ lovek323 ];
diff --git a/nixpkgs/pkgs/development/python-modules/pbkdf2/default.nix b/nixpkgs/pkgs/development/python-modules/pbkdf2/default.nix
index c83cada08f2e..18a2b9b95a3a 100644
--- a/nixpkgs/pkgs/development/python-modules/pbkdf2/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pbkdf2/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi }:
+{ lib, stdenv, buildPythonPackage, fetchPypi }:
 
 buildPythonPackage rec {
   pname = "pbkdf2";
@@ -12,7 +12,7 @@ buildPythonPackage rec {
   # ImportError: No module named test
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     maintainers = with maintainers; [ domenkozar ];
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/pbr/default.nix b/nixpkgs/pkgs/development/python-modules/pbr/default.nix
index bc7c6399473b..6b204a946b3a 100644
--- a/nixpkgs/pkgs/development/python-modules/pbr/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pbr/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi }:
+{ lib, buildPythonPackage, fetchPypi }:
 
 buildPythonPackage rec {
   pname = "pbr";
@@ -12,9 +12,9 @@ buildPythonPackage rec {
   # circular dependencies with fixtures
   doCheck = false;
 
-  meta = {
+  meta = with lib; {
     homepage = "http://docs.openstack.org/developer/pbr/";
-    license = stdenv.lib.licenses.asl20;
+    license = licenses.asl20;
     description = "Python Build Reasonableness";
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/pc-ble-driver-py/default.nix b/nixpkgs/pkgs/development/python-modules/pc-ble-driver-py/default.nix
index e85df06b5002..6a12eea1b00c 100644
--- a/nixpkgs/pkgs/development/python-modules/pc-ble-driver-py/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pc-ble-driver-py/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchFromGitHub, cmake, git, swig, boost, udev, pc-ble-driver, pythonOlder
+{ lib, stdenv, fetchFromGitHub, cmake, git, swig, boost, udev, pc-ble-driver, pythonOlder
 , buildPythonPackage, enum34, wrapt, future, setuptools, scikit-build, pythonAtLeast }:
 
 buildPythonPackage rec {
@@ -22,7 +22,7 @@ buildPythonPackage rec {
 
   dontUseCmakeConfigure = true;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Bluetooth Low Energy nRF5 SoftDevice serialization";
     homepage = "https://github.com/NordicSemiconductor/pc-ble-driver-py";
     license = licenses.unfreeRedistributable;
diff --git a/nixpkgs/pkgs/development/python-modules/pcpp/default.nix b/nixpkgs/pkgs/development/python-modules/pcpp/default.nix
index f57798c40a84..aea7ff0fcdaf 100644
--- a/nixpkgs/pkgs/development/python-modules/pcpp/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pcpp/default.nix
@@ -1,6 +1,6 @@
 { buildPythonPackage
 , fetchFromGitHub
-, stdenv
+, lib, stdenv
 }:
 
 buildPythonPackage rec {
@@ -15,7 +15,7 @@ buildPythonPackage rec {
     fetchSubmodules = true;
   };
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://github.com/ned14/pcpp";
     description = "A C99 preprocessor written in pure Python";
     license = licenses.bsd0;
diff --git a/nixpkgs/pkgs/development/python-modules/pdf2image/default.nix b/nixpkgs/pkgs/development/python-modules/pdf2image/default.nix
index b9342821b209..adc43ef4c2ed 100644
--- a/nixpkgs/pkgs/development/python-modules/pdf2image/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pdf2image/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi, pillow, poppler_utils }:
+{ lib, stdenv, buildPythonPackage, fetchPypi, pillow, poppler_utils }:
 
 buildPythonPackage rec {
   pname = "pdf2image";
@@ -11,7 +11,7 @@ buildPythonPackage rec {
     sha256 = "066527e1bf954762fb4369c677ae3bc15f2ce8707eee830cccef8471fde736d7";
   };
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "A python module that wraps the pdftoppm utility to convert PDF to PIL Image object";
     homepage = "https://github.com/Belval/pdf2image";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/pdfkit/default.nix b/nixpkgs/pkgs/development/python-modules/pdfkit/default.nix
index dc9d33ddf0df..10bc09e8ca92 100644
--- a/nixpkgs/pkgs/development/python-modules/pdfkit/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pdfkit/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 }:
@@ -15,7 +15,7 @@ buildPythonPackage rec {
   # tests are not distributed
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://pypi.python.org/pypi/pdfkit";
     description = "Wkhtmltopdf python wrapper to convert html to pdf using the webkit rendering engine and qt";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/pdfminer_six/default.nix b/nixpkgs/pkgs/development/python-modules/pdfminer_six/default.nix
index 9bc8f8915701..9a659eebe330 100644
--- a/nixpkgs/pkgs/development/python-modules/pdfminer_six/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pdfminer_six/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchFromGitHub, isPy3k, cryptography, chardet, nose, sortedcontainers }:
+{ lib, stdenv, buildPythonPackage, fetchFromGitHub, isPy3k, cryptography, chardet, nose, sortedcontainers }:
 
 buildPythonPackage rec {
   pname = "pdfminer_six";
@@ -21,7 +21,7 @@ buildPythonPackage rec {
     nosetests
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "PDF parser and analyzer";
     homepage = "https://github.com/pdfminer/pdfminer.six";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/pdfposter/default.nix b/nixpkgs/pkgs/development/python-modules/pdfposter/default.nix
index 43e2f1f57f75..0a21ed1e4999 100644
--- a/nixpkgs/pkgs/development/python-modules/pdfposter/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pdfposter/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi, pypdf2 }:
+{ lib, stdenv, buildPythonPackage, fetchPypi, pypdf2 }:
 
 buildPythonPackage rec {
   pname = "pdftools.pdfposter";
@@ -11,7 +11,7 @@ buildPythonPackage rec {
     sha256 = "0c1avpbr9q53yzq5ar2x485rmp9d0l3z27aham32bg7gplzd7w0j";
   };
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Split large pages of a PDF into smaller ones for poster printing";
     homepage = "https://pdfposter.readthedocs.io";
     license = licenses.gpl3;
diff --git a/nixpkgs/pkgs/development/python-modules/pdfrw/default.nix b/nixpkgs/pkgs/development/python-modules/pdfrw/default.nix
index 15b8a8dc8d6b..49abb3751c91 100644
--- a/nixpkgs/pkgs/development/python-modules/pdfrw/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pdfrw/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi }:
+{ lib, stdenv, buildPythonPackage, fetchPypi }:
 
 buildPythonPackage rec {
   pname = "pdfrw";
@@ -12,7 +12,7 @@ buildPythonPackage rec {
   # tests require the extra download of github.com/pmaupin/static_pdfs
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "pdfrw is a pure Python library that reads and writes PDFs.";
     homepage = "https://github.com/pmaupin/pdfrw";
     maintainers = with maintainers; [ teto ];
diff --git a/nixpkgs/pkgs/development/python-modules/pdfx/default.nix b/nixpkgs/pkgs/development/python-modules/pdfx/default.nix
index d2397fb5c82b..97dee7e75705 100644
--- a/nixpkgs/pkgs/development/python-modules/pdfx/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pdfx/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchFromGitHub, pdfminer, chardet, pytest }:
+{ lib, stdenv, buildPythonPackage, fetchFromGitHub, pdfminer, chardet, pytest }:
 
 buildPythonPackage rec {
   pname = "pdfx";
@@ -24,7 +24,7 @@ buildPythonPackage rec {
     py.test
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     inherit (src.meta) homepage;
     description = "Extract references (pdf, url, doi, arxiv) and metadata from a PDF";
     license = licenses.asl20;
diff --git a/nixpkgs/pkgs/development/python-modules/pecan/default.nix b/nixpkgs/pkgs/development/python-modules/pecan/default.nix
index 332f5153a981..ed0c89b7802b 100644
--- a/nixpkgs/pkgs/development/python-modules/pecan/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pecan/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , fetchPypi
 , buildPythonPackage
 , isPy27
@@ -45,13 +45,13 @@ buildPythonPackage rec {
     mock
     sqlalchemy
     virtualenv
-  ] ++ stdenv.lib.optionals isPy27 [ Kajiki ];
+  ] ++ lib.optionals isPy27 [ Kajiki ];
 
   pytestFlagsArray = [
     "--pyargs pecan "
   ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Pecan";
     homepage = "http://www.pecanpy.org/";
     changelog = "https://pecan.readthedocs.io/en/latest/changes.html";
diff --git a/nixpkgs/pkgs/development/python-modules/peewee/default.nix b/nixpkgs/pkgs/development/python-modules/peewee/default.nix
index ee3d08a173c3..6f5d8e262279 100644
--- a/nixpkgs/pkgs/development/python-modules/peewee/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/peewee/default.nix
@@ -1,4 +1,6 @@
-{ stdenv, lib, buildPythonPackage, fetchFromGitHub
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
 , sqlite
 , cython
 , apsw
@@ -40,7 +42,7 @@ buildPythonPackage rec {
 
   doCheck = withPostgres;
 
-  meta = with stdenv.lib;{
+  meta = with lib; {
     description = "a small, expressive orm";
     homepage    = "http://peewee-orm.com";
     license     = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/pelican/default.nix b/nixpkgs/pkgs/development/python-modules/pelican/default.nix
index 30d6546d5705..0b103b780c08 100644
--- a/nixpkgs/pkgs/development/python-modules/pelican/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pelican/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchFromGitHub, isPy27
+{ lib, stdenv, buildPythonPackage, fetchFromGitHub, isPy27
 , glibcLocales, git
 , mock, nose, markdown, lxml, typogrify
 , jinja2, pygments, docutils, pytz, unidecode, six, dateutil, feedgenerator
@@ -67,7 +67,7 @@ buildPythonPackage rec {
     patchShebangs $out/bin
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "A tool to generate a static blog from reStructuredText or Markdown input files";
     homepage = "http://getpelican.com/";
     license = licenses.agpl3;
diff --git a/nixpkgs/pkgs/development/python-modules/pep257/default.nix b/nixpkgs/pkgs/development/python-modules/pep257/default.nix
index 8f3a1e0ea8bd..296b55eec125 100644
--- a/nixpkgs/pkgs/development/python-modules/pep257/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pep257/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchurl, pytest, mock }:
+{ lib, stdenv, buildPythonPackage, fetchurl, pytest, mock }:
 buildPythonPackage rec {
   pname = "pep257";
   version = "0.7.0";
@@ -14,7 +14,7 @@ buildPythonPackage rec {
     py.test
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://github.com/GreenSteam/pep257/";
     description = "Python docstring style checker";
     longDescription = "Static analysis tool for checking compliance with Python PEP 257.";
diff --git a/nixpkgs/pkgs/development/python-modules/pep517/default.nix b/nixpkgs/pkgs/development/python-modules/pep517/default.nix
index a56366569844..90dc50461990 100644
--- a/nixpkgs/pkgs/development/python-modules/pep517/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pep517/default.nix
@@ -14,12 +14,12 @@
 
 buildPythonPackage rec {
   pname = "pep517";
-  version = "0.8.2";
+  version = "0.9.1";
   format = "pyproject";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "8e6199cf1288d48a0c44057f112acf18aa5ebabbf73faa242f598fbe145ba29e";
+    sha256 = "0zqidxah03qpnp6zkg3zd1kmd5f79hhdsfmlc0cldaniy80qddxf";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/pep8/default.nix b/nixpkgs/pkgs/development/python-modules/pep8/default.nix
index 12176b97380d..8ef3bfea0f5d 100644
--- a/nixpkgs/pkgs/development/python-modules/pep8/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pep8/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 }:
@@ -15,7 +15,7 @@ buildPythonPackage rec {
   # FAIL: test_checkers_testsuite (testsuite.test_all.Pep8TestCase)
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://pep8.readthedocs.org/";
     description = "Python style guide checker";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/peppercorn/default.nix b/nixpkgs/pkgs/development/python-modules/peppercorn/default.nix
index 51114a591a57..6caf61b0cd0d 100644
--- a/nixpkgs/pkgs/development/python-modules/peppercorn/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/peppercorn/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 }:
@@ -12,7 +12,7 @@ buildPythonPackage rec {
     sha256 = "1ip4bfwcpwkq9hz2dai14k2cyabvwrnvcvrcmzxmqm04g8fnimwn";
   };
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "A library for converting a token stream into a data structure for use in web form posts";
     homepage = "https://docs.pylonsproject.org/projects/peppercorn/en/latest/";
     maintainers = with maintainers; [ domenkozar ];
diff --git a/nixpkgs/pkgs/development/python-modules/persisting-theory/default.nix b/nixpkgs/pkgs/development/python-modules/persisting-theory/default.nix
index ca14f80868c8..86bae927d9ff 100644
--- a/nixpkgs/pkgs/development/python-modules/persisting-theory/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/persisting-theory/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi
+{ lib, stdenv, buildPythonPackage, fetchPypi
 , nose
 }:
 
@@ -15,7 +15,7 @@ buildPythonPackage rec {
 
   checkPhase = "nosetests";
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://code.eliotberriot.com/eliotberriot/persisting-theory";
     description = "Automate data discovering and access inside a list of packages";
     license = licenses.bsd3;
diff --git a/nixpkgs/pkgs/development/python-modules/pex/default.nix b/nixpkgs/pkgs/development/python-modules/pex/default.nix
index 0bbbf551f280..1d7de0088a84 100644
--- a/nixpkgs/pkgs/development/python-modules/pex/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pex/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , setuptools
@@ -18,7 +18,7 @@ buildPythonPackage rec {
   # A few more dependencies I don't want to handle right now...
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "A library and tool for generating .pex (Python EXecutable) files";
     homepage = "https://github.com/pantsbuild/pex";
     license = licenses.asl20;
diff --git a/nixpkgs/pkgs/development/python-modules/pexif/default.nix b/nixpkgs/pkgs/development/python-modules/pexif/default.nix
index f3086b6b0553..326dde176ae6 100644
--- a/nixpkgs/pkgs/development/python-modules/pexif/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pexif/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 }:
@@ -12,7 +12,7 @@ buildPythonPackage rec {
     sha256 = "45a3be037c7ba8b64bbfc48f3586402cc17de55bb9d7357ef2bc99954a18da3f";
   };
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "A module for editing JPEG EXIF data";
     homepage = "http://www.benno.id.au/code/pexif/";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/pg8000/1_12.nix b/nixpkgs/pkgs/development/python-modules/pg8000/1_12.nix
index bc4ff9f4f031..d84bb2014b80 100644
--- a/nixpkgs/pkgs/development/python-modules/pg8000/1_12.nix
+++ b/nixpkgs/pkgs/development/python-modules/pg8000/1_12.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , pytz
@@ -16,7 +16,7 @@ buildPythonPackage rec {
 
   propagatedBuildInputs = [ pytz six ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://github.com/tlocke/pg8000";
     description = "PostgreSQL interface library, for asyncio";
     maintainers = with maintainers; [ domenkozar ];
diff --git a/nixpkgs/pkgs/development/python-modules/pg8000/default.nix b/nixpkgs/pkgs/development/python-modules/pg8000/default.nix
index 0c9459772186..8f63e00e7997 100644
--- a/nixpkgs/pkgs/development/python-modules/pg8000/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pg8000/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , scramp
@@ -19,7 +19,7 @@ buildPythonPackage rec {
 
   propagatedBuildInputs = [ passlib scramp ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://github.com/tlocke/pg8000";
     description = "PostgreSQL interface library, for asyncio";
     maintainers = with maintainers; [ domenkozar ];
diff --git a/nixpkgs/pkgs/development/python-modules/pgpdump/default.nix b/nixpkgs/pkgs/development/python-modules/pgpdump/default.nix
index 0f200409622a..d795cc3678f7 100644
--- a/nixpkgs/pkgs/development/python-modules/pgpdump/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pgpdump/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 }:
@@ -15,7 +15,7 @@ buildPythonPackage rec {
   # Disabling check because of: https://github.com/toofishes/python-pgpdump/issues/18
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Python library for parsing PGP packets";
     homepage = "https://github.com/toofishes/python-pgpdump";
     license = licenses.bsd3;
diff --git a/nixpkgs/pkgs/development/python-modules/pgpy/default.nix b/nixpkgs/pkgs/development/python-modules/pgpy/default.nix
index 9067817a3ba9..2c527d87d186 100644
--- a/nixpkgs/pkgs/development/python-modules/pgpy/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pgpy/default.nix
@@ -1,7 +1,6 @@
 { lib, isPy3k, fetchFromGitHub, buildPythonPackage
 , six, enum34, pyasn1, cryptography, singledispatch
-, fetchPypi
-, gpgme, flake8, pytest, pytestcov, pep8-naming, pytest-ordering }:
+, fetchPypi, pytestCheckHook }:
 
 buildPythonPackage rec {
   pname = "pgpy";
@@ -22,17 +21,10 @@ buildPythonPackage rec {
   ] ++ lib.optional (!isPy3k) enum34;
 
   checkInputs = [
-    gpgme
-    flake8
-    pytest
-    pytestcov
-    pep8-naming
-    pytest-ordering
+    pytestCheckHook
   ];
 
-  checkPhase = ''
-    pytest
-  '';
+  disabledTests = [ "test_sign_string" "test_verify_string" ];
 
   meta = with lib; {
     homepage = "https://github.com/SecurityInnovation/PGPy";
diff --git a/nixpkgs/pkgs/development/python-modules/pgsanity/default.nix b/nixpkgs/pkgs/development/python-modules/pgsanity/default.nix
index f7212493e59c..26e5eb2bd6ac 100644
--- a/nixpkgs/pkgs/development/python-modules/pgsanity/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pgsanity/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib
 , python
 , fetchPypi
 , buildPythonPackage
@@ -20,7 +20,7 @@ buildPythonPackage rec {
   checkInputs = [ postgresql ];
   propagatedBuildInputs = [ postgresql ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://github.com/markdrago/pgsanity";
     description = "Checks the syntax of Postgresql SQL files";
     longDescription = ''
@@ -30,7 +30,7 @@ buildPythonPackage rec {
       run it through ecpg and
       let ecpg report on the syntax errors of the SQL.
     '';
-    license = stdenv.lib.licenses.mit;
+    license = licenses.mit;
     maintainers = with maintainers; [ nalbyuites ];
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/pgspecial/default.nix b/nixpkgs/pkgs/development/python-modules/pgspecial/default.nix
index 61ab5532ca9d..796a38198814 100644
--- a/nixpkgs/pkgs/development/python-modules/pgspecial/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pgspecial/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi, pytest, psycopg2, click, sqlparse }:
+{ lib, stdenv, buildPythonPackage, fetchPypi, pytest, psycopg2, click, sqlparse }:
 
 buildPythonPackage rec {
   pname = "pgspecial";
@@ -17,7 +17,7 @@ buildPythonPackage rec {
     py.test tests
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Meta-commands handler for Postgres Database";
     homepage = "https://pypi.python.org/pypi/pgspecial";
     license = licenses.bsd3;
diff --git a/nixpkgs/pkgs/development/python-modules/phe/default.nix b/nixpkgs/pkgs/development/python-modules/phe/default.nix
index 6a849734e908..5a00a4ccb099 100644
--- a/nixpkgs/pkgs/development/python-modules/phe/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/phe/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi, isPyPy, isPy3k, click, gmpy2, numpy } :
+{ lib, stdenv, buildPythonPackage, fetchPypi, isPyPy, isPy3k, click, gmpy2, numpy } :
 
 let
   pname = "phe";
@@ -21,7 +21,7 @@ buildPythonPackage {
   # 29/233 tests fail
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "A library for Partially Homomorphic Encryption in Python";
     homepage = "https://github.com/n1analytics/python-paillier";
     license = licenses.gpl3;
diff --git a/nixpkgs/pkgs/development/python-modules/phonenumbers/default.nix b/nixpkgs/pkgs/development/python-modules/phonenumbers/default.nix
index 62149a788665..354ca2796e19 100644
--- a/nixpkgs/pkgs/development/python-modules/phonenumbers/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/phonenumbers/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchPypi, buildPythonPackage }:
+{ lib, buildPythonPackage, fetchPypi }:
 
 buildPythonPackage rec {
   pname = "phonenumbers";
@@ -9,10 +9,10 @@ buildPythonPackage rec {
     sha256 = "96d02120a3481e22d8a8eb5e4595ceec1930855749f6e4a06ef931881f59f562";
   };
 
-  meta = {
+  meta = with lib; {
     description = "Python version of Google's common library for parsing, formatting, storing and validating international phone numbers";
     homepage    = "https://github.com/daviddrysdale/python-phonenumbers";
-    license     = stdenv.lib.licenses.asl20;
-    maintainers = with stdenv.lib.maintainers; [ fadenb ];
+    license     = licenses.asl20;
+    maintainers = with maintainers; [ fadenb ];
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/phonopy/default.nix b/nixpkgs/pkgs/development/python-modules/phonopy/default.nix
index 1a768b7cf57f..03e0c54caab7 100644
--- a/nixpkgs/pkgs/development/python-modules/phonopy/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/phonopy/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, python, fetchPypi, numpy, pyyaml, matplotlib, h5py, spglib, pytestCheckHook }:
+{ lib, stdenv, buildPythonPackage, python, fetchPypi, numpy, pyyaml, matplotlib, h5py, spglib, pytestCheckHook }:
 
 buildPythonPackage rec {
   pname = "phonopy";
@@ -20,7 +20,7 @@ buildPythonPackage rec {
     rm -r phonopy
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "A package for phonon calculations at harmonic and quasi-harmonic levels";
     homepage = "https://atztogo.github.io/phonopy/";
     license = licenses.bsd0;
diff --git a/nixpkgs/pkgs/development/python-modules/phx-class-registry/default.nix b/nixpkgs/pkgs/development/python-modules/phx-class-registry/default.nix
index db0359a1d4fc..9ed84e86371c 100644
--- a/nixpkgs/pkgs/development/python-modules/phx-class-registry/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/phx-class-registry/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi, isPy27, pytestCheckHook }:
+{ lib, stdenv, buildPythonPackage, fetchPypi, isPy27, pytestCheckHook }:
 
 buildPythonPackage rec {
   pname = "phx-class-registry";
@@ -19,7 +19,7 @@ buildPythonPackage rec {
     "test_len"
   ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Registry pattern for Python classes, with setuptools entry points integration";
     homepage = "https://github.com/todofixthis/class-registry";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/pickleshare/default.nix b/nixpkgs/pkgs/development/python-modules/pickleshare/default.nix
index 496d20d52e3c..2151e13b960d 100644
--- a/nixpkgs/pkgs/development/python-modules/pickleshare/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pickleshare/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , pathpy
@@ -16,12 +16,12 @@ buildPythonPackage rec {
   };
 
   propagatedBuildInputs = [ pathpy ]
-    ++ stdenv.lib.optional (pythonOlder "3.4") pathlib2;
+    ++ lib.optional (pythonOlder "3.4") pathlib2;
 
   # No proper test suite
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Tiny 'shelve'-like database with concurrency support";
     homepage = "https://github.com/vivainio/pickleshare";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/pid/default.nix b/nixpkgs/pkgs/development/python-modules/pid/default.nix
index e934ea4577b4..95aca29da5d1 100644
--- a/nixpkgs/pkgs/development/python-modules/pid/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pid/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , nose
@@ -18,7 +18,7 @@ buildPythonPackage rec {
   # No tests included
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Pidfile featuring stale detection and file-locking";
     homepage = "https://github.com/trbs/pid/";
     license = licenses.asl20;
diff --git a/nixpkgs/pkgs/development/python-modules/piep/default.nix b/nixpkgs/pkgs/development/python-modules/piep/default.nix
index 667a8e3b7371..c4fd24d070e6 100644
--- a/nixpkgs/pkgs/development/python-modules/piep/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/piep/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , nose
@@ -17,7 +17,7 @@ buildPythonPackage rec {
   propagatedBuildInputs = [ pygments ];
   checkInputs = [ nose ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Bringing the power of python to stream editing";
     homepage = "https://github.com/timbertson/piep";
     maintainers = with maintainers; [ timbertson ];
diff --git a/nixpkgs/pkgs/development/python-modules/piexif/default.nix b/nixpkgs/pkgs/development/python-modules/piexif/default.nix
index af4b539d4574..440df36384c9 100644
--- a/nixpkgs/pkgs/development/python-modules/piexif/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/piexif/default.nix
@@ -1,19 +1,29 @@
-{ stdenv, buildPythonPackage, fetchPypi, pillow }:
+{ lib, buildPythonPackage, fetchFromGitHub, fetchpatch, pillow }:
 
 buildPythonPackage rec {
   pname = "piexif";
   version = "1.1.3";
 
+  # patch does not apply to PyPI sdist due to different line endings
+  src = fetchFromGitHub {
+    owner = "hMatoba";
+    repo = "Piexif";
+    rev = version;
+    sha256 = "1akmaxq1cjr8wghwaaql1bd3sajl8psshl58lprgfsigrvnklp8b";
+  };
+
+  patches = [
+    # Fix tests with Pillow >= 7.2.0: https://github.com/hMatoba/Piexif/pull/109
+    (fetchpatch {
+      url = "https://github.com/hMatoba/Piexif/commit/5209b53e9689ce28dcd045f384633378d619718f.patch";
+      sha256 = "0ak571jf76r1vszp2g3cd5c16fz2zkbi43scayy933m5qdrhd8g1";
+    })
+  ];
+
   # Pillow needed for unit tests
   checkInputs = [ pillow ];
 
-  src = fetchPypi {
-    inherit pname version;
-    extension = "zip";
-    sha256 = "06sz58q4mrw472p8fbnq7wsj8zpi5js5r8phm2hiwfmz0v33bjw3";
-  };
-
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Simplify Exif manipulations with Python";
     homepage = "https://github.com/hMatoba/Piexif";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/pika-pool/default.nix b/nixpkgs/pkgs/development/python-modules/pika-pool/default.nix
index c13490fb3e80..a36fcdf18bb5 100644
--- a/nixpkgs/pkgs/development/python-modules/pika-pool/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pika-pool/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi
+{ lib, stdenv, buildPythonPackage, fetchPypi
 , pika
 }:
 
@@ -19,7 +19,7 @@ buildPythonPackage rec {
   doCheck = false;
 
   propagatedBuildInputs = [ pika ];
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://github.com/bninja/pika-pool";
     license = licenses.bsdOriginal;
     description = "Pools for pikas.";
diff --git a/nixpkgs/pkgs/development/python-modules/pika/default.nix b/nixpkgs/pkgs/development/python-modules/pika/default.nix
index 8b0807e3569b..ec8310bdb55f 100644
--- a/nixpkgs/pkgs/development/python-modules/pika/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pika/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , nose
@@ -18,7 +18,7 @@ buildPythonPackage rec {
 
   checkInputs = [ nose mock twisted tornado ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Pure-Python implementation of the AMQP 0-9-1 protocol";
     homepage = "https://pika.readthedocs.org";
     license = licenses.bsd3;
diff --git a/nixpkgs/pkgs/development/python-modules/pikepdf/default.nix b/nixpkgs/pkgs/development/python-modules/pikepdf/default.nix
index a5f512fae97f..ff2a2ce4c5e7 100644
--- a/nixpkgs/pkgs/development/python-modules/pikepdf/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pikepdf/default.nix
@@ -18,7 +18,7 @@
 , qpdf
 , setuptools-scm-git-archive
 , setuptools_scm
-, stdenv
+, lib, stdenv
 }:
 
 buildPythonPackage rec {
@@ -68,7 +68,7 @@ buildPythonPackage rec {
     HOME=$TMPDIR
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://github.com/pikepdf/pikepdf";
     description = "Read and write PDFs with Python, powered by qpdf";
     license = licenses.mpl20;
diff --git a/nixpkgs/pkgs/development/python-modules/pilkit/default.nix b/nixpkgs/pkgs/development/python-modules/pilkit/default.nix
index 019d5551a3a6..4a3c682c1229 100644
--- a/nixpkgs/pkgs/development/python-modules/pilkit/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pilkit/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , pillow
@@ -26,7 +26,7 @@ buildPythonPackage rec {
 
   buildInputs = [ pillow nose_progressive nose mock blessings ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://github.com/matthewwithanm/pilkit/";
     description = "A collection of utilities and processors for the Python Imaging Libary";
     license = licenses.bsd0;
diff --git a/nixpkgs/pkgs/development/python-modules/pillow/6.nix b/nixpkgs/pkgs/development/python-modules/pillow/6.nix
index 64f162c24eb7..0e3fabf1fbca 100644
--- a/nixpkgs/pkgs/development/python-modules/pillow/6.nix
+++ b/nixpkgs/pkgs/development/python-modules/pillow/6.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi, isPyPy
+{ lib, stdenv, buildPythonPackage, fetchPypi, isPyPy
 , olefile
 , freetype, libjpeg, zlib, libtiff, libwebp, tcl, lcms2, tk, libX11
 , openjpeg, libimagequant
@@ -22,7 +22,7 @@ buildPythonPackage rec {
 
   checkPhase = ''
     runHook preCheck
-    python -m pytest -v -x -W always${stdenv.lib.optionalString stdenv.isDarwin " --deselect=Tests/test_file_icns.py::TestFileIcns::test_save --deselect=Tests/test_imagegrab.py::TestImageGrab::test_grab"}
+    python -m pytest -v -x -W always${lib.optionalString stdenv.isDarwin " --deselect=Tests/test_file_icns.py::TestFileIcns::test_save --deselect=Tests/test_imagegrab.py::TestImageGrab::test_grab"}
     runHook postCheck
   '';
 
@@ -32,7 +32,7 @@ buildPythonPackage rec {
 
   buildInputs = [
     freetype libjpeg openjpeg libimagequant zlib libtiff libwebp tcl lcms2 ]
-    ++ stdenv.lib.optionals (isPyPy) [ tk libX11 ];
+    ++ lib.optionals (isPyPy) [ tk libX11 ];
 
   # NOTE: we use LCMS_ROOT as WEBP root since there is not other setting for webp.
   # NOTE: The Pillow install script will, by default, add paths like /usr/lib
@@ -61,13 +61,13 @@ buildPythonPackage rec {
     export CFLAGS="-I${libwebp}/include"
   ''
   # Remove impurities
-  + stdenv.lib.optionalString stdenv.isDarwin ''
+  + lib.optionalString stdenv.isDarwin ''
     substituteInPlace setup.py \
       --replace '"/Library/Frameworks",' "" \
       --replace '"/System/Library/Frameworks"' ""
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://python-pillow.github.io/";
     description = "Fork of The Python Imaging Library (PIL)";
     longDescription = ''
diff --git a/nixpkgs/pkgs/development/python-modules/pillow/default.nix b/nixpkgs/pkgs/development/python-modules/pillow/default.nix
index 199bdae8fc25..4084df19404b 100644
--- a/nixpkgs/pkgs/development/python-modules/pillow/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pillow/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi, isPyPy
+{ lib, stdenv, buildPythonPackage, fetchPypi, isPyPy
 , olefile
 , freetype, libjpeg, zlib, libtiff, libwebp, tcl, lcms2, tk, libX11
 , openjpeg, libimagequant
@@ -24,7 +24,7 @@ buildPythonPackage rec {
   '';
 
   # Disable darwin tests which require executables: `iconutil` and `screencapture`
-  disabledTests = stdenv.lib.optionals stdenv.isDarwin [ "test_save" "test_grab" "test_grabclipboard" ];
+  disabledTests = lib.optionals stdenv.isDarwin [ "test_save" "test_grab" "test_grabclipboard" ];
 
   propagatedBuildInputs = [ olefile ];
 
@@ -32,7 +32,7 @@ buildPythonPackage rec {
 
   buildInputs = [
     freetype libjpeg openjpeg libimagequant zlib libtiff libwebp tcl lcms2 ]
-    ++ stdenv.lib.optionals (isPyPy) [ tk libX11 ];
+    ++ lib.optionals (isPyPy) [ tk libX11 ];
 
   # NOTE: we use LCMS_ROOT as WEBP root since there is not other setting for webp.
   # NOTE: The Pillow install script will, by default, add paths like /usr/lib
@@ -61,13 +61,13 @@ buildPythonPackage rec {
     export CFLAGS="-I${libwebp}/include"
   ''
   # Remove impurities
-  + stdenv.lib.optionalString stdenv.isDarwin ''
+  + lib.optionalString stdenv.isDarwin ''
     substituteInPlace setup.py \
       --replace '"/Library/Frameworks",' "" \
       --replace '"/System/Library/Frameworks"' ""
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://python-pillow.org/";
     description = "The friendly PIL fork (Python Imaging Library)";
     longDescription = ''
diff --git a/nixpkgs/pkgs/development/python-modules/pillowfight/default.nix b/nixpkgs/pkgs/development/python-modules/pillowfight/default.nix
index ed0daf123d46..9e23f69d19c5 100644
--- a/nixpkgs/pkgs/development/python-modules/pillowfight/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pillowfight/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , pillow
@@ -15,7 +15,7 @@ buildPythonPackage rec {
 
   propagatedBuildInputs = [ pillow ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Eases the transition from PIL to Pillow for Python packages";
     homepage = "https://github.com/beanbaginc/pillowfight";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/pims/default.nix b/nixpkgs/pkgs/development/python-modules/pims/default.nix
index 76eaa4fac698..d2a5641acff5 100644
--- a/nixpkgs/pkgs/development/python-modules/pims/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pims/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , slicerator
@@ -24,7 +24,7 @@ buildPythonPackage rec {
   # not everything packaged with pypi release
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://github.com/soft-matter/pims";
     description = "Python Image Sequence: Load video and sequential images in many formats with a simple, consistent interface";
     license = licenses.bsdOriginal;
diff --git a/nixpkgs/pkgs/development/python-modules/pint/default.nix b/nixpkgs/pkgs/development/python-modules/pint/default.nix
index bb2a20cf62f3..c0aa86a3763d 100644
--- a/nixpkgs/pkgs/development/python-modules/pint/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pint/default.nix
@@ -25,7 +25,7 @@ buildPythonPackage rec {
   disabled = pythonOlder "3.6";
 
   nativeBuildInputs = [ setuptools_scm ];
-  
+
   propagatedBuildInputs = [ packaging ]
     ++ lib.optionals (pythonOlder "3.8") [ importlib-metadata ];
 
diff --git a/nixpkgs/pkgs/development/python-modules/pip-tools/default.nix b/nixpkgs/pkgs/development/python-modules/pip-tools/default.nix
index 0952c7056c31..4ea6f75932cd 100644
--- a/nixpkgs/pkgs/development/python-modules/pip-tools/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pip-tools/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchPypi, buildPythonPackage, pip, pytest, click, six
+{ lib, fetchPypi, buildPythonPackage, pip, pytest, click, six
 , setuptools_scm, git, glibcLocales, mock }:
 
 buildPythonPackage rec {
@@ -14,7 +14,7 @@ buildPythonPackage rec {
   checkInputs = [ pytest git glibcLocales mock ];
   propagatedBuildInputs = [ pip click six setuptools_scm ];
 
-  disabledTests = stdenv.lib.concatMapStringsSep " and " (s: "not " + s) [
+  disabledTests = lib.concatMapStringsSep " and " (s: "not " + s) [
     # Depend on network tests:
     "test_allow_unsafe_option" #paramaterized, but all fail
     "test_annotate_option" #paramaterized, but all fail
@@ -42,7 +42,7 @@ buildPythonPackage rec {
     py.test -k "${disabledTests}"
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Keeps your pinned dependencies fresh";
     homepage = "https://github.com/jazzband/pip-tools/";
     license = licenses.bsd3;
diff --git a/nixpkgs/pkgs/development/python-modules/pipx/default.nix b/nixpkgs/pkgs/development/python-modules/pipx/default.nix
index 122f34edb604..c29847c9f29c 100644
--- a/nixpkgs/pkgs/development/python-modules/pipx/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pipx/default.nix
@@ -5,12 +5,13 @@
 , userpath
 , argcomplete
 , packaging
+, importlib-metadata
 , pytestCheckHook
 }:
 
 buildPythonPackage rec {
   pname = "pipx";
-  version = "0.15.6.0";
+  version = "0.16.0.0";
 
   disabled = pythonOlder "3.6";
 
@@ -19,10 +20,16 @@ buildPythonPackage rec {
     owner = "pipxproject";
     repo = pname;
     rev = version;
-    sha256 = "1yffswayjfkmq86ygisja0mkg55pqj9pdml5nc0z05222sfnvn1a";
+    sha256 = "08mn7vm8iw20pg0gfn491y1jx8wcyjijps6f1hy7ipzd5ckynscn";
   };
 
-  propagatedBuildInputs = [ userpath argcomplete packaging ];
+  propagatedBuildInputs = [
+    userpath
+    argcomplete
+    packaging
+  ] ++ lib.optionals (pythonOlder "3.8") [
+    importlib-metadata
+  ];
 
   checkInputs = [ pytestCheckHook ];
 
@@ -31,6 +38,7 @@ buildPythonPackage rec {
   '';
 
   # disable tests, which require internet connection
+  pytestFlagsArray = [ "--ignore=tests/test_install_all_packages.py" ];
   disabledTests = [
     "install"
     "inject"
@@ -38,10 +46,12 @@ buildPythonPackage rec {
     "missing_interpreter"
     "cache"
     "internet"
+    "run"
     "runpip"
     "upgrade"
     "suffix"
     "legacy_venv"
+    "determination"
   ];
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/development/python-modules/pivy/default.nix b/nixpkgs/pkgs/development/python-modules/pivy/default.nix
index 3d3f93f21a27..aae90d2f8b49 100644
--- a/nixpkgs/pkgs/development/python-modules/pivy/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pivy/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchFromGitHub, pkgs, qtbase, qmake, soqt }:
+{ lib, stdenv, buildPythonPackage, fetchFromGitHub, pkgs, qtbase, qmake, soqt }:
 
 buildPythonPackage rec {
   pname = "pivy";
@@ -38,7 +38,7 @@ buildPythonPackage rec {
       \$'{Coin_INCLUDE_DIR}'\;\$'{SoQt_INCLUDE_DIRS}'
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://github.com/coin3d/pivy/";
     description = "A Python binding for Coin";
     license = licenses.bsd0;
diff --git a/nixpkgs/pkgs/development/python-modules/pkgconfig/default.nix b/nixpkgs/pkgs/development/python-modules/pkgconfig/default.nix
index 05f13e8878a3..1b03f720fbcd 100644
--- a/nixpkgs/pkgs/development/python-modules/pkgconfig/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pkgconfig/default.nix
@@ -1,10 +1,10 @@
-{ lib, buildPythonPackage, fetchPypi, nose, pkgconfig }:
+{ lib, buildPythonPackage, fetchPypi, pkg-config }:
 
 buildPythonPackage rec {
   pname = "pkgconfig";
   version = "1.5.1";
 
-  inherit (pkgconfig)
+  inherit (pkg-config)
     setupHooks
     wrapperName
     suffixSalt
@@ -17,19 +17,18 @@ buildPythonPackage rec {
     sha256 = "97bfe3d981bab675d5ea3ef259045d7919c93897db7d3b59d4e8593cba8d354f";
   };
 
-  checkInputs = [ nose ];
 
-  nativeBuildInputs = [ pkgconfig ];
+  propagatedNativeBuildInputs = [ pkg-config ];
 
-  checkPhase = ''
-    nosetests
-  '';
+  doCheck = false;
 
   patches = [ ./executable.patch ];
   postPatch = ''
-    substituteInPlace pkgconfig/pkgconfig.py --replace 'PKG_CONFIG_EXE = "pkg-config"' 'PKG_CONFIG_EXE = "${pkgconfig}/bin/${pkgconfig.targetPrefix}pkg-config"'
+    substituteInPlace pkgconfig/pkgconfig.py --replace 'PKG_CONFIG_EXE = "pkg-config"' 'PKG_CONFIG_EXE = "${pkg-config}/bin/${pkg-config.targetPrefix}pkg-config"'
   '';
 
+  pythonImportsCheck = [ "pkgconfig" ];
+
   meta = with lib; {
     description = "Interface Python with pkg-config";
     homepage = "https://github.com/matze/pkgconfig";
diff --git a/nixpkgs/pkgs/development/python-modules/pkginfo/default.nix b/nixpkgs/pkgs/development/python-modules/pkginfo/default.nix
index 7a0fc2080702..dbf487c5d3aa 100644
--- a/nixpkgs/pkgs/development/python-modules/pkginfo/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pkginfo/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi }:
+{ lib, stdenv, buildPythonPackage, fetchPypi }:
 
 buildPythonPackage rec {
   pname = "pkginfo";
@@ -11,7 +11,7 @@ buildPythonPackage rec {
 
   doCheck = false; # I don't know why, but with doCheck = true it fails.
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://pypi.python.org/pypi/pkginfo";
     license = licenses.mit;
     description = "Query metadatdata from sdists / bdists / installed packages";
diff --git a/nixpkgs/pkgs/development/python-modules/pkuseg/default.nix b/nixpkgs/pkgs/development/python-modules/pkuseg/default.nix
index 3b1c2bd5bce4..8e3e301793aa 100644
--- a/nixpkgs/pkgs/development/python-modules/pkuseg/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pkuseg/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , isPy3k
@@ -27,7 +27,7 @@ buildPythonPackage rec {
 
   pythonImportsCheck = [ "pkuseg" ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Toolkit for multi-domain Chinese word segmentation";
     homepage = "https://github.com/lancopku/pkuseg-python";
     license = licenses.unfree;
diff --git a/nixpkgs/pkgs/development/python-modules/plac/default.nix b/nixpkgs/pkgs/development/python-modules/plac/default.nix
index dbcd7f213008..9e2c66d9d1ed 100644
--- a/nixpkgs/pkgs/development/python-modules/plac/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/plac/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , python
@@ -17,7 +17,7 @@ buildPythonPackage rec {
       ${python.interpreter} -m unittest discover -p "*test_plac*"
     '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Parsing the Command Line the Easy Way";
     homepage = "https://github.com/micheles/plac";
     license = licenses.bsdOriginal;
diff --git a/nixpkgs/pkgs/development/python-modules/pluginbase/default.nix b/nixpkgs/pkgs/development/python-modules/pluginbase/default.nix
index c35fbf7bd13a..956ea1b720ae 100644
--- a/nixpkgs/pkgs/development/python-modules/pluginbase/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pluginbase/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchPypi, buildPythonPackage, pytest }:
+{ lib, stdenv, fetchPypi, buildPythonPackage, pytest }:
 
 buildPythonPackage rec {
   version = "1.0.0";
@@ -16,7 +16,7 @@ buildPythonPackage rec {
     PYTHONPATH=.. pytest
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://github.com/mitsuhiko/pluginbase";
     description = "A support library for building plugins sytems in Python";
     license = licenses.bsd3;
diff --git a/nixpkgs/pkgs/development/python-modules/plyvel/default.nix b/nixpkgs/pkgs/development/python-modules/plyvel/default.nix
index c768c606ca8a..d8537d68158a 100644
--- a/nixpkgs/pkgs/development/python-modules/plyvel/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/plyvel/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , pkgs
@@ -15,12 +15,12 @@ buildPythonPackage rec {
     sha256 = "a7a09033a0fd33ca47094e8bbe01714abfcf644f4b7a337d3970e91a2599e2c4";
   };
 
-  buildInputs = [ pkgs.leveldb ] ++ stdenv.lib.optional isPy3k pytest;
+  buildInputs = [ pkgs.leveldb ] ++ lib.optional isPy3k pytest;
 
   # no tests for python2
   doCheck = isPy3k;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Fast and feature-rich Python interface to LevelDB";
     platforms = platforms.unix;
     homepage = "https://github.com/wbolster/plyvel";
diff --git a/nixpkgs/pkgs/development/python-modules/pocket/default.nix b/nixpkgs/pkgs/development/python-modules/pocket/default.nix
index e351d26ca481..3599d3dec55d 100644
--- a/nixpkgs/pkgs/development/python-modules/pocket/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pocket/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , requests
@@ -15,7 +15,7 @@ buildPythonPackage rec {
 
   buildInputs = [ requests ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Wrapper for the pocket API";
     homepage    = "https://github.com/tapanpandita/pocket";
     license     = licenses.bsd3;
diff --git a/nixpkgs/pkgs/development/python-modules/polib/default.nix b/nixpkgs/pkgs/development/python-modules/polib/default.nix
index 304ef95a8846..f7c4e1139a86 100644
--- a/nixpkgs/pkgs/development/python-modules/polib/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/polib/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi }:
+{ lib, stdenv, buildPythonPackage, fetchPypi }:
 
 buildPythonPackage rec {
   pname = "polib";
@@ -12,7 +12,7 @@ buildPythonPackage rec {
   # error: invalid command 'test'
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "A library to manipulate gettext files (po and mo files)";
     homepage = "https://bitbucket.org/izi/polib/";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/pomegranate/default.nix b/nixpkgs/pkgs/development/python-modules/pomegranate/default.nix
index c3d5638841d6..7595730eb31b 100644
--- a/nixpkgs/pkgs/development/python-modules/pomegranate/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pomegranate/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchFromGitHub, numpy, scipy, cython, networkx, joblib, nose, pyyaml }:
+{ lib, stdenv, buildPythonPackage, fetchFromGitHub, numpy, scipy, cython, networkx, joblib, nose, pyyaml }:
 
 buildPythonPackage rec {
   pname = "pomegranate";
@@ -15,7 +15,7 @@ buildPythonPackage rec {
 
   checkInputs = [ nose ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Probabilistic and graphical models for Python, implemented in cython for speed";
     homepage = "https://github.com/jmschrei/pomegranate";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/pony/default.nix b/nixpkgs/pkgs/development/python-modules/pony/default.nix
index 1ed0a7cafffb..7a734927ee1e 100644
--- a/nixpkgs/pkgs/development/python-modules/pony/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pony/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, python, buildPythonPackage, fetchPypi }:
+{ lib, stdenv, python, buildPythonPackage, fetchPypi }:
 
 buildPythonPackage rec {
   pname = "pony";
@@ -16,7 +16,7 @@ buildPythonPackage rec {
     rm -rf $out/${python.sitePackages}/pony/orm/tests
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Pony is a Python ORM with beautiful query syntax";
     homepage = "https://ponyorm.org/";
     maintainers = with maintainers; [ d-goldin xvapx ];
diff --git a/nixpkgs/pkgs/development/python-modules/pooch/default.nix b/nixpkgs/pkgs/development/python-modules/pooch/default.nix
index 6530cbd4a5d1..282239d9890b 100644
--- a/nixpkgs/pkgs/development/python-modules/pooch/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pooch/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , isPy27
 , fetchPypi
@@ -40,7 +40,7 @@ buildPythonPackage rec {
     "integration"
   ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "A friend to fetch your data files.";
     homepage = "https://github.com/fatiando/pooch";
     license = licenses.bsd3;
diff --git a/nixpkgs/pkgs/development/python-modules/poolsense/default.nix b/nixpkgs/pkgs/development/python-modules/poolsense/default.nix
new file mode 100644
index 000000000000..0ffdf8952277
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/poolsense/default.nix
@@ -0,0 +1,28 @@
+{ lib
+, aiohttp
+, buildPythonPackage
+, fetchPypi
+}:
+
+buildPythonPackage rec {
+  pname = "poolsense";
+  version = "0.0.8";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "09y4fq0gdvgkfsykpxnvmfv92dpbknnq5v82spz43ak6hjnhgcyp";
+  };
+
+  propagatedBuildInputs = [ aiohttp ];
+
+  # Project has no tests
+  doCheck = false;
+  pythonImportsCheck = [ "poolsense" ];
+
+  meta = with lib; {
+    description = "Python module to access PoolSense device";
+    homepage = "https://github.com/haemishkyd/poolsense";
+    license = with licenses; [ mit ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/poppler-qt5/default.nix b/nixpkgs/pkgs/development/python-modules/poppler-qt5/default.nix
index 6f12a9e69810..4aaaea406774 100644
--- a/nixpkgs/pkgs/development/python-modules/poppler-qt5/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/poppler-qt5/default.nix
@@ -1,4 +1,4 @@
-{ buildPythonPackage, fetchPypi, stdenv, sip, qtbase, pyqt5, poppler, pkgconfig, fetchpatch
+{ buildPythonPackage, fetchPypi, lib, stdenv, sip, qtbase, pyqt5, poppler, pkg-config, fetchpatch
 , substituteAll
 }:
 
@@ -28,13 +28,13 @@ buildPythonPackage rec {
   ];
 
   buildInputs = [ qtbase.dev poppler ];
-  nativeBuildInputs = [ pkgconfig ];
+  nativeBuildInputs = [ pkg-config ];
   propagatedBuildInputs = [ sip pyqt5.dev ];
 
   # no tests, just bindings for `poppler_qt5`
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://github.com/wbsoft/python-poppler-qt5";
     license = licenses.gpl2;
     maintainers = with maintainers; [ ];
diff --git a/nixpkgs/pkgs/development/python-modules/portend/default.nix b/nixpkgs/pkgs/development/python-modules/portend/default.nix
index 280cadf4db4e..10b30d05fa3e 100644
--- a/nixpkgs/pkgs/development/python-modules/portend/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/portend/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi
+{ lib, stdenv, buildPythonPackage, fetchPypi
 , pytest, setuptools_scm, tempora, pytest-black, pytestcov }:
 
 buildPythonPackage rec {
@@ -27,7 +27,7 @@ buildPythonPackage rec {
   # Some of the tests use localhost networking.
   __darwinAllowLocalNetworking = true;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Monitor TCP ports for bound or unbound states";
     homepage = "https://github.com/jaraco/portend";
     license = licenses.bsd3;
diff --git a/nixpkgs/pkgs/development/python-modules/posix_ipc/default.nix b/nixpkgs/pkgs/development/python-modules/posix_ipc/default.nix
index 2be2a89cc6da..2fb6128dc1b1 100644
--- a/nixpkgs/pkgs/development/python-modules/posix_ipc/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/posix_ipc/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 }:
@@ -12,7 +12,7 @@ buildPythonPackage rec {
     sha256 = "6cddb1ce2cf4aae383f2a0079c26c69bee257fe2720f372201ef047f8ceb8b97";
   };
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "POSIX IPC primitives (semaphores, shared memory and message queues)";
     license = licenses.bsd3;
     homepage = "http://semanchuk.com/philip/posix_ipc/";
diff --git a/nixpkgs/pkgs/development/python-modules/poster3/default.nix b/nixpkgs/pkgs/development/python-modules/poster3/default.nix
index 269995717aa4..09e8055bdd91 100644
--- a/nixpkgs/pkgs/development/python-modules/poster3/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/poster3/default.nix
@@ -15,8 +15,7 @@ buildPythonPackage rec {
   disabled = !isPy3k;
 
   src = fetchPypi {
-    inherit pname version;
-    format = "wheel";
+    inherit pname version format;
     python = "py3";
     sha256 = "1b27d7d63e3191e5d7238631fc828e4493590e94dcea034e386c079d853cce14";
   };
diff --git a/nixpkgs/pkgs/development/python-modules/potr/default.nix b/nixpkgs/pkgs/development/python-modules/potr/default.nix
index adcb71104676..9f2774b9a607 100644
--- a/nixpkgs/pkgs/development/python-modules/potr/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/potr/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchPypi, buildPythonPackage, pycrypto }:
+{ lib, stdenv, fetchPypi, buildPythonPackage, pycrypto }:
 
 buildPythonPackage rec {
   pname = "python-potr";
@@ -11,7 +11,7 @@ buildPythonPackage rec {
 
   propagatedBuildInputs = [ pycrypto ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "A pure Python OTR implementation";
     homepage = "http://python-otr.pentabarf.de/";
     license = licenses.lgpl3Plus;
diff --git a/nixpkgs/pkgs/development/python-modules/power/default.nix b/nixpkgs/pkgs/development/python-modules/power/default.nix
index b3d750f7e652..d1998faf6b64 100644
--- a/nixpkgs/pkgs/development/python-modules/power/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/power/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 }:
@@ -15,7 +15,7 @@ buildPythonPackage rec {
   # Tests can't work because there is no power information available.
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Cross-platform system power status information";
     homepage = "https://github.com/Kentzo/Power";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/pox/default.nix b/nixpkgs/pkgs/development/python-modules/pox/default.nix
index e4869a8f46cc..e7013154f998 100644
--- a/nixpkgs/pkgs/development/python-modules/pox/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pox/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 }:
@@ -12,7 +12,7 @@ buildPythonPackage rec {
     sha256 = "06afe1a4a1dbf8b47f7ad5a3c1d8ada9104c64933a1da11338269a2bd8642778";
   };
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Utilities for filesystem exploration and automated builds";
     license = licenses.bsd3;
     homepage = "https://github.com/uqfoundation/pox/";
diff --git a/nixpkgs/pkgs/development/python-modules/poyo/default.nix b/nixpkgs/pkgs/development/python-modules/poyo/default.nix
index 3eff663aed9c..d600e46c6b42 100644
--- a/nixpkgs/pkgs/development/python-modules/poyo/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/poyo/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 }:
@@ -12,7 +12,7 @@ buildPythonPackage rec {
     sha256 = "1pflivs6j22frz0v3dqxnvc8yb8fb52g11lqr88z0i8cg2m5csg2";
   };
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://github.com/hackebrot/poyo";
     description = "A lightweight YAML Parser for Python";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/ppft/default.nix b/nixpkgs/pkgs/development/python-modules/ppft/default.nix
index d8e8f33181f6..ba23948fdb8c 100644
--- a/nixpkgs/pkgs/development/python-modules/ppft/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/ppft/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , python
@@ -23,7 +23,7 @@ buildPythonPackage rec {
     ${python.interpreter} -m ppft.tests
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Distributed and parallel python";
     homepage = "https://github.com/uqfoundation";
     license = licenses.bsd3;
diff --git a/nixpkgs/pkgs/development/python-modules/ppscore/default.nix b/nixpkgs/pkgs/development/python-modules/ppscore/default.nix
index 3fd047402ee7..00542c6e90e1 100644
--- a/nixpkgs/pkgs/development/python-modules/ppscore/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/ppscore/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchFromGitHub
 , isPy27
@@ -26,7 +26,7 @@ buildPythonPackage rec {
     scikitlearn
   ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "A Python implementation of the Predictive Power Score (PPS)";
     homepage = "https://github.com/8080labs/ppscore/";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/praw/6.3.nix b/nixpkgs/pkgs/development/python-modules/praw/6.3.nix
index 6c2201d1f1d2..00182eda0379 100644
--- a/nixpkgs/pkgs/development/python-modules/praw/6.3.nix
+++ b/nixpkgs/pkgs/development/python-modules/praw/6.3.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchFromGitHub
+{ lib, stdenv, buildPythonPackage, fetchFromGitHub
 , betamax
 , betamax-serializers
 , betamax-matchers
@@ -44,7 +44,7 @@ buildPythonPackage rec {
     six
   ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Python Reddit API wrapper";
     homepage = "https://praw.readthedocs.org/";
     license = licenses.bsd2;
diff --git a/nixpkgs/pkgs/development/python-modules/praw/default.nix b/nixpkgs/pkgs/development/python-modules/praw/default.nix
index 698c9cc1ccf6..61b869e87fb2 100644
--- a/nixpkgs/pkgs/development/python-modules/praw/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/praw/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchFromGitHub
+{ lib, stdenv, buildPythonPackage, fetchFromGitHub
 , betamax
 , betamax-serializers
 , betamax-matchers
@@ -44,7 +44,7 @@ buildPythonPackage rec {
     six
   ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Python Reddit API wrapper";
     homepage = "https://praw.readthedocs.org/";
     license = licenses.bsd2;
diff --git a/nixpkgs/pkgs/development/python-modules/prawcore/default.nix b/nixpkgs/pkgs/development/python-modules/prawcore/default.nix
index 7be75eae90a5..533c31d87ce2 100644
--- a/nixpkgs/pkgs/development/python-modules/prawcore/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/prawcore/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi, isPy27
+{ lib, stdenv, buildPythonPackage, fetchPypi, isPy27
 , requests
 , testfixtures, mock, requests_toolbelt
 , betamax, betamax-serializers, betamax-matchers, pytest
@@ -32,7 +32,7 @@ buildPythonPackage rec {
     pytest
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Low-level communication layer for PRAW";
     homepage = "https://praw.readthedocs.org/";
     license = licenses.gpl3;
diff --git a/nixpkgs/pkgs/development/python-modules/preggy/default.nix b/nixpkgs/pkgs/development/python-modules/preggy/default.nix
index a3ca7d15c77e..a2144f303be7 100644
--- a/nixpkgs/pkgs/development/python-modules/preggy/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/preggy/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi, six, unidecode, nose, yanc }:
+{ lib, stdenv, buildPythonPackage, fetchPypi, six, unidecode, nose, yanc }:
 
 buildPythonPackage rec {
   pname = "preggy";
@@ -16,7 +16,7 @@ buildPythonPackage rec {
     nosetests .
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Assertion library for Python";
     homepage = "http://heynemann.github.io/preggy/";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/preshed/default.nix b/nixpkgs/pkgs/development/python-modules/preshed/default.nix
index a544d6fab910..5d75c95d770b 100644
--- a/nixpkgs/pkgs/development/python-modules/preshed/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/preshed/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , murmurhash
@@ -30,7 +30,7 @@ buildPythonPackage rec {
     ${python.interpreter} setup.py test
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Cython hash tables that assume keys are pre-hashed";
     homepage = "https://github.com/explosion/preshed";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/pretend/default.nix b/nixpkgs/pkgs/development/python-modules/pretend/default.nix
index af5b33998315..4fe726591e60 100644
--- a/nixpkgs/pkgs/development/python-modules/pretend/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pretend/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi }:
+{ lib, stdenv, buildPythonPackage, fetchPypi }:
 
 buildPythonPackage rec {
   pname = "pretend";
@@ -12,7 +12,7 @@ buildPythonPackage rec {
   # No tests in archive
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://github.com/alex/pretend";
     license = licenses.bsd3;
   };
diff --git a/nixpkgs/pkgs/development/python-modules/prettytable/1.nix b/nixpkgs/pkgs/development/python-modules/prettytable/1.nix
index ccaa02e2f494..5b7457af9bf7 100644
--- a/nixpkgs/pkgs/development/python-modules/prettytable/1.nix
+++ b/nixpkgs/pkgs/development/python-modules/prettytable/1.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , glibcLocales
@@ -28,7 +28,7 @@ buildPythonPackage rec {
   doCheck = false;
   pythonImportsCheck = [ "prettytable" ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Simple Python library for easily displaying tabular data in a visually appealing ASCII table format";
     homepage = "http://code.google.com/p/prettytable/";
     license = licenses.bsd3;
diff --git a/nixpkgs/pkgs/development/python-modules/prettytable/default.nix b/nixpkgs/pkgs/development/python-modules/prettytable/default.nix
index bc8bd3f835d6..5a15cfd24eb0 100644
--- a/nixpkgs/pkgs/development/python-modules/prettytable/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/prettytable/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , glibcLocales
@@ -28,7 +28,7 @@ buildPythonPackage rec {
   doCheck = false;
   pythonImportsCheck = [ "prettytable" ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Simple Python library for easily displaying tabular data in a visually appealing ASCII table format";
     homepage = "http://code.google.com/p/prettytable/";
     license = licenses.bsd3;
diff --git a/nixpkgs/pkgs/development/python-modules/primer3/default.nix b/nixpkgs/pkgs/development/python-modules/primer3/default.nix
new file mode 100644
index 000000000000..e8aa83ed94d9
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/primer3/default.nix
@@ -0,0 +1,32 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, cython
+, click
+}:
+
+buildPythonPackage rec {
+  pname = "primer3";
+  version = "0.6.1";
+
+  src = fetchFromGitHub {
+    owner = "libnano";
+    repo = "primer3-py";
+    rev = version;
+    sha256 = "1glybwp9w2m1ydvaphr41gj31d8fvlh40s35galfbjqa563si72g";
+  };
+
+  nativeBuildInputs = [ cython ];
+
+  # pytestCheckHook leads to a circular import issue
+  checkInputs = [ click ];
+
+  pythonImportsCheck = [ "primer3" ];
+
+  meta = with lib; {
+    description = "Oligo analysis and primer design";
+    homepage = "https://github.com/libnano/primer3-py";
+    license = with licenses; [ gpl2Only ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/privacyidea/ldap-proxy.nix b/nixpkgs/pkgs/development/python-modules/privacyidea/ldap-proxy.nix
index ec87186a4fdd..25a81510c7dc 100644
--- a/nixpkgs/pkgs/development/python-modules/privacyidea/ldap-proxy.nix
+++ b/nixpkgs/pkgs/development/python-modules/privacyidea/ldap-proxy.nix
@@ -1,9 +1,12 @@
-{ lib, buildPythonPackage, fetchFromGitHub, twisted, ldaptor, configobj }:
+{ lib, buildPythonPackage, isPy3k, fetchFromGitHub, twisted, ldaptor, configobj }:
 
 buildPythonPackage rec {
   pname = "privacyidea-ldap-proxy";
   version = "0.6.1";
 
+  # https://github.com/privacyidea/privacyidea-ldap-proxy/issues/50
+  disabled = isPy3k;
+
   src = fetchFromGitHub {
     owner = "privacyidea";
     repo = pname;
diff --git a/nixpkgs/pkgs/development/python-modules/proboscis/default.nix b/nixpkgs/pkgs/development/python-modules/proboscis/default.nix
index 9d4ae92f2c10..00905136716f 100644
--- a/nixpkgs/pkgs/development/python-modules/proboscis/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/proboscis/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi, nose }:
+{ lib, stdenv, buildPythonPackage, fetchPypi, nose }:
 
 buildPythonPackage rec {
   pname = "proboscis";
@@ -12,7 +12,7 @@ buildPythonPackage rec {
   propagatedBuildInputs = [ nose ];
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "A Python test framework that extends Python's built-in unittest module and Nose with features from TestNG";
     homepage = "https://pypi.python.org/pypi/proboscis";
     license = licenses.asl20;
diff --git a/nixpkgs/pkgs/development/python-modules/process-tests/default.nix b/nixpkgs/pkgs/development/python-modules/process-tests/default.nix
index de43ea71fd48..4b83205d723e 100644
--- a/nixpkgs/pkgs/development/python-modules/process-tests/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/process-tests/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 }:
@@ -15,7 +15,7 @@ buildPythonPackage rec {
   # No tests
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Tools for testing processes";
     license = licenses.bsd2;
     homepage = "https://github.com/ionelmc/python-process-tests";
diff --git a/nixpkgs/pkgs/development/python-modules/proglog/default.nix b/nixpkgs/pkgs/development/python-modules/proglog/default.nix
index ef5c21f450d5..3f8c11043811 100644
--- a/nixpkgs/pkgs/development/python-modules/proglog/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/proglog/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchPypi, buildPythonPackage, tqdm }:
+{ lib, stdenv, fetchPypi, buildPythonPackage, tqdm }:
 
 buildPythonPackage rec {
   pname = "proglog";
@@ -11,7 +11,7 @@ buildPythonPackage rec {
 
   propagatedBuildInputs = [ tqdm ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Logs and progress bars manager for Python";
     homepage = "https://github.com/Edinburgh-Genome-Foundry/Proglog";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/progress/default.nix b/nixpkgs/pkgs/development/python-modules/progress/default.nix
index 9ebef268571c..2c5dbc1386e8 100644
--- a/nixpkgs/pkgs/development/python-modules/progress/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/progress/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , python
@@ -17,7 +17,7 @@ buildPythonPackage rec {
     ${python.interpreter} test_progress.py
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://github.com/verigak/progress/";
     description = "Easy to use progress bars";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/progressbar/default.nix b/nixpkgs/pkgs/development/python-modules/progressbar/default.nix
index c756a41b5d0e..a1fdddd95db8 100644
--- a/nixpkgs/pkgs/development/python-modules/progressbar/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/progressbar/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi }:
+{ lib, stdenv, buildPythonPackage, fetchPypi }:
 
 buildPythonPackage rec {
   pname = "progressbar";
@@ -12,7 +12,7 @@ buildPythonPackage rec {
   # invalid command 'test'
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://pypi.python.org/pypi/progressbar";
     description = "Text progressbar library for python";
     license = licenses.lgpl3Plus;
diff --git a/nixpkgs/pkgs/development/python-modules/progressbar2/default.nix b/nixpkgs/pkgs/development/python-modules/progressbar2/default.nix
index 55590f8bd063..cc3029ade64e 100644
--- a/nixpkgs/pkgs/development/python-modules/progressbar2/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/progressbar2/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , python
 , buildPythonPackage
 , fetchPypi
@@ -22,7 +22,7 @@ buildPythonPackage rec {
 
   pythonImportsCheck = [ "progressbar" ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://progressbar-2.readthedocs.io/en/latest/";
     description = "Text progressbar library for python";
     license = licenses.bsd3;
diff --git a/nixpkgs/pkgs/development/python-modules/progressbar231/default.nix b/nixpkgs/pkgs/development/python-modules/progressbar231/default.nix
index 5271912cc0ad..f8980647482c 100644
--- a/nixpkgs/pkgs/development/python-modules/progressbar231/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/progressbar231/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi, isPy3k }:
+{ lib, stdenv, buildPythonPackage, fetchPypi, isPy3k }:
 
 buildPythonPackage rec {
   pname = "progressbar231";
@@ -14,7 +14,7 @@ buildPythonPackage rec {
   # no tests implemented
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://pypi.python.org/pypi/progressbar231";
     description = "Text progressbar library for python";
     license = licenses.lgpl3Plus;
diff --git a/nixpkgs/pkgs/development/python-modules/progressbar33/default.nix b/nixpkgs/pkgs/development/python-modules/progressbar33/default.nix
index 5aef28447849..0b53b83f5cca 100644
--- a/nixpkgs/pkgs/development/python-modules/progressbar33/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/progressbar33/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi }:
+{ lib, stdenv, buildPythonPackage, fetchPypi }:
 
 buildPythonPackage rec {
   pname = "progressbar33";
@@ -12,7 +12,7 @@ buildPythonPackage rec {
   # no tests implemented
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://pypi.python.org/pypi/progressbar33";
     description = "Text progressbar library for python";
     license = licenses.lgpl3Plus;
diff --git a/nixpkgs/pkgs/development/python-modules/proto-plus/default.nix b/nixpkgs/pkgs/development/python-modules/proto-plus/default.nix
index 4a36b625298d..1cd732b19aea 100644
--- a/nixpkgs/pkgs/development/python-modules/proto-plus/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/proto-plus/default.nix
@@ -1,30 +1,33 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , isPy3k
 , protobuf
-, google_api_core
+, googleapis_common_protos
 , pytestCheckHook
+, pytz
 }:
 
 buildPythonPackage rec {
   pname = "proto-plus";
-  version = "1.11.0";
+  version = "1.13.0";
   disabled = !isPy3k;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "416a0f13987789333cd8760a0ee998f8eccd6d7165ee9f283d64ca2de3e8774d";
+    sha256 = "1i5jjnwpd288378h37zads08h695iwmhxm0sxbr3ln6aax97rdb1";
   };
 
   propagatedBuildInputs = [ protobuf ];
 
-  checkInputs = [ pytestCheckHook google_api_core ];
+  checkInputs = [ pytestCheckHook pytz googleapis_common_protos ];
 
-  meta = with stdenv.lib; {
+  pythonImportsCheck = [ "proto" ];
+
+  meta = with lib; {
     description = "Beautiful, idiomatic protocol buffers in Python";
     homepage = "https://github.com/googleapis/proto-plus-python";
     license = licenses.asl20;
-    maintainers = [ maintainers.ruuda ];
+    maintainers = with maintainers; [ ruuda SuperSandro2000 ];
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/protobuf/default.nix b/nixpkgs/pkgs/development/python-modules/protobuf/default.nix
index ab95eeb51f91..e7bbdd6ccdf8 100644
--- a/nixpkgs/pkgs/development/python-modules/protobuf/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/protobuf/default.nix
@@ -1,8 +1,19 @@
-{ buildPackages, stdenv, fetchpatch, python, buildPythonPackage, isPy37
-, protobuf, google_apputils, pyext, libcxx, isPy27
-, disabled, doCheck ? true }:
-
-with stdenv.lib;
+{ buildPackages
+, lib
+, stdenv
+, fetchpatch
+, python
+, buildPythonPackage
+, isPy37
+, protobuf
+, google-apputils
+, six
+, pyext
+, libcxx
+, isPy27
+, disabled
+, doCheck ? true
+}:
 
 buildPythonPackage {
   inherit (protobuf) pname src version;
@@ -11,18 +22,18 @@ buildPythonPackage {
 
   NIX_CFLAGS_COMPILE = toString (
     # work around python distutils compiling C++ with $CC
-    optional stdenv.isDarwin "-I${libcxx}/include/c++/v1"
-    ++ optional (versionOlder protobuf.version "2.7.0") "-std=c++98"
+    lib.optional stdenv.isDarwin "-I${libcxx}/include/c++/v1"
+    ++ lib.optional (lib.versionOlder protobuf.version "2.7.0") "-std=c++98"
   );
 
   outputs = [ "out" "dev" ];
 
-  propagatedBuildInputs = [ google_apputils ];
-  propagatedNativeBuildInputs = [ buildPackages.protobuf ];  # For protoc.
-  nativeBuildInputs = [ google_apputils pyext ];
+  propagatedBuildInputs = [ six ] ++ lib.optionals isPy27 [ google-apputils ];
+  propagatedNativeBuildInputs = [ buildPackages.protobuf ]; # For protoc.
+  nativeBuildInputs = [ pyext ] ++ lib.optionals isPy27 [ google-apputils ];
   buildInputs = [ protobuf ];
 
-  patches = optional (isPy37 && (versionOlder protobuf.version "3.6.1.2"))
+  patches = lib.optional (isPy37 && (lib.versionOlder protobuf.version "3.6.1.2"))
     # Python 3.7 compatibility (not needed for protobuf >= 3.6.1.2)
     (fetchpatch {
       url = "https://github.com/protocolbuffers/protobuf/commit/0a59054c30e4f0ba10f10acfc1d7f3814c63e1a7.patch";
@@ -38,7 +49,7 @@ buildPythonPackage {
     cd python
   '';
 
-  preConfigure = optionalString (versionAtLeast protobuf.version "2.6.0") ''
+  preConfigure = lib.optionalString (lib.versionAtLeast protobuf.version "2.6.0") ''
     export PROTOCOL_BUFFERS_PYTHON_IMPLEMENTATION=cpp
     export PROTOCOL_BUFFERS_PYTHON_IMPLEMENTATION_VERSION=2
   '';
@@ -46,21 +57,21 @@ buildPythonPackage {
   preBuild = ''
     # Workaround for https://github.com/google/protobuf/issues/2895
     ${python.pythonForBuild.interpreter} setup.py build
-  '' + optionalString (versionAtLeast protobuf.version "2.6.0") ''
+  '' + lib.optionalString (lib.versionAtLeast protobuf.version "2.6.0") ''
     ${python.pythonForBuild.interpreter} setup.py build_ext --cpp_implementation
   '';
 
-  installFlags = optional (versionAtLeast protobuf.version "2.6.0")
+  installFlags = lib.optional (lib.versionAtLeast protobuf.version "2.6.0")
     "--install-option='--cpp_implementation'";
 
   # the _message.so isn't installed, so we'll do that manually.
   # if someone can figure out a less hacky way to get the _message.so to
   # install, please do replace this.
-  postInstall = optionalString (versionAtLeast protobuf.version "2.6.0") ''
+  postInstall = lib.optionalString (lib.versionAtLeast protobuf.version "2.6.0") ''
     cp -v $(find build -name "_message*") $out/${python.sitePackages}/google/protobuf/pyext
   '';
 
-  meta = {
+  meta = with lib; {
     description = "Protocol Buffers are Google's data interchange format";
     homepage = "https://developers.google.com/protocol-buffers/";
     license = licenses.bsd3;
diff --git a/nixpkgs/pkgs/development/python-modules/prov/default.nix b/nixpkgs/pkgs/development/python-modules/prov/default.nix
index 3844a0fade9e..9ab4cbf72bdf 100644
--- a/nixpkgs/pkgs/development/python-modules/prov/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/prov/default.nix
@@ -1,14 +1,11 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , lxml
 , networkx
 , dateutil
-, six
-, pydotplus
 , rdflib
 , pydot
-, glibcLocales
 }:
 
 buildPythonPackage rec {
@@ -20,29 +17,18 @@ buildPythonPackage rec {
     sha256 = "b6438f2195ecb9f6e8279b58971e02bc51814599b5d5383366eef91d867422ee";
   };
 
-  prePatch = ''
-    substituteInPlace setup.py --replace "six==1.10.0" "six>=1.10.0"
-  '';
-
   propagatedBuildInputs = [
     lxml
     networkx
     dateutil
-    six
-    pydotplus
     rdflib
   ];
 
   checkInputs = [
     pydot
-    glibcLocales
   ];
 
-  preCheck = ''
-    export LC_ALL="en_US.utf-8"
-  '';
-
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "A Python library for W3C Provenance Data Model (PROV)";
     homepage = "https://github.com/trungdong/prov";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/psutil/default.nix b/nixpkgs/pkgs/development/python-modules/psutil/default.nix
index 2d9f0a9440d5..6760ff168e56 100644
--- a/nixpkgs/pkgs/development/python-modules/psutil/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/psutil/default.nix
@@ -8,11 +8,11 @@
 
 buildPythonPackage rec {
   pname = "psutil";
-  version = "5.7.3";
+  version = "5.8.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "af73f7bcebdc538eda9cc81d19db1db7bf26f103f91081d780bbacfcb620dee2";
+    sha256 = "1immnj532bnnrh1qmk5q3lsw3san8qfk9kxy1cpmy0knmfcwp70c";
   };
 
   # arch doesn't report frequency is the same way
diff --git a/nixpkgs/pkgs/development/python-modules/ptable/default.nix b/nixpkgs/pkgs/development/python-modules/ptable/default.nix
index f1118325610c..ffa9bdacd2d1 100644
--- a/nixpkgs/pkgs/development/python-modules/ptable/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/ptable/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchFromGitHub, nose }:
+{ lib, stdenv, buildPythonPackage, fetchFromGitHub, nose }:
 
 buildPythonPackage {
   pname = "ptable";
@@ -18,7 +18,7 @@ buildPythonPackage {
     nosetests --with-coverage --cover-package=prettytable --cover-min-percentage=75
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://github.com/kxxoling/PTable";
     description = "A simple Python library designed to make it quick and easy to represent tabular data in visually appealing ASCII tables";
     license = licenses.bsd3;
diff --git a/nixpkgs/pkgs/development/python-modules/ptest/default.nix b/nixpkgs/pkgs/development/python-modules/ptest/default.nix
index 0cdbeb372e3b..c19780a4411c 100644
--- a/nixpkgs/pkgs/development/python-modules/ptest/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/ptest/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchFromGitHub
 }:
@@ -14,7 +14,7 @@ buildPythonPackage rec {
     sha256 = "0v1zpfjagjlvdmgv6d502nmb7s996wadvpzg93i651s64rrlwq4s";
   };
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Test classes and test cases using decorators, execute test cases by command line, and get clear reports";
     homepage = "https://pypi.python.org/pypi/ptest";
     license = licenses.asl20;
diff --git a/nixpkgs/pkgs/development/python-modules/ptpython/default.nix b/nixpkgs/pkgs/development/python-modules/ptpython/default.nix
index 85ba8838f667..fd7b92692fc6 100644
--- a/nixpkgs/pkgs/development/python-modules/ptpython/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/ptpython/default.nix
@@ -17,7 +17,7 @@ buildPythonPackage rec {
   # no tests to run
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "An advanced Python REPL";
     license = licenses.bsd3;
     maintainers = with maintainers; [ mlieberman85 ];
diff --git a/nixpkgs/pkgs/development/python-modules/publicsuffix/default.nix b/nixpkgs/pkgs/development/python-modules/publicsuffix/default.nix
index 061ad6858614..abac4fb3baa0 100644
--- a/nixpkgs/pkgs/development/python-modules/publicsuffix/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/publicsuffix/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi, isPy3k }:
+{ lib, stdenv, buildPythonPackage, fetchPypi, isPy3k }:
 
 buildPythonPackage rec {
   pname = "publicsuffix";
@@ -16,7 +16,7 @@ buildPythonPackage rec {
     \\t@unittest.skip('requires internet')" -e "/def additional_tests():/,+1d" tests.py
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Allows to get the public suffix of a domain name";
     homepage = "https://pypi.python.org/pypi/publicsuffix/";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/publicsuffix2/default.nix b/nixpkgs/pkgs/development/python-modules/publicsuffix2/default.nix
index fe360168aa5a..2d9bc73baa3f 100644
--- a/nixpkgs/pkgs/development/python-modules/publicsuffix2/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/publicsuffix2/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchFromGitHub, requests }:
+{ lib, stdenv, buildPythonPackage, fetchFromGitHub, requests }:
 
 buildPythonPackage rec {
   pname = "publicsuffix2";
@@ -15,7 +15,7 @@ buildPythonPackage rec {
 
   nativeBuildInputs = [ requests ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = ''
       Get a public suffix for a domain name using the Public Suffix
       List. Forked from and using the same API as the publicsuffix package.
diff --git a/nixpkgs/pkgs/development/python-modules/pubnub/default.nix b/nixpkgs/pkgs/development/python-modules/pubnub/default.nix
new file mode 100644
index 000000000000..e4bab25fd9c1
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/pubnub/default.nix
@@ -0,0 +1,57 @@
+{ lib
+, aiohttp
+, buildPythonPackage
+, cbor2
+, fetchFromGitHub
+, pycryptodomex
+, pytestCheckHook
+, pyyaml
+, pytest-vcr
+, pytest-asyncio
+, requests
+, six
+}:
+
+buildPythonPackage rec {
+  pname = "pubnub";
+  version = "4.8.0";
+
+  src = fetchFromGitHub {
+    owner = pname;
+    repo = "python";
+    rev = "v${version}";
+    sha256 = "16wjal95042kh5fxhvji0rwmw892pacqcnyms520mw15wcwilqir";
+  };
+
+  propagatedBuildInputs = [
+    cbor2
+    pycryptodomex
+    requests
+    six
+  ];
+
+  checkInputs = [
+    aiohttp
+    pycryptodomex
+    pytest-asyncio
+    pytestCheckHook
+    pytest-vcr
+
+  ];
+
+  # Some tests don't pass with recent releases of tornado/twisted
+  pytestFlagsArray = [
+    "--ignore tests/integrational"
+    "--ignore tests/manual/asyncio"
+    "--ignore tests/manual/tornado/test_reconnections.py"
+  ];
+
+  pythonImportsCheck = [ "pubnub" ];
+
+  meta = with lib; {
+    description = "Python-based APIs for PubNub";
+    homepage = "https://github.com/pubnub/python";
+    license = with licenses; [ mit ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/pubnubsub-handler/default.nix b/nixpkgs/pkgs/development/python-modules/pubnubsub-handler/default.nix
new file mode 100644
index 000000000000..32ad2a8e1b8d
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/pubnubsub-handler/default.nix
@@ -0,0 +1,34 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, pubnub
+, pycryptodomex
+, requests
+}:
+
+buildPythonPackage rec {
+  pname = "pubnubsub-handler";
+  version = "1.0.9";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "sha256:1c44x19zi709sazgl060nkqa7vbaf3iyhwcnwdykhsbipvp6bscy";
+  };
+
+  propagatedBuildInputs = [
+    pubnub
+    pycryptodomex
+    requests
+  ];
+
+  # Project has no tests
+  doCheck = false;
+  pythonImportsCheck = [ "pubnubsubhandler" ];
+
+  meta = with lib; {
+    description = "PubNub subscription between PubNub and Home Assistant";
+    homepage = "https://github.com/w1ll1am23/pubnubsub-handler";
+    license = with licenses; [ mit ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/pudb/default.nix b/nixpkgs/pkgs/development/python-modules/pudb/default.nix
index 789a9484d730..0ee2a8470b5e 100644
--- a/nixpkgs/pkgs/development/python-modules/pudb/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pudb/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , pygments
@@ -20,7 +20,7 @@ buildPythonPackage rec {
   # Tests fail on python 3 due to writes to the read-only home directory
   doCheck = !isPy3k;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "A full-screen, console-based Python debugger";
     license = licenses.mit;
     platforms = platforms.all;
diff --git a/nixpkgs/pkgs/development/python-modules/pulp/default.nix b/nixpkgs/pkgs/development/python-modules/pulp/default.nix
index 590fc022d669..3e4c4b4b6632 100644
--- a/nixpkgs/pkgs/development/python-modules/pulp/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pulp/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib
 , fetchPypi
 , buildPythonPackage
 , pyparsing
@@ -20,7 +20,7 @@ buildPythonPackage rec {
   doCheck = false;
   pythonImportsCheck = [ "pulp" ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://github.com/coin-or/pulp";
     description = "PuLP is an LP modeler written in python";
     maintainers = with maintainers; [ teto ];
diff --git a/nixpkgs/pkgs/development/python-modules/pure-pcapy3/default.nix b/nixpkgs/pkgs/development/python-modules/pure-pcapy3/default.nix
index 43d6244ebf0c..9679cc593df0 100644
--- a/nixpkgs/pkgs/development/python-modules/pure-pcapy3/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pure-pcapy3/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi }:
+{ lib, stdenv, buildPythonPackage, fetchPypi }:
 
 buildPythonPackage rec {
   pname = "pure-pcapy3";
@@ -9,7 +9,7 @@ buildPythonPackage rec {
     sha256 = "14panfklap6wwi9avw46gvd7wg9mkv9xbixvbvmi1m2adpqlb7mr";
   };
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Pure Python reimplementation of pcapy. This package is API compatible and a drop-in replacement.";
     homepage = "https://bitbucket.org/viraptor/pure-pcapy";
     license = licenses.bsd2;
diff --git a/nixpkgs/pkgs/development/python-modules/purepng/default.nix b/nixpkgs/pkgs/development/python-modules/purepng/default.nix
index fe504a0776b7..715b2ca69029 100644
--- a/nixpkgs/pkgs/development/python-modules/purepng/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/purepng/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , python
 , fetchFromGitHub
@@ -38,7 +38,7 @@ buildPythonPackage {
     ${python.interpreter} code/test_png.py
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Pure Python library for PNG image encoding/decoding";
     homepage    = "https://github.com/scondo/purepng";
     license     = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/pushover/default.nix b/nixpkgs/pkgs/development/python-modules/pushover/default.nix
index 72d38259129e..1093f125a969 100644
--- a/nixpkgs/pkgs/development/python-modules/pushover/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pushover/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi
+{ lib, stdenv, buildPythonPackage, fetchPypi
 , requests }:
 
 buildPythonPackage rec {
@@ -15,7 +15,7 @@ buildPythonPackage rec {
   # tests require network
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Bindings and command line utility for the Pushover notification service";
     homepage = "https://github.com/Thibauth/python-pushover";
     license = licenses.gpl3;
diff --git a/nixpkgs/pkgs/development/python-modules/pvlib/default.nix b/nixpkgs/pkgs/development/python-modules/pvlib/default.nix
index f9d97c211055..006246e58366 100644
--- a/nixpkgs/pkgs/development/python-modules/pvlib/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pvlib/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi, fetchpatch, pythonOlder, numpy, pandas, pytz, six
+{ lib, stdenv, buildPythonPackage, fetchPypi, fetchpatch, pythonOlder, numpy, pandas, pytz, six
 , pytestCheckHook, flaky, mock, pytest-mock, requests }:
 
 buildPythonPackage rec {
@@ -45,7 +45,7 @@ buildPythonPackage rec {
     "backtrack"
   ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://pvlib-python.readthedocs.io";
     description = "Simulate the performance of photovoltaic energy systems";
     license = licenses.bsd3;
diff --git a/nixpkgs/pkgs/development/python-modules/pweave/default.nix b/nixpkgs/pkgs/development/python-modules/pweave/default.nix
index aba58b54c3b5..fe74fcece1c0 100644
--- a/nixpkgs/pkgs/development/python-modules/pweave/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pweave/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , mock
@@ -26,7 +26,7 @@ buildPythonPackage rec {
   # fails due to trying to run CSS as test
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Scientific reports with embedded python computations with reST, LaTeX or markdown";
     homepage = "http://mpastell.com/pweave/";
     license = licenses.bsd3;
diff --git a/nixpkgs/pkgs/development/python-modules/pwntools/default.nix b/nixpkgs/pkgs/development/python-modules/pwntools/default.nix
index a6f43ae5b1f8..77f7859c6d47 100644
--- a/nixpkgs/pkgs/development/python-modules/pwntools/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pwntools/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , debugger
 , fetchPypi
@@ -62,10 +62,10 @@ buildPythonPackage rec {
 
   postFixup = ''
     mkdir -p "$out/bin"
-    makeWrapper "${debugger}/bin/${stdenv.lib.strings.getName debugger}" "$out/bin/pwntools-gdb"
+    makeWrapper "${debugger}/bin/${lib.strings.getName debugger}" "$out/bin/pwntools-gdb"
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "http://pwntools.com";
     description = "CTF framework and exploit development library";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/pxml/default.nix b/nixpkgs/pkgs/development/python-modules/pxml/default.nix
index 229b174adec2..57614089e66e 100644
--- a/nixpkgs/pkgs/development/python-modules/pxml/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pxml/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , pythonAtLeast
 , isPy27
 , buildPythonPackage
@@ -28,7 +28,7 @@ buildPythonPackage rec {
     nosetests -e 'test_prefixedWhitespace'
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://github.com/metagriffin/pxml";
     description = ''A python library and command-line tool to "prettify" and colorize XML.'';
     maintainers = with maintainers; [ glittershark ];
diff --git a/nixpkgs/pkgs/development/python-modules/py-radix/default.nix b/nixpkgs/pkgs/development/python-modules/py-radix/default.nix
index 16a362591dd7..fa057ae99254 100644
--- a/nixpkgs/pkgs/development/python-modules/py-radix/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/py-radix/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchFromGitHub
 , coverage
@@ -19,7 +19,7 @@ buildPythonPackage rec {
   doCheck = true;
   checkInputs = [ coverage nose ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Python radix tree for IPv4 and IPv6 prefix matching";
     homepage = "https://github.com/mjschultz/py-radix";
     license = with licenses; [ isc bsdOriginal ];
diff --git a/nixpkgs/pkgs/development/python-modules/py-sonic/default.nix b/nixpkgs/pkgs/development/python-modules/py-sonic/default.nix
index ebaf5f7f64f6..c35e650e18bb 100644
--- a/nixpkgs/pkgs/development/python-modules/py-sonic/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/py-sonic/default.nix
@@ -2,12 +2,12 @@
 
 buildPythonPackage rec {
   pname = "py-sonic";
-  version = "0.7.7";
+  version = "0.7.8";
   disabled = isPy27;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "4cea42a2b0dc2ed0fd8568d6bf0509cfa2675a8b1c347ce9364a00881ebc0272";
+    sha256 = "1nfpiry1jlgcyxcs5zamyfxwdvdiwg4yw0v8jysfc74hm362rg7d";
   };
 
   # package has no tests
diff --git a/nixpkgs/pkgs/development/python-modules/py/default.nix b/nixpkgs/pkgs/development/python-modules/py/default.nix
index 19366ea7146c..4d2b77bb1f2a 100644
--- a/nixpkgs/pkgs/development/python-modules/py/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/py/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi, setuptools_scm }:
+{ lib, stdenv, buildPythonPackage, fetchPypi, setuptools_scm }:
 
 buildPythonPackage rec {
   pname = "py";
@@ -18,7 +18,7 @@ buildPythonPackage rec {
     "py"
   ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Library with cross-python path, ini-parsing, io, code, log facilities";
     homepage = "https://pylib.readthedocs.org/";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/py3buddy/default.nix b/nixpkgs/pkgs/development/python-modules/py3buddy/default.nix
index 459922c9bafd..b8a25480799b 100644
--- a/nixpkgs/pkgs/development/python-modules/py3buddy/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/py3buddy/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , fetchFromGitHub
 , python
 , pyusb
@@ -29,7 +29,7 @@ stdenv.mkDerivation rec {
     install -D 99-ibuddy.rules $out/lib/udev/rules.d/99-ibuddy.rules
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Code to work with the iBuddy MSN figurine";
     homepage = "https://github.com/armijnhemel/py3buddy";
     license = with licenses; [ mit ];
diff --git a/nixpkgs/pkgs/development/python-modules/py3dns/default.nix b/nixpkgs/pkgs/development/python-modules/py3dns/default.nix
index 223e6c0ab7a4..1f7aeaf1e118 100644
--- a/nixpkgs/pkgs/development/python-modules/py3dns/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/py3dns/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 }:
@@ -21,7 +21,7 @@ buildPythonPackage rec {
 
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Python 3 DNS library";
     homepage = "https://launchpad.net/py3dns";
     license = licenses.psfl;
diff --git a/nixpkgs/pkgs/development/python-modules/py3exiv2/default.nix b/nixpkgs/pkgs/development/python-modules/py3exiv2/default.nix
index f9ed9acd0c80..0c2ae1288279 100644
--- a/nixpkgs/pkgs/development/python-modules/py3exiv2/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/py3exiv2/default.nix
@@ -1,4 +1,4 @@
-{ buildPythonPackage, isPy3k, fetchPypi, stdenv, exiv2, boost, libcxx, substituteAll, python }:
+{ lib, buildPythonPackage, isPy3k, fetchPypi, stdenv, exiv2, boost, libcxx, substituteAll, python }:
 
 buildPythonPackage rec {
   pname = "py3exiv2";
@@ -13,13 +13,13 @@ buildPythonPackage rec {
   buildInputs = [ exiv2 boost ];
 
   # work around python distutils compiling C++ with $CC (see issue #26709)
-  NIX_CFLAGS_COMPILE = stdenv.lib.optionalString stdenv.isDarwin "-I${libcxx}/include/c++/v1";
+  NIX_CFLAGS_COMPILE = lib.optionalString stdenv.isDarwin "-I${libcxx}/include/c++/v1";
 
-  meta = {
+  meta = with lib; {
     homepage = "https://launchpad.net/py3exiv2";
     description = "A Python3 binding to the library exiv2";
-    license = with stdenv.lib.licenses; [ gpl3 ];
-    maintainers = with stdenv.lib.maintainers; [ vinymeuh ];
-    platforms = with stdenv.lib.platforms; linux ++ darwin;
+    license = licenses.gpl3;
+    maintainers = with maintainers; [ vinymeuh ];
+    platforms = with platforms; linux ++ darwin;
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/py3status/default.nix b/nixpkgs/pkgs/development/python-modules/py3status/default.nix
index 03f142a8aba6..71314a08eebc 100644
--- a/nixpkgs/pkgs/development/python-modules/py3status/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/py3status/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , requests
@@ -33,9 +33,8 @@ buildPythonPackage rec {
 
   doCheck = false;
   propagatedBuildInputs = [
-    pytz requests tzlocal i3ipc pydbus pygobject3 pyserial setuptools dbus-python
+    pytz requests tzlocal i3ipc pydbus pygobject3 pyserial setuptools dbus-python file
   ];
-  buildInputs = [ file ];
   prePatch = ''
     sed -i -e "s|'file|'${file}/bin/file|" py3status/parse_config.py
     sed -i -e "s|\[\"acpi\"|\[\"${acpi}/bin/acpi\"|" py3status/modules/battery_level.py
@@ -49,7 +48,7 @@ buildPythonPackage rec {
     sed -i -e "s|'xset|'${xorg.xset}/bin/xset|" py3status/modules/keyboard_layout.py
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Extensible i3status wrapper";
     license = licenses.bsd3;
     homepage = "https://github.com/ultrabug/py3status";
diff --git a/nixpkgs/pkgs/development/python-modules/py4j/default.nix b/nixpkgs/pkgs/development/python-modules/py4j/default.nix
index e8faee8d817d..588d7a32d22f 100644
--- a/nixpkgs/pkgs/development/python-modules/py4j/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/py4j/default.nix
@@ -1,4 +1,4 @@
-{ buildPythonPackage, fetchPypi, stdenv }:
+{ buildPythonPackage, fetchPypi, lib, stdenv }:
 
 buildPythonPackage rec {
   pname = "py4j";
@@ -13,7 +13,7 @@ buildPythonPackage rec {
   # No tests in archive
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Py4J enables Python programs running in a Python interpreter to dynamically access Java objects in a Java Virtual Machine. Methods are called as if the Java objects resided in the Python interpreter and Java collections can be accessed through standard Python collection methods. Py4J also enables Java programs to call back Python objects.";
     homepage = "https://www.py4j.org/";
     license = licenses.bsd3;
diff --git a/nixpkgs/pkgs/development/python-modules/pyGithub/default.nix b/nixpkgs/pkgs/development/python-modules/pyGithub/default.nix
index c82f18d377d3..f53cc45b9fe7 100644
--- a/nixpkgs/pkgs/development/python-modules/pyGithub/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyGithub/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , cryptography
 , deprecated
@@ -12,14 +12,14 @@
 
 buildPythonPackage rec {
   pname = "PyGithub";
-  version = "1.51";
+  version = "1.54.1";
   disabled = !isPy3k;
 
   src = fetchFromGitHub {
     owner = "PyGithub";
     repo = "PyGithub";
     rev = "v${version}";
-    sha256 = "1hz5fc3rkryl4vzxmmwx75p25wk0ida54lf6bz7261rm5hb05r7j";
+    sha256 = "1nl74bp5ikdnrc8xq0qr25ryl1mvarf0xi43k8w5jzlrllhq0nkq";
   };
 
   checkInputs = [ httpretty parameterized pytestCheckHook ];
@@ -28,7 +28,7 @@ buildPythonPackage rec {
   # Test suite makes REST calls against github.com
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://github.com/PyGithub/PyGithub";
     description = "A Python (2 and 3) library to access the GitHub API v3";
     platforms = platforms.all;
diff --git a/nixpkgs/pkgs/development/python-modules/py_scrypt/default.nix b/nixpkgs/pkgs/development/python-modules/py_scrypt/default.nix
index e7c75f98231b..af86ce3821eb 100644
--- a/nixpkgs/pkgs/development/python-modules/py_scrypt/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/py_scrypt/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , openssl
@@ -16,7 +16,7 @@ buildPythonPackage rec {
   buildInputs = [ openssl ];
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Bindings for scrypt key derivation function library";
     homepage = "https://pypi.python.org/pypi/scrypt";
     maintainers = [];
diff --git a/nixpkgs/pkgs/development/python-modules/pyacoustid/default.nix b/nixpkgs/pkgs/development/python-modules/pyacoustid/default.nix
index 75b0964e259d..d424b2144292 100644
--- a/nixpkgs/pkgs/development/python-modules/pyacoustid/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyacoustid/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , requests
@@ -23,7 +23,7 @@ buildPythonPackage rec {
         acoustid.py
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Bindings for Chromaprint acoustic fingerprinting";
     homepage = "https://github.com/sampsyo/pyacoustid";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/pyahocorasick/default.nix b/nixpkgs/pkgs/development/python-modules/pyahocorasick/default.nix
new file mode 100644
index 000000000000..9ef89c6e920d
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/pyahocorasick/default.nix
@@ -0,0 +1,34 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, pytestCheckHook
+}:
+
+buildPythonPackage rec {
+  pname = "pyahocorasick";
+  version = "1.4.0";
+
+  src = fetchFromGitHub {
+    owner = "WojciechMula";
+    repo = pname;
+    rev = version;
+    sha256 = "0plm9x2gziayjsl7flsgn1z8qx88c9vqm4fs1wq7dv7fr188liik";
+  };
+
+  checkInputs = [ pytestCheckHook ];
+
+  pytestFlagsArray = [ "unittests.py" ];
+  pythonImportsCheck = [ "ahocorasick" ];
+
+  meta = with lib; {
+    description = "Python module implementing Aho-Corasick algorithm";
+    longDescription = ''
+      This Python module is a fast and memory efficient library for exact or
+      approximate multi-pattern string search meaning that you can find multiple
+      key strings occurrences at once in some input text.
+    '';
+    homepage = "https://github.com/WojciechMula/pyahocorasick";
+    license = with licenses; [ bsd3 ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/pyairvisual/default.nix b/nixpkgs/pkgs/development/python-modules/pyairvisual/default.nix
index 084852fa5371..2e9aa97f1f23 100644
--- a/nixpkgs/pkgs/development/python-modules/pyairvisual/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyairvisual/default.nix
@@ -15,7 +15,7 @@
 
 buildPythonPackage rec {
   pname = "pyairvisual";
-  version = "5.0.4";
+  version = "5.0.5";
   format = "pyproject";
 
   disabled = pythonOlder "3.6";
@@ -24,7 +24,7 @@ buildPythonPackage rec {
     owner = "bachya";
     repo = pname;
     rev = version;
-    sha256 = "0z769xrb6w6bhqcq02sjryl1qyvk9dc1xfn06fc3mdqnrbr0xxj3";
+    sha256 = "0jjvng3py5g97gvx6rdbk5zxbn5rw8gq1ki4qi4vfsypchxbpz2q";
   };
 
   nativeBuildInputs = [ poetry ];
@@ -43,13 +43,15 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
-  pytestFlagsArray = [
-    "tests"
-  ];
+  # Ignore the examples as they are prefixed with test_
+  pytestFlagsArray = [ "--ignore examples/" ];
+  pythonImportsCheck = [ "pyairvisual" ];
 
   meta = with lib; {
-    description = "A simple, clean, well-tested Python library for interacting with AirVisual©";
-    license = licenses.mit;
+    description = "Python library for interacting with AirVisual";
     homepage = "https://github.com/bachya/pyairvisual";
+    changelog = "https://github.com/bachya/pyairvisual/releases/tag/${version}";
+    license = with licenses; [ mit ];
+    maintainers = with maintainers; [ fab ];
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/pyalgotrade/default.nix b/nixpkgs/pkgs/development/python-modules/pyalgotrade/default.nix
index 3703b5fcca4c..075103e9e40f 100644
--- a/nixpkgs/pkgs/development/python-modules/pyalgotrade/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyalgotrade/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , matplotlib
@@ -32,7 +32,7 @@ buildPythonPackage rec {
   # no tests in PyPI tarball
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Python Algorithmic Trading";
     homepage = "http://gbeced.github.io/pyalgotrade/";
     license = licenses.asl20;
diff --git a/nixpkgs/pkgs/development/python-modules/pyamf/default.nix b/nixpkgs/pkgs/development/python-modules/pyamf/default.nix
index 1c31efadff7c..f0cf111a87ad 100644
--- a/nixpkgs/pkgs/development/python-modules/pyamf/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyamf/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchPypi, buildPythonPackage, isPy3k, defusedxml }:
+{ lib, stdenv, fetchPypi, buildPythonPackage, isPy3k, defusedxml }:
 
 buildPythonPackage rec {
   pname = "PyAMF";
@@ -14,7 +14,7 @@ buildPythonPackage rec {
 
   propagatedBuildInputs = [ defusedxml ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "AMF (Action Message Format) support for Python";
     homepage = "https://pypi.python.org/pypi/PyAMF";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/pyannotate/default.nix b/nixpkgs/pkgs/development/python-modules/pyannotate/default.nix
index a2dd4eaf7cf0..9c9c18a886e9 100644
--- a/nixpkgs/pkgs/development/python-modules/pyannotate/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyannotate/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , pythonOlder
@@ -19,13 +19,13 @@ buildPythonPackage rec {
 
   checkInputs = [ pytest ];
   propagatedBuildInputs = [ six mypy-extensions ]
-    ++ stdenv.lib.optionals (pythonOlder "3.5") [ typing ];
+    ++ lib.optionals (pythonOlder "3.5") [ typing ];
 
   checkPhase = ''
     py.test
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://github.com/dropbox/pyannotate";
     description = "Auto-generate PEP-484 annotations";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/pyarlo/default.nix b/nixpkgs/pkgs/development/python-modules/pyarlo/default.nix
new file mode 100644
index 000000000000..76fe9bc0a108
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/pyarlo/default.nix
@@ -0,0 +1,41 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, mock
+, pytestCheckHook
+, requests
+, requests-mock
+, sseclient-py
+}:
+
+buildPythonPackage rec {
+  pname = "pyarlo";
+  version = "0.2.4";
+
+  src = fetchFromGitHub {
+    owner = "tchellomello";
+    repo = "python-arlo";
+    rev = version;
+    sha256 = "0pp7y2llk4xnf6zh57j5xas0gw5zqm42qaqssd8p4qa3g5rds8k3";
+  };
+
+  propagatedBuildInputs = [
+    requests
+    sseclient-py
+  ];
+
+  checkInputs = [
+    pytestCheckHook
+    mock
+    requests-mock
+  ];
+
+  pythonImportsCheck = [ "pyarlo" ];
+
+  meta = with lib; {
+    description = "Python library to work with Netgear Arlo cameras";
+    homepage = "https://github.com/tchellomello/python-arlo";
+    license = with licenses; [ lgpl3Plus ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/pyarrow/default.nix b/nixpkgs/pkgs/development/python-modules/pyarrow/default.nix
index 82f8f5da3d9c..780c8c2df854 100644
--- a/nixpkgs/pkgs/development/python-modules/pyarrow/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyarrow/default.nix
@@ -1,4 +1,4 @@
-{ lib, buildPythonPackage, python, isPy3k, arrow-cpp, cmake, cython, futures, hypothesis, numpy, pandas, pytestCheckHook, pytest-lazy-fixture, pkgconfig, setuptools_scm, six }:
+{ lib, buildPythonPackage, python, isPy3k, arrow-cpp, cmake, cython, futures, hypothesis, numpy, pandas, pytestCheckHook, pytest-lazy-fixture, pkg-config, setuptools_scm, six }:
 
 let
   _arrow-cpp = arrow-cpp.override { python3 = python; };
@@ -12,7 +12,7 @@ buildPythonPackage rec {
 
   sourceRoot = "apache-arrow-${version}/python";
 
-  nativeBuildInputs = [ cmake cython pkgconfig setuptools_scm ];
+  nativeBuildInputs = [ cmake cython pkg-config setuptools_scm ];
   propagatedBuildInputs = [ numpy six ];
   checkInputs = [ hypothesis pandas pytestCheckHook pytest-lazy-fixture ];
 
diff --git a/nixpkgs/pkgs/development/python-modules/pyasn1-modules/default.nix b/nixpkgs/pkgs/development/python-modules/pyasn1-modules/default.nix
index 87e72e1ae5bd..2be2e8b9c11a 100644
--- a/nixpkgs/pkgs/development/python-modules/pyasn1-modules/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyasn1-modules/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , pyasn1
@@ -26,7 +26,7 @@ buildPythonPackage rec {
     py.test
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "A collection of ASN.1-based protocols modules";
     homepage = "https://pypi.python.org/pypi/pyasn1-modules";
     license = licenses.bsd3;
diff --git a/nixpkgs/pkgs/development/python-modules/pyasn1/default.nix b/nixpkgs/pkgs/development/python-modules/pyasn1/default.nix
index 206db053a564..9b269f79c86a 100644
--- a/nixpkgs/pkgs/development/python-modules/pyasn1/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyasn1/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi, }:
+{ lib, stdenv, buildPythonPackage, fetchPypi, }:
 
 buildPythonPackage rec {
   pname = "pyasn1";
@@ -9,7 +9,7 @@ buildPythonPackage rec {
     sha256 = "aef77c9fb94a3ac588e87841208bdec464471d9871bd5050a287cc9a475cd0ba";
   };
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "ASN.1 tools for Python";
     homepage = "http://pyasn1.sourceforge.net/";
     license = "mBSD";
diff --git a/nixpkgs/pkgs/development/python-modules/pyatmo/default.nix b/nixpkgs/pkgs/development/python-modules/pyatmo/default.nix
index 22acf8725260..6bea15df386f 100644
--- a/nixpkgs/pkgs/development/python-modules/pyatmo/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyatmo/default.nix
@@ -12,20 +12,20 @@
 
 buildPythonPackage rec {
   pname = "pyatmo";
-  version = "4.2.1";
+  version = "4.2.2";
   disabled = pythonOlder "3.7";
 
   src = fetchFromGitHub {
     owner = "jabesq";
-    repo = "netatmo-api-python";
+    repo = "pyatmo";
     rev = "v${version}";
-    sha256 = "12lmjhqjn71a358nkpzl3dwgiwmmz4lcv9f0qf69ngznpiirk28m";
+    sha256 = "sha256-3IxDDLa8KMHVkHAeTmdNVRPc5aKzF3VwL2kKnG8Fp7I=";
   };
 
   postPatch = ''
     substituteInPlace setup.cfg \
-      --replace "oauthlib~=3.1.0" "oauthlib" \
-      --replace "requests~=2.23.0" "requests"
+      --replace "oauthlib~=3.1" "oauthlib" \
+      --replace "requests~=2.24" "requests"
   '';
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/pyatspi/default.nix b/nixpkgs/pkgs/development/python-modules/pyatspi/default.nix
index 232e44d0999e..5ae00417b6c0 100644
--- a/nixpkgs/pkgs/development/python-modules/pyatspi/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyatspi/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, pkgconfig, buildPythonPackage, isPy3k, at-spi2-core, pygobject3, gnome3 }:
+{ lib, fetchurl, pkg-config, buildPythonPackage, isPy3k, at-spi2-core, pygobject3, gnome3 }:
 
 buildPythonPackage rec {
   pname = "pyatspi";
@@ -6,11 +6,11 @@ buildPythonPackage rec {
   format = "other";
 
   src = fetchurl {
-    url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
+    url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
     sha256 = "/4CTEv0ML2HhkcGBoaY4owtXm5G2gs+1oFU1pVJltD0=";
   };
 
-  nativeBuildInputs = [ pkgconfig ];
+  nativeBuildInputs = [ pkg-config ];
 
   buildInputs = [
     at-spi2-core
@@ -26,7 +26,7 @@ buildPythonPackage rec {
     };
   };
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Python client bindings for D-Bus AT-SPI";
     homepage = "https://wiki.linuxfoundation.org/accessibility/d-bus";
     license = licenses.gpl2;
diff --git a/nixpkgs/pkgs/development/python-modules/pyatv/default.nix b/nixpkgs/pkgs/development/python-modules/pyatv/default.nix
index 647866b143fb..187f94dbd778 100644
--- a/nixpkgs/pkgs/development/python-modules/pyatv/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyatv/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage
+{ lib, stdenv, buildPythonPackage
 , aiohttp
 , aiozeroconf
 , asynctest
@@ -46,7 +46,9 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
-  meta = with stdenv.lib; {
+  __darwinAllowLocalNetworking = true;
+
+  meta = with lib; {
     description = "A python client library for the Apple TV";
     homepage = "https://github.com/postlund/pyatv";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/pyaudio/default.nix b/nixpkgs/pkgs/development/python-modules/pyaudio/default.nix
index 91791f5a0674..d88dc7009b73 100644
--- a/nixpkgs/pkgs/development/python-modules/pyaudio/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyaudio/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , isPyPy
@@ -17,7 +17,7 @@ buildPythonPackage rec {
 
   buildInputs = [ pkgs.portaudio ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Python bindings for PortAudio";
     homepage = "https://people.csail.mit.edu/hubert/pyaudio/";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/pyaxmlparser/default.nix b/nixpkgs/pkgs/development/python-modules/pyaxmlparser/default.nix
index 372d2feff15c..63e180b11b2b 100644
--- a/nixpkgs/pkgs/development/python-modules/pyaxmlparser/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyaxmlparser/default.nix
@@ -1,4 +1,4 @@
-{ buildPythonPackage, stdenv, lxml, click, fetchFromGitHub, pytest, isPy3k }:
+{ buildPythonPackage, lib, stdenv, lxml, click, fetchFromGitHub, pytest, isPy3k }:
 
 buildPythonPackage rec {
   version = "0.3.24";
@@ -25,7 +25,7 @@ buildPythonPackage rec {
     py.test tests/
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Python3 Parser for Android XML file and get Application Name without using Androguard";
     homepage = "https://github.com/appknox/pyaxmlparser";
     # Files from Androguard are licensed ASL 2.0
diff --git a/nixpkgs/pkgs/development/python-modules/pybase64/default.nix b/nixpkgs/pkgs/development/python-modules/pybase64/default.nix
index d48fed13543b..e462d53fea88 100644
--- a/nixpkgs/pkgs/development/python-modules/pybase64/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pybase64/default.nix
@@ -1,4 +1,4 @@
-{ buildPythonPackage, isPy3k, stdenv, fetchPypi, six, pytest }:
+{ buildPythonPackage, isPy3k, lib, stdenv, fetchPypi, six, pytest }:
 
 buildPythonPackage rec {
   pname = "pybase64";
@@ -18,7 +18,7 @@ buildPythonPackage rec {
     py.test
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://pypi.python.org/pypi/pybase64";
     description = "Fast Base64 encoding/decoding";
     license = licenses.bsd2;
diff --git a/nixpkgs/pkgs/development/python-modules/pybindgen/default.nix b/nixpkgs/pkgs/development/python-modules/pybindgen/default.nix
index 136917c68371..4b6f7f1682ff 100644
--- a/nixpkgs/pkgs/development/python-modules/pybindgen/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pybindgen/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchPypi, buildPythonPackage, isPy3k, setuptools_scm, pygccxml }:
+{ lib, stdenv, fetchPypi, buildPythonPackage, isPy3k, setuptools_scm, pygccxml }:
 buildPythonPackage rec {
   pname = "PyBindGen";
   version = "0.21.0";
@@ -13,7 +13,7 @@ buildPythonPackage rec {
   checkInputs = [ pygccxml ];
   doCheck = (!isPy3k); # Fails to import module 'cxxfilt' from pygccxml on Py3k
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://github.com/gjcarneiro/pybindgen";
     description = "Python Bindings Generator";
     license = licenses.lgpl2;
diff --git a/nixpkgs/pkgs/development/python-modules/pyblackbird/default.nix b/nixpkgs/pkgs/development/python-modules/pyblackbird/default.nix
new file mode 100644
index 000000000000..fd8f46a968fe
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/pyblackbird/default.nix
@@ -0,0 +1,34 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, pyserial
+, pyserial-asyncio
+}:
+
+buildPythonPackage rec {
+  pname = "pyblackbird";
+  version = "0.5";
+
+  src = fetchFromGitHub {
+    owner = "koolsb";
+    repo = pname;
+    rev = version;
+    sha256 = "0m1yd1cb3z8011x7nicxpf091bdcwghcphn0l21c65f71rabzg6s";
+  };
+
+  propagatedBuildInputs = [
+    pyserial
+    pyserial-asyncio
+  ];
+
+  # Test setup try to create a serial port
+  doCheck = false;
+  pythonImportsCheck = [ "pyblackbird" ];
+
+  meta = with lib; {
+    description = "Python implementation for Monoprice Blackbird units";
+    homepage = "https://github.com/koolsb/pyblackbird";
+    license = with licenses; [ mit ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/pyblock/default.nix b/nixpkgs/pkgs/development/python-modules/pyblock/default.nix
index e7af4f70b1e5..0e94764e4a22 100644
--- a/nixpkgs/pkgs/development/python-modules/pyblock/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyblock/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , python
 , pkgs
 , isPy3k
@@ -27,7 +27,7 @@ stdenv.mkDerivation rec {
     "SITELIB=$(out)/${python.sitePackages}"
   ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://www.centos.org/docs/5/html/5.4/Technical_Notes/python-pyblock.html";
     description = "Interface for working with block devices";
     license = licenses.gpl2Plus;
diff --git a/nixpkgs/pkgs/development/python-modules/pyblosxom/default.nix b/nixpkgs/pkgs/development/python-modules/pyblosxom/default.nix
index dfb3e94ba276..dee6aea559a5 100644
--- a/nixpkgs/pkgs/development/python-modules/pyblosxom/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyblosxom/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchurl
 , pygments
@@ -22,7 +22,7 @@ buildPythonPackage rec {
   # both tests fail due to time issue that doesn't seem to matter in practice
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "http://pyblosxom.github.io";
     description = "File-based blogging engine";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/pybluez/default.nix b/nixpkgs/pkgs/development/python-modules/pybluez/default.nix
index 47c70758e4ca..a02861c68cda 100644
--- a/nixpkgs/pkgs/development/python-modules/pybluez/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pybluez/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchFromGitHub
 , pkgs
@@ -20,7 +20,7 @@ buildPythonPackage rec {
   # the tests do not pass
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Bluetooth Python extension module";
     license = licenses.gpl2;
     maintainers = with maintainers; [ leenaars ];
diff --git a/nixpkgs/pkgs/development/python-modules/pybotvac/default.nix b/nixpkgs/pkgs/development/python-modules/pybotvac/default.nix
index c5e239ab8973..ca093ba8e8bb 100644
--- a/nixpkgs/pkgs/development/python-modules/pybotvac/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pybotvac/default.nix
@@ -1,18 +1,33 @@
-{ stdenv, buildPythonPackage, fetchPypi, requests }:
+{ lib
+, buildPythonPackage
+, fetchPypi
+, requests
+, requests_oauthlib
+, voluptuous
+}:
 
 buildPythonPackage rec {
   pname = "pybotvac";
-  version = "0.0.18";
+  version = "0.0.20";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "e983c9ffc0734c2e5a7c2adf5d0d0dfe399d94157c590ef70fad765f882c341f";
+    sha256 = "sha256-1NnTSO4vO3Ryt4vYD5ZTQGr241GqA2KsGRBVowSTCzM=";
   };
 
-  propagatedBuildInputs = [ requests ];
+  propagatedBuildInputs = [
+    requests
+    requests_oauthlib
+    voluptuous
+  ];
 
-  meta = with stdenv.lib; {
-    description = "Python package for controlling Neato pybotvac Connected vacuum robot";
+  # no tests
+  doCheck = false;
+
+  pythonImportsCheck = [ "pybotvac" ];
+
+  meta = with lib; {
+    description = "Python module for interacting with Neato Botvac Connected vacuum robots";
     homepage = "https://github.com/stianaske/pybotvac";
     license = licenses.mit;
     maintainers = with maintainers; [ elseym ];
diff --git a/nixpkgs/pkgs/development/python-modules/pybrowserid/default.nix b/nixpkgs/pkgs/development/python-modules/pybrowserid/default.nix
index fe5ace886ac0..eacbd81055c5 100644
--- a/nixpkgs/pkgs/development/python-modules/pybrowserid/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pybrowserid/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi
+{ lib, stdenv, buildPythonPackage, fetchPypi
 , requests, mock }:
 
 buildPythonPackage rec {
@@ -14,7 +14,7 @@ buildPythonPackage rec {
 
   checkInputs = [ mock ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Python library for the BrowserID Protocol";
     homepage    = "https://github.com/mozilla/PyBrowserID";
     license     = licenses.mpl20;
diff --git a/nixpkgs/pkgs/development/python-modules/pybtex-docutils/default.nix b/nixpkgs/pkgs/development/python-modules/pybtex-docutils/default.nix
index 878654cef163..2dbd4e8cff58 100644
--- a/nixpkgs/pkgs/development/python-modules/pybtex-docutils/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pybtex-docutils/default.nix
@@ -1,7 +1,7 @@
-{ stdenv, buildPythonPackage, fetchPypi, docutils, pybtex, six }:
+{ lib, buildPythonPackage, fetchPypi, docutils, pybtex, six }:
 
 buildPythonPackage rec {
-  version = "0.2.2";
+  version = "1.0.0";
   pname = "pybtex-docutils";
 
   doCheck = false;
@@ -9,12 +9,12 @@ buildPythonPackage rec {
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "ea90935da188a0f4de2fe6b32930e185c33a0e306154322ccc12e519ebb5fa7d";
+    sha256 = "cead6554b4af99c287dd29f38b1fa152c9542f56a51cb6cbc3997c95b2725b2e";
   };
 
-  meta = {
+  meta = with lib; {
     description = "A docutils backend for pybtex";
     homepage = "https://github.com/mcmtroffaes/pybtex-docutils";
-    license = stdenv.lib.licenses.mit;
+    license = licenses.mit;
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/pybtex/default.nix b/nixpkgs/pkgs/development/python-modules/pybtex/default.nix
index a62e7e27f9cf..fb6fbf8dd381 100644
--- a/nixpkgs/pkgs/development/python-modules/pybtex/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pybtex/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi, latexcodec, pyyaml }:
+{ lib, buildPythonPackage, fetchPypi, latexcodec, pyyaml }:
 
 buildPythonPackage rec {
   version = "0.23.0";
@@ -12,9 +12,9 @@ buildPythonPackage rec {
     sha256 = "b92be18ccd5e9a37895949dcf359a1f6890246b73646dddf1129178ee12e4bef";
   };
 
-  meta = {
+  meta = with lib; {
     homepage = "https://pybtex.org/";
     description = "A BibTeX-compatible bibliography processor written in Python";
-    license = stdenv.lib.licenses.mit;
+    license = licenses.mit;
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/pycallgraph/default.nix b/nixpkgs/pkgs/development/python-modules/pycallgraph/default.nix
index 293489cce05b..1353af406ca4 100644
--- a/nixpkgs/pkgs/development/python-modules/pycallgraph/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pycallgraph/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , pytest
@@ -18,7 +18,7 @@ buildPythonPackage rec {
   # Tests do not work due to this bug: https://github.com/gak/pycallgraph/issues/118
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "http://pycallgraph.slowchop.com";
     description = "Call graph visualizations for Python applications";
     maintainers = with maintainers; [ auntie ];
diff --git a/nixpkgs/pkgs/development/python-modules/pycangjie/default.nix b/nixpkgs/pkgs/development/python-modules/pycangjie/default.nix
index dc4ab1d4bbda..6fc9d2af1cbc 100644
--- a/nixpkgs/pkgs/development/python-modules/pycangjie/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pycangjie/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, bash, autoconf, automake, libtool, pkgconfig, libcangjie
+{ lib, stdenv, fetchurl, bash, autoconf, automake, libtool, pkg-config, libcangjie
 , sqlite, buildPythonPackage, cython
 }:
 
@@ -14,7 +14,7 @@ in buildPythonPackage {
     sha256 = "12yi09nyffmn4va7lzk4irw349qzlbxgsnb89dh15cnw0xmrin05";
   };
 
-  nativeBuildInputs = [ pkgconfig libtool autoconf automake cython ];
+  nativeBuildInputs = [ pkg-config libtool autoconf automake cython ];
   buildInputs = [ libcangjie sqlite ];
 
   preConfigure = ''
@@ -26,7 +26,7 @@ in buildPythonPackage {
 
   doCheck = true;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Python wrapper to libcangjie";
     homepage = "http://cangjians.github.io/projects/pycangjie/";
     license = licenses.lgpl3Plus;
diff --git a/nixpkgs/pkgs/development/python-modules/pycapnp/default.nix b/nixpkgs/pkgs/development/python-modules/pycapnp/default.nix
index 1997021ce010..ab9088cf1e5f 100644
--- a/nixpkgs/pkgs/development/python-modules/pycapnp/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pycapnp/default.nix
@@ -1,34 +1,35 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
-, fetchPypi
 , capnproto
 , cython
+, fetchFromGitHub
+, isPy27
 , isPyPy
-, isPy3k
+, pkgconfig
 }:
 
 buildPythonPackage rec {
   pname = "pycapnp";
   version = "1.0.0";
-  disabled = isPyPy || isPy3k;
+  disabled = isPyPy || isPy27;
 
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "9f6fcca349ebf2ec04ca7eacb076aea3e4fcdc010ac33c98b54f0a19d4e5d3e0";
+  src = fetchFromGitHub {
+    owner = "capnproto";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "1n6dq2fbagi3wvrpkyb7wx4y15nkm2grln4y75hrqgmnli8ggi9v";
   };
 
-  buildInputs = [ capnproto cython ];
+  buildInputs = [ capnproto cython pkgconfig ];
 
-  # import setuptools as soon as possible, to minimize monkeypatching mayhem.
-  postConfigure = ''
-    sed -i '3iimport setuptools' setup.py
-  '';
+  # Tests disabled due to dependency on jinja and various other libraries.
+  doCheck = false;
 
-  meta = with stdenv.lib; {
-    maintainers = with maintainers; [ cstrahan ];
+  pythonImportsCheck = [ "capnp" ];
+
+  meta = with lib; {
+    maintainers = with maintainers; [ cstrahan lukeadams ];
     license = licenses.bsd2;
-    homepage = "http://jparyani.github.io/pycapnp/index.html";
-    broken = true; # 2018-04-11
+    homepage = "https://capnproto.github.io/pycapnp/";
   };
-
 }
diff --git a/nixpkgs/pkgs/development/python-modules/pycarddav/default.nix b/nixpkgs/pkgs/development/python-modules/pycarddav/default.nix
index 674c9e9af86b..7885cf65b83b 100644
--- a/nixpkgs/pkgs/development/python-modules/pycarddav/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pycarddav/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , isPy3k
@@ -22,7 +22,7 @@ buildPythonPackage rec {
 
   propagatedBuildInputs = [ vobject lxml requests urwid pyxdg ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Command-line interface carddav client";
     homepage = "http://lostpackets.de/pycarddav";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/pycares/default.nix b/nixpkgs/pkgs/development/python-modules/pycares/default.nix
index e233d8d70884..8404063ac1f8 100644
--- a/nixpkgs/pkgs/development/python-modules/pycares/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pycares/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , python
@@ -26,7 +26,7 @@ buildPythonPackage rec {
   # requires network access
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://github.com/saghul/pycares";
     description = "Interface for c-ares";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/pycassa/default.nix b/nixpkgs/pkgs/development/python-modules/pycassa/default.nix
index d366486c8f89..0e07d8d436f7 100644
--- a/nixpkgs/pkgs/development/python-modules/pycassa/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pycassa/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi, thrift, isPy3k }:
+{ lib, buildPythonPackage, fetchPypi, thrift, isPy3k }:
 
 let
 
@@ -30,9 +30,9 @@ buildPythonPackage rec {
 
   propagatedBuildInputs = [ thrift' ];
 
-  meta = {
+  meta = with lib; {
     description = "A python client library for Apache Cassandra";
     homepage = "https://github.com/pycassa/pycassa";
-    license = stdenv.lib.licenses.mit;
+    license = licenses.mit;
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/pycdio/default.nix b/nixpkgs/pkgs/development/python-modules/pycdio/default.nix
index d5633f9eaefa..712029b692ce 100644
--- a/nixpkgs/pkgs/development/python-modules/pycdio/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pycdio/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , setuptools
@@ -28,7 +28,7 @@ buildPythonPackage rec {
 
   nativeBuildInputs = [ nose pkgs.pkgconfig pkgs.swig ];
   buildInputs = [ setuptools pkgs.libcdio ]
-    ++ stdenv.lib.optional stdenv.isDarwin pkgs.libiconv;
+    ++ lib.optional stdenv.isDarwin pkgs.libiconv;
 
   # Run tests using nosetests but first need to install the binaries
   # to the root source directory where they can be found.
@@ -37,7 +37,7 @@ buildPythonPackage rec {
     nosetests
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://www.gnu.org/software/libcdio/";
     description = "Wrapper around libcdio (CD Input and Control library)";
     maintainers = with maintainers; [ rycee ];
diff --git a/nixpkgs/pkgs/development/python-modules/pycfdns/default.nix b/nixpkgs/pkgs/development/python-modules/pycfdns/default.nix
new file mode 100644
index 000000000000..ca0b0fe5ecf0
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/pycfdns/default.nix
@@ -0,0 +1,34 @@
+{ lib
+, aiohttp
+, async-timeout
+, buildPythonPackage
+, fetchFromGitHub
+}:
+
+buildPythonPackage rec {
+  pname = "pycfdns";
+  version = "1.2.1";
+
+  src = fetchFromGitHub {
+    owner = "ludeeus";
+    repo = pname;
+    rev = version;
+    sha256 = "0df4695cb0h6f2lnn6dx4h5al2ra93zp1hzfaz07nj2gvirswp83";
+  };
+
+  propagatedBuildInputs = [
+    aiohttp
+    async-timeout
+  ];
+
+  # Project has no tests
+  doCheck = false;
+  pythonImportsCheck = [ "pycfdns" ];
+
+  meta = with lib; {
+    description = "Python module for updating Cloudflare DNS A records";
+    homepage = "https://github.com/ludeeus/pycfdns";
+    license = with licenses; [ mit ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/pychart/default.nix b/nixpkgs/pkgs/development/python-modules/pychart/default.nix
index 98c3242cb29d..2c2399fca92e 100644
--- a/nixpkgs/pkgs/development/python-modules/pychart/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pychart/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi, isPy27 }:
+{ lib, stdenv, buildPythonPackage, fetchPypi, isPy27 }:
 
 buildPythonPackage rec {
   pname = "pychart";
@@ -11,7 +11,7 @@ buildPythonPackage rec {
     sha256 = "882650928776a7ca72e67054a9e0ac98f78645f279c0cfb5910db28f03f07c2e";
   };
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Library for creating high quality encapsulated Postscript, PDF, PNG, or SVG charts";
     homepage = "https://pypi.python.org/pypi/PyChart";
     license = licenses.gpl2;
diff --git a/nixpkgs/pkgs/development/python-modules/pychef/default.nix b/nixpkgs/pkgs/development/python-modules/pychef/default.nix
index 6d60573b96eb..1702cde840cf 100644
--- a/nixpkgs/pkgs/development/python-modules/pychef/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pychef/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , six
@@ -21,7 +21,7 @@ buildPythonPackage rec {
   # FIXME
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://github.com/coderanger/pychef";
     description = "Python implementation of a Chef API client";
     license = licenses.bsd0;
diff --git a/nixpkgs/pkgs/development/python-modules/pychromecast/default.nix b/nixpkgs/pkgs/development/python-modules/pychromecast/default.nix
index 6e45eb2a626f..fecf3f09ca7c 100644
--- a/nixpkgs/pkgs/development/python-modules/pychromecast/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pychromecast/default.nix
@@ -2,17 +2,19 @@
 
 buildPythonPackage rec {
   pname = "PyChromecast";
-  version = "7.7.1";
+  version = "7.7.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "09mdz1y1bfwkszxsawffwy1mr7lc1j2rma571qkb60sk76107zfn";
+    sha256 = "1w7jayb0z529bh1ybb16pfm0m08qqi4px1q0qwlvcxlcrd2v3m5a";
   };
 
   disabled = !isPy3k;
 
   propagatedBuildInputs = [ requests zeroconf protobuf casttube ];
 
+  # no tests available
+  doCheck = false;
   pythonImportsCheck = [ "pychromecast" ];
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/development/python-modules/pyclipper/default.nix b/nixpkgs/pkgs/development/python-modules/pyclipper/default.nix
index 6096f30181a1..e89389547096 100644
--- a/nixpkgs/pkgs/development/python-modules/pyclipper/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyclipper/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , fetchPypi
 , buildPythonPackage
 , setuptools_scm
@@ -26,7 +26,7 @@ buildPythonPackage rec {
   doCheck = false;
   pythonImportsCheck = [ "pyclipper" ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Cython wrapper for clipper library";
     homepage    = "https://github.com/fonttools/pyclipper";
     license     = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/pycm/default.nix b/nixpkgs/pkgs/development/python-modules/pycm/default.nix
index a51aa1b931aa..ada4eeeb556c 100644
--- a/nixpkgs/pkgs/development/python-modules/pycm/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pycm/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchFromGitHub, isPy3k, numpy, pytest }:
+{ lib, stdenv, buildPythonPackage, fetchFromGitHub, isPy3k, numpy, pytest }:
 
 buildPythonPackage rec {
   pname = "pycm";
@@ -26,7 +26,7 @@ buildPythonPackage rec {
     pytest Test/
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Multiclass confusion matrix library";
     homepage = "https://pycm.ir";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/pycognito/default.nix b/nixpkgs/pkgs/development/python-modules/pycognito/default.nix
index a30c1cd344b4..511df9f07f55 100644
--- a/nixpkgs/pkgs/development/python-modules/pycognito/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pycognito/default.nix
@@ -1,24 +1,25 @@
 { lib
+, boto3
 , buildPythonPackage
-, fetchFromGitHub
 , cryptography
-, boto3
 , envs
+, fetchFromGitHub
+, isPy27
+, mock
+, pytestCheckHook
 , python-jose
 , requests
-, mock
-, isPy27
 }:
 
 buildPythonPackage rec {
   pname = "pycognito";
-  version = "0.1.4";
+  version = "0.1.5";
 
   src = fetchFromGitHub {
     owner = "pvizeli";
-    repo = "pycognito";
+    repo = pname;
     rev = version;
-    sha256 = "HLzPrRon+ipcUZlD1l4nYSwSbdDLwOALy4ejGunjK0w=";
+    sha256 = "sha256-RJeHPCTuaLN+zB0N0FGt4qrTI6++1ks5iBn64Cx0Psc=";
   };
 
   postPatch = ''
@@ -35,7 +36,13 @@ buildPythonPackage rec {
 
   disabled = isPy27;
 
-  checkInputs = [ mock ];
+  checkInputs = [
+    mock
+    pytestCheckHook
+  ];
+
+  pytestFlagsArray = [ "tests.py" ];
+  pythonImportsCheck = [ "pycognito" ];
 
   meta = with lib; {
     description = "Python class to integrate Boto3's Cognito client so it is easy to login users. With SRP support";
diff --git a/nixpkgs/pkgs/development/python-modules/pycoin/default.nix b/nixpkgs/pkgs/development/python-modules/pycoin/default.nix
index cb0431be61f8..a21c8f6f549d 100644
--- a/nixpkgs/pkgs/development/python-modules/pycoin/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pycoin/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , fetchPypi
 , buildPythonPackage
 , gnupg
@@ -33,7 +33,7 @@ buildPythonPackage rec {
     "test_tx_with_gpg"
   ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Utilities for Bitcoin and altcoin addresses and transaction manipulation";
     homepage = "https://github.com/richardkiss/pycoin";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/pycollada/default.nix b/nixpkgs/pkgs/development/python-modules/pycollada/default.nix
index 4015f9164e9d..4b177012f4ed 100644
--- a/nixpkgs/pkgs/development/python-modules/pycollada/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pycollada/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchPypi, buildPythonPackage, numpy, dateutil }:
+{ lib, stdenv, fetchPypi, buildPythonPackage, numpy, dateutil }:
 
 buildPythonPackage rec {
   pname = "pycollada";
@@ -15,7 +15,7 @@ buildPythonPackage rec {
   # (upstream packaging issue)
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Python library for reading and writing collada documents";
     homepage = "http://pycollada.github.io/";
     license = "BSD"; # they don't specify which BSD variant
diff --git a/nixpkgs/pkgs/development/python-modules/pycontracts/default.nix b/nixpkgs/pkgs/development/python-modules/pycontracts/default.nix
index 330acab3e1d0..0b511e024dc0 100644
--- a/nixpkgs/pkgs/development/python-modules/pycontracts/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pycontracts/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi
+{ lib, stdenv, buildPythonPackage, fetchPypi
 , nose, pyparsing, decorator, six, future }:
 
 buildPythonPackage rec {
@@ -13,7 +13,7 @@ buildPythonPackage rec {
   buildInputs = [ nose ];
   propagatedBuildInputs = [ pyparsing decorator six future ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Allows to declare constraints on function parameters and return values";
     homepage = "https://pypi.python.org/pypi/PyContracts";
     license = licenses.lgpl2;
diff --git a/nixpkgs/pkgs/development/python-modules/pycountry/default.nix b/nixpkgs/pkgs/development/python-modules/pycountry/default.nix
index 2cd707ee8dcb..b402e9092406 100644
--- a/nixpkgs/pkgs/development/python-modules/pycountry/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pycountry/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 ,
@@ -13,7 +13,7 @@ buildPythonPackage rec {
     sha256 = "0hnbabsmqimx5hqh0jbd2f64i8fhzhhbrvid57048hs5sd9ll241";
   };
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://bitbucket.org/flyingcircus/pycountry";
     description = "ISO country, subdivision, language, currency and script definitions and their translations";
     license = licenses.lgpl2;
diff --git a/nixpkgs/pkgs/development/python-modules/pycparser/default.nix b/nixpkgs/pkgs/development/python-modules/pycparser/default.nix
index f3fa6f883fb6..a246ce53a1e0 100644
--- a/nixpkgs/pkgs/development/python-modules/pycparser/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pycparser/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi, python }:
+{ lib, stdenv, buildPythonPackage, fetchPypi, python }:
 
 buildPythonPackage rec {
   pname = "pycparser";
@@ -13,7 +13,7 @@ buildPythonPackage rec {
     ${python.interpreter} -m unittest discover -s tests
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "C parser in Python";
     homepage = "https://github.com/eliben/pycparser";
     license = licenses.bsd3;
diff --git a/nixpkgs/pkgs/development/python-modules/pycryptodome/default.nix b/nixpkgs/pkgs/development/python-modules/pycryptodome/default.nix
index 40084c2885e8..e88b8529a356 100644
--- a/nixpkgs/pkgs/development/python-modules/pycryptodome/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pycryptodome/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchPypi, buildPythonPackage }:
+{ lib, fetchPypi, buildPythonPackage }:
 
 buildPythonPackage rec {
   version = "3.9.9";
@@ -9,9 +9,9 @@ buildPythonPackage rec {
     sha256 = "910e202a557e1131b1c1b3f17a63914d57aac55cf9fb9b51644962841c3995c4";
   };
 
-  meta = {
+  meta = with lib; {
     homepage = "https://www.pycryptodome.org/";
     description = "Python Cryptography Toolkit";
-    platforms = stdenv.lib.platforms.unix;
+    platforms = platforms.unix;
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/pycryptopp/default.nix b/nixpkgs/pkgs/development/python-modules/pycryptopp/default.nix
index 25ac99082c0a..0f17d9e59a80 100644
--- a/nixpkgs/pkgs/development/python-modules/pycryptopp/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pycryptopp/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , fetchpatch
@@ -34,7 +34,7 @@ buildPythonPackage rec {
 
   buildInputs = [ setuptoolsDarcs darcsver pkgs.cryptopp ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://tahoe-lafs.org/trac/pycryptopp";
     description = "Python wrappers for the Crypto++ library";
     license = licenses.gpl2Plus;
diff --git a/nixpkgs/pkgs/development/python-modules/pycuda/default.nix b/nixpkgs/pkgs/development/python-modules/pycuda/default.nix
index 3876485dd966..1db5df28e32a 100644
--- a/nixpkgs/pkgs/development/python-modules/pycuda/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pycuda/default.nix
@@ -12,7 +12,7 @@
 , cudatoolkit
 , python
 , mkDerivation
-, stdenv
+, lib
 }:
 let
   compyte = import ./compyte.nix {
@@ -28,7 +28,7 @@ buildPythonPackage rec {
     sha256 = "effa3b99b55af67f3afba9b0d1b64b4a0add4dd6a33bdd6786df1aa4cc8761a5";
   };
 
-  preConfigure = with stdenv.lib.versions; ''
+  preConfigure = with lib.versions; ''
     ${python.interpreter} configure.py --boost-inc-dir=${boost.dev}/include \
                           --boost-lib-dir=${boost}/lib \
                           --no-use-shipped-boost \
@@ -60,7 +60,7 @@ buildPythonPackage rec {
     Mako
   ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://github.com/inducer/pycuda/";
     description = "CUDA integration for Python.";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/pydenticon/default.nix b/nixpkgs/pkgs/development/python-modules/pydenticon/default.nix
index db04991e6ebc..763cfb9b8456 100644
--- a/nixpkgs/pkgs/development/python-modules/pydenticon/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pydenticon/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , pillow
@@ -16,7 +16,7 @@ buildPythonPackage rec {
 
   propagatedBuildInputs = [ pillow mock ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://github.com/azaghal/pydenticon";
     description = "Library for generating identicons. Port of Sigil (https://github.com/cupcake/sigil) with enhancements";
     license = licenses.bsd0;
diff --git a/nixpkgs/pkgs/development/python-modules/pydexcom/default.nix b/nixpkgs/pkgs/development/python-modules/pydexcom/default.nix
new file mode 100644
index 000000000000..f83d3cbf1102
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/pydexcom/default.nix
@@ -0,0 +1,30 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, requests
+}:
+
+buildPythonPackage rec {
+  pname = "pydexcom";
+  version = "0.2.0";
+
+  src = fetchFromGitHub {
+    owner = "gagebenne";
+    repo = pname;
+    rev = version;
+    sha256 = "19h7r0qbsqd6k6g4nz6z3k9kdmk0sx5zpsrgxwnhsff5fqi0y2ls";
+  };
+
+  propagatedBuildInputs = [ requests ];
+
+  # tests are interacting with the Dexcom API
+  doCheck = false;
+  pythonImportsCheck = [ "pydexcom" ];
+
+  meta = with lib; {
+    description = "Python API to interact with Dexcom Share service";
+    homepage = "https://github.com/gagebenne/pydexcom";
+    license = with licenses; [ mit ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/pydicom/default.nix b/nixpkgs/pkgs/development/python-modules/pydicom/default.nix
index 450a6a3c049e..08c5f099d28c 100644
--- a/nixpkgs/pkgs/development/python-modules/pydicom/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pydicom/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchFromGitHub
 , isPy27
@@ -51,7 +51,7 @@ buildPythonPackage {
     "test_fetch_data_files"
   ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://pydicom.github.io";
     description = "Pure-Python package for working with DICOM files";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/pydispatcher/default.nix b/nixpkgs/pkgs/development/python-modules/pydispatcher/default.nix
index 066410b7a0da..d132fad73138 100644
--- a/nixpkgs/pkgs/development/python-modules/pydispatcher/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pydispatcher/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , pytest
@@ -19,7 +19,7 @@ buildPythonPackage rec {
     py.test
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "http://pydispatcher.sourceforge.net/";
     description = "Signal-registration and routing infrastructure for use in multiple contexts";
     license = licenses.bsd3;
diff --git a/nixpkgs/pkgs/development/python-modules/pydns/default.nix b/nixpkgs/pkgs/development/python-modules/pydns/default.nix
index 399eab3e6742..a93820bfaef2 100644
--- a/nixpkgs/pkgs/development/python-modules/pydns/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pydns/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 }:
@@ -14,7 +14,7 @@ buildPythonPackage rec {
 
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Python DNS library";
     homepage = "http://pydns.sourceforge.net/";
     license = licenses.psfl;
diff --git a/nixpkgs/pkgs/development/python-modules/pydotplus/default.nix b/nixpkgs/pkgs/development/python-modules/pydotplus/default.nix
deleted file mode 100644
index bb25ecd85e26..000000000000
--- a/nixpkgs/pkgs/development/python-modules/pydotplus/default.nix
+++ /dev/null
@@ -1,28 +0,0 @@
-{ stdenv
-, buildPythonPackage
-, fetchPypi
-, pyparsing
-, graphviz
-}:
-
-buildPythonPackage rec {
-  pname = "pydotplus";
-  version = "2.0.2";
-
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "1i05cnk3yh722fdyaq0asr7z9xf7v7ikbmnpxa8j6pdqx6g5xs4i";
-  };
-
-  propagatedBuildInputs = [
-    pyparsing
-    graphviz
-  ];
-
-  meta = with stdenv.lib; {
-    homepage = "https://github.com/erocarrera/pydot";
-    description = "An improved version of the old pydot project that provides a Python Interface to Graphviz’s Dot language";
-    license = licenses.mit;
-    maintainers = with maintainers; [ ashgillman ];
-  };
-}
diff --git a/nixpkgs/pkgs/development/python-modules/pydub/default.nix b/nixpkgs/pkgs/development/python-modules/pydub/default.nix
index 42d33c00cbe8..884df63ce036 100644
--- a/nixpkgs/pkgs/development/python-modules/pydub/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pydub/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchFromGitHub, scipy, ffmpeg-full }:
+{ lib, stdenv, buildPythonPackage, fetchFromGitHub, scipy, ffmpeg-full }:
 
 buildPythonPackage rec {
   pname = "pydub";
@@ -13,7 +13,7 @@ buildPythonPackage rec {
 
 
   # disable a test that fails on aarch64 due to rounding errors
-  postPatch = stdenv.lib.optionalString stdenv.isAarch64 ''
+  postPatch = lib.optionalString stdenv.isAarch64 ''
     substituteInPlace test/test.py \
       --replace "test_overlay_with_gain_change" "notest_overlay_with_gain_change"
   '';
@@ -24,7 +24,7 @@ buildPythonPackage rec {
     python test/test.py
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Manipulate audio with a simple and easy high level interface.";
     homepage    = "http://pydub.com/";
     license     = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/pyechonest/default.nix b/nixpkgs/pkgs/development/python-modules/pyechonest/default.nix
index 510849edf475..10ade4fa2cab 100644
--- a/nixpkgs/pkgs/development/python-modules/pyechonest/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyechonest/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi, isPy3k }:
+{ lib, stdenv, buildPythonPackage, fetchPypi, isPy3k }:
 
 buildPythonPackage rec {
   pname = "pyechonest";
@@ -10,7 +10,7 @@ buildPythonPackage rec {
     sha256 = "1da4b3b8b457232a7eb35b59a48390b3c208759b01d596acaa71e6a172b40495";
   };
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Tap into The Echo Nest's Musical Brain for the best music search, information, recommendations and remix tools on the web";
     homepage = "https://github.com/echonest/pyechonest";
   };
diff --git a/nixpkgs/pkgs/development/python-modules/pyee/default.nix b/nixpkgs/pkgs/development/python-modules/pyee/default.nix
index 3c92dee783ad..712db3e87123 100644
--- a/nixpkgs/pkgs/development/python-modules/pyee/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyee/default.nix
@@ -21,7 +21,7 @@ buildPythonPackage rec {
     pytest-trio
     pytestrunner
     twisted
-  ] ++ stdenv.lib.optional isPy27 [
+  ] ++ lib.optional isPy27 [
     attrs
     futures
     pyparsing
diff --git a/nixpkgs/pkgs/development/python-modules/pyelftools/default.nix b/nixpkgs/pkgs/development/python-modules/pyelftools/default.nix
index 51e1886f1d0d..258c97a3c112 100644
--- a/nixpkgs/pkgs/development/python-modules/pyelftools/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyelftools/default.nix
@@ -1,18 +1,19 @@
-{ stdenv
+{ lib
 , buildPythonPackage
 , fetchFromGitHub
 , python
+, stdenv
 }:
 
 buildPythonPackage rec {
   pname = "pyelftools";
-  version = "unstable-2020-09-23";
+  version = "0.27";
 
   src = fetchFromGitHub {
     owner = "eliben";
     repo = pname;
-    rev = "ab84e68837113b2d700ad379d94c1dd4a73125ea";
-    sha256 = "sha256-O7l1kj0k8bOSOtZJVzS674oVnM+X3oP00Ybs0qjb64Q=";
+    rev = "v${version}";
+    sha256 = "09igdym2qj2fvfcazbz25qybmgz7ccrn25xn3havfkdkka0z0i3p";
   };
 
   doCheck = stdenv.is64bit && !stdenv.isDarwin;
@@ -24,11 +25,10 @@ buildPythonPackage rec {
 
   pythonImportsCheck = [ "elftools" ];
 
-  meta = with stdenv.lib; {
-    description = "A library for analyzing ELF files and DWARF debugging information";
+  meta = with lib; {
+    description = "Python library for analyzing ELF files and DWARF debugging information";
     homepage = "https://github.com/eliben/pyelftools";
     license = licenses.publicDomain;
     maintainers = with maintainers; [ igsha pamplemousse ];
   };
-
 }
diff --git a/nixpkgs/pkgs/development/python-modules/pyemd/default.nix b/nixpkgs/pkgs/development/python-modules/pyemd/default.nix
index c6bc941046d5..4e7594fbab5b 100644
--- a/nixpkgs/pkgs/development/python-modules/pyemd/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyemd/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi, numpy, cython }:
+{ lib, stdenv, buildPythonPackage, fetchPypi, numpy, cython }:
 
 buildPythonPackage rec {
   pname = "pyemd";
@@ -12,7 +12,7 @@ buildPythonPackage rec {
   propagatedBuildInputs = [ numpy ];
   buildInputs = [ cython ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "A Python wrapper for Ofir Pele and Michael Werman's implementation of the Earth Mover's Distance";
     homepage = "https://github.com/wmayner/pyemd";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/pyenchant/default.nix b/nixpkgs/pkgs/development/python-modules/pyenchant/default.nix
index 1c82f7c9d630..fe4182fd53d8 100644
--- a/nixpkgs/pkgs/development/python-modules/pyenchant/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyenchant/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , isPy27
 , fetchPypi
@@ -35,7 +35,7 @@ buildPythonPackage rec {
   # dictionaries needed for tests
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "pyenchant: Python bindings for the Enchant spellchecker";
     homepage = "https://github.com/pyenchant/pyenchant";
     license = licenses.lgpl21;
diff --git a/nixpkgs/pkgs/development/python-modules/pyeverlights/default.nix b/nixpkgs/pkgs/development/python-modules/pyeverlights/default.nix
new file mode 100644
index 000000000000..00b9f8fb0154
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/pyeverlights/default.nix
@@ -0,0 +1,30 @@
+{ lib
+, aiohttp
+, buildPythonPackage
+, fetchFromGitHub
+}:
+
+buildPythonPackage rec {
+  pname = "pyeverlights";
+  version = "0.1.0";
+
+  src = fetchFromGitHub {
+    owner = "joncar";
+    repo = pname;
+    rev = version;
+    sha256 = "16xpq933j8yydq78fnf4f7ivyw5a45ix4mfycpmm91aj549p6pm0";
+  };
+
+  propagatedBuildInputs = [ aiohttp ];
+
+  # no tests are present
+  doCheck = false;
+  pythonImportsCheck = [ "pyeverlights" ];
+
+  meta = with lib; {
+    description = "Python module for interfacing with an EverLights control box";
+    homepage = "https://github.com/joncar/pyeverlights";
+    license = with licenses; [ mit ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/pyevmasm/default.nix b/nixpkgs/pkgs/development/python-modules/pyevmasm/default.nix
new file mode 100644
index 000000000000..d2923f1ad44a
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/pyevmasm/default.nix
@@ -0,0 +1,30 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, future
+, pytestCheckHook
+}:
+
+buildPythonPackage rec {
+  pname = "pyevmasm";
+  version = "0.2.3";
+
+  src = fetchFromGitHub {
+    owner = "crytic";
+    repo = pname;
+    rev = version;
+    sha256 = "134q0z0dqzxzr0jw5jr98kp90kx2dl0qw9smykwxdgq555q1l6qa";
+  };
+
+  propagatedBuildInputs = [ future ];
+
+  checkInputs = [ pytestCheckHook ];
+
+  meta = with lib; {
+    description = "Ethereum Virtual Machine (EVM) assembler and disassembler";
+    homepage = "https://github.com/crytic/pyevmasm";
+    changelog = "https://github.com/crytic/pyevmasm/releases/tag/${version}";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ arturcygan ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/pyexcelerator/default.nix b/nixpkgs/pkgs/development/python-modules/pyexcelerator/default.nix
index 2dfb5831f7fe..373885073949 100644
--- a/nixpkgs/pkgs/development/python-modules/pyexcelerator/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyexcelerator/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , isPy3k
@@ -18,7 +18,7 @@ buildPythonPackage rec {
   # No tests are included in archive
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "library for generating Excel 97/2000/XP/2003 and OpenOffice Calc compatible spreadsheets.";
     homepage = "https://sourceforge.net/projects/pyexcelerator";
     license = licenses.bsdOriginal;
diff --git a/nixpkgs/pkgs/development/python-modules/pyexiv2/default.nix b/nixpkgs/pkgs/development/python-modules/pyexiv2/default.nix
index cca8b552de1e..bf7afdf79e2c 100644
--- a/nixpkgs/pkgs/development/python-modules/pyexiv2/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyexiv2/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchurl, python, exiv2, scons, boost }:
+{ lib, buildPythonPackage, fetchurl, python, exiv2, scons, boost }:
 
 buildPythonPackage rec {
   pname = "pyexiv2";
@@ -20,8 +20,8 @@ buildPythonPackage rec {
 
   buildInputs = [ python exiv2 scons boost ];
 
-  meta = {
-    platforms = stdenv.lib.platforms.linux;
+  meta = with lib; {
+    platforms = platforms.linux;
     # Likely needs an older boost which does not have `boost_pythonXY` but `boost_python`.
     broken = true; # 2018-06-23
   };
diff --git a/nixpkgs/pkgs/development/python-modules/pyext/default.nix b/nixpkgs/pkgs/development/python-modules/pyext/default.nix
index 9351ee5d1043..befbd3c2de1d 100644
--- a/nixpkgs/pkgs/development/python-modules/pyext/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyext/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchFromGitHub }:
+{ lib, stdenv, buildPythonPackage, fetchFromGitHub }:
 
 buildPythonPackage {
     pname = "pyext";
@@ -15,7 +15,7 @@ buildPythonPackage {
     # Has no test suite
     doCheck = false;
 
-    meta = with stdenv.lib; {
+    meta = with lib; {
       description = "Simple Python extensions";
       homepage = "https://github.com/kirbyfan64/PyExt";
       license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/pyface/default.nix b/nixpkgs/pkgs/development/python-modules/pyface/default.nix
index 68afbafef308..d317ebdf21b8 100644
--- a/nixpkgs/pkgs/development/python-modules/pyface/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyface/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchPypi, buildPythonPackage
+{ lib, fetchPypi, buildPythonPackage
 , setuptools, six, traits
 }:
 
@@ -15,10 +15,10 @@ buildPythonPackage rec {
 
   doCheck = false; # Needs X server
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Traits-capable windowing framework";
     homepage = "https://github.com/enthought/pyface";
-    maintainers = with stdenv.lib.maintainers; [ knedlsepp ];
+    maintainers = with maintainers; [ knedlsepp ];
     license = licenses.bsdOriginal;
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/pyfakefs/default.nix b/nixpkgs/pkgs/development/python-modules/pyfakefs/default.nix
index 6f44b7fb2796..64ec58487c45 100644
--- a/nixpkgs/pkgs/development/python-modules/pyfakefs/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyfakefs/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi, pythonOlder, python, pytest, glibcLocales }:
+{ lib, stdenv, buildPythonPackage, fetchPypi, pythonOlder, python, pytest, glibcLocales }:
 
 buildPythonPackage rec {
   version = "4.3.2";
@@ -19,7 +19,7 @@ buildPythonPackage rec {
       --replace "test_append_mode_tell_linux_windows" "notest_append_mode_tell_linux_windows"
     substituteInPlace pyfakefs/tests/fake_filesystem_unittest_test.py \
       --replace "test_copy_real_file" "notest_copy_real_file"
-  '' + (stdenv.lib.optionalString stdenv.isDarwin ''
+  '' + (lib.optionalString stdenv.isDarwin ''
     # this test fails on darwin due to case-insensitive file system
     substituteInPlace pyfakefs/tests/fake_os_test.py \
       --replace "test_rename_dir_to_existing_dir" "notest_rename_dir_to_existing_dir"
@@ -34,7 +34,7 @@ buildPythonPackage rec {
     ${python.interpreter} -m pytest pyfakefs/pytest_tests/pytest_plugin_test.py
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Fake file system that mocks the Python file system modules";
     license     = licenses.asl20;
     homepage    = "http://pyfakefs.org/";
diff --git a/nixpkgs/pkgs/development/python-modules/pyfantom/default.nix b/nixpkgs/pkgs/development/python-modules/pyfantom/default.nix
index a3facfc771ce..a17388b34b5c 100644
--- a/nixpkgs/pkgs/development/python-modules/pyfantom/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyfantom/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchgit
 }:
@@ -15,7 +15,7 @@ buildPythonPackage {
   # No tests included
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "http://pyfantom.ni.fr.eu.org/";
     description = "Wrapper for the LEGO Mindstorms Fantom Driver";
     license = licenses.gpl2;
diff --git a/nixpkgs/pkgs/development/python-modules/pyfftw/default.nix b/nixpkgs/pkgs/development/python-modules/pyfftw/default.nix
index c8dc83b4eba5..ff66dc8f8675 100644
--- a/nixpkgs/pkgs/development/python-modules/pyfftw/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyfftw/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi
+{ lib, stdenv, buildPythonPackage, fetchPypi
 , fftw, fftwFloat, fftwLongDouble, numpy, scipy, cython, dask }:
 
 buildPythonPackage rec {
@@ -25,7 +25,7 @@ buildPythonPackage rec {
   #  export DYLD_LIBRARY_PATH="${pkgs.fftw.out}/lib"
   #'';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "A pythonic wrapper around FFTW, the FFT library, presenting a unified interface for all the supported transforms";
     homepage = "http://hgomersall.github.com/pyFFTW/";
     license = with licenses; [ bsd2 bsd3 ];
diff --git a/nixpkgs/pkgs/development/python-modules/pyfido/default.nix b/nixpkgs/pkgs/development/python-modules/pyfido/default.nix
new file mode 100644
index 000000000000..43909e2c130f
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/pyfido/default.nix
@@ -0,0 +1,28 @@
+{ lib
+, aiohttp
+, buildPythonPackage
+, fetchPypi
+}:
+
+buildPythonPackage rec {
+  pname = "pyfido";
+  version = "2.1.1";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "0b28bhyhscaw7dbc92dxswann05x8mz92cagyawdfm8jnc67gq4b";
+  };
+
+  propagatedBuildInputs = [ aiohttp ];
+
+  # Project has no tests
+  doCheck = false;
+  pythonImportsCheck = [ "pyfido" ];
+
+  meta = with lib; {
+    description = "Python client to get fido account data";
+    homepage = "https://github.com/titilambert/pyfido";
+    license = with licenses; [ asl20 ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/pyfiglet/default.nix b/nixpkgs/pkgs/development/python-modules/pyfiglet/default.nix
index d8256e9632a3..a4fe9ec9dfe6 100644
--- a/nixpkgs/pkgs/development/python-modules/pyfiglet/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyfiglet/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi }:
+{ lib, stdenv, buildPythonPackage, fetchPypi }:
 
 buildPythonPackage rec {
   version = "0.8.post1";
@@ -11,7 +11,7 @@ buildPythonPackage rec {
 
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "FIGlet in pure Python";
     license     = licenses.gpl2Plus;
     maintainers = with maintainers; [ thoughtpolice ];
diff --git a/nixpkgs/pkgs/development/python-modules/pyflakes/default.nix b/nixpkgs/pkgs/development/python-modules/pyflakes/default.nix
index 04bc56df12d2..2ff88a78a4e7 100644
--- a/nixpkgs/pkgs/development/python-modules/pyflakes/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyflakes/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi, pythonOlder, unittest2 }:
+{ lib, stdenv, buildPythonPackage, fetchPypi, pythonOlder, unittest2 }:
 
 buildPythonPackage rec {
   pname = "pyflakes";
@@ -14,7 +14,7 @@ buildPythonPackage rec {
   # some tests are output dependent, which have changed slightly
   doCheck = pythonOlder "3.9";
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://launchpad.net/pyflakes";
     description = "A simple program which checks Python source files for errors";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/pyfnip/default.nix b/nixpkgs/pkgs/development/python-modules/pyfnip/default.nix
new file mode 100644
index 000000000000..1306c530bb43
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/pyfnip/default.nix
@@ -0,0 +1,28 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, requests
+}:
+
+buildPythonPackage rec {
+  pname = "pyfnip";
+  version = "0.2";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "0q52rb0kshgbligxjqrwz0v7kgqjbv6jahdb66ndxy93mfr0ig3a";
+  };
+
+  propagatedBuildInputs = [ requests ];
+
+  # Project has no tests
+  doCheck = false;
+  pythonImportsCheck = [ "pyfnip" ];
+
+  meta = with lib; {
+    description = "Python client to get fido account data";
+    homepage = "https://github.com/juhaniemi/pyfnip";
+    license = with licenses; [ mit ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/pyfribidi/default.nix b/nixpkgs/pkgs/development/python-modules/pyfribidi/default.nix
index e71550867a3d..dfe5449b2826 100644
--- a/nixpkgs/pkgs/development/python-modules/pyfribidi/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyfribidi/default.nix
@@ -1,4 +1,5 @@
-{ stdenv
+{ lib
+, stdenv
 , buildPythonPackage
 , fetchPypi
 , isPyPy
@@ -16,14 +17,14 @@ buildPythonPackage rec {
     sha256 = "64726a4a56783acdc79c6b9b3a15f16e6071077c897a0b999f3b43f744bc621c";
   };
 
-  patches = stdenv.lib.optional stdenv.cc.isClang ./pyfribidi-clang.patch;
+  patches = lib.optional stdenv.cc.isClang ./pyfribidi-clang.patch;
 
   propagatedBuildInputs = [ six ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "A simple wrapper around fribidi";
     homepage = "https://github.com/pediapress/pyfribidi";
-    license = stdenv.lib.licenses.gpl2;
+    license = licenses.gpl2;
   };
 
 }
diff --git a/nixpkgs/pkgs/development/python-modules/pyftdi/default.nix b/nixpkgs/pkgs/development/python-modules/pyftdi/default.nix
index 71253a894e76..2b46a4ce6825 100644
--- a/nixpkgs/pkgs/development/python-modules/pyftdi/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyftdi/default.nix
@@ -8,14 +8,14 @@
 
 buildPythonPackage rec {
   pname = "pyftdi";
-  version = "0.52.0";
+  version = "0.52.9";
   disabled = pythonOlder "3.5";
 
   src = fetchFromGitHub {
     owner = "eblot";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0nm4z7v9qcb9mxqbl21jgzica4faldnpy5qmbkrc6scnx55pxfm9";
+    sha256 = "07q9wmpl97a6laxfbcjqhv373msbsjppsyf5i77h0f6ccil0q1i6";
   };
 
   propagatedBuildInputs = [ pyusb pyserial ];
diff --git a/nixpkgs/pkgs/development/python-modules/pyftpdlib/default.nix b/nixpkgs/pkgs/development/python-modules/pyftpdlib/default.nix
index 721d279478d6..5d0d72eb4959 100644
--- a/nixpkgs/pkgs/development/python-modules/pyftpdlib/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyftpdlib/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , mock
@@ -23,7 +23,7 @@ buildPythonPackage rec {
   # on Hydra: https://hydra.nixos.org/build/84374861
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://github.com/giampaolo/pyftpdlib/";
     description = "Very fast asynchronous FTP server library";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/pyfttt/default.nix b/nixpkgs/pkgs/development/python-modules/pyfttt/default.nix
index 8592d9b0aeef..8648ad4f876d 100644
--- a/nixpkgs/pkgs/development/python-modules/pyfttt/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyfttt/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi
+{ lib, stdenv, buildPythonPackage, fetchPypi
 , requests }:
 
 buildPythonPackage rec {
@@ -15,7 +15,7 @@ buildPythonPackage rec {
   # tests need a server to run against
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Package for sending events to the IFTTT Webhooks Channel";
     homepage = "https://github.com/briandconnelly/pyfttt";
     maintainers = with maintainers; [ peterhoeg ];
diff --git a/nixpkgs/pkgs/development/python-modules/pygal/default.nix b/nixpkgs/pkgs/development/python-modules/pygal/default.nix
index b02b60434252..6855c9e4f02c 100644
--- a/nixpkgs/pkgs/development/python-modules/pygal/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pygal/default.nix
@@ -1,6 +1,7 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
+, fetchpatch
 , isPyPy
 , flask
 , pyquery
@@ -16,12 +17,20 @@ buildPythonPackage rec {
   pname = "pygal";
   version = "2.4.0";
 
-  doCheck = !isPyPy;  # one check fails with pypy
+  doCheck = !isPyPy; # one check fails with pypy
 
   src = fetchPypi {
     inherit pname version;
     sha256 = "9204f05380b02a8a32f9bf99d310b51aa2a932cba5b369f7a4dc3705f0a4ce83";
   };
+  patches = [
+    # Fixes compatibility with latest pytest. October 12, 2020.
+    # Should be included in the next release after 2.4.0
+    (fetchpatch {
+      url = "https://github.com/Kozea/pygal/commit/19e5399be18a054b3b293f4a8a2777d2df4f9c18.patch";
+      sha256 = "1j0hpcvd2mhi449wmlr0ml9gw4cakqk3av1j79bi2qy86dyrss2l";
+    })
+  ];
 
   buildInputs = [
     flask
@@ -46,12 +55,12 @@ buildPythonPackage rec {
   '';
 
   propagatedBuildInputs = [ cairosvg tinycss cssselect ]
-    ++ stdenv.lib.optionals (!isPyPy) [ lxml ];
+    ++ lib.optionals (!isPyPy) [ lxml ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Sexy and simple python charting";
     homepage = "http://www.pygal.org";
-    license = licenses.lgpl3;
+    license = licenses.lgpl3Plus;
     maintainers = with maintainers; [ sjourdois ];
   };
 
diff --git a/nixpkgs/pkgs/development/python-modules/pygame_sdl2/default.nix b/nixpkgs/pkgs/development/python-modules/pygame_sdl2/default.nix
index ab46a5670eeb..afca3dd7bc19 100644
--- a/nixpkgs/pkgs/development/python-modules/pygame_sdl2/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pygame_sdl2/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchurl, isPy27
+{ lib, stdenv, buildPythonPackage, fetchurl, isPy27
 , cython, SDL2, SDL2_image, SDL2_ttf, SDL2_mixer, libjpeg, libpng }:
 
 buildPythonPackage rec {
@@ -34,7 +34,7 @@ buildPythonPackage rec {
       ln -s pygame-sdl2 pygame_sdl2 || true ; )
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "A reimplementation of parts of pygame API using SDL2";
     homepage    = "https://github.com/renpy/pygame_sdl2";
     # Some parts are also available under Zlib License
diff --git a/nixpkgs/pkgs/development/python-modules/pygccxml/default.nix b/nixpkgs/pkgs/development/python-modules/pygccxml/default.nix
index 14bd14ab75e7..a1a6b0222b83 100644
--- a/nixpkgs/pkgs/development/python-modules/pygccxml/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pygccxml/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, castxml, fetchFromGitHub, buildPythonPackage,
+{ lib, stdenv, castxml, fetchFromGitHub, buildPythonPackage,
 llvmPackages }:
 buildPythonPackage rec {
   pname = "pygccxml";
@@ -17,7 +17,7 @@ buildPythonPackage rec {
   # but the format doesn't accept -isystem directives
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://github.com/gccxml/pygccxml";
     description = "Python package for easy C++ declarations navigation";
     license = licenses.boost;
diff --git a/nixpkgs/pkgs/development/python-modules/pygeoip/default.nix b/nixpkgs/pkgs/development/python-modules/pygeoip/default.nix
index 6cd21a94a9be..7aa16ac1e9a8 100644
--- a/nixpkgs/pkgs/development/python-modules/pygeoip/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pygeoip/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi
+{ lib, stdenv, buildPythonPackage, fetchPypi
 , nose }:
 
 buildPythonPackage rec {
@@ -15,7 +15,7 @@ buildPythonPackage rec {
 
   buildInputs = [ nose ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Pure Python GeoIP API";
     homepage = "https://github.com/appliedsec/pygeoip";
     license = licenses.lgpl3Plus;
diff --git a/nixpkgs/pkgs/development/python-modules/pyglet/default.nix b/nixpkgs/pkgs/development/python-modules/pyglet/default.nix
index a37872d90945..1bb36d6029ec 100644
--- a/nixpkgs/pkgs/development/python-modules/pyglet/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyglet/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , libGL
@@ -75,7 +75,7 @@ buildPythonPackage rec {
     py.test tests/unit tests/integration
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "http://www.pyglet.org/";
     description = "A cross-platform windowing and multimedia library";
     license = licenses.bsd3;
diff --git a/nixpkgs/pkgs/development/python-modules/pygments-better-html/default.nix b/nixpkgs/pkgs/development/python-modules/pygments-better-html/default.nix
index 87b8e0b3ffb7..2e5d6271c66a 100644
--- a/nixpkgs/pkgs/development/python-modules/pygments-better-html/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pygments-better-html/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , pygments
@@ -22,7 +22,7 @@ buildPythonPackage rec {
 
   pythonImportsCheck = [ "pygments_better_html" ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://github.com/Kwpolska/pygments_better_html";
     description = "Improved line numbering for Pygments’ HTML formatter.";
     license = licenses.bsd3;
diff --git a/nixpkgs/pkgs/development/python-modules/pygments-markdown-lexer/default.nix b/nixpkgs/pkgs/development/python-modules/pygments-markdown-lexer/default.nix
index 8f41995cf395..31a6b043494d 100644
--- a/nixpkgs/pkgs/development/python-modules/pygments-markdown-lexer/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pygments-markdown-lexer/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , pygments
@@ -18,7 +18,7 @@ buildPythonPackage rec {
 
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://github.com/jhermann/pygments-markdown-lexer";
     description = "Pygments Markdown Lexer – A Markdown lexer for Pygments to highlight Markdown code snippets";
     license = licenses.asl20;
diff --git a/nixpkgs/pkgs/development/python-modules/pygmt/default.nix b/nixpkgs/pkgs/development/python-modules/pygmt/default.nix
index 28e7db2a99ea..318706edd930 100644
--- a/nixpkgs/pkgs/development/python-modules/pygmt/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pygmt/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , pythonOlder
 , buildPythonPackage
 , fetchFromGitHub
@@ -36,7 +36,7 @@ buildPythonPackage rec {
 
   pythonImportsCheck = [ "pygmt" ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "A Python interface for the Generic Mapping Tools";
     homepage = "https://github.com/GenericMappingTools/pygmt";
     license = licenses.bsd3;
diff --git a/nixpkgs/pkgs/development/python-modules/pygobject/3.36.nix b/nixpkgs/pkgs/development/python-modules/pygobject/3.36.nix
index 7e31e788f31e..ccad57eba1ed 100644
--- a/nixpkgs/pkgs/development/python-modules/pygobject/3.36.nix
+++ b/nixpkgs/pkgs/development/python-modules/pygobject/3.36.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, buildPythonPackage, pkgconfig, glib, gobject-introspection,
+{ lib, stdenv, fetchurl, buildPythonPackage, pkg-config, glib, gobject-introspection,
 pycairo, cairo, which, ncurses, meson, ninja, isPy3k, gnome3 }:
 
 buildPythonPackage rec {
@@ -8,7 +8,7 @@ buildPythonPackage rec {
   format = "other";
 
   src = fetchurl {
-    url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
+    url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
     sha256 = "0b9CgC0c7BE7Wtqg579/N0W0RSHcIWNYjSdtXNYdcY8=";
   };
 
@@ -18,9 +18,9 @@ buildPythonPackage rec {
     "-Dpython=python${if isPy3k then "3" else "2" }"
   ];
 
-  nativeBuildInputs = [ pkgconfig meson ninja gobject-introspection ];
+  nativeBuildInputs = [ pkg-config meson ninja gobject-introspection ];
   buildInputs = [ glib gobject-introspection ]
-                 ++ stdenv.lib.optionals stdenv.isDarwin [ which ncurses ];
+                 ++ lib.optionals stdenv.isDarwin [ which ncurses ];
   propagatedBuildInputs = [ pycairo cairo ];
 
   passthru = {
@@ -30,7 +30,7 @@ buildPythonPackage rec {
     };
   };
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://pygobject.readthedocs.io/";
     description = "Python bindings for Glib";
     license = licenses.gpl2;
diff --git a/nixpkgs/pkgs/development/python-modules/pygobject/3.nix b/nixpkgs/pkgs/development/python-modules/pygobject/3.nix
index 6e34e7f91007..8c26ec6174b2 100644
--- a/nixpkgs/pkgs/development/python-modules/pygobject/3.nix
+++ b/nixpkgs/pkgs/development/python-modules/pygobject/3.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, buildPythonPackage, pkgconfig, glib, gobject-introspection,
+{ lib, stdenv, fetchurl, buildPythonPackage, pkg-config, glib, gobject-introspection,
 pycairo, cairo, which, ncurses, meson, ninja, isPy3k, gnome3 }:
 
 buildPythonPackage rec {
@@ -10,15 +10,15 @@ buildPythonPackage rec {
   format = "other";
 
   src = fetchurl {
-    url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
+    url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
     sha256 = "A3LRu5Ei/Bn1AKJJsfOMK7Z0hQAPWIdJe0sgWz5whNU=";
   };
 
   outputs = [ "out" "dev" ];
 
-  nativeBuildInputs = [ pkgconfig meson ninja gobject-introspection ];
+  nativeBuildInputs = [ pkg-config meson ninja gobject-introspection ];
   buildInputs = [ glib gobject-introspection ]
-                 ++ stdenv.lib.optionals stdenv.isDarwin [ which ncurses ];
+                 ++ lib.optionals stdenv.isDarwin [ which ncurses ];
   propagatedBuildInputs = [ pycairo cairo ];
 
   passthru = {
@@ -28,7 +28,7 @@ buildPythonPackage rec {
     };
   };
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://pygobject.readthedocs.io/";
     description = "Python bindings for Glib";
     license = licenses.gpl2;
diff --git a/nixpkgs/pkgs/development/python-modules/pygobject/default.nix b/nixpkgs/pkgs/development/python-modules/pygobject/default.nix
index a7b25e57a336..bf42d17b4deb 100644
--- a/nixpkgs/pkgs/development/python-modules/pygobject/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pygobject/default.nix
@@ -1,9 +1,10 @@
-{ stdenv, fetchurl, python, buildPythonPackage, pkgconfig, glib, isPy3k }:
+{ lib, stdenv, fetchurl, python, buildPythonPackage, pkg-config, glib, isPy3k, pythonAtLeast }:
 
 buildPythonPackage rec {
   pname = "pygobject";
   version = "2.28.7";
   format = "other";
+  disabled = pythonAtLeast "3.9";
 
   src = fetchurl {
     url = "mirror://gnome/sources/pygobject/2.28/${pname}-${version}.tar.xz";
@@ -12,20 +13,20 @@ buildPythonPackage rec {
 
   outputs = [ "out" "devdoc" ];
 
-  patches = stdenv.lib.optionals stdenv.isDarwin [
+  patches = lib.optionals stdenv.isDarwin [
     ./pygobject-2.0-fix-darwin.patch
   ];
 
   configureFlags = [ "--disable-introspection" ];
 
-  nativeBuildInputs = [ pkgconfig ];
+  nativeBuildInputs = [ pkg-config ];
   buildInputs = [ glib ];
 
   # in a "normal" setup, pygobject and pygtk are installed into the
   # same site-packages: we need a pth file for both. pygtk.py would be
   # used to select a specific version, in our setup it should have no
   # effect, but we leave it in case somebody expects and calls it.
-  postInstall = stdenv.lib.optionalString (!isPy3k) ''
+  postInstall = lib.optionalString (!isPy3k) ''
     mv $out/lib/${python.libPrefix}/site-packages/{pygtk.pth,${pname}-${version}.pth}
 
     # Prevent wrapping of codegen files as these are meant to be
@@ -33,9 +34,9 @@ buildPythonPackage rec {
     chmod a-x $out/share/pygobject/*/codegen/*.py
   '';
 
-  meta = {
+  meta = with lib; {
     homepage = "https://pygobject.readthedocs.io/";
     description = "Python bindings for GLib";
-    platforms = stdenv.lib.platforms.unix;
+    platforms = platforms.unix;
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/pygpgme/default.nix b/nixpkgs/pkgs/development/python-modules/pygpgme/default.nix
index 4322e76e3e74..416410ab3ce7 100644
--- a/nixpkgs/pkgs/development/python-modules/pygpgme/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pygpgme/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchurl, isPyPy
+{ lib, stdenv, buildPythonPackage, fetchurl, isPyPy
 , gpgme }:
 
 buildPythonPackage rec {
@@ -16,7 +16,7 @@ buildPythonPackage rec {
 
   propagatedBuildInputs = [ gpgme ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://launchpad.net/pygpgme";
     description = "A Python wrapper for the GPGME library";
     license = licenses.lgpl21;
diff --git a/nixpkgs/pkgs/development/python-modules/pygraphviz/default.nix b/nixpkgs/pkgs/development/python-modules/pygraphviz/default.nix
index a8d80f6e6175..f239647bafa5 100644
--- a/nixpkgs/pkgs/development/python-modules/pygraphviz/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pygraphviz/default.nix
@@ -1,5 +1,5 @@
-{ stdenv, buildPythonPackage, isPy3k, fetchPypi, substituteAll, graphviz
-, pkgconfig, doctest-ignore-unicode, mock, nose }:
+{ lib, stdenv, buildPythonPackage, isPy3k, fetchPypi, substituteAll, graphviz
+, pkg-config, doctest-ignore-unicode, mock, nose }:
 
 buildPythonPackage rec {
   pname = "pygraphviz";
@@ -13,7 +13,7 @@ buildPythonPackage rec {
     extension = "zip";
   };
 
-  nativeBuildInputs = [ pkgconfig ];
+  nativeBuildInputs = [ pkg-config ];
   buildInputs = [ graphviz ];
   checkInputs = [ doctest-ignore-unicode mock nose ];
 
@@ -31,7 +31,7 @@ buildPythonPackage rec {
   # https://github.com/pygraphviz/pygraphviz/pull/129
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Python interface to Graphviz graph drawing package";
     homepage = "https://github.com/pygraphviz/pygraphviz";
     license = licenses.bsd3;
diff --git a/nixpkgs/pkgs/development/python-modules/pygreat/default.nix b/nixpkgs/pkgs/development/python-modules/pygreat/default.nix
index bdced30f9831..20a96d1f8f2c 100644
--- a/nixpkgs/pkgs/development/python-modules/pygreat/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pygreat/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, isPy3k, fetchFromGitHub, future, pyusb }:
+{ lib, stdenv, buildPythonPackage, isPy3k, fetchFromGitHub, future, pyusb }:
 
 buildPythonPackage {
   pname = "pygreat";
@@ -22,7 +22,7 @@ buildPythonPackage {
     echo "$version" > ../VERSION
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Python library for talking with libGreat devices";
     homepage = "https://greatscottgadgets.com/greatfet/";
     license = with licenses; [ bsd3 ];
diff --git a/nixpkgs/pkgs/development/python-modules/pygtk/default.nix b/nixpkgs/pkgs/development/python-modules/pygtk/default.nix
index 4779f76aed46..938b55630c06 100644
--- a/nixpkgs/pkgs/development/python-modules/pygtk/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pygtk/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, fetchpatch, python, pkgconfig, gtk2, pygobject2, pycairo, pango
+{ lib, stdenv, fetchurl, fetchpatch, python, pkg-config, gtk2, pygobject2, pycairo, pango
 , buildPythonPackage, libglade ? null, isPy3k }:
 
 buildPythonPackage rec {
@@ -8,7 +8,7 @@ buildPythonPackage rec {
   disabled = isPy3k;
 
   src = fetchurl {
-    url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.bz2";
+    url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.bz2";
     sha256 = "04k942gn8vl95kwf0qskkv6npclfm31d78ljkrkgyqxxcni1w76d";
   };
 
@@ -24,10 +24,10 @@ buildPythonPackage rec {
     })
   ];
 
-  nativeBuildInputs = [ pkgconfig ];
+  nativeBuildInputs = [ pkg-config ];
   buildInputs = [
     pango
-  ] ++ stdenv.lib.optional (libglade != null) libglade;
+  ] ++ lib.optional (libglade != null) libglade;
 
   propagatedBuildInputs = [ gtk2 pygobject2 pycairo ];
 
@@ -35,11 +35,11 @@ buildPythonPackage rec {
 
   buildPhase = "buildPhase";
 
-  NIX_CFLAGS_COMPILE = stdenv.lib.optionalString stdenv.isDarwin "-ObjC";
+  NIX_CFLAGS_COMPILE = lib.optionalString stdenv.isDarwin "-ObjC";
 
   installPhase = "installPhase";
 
-  checkPhase = stdenv.lib.optionalString (libglade == null)
+  checkPhase = lib.optionalString (libglade == null)
     ''
       sed -i -e "s/glade = importModule('gtk.glade', buildDir)//" \
              tests/common.py
@@ -65,7 +65,7 @@ buildPythonPackage rec {
                   $out/lib/${python.libPrefix}/site-packages/${pname}-${version}.pth
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "GTK 2 Python bindings";
     homepage = "https://gitlab.gnome.org/Archive/pygtk";
     platforms = platforms.all;
diff --git a/nixpkgs/pkgs/development/python-modules/pygtksourceview/default.nix b/nixpkgs/pkgs/development/python-modules/pygtksourceview/default.nix
index 947b5733a7e5..57a21f1e1784 100644
--- a/nixpkgs/pkgs/development/python-modules/pygtksourceview/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pygtksourceview/default.nix
@@ -1,4 +1,4 @@
-{ lib, fetchurl, python, buildPythonPackage, pkgconfig, pygobject2, glib, pygtk, gnome2 }:
+{ lib, fetchurl, python, buildPythonPackage, pkg-config, pygobject2, glib, pygtk, gnome2 }:
 
 buildPythonPackage rec {
   pname = "pygtksourceview";
@@ -12,7 +12,7 @@ buildPythonPackage rec {
 
   patches = [ ./codegendir.patch ];
 
-  nativeBuildInputs = [ pkgconfig ];
+  nativeBuildInputs = [ pkg-config ];
   buildInputs = [ python pygobject2 glib pygtk gnome2.gtksourceview ];
 
   meta = {
diff --git a/nixpkgs/pkgs/development/python-modules/pyhamcrest/1.nix b/nixpkgs/pkgs/development/python-modules/pyhamcrest/1.nix
index 592172c6550d..5df52d9b658c 100644
--- a/nixpkgs/pkgs/development/python-modules/pyhamcrest/1.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyhamcrest/1.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi
+{ lib, stdenv, buildPythonPackage, fetchPypi
 , mock, pytest
 , six
 }:
@@ -16,7 +16,7 @@ buildPythonPackage rec {
 
   doCheck = false;  # pypi tarball does not include tests
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://github.com/hamcrest/PyHamcrest";
     description = "Hamcrest framework for matcher objects";
     license = licenses.bsd3;
diff --git a/nixpkgs/pkgs/development/python-modules/pyhamcrest/default.nix b/nixpkgs/pkgs/development/python-modules/pyhamcrest/default.nix
index 40469bd0deba..a66e26b1319a 100644
--- a/nixpkgs/pkgs/development/python-modules/pyhamcrest/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyhamcrest/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi
+{ lib, stdenv, buildPythonPackage, fetchPypi
 , mock, pytest
 , six
 }:
@@ -16,7 +16,7 @@ buildPythonPackage rec {
 
   doCheck = false;  # pypi tarball does not include tests
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://github.com/hamcrest/PyHamcrest";
     description = "Hamcrest framework for matcher objects";
     license = licenses.bsd3;
diff --git a/nixpkgs/pkgs/development/python-modules/pyhaversion/default.nix b/nixpkgs/pkgs/development/python-modules/pyhaversion/default.nix
index 1a32851e6f38..22290695cc0a 100644
--- a/nixpkgs/pkgs/development/python-modules/pyhaversion/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyhaversion/default.nix
@@ -1,49 +1,49 @@
 { lib
-, buildPythonPackage
-, fetchPypi
-, isPy3k
-# propagatedBuildInputs
 , aiohttp
+, aresponses
 , async-timeout
-, semantic-version
-# buildInputs
-, pytestrunner
-# checkInputs
-, pytest
+, awesomeversion
+, buildPythonPackage
+, fetchFromGitHub
+, pythonOlder
 , pytest-asyncio
-, aresponses
+, pytestCheckHook
 }:
+
 buildPythonPackage rec {
   pname = "pyhaversion";
-  version = "3.4.2";
+  version = "20.12.1";
 
-  # needs aiohttp which is py3k-only
-  disabled = !isPy3k;
+  # Only 3.8.0 and beyond are supported
+  disabled = pythonOlder "3.8";
 
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "b4e49dfa0f9dae10edd072e630d902e5497daa312baad58b7df7618efe863377";
+  src = fetchFromGitHub {
+    owner = "ludeeus";
+    repo = pname;
+    rev = version;
+    sha256 = "17yl67dgw75dghljcfwzblm11kqnh6sxf47w62mxz86aq9zrvcxd";
   };
 
   propagatedBuildInputs = [
     aiohttp
     async-timeout
-    semantic-version
-  ];
-
-  buildInputs = [
-    pytestrunner
+    awesomeversion
   ];
 
   checkInputs = [
-    pytest
-    pytest-asyncio
     aresponses
+    awesomeversion
+    pytest-asyncio
+    pytestCheckHook
   ];
 
+  pythonImportsCheck = [ "pyhaversion" ];
+
   meta = with lib; {
-    description = "A python module to the newest version number of Home Assistant";
+    description = "Python module to the newest version number of Home Assistant";
     homepage = "https://github.com/ludeeus/pyhaversion";
-    maintainers = [ maintainers.makefu ];
+    changelog = "https://github.com/ludeeus/pyhaversion/releases/tag/${version}";
+    license = with licenses; [ mit ];
+    maintainers = with maintainers; [ makefu ];
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/pyhomematic/default.nix b/nixpkgs/pkgs/development/python-modules/pyhomematic/default.nix
index 9534762f4e48..502d648b4007 100644
--- a/nixpkgs/pkgs/development/python-modules/pyhomematic/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyhomematic/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, isPy3k, fetchPypi }:
+{ lib, stdenv, buildPythonPackage, isPy3k, fetchPypi }:
 
 buildPythonPackage rec {
   pname = "pyhomematic";
@@ -15,7 +15,7 @@ buildPythonPackage rec {
   # Unreliable timing: https://github.com/danielperna84/pyhomematic/issues/126
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Python 3 Interface to interact with Homematic devices";
     homepage = "https://github.com/danielperna84/pyhomematic";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/pyicu/default.nix b/nixpkgs/pkgs/development/python-modules/pyicu/default.nix
index 9dcdfb64c93a..3512e33c81d7 100644
--- a/nixpkgs/pkgs/development/python-modules/pyicu/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyicu/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , pytest
@@ -29,7 +29,7 @@ buildPythonPackage rec {
   checkInputs = [ pytest ];
   propagatedBuildInputs = [ six ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://pypi.python.org/pypi/PyICU/";
     description = "Python extension wrapping the ICU C++ API";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/pyinotify/default.nix b/nixpkgs/pkgs/development/python-modules/pyinotify/default.nix
index 7193fe118fd2..92c2f5bb6717 100644
--- a/nixpkgs/pkgs/development/python-modules/pyinotify/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyinotify/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 }:
@@ -15,7 +15,7 @@ buildPythonPackage rec {
   # No tests distributed
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://github.com/seb-m/pyinotify/wiki";
     description = "Monitor filesystems events on Linux platforms with inotify";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/pyinputevent/default.nix b/nixpkgs/pkgs/development/python-modules/pyinputevent/default.nix
index 90d13ae07877..a52a0bb40010 100644
--- a/nixpkgs/pkgs/development/python-modules/pyinputevent/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyinputevent/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchFromGitHub
 }:
@@ -14,7 +14,7 @@ buildPythonPackage {
     sha256 = "0rkis0xp8f9jc00x7jb9kbvhdla24z1vl30djqa6wy6fx0cr6sib";
   };
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://github.com/ntzrmtthihu777/pyinputevent";
     description = "Python interface to the Input Subsystem's input_event and uinput";
     license = licenses.bsd3;
diff --git a/nixpkgs/pkgs/development/python-modules/pyinsteon/default.nix b/nixpkgs/pkgs/development/python-modules/pyinsteon/default.nix
new file mode 100644
index 000000000000..8596883326ba
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/pyinsteon/default.nix
@@ -0,0 +1,60 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, aiofiles
+, aiohttp
+, async_generator
+, pypubsub
+, pyserial
+, pyserial-asyncio
+, pyyaml
+, pytestCheckHook
+, pythonOlder
+, pytest-cov
+, pytest-asyncio
+, pytest-timeout
+}:
+
+buildPythonPackage rec {
+  pname = "pyinsteon";
+  version = "1.0.8";
+  disabled = pythonOlder "3.6";
+
+  src = fetchFromGitHub {
+    owner = pname;
+    repo = pname;
+    rev = version;
+    sha256 = "0d028fcqmdzxp0vsz7digx794s9l65ydsnsyvyx275z6577x7h4h";
+  };
+
+  propagatedBuildInputs = [
+    aiofiles
+    aiohttp
+    async_generator
+    pypubsub
+    pyserial
+    pyserial-asyncio
+    pyyaml
+  ];
+
+  checkInputs = [
+    pytest-asyncio
+    pytest-cov
+    pytest-timeout
+    pytestCheckHook
+  ];
+
+  pythonImportsCheck = [ "pyinsteon" ];
+
+  meta = with lib; {
+    description = "Python library to support Insteon home automation projects";
+    longDescription = ''
+      This is a Python package to interface with an Insteon Modem. It has been
+      tested to work with most USB or RS-232 serial based devices such as the
+      2413U, 2412S, 2448A7 and Hub models 2242 and 2245.
+    '';
+    homepage = "https://github.com/pyinsteon/pyinsteon";
+    license = with licenses; [ mit ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/pyipp/default.nix b/nixpkgs/pkgs/development/python-modules/pyipp/default.nix
index 98bb6360ce54..ed5a5f4576ab 100644
--- a/nixpkgs/pkgs/development/python-modules/pyipp/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyipp/default.nix
@@ -1,11 +1,18 @@
-{ lib, buildPythonPackage, fetchFromGitHub, isPy27
-, aiohttp, deepmerge, yarl
-, aresponses, pytest, pytest-asyncio, pytestcov }:
+{ lib
+, aiohttp
+, aresponses
+, buildPythonPackage
+, deepmerge
+, fetchFromGitHub
+, pytest-asyncio
+, pytestCheckHook
+, pytestcov
+, yarl
+}:
 
 buildPythonPackage rec {
   pname = "pyipp";
   version = "0.11.0";
-  disabled = isPy27;
 
   src = fetchFromGitHub {
    owner = "ctalkington";
@@ -22,14 +29,26 @@ buildPythonPackage rec {
 
   checkInputs = [
     aresponses
-    pytest
     pytest-asyncio
     pytestcov
+    pytestCheckHook
   ];
 
-  checkPhase = ''
-    pytest -q .
-  '';
+  # Some tests are failing due to encoding issues
+  # https://github.com/ctalkington/python-ipp/issues/121
+  disabledTests = [
+    "test_internal_session"
+    "test_request_port"
+    "est_http_error426"
+    "test_unexpected_response"
+    "test_printer"
+    "test_raw"
+    "test_ipp_request"
+    "test_request_tls"
+    "test_ipp_error_0x0503"
+  ];
+
+  pythonImportsCheck = [ "pyipp" ];
 
   meta = with lib; {
     description = "Asynchronous Python client for Internet Printing Protocol (IPP)";
diff --git a/nixpkgs/pkgs/development/python-modules/pyiqvia/default.nix b/nixpkgs/pkgs/development/python-modules/pyiqvia/default.nix
new file mode 100644
index 000000000000..762e39fe4b14
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/pyiqvia/default.nix
@@ -0,0 +1,53 @@
+{ lib
+, buildPythonPackage
+, aiohttp
+, aresponses
+, fetchFromGitHub
+, poetry
+, pytest-aiohttp
+, pytest-asyncio
+, pytestCheckHook
+, pythonOlder
+}:
+
+buildPythonPackage rec {
+  pname = "pyiqvia";
+  version = "0.3.1";
+  format = "pyproject";
+
+  disabled = pythonOlder "3.6";
+
+  src = fetchFromGitHub {
+    owner = "bachya";
+    repo = pname;
+    rev = version;
+    sha256 = "1yjsbq4p040a35n8g2l0wgnv83wkjirv4rj73s2mjzn3cxf395bz";
+  };
+
+  nativeBuildInputs = [ poetry ];
+
+  propagatedBuildInputs = [ aiohttp ];
+
+  checkInputs = [
+    aresponses
+    pytest-aiohttp
+    pytest-asyncio
+    pytestCheckHook
+  ];
+
+  # Ignore the examples as they are prefixed with test_
+  pytestFlagsArray = [ "--ignore examples/" ];
+  pythonImportsCheck = [ "pyiqvia" ];
+
+  meta = with lib; {
+    description = "Python3 API for IQVIA data";
+    longDescription = ''
+      pyiqvia is an async-focused Python library for allergen, asthma, and
+      disease data from the IQVIA family of websites (such as https://pollen.com,
+      https://flustar.com and more).
+    '';
+    homepage = "https://github.com/bachya/pyiqvia";
+    license = with licenses; [ mit ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/pykdtree/default.nix b/nixpkgs/pkgs/development/python-modules/pykdtree/default.nix
index 9f355743ead2..f37ddb2483e1 100644
--- a/nixpkgs/pkgs/development/python-modules/pykdtree/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pykdtree/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi, numpy, nose, openmp }:
+{ lib, stdenv, buildPythonPackage, fetchPypi, numpy, nose, openmp }:
 
 buildPythonPackage rec {
   pname = "pykdtree";
@@ -15,7 +15,7 @@ buildPythonPackage rec {
 
   checkInputs = [ nose ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "kd-tree implementation for fast nearest neighbour search in Python";
     homepage = "https://github.com/storpipfugl/pykdtree";
     license = licenses.lgpl3;
diff --git a/nixpkgs/pkgs/development/python-modules/pykerberos/default.nix b/nixpkgs/pkgs/development/python-modules/pykerberos/default.nix
index 07db7e7002bd..07a32a25a0c6 100644
--- a/nixpkgs/pkgs/development/python-modules/pykerberos/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pykerberos/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchPypi, buildPythonPackage, krb5 }:
+{ lib, stdenv, fetchPypi, buildPythonPackage, krb5 }:
 
 buildPythonPackage rec {
   pname = "pykerberos";
@@ -16,7 +16,7 @@ buildPythonPackage rec {
   # there are no tests
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "High-level interface to Kerberos";
     license     = licenses.asl20;
     maintainers = with maintainers; [ catern ];
diff --git a/nixpkgs/pkgs/development/python-modules/pykickstart/default.nix b/nixpkgs/pkgs/development/python-modules/pykickstart/default.nix
index 6461f0391caa..bc10295e232a 100644
--- a/nixpkgs/pkgs/development/python-modules/pykickstart/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pykickstart/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchurl
 , urlgrabber
@@ -29,7 +29,7 @@ buildPythonPackage rec {
     ${python.interpreter} tests/baseclass.py -vv
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "http://fedoraproject.org/wiki/Pykickstart";
     description = "Read and write Fedora kickstart files";
     license = licenses.gpl2Plus;
diff --git a/nixpkgs/pkgs/development/python-modules/pykira/default.nix b/nixpkgs/pkgs/development/python-modules/pykira/default.nix
new file mode 100644
index 000000000000..43d381e6bce7
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/pykira/default.nix
@@ -0,0 +1,25 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+}:
+
+buildPythonPackage rec {
+  pname = "pykira";
+  version = "0.1.2";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "0zxglzmd2k1nc4wri76ykra910fdgli027nw9d6541ic7xmw87vj";
+  };
+
+  # Project has no tests
+  doCheck = false;
+  pythonImportsCheck = [ "pykira" ];
+
+  meta = with lib; {
+    description = "Python module to interact with Kira modules";
+    homepage = "https://github.com/stu-gott/pykira";
+    license = with licenses; [ mit ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/pylacrosse/default.nix b/nixpkgs/pkgs/development/python-modules/pylacrosse/default.nix
new file mode 100644
index 000000000000..74b244f52965
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/pylacrosse/default.nix
@@ -0,0 +1,37 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, mock
+, nose
+, pyserial
+, pytestCheckHook
+}:
+
+buildPythonPackage rec {
+  pname = "pylacrosse";
+  version = "0.4";
+
+  src = fetchFromGitHub {
+    owner = "hthiery";
+    repo = "python-lacrosse";
+    rev = version;
+    sha256 = "0g5hqm8lq0gsnvhcydjk54rjf7lpxzph8k7w1nnvnqfbhf31xfcf";
+  };
+
+  propagatedBuildInputs = [ pyserial ];
+
+  checkInputs = [
+    mock
+    nose
+    pytestCheckHook
+  ];
+
+  pythonImportsCheck = [ "pylacrosse" ];
+
+  meta = with lib; {
+    description = "Python library for Jeelink LaCrosse";
+    homepage = "https://github.com/hthiery/python-lacrosse";
+    license = with licenses; [ lgpl2Plus ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/pylast/default.nix b/nixpkgs/pkgs/development/python-modules/pylast/default.nix
index 12fac476f633..707554be5599 100644
--- a/nixpkgs/pkgs/development/python-modules/pylast/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pylast/default.nix
@@ -1,16 +1,16 @@
-{ stdenv, buildPythonPackage, fetchPypi, isPy3k, certifi, six
+{ lib, stdenv, buildPythonPackage, fetchPypi, isPy3k, certifi, six
 , setuptools_scm
 }:
 
 buildPythonPackage rec {
   pname = "pylast";
-  version = "4.0.0";
+  version = "4.1.0";
 
   disabled = !isPy3k;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "8ec555d6c4c1b474e9b3c96c3786abd38303a1a5716d928b0f3cfdcb4499b093";
+    sha256 = "ad084aec1bf7e307bc42d7cc1a003851f5bee1ad24fb697a9fdc300bbfe63932";
   };
 
   nativeBuildInputs = [ setuptools_scm ];
@@ -19,7 +19,7 @@ buildPythonPackage rec {
   # tests require last.fm credentials
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://github.com/pylast/pylast";
     description = "A python interface to last.fm (and compatibles)";
     license = licenses.asl20;
diff --git a/nixpkgs/pkgs/development/python-modules/pylibconfig2/default.nix b/nixpkgs/pkgs/development/python-modules/pylibconfig2/default.nix
index 3c2a0be941df..25989d0353e0 100644
--- a/nixpkgs/pkgs/development/python-modules/pylibconfig2/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pylibconfig2/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi, pyparsing }:
+{ lib, stdenv, buildPythonPackage, fetchPypi, pyparsing }:
 buildPythonPackage rec {
   pname = "pylibconfig2";
   version = "0.2.5";
@@ -13,7 +13,7 @@ buildPythonPackage rec {
 
   propagatedBuildInputs = [ pyparsing ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://github.com/heinzK1X/pylibconfig2";
     description = "Pure python library for libconfig syntax";
     license = licenses.gpl3;
diff --git a/nixpkgs/pkgs/development/python-modules/pyliblo/default.nix b/nixpkgs/pkgs/development/python-modules/pyliblo/default.nix
index 4c0a406bed34..454f08fd10ed 100644
--- a/nixpkgs/pkgs/development/python-modules/pyliblo/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyliblo/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchurl
 , isPyPy
@@ -18,7 +18,7 @@ buildPythonPackage rec {
 
   buildInputs = [ liblo cython ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "http://das.nasophon.de/pyliblo/";
     description = "Python wrapper for the liblo OSC library";
     license = licenses.lgpl21;
diff --git a/nixpkgs/pkgs/development/python-modules/pylibmc/default.nix b/nixpkgs/pkgs/development/python-modules/pylibmc/default.nix
index 26d6e4fb6fb6..8bb62c091348 100644
--- a/nixpkgs/pkgs/development/python-modules/pylibmc/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pylibmc/default.nix
@@ -1,4 +1,4 @@
-{ buildPythonPackage, fetchPypi, stdenv, libmemcached, zlib, cyrus_sasl }:
+{ buildPythonPackage, fetchPypi, lib, stdenv, libmemcached, zlib, cyrus_sasl }:
 
 buildPythonPackage rec {
   version = "1.6.1";
@@ -15,7 +15,7 @@ buildPythonPackage rec {
   # requires an external memcached server running
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Quick and small memcached client for Python";
     homepage = "http://sendapatch.se/projects/pylibmc/";
     license = licenses.bsd3;
diff --git a/nixpkgs/pkgs/development/python-modules/pyls-spyder/default.nix b/nixpkgs/pkgs/development/python-modules/pyls-spyder/default.nix
new file mode 100644
index 000000000000..7e1fa0606191
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/pyls-spyder/default.nix
@@ -0,0 +1,24 @@
+{ lib, buildPythonPackage, fetchPypi, python-language-server }:
+
+buildPythonPackage rec {
+  pname = "pyls-spyder";
+  version = "0.3.0";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "07apxh12b8ybkx5izr7pg8kbg5g5wgzw7vh5iy2n8dhiqarzp7s1";
+  };
+
+  propagatedBuildInputs = [ python-language-server ];
+
+  # no tests
+  doCheck = false;
+  pythonImportsCheck = [ "pyls_spyder" ];
+
+  meta = with lib; {
+    description = "Spyder extensions for the python-language-server";
+    homepage = "https://github.com/spyder-ide/pyls-spyder";
+    license = licenses.mit;
+    maintainers = with maintainers; [ SuperSandro2000 ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/pylutron/default.nix b/nixpkgs/pkgs/development/python-modules/pylutron/default.nix
new file mode 100644
index 000000000000..90a45640812e
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/pylutron/default.nix
@@ -0,0 +1,25 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+}:
+
+buildPythonPackage rec {
+  pname = "pylutron";
+  version = "0.2.6";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1q8qdy26s9hvfsh75pak7xiqjwrwsgq18p4d86dwf4dwmy5s4qj1";
+  };
+
+  # Project has no tests
+  doCheck = false;
+  pythonImportsCheck = [ "pylutron" ];
+
+  meta = with lib; {
+    description = "Python library for controlling a Lutron RadioRA 2 system";
+    homepage = "https://github.com/thecynic/pylutron";
+    license = with licenses; [ mit ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/pymaging/default.nix b/nixpkgs/pkgs/development/python-modules/pymaging/default.nix
index 68a2e59b298c..3b35ce3e7166 100644
--- a/nixpkgs/pkgs/development/python-modules/pymaging/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pymaging/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchFromGitHub
 }:
@@ -14,7 +14,7 @@ buildPythonPackage {
     sha256 = "18g3n7kfrark30l4vzykh0gdbnfv5wb1zvvjbs17sj6yampypn38";
   };
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Pure Python imaging library with Python 2.6, 2.7, 3.1+ support";
     homepage    = "http://pymaging.rtfd.org";
     license     = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/pymaging_png/default.nix b/nixpkgs/pkgs/development/python-modules/pymaging_png/default.nix
index 9bf2559e2f0c..64ea5b4ff5b0 100644
--- a/nixpkgs/pkgs/development/python-modules/pymaging_png/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pymaging_png/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchFromGitHub
 , pymaging
@@ -17,7 +17,7 @@ buildPythonPackage {
 
   propagatedBuildInputs = [ pymaging ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Pure Python imaging library with Python 2.6, 2.7, 3.1+ support";
     homepage    = "https://github.com/ojii/pymaging-png/";
     license     = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/pymata-express/default.nix b/nixpkgs/pkgs/development/python-modules/pymata-express/default.nix
new file mode 100644
index 000000000000..1a50a91a3092
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/pymata-express/default.nix
@@ -0,0 +1,38 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, pyserial
+, pytestCheckHook
+, pythonOlder
+}:
+
+buildPythonPackage rec {
+  pname = "pymata-express";
+  version = "1.19";
+  disabled = pythonOlder "3.7";
+
+  src = fetchFromGitHub {
+    owner = "MrYsLab";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "0gfjmqcxwsnfjgll6ql5xd1n3xp4klf4fcaajaivh053i02p0a79";
+  };
+
+  propagatedBuildInputs = [ pyserial ];
+
+  # Project has no tests
+  doCheck = false;
+  pythonImportsCheck = [ "pymata_express" ];
+
+  meta = with lib; {
+    description = "Python Asyncio Arduino Firmata Client";
+    longDescription = ''
+      Pymata-Express is a Python Firmata Protocol client. When used in conjunction
+      with an Arduino Firmata sketch, it permits you to control and monitor Arduino
+      hardware remotely over a serial link.
+    '';
+    homepage = "https://mryslab.github.io/pymata-express/";
+    license = with licenses; [ agpl3Plus ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/pymatgen/default.nix b/nixpkgs/pkgs/development/python-modules/pymatgen/default.nix
index ce89cb1e079e..84fcdbef6a3f 100644
--- a/nixpkgs/pkgs/development/python-modules/pymatgen/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pymatgen/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi
+{ lib, stdenv, buildPythonPackage, fetchPypi
 , enum34
 , glibcLocales
 , matplotlib
@@ -53,7 +53,7 @@ buildPythonPackage rec {
   # No tests in pypi tarball.
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "A robust materials analysis code that defines core object representations for structures and molecules";
     homepage = "https://pymatgen.org/";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/pymediainfo/default.nix b/nixpkgs/pkgs/development/python-modules/pymediainfo/default.nix
index 8438df73c1c4..b04276f1f559 100644
--- a/nixpkgs/pkgs/development/python-modules/pymediainfo/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pymediainfo/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchPypi, buildPythonPackage
+{ lib, stdenv, fetchPypi, buildPythonPackage
 , libmediainfo
 , setuptools_scm
 , pytest, glibcLocales }:
@@ -31,7 +31,7 @@ buildPythonPackage rec {
     py.test -k 'not test_parse_url' tests
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Python wrapper for the mediainfo library";
     homepage = "https://github.com/sbraz/pymediainfo";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/pymeeus/default.nix b/nixpkgs/pkgs/development/python-modules/pymeeus/default.nix
index 4c8097325bcc..96fb9d6f6943 100644
--- a/nixpkgs/pkgs/development/python-modules/pymeeus/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pymeeus/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi, pytest }:
+{ lib, stdenv, buildPythonPackage, fetchPypi, pytest }:
 
 buildPythonPackage rec {
   pname = "PyMeeus";
@@ -15,7 +15,7 @@ buildPythonPackage rec {
     pytest .
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://github.com/architest/pymeeus";
     description = "Library of astronomical algorithms";
     license = licenses.lgpl3;
diff --git a/nixpkgs/pkgs/development/python-modules/pymemoize/default.nix b/nixpkgs/pkgs/development/python-modules/pymemoize/default.nix
index 4efafeaaca42..b44ff9fef491 100644
--- a/nixpkgs/pkgs/development/python-modules/pymemoize/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pymemoize/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , django
@@ -19,7 +19,7 @@ buildPythonPackage rec {
   # django.core.exceptions.ImproperlyConfigured: Requested settings, but settings are not configured. You must either define the environment variable DJANGO_SETTINGS_MODULE or call settings.configure() before accessing settings
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Simple Python cache and memoizing module";
     homepage = "https://github.com/mikeboers/PyMemoize";
     license = licenses.bsd3;
diff --git a/nixpkgs/pkgs/development/python-modules/pymetar/default.nix b/nixpkgs/pkgs/development/python-modules/pymetar/default.nix
index 6896eaa097ec..84139091ae49 100644
--- a/nixpkgs/pkgs/development/python-modules/pymetar/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pymetar/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, python, buildPythonPackage, isPy3k, fetchPypi }:
+{ lib, stdenv, python, buildPythonPackage, isPy3k, fetchPypi }:
 
 buildPythonPackage rec {
   pname = "pymetar";
@@ -21,7 +21,7 @@ buildPythonPackage rec {
     ./runtests.sh
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "A command-line tool to show the weather report by a given station ID";
     homepage = "http://www.schwarzvogel.de/software/pymetar.html";
     license = licenses.gpl2Plus;
diff --git a/nixpkgs/pkgs/development/python-modules/pymetno/default.nix b/nixpkgs/pkgs/development/python-modules/pymetno/default.nix
index 92e26c4f6e53..2b10e2f164fb 100644
--- a/nixpkgs/pkgs/development/python-modules/pymetno/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pymetno/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchFromGitHub
 , aiohttp
@@ -22,7 +22,7 @@ buildPythonPackage rec {
 
   pythonImportsCheck = [ "metno"];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "A library to communicate with the met.no api";
     homepage = "https://github.com/Danielhiversen/pyMetno/";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/pymodbus/default.nix b/nixpkgs/pkgs/development/python-modules/pymodbus/default.nix
new file mode 100644
index 000000000000..76f2e9a9338b
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/pymodbus/default.nix
@@ -0,0 +1,59 @@
+{ lib
+, asynctest
+, buildPythonPackage
+, fetchFromGitHub
+, mock
+, pyserial
+, pyserial-asyncio
+, pytestCheckHook
+, pythonOlder
+, redis
+, sqlalchemy
+, tornado
+, twisted
+}:
+
+buildPythonPackage rec {
+  pname = "pymodbus";
+  version = "2.4.0";
+
+  src = fetchFromGitHub {
+    owner = "riptideio";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "0x0dv02shcc2yxxm9kvcbhip111sna74dvcfssxdzzy967vnq76v";
+  };
+
+  # Twisted asynchronous version is not supported due to a missing dependency
+  propagatedBuildInputs = [
+    pyserial
+    pyserial-asyncio
+    tornado
+  ];
+
+  checkInputs = [
+    asynctest
+    mock
+    pyserial-asyncio
+    pytestCheckHook
+    redis
+    sqlalchemy
+    tornado
+    twisted
+  ];
+
+  pythonImportsCheck = [ "pymodbus" ];
+
+  meta = with lib; {
+    description = "Python implementation of the Modbus protocol";
+    longDescription = ''
+      Pymodbus is a full Modbus protocol implementation using twisted,
+      torndo or asyncio for its asynchronous communications core. It can
+      also be used without any third party dependencies if a more
+      lightweight project is needed.
+    '';
+    homepage = "https://github.com/riptideio/pymodbus";
+    license = with licenses; [ bsd3 ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/pympler/default.nix b/nixpkgs/pkgs/development/python-modules/pympler/default.nix
index f80c91e8f2dd..856458bf043f 100644
--- a/nixpkgs/pkgs/development/python-modules/pympler/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pympler/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 }:
@@ -18,7 +18,7 @@ buildPythonPackage rec {
 
   doCheck = stdenv.hostPlatform.isLinux;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Tool to measure, monitor and analyze memory behavior";
     homepage = "https://pythonhosted.org/Pympler/";
     license = licenses.asl20;
diff --git a/nixpkgs/pkgs/development/python-modules/pymsgbox/default.nix b/nixpkgs/pkgs/development/python-modules/pymsgbox/default.nix
index d844144addbc..d69c0011ac53 100644
--- a/nixpkgs/pkgs/development/python-modules/pymsgbox/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pymsgbox/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchPypi, buildPythonPackage, tkinter }:
+{ lib, stdenv, fetchPypi, buildPythonPackage, tkinter }:
 
 buildPythonPackage rec {
   pname = "PyMsgBox";
@@ -15,7 +15,7 @@ buildPythonPackage rec {
   # Finding tests fails
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "A simple, cross-platform, pure Python module for JavaScript-like message boxes";
     homepage = "https://github.com/asweigart/PyMsgBox";
     license = licenses.bsd3;
diff --git a/nixpkgs/pkgs/development/python-modules/pymupdf/default.nix b/nixpkgs/pkgs/development/python-modules/pymupdf/default.nix
index 30df7589c9ee..8ce7d5a19c6f 100644
--- a/nixpkgs/pkgs/development/python-modules/pymupdf/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pymupdf/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi, mupdf, swig }:
+{ lib, stdenv, buildPythonPackage, fetchPypi, mupdf, swig }:
 buildPythonPackage rec {
   pname = "pymupdf";
   version = "1.18.0";
@@ -18,7 +18,7 @@ buildPythonPackage rec {
 
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Python bindings for MuPDF's rendering library.";
     homepage = "https://github.com/pymupdf/PyMuPDF";
     maintainers = with maintainers; [ teto ];
diff --git a/nixpkgs/pkgs/development/python-modules/pymyq/default.nix b/nixpkgs/pkgs/development/python-modules/pymyq/default.nix
new file mode 100644
index 000000000000..2500909d534e
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/pymyq/default.nix
@@ -0,0 +1,36 @@
+{ lib
+, aiodns
+, aiohttp
+, async-timeout
+, buildPythonPackage
+, fetchFromGitHub
+}:
+
+buildPythonPackage rec {
+  pname = "pymyq";
+  version = "2.0.14";
+
+  src = fetchFromGitHub {
+    owner = "arraylabs";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "18825b9c6qk4zcvva79hpg6098z4zqxyapnqmjsli23npw0zh67w";
+  };
+
+  propagatedBuildInputs = [
+    aiodns
+    aiohttp
+    async-timeout
+  ];
+
+  # Project has no tests
+  doCheck = false;
+  pythonImportsCheck = [ "pymyq" ];
+
+  meta = with lib; {
+    description = "Python wrapper for MyQ API";
+    homepage = "https://github.com/arraylabs/pymyq";
+    license = with licenses; [ mit ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/pymysqlsa/default.nix b/nixpkgs/pkgs/development/python-modules/pymysqlsa/default.nix
index 16c0e1a58d3f..6009b03e5086 100644
--- a/nixpkgs/pkgs/development/python-modules/pymysqlsa/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pymysqlsa/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , pymysql
@@ -17,7 +17,7 @@ buildPythonPackage rec {
 
   propagatedBuildInputs = [ pymysql sqlalchemy ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "PyMySQL dialect for SQL Alchemy";
     homepage = "https://pypi.python.org/pypi/pymysql_sa";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/pynac/default.nix b/nixpkgs/pkgs/development/python-modules/pynac/default.nix
index 69233adc264e..656825a36bbb 100644
--- a/nixpkgs/pkgs/development/python-modules/pynac/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pynac/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchurl
 }:
@@ -12,7 +12,7 @@ buildPythonPackage {
     sha256 = "0avzqqcxl54karjmla9jbsyid98mva36lxahwmrsx5h40ys2ggxp";
   };
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://github.com/se-esss-litterbox/Pynac";
     description = "A Python wrapper around the Dynac charged particle simulator";
     license = licenses.gpl3;
diff --git a/nixpkgs/pkgs/development/python-modules/pynacl/default.nix b/nixpkgs/pkgs/development/python-modules/pynacl/default.nix
index dfce6652d03a..be69bf3d8023 100644
--- a/nixpkgs/pkgs/development/python-modules/pynacl/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pynacl/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , pytest
@@ -28,7 +28,7 @@ buildPythonPackage rec {
     py.test
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     maintainers = with maintainers; [ va1entin ];
     description = "Python binding to the Networking and Cryptography (NaCl) library";
     homepage = "https://github.com/pyca/pynacl/";
diff --git a/nixpkgs/pkgs/development/python-modules/pync/default.nix b/nixpkgs/pkgs/development/python-modules/pync/default.nix
index b7c819c4593d..9506b8bae953 100644
--- a/nixpkgs/pkgs/development/python-modules/pync/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pync/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , isPy27
@@ -19,11 +19,11 @@ buildPythonPackage rec {
   buildInputs = [ pkgs.coreutils ];
   propagatedBuildInputs = [ dateutil ];
 
-  preInstall = stdenv.lib.optionalString stdenv.isDarwin ''
+  preInstall = lib.optionalString stdenv.isDarwin ''
     sed -i 's|^\([ ]*\)self.bin_path.*$|\1self.bin_path = "${pkgs.terminal-notifier}/bin/terminal-notifier"|' build/lib/pync/TerminalNotifier.py
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Python Wrapper for Mac OS 10.8 Notification Center";
     homepage    = "https://pypi.python.org/pypi/pync/1.4";
     license     = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/pynest2d/default.nix b/nixpkgs/pkgs/development/python-modules/pynest2d/default.nix
index 3a7c6b43392b..6214f3db42b2 100644
--- a/nixpkgs/pkgs/development/python-modules/pynest2d/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pynest2d/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchFromGitHub, python3, cmake
+{ lib, stdenv, buildPythonPackage, fetchFromGitHub, python3, cmake
 , pythonOlder, libnest2d, sip, clipper }:
 
 buildPythonPackage rec {
@@ -22,7 +22,7 @@ buildPythonPackage rec {
      sed -i 's#''${Python3_SITEARCH}#${placeholder "out"}/${python3.sitePackages}#' cmake/SIPMacros.cmake
    '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Python bindings for libnest2d";
     homepage = "https://github.com/Ultimaker/pynest2d";
     license = licenses.lgpl3;
diff --git a/nixpkgs/pkgs/development/python-modules/pynisher/default.nix b/nixpkgs/pkgs/development/python-modules/pynisher/default.nix
index e2ead68d11b9..0ecac704e1e8 100644
--- a/nixpkgs/pkgs/development/python-modules/pynisher/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pynisher/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi, psutil, docutils }:
+{ lib, stdenv, buildPythonPackage, fetchPypi, psutil, docutils }:
 
 buildPythonPackage rec {
   pname = "pynisher";
@@ -14,7 +14,7 @@ buildPythonPackage rec {
   # no tests in the Pypi archive
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "The pynisher is a little module intended to limit a functions resources.";
     homepage = "https://github.com/sfalkner/pynisher";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/pynput/default.nix b/nixpkgs/pkgs/development/python-modules/pynput/default.nix
index b525f22b2d34..49da01f8e716 100644
--- a/nixpkgs/pkgs/development/python-modules/pynput/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pynput/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi, sphinx, setuptools-lint, xlib, evdev }:
+{ lib, stdenv, buildPythonPackage, fetchPypi, sphinx, setuptools-lint, xlib, evdev }:
 
 buildPythonPackage rec {
   pname = "pynput";
@@ -12,13 +12,13 @@ buildPythonPackage rec {
   nativeBuildInputs = [ sphinx ];
 
   propagatedBuildInputs = [ setuptools-lint xlib ]
-  ++ stdenv.lib.optionals stdenv.isLinux [
+  ++ lib.optionals stdenv.isLinux [
     evdev
   ];
 
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "A library to control and monitor input devices";
     homepage = "https://github.com/moses-palmer/pynput";
     license = licenses.lgpl3;
diff --git a/nixpkgs/pkgs/development/python-modules/pynzb/default.nix b/nixpkgs/pkgs/development/python-modules/pynzb/default.nix
index 530a5e2e179f..294c2374f537 100644
--- a/nixpkgs/pkgs/development/python-modules/pynzb/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pynzb/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , python
@@ -20,7 +20,7 @@ buildPythonPackage rec {
   # Can't get them working
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://github.com/ericflo/pynzb";
     description = "Unified API for parsing NZB files";
     license = licenses.bsd3;
diff --git a/nixpkgs/pkgs/development/python-modules/pyobjc/default.nix b/nixpkgs/pkgs/development/python-modules/pyobjc/default.nix
index 9799cbaf0e8f..4b27bea10bc5 100644
--- a/nixpkgs/pkgs/development/python-modules/pyobjc/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyobjc/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchPypi, isPy3k, buildPythonPackage }:
+{ lib, fetchPypi, isPy3k, buildPythonPackage }:
 
 buildPythonPackage rec {
   pname = "pyobjc";
@@ -13,10 +13,10 @@ buildPythonPackage rec {
     sha256 = "2b6c3e98f1408564ace1df36927154d7827c8e2f382386ab5d2db95c891e35a0";
   };
 
-  meta = {
+  meta = with lib; {
     description = "A bridge between the Python and Objective-C programming languages";
-    license = stdenv.lib.licenses.mit;
-    maintainers = with stdenv.lib.maintainers; [ ];
+    license = licenses.mit;
+    maintainers = with maintainers; [ ];
     homepage = "https://pythonhosted.org/pyobjc/";
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/pyodbc/default.nix b/nixpkgs/pkgs/development/python-modules/pyodbc/default.nix
index 7451b1102ed2..2dec1d8705bb 100644
--- a/nixpkgs/pkgs/development/python-modules/pyodbc/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyodbc/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi, isPyPy, unixODBC }:
+{ lib, stdenv, buildPythonPackage, fetchPypi, isPyPy, unixODBC }:
 
 buildPythonPackage rec {
   pname = "pyodbc";
@@ -14,7 +14,7 @@ buildPythonPackage rec {
 
   doCheck = false; # tests require a database server
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Python ODBC module to connect to almost any database";
     homepage = "https://github.com/mkleehammer/pyodbc";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/pyopencl/default.nix b/nixpkgs/pkgs/development/python-modules/pyopencl/default.nix
index 297757687688..4171eaeeb57e 100644
--- a/nixpkgs/pkgs/development/python-modules/pyopencl/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyopencl/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , fetchPypi
 , buildPythonPackage
 , Mako
@@ -40,7 +40,7 @@ buildPythonPackage rec {
   # gcc: error: pygpu_language_opencl.cpp: No such file or directory
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Python wrapper for OpenCL";
     homepage = "https://github.com/pyopencl/pyopencl";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/pyopengl/default.nix b/nixpkgs/pkgs/development/python-modules/pyopengl/default.nix
index 2a3b90733c46..b2d62e3730d1 100644
--- a/nixpkgs/pkgs/development/python-modules/pyopengl/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyopengl/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , pkgs
@@ -46,7 +46,7 @@ buildPythonPackage rec {
   # Should run test suite from $out/${python.sitePackages}
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "http://pyopengl.sourceforge.net/";
     description = "PyOpenGL, the Python OpenGL bindings";
     longDescription = ''
diff --git a/nixpkgs/pkgs/development/python-modules/pyopenssl/default.nix b/nixpkgs/pkgs/development/python-modules/pyopenssl/default.nix
index 202607186b94..c8b3bd4158c4 100644
--- a/nixpkgs/pkgs/development/python-modules/pyopenssl/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyopenssl/default.nix
@@ -1,4 +1,5 @@
-{ stdenv
+{ lib
+, stdenv
 , buildPythonPackage
 , fetchPypi
 , openssl
@@ -13,9 +14,6 @@
 , fetchpatch
 }:
 
-with stdenv.lib;
-
-
 let
   # https://github.com/pyca/pyopenssl/issues/791
   # These tests, we disable in the case that libressl is passed in as openssl.
@@ -51,21 +49,20 @@ let
     # https://github.com/pyca/pyopenssl/issues/768
     "test_wantWriteError"
   ] ++ (
-    optionals (hasPrefix "libressl" openssl.meta.name) failingLibresslTests
+    lib.optionals (lib.hasPrefix "libressl" openssl.meta.name) failingLibresslTests
   ) ++ (
-    optionals (versionAtLeast (getVersion openssl.name) "1.1") failingOpenSSL_1_1Tests
+    lib.optionals (lib.versionAtLeast (lib.getVersion openssl.name) "1.1") failingOpenSSL_1_1Tests
   ) ++ (
     # https://github.com/pyca/pyopenssl/issues/974
-    optionals stdenv.isi686 [ "test_verify_with_time" ]
+    lib.optionals stdenv.is32bit [ "test_verify_with_time" ]
   );
 
   # Compose the final string expression, including the "-k" and the single quotes.
-  testExpression = optionalString (disabledTests != [])
-    "-k 'not ${concatStringsSep " and not " disabledTests}'";
+  testExpression = lib.optionalString (disabledTests != [])
+    "-k 'not ${lib.concatStringsSep " and not " disabledTests}'";
 
 in
 
-
 buildPythonPackage rec {
   pname = "pyOpenSSL";
   version = "20.0.0";
diff --git a/nixpkgs/pkgs/development/python-modules/pyopnsense/default.nix b/nixpkgs/pkgs/development/python-modules/pyopnsense/default.nix
new file mode 100644
index 000000000000..f4f5bf6c70d4
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/pyopnsense/default.nix
@@ -0,0 +1,45 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, fixtures
+, mock
+, pbr
+, pytest-cov
+, pytestCheckHook
+, pythonOlder
+, requests
+, six
+}:
+
+buildPythonPackage rec {
+  pname = "pyopnsense";
+  version = "0.3.0";
+  disabled = pythonOlder "3.7";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "06rssdb3zhccnm63z96mw5yd38d9i99fgigfcdxn9divalbbhp5a";
+  };
+
+  propagatedBuildInputs = [
+    pbr
+    six
+    requests
+  ];
+
+  checkInputs = [
+    fixtures
+    mock
+    pytest-cov
+    pytestCheckHook
+  ];
+
+  pythonImportsCheck = [ "pyopnsense" ];
+
+  meta = with lib; {
+    description = "Python client for the OPNsense API";
+    homepage = "https://github.com/mtreinish/pyopnsense";
+    license = with licenses; [ gpl3Plus ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/pyosmium/default.nix b/nixpkgs/pkgs/development/python-modules/pyosmium/default.nix
index ffcd3569e0a3..577f00fd1114 100644
--- a/nixpkgs/pkgs/development/python-modules/pyosmium/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyosmium/default.nix
@@ -4,7 +4,7 @@
 
 buildPythonPackage rec {
   pname = "pyosmium";
-  version = "3.0.1";
+  version = "3.1.0";
 
   disabled = pythonOlder "3.4" || isPyPy;
 
@@ -12,7 +12,7 @@ buildPythonPackage rec {
     owner = "osmcode";
     repo = pname;
     rev = "v${version}";
-    sha256 = "06jngbmmmswhyi5q5bjph6gwss28d2azn5414zf0arik5bcvz128";
+    sha256 = "0m11hdgiysdhyi5yn6nj8a8ycjzx5hpjy7n1c4j6q5caifj7rf7h";
   };
 
   nativeBuildInputs = [ cmake ];
diff --git a/nixpkgs/pkgs/development/python-modules/pypandoc/default.nix b/nixpkgs/pkgs/development/python-modules/pypandoc/default.nix
index 3da9c3ae0a7c..ffe7bf014232 100644
--- a/nixpkgs/pkgs/development/python-modules/pypandoc/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pypandoc/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchFromGitHub, fetchpatch
+{ lib, stdenv, buildPythonPackage, fetchFromGitHub, fetchpatch
 , pandoc, haskellPackages, texlive }:
 
 buildPythonPackage rec {
@@ -32,7 +32,7 @@ buildPythonPackage rec {
     export PATH="${haskellPackages.pandoc-citeproc}/bin:${texlive.combined.scheme-small}/bin:$PATH"
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Thin wrapper for pandoc";
     homepage = "https://github.com/bebraw/pypandoc";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/pyparsing/default.nix b/nixpkgs/pkgs/development/python-modules/pyparsing/default.nix
index 4acc4fa804b3..5ecfdfb88839 100644
--- a/nixpkgs/pkgs/development/python-modules/pyparsing/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyparsing/default.nix
@@ -8,13 +8,13 @@
 
 buildPythonPackage rec {
   pname = "pyparsing";
-  version = "2.4.6";
+  version = "2.4.7";
 
   src = fetchFromGitHub {
     owner = "pyparsing";
     repo = pname;
     rev = "pyparsing_${version}";
-    sha256 = "1fh7s3cfr274pd6hh6zygl99842rqws98an2nkrrqj2spb9ldxcm";
+    sha256 = "14pfy80q2flgzjcx8jkracvnxxnr59kjzp3kdm5nh232gk1v6g6h";
   };
 
   # https://github.com/pyparsing/pyparsing/blob/847af590154743bae61a32c3dc1a6c2a19009f42/tox.ini#L6
diff --git a/nixpkgs/pkgs/development/python-modules/pyparted/default.nix b/nixpkgs/pkgs/development/python-modules/pyparted/default.nix
index c51c55a5eb23..f46a5d2db827 100644
--- a/nixpkgs/pkgs/development/python-modules/pyparted/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyparted/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , fetchFromGitHub
 , buildPythonPackage
 , isPyPy
@@ -24,7 +24,7 @@ buildPythonPackage rec {
     sed -i -e '
       s|e\.path\.startswith("/tmp/temp-device-")|"temp-device-" in e.path|
     ' tests/test__ped_ped.py
-  '' + stdenv.lib.optionalString stdenv.isi686 ''
+  '' + lib.optionalString stdenv.isi686 ''
     # remove some integers in this test case which overflow on 32bit systems
     sed -i -r -e '/class *UnitGetSizeTestCase/,/^$/{/[0-9]{11}/d}' \
       tests/test__ped_ped.py
@@ -47,7 +47,7 @@ buildPythonPackage rec {
     make test PYTHON=${python.executable}
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://github.com/dcantrell/pyparted/";
     description = "Python interface for libparted";
     license = licenses.gpl2Plus;
diff --git a/nixpkgs/pkgs/development/python-modules/pypass/default.nix b/nixpkgs/pkgs/development/python-modules/pypass/default.nix
index 2458a29ac31d..f3e49452c89a 100644
--- a/nixpkgs/pkgs/development/python-modules/pypass/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pypass/default.nix
@@ -1,4 +1,5 @@
-{ buildPythonPackage
+{ lib
+, buildPythonPackage
 , click
 , colorama
 , enum34
@@ -11,7 +12,6 @@
 , pexpect
 , pythonAtLeast
 , pythonOlder
-, stdenv
 , substituteAll
 , tree
 , xclip
@@ -43,7 +43,7 @@ buildPythonPackage rec {
   ];
 
   # Remove enum34 requirement if Python >= 3.4
-  postPatch = stdenv.lib.optionalString (pythonAtLeast "3.4") ''
+  postPatch = lib.optionalString (pythonAtLeast "3.4") ''
     substituteInPlace requirements.txt --replace "enum34" ""
   '';
 
@@ -53,7 +53,7 @@ buildPythonPackage rec {
     click
     colorama
     pexpect
-  ] ++ stdenv.lib.optional (pythonOlder "3.4") enum34;
+  ] ++ lib.optional (pythonOlder "3.4") enum34;
 
   checkInputs = [ nose ];
 
@@ -74,11 +74,11 @@ buildPythonPackage rec {
     runHook postCheck
   '';
 
-  meta = {
+  meta = with lib; {
     description = "Password manager pass in Python";
     homepage = "https://github.com/aviau/python-pass";
-    license = stdenv.lib.licenses.gpl3Plus;
-    platforms = stdenv.lib.platforms.all;
-    maintainers = with stdenv.lib.maintainers; [ jluttine ];
+    license = licenses.gpl3Plus;
+    platforms = platforms.all;
+    maintainers = with maintainers; [ jluttine ];
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/pypck/default.nix b/nixpkgs/pkgs/development/python-modules/pypck/default.nix
new file mode 100644
index 000000000000..3d39b3516b69
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/pypck/default.nix
@@ -0,0 +1,45 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, pytest-asyncio
+, pytest-cov
+, pytest-timeout
+, pytestCheckHook
+, pythonOlder
+, stdenv
+}:
+
+buildPythonPackage rec {
+  pname = "pypck";
+  version = "0.7.9";
+  disabled = pythonOlder "3.8";
+
+  src = fetchFromGitHub {
+    owner = "alengwenus";
+    repo = pname;
+    rev = version;
+    sha256 = "0clpi6bplzw7qg2m0hgwqr71zwxrh901gwprhd1yjykn30njp5bw";
+  };
+
+  checkInputs = [
+    pytest-asyncio
+    pytest-cov
+    pytest-timeout
+    pytestCheckHook
+  ];
+
+  disabledTests = lib.optionals stdenv.isDarwin [
+    "test_connection_lost"
+  ];
+
+  __darwinAllowLocalNetworking = true;
+
+  pythonImportsCheck = [ "pypck" ];
+
+  meta = with lib; {
+    description = "LCN-PCK library written in Python";
+    homepage = "https://github.com/alengwenus/pypck";
+    license = with licenses; [ epl20 ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/pypdf/default.nix b/nixpkgs/pkgs/development/python-modules/pypdf/default.nix
index 5842e1c510af..d69b1078aeef 100644
--- a/nixpkgs/pkgs/development/python-modules/pypdf/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pypdf/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , isPy3k
@@ -16,7 +16,7 @@ buildPythonPackage rec {
   # Not supported. Package is no longer maintained.
   disabled = isPy3k;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Pure-Python PDF toolkit";
     homepage = "http://pybrary.net/pyPdf/";
     license = licenses.bsd3;
diff --git a/nixpkgs/pkgs/development/python-modules/pypdf2/default.nix b/nixpkgs/pkgs/development/python-modules/pypdf2/default.nix
index 1c3b908396ec..cd91cc347a4f 100644
--- a/nixpkgs/pkgs/development/python-modules/pypdf2/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pypdf2/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , glibcLocales
@@ -25,7 +25,7 @@ buildPythonPackage rec {
   # Tests broken on Python 3.x
   doCheck = !(isPy3k);
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "A Pure-Python library built as a PDF toolkit";
     homepage = "http://mstamy2.github.com/PyPDF2/";
     license = licenses.bsd3;
diff --git a/nixpkgs/pkgs/development/python-modules/pypeg2/default.nix b/nixpkgs/pkgs/development/python-modules/pypeg2/default.nix
index 7aa0f2eda42c..1f16a307a0c1 100644
--- a/nixpkgs/pkgs/development/python-modules/pypeg2/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pypeg2/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , isPy3k
@@ -21,7 +21,7 @@ buildPythonPackage rec {
   #https://bitbucket.org/fdik/pypeg/issues/36/test-failures-on-py35
   doCheck = !isPy3k;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "PEG parser interpreter in Python";
     homepage = "http://fdik.org/pyPEG";
     license = licenses.gpl2;
diff --git a/nixpkgs/pkgs/development/python-modules/pyphen/default.nix b/nixpkgs/pkgs/development/python-modules/pyphen/default.nix
index b5018e40d7eb..d8b9abcf97a3 100644
--- a/nixpkgs/pkgs/development/python-modules/pyphen/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyphen/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi }:
+{ lib, stdenv, buildPythonPackage, fetchPypi }:
 
 buildPythonPackage rec {
   pname = "Pyphen";
@@ -9,7 +9,7 @@ buildPythonPackage rec {
     sha256 = "719b21dfb4b04fbc11cc0f6112418535fe35474021120cccfffc43a25fe63128";
   };
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Pure Python module to hyphenate text";
     homepage = "https://github.com/Kozea/Pyphen";
     license = with licenses; [gpl2 lgpl21 mpl20];
diff --git a/nixpkgs/pkgs/development/python-modules/pypillowfight/default.nix b/nixpkgs/pkgs/development/python-modules/pypillowfight/default.nix
index feb1f9451bca..bc0e45359990 100644
--- a/nixpkgs/pkgs/development/python-modules/pypillowfight/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pypillowfight/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchFromGitLab, nose, pillow
+{ lib, stdenv, buildPythonPackage, fetchFromGitLab, nose, pillow
 , isPy3k, isPyPy
 }:
 buildPythonPackage rec {
@@ -30,7 +30,7 @@ buildPythonPackage rec {
   buildInputs = [ nose ];
   propagatedBuildInputs = [ pillow ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Library containing various image processing algorithms";
     inherit (src.meta) homepage;
     license = licenses.gpl3Plus;
diff --git a/nixpkgs/pkgs/development/python-modules/pyplatec/default.nix b/nixpkgs/pkgs/development/python-modules/pyplatec/default.nix
index 78d939bca1cf..8747840fd7c0 100644
--- a/nixpkgs/pkgs/development/python-modules/pyplatec/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyplatec/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 }:
@@ -12,7 +12,7 @@ buildPythonPackage rec {
     sha256 = "0kqx33flcrrlipccmqs78d14pj5749bp85b6k5fgaq2c7yzz02jg";
   };
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Library to simulate plate tectonics with Python bindings";
     homepage    = "https://github.com/Mindwerks/plate-tectonics";
     license     = licenses.lgpl3;
diff --git a/nixpkgs/pkgs/development/python-modules/pypoppler/default.nix b/nixpkgs/pkgs/development/python-modules/pypoppler/default.nix
index 3287c70db9cb..83190bc292ab 100644
--- a/nixpkgs/pkgs/development/python-modules/pypoppler/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pypoppler/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , isPy3k
@@ -32,7 +32,7 @@ buildPythonPackage rec {
   # No tests in archive
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://code.launchpad.net/~mriedesel/poppler-python/main";
     description = "Python bindings for poppler-glib, unofficial branch including bug fixes, and removal of gtk dependencies";
     license = licenses.gpl2;
diff --git a/nixpkgs/pkgs/development/python-modules/pyppeteer/default.nix b/nixpkgs/pkgs/development/python-modules/pyppeteer/default.nix
index 09d2415f8e0a..a15f7aadb88c 100644
--- a/nixpkgs/pkgs/development/python-modules/pyppeteer/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyppeteer/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "pyppeteer";
-  version = "0.2.2";
+  version = "0.2.4";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1s92izan7s3iffc85wpwi1qv9brcq0rlfqyi84wmpmg1dxk64g0m";
+    sha256 = "d1bcc61575ff788249d3bcaee696d856fa1153401a5428cb7376d826dd68dd9b";
   };
 
   # tests want to write to /homeless-shelter
diff --git a/nixpkgs/pkgs/development/python-modules/pyprind/default.nix b/nixpkgs/pkgs/development/python-modules/pyprind/default.nix
index 42c99c300883..d270136558fc 100644
--- a/nixpkgs/pkgs/development/python-modules/pyprind/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyprind/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchPypi, buildPythonPackage
+{ lib, stdenv, fetchPypi, buildPythonPackage
 , psutil
 , pytest }:
 
@@ -19,7 +19,7 @@ buildPythonPackage rec {
     py.test tests
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Python Progress Bar and Percent Indicator Utility";
     homepage = "https://github.com/rasbt/pyprind";
     license = licenses.bsd3;
diff --git a/nixpkgs/pkgs/development/python-modules/pyptlib/default.nix b/nixpkgs/pkgs/development/python-modules/pyptlib/default.nix
index f820f161de56..af2575d21431 100644
--- a/nixpkgs/pkgs/development/python-modules/pyptlib/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyptlib/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , isPyPy
@@ -17,7 +17,7 @@ buildPythonPackage rec {
 
   doCheck = false;  # No such file or directory errors on 32bit
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://pypi.org/project/pyptlib/";
     description = "A python implementation of the Pluggable Transports for Circumvention specification for Tor";
     license = licenses.bsd2;
diff --git a/nixpkgs/pkgs/development/python-modules/pypugjs/default.nix b/nixpkgs/pkgs/development/python-modules/pypugjs/default.nix
index e6bf3b9211af..b806177b4d7d 100644
--- a/nixpkgs/pkgs/development/python-modules/pypugjs/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pypugjs/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi, fetchpatch, six, chardet, nose
+{ lib, stdenv, buildPythonPackage, fetchPypi, fetchpatch, six, chardet, nose
 , django, jinja2, tornado, pyramid, pyramid_mako, Mako }:
 
 buildPythonPackage rec {
@@ -17,7 +17,7 @@ buildPythonPackage rec {
     nosetests pypugjs
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "PugJS syntax template adapter for Django, Jinja2, Mako and Tornado templates";
     homepage = "https://github.com/kakulukia/pypugjs";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/pypykatz/default.nix b/nixpkgs/pkgs/development/python-modules/pypykatz/default.nix
new file mode 100644
index 000000000000..2e5f19e1d12d
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/pypykatz/default.nix
@@ -0,0 +1,40 @@
+{ lib
+, aiowinreg
+, buildPythonPackage
+, fetchFromGitHub
+, minidump
+, minikerberos
+, msldap
+, winsspi
+}:
+
+buildPythonPackage rec {
+  pname = "pypykatz";
+  version = "0.3.15";
+
+  src = fetchFromGitHub {
+    owner = "skelsec";
+    repo = pname;
+    rev = version;
+    sha256 = "0bx2jdcfr1pdy3jgzg8fr5id9ffl2m1nc81dqhcplxdj8p214yri";
+  };
+
+  propagatedBuildInputs = [
+    aiowinreg
+    minikerberos
+    msldap
+    winsspi
+    minidump
+  ];
+
+  # Project doesn't have tests
+  doCheck = false;
+  pythonImportsCheck = [ "pypykatz" ];
+
+  meta = with lib; {
+    description = "Mimikatz implementation in Python";
+    homepage = "https://github.com/skelsec/pypykatz";
+    license = with licenses; [ mit ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/pyqt/4.x.nix b/nixpkgs/pkgs/development/python-modules/pyqt/4.x.nix
index 05cf0aba354b..3427438b8a26 100644
--- a/nixpkgs/pkgs/development/python-modules/pyqt/4.x.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyqt/4.x.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, buildPythonPackage, python, dbus-python, sip, qt4, pkgconfig, lndir, dbus, makeWrapper }:
+{ lib, stdenv, fetchurl, buildPythonPackage, python, dbus-python, sip, qt4, pkg-config, lndir, dbus, makeWrapper }:
 
 buildPythonPackage rec {
   pname = "PyQt-x11-gpl";
@@ -16,13 +16,13 @@ buildPythonPackage rec {
     rm -rf "$out/nix-support"
 
     export PYTHONPATH=$PYTHONPATH:$out/lib/${python.libPrefix}/site-packages
-    ${stdenv.lib.optionalString stdenv.isDarwin ''
+    ${lib.optionalString stdenv.isDarwin ''
       export QMAKESPEC="unsupported/macx-clang-libc++" # macOS target after bootstrapping phase \
     ''}
 
     substituteInPlace configure.py \
       --replace 'install_dir=pydbusmoddir' "install_dir='$out/lib/${python.libPrefix}/site-packages/dbus/mainloop'" \
-    ${stdenv.lib.optionalString stdenv.isDarwin ''
+    ${lib.optionalString stdenv.isDarwin ''
       --replace "qt_macx_spec = 'macx-g++'" "qt_macx_spec = 'unsupported/macx-clang-libc++'" # for bootstrapping phase \
     ''}
 
@@ -38,11 +38,11 @@ buildPythonPackage rec {
     "--destdir=${placeholder "out"}/${python.sitePackages}"
     "--plugin-destdir=${placeholder "out"}/lib/qt4/plugins"
     "--sipdir=${placeholder "out"}/share/sip/PyQt4"
-    "--dbus=${stdenv.lib.getDev dbus-python}/include/dbus-1.0"
+    "--dbus=${lib.getDev dbus-python}/include/dbus-1.0"
     "--verbose"
   ];
 
-  nativeBuildInputs = [ pkgconfig lndir makeWrapper qt4 ];
+  nativeBuildInputs = [ pkg-config lndir makeWrapper qt4 ];
   buildInputs = [ qt4 dbus ];
 
   propagatedBuildInputs = [ sip ];
@@ -59,11 +59,11 @@ buildPythonPackage rec {
     qt = qt4;
   };
 
-  meta = {
+  meta = with lib; {
     description = "Python bindings for Qt";
     license = "GPL";
     homepage = "http://www.riverbankcomputing.co.uk";
-    maintainers = [ stdenv.lib.maintainers.sander ];
-    platforms = stdenv.lib.platforms.mesaPlatforms;
+    maintainers = [ maintainers.sander ];
+    platforms = platforms.mesaPlatforms;
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/pyqt/5.x.nix b/nixpkgs/pkgs/development/python-modules/pyqt/5.x.nix
index 0c32985cfaae..26bf5dc1c4b8 100644
--- a/nixpkgs/pkgs/development/python-modules/pyqt/5.x.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyqt/5.x.nix
@@ -1,4 +1,4 @@
-{ lib, pythonPackages, pkgconfig
+{ lib, pythonPackages, pkg-config
 , dbus
 , qmake, lndir
 , qtbase
@@ -15,18 +15,35 @@ let
 
   inherit (pythonPackages) buildPythonPackage python isPy3k dbus-python enum34;
 
-  sip = (pythonPackages.sip.override { sip-module = "PyQt5.sip"; }).overridePythonAttrs(oldAttrs: {
-    # If we install sip in another folder, then we need to create a __init__.py as well
-    # if we want to be able to import it with Python 2.
-    # Python 3 could rely on it being an implicit namespace package, however,
-    # PyQt5 we made an explicit namespace package so sip should be as well.
-    postInstall = ''
-      cat << EOF > $out/${python.sitePackages}/PyQt5/__init__.py
-      from pkgutil import extend_path
-      __path__ = extend_path(__path__, __name__)
-      EOF
-    '';
-  });
+  sip = if isPy3k then
+    pythonPackages.sip_5
+  else
+    (pythonPackages.sip.override { sip-module = "PyQt5.sip"; }).overridePythonAttrs(oldAttrs: {
+      # If we install sip in another folder, then we need to create a __init__.py as well
+      # if we want to be able to import it with Python 2.
+      # Python 3 could rely on it being an implicit namespace package, however,
+      # PyQt5 we made an explicit namespace package so sip should be as well.
+      postInstall = ''
+        cat << EOF > $out/${python.sitePackages}/PyQt5/__init__.py
+        from pkgutil import extend_path
+        __path__ = extend_path(__path__, __name__)
+        EOF
+      '';
+    });
+
+  pyqt5_sip = buildPythonPackage rec {
+    pname = "PyQt5_sip";
+    version = "12.8.1";
+
+    src = pythonPackages.fetchPypi {
+      inherit pname version;
+      sha256 = "30e944db9abee9cc757aea16906d4198129558533eb7fadbe48c5da2bd18e0bd";
+    };
+
+    # There is no test code and the check phase fails with:
+    # > error: could not create 'PyQt5/sip.cpython-38-x86_64-linux-gnu.so': No such file or directory
+    doCheck = false;
+  };
 
 in buildPythonPackage rec {
   pname = "PyQt5";
@@ -41,7 +58,7 @@ in buildPythonPackage rec {
   outputs = [ "out" "dev" ];
 
   nativeBuildInputs = [
-    pkgconfig
+    pkg-config
     qmake
     lndir
     sip
@@ -69,8 +86,7 @@ in buildPythonPackage rec {
 
   propagatedBuildInputs = [
     dbus-python
-    sip
-  ] ++ lib.optional (!isPy3k) enum34;
+  ] ++ (if isPy3k then [ pyqt5_sip ] else [ sip enum34 ]);
 
   patches = [
     # Fix some wrong assumptions by ./configure.py
@@ -103,7 +119,7 @@ in buildPythonPackage rec {
     runHook postConfigure
   '';
 
-  postInstall = ''
+  postInstall = lib.optionalString (!isPy3k) ''
     ln -s ${sip}/${python.sitePackages}/PyQt5/sip.* $out/${python.sitePackages}/PyQt5/
     for i in $out/bin/*; do
       wrapProgram $i --prefix PYTHONPATH : "$PYTHONPATH"
@@ -116,26 +132,21 @@ in buildPythonPackage rec {
     EOF
   '';
 
-  installCheckPhase = let
-    modules = [
-      "PyQt5"
-      "PyQt5.QtCore"
-      "PyQt5.QtQml"
-      "PyQt5.QtWidgets"
-      "PyQt5.QtGui"
-    ]
+  # Checked using pythonImportsCheck
+  doCheck = false;
+
+  pythonImportsCheck = [
+    "PyQt5"
+    "PyQt5.QtCore"
+    "PyQt5.QtQml"
+    "PyQt5.QtWidgets"
+    "PyQt5.QtGui"
+  ]
     ++ lib.optional withWebSockets "PyQt5.QtWebSockets"
     ++ lib.optional withWebKit "PyQt5.QtWebKit"
     ++ lib.optional withMultimedia "PyQt5.QtMultimedia"
     ++ lib.optional withConnectivity "PyQt5.QtConnectivity"
-    ;
-    imports = lib.concatMapStrings (module: "import ${module};") modules;
-  in ''
-    echo "Checking whether modules can be imported..."
-    ${python.interpreter} -c "${imports}"
-  '';
-
-  doCheck = true;
+  ;
 
   enableParallelBuilding = true;
 
diff --git a/nixpkgs/pkgs/development/python-modules/pyqtgraph/default.nix b/nixpkgs/pkgs/development/python-modules/pyqtgraph/default.nix
index 80f914294848..98b30b247077 100644
--- a/nixpkgs/pkgs/development/python-modules/pyqtgraph/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyqtgraph/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , numpy
@@ -22,7 +22,7 @@ buildPythonPackage rec {
 
   pythonImportsCheck = [ "pyqtgraph" ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Scientific Graphics and GUI Library for Python";
     homepage = "http://www.pyqtgraph.org/";
     changelog = "https://github.com/pyqtgraph/pyqtgraph/blob/master/CHANGELOG";
diff --git a/nixpkgs/pkgs/development/python-modules/pyqtwebengine/default.nix b/nixpkgs/pkgs/development/python-modules/pyqtwebengine/default.nix
index 51506598ca18..262c5a17504a 100644
--- a/nixpkgs/pkgs/development/python-modules/pyqtwebengine/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyqtwebengine/default.nix
@@ -1,4 +1,4 @@
-{ lib, pythonPackages, pkgconfig
+{ lib, pythonPackages, pkg-config
 , qmake, qtbase, qtsvg, qtwebengine
 , wrapQtAppsHook
 }:
@@ -27,7 +27,7 @@ in buildPythonPackage rec {
   outputs = [ "out" "dev" ];
 
   nativeBuildInputs = [
-    pkgconfig
+    pkg-config
     qmake
     sip
     qtbase
diff --git a/nixpkgs/pkgs/development/python-modules/pyquery/default.nix b/nixpkgs/pkgs/development/python-modules/pyquery/default.nix
index 6ba9cb91982b..2496d9d968fc 100644
--- a/nixpkgs/pkgs/development/python-modules/pyquery/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyquery/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , cssselect
@@ -21,7 +21,7 @@ buildPythonPackage rec {
   # circular dependency on webtest
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://github.com/gawel/pyquery";
     description = "A jquery-like library for python";
     license = licenses.bsd0;
diff --git a/nixpkgs/pkgs/development/python-modules/pyramid/default.nix b/nixpkgs/pkgs/development/python-modules/pyramid/default.nix
index a7ba7728a355..5f1e5c7d75a8 100644
--- a/nixpkgs/pkgs/development/python-modules/pyramid/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyramid/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , webtest
@@ -33,7 +33,7 @@ buildPythonPackage rec {
   # https://github.com/Pylons/pyramid/issues/1899
   doCheck = !isPy35;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "The Pyramid Web Framework, a Pylons project";
     homepage = "https://trypyramid.com/";
     license = licenses.bsd0;
diff --git a/nixpkgs/pkgs/development/python-modules/pyramid_beaker/default.nix b/nixpkgs/pkgs/development/python-modules/pyramid_beaker/default.nix
index 19b26a30ad71..88dc62886fc6 100644
--- a/nixpkgs/pkgs/development/python-modules/pyramid_beaker/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyramid_beaker/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi, pytest, beaker, pyramid }:
+{ lib, stdenv, buildPythonPackage, fetchPypi, pytest, beaker, pyramid }:
 
 buildPythonPackage rec {
   pname = "pyramid_beaker";
@@ -18,7 +18,7 @@ buildPythonPackage rec {
 
   propagatedBuildInputs = [ beaker pyramid ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     maintainers = with maintainers; [ domenkozar ];
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/pyramid_chameleon/default.nix b/nixpkgs/pkgs/development/python-modules/pyramid_chameleon/default.nix
index 9e148ca8ed51..2bb5a03bdb91 100644
--- a/nixpkgs/pkgs/development/python-modules/pyramid_chameleon/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyramid_chameleon/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , chameleon
@@ -23,7 +23,7 @@ buildPythonPackage rec {
 
   propagatedBuildInputs = [ chameleon pyramid zope_interface setuptools ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Chameleon template compiler for pyramid";
     homepage = "https://github.com/Pylons/pyramid_chameleon";
     license = licenses.bsd0;
diff --git a/nixpkgs/pkgs/development/python-modules/pyramid_exclog/default.nix b/nixpkgs/pkgs/development/python-modules/pyramid_exclog/default.nix
index 0c2abeb74e28..80514cc91b48 100644
--- a/nixpkgs/pkgs/development/python-modules/pyramid_exclog/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyramid_exclog/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , pyramid
@@ -15,7 +15,7 @@ buildPythonPackage rec {
 
   propagatedBuildInputs = [ pyramid ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "A package which logs to a Python logger when an exception is raised by a Pyramid application";
     homepage = "https://docs.pylonsproject.org/";
     license = licenses.bsd0;
diff --git a/nixpkgs/pkgs/development/python-modules/pyramid_hawkauth/default.nix b/nixpkgs/pkgs/development/python-modules/pyramid_hawkauth/default.nix
index fc76d9af68d9..ab4025b72309 100644
--- a/nixpkgs/pkgs/development/python-modules/pyramid_hawkauth/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyramid_hawkauth/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchFromGitHub
 , pyramid
@@ -21,7 +21,7 @@ buildPythonPackage rec {
   propagatedBuildInputs = [ pyramid hawkauthlib tokenlib ];
   buildInputs = [ webtest ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://github.com/mozilla-services/pyramid_hawkauth";
     description = "A Pyramid authentication plugin for HAWK";
     license = licenses.mpl20;
diff --git a/nixpkgs/pkgs/development/python-modules/pyramid_jinja2/default.nix b/nixpkgs/pkgs/development/python-modules/pyramid_jinja2/default.nix
index 6be0fe479d2f..0497ab79613f 100644
--- a/nixpkgs/pkgs/development/python-modules/pyramid_jinja2/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyramid_jinja2/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , webtest
@@ -18,7 +18,7 @@ buildPythonPackage rec {
   buildInputs = [ webtest ];
   propagatedBuildInputs = [ jinja2 pyramid ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Jinja2 template bindings for the Pyramid web framework";
     homepage = "https://github.com/Pylons/pyramid_jinja2";
     license = licenses.bsd0;
diff --git a/nixpkgs/pkgs/development/python-modules/pyramid_mako/default.nix b/nixpkgs/pkgs/development/python-modules/pyramid_mako/default.nix
index 2bae93d1e306..8c71563e2d77 100644
--- a/nixpkgs/pkgs/development/python-modules/pyramid_mako/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyramid_mako/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , webtest
@@ -18,7 +18,7 @@ buildPythonPackage rec {
   buildInputs = [ webtest ];
   propagatedBuildInputs = [ pyramid Mako ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://github.com/Pylons/pyramid_mako";
     description = "Mako template bindings for the Pyramid web framework";
     license = licenses.bsd0;
diff --git a/nixpkgs/pkgs/development/python-modules/pyramid_multiauth/default.nix b/nixpkgs/pkgs/development/python-modules/pyramid_multiauth/default.nix
index f441aaed8c13..9167918fc47d 100644
--- a/nixpkgs/pkgs/development/python-modules/pyramid_multiauth/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyramid_multiauth/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , pyramid
@@ -15,7 +15,7 @@ buildPythonPackage rec {
 
   propagatedBuildInputs = [ pyramid ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Authentication policy for Pyramid that proxies to a stack of other authentication policies";
     homepage = "https://github.com/mozilla-services/pyramid_multiauth";
     license = licenses.mpl20;
diff --git a/nixpkgs/pkgs/development/python-modules/pyregion/default.nix b/nixpkgs/pkgs/development/python-modules/pyregion/default.nix
index b1868e7edde5..86a5ef6bfe0f 100644
--- a/nixpkgs/pkgs/development/python-modules/pyregion/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyregion/default.nix
@@ -33,8 +33,8 @@ buildPythonPackage rec {
       name = "conftest-astropy-3-fix.patch";
       url = "https://github.com/astropy/pyregion/pull/136.patch";
       sha256 = "13yxjxiqnhjy9gh24hvv6pnwx7qic2mcx3ccr1igjrc3f881d59m";
-	  })
-	];
+    })
+  ];
 
   nativeBuildInputs = [ astropy-helpers ];
 
diff --git a/nixpkgs/pkgs/development/python-modules/pyreport/default.nix b/nixpkgs/pkgs/development/python-modules/pyreport/default.nix
index 9795d30ea2e2..09a1e7c6b418 100644
--- a/nixpkgs/pkgs/development/python-modules/pyreport/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyreport/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , isPy3k
@@ -17,7 +17,7 @@ buildPythonPackage rec {
   # error: invalid command 'test'
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://pypi.python.org/pypi/pyreport";
     license = licenses.bsd0;
     description = "Pyreport makes notes out of a python script";
diff --git a/nixpkgs/pkgs/development/python-modules/pyres/default.nix b/nixpkgs/pkgs/development/python-modules/pyres/default.nix
index d4bd8789144a..6d49bd025948 100644
--- a/nixpkgs/pkgs/development/python-modules/pyres/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyres/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchPypi, buildPythonPackage, fetchFromGitHub, simplejson, redis, setproctitle, nose, pkgs }:
+{ lib, stdenv, fetchPypi, buildPythonPackage, fetchFromGitHub, simplejson, redis, setproctitle, nose, pkgs }:
 
 let
 
@@ -36,7 +36,7 @@ buildPythonPackage rec {
     nosetests . --exclude test_worker_pids
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Python resque clone";
     homepage = "https://github.com/binarydud/pyres";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/pyrfc3339/default.nix b/nixpkgs/pkgs/development/python-modules/pyrfc3339/default.nix
index 3c157d83fec1..f6be3c4c8974 100644
--- a/nixpkgs/pkgs/development/python-modules/pyrfc3339/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyrfc3339/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , pytz
@@ -17,7 +17,7 @@ buildPythonPackage rec {
   propagatedBuildInputs = [ pytz ];
   buildInputs = [ nose ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Generate and parse RFC 3339 timestamps";
     homepage = "https://github.com/kurtraschke/pyRFC3339";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/pyro4/default.nix b/nixpkgs/pkgs/development/python-modules/pyro4/default.nix
index 508722e70fb4..a84b22e06567 100644
--- a/nixpkgs/pkgs/development/python-modules/pyro4/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyro4/default.nix
@@ -48,7 +48,7 @@ buildPythonPackage rec {
   # otherwise the tests hang the build
   __darwinAllowLocalNetworking = true;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Distributed object middleware for Python (RPC)";
     homepage = "https://github.com/irmen/Pyro4";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/pyroma/default.nix b/nixpkgs/pkgs/development/python-modules/pyroma/default.nix
index 4ec06506b38b..e533f6501697 100644
--- a/nixpkgs/pkgs/development/python-modules/pyroma/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyroma/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi
+{ lib, stdenv, buildPythonPackage, fetchPypi
 , docutils, pygments, setuptools
 }:
 
@@ -13,7 +13,7 @@ buildPythonPackage rec {
 
   propagatedBuildInputs = [ docutils pygments setuptools ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Test your project's packaging friendliness";
     homepage = "https://github.com/regebro/pyroma";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/pyroute2/default.nix b/nixpkgs/pkgs/development/python-modules/pyroute2/default.nix
index b7dfd6d42b3d..f2378863720c 100644
--- a/nixpkgs/pkgs/development/python-modules/pyroute2/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyroute2/default.nix
@@ -1,4 +1,4 @@
-{stdenv, buildPythonPackage, fetchPypi}:
+{lib, stdenv, buildPythonPackage, fetchPypi}:
 
 buildPythonPackage rec {
   pname = "pyroute2";
@@ -12,7 +12,7 @@ buildPythonPackage rec {
   # requires root priviledges
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Python Netlink library";
     homepage = "https://github.com/svinota/pyroute2";
     license = licenses.asl20;
diff --git a/nixpkgs/pkgs/development/python-modules/pyrr/default.nix b/nixpkgs/pkgs/development/python-modules/pyrr/default.nix
index 96d160619588..f8ac5d8e8675 100644
--- a/nixpkgs/pkgs/development/python-modules/pyrr/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyrr/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , setuptools
@@ -18,7 +18,7 @@ buildPythonPackage rec {
   buildInputs = [ setuptools ];
   propagatedBuildInputs = [ multipledispatch numpy ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "3D mathematical functions using NumPy";
     homepage = "https://github.com/adamlwgriffiths/Pyrr/";
     license = licenses.bsd2;
diff --git a/nixpkgs/pkgs/development/python-modules/pyrsistent/default.nix b/nixpkgs/pkgs/development/python-modules/pyrsistent/default.nix
index 7da3239f3e74..211bc85f5112 100644
--- a/nixpkgs/pkgs/development/python-modules/pyrsistent/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyrsistent/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , isPy27
@@ -27,7 +27,7 @@ buildPythonPackage rec {
     substituteInPlace setup.py --replace 'pytest<5' 'pytest'
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://github.com/tobgu/pyrsistent/";
     description = "Persistent/Functional/Immutable data structures";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/pyrss2gen/default.nix b/nixpkgs/pkgs/development/python-modules/pyrss2gen/default.nix
index ee51e84ba0f4..e3586e6dbf1c 100644
--- a/nixpkgs/pkgs/development/python-modules/pyrss2gen/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyrss2gen/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 }:
@@ -15,7 +15,7 @@ buildPythonPackage rec {
   # No tests in archive
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "http://www.dalkescientific.om/Python/PyRSS2Gen.html";
     description = "Library for generating RSS 2.0 feeds";
     license = licenses.bsd2;
diff --git a/nixpkgs/pkgs/development/python-modules/pysaml2/default.nix b/nixpkgs/pkgs/development/python-modules/pysaml2/default.nix
index f30fddc1efd8..7d2fdb5b4260 100644
--- a/nixpkgs/pkgs/development/python-modules/pysaml2/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pysaml2/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , isPy3k
 , fetchFromGitHub
@@ -53,7 +53,7 @@ buildPythonPackage rec {
             and not test_conf_syslog"
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://github.com/rohe/pysaml2";
     description = "Python implementation of SAML Version 2 Standard";
     license = licenses.asl20;
diff --git a/nixpkgs/pkgs/development/python-modules/pyscard/default.nix b/nixpkgs/pkgs/development/python-modules/pyscard/default.nix
index 9798d94900b0..28c40e5ec5fc 100644
--- a/nixpkgs/pkgs/development/python-modules/pyscard/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyscard/default.nix
@@ -1,11 +1,8 @@
-{ stdenv, fetchPypi, buildPythonPackage, swig, pcsclite, PCSC }:
+{ lib, stdenv, fetchPypi, buildPythonPackage, swig, pcsclite, PCSC }:
 
 let
   # Package does not support configuring the pcsc library.
   withApplePCSC = stdenv.isDarwin;
-
-  inherit (stdenv.lib) getLib getDev optionalString optionals;
-  inherit (stdenv.hostPlatform.extensions) sharedLibrary;
 in
 
 buildPythonPackage rec {
@@ -24,19 +21,19 @@ buildPythonPackage rec {
   '' else ''
     substituteInPlace smartcard/scard/winscarddll.c \
       --replace "libpcsclite.so.1" \
-                "${getLib pcsclite}/lib/libpcsclite${sharedLibrary}"
+                "${lib.getLib pcsclite}/lib/libpcsclite${stdenv.hostPlatform.extensions.sharedLibrary}"
   '';
 
-  NIX_CFLAGS_COMPILE = optionalString (! withApplePCSC)
-    "-I ${getDev pcsclite}/include/PCSC";
+  NIX_CFLAGS_COMPILE = lib.optionalString (! withApplePCSC)
+    "-I ${lib.getDev pcsclite}/include/PCSC";
 
   propagatedBuildInputs = if withApplePCSC then [ PCSC ] else [ pcsclite ];
   nativeBuildInputs = [ swig ];
 
-  meta = {
+  meta = with lib; {
     homepage = "https://pyscard.sourceforge.io/";
     description = "Smartcard library for python";
-    license = stdenv.lib.licenses.lgpl21;
-    maintainers = with stdenv.lib.maintainers; [ layus ];
+    license = licenses.lgpl21;
+    maintainers = with maintainers; [ layus ];
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/pyscss/default.nix b/nixpkgs/pkgs/development/python-modules/pyscss/default.nix
index 30b5205050dd..6da19bc48ab8 100644
--- a/nixpkgs/pkgs/development/python-modules/pyscss/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyscss/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchFromGitHub
 , pytest
@@ -23,14 +23,14 @@ buildPythonPackage rec {
   checkInputs = [ pytest ];
 
   propagatedBuildInputs = [ six ]
-    ++ (stdenv.lib.optionals (pythonOlder "3.4") [ enum34 pathlib ])
-    ++ (stdenv.lib.optionals (pythonOlder "2.7") [ ordereddict ]);
+    ++ (lib.optionals (pythonOlder "3.4") [ enum34 pathlib ])
+    ++ (lib.optionals (pythonOlder "2.7") [ ordereddict ]);
 
   checkPhase = ''
     py.test
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "A Scss compiler for Python";
     homepage = "https://pyscss.readthedocs.org/en/latest/";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/pysendfile/default.nix b/nixpkgs/pkgs/development/python-modules/pysendfile/default.nix
index b49ec5030f9a..a35f2ae77f02 100644
--- a/nixpkgs/pkgs/development/python-modules/pysendfile/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pysendfile/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , python
@@ -19,7 +19,7 @@ buildPythonPackage rec {
     ${python.executable} test/test_sendfile.py
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://github.com/giampaolo/pysendfile";
     description = "A Python interface to sendfile(2)";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/pysensors/default.nix b/nixpkgs/pkgs/development/python-modules/pysensors/default.nix
index cc2dee7957d8..214412c4ceed 100644
--- a/nixpkgs/pkgs/development/python-modules/pysensors/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pysensors/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, python, fetchFromGitHub, lm_sensors }:
+{ lib, stdenv, buildPythonPackage, python, fetchFromGitHub, lm_sensors }:
 buildPythonPackage {
   version = "2017-07-13";
   pname = "pysensors";
@@ -22,7 +22,7 @@ buildPythonPackage {
     ${python.interpreter} -m unittest discover
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     maintainers = with maintainers; [ guibou ];
     description = "Easy hardware health monitoring in Python for Linux systems";
     homepage = "https://pysensors.readthedocs.org";
diff --git a/nixpkgs/pkgs/development/python-modules/pyserial-asyncio/default.nix b/nixpkgs/pkgs/development/python-modules/pyserial-asyncio/default.nix
index 5e721504eda5..ff3d624490ba 100644
--- a/nixpkgs/pkgs/development/python-modules/pyserial-asyncio/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyserial-asyncio/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi, isPy3k
+{ lib, stdenv, buildPythonPackage, fetchPypi, isPy3k
 , pyserial }:
 
 buildPythonPackage rec {
@@ -14,7 +14,7 @@ buildPythonPackage rec {
 
   propagatedBuildInputs = [ pyserial ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "asyncio extension package for pyserial";
     homepage = "https://github.com/pyserial/pyserial-asyncio";
     license = licenses.bsd3;
diff --git a/nixpkgs/pkgs/development/python-modules/pysftp/default.nix b/nixpkgs/pkgs/development/python-modules/pysftp/default.nix
index 61fc4f122d29..28daf6b385e6 100644
--- a/nixpkgs/pkgs/development/python-modules/pysftp/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pysftp/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , isPyPy
@@ -17,7 +17,7 @@ buildPythonPackage rec {
 
   propagatedBuildInputs = [ paramiko ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://bitbucket.org/dundeemt/pysftp";
     description = "A friendly face on SFTP";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/pyshp/default.nix b/nixpkgs/pkgs/development/python-modules/pyshp/default.nix
index 33ebe945b231..661c70a0ab26 100644
--- a/nixpkgs/pkgs/development/python-modules/pyshp/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyshp/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi
+{ lib, stdenv, buildPythonPackage, fetchPypi
 , setuptools }:
 
 buildPythonPackage rec {
@@ -12,7 +12,7 @@ buildPythonPackage rec {
 
   buildInputs = [ setuptools ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Pure Python read/write support for ESRI Shapefile format";
     homepage = "https://github.com/GeospatialPython/pyshp";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/pyside/apiextractor.nix b/nixpkgs/pkgs/development/python-modules/pyside/apiextractor.nix
index 07ddfb69fa0f..9398a62997b2 100644
--- a/nixpkgs/pkgs/development/python-modules/pyside/apiextractor.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyside/apiextractor.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, cmake, libxml2, libxslt, python3, qt4 }:
+{ lib, stdenv, fetchurl, cmake, libxml2, libxslt, python3, qt4 }:
 
 # This derivation does not provide any Python module and should therefore be called via `all-packages.nix`.
 let
@@ -11,8 +11,6 @@ in stdenv.mkDerivation {
     sha256 = "1zj8yrxy08iv1pk38djxw3faimm226w6wmi0gm32w4yczblylwz3";
   };
 
-  enableParallelBuilding = true;
-
   outputs = [ "out" "dev" ];
 
   preConfigure = ''
@@ -22,11 +20,11 @@ in stdenv.mkDerivation {
   nativeBuildInputs = [ cmake pythonEnv ];
   buildInputs = [ qt4 libxml2 libxslt ];
 
-  meta = {
+  meta = with lib; {
     description = "Eases the development of bindings of Qt-based libraries for high level languages by automating most of the process";
-    license = stdenv.lib.licenses.gpl2;
+    license = licenses.gpl2;
     homepage = "http://www.pyside.org/docs/apiextractor/";
     maintainers = [ ];
-    platforms = stdenv.lib.platforms.all;
+    platforms = platforms.all;
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/pyside/default.nix b/nixpkgs/pkgs/development/python-modules/pyside/default.nix
index 2bbeb7a1233f..08fd8cbfa862 100644
--- a/nixpkgs/pkgs/development/python-modules/pyside/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyside/default.nix
@@ -11,8 +11,6 @@ buildPythonPackage rec {
     sha256 = "90f2d736e2192ac69e5a2ac798fce2b5f7bf179269daa2ec262986d488c3b0f7";
   };
 
-  enableParallelBuilding = true;
-
   outputs = [ "out" "dev" ];
 
   preConfigure = ''
diff --git a/nixpkgs/pkgs/development/python-modules/pyside/generatorrunner.nix b/nixpkgs/pkgs/development/python-modules/pyside/generatorrunner.nix
index 8fc505a89fc4..532ee6b2b24e 100644
--- a/nixpkgs/pkgs/development/python-modules/pyside/generatorrunner.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyside/generatorrunner.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, cmake, pysideApiextractor, python3, qt4 }:
+{ lib, stdenv, fetchurl, cmake, pysideApiextractor, python3, qt4 }:
 
 # This derivation does not provide any Python module and should therefore be called via `all-packages.nix`.
 let
@@ -13,8 +13,6 @@ in stdenv.mkDerivation {
     sha256 = "0vzk3cp0pfbhd921r8f1xkcz96znla39dhj074k623x9k26lj2sj";
   };
 
-  enableParallelBuilding = true;
-
   outputs = [ "out" "dev" ];
 
   preConfigure = ''
@@ -24,11 +22,11 @@ in stdenv.mkDerivation {
   nativeBuildInputs = [ cmake pythonEnv ];
   buildInputs = [ pysideApiextractor qt4 ];
 
-  meta = {
+  meta = with lib; {
     description = "Eases the development of binding generators for C++ and Qt-based libraries by providing a framework to help automating most of the process";
-    license = stdenv.lib.licenses.gpl2;
+    license = licenses.gpl2;
     homepage = "http://www.pyside.org/docs/generatorrunner/";
     maintainers = [ ];
-    platforms = stdenv.lib.platforms.all;
+    platforms = platforms.all;
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/pyside/shiboken.nix b/nixpkgs/pkgs/development/python-modules/pyside/shiboken.nix
index cf7192f92ffb..2690422932f2 100644
--- a/nixpkgs/pkgs/development/python-modules/pyside/shiboken.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyside/shiboken.nix
@@ -27,8 +27,6 @@ buildPythonPackage rec {
     sha256 = "0x2lyg52m6a0vn0665pgd1z1qrydglyfxxcggw6xzngpnngb6v5v";
   };
 
-  enableParallelBuilding = true;
-
   nativeBuildInputs = [ cmake pkg-config pysideApiextractor pysideGeneratorrunner sphinx qt4 ];
 
   buildInputs = [ python libxml2 libxslt ];
diff --git a/nixpkgs/pkgs/development/python-modules/pyside2-tools/default.nix b/nixpkgs/pkgs/development/python-modules/pyside2-tools/default.nix
index 9f1f94ffecbb..095a10c1047d 100644
--- a/nixpkgs/pkgs/development/python-modules/pyside2-tools/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyside2-tools/default.nix
@@ -1,4 +1,4 @@
-{ buildPythonPackage, wrapPython, python, fetchurl, stdenv, cmake, qt5,
+{ buildPythonPackage, wrapPython, python, fetchurl, lib, stdenv, cmake, qt5,
   shiboken2, pyside2 }:
 
 stdenv.mkDerivation {
@@ -41,7 +41,7 @@ stdenv.mkDerivation {
     wrapPythonPrograms
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "PySide2 development tools";
     license = licenses.gpl2;
     homepage = "https://wiki.qt.io/Qt_for_Python";
diff --git a/nixpkgs/pkgs/development/python-modules/pyside2/default.nix b/nixpkgs/pkgs/development/python-modules/pyside2/default.nix
index 8133b677db28..6986c8e5384b 100644
--- a/nixpkgs/pkgs/development/python-modules/pyside2/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyside2/default.nix
@@ -1,4 +1,4 @@
-{ buildPythonPackage, python, fetchurl, stdenv,
+{ buildPythonPackage, python, fetchurl, lib, stdenv,
   cmake, ninja, qt5, shiboken2 }:
 
 stdenv.mkDerivation rec {
@@ -30,7 +30,7 @@ stdenv.mkDerivation rec {
   ];
   propagatedBuildInputs = [ shiboken2 ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "LGPL-licensed Python bindings for Qt";
     license = licenses.lgpl21;
     homepage = "https://wiki.qt.io/Qt_for_Python";
diff --git a/nixpkgs/pkgs/development/python-modules/pysigset/default.nix b/nixpkgs/pkgs/development/python-modules/pysigset/default.nix
index 4e1b87a1f1b0..8e31735db2e4 100644
--- a/nixpkgs/pkgs/development/python-modules/pysigset/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pysigset/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi }:
+{ lib, stdenv, buildPythonPackage, fetchPypi }:
 
 buildPythonPackage rec {
   pname = "pysigset";
@@ -9,7 +9,7 @@ buildPythonPackage rec {
     sha256 = "0ym44z3nwp8chfi7snmknkqnl2q9bghzv9p923r8w748i5hvyxx8";
   };
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Provides access to sigprocmask(2) and friends and convenience wrappers to python application developers wanting to SIG_BLOCK and SIG_UNBLOCK signals";
     homepage = "https://github.com/ossobv/pysigset";
     license = licenses.gpl3;
diff --git a/nixpkgs/pkgs/development/python-modules/pysmbc/default.nix b/nixpkgs/pkgs/development/python-modules/pysmbc/default.nix
index e242dbe5e96e..6834a78f4286 100644
--- a/nixpkgs/pkgs/development/python-modules/pysmbc/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pysmbc/default.nix
@@ -1,5 +1,5 @@
-{ stdenv, buildPythonPackage, fetchPypi
-, samba, pkgconfig
+{ lib, stdenv, buildPythonPackage, fetchPypi
+, samba, pkg-config
 , setuptools }:
 
 buildPythonPackage rec {
@@ -12,10 +12,10 @@ buildPythonPackage rec {
     sha256 = "14b75f358ical7zzqh3g1qkh2dxwxn2gz7sah5f5svndqkd3z8jy";
   };
 
-  nativeBuildInputs = [ pkgconfig ];
+  nativeBuildInputs = [ pkg-config ];
   buildInputs = [ setuptools samba ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "libsmbclient binding for Python";
     homepage = "https://github.com/hamano/pysmbc";
     license = licenses.gpl2Plus;
diff --git a/nixpkgs/pkgs/development/python-modules/pysmf/default.nix b/nixpkgs/pkgs/development/python-modules/pysmf/default.nix
index ef5e560b08c7..02559510100c 100644
--- a/nixpkgs/pkgs/development/python-modules/pysmf/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pysmf/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi, pkg-config, libsmf, glib, pytest }:
+{ lib, stdenv, buildPythonPackage, fetchPypi, pkg-config, libsmf, glib, pytest }:
 
 buildPythonPackage rec {
   pname = "pysmf";
@@ -12,7 +12,7 @@ buildPythonPackage rec {
   nativeBuildInputs = [ pkg-config pytest ];
   buildInputs = [ libsmf glib ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "http://das.nasophon.de/pysmf/";
     description = "Python extension module for reading and writing Standard MIDI Files, based on libsmf.";
     license = licenses.bsd2;
diff --git a/nixpkgs/pkgs/development/python-modules/pysmi/default.nix b/nixpkgs/pkgs/development/python-modules/pysmi/default.nix
index a3a7c3d7ec10..953581aa3029 100644
--- a/nixpkgs/pkgs/development/python-modules/pysmi/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pysmi/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , ply
@@ -18,7 +18,7 @@ buildPythonPackage rec {
   # Tests require pysnmp, which in turn requires pysmi => infinite recursion
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "http://pysmi.sf.net";
     description = "SNMP SMI/MIB Parser";
     license = licenses.bsd2;
diff --git a/nixpkgs/pkgs/development/python-modules/pysnmp/default.nix b/nixpkgs/pkgs/development/python-modules/pysnmp/default.nix
index c0bed855a4cd..7dce4d9b4d18 100644
--- a/nixpkgs/pkgs/development/python-modules/pysnmp/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pysnmp/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , pyasn1
@@ -22,7 +22,7 @@ buildPythonPackage rec {
 
   propagatedBuildInputs = [ pyasn1 pycryptodomex pysmi ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "http://snmplabs.com/pysnmp/index.html";
     description = "A pure-Python SNMPv1/v2c/v3 library";
     license = licenses.bsd2;
diff --git a/nixpkgs/pkgs/development/python-modules/pysocks/default.nix b/nixpkgs/pkgs/development/python-modules/pysocks/default.nix
index e8d853d625d4..79c163726b76 100644
--- a/nixpkgs/pkgs/development/python-modules/pysocks/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pysocks/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 }:
@@ -15,7 +15,7 @@ buildPythonPackage rec {
 
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "SOCKS module for Python";
     license     = licenses.bsd3;
     maintainers = with maintainers; [ thoughtpolice ];
diff --git a/nixpkgs/pkgs/development/python-modules/pysoma/default.nix b/nixpkgs/pkgs/development/python-modules/pysoma/default.nix
new file mode 100644
index 000000000000..893736ff1603
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/pysoma/default.nix
@@ -0,0 +1,25 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+}:
+
+buildPythonPackage rec {
+  pname = "pysoma";
+  version = "0.0.10";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1q8afi6m3mfh0rfpghyvx6z76kgrpkbnlqzbs4p8ax13n0fnlkdi";
+  };
+
+  # Project has no test
+  doCheck = false;
+  pythonImportsCheck = [ "api" ];
+
+  meta = with lib; {
+    description = "Python wrapper for the HTTP API provided by SOMA Connect";
+    homepage = "https://pypi.org/project/pysoma";
+    license = with licenses; [ mit ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/pyspark/default.nix b/nixpkgs/pkgs/development/python-modules/pyspark/default.nix
index d181d6a29d90..342755131a3d 100644
--- a/nixpkgs/pkgs/development/python-modules/pyspark/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyspark/default.nix
@@ -1,4 +1,4 @@
-{ buildPythonPackage, fetchPypi, stdenv, py4j }:
+{ buildPythonPackage, fetchPypi, lib, stdenv, py4j }:
 
 buildPythonPackage rec {
   pname = "pyspark";
@@ -21,7 +21,7 @@ buildPythonPackage rec {
   # Tests assume running spark...
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Apache Spark";
     homepage = "https://github.com/apache/spark/tree/master/python";
     license = licenses.asl20;
diff --git a/nixpkgs/pkgs/development/python-modules/pyspice/default.nix b/nixpkgs/pkgs/development/python-modules/pyspice/default.nix
index bed00ddabe7d..53fb7e6d248f 100644
--- a/nixpkgs/pkgs/development/python-modules/pyspice/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyspice/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , pythonOlder
 , fetchPypi
@@ -44,7 +44,7 @@ buildPythonPackage rec {
         "ffi.dlopen('${libngspice}/lib/libngspice${stdenv.hostPlatform.extensions.sharedLibrary}')"
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Simulate electronic circuit using Python and the Ngspice / Xyce simulators";
     homepage = "https://github.com/FabriceSalvaire/PySpice";
     license = licenses.gpl3Only;
diff --git a/nixpkgs/pkgs/development/python-modules/pyspotify/default.nix b/nixpkgs/pkgs/development/python-modules/pyspotify/default.nix
index d6d0a6007f66..302eb12de5a1 100644
--- a/nixpkgs/pkgs/development/python-modules/pyspotify/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyspotify/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchurl
 , cffi
@@ -22,7 +22,7 @@ buildPythonPackage rec {
     find -print0 | xargs -0 touch
   '';
 
-  postInstall = stdenv.lib.optionalString stdenv.isDarwin ''
+  postInstall = lib.optionalString stdenv.isDarwin ''
     find "$out" -name _spotify.so -exec \
         install_name_tool -change \
         @loader_path/../Frameworks/libspotify.framework/libspotify \
@@ -33,7 +33,7 @@ buildPythonPackage rec {
   # There are no tests
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage    = "http://pyspotify.mopidy.com";
     description = "A Python interface to Spotify’s online music streaming service";
     license     = licenses.unfree;
diff --git a/nixpkgs/pkgs/development/python-modules/pyspread/default.nix b/nixpkgs/pkgs/development/python-modules/pyspread/default.nix
deleted file mode 100644
index 2e7f458253ea..000000000000
--- a/nixpkgs/pkgs/development/python-modules/pyspread/default.nix
+++ /dev/null
@@ -1,56 +0,0 @@
-{ buildPythonPackage
-, fetchPypi
-, isPy3k
-, stdenv
-, numpy
-, wxPython
-, matplotlib
-, pycairo
-, python-gnupg
-, xlrd
-, xlwt
-, jedi
-, pyenchant
-, basemap
-, pygtk
-, makeDesktopItem
-}:
-
-buildPythonPackage rec {
-  pname = "pyspread";
-  version = "1.99.5";
-
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "d396c2f94bf1ef6140877ab19205e6f2375bfe01d1bf50ff33bb63384744dd78";
-  };
-
-  propagatedBuildInputs = [ numpy wxPython matplotlib pycairo python-gnupg xlrd xlwt jedi pyenchant basemap pygtk ];
-  # Could also (optionally) add pyrsvg and python bindings for libvlc
-
-  # Tests try to access X Display
-  doCheck = false;
-
-  disabled = isPy3k;
-
-  desktopItem = makeDesktopItem rec {
-    name = pname;
-    exec = name;
-    icon = name;
-    desktopName = "Pyspread";
-    genericName = "Spreadsheet";
-    comment = meta.description;
-    categories = "Development;Spreadsheet;";
-  };
-
-  postInstall = ''
-    mkdir -p $out/share/applications
-    cp $desktopItem/share/applications/* $out/share/applications
-  '';
-
-  meta = with stdenv.lib; {
-    description = "Pyspread is a non-traditional spreadsheet application that is based on and written in the programming language Python";
-    homepage = "https://manns.github.io/pyspread/";
-    license = licenses.gpl3;
-  };
-}
diff --git a/nixpkgs/pkgs/development/python-modules/pysqlite/default.nix b/nixpkgs/pkgs/development/python-modules/pysqlite/default.nix
index a1916f09a6cd..09cc312223ad 100644
--- a/nixpkgs/pkgs/development/python-modules/pysqlite/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pysqlite/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , isPy3k
@@ -26,10 +26,10 @@ buildPythonPackage rec {
     substituteInPlace "setup.cfg"                                     \
             --replace "/usr/local/include" "${pkgs.sqlite.dev}/include"   \
             --replace "/usr/local/lib" "${pkgs.sqlite.out}/lib"
-    ${stdenv.lib.optionalString (!stdenv.isDarwin) ''export LDSHARED="$CC -pthread -shared"''}
+    ${lib.optionalString (!stdenv.isDarwin) ''export LDSHARED="$CC -pthread -shared"''}
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://pysqlite.org/";
     description = "Python bindings for the SQLite embedded relational database engine";
     longDescription = ''
diff --git a/nixpkgs/pkgs/development/python-modules/pysqueezebox/default.nix b/nixpkgs/pkgs/development/python-modules/pysqueezebox/default.nix
index 11c9d9c40d06..7c5d8ca5abf5 100644
--- a/nixpkgs/pkgs/development/python-modules/pysqueezebox/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pysqueezebox/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchPypi, buildPythonPackage, pythonOlder, aiohttp }:
+{ lib, stdenv, fetchPypi, buildPythonPackage, pythonOlder, aiohttp }:
 
 buildPythonPackage rec {
   pname = "pysqueezebox";
@@ -18,7 +18,7 @@ buildPythonPackage rec {
   doCheck = false;
   pythonImportsCheck = [ "pysqueezebox" ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Asynchronous library to control Logitech Media Server";
     homepage = "https://github.com/rajlaud/pysqueezebox";
     license = licenses.asl20;
diff --git a/nixpkgs/pkgs/development/python-modules/pysrt/default.nix b/nixpkgs/pkgs/development/python-modules/pysrt/default.nix
index e8c9aa3d5c88..4012a7324660 100644
--- a/nixpkgs/pkgs/development/python-modules/pysrt/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pysrt/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchFromGitHub
 , chardet
@@ -23,7 +23,7 @@ buildPythonPackage rec {
 
   propagatedBuildInputs = [ chardet ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://github.com/byroot/pysrt";
     license = licenses.gpl3;
     description = "Python library used to edit or create SubRip files";
diff --git a/nixpkgs/pkgs/development/python-modules/pyssim/default.nix b/nixpkgs/pkgs/development/python-modules/pyssim/default.nix
index ad2057351d9a..4f73ada61af6 100644
--- a/nixpkgs/pkgs/development/python-modules/pyssim/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyssim/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchFromGitHub, numpy, scipy, pillow }:
+{ lib, stdenv, buildPythonPackage, fetchFromGitHub, numpy, scipy, pillow }:
 
 buildPythonPackage rec {
   pname = "pyssim";
@@ -23,7 +23,7 @@ buildPythonPackage rec {
     $out/bin/pyssim --cw --width 128 --height 128 test-images/test3-orig.jpg test-images/test3-rot.jpg | grep 0.938
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Module for computing Structured Similarity Image Metric (SSIM) in Python";
     homepage = "https://github.com/jterrace/pyssim";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/pystache/default.nix b/nixpkgs/pkgs/development/python-modules/pystache/default.nix
index 1900bc31f212..6ed036aecb1a 100644
--- a/nixpkgs/pkgs/development/python-modules/pystache/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pystache/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, python, fetchPypi, isPy3k, glibcLocales }:
+{ lib, stdenv, buildPythonPackage, python, fetchPypi, isPy3k, glibcLocales }:
 
 buildPythonPackage rec {
   pname = "pystache";
@@ -21,7 +21,7 @@ buildPythonPackage rec {
   # https://github.com/defunkt/pystache/issues/181
   doCheck = !isPy3k;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "A framework-agnostic, logic-free templating system inspired by ctemplate and et";
     homepage = "https://github.com/defunkt/pystache";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/pystemd/default.nix b/nixpkgs/pkgs/development/python-modules/pystemd/default.nix
index 1ff26ffa37ba..691865919490 100644
--- a/nixpkgs/pkgs/development/python-modules/pystemd/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pystemd/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, python, systemd }:
+{ lib, stdenv, python, systemd }:
 
 python.pkgs.buildPythonPackage rec {
   pname = "pystemd";
@@ -15,7 +15,7 @@ python.pkgs.buildPythonPackage rec {
   checkInputs = with python.pkgs; [ pytest mock ];
   checkPhase = "pytest tests";
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "A thin Cython-based wrapper on top of libsystemd, focused on exposing the dbus API via sd-bus in an automated and easy to consume way.";
     homepage = "https://github.com/facebookincubator/pystemd/";
     license = licenses.lgpl21Plus;
diff --git a/nixpkgs/pkgs/development/python-modules/pystemmer/default.nix b/nixpkgs/pkgs/development/python-modules/pystemmer/default.nix
index 37260404906b..0ba23ffec5df 100644
--- a/nixpkgs/pkgs/development/python-modules/pystemmer/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pystemmer/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, python, fetchPypi, buildPythonPackage, cython }:
+{ lib, stdenv, python, fetchPypi, buildPythonPackage, cython }:
 
 buildPythonPackage rec {
   pname = "PyStemmer";
@@ -19,7 +19,7 @@ buildPythonPackage rec {
     ${python.interpreter} runtests.py
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Snowball stemming algorithms, for information retrieval";
     homepage = "http://snowball.tartarus.org/";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/pysvn/default.nix b/nixpkgs/pkgs/development/python-modules/pysvn/default.nix
index 0fca57cb2923..9e9948607093 100644
--- a/nixpkgs/pkgs/development/python-modules/pysvn/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pysvn/default.nix
@@ -75,7 +75,7 @@ buildPythonPackage rec {
     rm -v $out/share/doc/pysvn-${version}/generate_cpp_docs_from_html_docs.py
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Python bindings for Subversion";
     homepage = "http://pysvn.tigris.org/";
     license = licenses.asl20;
diff --git a/nixpkgs/pkgs/development/python-modules/pytabix/default.nix b/nixpkgs/pkgs/development/python-modules/pytabix/default.nix
index eb21ca198180..db8437d8957c 100644
--- a/nixpkgs/pkgs/development/python-modules/pytabix/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pytabix/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , isPy3k
 , fetchPypi
@@ -23,7 +23,7 @@ buildPythonPackage rec {
   '';
   pythonImportsCheck = [ "tabix" ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://github.com/slowkow/pytabix";
     description = "Python interface for tabix";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/pytado/default.nix b/nixpkgs/pkgs/development/python-modules/pytado/default.nix
index 40b221d3dc9d..636210c93d59 100644
--- a/nixpkgs/pkgs/development/python-modules/pytado/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pytado/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchFromGitHub }:
+{ lib, stdenv, buildPythonPackage, fetchFromGitHub }:
 
 buildPythonPackage rec {
   pname = "PyTado";
@@ -12,7 +12,7 @@ buildPythonPackage rec {
     sha256 = "14xdfw4913g4j4h576hjbigm7fiw8k0dc8s98gh2ag9xrc2ifgr0";
   };
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Python binding for Tado web API. Pythonize your central heating!";
     homepage = "https://github.com/wmalgadey/PyTado";
     license = licenses.gpl3;
diff --git a/nixpkgs/pkgs/development/python-modules/pyte/default.nix b/nixpkgs/pkgs/development/python-modules/pyte/default.nix
index f09bd95d0703..65d3d9218d06 100644
--- a/nixpkgs/pkgs/development/python-modules/pyte/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyte/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi, pytest, pytestrunner, wcwidth }:
+{ lib, stdenv, buildPythonPackage, fetchPypi, pytest, pytestrunner, wcwidth }:
 
 buildPythonPackage rec {
   pname = "pyte";
@@ -17,7 +17,7 @@ buildPythonPackage rec {
     py.test -k "not test_input_output"
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Simple VTXXX-compatible linux terminal emulator";
     homepage = "https://github.com/selectel/pyte";
     license = licenses.lgpl3;
diff --git a/nixpkgs/pkgs/development/python-modules/pytest-aiohttp/default.nix b/nixpkgs/pkgs/development/python-modules/pytest-aiohttp/default.nix
index f2491bd571c1..7384eb360704 100644
--- a/nixpkgs/pkgs/development/python-modules/pytest-aiohttp/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pytest-aiohttp/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi, pytest, aiohttp }:
+{ lib, stdenv, buildPythonPackage, fetchPypi, pytest, aiohttp }:
 
 buildPythonPackage rec {
   pname = "pytest-aiohttp";
@@ -14,7 +14,7 @@ buildPythonPackage rec {
   # There are no tests
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://github.com/aio-libs/pytest-aiohttp/";
     description = "Pytest plugin for aiohttp support";
     license = licenses.asl20;
diff --git a/nixpkgs/pkgs/development/python-modules/pytest-annotate/default.nix b/nixpkgs/pkgs/development/python-modules/pytest-annotate/default.nix
index 53879bffbc8a..1a7f77bf9b6e 100644
--- a/nixpkgs/pkgs/development/python-modules/pytest-annotate/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pytest-annotate/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , pyannotate
@@ -30,7 +30,7 @@ buildPythonPackage rec {
   # no testing in a testing module...
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://github.com/kensho-technologies/pytest-annotate";
     description = "Generate PyAnnotate annotations from your pytest tests";
     license = licenses.asl20;
diff --git a/nixpkgs/pkgs/development/python-modules/pytest-ansible/default.nix b/nixpkgs/pkgs/development/python-modules/pytest-ansible/default.nix
index 2e98654c5d46..309a33e89073 100644
--- a/nixpkgs/pkgs/development/python-modules/pytest-ansible/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pytest-ansible/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchFromGitHub
 , ansible
@@ -33,7 +33,7 @@ buildPythonPackage rec {
     HOME=$TMPDIR pytest tests/
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://github.com/jlaska/pytest-ansible";
     description = "Plugin for py.test to simplify calling ansible modules from tests or fixtures";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/pytest-asyncio/default.nix b/nixpkgs/pkgs/development/python-modules/pytest-asyncio/default.nix
index 8942263a5788..c621d9a47854 100644
--- a/nixpkgs/pkgs/development/python-modules/pytest-asyncio/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pytest-asyncio/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi, pytest, isPy3k, isPy35, async_generator }:
+{ lib, stdenv, buildPythonPackage, fetchPypi, pytest, isPy3k, isPy35, async_generator }:
 buildPythonPackage rec {
   pname = "pytest-asyncio";
   version = "0.14.0";
@@ -11,7 +11,7 @@ buildPythonPackage rec {
   };
 
   buildInputs = [ pytest ]
-    ++ stdenv.lib.optionals isPy35 [ async_generator ];
+    ++ lib.optionals isPy35 [ async_generator ];
 
   # No tests in archive
   doCheck = false;
@@ -21,7 +21,7 @@ buildPythonPackage rec {
     substituteInPlace setup.cfg --replace "license_file = LICENSE" ""
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "library for testing asyncio code with pytest";
     license = licenses.asl20;
     homepage = "https://github.com/pytest-dev/pytest-asyncio";
diff --git a/nixpkgs/pkgs/development/python-modules/pytest-bdd/default.nix b/nixpkgs/pkgs/development/python-modules/pytest-bdd/default.nix
index ccde881d3839..493a2307e7e7 100644
--- a/nixpkgs/pkgs/development/python-modules/pytest-bdd/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pytest-bdd/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchFromGitHub
+{ lib, stdenv, buildPythonPackage, fetchFromGitHub
 , execnet
 , glob2
 , Mako
@@ -30,7 +30,7 @@ buildPythonPackage rec {
     PATH=$PATH:$out/bin pytest
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "BDD library for the py.test runner";
     homepage = "https://github.com/pytest-dev/pytest-bdd";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/pytest-catchlog/default.nix b/nixpkgs/pkgs/development/python-modules/pytest-catchlog/default.nix
index 35d3fce49d1b..2fb02244d1d7 100644
--- a/nixpkgs/pkgs/development/python-modules/pytest-catchlog/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pytest-catchlog/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi, pytest, unzip }:
+{ lib, stdenv, buildPythonPackage, fetchPypi, pytest, unzip }:
 
 buildPythonPackage rec {
   pname = "pytest-catchlog";
@@ -16,7 +16,7 @@ buildPythonPackage rec {
   # Requires pytest < 3.1
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     license = licenses.mit;
     homepage = "https://pypi.python.org/pypi/pytest-catchlog/";
     description = "py.test plugin to catch log messages. This is a fork of pytest-capturelog.";
diff --git a/nixpkgs/pkgs/development/python-modules/pytest-celery/default.nix b/nixpkgs/pkgs/development/python-modules/pytest-celery/default.nix
index e3d463a39aa6..034c657b5b0f 100644
--- a/nixpkgs/pkgs/development/python-modules/pytest-celery/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pytest-celery/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi, pytest, setuptools_scm }:
+{ lib, stdenv, buildPythonPackage, fetchPypi, pytest, setuptools_scm }:
 
 buildPythonPackage rec {
   pname = "pytest-celery";
@@ -13,7 +13,7 @@ buildPythonPackage rec {
 
   doCheck = false; # This package has nothing to test or import.
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "pytest plugin for unittest subTest() support and subtests fixture";
     homepage = "https://github.com/pytest-dev/pytest-subtests";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/pytest-check/default.nix b/nixpkgs/pkgs/development/python-modules/pytest-check/default.nix
index 9636d20c73b7..41f316a18a65 100644
--- a/nixpkgs/pkgs/development/python-modules/pytest-check/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pytest-check/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , pytest
@@ -18,7 +18,7 @@ buildPythonPackage rec {
   propagatedBuildInputs = [ pytest ];
   checkInputs = [ pytestCheckHook ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "pytest plugin allowing multiple failures per test";
     homepage = "https://github.com/okken/pytest-check";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/pytest-cov/default.nix b/nixpkgs/pkgs/development/python-modules/pytest-cov/default.nix
index 649e41f7d662..aa921ddeb3d1 100644
--- a/nixpkgs/pkgs/development/python-modules/pytest-cov/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pytest-cov/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi
+{ lib, stdenv, buildPythonPackage, fetchPypi
 , pytest, coverage }:
 
 buildPythonPackage rec {
@@ -22,7 +22,7 @@ buildPythonPackage rec {
     py.test tests
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Plugin for coverage reporting with support for both centralised and distributed testing, including subprocesses and multiprocessing";
     homepage = "https://github.com/pytest-dev/pytest-cov";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/pytest-datadir/default.nix b/nixpkgs/pkgs/development/python-modules/pytest-datadir/default.nix
index 6ce784419206..b1cdb1033a64 100644
--- a/nixpkgs/pkgs/development/python-modules/pytest-datadir/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pytest-datadir/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchFromGitHub
+{ lib, stdenv, buildPythonPackage, fetchFromGitHub
 , setuptools_scm, pytest, cmake
 }:
 
@@ -23,7 +23,7 @@ buildPythonPackage rec {
   checkInputs = [ pytest ];
   checkPhase = "pytest";
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://github.com/gabrielcnr/pytest-datadir";
     description = "pytest plugin for manipulating test data directories and files";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/pytest-datafiles/default.nix b/nixpkgs/pkgs/development/python-modules/pytest-datafiles/default.nix
index 2fafdcd1aaa0..bc6e2441b0f0 100644
--- a/nixpkgs/pkgs/development/python-modules/pytest-datafiles/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pytest-datafiles/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi, py, pytest }:
+{ lib, stdenv, buildPythonPackage, fetchPypi, py, pytest }:
 
 buildPythonPackage rec {
   pname = "pytest-datafiles";
@@ -10,7 +10,7 @@ buildPythonPackage rec {
 
   buildInputs = [ py pytest ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     license = licenses.mit;
     homepage = "https://github.com/omarkohl/pytest-datafiles";
     description = "py.test plugin to create a 'tmpdir' containing predefined files/directories.";
diff --git a/nixpkgs/pkgs/development/python-modules/pytest-dependency/default.nix b/nixpkgs/pkgs/development/python-modules/pytest-dependency/default.nix
index 9e570a801f99..9a3dbed55b15 100644
--- a/nixpkgs/pkgs/development/python-modules/pytest-dependency/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pytest-dependency/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi, fetchpatch, pytest }:
+{ lib, stdenv, buildPythonPackage, fetchPypi, fetchpatch, pytest }:
 
 buildPythonPackage rec {
   version = "0.5.1";
@@ -17,7 +17,7 @@ buildPythonPackage rec {
     pytest
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://github.com/RKrahl/pytest-dependency";
     description = "Manage dependencies of tests";
     license = licenses.asl20;
diff --git a/nixpkgs/pkgs/development/python-modules/pytest-django/default.nix b/nixpkgs/pkgs/development/python-modules/pytest-django/default.nix
index 4b257b0a3d13..069aa2812eb5 100644
--- a/nixpkgs/pkgs/development/python-modules/pytest-django/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pytest-django/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , pytest
@@ -24,7 +24,7 @@ buildPythonPackage rec {
   # Complicated. Requires Django setup.
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "py.test plugin for testing of Django applications";
     homepage = "https://pytest-django.readthedocs.org/en/latest/";
     license = licenses.bsd3;
diff --git a/nixpkgs/pkgs/development/python-modules/pytest-factoryboy/default.nix b/nixpkgs/pkgs/development/python-modules/pytest-factoryboy/default.nix
index 48c5020a44f8..e63b7329c965 100644
--- a/nixpkgs/pkgs/development/python-modules/pytest-factoryboy/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pytest-factoryboy/default.nix
@@ -1,42 +1,44 @@
-{ stdenv
-, fetchFromGitHub
+{ lib
 , buildPythonPackage
-, pytestCheckHook
-, pytest
-, inflection
 , factory_boy
+, fetchFromGitHub
+, inflection
+, mock
+, pytest
 , pytestcache
+, pytestCheckHook
 , pytestcov
-, mock
 }:
 
 buildPythonPackage rec {
   pname = "pytest-factoryboy";
-  version = "2.0.3";
+  version = "2.1.0";
 
   src = fetchFromGitHub {
     owner = "pytest-dev";
     repo = "pytest-factoryboy";
     rev = version;
-    sha256 = "0m1snyybq2k51khlydhisq300vzys897vdbsicph628iran950hn";
+    sha256 = "0v6b4ly0p8nknpnp3f4dbslfsifzzjx2vv27rfylx04kzdhg4m9p";
   };
 
-  # TODO: remove in next release, it's removed in master.
-  postPatch = "substituteInPlace tox.ini --replace '--pep8' ''";
-
-  propagatedBuildInputs = [ factory_boy inflection pytest ];
+  propagatedBuildInputs = [
+    factory_boy
+    inflection
+    pytest
+  ];
 
-  # The project uses tox, which we can't. So we simply run pytest manually.
   checkInputs = [
     mock
     pytestCheckHook
     pytestcache
     pytestcov
   ];
+
   pytestFlagsArray = [ "--ignore=docs" ];
+  pythonImportsCheck = [ "pytest_factoryboy" ];
 
-  meta = with stdenv.lib; {
-    description = "Integration of factory_boy into the pytest runner.";
+  meta = with lib; {
+    description = "Integration of factory_boy into the pytest runner";
     homepage = "https://pytest-factoryboy.readthedocs.io/en/latest/";
     maintainers = with maintainers; [ winpat ];
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/pytest-fixture-config/default.nix b/nixpkgs/pkgs/development/python-modules/pytest-fixture-config/default.nix
index 7c7d4c66cd47..061f62bfc17b 100644
--- a/nixpkgs/pkgs/development/python-modules/pytest-fixture-config/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pytest-fixture-config/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi
+{ lib, stdenv, buildPythonPackage, fetchPypi
 , setuptools-git, pytest }:
 
 buildPythonPackage rec {
@@ -16,7 +16,7 @@ buildPythonPackage rec {
 
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Simple configuration objects for Py.test fixtures. Allows you to skip tests when their required config variables aren’t set.";
     homepage = "https://github.com/manahl/pytest-plugins";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/pytest-flakes/default.nix b/nixpkgs/pkgs/development/python-modules/pytest-flakes/default.nix
index 440cc632185b..fd4ed0978060 100644
--- a/nixpkgs/pkgs/development/python-modules/pytest-flakes/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pytest-flakes/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi, pythonOlder
+{ lib, stdenv, buildPythonPackage, fetchPypi, pythonOlder
 , pytest
 , pyflakes
 }:
@@ -26,7 +26,7 @@ buildPythonPackage rec {
     py.test test_flakes.py -k 'not test_syntax_error'
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     license = licenses.mit;
     homepage = "https://pypi.python.org/pypi/pytest-flakes";
     description = "pytest plugin to check source code with pyflakes";
diff --git a/nixpkgs/pkgs/development/python-modules/pytest-flask/default.nix b/nixpkgs/pkgs/development/python-modules/pytest-flask/default.nix
index 1e6c34aee3c0..74e33a7731b3 100644
--- a/nixpkgs/pkgs/development/python-modules/pytest-flask/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pytest-flask/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi, pytest, flask, werkzeug, setuptools_scm, isPy27 }:
+{ lib, stdenv, buildPythonPackage, fetchPypi, pytest, flask, werkzeug, setuptools_scm, isPy27 }:
 
 buildPythonPackage rec {
   pname = "pytest-flask";
@@ -20,7 +20,7 @@ buildPythonPackage rec {
 
   nativeBuildInputs = [ setuptools_scm ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://github.com/pytest-dev/pytest-flask/";
     license = licenses.mit;
     description = "A set of py.test fixtures to test Flask applications";
diff --git a/nixpkgs/pkgs/development/python-modules/pytest-helpers-namespace/default.nix b/nixpkgs/pkgs/development/python-modules/pytest-helpers-namespace/default.nix
index 8f24d1dc1f68..41263ce692b3 100644
--- a/nixpkgs/pkgs/development/python-modules/pytest-helpers-namespace/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pytest-helpers-namespace/default.nix
@@ -1,7 +1,7 @@
 { buildPythonPackage
 , fetchFromGitHub
 , pytest
-, stdenv
+, lib, stdenv
 }:
 
 buildPythonPackage rec {
@@ -26,7 +26,7 @@ buildPythonPackage rec {
   # The tests fail with newest pytest. They passed with pytest_3, which no longer exists
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://github.com/saltstack/pytest-helpers-namespace";
     description = "PyTest Helpers Namespace";
     license = licenses.asl20;
diff --git a/nixpkgs/pkgs/development/python-modules/pytest-html/default.nix b/nixpkgs/pkgs/development/python-modules/pytest-html/default.nix
index e6e17adc92ee..0b1090f7b81d 100644
--- a/nixpkgs/pkgs/development/python-modules/pytest-html/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pytest-html/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi, pythonOlder
+{ lib, stdenv, buildPythonPackage, fetchPypi, pythonOlder
 , pytest, pytest-metadata, setuptools_scm }:
 
 buildPythonPackage rec {
@@ -14,7 +14,7 @@ buildPythonPackage rec {
   nativeBuildInputs = [ setuptools_scm ];
   propagatedBuildInputs = [ pytest pytest-metadata ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Plugin for generating HTML reports";
     homepage = "https://github.com/pytest-dev/pytest-html";
     license = licenses.mpl20;
diff --git a/nixpkgs/pkgs/development/python-modules/pytest-instafail/default.nix b/nixpkgs/pkgs/development/python-modules/pytest-instafail/default.nix
new file mode 100644
index 000000000000..f9942dd5bcd3
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/pytest-instafail/default.nix
@@ -0,0 +1,24 @@
+{ buildPythonPackage
+, fetchPypi
+, lib
+, pytestCheckHook
+}:
+
+buildPythonPackage rec {
+  pname = "pytest-instafail";
+  version = "0.4.2";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "10lpr6mjcinabqynj6v85bvb1xmapnhqmg50nys1r6hg7zgky9qr";
+  };
+
+  checkInputs = [ pytestCheckHook ];
+  pythonImportsCheck = [ "pytest_instafail" ];
+  meta = {
+    description = "pytest plugin that shows failures and errors instantly instead of waiting until the end of test session";
+    homepage = "https://github.com/pytest-dev/pytest-instafail";
+    license = lib.licenses.bsd3;
+    maintainers = [ lib.maintainers.jacg ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/pytest-metadata/default.nix b/nixpkgs/pkgs/development/python-modules/pytest-metadata/default.nix
index f2191ab617d2..e8b224dc1d4d 100644
--- a/nixpkgs/pkgs/development/python-modules/pytest-metadata/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pytest-metadata/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi
+{ lib, stdenv, buildPythonPackage, fetchPypi
 , pytest, setuptools_scm }:
 
 buildPythonPackage rec {
@@ -13,7 +13,7 @@ buildPythonPackage rec {
   nativeBuildInputs = [ setuptools_scm ];
   propagatedBuildInputs = [ pytest ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Plugin for accessing test session metadata";
     homepage = "https://github.com/pytest-dev/pytest-metadata";
     license = licenses.mpl20;
diff --git a/nixpkgs/pkgs/development/python-modules/pytest-mpl/default.nix b/nixpkgs/pkgs/development/python-modules/pytest-mpl/default.nix
index 78d5243cf641..0cc3a993c235 100644
--- a/nixpkgs/pkgs/development/python-modules/pytest-mpl/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pytest-mpl/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , pytest
@@ -44,7 +44,7 @@ buildPythonPackage rec {
     ln -s $HOME/.config/matplotlib $HOME/.matplotlib
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Pytest plugin to help with testing figures output from Matplotlib";
     homepage = "https://github.com/matplotlib/pytest-mpl";
     license = licenses.bsd3;
diff --git a/nixpkgs/pkgs/development/python-modules/pytest-pep257/default.nix b/nixpkgs/pkgs/development/python-modules/pytest-pep257/default.nix
index 8c20cf873aba..eb5203c02466 100644
--- a/nixpkgs/pkgs/development/python-modules/pytest-pep257/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pytest-pep257/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi, pytest, pep257 }:
+{ lib, stdenv, buildPythonPackage, fetchPypi, pytest, pep257 }:
 
 buildPythonPackage rec {
   pname = "pytest-pep257";
@@ -12,7 +12,7 @@ buildPythonPackage rec {
   buildInputs = [ pytest ];
   propagatedBuildInputs = [ pep257 ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://github.com/anderslime/pytest-pep257";
     description = "py.test plugin for PEP257";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/pytest-quickcheck/default.nix b/nixpkgs/pkgs/development/python-modules/pytest-quickcheck/default.nix
index 7db982ed857c..5148fa4b7608 100644
--- a/nixpkgs/pkgs/development/python-modules/pytest-quickcheck/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pytest-quickcheck/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi, pytest, pytest-flakes, tox }:
+{ lib, stdenv, buildPythonPackage, fetchPypi, pytest, pytest-flakes, tox }:
 buildPythonPackage rec {
   pname = "pytest-quickcheck";
   version = "0.8.6";
@@ -11,7 +11,7 @@ buildPythonPackage rec {
   buildInputs = [ pytest ];
   propagatedBuildInputs = [ pytest-flakes tox ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     license = licenses.asl20;
     homepage = "https://pypi.python.org/pypi/pytest-quickcheck";
     description = "pytest plugin to generate random data inspired by QuickCheck";
diff --git a/nixpkgs/pkgs/development/python-modules/pytest-raisesregexp/default.nix b/nixpkgs/pkgs/development/python-modules/pytest-raisesregexp/default.nix
index 638548e9424f..0d02a25ec3c7 100644
--- a/nixpkgs/pkgs/development/python-modules/pytest-raisesregexp/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pytest-raisesregexp/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi
+{ lib, stdenv, buildPythonPackage, fetchPypi
 , py, pytest }:
 
 buildPythonPackage rec {
@@ -18,7 +18,7 @@ buildPythonPackage rec {
     substituteInPlace setup.py --replace "long_description=open('README.rst').read()," "long_description=io.open('README.rst', encoding='utf-8').read(),"
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Simple pytest plugin to look for regex in Exceptions";
     homepage = "https://github.com/Walkman/pytest_raisesregexp";
     license = with licenses; [ mit ];
diff --git a/nixpkgs/pkgs/development/python-modules/pytest-random-order/default.nix b/nixpkgs/pkgs/development/python-modules/pytest-random-order/default.nix
index 088f8702436f..2def886c5cba 100644
--- a/nixpkgs/pkgs/development/python-modules/pytest-random-order/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pytest-random-order/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , pythonOlder
@@ -18,7 +18,7 @@ buildPythonPackage rec {
 
   propagatedBuildInputs = [ pytest ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://github.com/jbasko/pytest-random-order";
     description = "Randomise the order of tests with some control over the randomness";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/pytest-relaxed/default.nix b/nixpkgs/pkgs/development/python-modules/pytest-relaxed/default.nix
index c9871368bbe4..401307039e55 100644
--- a/nixpkgs/pkgs/development/python-modules/pytest-relaxed/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pytest-relaxed/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , pytest
@@ -31,7 +31,7 @@ buildPythonPackage rec {
     pytest tests
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://pytest-relaxed.readthedocs.io/";
     description = "Relaxed test discovery/organization for pytest";
     license = licenses.bsd0;
diff --git a/nixpkgs/pkgs/development/python-modules/pytest-rerunfailures/default.nix b/nixpkgs/pkgs/development/python-modules/pytest-rerunfailures/default.nix
index 384681eee1f9..537f32316a31 100644
--- a/nixpkgs/pkgs/development/python-modules/pytest-rerunfailures/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pytest-rerunfailures/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, pythonOlder, fetchPypi, pytest, mock }:
+{ lib, stdenv, buildPythonPackage, pythonOlder, fetchPypi, pytest, mock }:
 
 buildPythonPackage rec {
   pname = "pytest-rerunfailures";
@@ -19,7 +19,7 @@ buildPythonPackage rec {
     py.test test_pytest_rerunfailures.py
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "pytest plugin to re-run tests to eliminate flaky failures";
     homepage = "https://github.com/pytest-dev/pytest-rerunfailures";
     license = licenses.mpl20;
diff --git a/nixpkgs/pkgs/development/python-modules/pytest-server-fixtures/default.nix b/nixpkgs/pkgs/development/python-modules/pytest-server-fixtures/default.nix
index 90b60686ee6c..41fcfc7b1597 100644
--- a/nixpkgs/pkgs/development/python-modules/pytest-server-fixtures/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pytest-server-fixtures/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi
+{ lib, stdenv, buildPythonPackage, fetchPypi
 , pytest, pytest-shutil, pytest-fixture-config, psutil
 , requests, future, retry }:
 
@@ -17,7 +17,7 @@ buildPythonPackage rec {
   # RuntimeError: Unable to find a free server number to start Xvfb
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Extensible server fixures for py.test";
     homepage  = "https://github.com/manahl/pytest-plugins";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/pytest-shutil/default.nix b/nixpkgs/pkgs/development/python-modules/pytest-shutil/default.nix
index ef03762e188d..3edafdfb4734 100644
--- a/nixpkgs/pkgs/development/python-modules/pytest-shutil/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pytest-shutil/default.nix
@@ -19,7 +19,7 @@ buildPythonPackage rec {
     py.test ${lib.optionalString isPyPy "-k'not (test_run or test_run_integration)'"}
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "A goodie-bag of unix shell and environment tools for py.test";
     homepage = "https://github.com/manahl/pytest-plugins";
     maintainers = with maintainers; [ ryansydnor ];
diff --git a/nixpkgs/pkgs/development/python-modules/pytest-snapshot/default.nix b/nixpkgs/pkgs/development/python-modules/pytest-snapshot/default.nix
new file mode 100644
index 000000000000..42f399bb67f9
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/pytest-snapshot/default.nix
@@ -0,0 +1,26 @@
+{ lib, buildPythonPackage, fetchPypi, packaging, pytest, setuptools-scm }:
+
+buildPythonPackage rec {
+  pname = "pytest-snapshot";
+  version = "0.4.2";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1p33fcplfykwf5mdwg25n8hjgzxpx8w1iprjnfzibpxclfrxmy5i";
+  };
+
+  nativeBuildInputs = [ setuptools-scm ];
+
+  propagatedBuildInputs = [ packaging pytest ];
+
+  # pypi does not contain tests and GitHub archive is not supported because setuptools-scm can't detect the version
+  doCheck = false;
+  pythonImportsCheck = [ "pytest_snapshot" ];
+
+  meta = with lib; {
+    description = "A plugin to enable snapshot testing with pytest";
+    homepage = "https://github.com/joseph-roitman/pytest-snapshot/";
+    license = licenses.mit;
+    maintainers = with maintainers; [ SuperSandro2000 ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/pytest-subtesthack/default.nix b/nixpkgs/pkgs/development/python-modules/pytest-subtesthack/default.nix
index d42eb5f8aa31..f7454ee644ca 100644
--- a/nixpkgs/pkgs/development/python-modules/pytest-subtesthack/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pytest-subtesthack/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi, pytest }:
+{ lib, stdenv, buildPythonPackage, fetchPypi, pytest }:
 
 buildPythonPackage rec {
   pname = "pytest-subtesthack";
@@ -14,7 +14,7 @@ buildPythonPackage rec {
   # no upstream test
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Terrible plugin to set up and tear down fixtures within the test function itself";
     homepage = "https://github.com/untitaker/pytest-subtesthack";
     license = licenses.publicDomain;
diff --git a/nixpkgs/pkgs/development/python-modules/pytest-vcr/default.nix b/nixpkgs/pkgs/development/python-modules/pytest-vcr/default.nix
new file mode 100644
index 000000000000..9373c597b367
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/pytest-vcr/default.nix
@@ -0,0 +1,36 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, pytestCheckHook
+, pytest
+, vcrpy
+}:
+
+buildPythonPackage rec {
+  pname = "pytest-vcr";
+  version = "1.0.2";
+
+  src = fetchFromGitHub {
+    owner = "ktosiek";
+    repo = pname;
+    rev = version;
+    sha256 = "1i6fin91mklvbi8jzfiswvwf1m91f43smpj36a17xrzk4gisfs6i";
+  };
+
+  propagatedBuildInputs = [
+    pytest
+    vcrpy
+   ];
+
+  # Tests are using an obsolete attribute 'config'
+  # https://github.com/ktosiek/pytest-vcr/issues/43
+  doCheck = false;
+  pythonImportsCheck = [ "pytest_vcr" ];
+
+  meta = with lib; {
+    description = "Integration VCR.py into pytest";
+    homepage = "https://github.com/ktosiek/pytest-vcr";
+    license = with licenses; [ mit ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/pytest-virtualenv/default.nix b/nixpkgs/pkgs/development/python-modules/pytest-virtualenv/default.nix
index 27350efd7457..a910bf3245f4 100644
--- a/nixpkgs/pkgs/development/python-modules/pytest-virtualenv/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pytest-virtualenv/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi
+{ lib, stdenv, buildPythonPackage, fetchPypi
 , pytest, pytestcov, mock, cmdline, pytest-fixture-config, pytest-shutil, virtualenv }:
 
 buildPythonPackage rec {
@@ -12,11 +12,11 @@ buildPythonPackage rec {
 
   checkInputs = [ pytest pytestcov mock cmdline ];
   propagatedBuildInputs = [ pytest-fixture-config pytest-shutil virtualenv ];
-  checkPhase = '' py.test tests/unit '';
+  checkPhase = "py.test tests/unit ";
 
   nativeBuildInputs = [ pytest ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Create a Python virtual environment in your test that cleans up on teardown. The fixture has utility methods to install packages and list what’s installed.";
     homepage = "https://github.com/manahl/pytest-plugins";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/pytest-xdist/1.nix b/nixpkgs/pkgs/development/python-modules/pytest-xdist/1.nix
index 6dc4b666db54..0c5ae06e8611 100644
--- a/nixpkgs/pkgs/development/python-modules/pytest-xdist/1.nix
+++ b/nixpkgs/pkgs/development/python-modules/pytest-xdist/1.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchPypi, buildPythonPackage, execnet, pytest
+{ lib, stdenv, fetchPypi, buildPythonPackage, execnet, pytest
 , setuptools_scm, pytest-forked, filelock, psutil, six, isPy3k }:
 
 buildPythonPackage rec {
@@ -27,7 +27,7 @@ buildPythonPackage rec {
                     and not test_rsyncignore"
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "py.test xdist plugin for distributed testing and loop-on-failing modes";
     homepage = "https://github.com/pytest-dev/pytest-xdist";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/pytest-xdist/default.nix b/nixpkgs/pkgs/development/python-modules/pytest-xdist/default.nix
index cc58c5ab6bde..e5019f842fee 100644
--- a/nixpkgs/pkgs/development/python-modules/pytest-xdist/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pytest-xdist/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchPypi, buildPythonPackage, execnet, pytest_6
+{ lib, stdenv, fetchPypi, buildPythonPackage, execnet, pytest_6
 , setuptools_scm, pytest-forked, filelock, psutil, six, isPy3k }:
 
 buildPythonPackage rec {
@@ -24,7 +24,7 @@ buildPythonPackage rec {
       -k "not (distribution_rsyncdirs_example or rsync or warning_captured_deprecated_in_pytest_6)"
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "py.test xdist plugin for distributed testing and loop-on-failing modes";
     homepage = "https://github.com/pytest-dev/pytest-xdist";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/pytest/4.nix b/nixpkgs/pkgs/development/python-modules/pytest/4.nix
index 43cfe6c822c4..63e57a7f769b 100644
--- a/nixpkgs/pkgs/development/python-modules/pytest/4.nix
+++ b/nixpkgs/pkgs/development/python-modules/pytest/4.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, pythonOlder, fetchPypi, attrs, hypothesis, py
+{ lib, stdenv, buildPythonPackage, pythonOlder, fetchPypi, attrs, hypothesis, py
 , setuptools_scm, setuptools, six, pluggy, funcsigs, isPy3k, more-itertools
 , atomicwrites, mock, writeText, pathlib2, wcwidth, packaging, isPyPy
 }:
@@ -14,8 +14,8 @@ buildPythonPackage rec {
   checkInputs = [ hypothesis mock ];
   buildInputs = [ setuptools_scm ];
   propagatedBuildInputs = [ attrs py setuptools six pluggy more-itertools atomicwrites wcwidth packaging ]
-    ++ stdenv.lib.optionals (!isPy3k) [ funcsigs ]
-    ++ stdenv.lib.optionals (pythonOlder "3.6") [ pathlib2 ];
+    ++ lib.optionals (!isPy3k) [ funcsigs ]
+    ++ lib.optionals (pythonOlder "3.6") [ pathlib2 ];
 
   doCheck = !isPyPy; # https://github.com/pytest-dev/pytest/issues/3460
   checkPhase = ''
@@ -40,7 +40,7 @@ buildPythonPackage rec {
     preDistPhases+=" pytestcachePhase"
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://docs.pytest.org";
     description = "Framework for writing tests";
     maintainers = with maintainers; [ domenkozar lovek323 madjar lsix ];
diff --git a/nixpkgs/pkgs/development/python-modules/pytest/5.nix b/nixpkgs/pkgs/development/python-modules/pytest/5.nix
index 2b45c330cf38..1293cc94b0f1 100644
--- a/nixpkgs/pkgs/development/python-modules/pytest/5.nix
+++ b/nixpkgs/pkgs/development/python-modules/pytest/5.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, pythonOlder, fetchPypi, isPy3k, isPyPy
+{ lib, stdenv, buildPythonPackage, pythonOlder, fetchPypi, isPy3k, isPyPy
 , atomicwrites
 , attrs
 , funcsigs
@@ -43,7 +43,7 @@ buildPythonPackage rec {
     six
     toml
     wcwidth
-  ] ++ stdenv.lib.optionals (pythonOlder "3.6") [ pathlib2 ];
+  ] ++ lib.optionals (pythonOlder "3.6") [ pathlib2 ];
 
   doCheck = !isPyPy; # https://github.com/pytest-dev/pytest/issues/3460
 
@@ -71,7 +71,7 @@ buildPythonPackage rec {
     "pytest"
   ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://docs.pytest.org";
     description = "Framework for writing tests";
     maintainers = with maintainers; [ domenkozar lovek323 madjar lsix ];
diff --git a/nixpkgs/pkgs/development/python-modules/pytest/default.nix b/nixpkgs/pkgs/development/python-modules/pytest/default.nix
index 93282218871a..6f5c99a99b19 100644
--- a/nixpkgs/pkgs/development/python-modules/pytest/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pytest/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, pythonOlder, fetchPypi, isPy3k, isPyPy
+{ lib, stdenv, buildPythonPackage, pythonOlder, fetchPypi, isPy3k, isPyPy
 , atomicwrites
 , attrs
 , funcsigs
@@ -45,7 +45,7 @@ buildPythonPackage rec {
     six
     toml
     wcwidth
-  ] ++ stdenv.lib.optionals (pythonOlder "3.6") [ pathlib2 ];
+  ] ++ lib.optionals (pythonOlder "3.6") [ pathlib2 ];
 
   doCheck = !isPyPy; # https://github.com/pytest-dev/pytest/issues/3460
 
@@ -58,6 +58,12 @@ buildPythonPackage rec {
   checkPhase = ''
     runHook preCheck
     $out/bin/py.test -x testing/ -k "not test_collect_pyargs_with_testpaths" --ignore=testing/test_junitxml.py
+
+    # tests leave behind unreproducible pytest binaries in the output directory, remove:
+    find $out/lib -name "*-pytest-${version}.pyc" -delete
+    # specifically testing/test_assertion.py and testing/test_assertrewrite.py leave behind those:
+    find $out/lib -name "*opt-2.pyc" -delete
+
     runHook postCheck
   '';
 
@@ -73,7 +79,7 @@ buildPythonPackage rec {
     "pytest"
   ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://docs.pytest.org";
     description = "Framework for writing tests";
     maintainers = with maintainers; [ domenkozar lovek323 madjar lsix ];
diff --git a/nixpkgs/pkgs/development/python-modules/pytestcache/default.nix b/nixpkgs/pkgs/development/python-modules/pytestcache/default.nix
index f2427991e3f2..877e357d9469 100644
--- a/nixpkgs/pkgs/development/python-modules/pytestcache/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pytestcache/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi
+{ lib, stdenv, buildPythonPackage, fetchPypi
 , pytest, execnet }:
 
 buildPythonPackage rec {
@@ -20,7 +20,7 @@ buildPythonPackage rec {
   # Too many failing tests. Are they maintained?
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     license = licenses.mit;
     homepage = "https://pypi.python.org/pypi/pytest-cache/";
     description = "pytest plugin with mechanisms for caching across test runs";
diff --git a/nixpkgs/pkgs/development/python-modules/pytestrunner/default.nix b/nixpkgs/pkgs/development/python-modules/pytestrunner/default.nix
index 5ea632fa7f80..7fd901babd0b 100644
--- a/nixpkgs/pkgs/development/python-modules/pytestrunner/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pytestrunner/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi, setuptools_scm, pytest }:
+{ lib, stdenv, buildPythonPackage, fetchPypi, setuptools_scm, pytest }:
 
 buildPythonPackage rec {
   pname = "pytest-runner";
@@ -22,7 +22,7 @@ buildPythonPackage rec {
   # Fixture not found
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Invoke py.test as distutils command with dependency resolution";
     homepage = "https://github.com/pytest-dev/pytest-runner";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/python-doi/default.nix b/nixpkgs/pkgs/development/python-modules/python-doi/default.nix
index 2fcd30e84b3e..7e94f743da46 100644
--- a/nixpkgs/pkgs/development/python-modules/python-doi/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/python-doi/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchFromGitHub, isPy3k }:
+{ lib, stdenv, buildPythonPackage, fetchFromGitHub, isPy3k }:
 
 buildPythonPackage rec {
   pname = "python-doi";
@@ -13,7 +13,7 @@ buildPythonPackage rec {
 
   disabled = !isPy3k;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Python library to work with Document Object Identifiers (doi)";
     homepage = "https://github.com/alejandrogallo/python-doi";
     maintainers = with maintainers; [ teto ];
diff --git a/nixpkgs/pkgs/development/python-modules/python-editor/default.nix b/nixpkgs/pkgs/development/python-modules/python-editor/default.nix
index 523229220efe..19efcb89d3d3 100644
--- a/nixpkgs/pkgs/development/python-modules/python-editor/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/python-editor/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi }:
+{ lib, stdenv, buildPythonPackage, fetchPypi }:
 
 buildPythonPackage rec {
   version = "1.0.4";
@@ -12,7 +12,7 @@ buildPythonPackage rec {
   # No proper tests
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "A library that provides the `editor` module for programmatically";
     homepage = "https://github.com/fmoo/python-editor";
     license = licenses.asl20;
diff --git a/nixpkgs/pkgs/development/python-modules/python-efl/default.nix b/nixpkgs/pkgs/development/python-modules/python-efl/default.nix
index 4e3cffa9d223..44e35a186e21 100644
--- a/nixpkgs/pkgs/development/python-modules/python-efl/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/python-efl/default.nix
@@ -1,7 +1,7 @@
-{ stdenv
+{ lib, stdenv
 , fetchurl
 , buildPythonPackage
-, pkgconfig
+, pkg-config
 , python
 , dbus-python
 , enlightenment
@@ -18,7 +18,7 @@ buildPythonPackage rec {
     sha256 = "0bk161xwlz4dlv56r68xwkm8snzfifaxd1j7w2wcyyk4fgvnvq4r";
   };
 
-  nativeBuildInputs = [ pkgconfig ];
+  nativeBuildInputs = [ pkg-config ];
 
   buildInputs = [ enlightenment.efl ];
 
@@ -38,7 +38,7 @@ buildPythonPackage rec {
 
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Python bindings for EFL and Elementary";
     homepage = "https://phab.enlightenment.org/w/projects/python_bindings_for_efl/";
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/development/python-modules/python-engineio/default.nix b/nixpkgs/pkgs/development/python-modules/python-engineio/default.nix
index a74ee0455f2f..ed03d9663076 100644
--- a/nixpkgs/pkgs/development/python-modules/python-engineio/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/python-engineio/default.nix
@@ -1,4 +1,6 @@
-{ stdenv, buildPythonPackage, fetchFromGitHub
+{ lib, stdenv
+, buildPythonPackage
+, fetchFromGitHub
 , aiohttp
 , eventlet
 , iana-etc
@@ -14,19 +16,15 @@
 
 buildPythonPackage rec {
   pname = "python-engineio";
-  version = "3.13.2";
+  version = "4.0.0";
 
   src = fetchFromGitHub {
     owner = "miguelgrinberg";
     repo = "python-engineio";
     rev = "v${version}";
-    sha256 = "1hn5nnxp7y2dpf52vrwdxza2sqmzj8admcnwgjkmcxk65s2dhvy1";
+    sha256 = "00x9pmmnl1yd59wd96ivkiqh4n5nphl8cwk43hf4nqr0icgsyhar";
   };
 
-  propagatedBuildInputs = [
-    six
-  ];
-
   checkInputs = [
     aiohttp
     eventlet
@@ -38,7 +36,9 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
-  preCheck = stdenv.lib.optionalString stdenv.isLinux ''
+  doCheck = !stdenv.isDarwin;
+
+  preCheck = lib.optionalString stdenv.isLinux ''
     echo "nameserver 127.0.0.1" > resolv.conf
     export NIX_REDIRECTS=/etc/protocols=${iana-etc}/etc/protocols:/etc/resolv.conf=$(realpath resolv.conf) \
       LD_PRELOAD=${libredirect}/lib/libredirect.so
@@ -47,11 +47,16 @@ buildPythonPackage rec {
 
   # somehow effective log level does not change?
   disabledTests = [ "test_logger" ];
+  pythonImportsCheck = [ "engineio" ];
 
-  meta = with stdenv.lib; {
-    description = "Engine.IO server";
+  meta = with lib; {
+    description = "Python based Engine.IO client and server";
+    longDescription = ''
+      Engine.IO is a lightweight transport protocol that enables real-time
+      bidirectional event-based communication between clients and a server.
+    '';
     homepage = "https://github.com/miguelgrinberg/python-engineio/";
-    license = licenses.mit;
-    maintainers = [ maintainers.mic92 ];
+    license = with licenses; [ mit ];
+    maintainers = with maintainers; [ mic92 ];
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/python-etcd/default.nix b/nixpkgs/pkgs/development/python-modules/python-etcd/default.nix
index 714c324b4405..f4305473797c 100644
--- a/nixpkgs/pkgs/development/python-modules/python-etcd/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/python-etcd/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , nose
@@ -28,7 +28,7 @@ buildPythonPackage rec {
   # Some issues with etcd not in path even though most tests passed
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "A python client for Etcd";
     homepage = "https://github.com/jplana/python-etcd";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/python-forecastio/default.nix b/nixpkgs/pkgs/development/python-modules/python-forecastio/default.nix
index 7ef2eee4f2e5..392c5c2126d3 100644
--- a/nixpkgs/pkgs/development/python-modules/python-forecastio/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/python-forecastio/default.nix
@@ -1,4 +1,4 @@
-{ buildPythonPackage, stdenv, fetchPypi
+{ buildPythonPackage, lib, stdenv, fetchPypi
 , requests
 , nose
 , responses
@@ -22,7 +22,7 @@ buildPythonPackage rec {
     nosetests
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://zeevgilovitz.com/python-forecast.io/";
     description = "A thin Python Wrapper for the Dark Sky (formerly forecast.io) weather API";
     license = licenses.bsd2;
diff --git a/nixpkgs/pkgs/development/python-modules/python-frontmatter/default.nix b/nixpkgs/pkgs/development/python-modules/python-frontmatter/default.nix
index 8edd87556675..661ea4ba2493 100644
--- a/nixpkgs/pkgs/development/python-modules/python-frontmatter/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/python-frontmatter/default.nix
@@ -20,7 +20,7 @@ python3Packages.buildPythonPackage rec {
     pytest
   ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://github.com/eyeseast/python-frontmatter";
     description = "Parse and manage posts with YAML (or other) frontmatter";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/python-gitlab/default.nix b/nixpkgs/pkgs/development/python-modules/python-gitlab/default.nix
index 6108ea74a23a..c706ff7903c3 100644
--- a/nixpkgs/pkgs/development/python-modules/python-gitlab/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/python-gitlab/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi, requests, mock, httmock, pythonOlder, pytest, responses }:
+{ lib, stdenv, buildPythonPackage, fetchPypi, requests, mock, httmock, pythonOlder, pytest, responses }:
 
 buildPythonPackage rec {
   pname = "python-gitlab";
@@ -15,7 +15,7 @@ buildPythonPackage rec {
 
   disabled = pythonOlder "3.6";
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Interact with GitLab API";
     homepage = "https://github.com/python-gitlab/python-gitlab";
     license = licenses.lgpl3;
diff --git a/nixpkgs/pkgs/development/python-modules/python-gnupg/default.nix b/nixpkgs/pkgs/development/python-modules/python-gnupg/default.nix
index 3dd44a72ea46..36ca3a719061 100644
--- a/nixpkgs/pkgs/development/python-modules/python-gnupg/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/python-gnupg/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi, gnupg }:
+{ lib, stdenv, buildPythonPackage, fetchPypi, gnupg }:
 
 buildPythonPackage rec {
   pname   = "python-gnupg";
@@ -18,7 +18,7 @@ buildPythonPackage rec {
     --replace "test_search_keys" "disabled__test_search_keys"
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "A wrapper for the Gnu Privacy Guard";
     homepage    = "https://pypi.python.org/pypi/python-gnupg";
     license     = licenses.bsd3;
diff --git a/nixpkgs/pkgs/development/python-modules/python-hosts/default.nix b/nixpkgs/pkgs/development/python-modules/python-hosts/default.nix
index e76dbc3e3b24..238b9b9e4afa 100644
--- a/nixpkgs/pkgs/development/python-modules/python-hosts/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/python-hosts/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi, pyyaml, pytest, pytestcov }:
+{ lib, stdenv, buildPythonPackage, fetchPypi, pyyaml, pytest, pytestcov }:
 
 buildPythonPackage rec {
   pname = "python-hosts";
@@ -23,7 +23,7 @@ buildPythonPackage rec {
     pytest tests/test_utils.py
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "A library for managing a hosts file. It enables adding and removing entries, or importing them from a file or URL";
     homepage = "https://github.com/jonhadfield/python-hosts";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/python-hpilo/default.nix b/nixpkgs/pkgs/development/python-modules/python-hpilo/default.nix
new file mode 100644
index 000000000000..f151e3ffb4cd
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/python-hpilo/default.nix
@@ -0,0 +1,28 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, utils
+}:
+
+buildPythonPackage rec {
+  pname = "python-hpilo";
+  version = "4.4.3";
+
+  src = fetchFromGitHub {
+    owner = "seveas";
+    repo = pname;
+    rev = version;
+    sha256 = "1dk5xswydw7nmn9hlna1xca1mzcas9qv2kmid5yx8kvk3hjqci9v";
+  };
+
+  # Most tests requires an actual iLO to run
+  doCheck = false;
+  pythonImportsCheck = [ "hpilo" ];
+
+  meta = with lib; {
+    description = "Python module to access the HP iLO XML interface";
+    homepage = "https://seveas.github.io/python-hpilo/";
+    license = with licenses; [ asl20 gpl3Plus ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/python-http-client/default.nix b/nixpkgs/pkgs/development/python-modules/python-http-client/default.nix
new file mode 100644
index 000000000000..f4b19ba379e4
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/python-http-client/default.nix
@@ -0,0 +1,34 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, mock
+, pytestCheckHook
+}:
+
+buildPythonPackage rec {
+  pname = "python_http_client";
+  version = "3.3.1";
+
+  src = fetchFromGitHub {
+    owner = "sendgrid";
+    repo = "python-http-client";
+    rev = version;
+    sha256 = "0mbcg0vb9v41v7hbvycrxx5wyrf3ysvfgxkix8hn8c4x5l2lmidc";
+  };
+
+  checkInputs = [
+    mock
+    pytestCheckHook
+  ];
+
+  # Failure was fixed by https://github.com/sendgrid/python-http-client/commit/6d62911ab0d0645b499e14bb17c302b48f3c10e4
+  disabledTests = [ "test__daterange" ];
+  pythonImportsCheck = [ "python_http_client" ];
+
+  meta = with lib; {
+    description = "Python HTTP library to call APIs";
+    homepage = "https://github.com/sendgrid/python-http-client";
+    license = with licenses; [ mit ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/python-igraph/default.nix b/nixpkgs/pkgs/development/python-modules/python-igraph/default.nix
index 51d544eb5f81..728d47b1f967 100644
--- a/nixpkgs/pkgs/development/python-modules/python-igraph/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/python-igraph/default.nix
@@ -1,5 +1,5 @@
 { buildPythonPackage, fetchPypi, lib, isPy3k
-, pkgconfig, igraph
+, pkg-config, igraph
 , texttable }:
 
 buildPythonPackage rec {
@@ -7,7 +7,7 @@ buildPythonPackage rec {
   version = "0.8.3";
   disabled = !isPy3k; # fails to build
 
-  nativeBuildInputs = [ pkgconfig ];
+  nativeBuildInputs = [ pkg-config ];
   buildInputs = [ igraph ];
   propagatedBuildInputs = [ texttable ];
 
diff --git a/nixpkgs/pkgs/development/python-modules/python-jose/default.nix b/nixpkgs/pkgs/development/python-modules/python-jose/default.nix
index 6b8104516ea9..0de220094c06 100644
--- a/nixpkgs/pkgs/development/python-modules/python-jose/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/python-jose/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchFromGitHub
+{ lib, stdenv, buildPythonPackage, fetchFromGitHub
 , future, six, ecdsa, rsa
 , pycrypto, pytestcov, pytestrunner, cryptography
 , pytestCheckHook
@@ -37,7 +37,7 @@ buildPythonPackage rec {
 
   propagatedBuildInputs = [ future six ecdsa rsa ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://github.com/mpdavis/python-jose";
     description = "A JOSE implementation in Python";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/python-json-logger/default.nix b/nixpkgs/pkgs/development/python-modules/python-json-logger/default.nix
index d21e1dfccc91..96ce13ab265b 100644
--- a/nixpkgs/pkgs/development/python-modules/python-json-logger/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/python-json-logger/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , isPy27
@@ -17,7 +17,7 @@ buildPythonPackage rec {
 
   checkInputs = [ nose ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://github.com/madzak/python-json-logger";
     description = "A python library adding a json log formatter";
     license = licenses.bsdOriginal;
diff --git a/nixpkgs/pkgs/development/python-modules/python-jsonrpc-server/default.nix b/nixpkgs/pkgs/development/python-modules/python-jsonrpc-server/default.nix
index fa6ba97b406d..3a0ab33363ec 100644
--- a/nixpkgs/pkgs/development/python-modules/python-jsonrpc-server/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/python-jsonrpc-server/default.nix
@@ -1,49 +1,31 @@
-{ stdenv, buildPythonPackage, fetchFromGitHub, pythonOlder
-, pytest, mock, pytestcov, coverage
+{ stdenv, lib, buildPythonPackage, fetchFromGitHub, pythonOlder
+, pytestCheckHook, mock, pytestcov, coverage
 , future, futures, ujson, isPy38
-, fetchpatch
 }:
 
 buildPythonPackage rec {
   pname = "python-jsonrpc-server";
-  version = "0.3.4";
+  version = "0.4.0";
 
   src = fetchFromGitHub {
     owner = "palantir";
     repo = "python-jsonrpc-server";
     rev = version;
-    sha256 = "027sx5pv4i9a192kr00bjjcxxprh2xyr8q5372q8ghff3xryk9dd";
+    sha256 = "0pcf50qvcxqnz3db58whqd8z89cdph19pfs1whgfm0zmwbwk0lw6";
   };
 
   postPatch = ''
     sed -i "s/version=versioneer.get_version(),/version=\"$version\",/g" setup.py
-    # https://github.com/palantir/python-jsonrpc-server/issues/36
-    sed -iEe "s!'ujson.*\$!'ujson',!" setup.py
   '';
 
   checkInputs = [
-    pytest mock pytestcov coverage
-  ];
-
-  checkPhase = ''
-    pytest
-  '';
-
-  patches = [
-    (fetchpatch {
-      url = "https://github.com/palantir/python-jsonrpc-server/commit/0a04cc4e9d44233b1038b12d63cd3bd437c2374e.patch";
-      sha256 = "177zdnp1808r2pg189bvzab44l8i2alsgv04kmrlhhnv40h66qyg";
-    })
-    (fetchpatch {
-      url = "https://github.com/palantir/python-jsonrpc-server/commit/5af6e43d0c1fb9a6a29b96d38cfd6dbeec85d0ea.patch";
-      sha256 = "1gx7lc1jxar1ngqqfkdn21s46y1mfnjf7ky2886ydk53nkaba91m";
-    })
+    pytestCheckHook mock pytestcov coverage
   ];
 
   propagatedBuildInputs = [ future ujson ]
-    ++ stdenv.lib.optional (pythonOlder "3.2") futures;
+    ++ lib.optional (pythonOlder "3.2") futures;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://github.com/palantir/python-jsonrpc-server";
     description = "A Python 2 and 3 asynchronous JSON RPC server";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/python-language-server/default.nix b/nixpkgs/pkgs/development/python-modules/python-language-server/default.nix
index 4558bc7edba4..f22652d0f73c 100644
--- a/nixpkgs/pkgs/development/python-modules/python-language-server/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/python-language-server/default.nix
@@ -1,6 +1,6 @@
-{ stdenv, buildPythonPackage, fetchFromGitHub, fetchpatch, pythonOlder, isPy27
+{ stdenv, lib, buildPythonPackage, fetchFromGitHub, pythonOlder, isPy27
 , backports_functools_lru_cache, configparser, futures, future, jedi, pluggy, python-jsonrpc-server, flake8
-, pytestCheckHook, mock, pytestcov, coverage, setuptools, ujson
+, pytestCheckHook, mock, pytestcov, coverage, setuptools, ujson, flaky
 , # Allow building a limited set of providers, e.g. ["pycodestyle"].
   providers ? ["*"]
   # The following packages are optional and
@@ -21,33 +21,33 @@ in
 
 buildPythonPackage rec {
   pname = "python-language-server";
-  version = "0.34.1";
+  version = "0.36.2";
 
   src = fetchFromGitHub {
     owner = "palantir";
     repo = "python-language-server";
     rev = version;
-    sha256 = "sha256-/tVzaoyUO6+7DSvnf3JxpcTY0rU+hHBu5qlru/ZTpxU=";
+    sha256 = "07x6jr4z20jxn03bxblwc8vk0ywha492cgwfhj7q97nb5cm7kx0q";
   };
 
-  patches = [
-    # https://github.com/palantir/python-language-server/pull/851
-    (fetchpatch {
-      url = "https://github.com/palantir/python-language-server/commit/f513f3297132492dd41e001d943980e6c4f40809.patch";
-      sha256 = "04c9hrb3dzlfchjk4625ipazyfcbq6qq2kj2hg3zf2xsny2jcvi5";
-    })
-  ];
+  propagatedBuildInputs = [ setuptools jedi pluggy future python-jsonrpc-server flake8 ujson ]
+    ++ lib.optional (withProvider "autopep8") autopep8
+    ++ lib.optional (withProvider "mccabe") mccabe
+    ++ lib.optional (withProvider "pycodestyle") pycodestyle
+    ++ lib.optional (withProvider "pydocstyle") pydocstyle
+    ++ lib.optional (withProvider "pyflakes") pyflakes
+    ++ lib.optional (withProvider "pylint") pylint
+    ++ lib.optional (withProvider "rope") rope
+    ++ lib.optional (withProvider "yapf") yapf
+    ++ lib.optional isPy27 configparser
+    ++ lib.optionals (pythonOlder "3.2") [ backports_functools_lru_cache futures ];
 
-  postPatch = ''
-    # https://github.com/palantir/python-jsonrpc-server/issues/36
-    sed -i -e 's!ujson<=!ujson>=!' setup.py
-  '';
 
   # The tests require all the providers, disable otherwise.
   doCheck = providers == ["*"];
 
   checkInputs = [
-    pytestCheckHook mock pytestcov coverage
+    pytestCheckHook mock pytestcov coverage flaky
     # rope is technically a dependency, but we don't add it by default since we
     # already have jedi, which is the preferred option
     rope
@@ -67,21 +67,10 @@ buildPythonPackage rec {
     "test_matplotlib_completions"
     "test_snippet_parsing"
     "test_numpy_hover"
-  ] ++ stdenv.lib.optional isPy27 "test_flake8_lint";
-
-  propagatedBuildInputs = [ setuptools jedi pluggy future python-jsonrpc-server flake8 ujson ]
-    ++ stdenv.lib.optional (withProvider "autopep8") autopep8
-    ++ stdenv.lib.optional (withProvider "mccabe") mccabe
-    ++ stdenv.lib.optional (withProvider "pycodestyle") pycodestyle
-    ++ stdenv.lib.optional (withProvider "pydocstyle") pydocstyle
-    ++ stdenv.lib.optional (withProvider "pyflakes") pyflakes
-    ++ stdenv.lib.optional (withProvider "pylint") pylint
-    ++ stdenv.lib.optional (withProvider "rope") rope
-    ++ stdenv.lib.optional (withProvider "yapf") yapf
-    ++ stdenv.lib.optional isPy27 configparser
-    ++ stdenv.lib.optionals (pythonOlder "3.2") [ backports_functools_lru_cache futures ];
+    "test_symbols"
+  ] ++ lib.optional isPy27 "test_flake8_lint";
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://github.com/palantir/python-language-server";
     description = "An implementation of the Language Server Protocol for Python";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/python-ldap-test/default.nix b/nixpkgs/pkgs/development/python-modules/python-ldap-test/default.nix
index 3f543e8569b9..94d8abd1fabd 100644
--- a/nixpkgs/pkgs/development/python-modules/python-ldap-test/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/python-ldap-test/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi, py4j }:
+{ lib, stdenv, buildPythonPackage, fetchPypi, py4j }:
 
 buildPythonPackage rec {
   pname = "python-ldap-test";
@@ -14,7 +14,7 @@ buildPythonPackage rec {
   # Tests needs java to be present in path
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Tool for testing code speaking with LDAP server";
     homepage = "https://github.com/zoldar/python-ldap-test";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/python-levenshtein/default.nix b/nixpkgs/pkgs/development/python-modules/python-levenshtein/default.nix
index 7a16621da0a5..60767e77e761 100644
--- a/nixpkgs/pkgs/development/python-modules/python-levenshtein/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/python-levenshtein/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 }:
@@ -15,7 +15,7 @@ buildPythonPackage rec {
   # No tests included in archive
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Functions for fast computation of Levenshtein distance and string similarity";
     homepage    = "https://github.com/ztane/python-Levenshtein";
     license     = licenses.gpl2;
diff --git a/nixpkgs/pkgs/development/python-modules/python-ly/default.nix b/nixpkgs/pkgs/development/python-modules/python-ly/default.nix
index f8b7f023717c..6f83a7f61c75 100644
--- a/nixpkgs/pkgs/development/python-modules/python-ly/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/python-ly/default.nix
@@ -1,4 +1,4 @@
-{ buildPythonPackage, fetchPypi, stdenv }:
+{ buildPythonPackage, fetchPypi, lib, stdenv }:
 
 buildPythonPackage rec {
   pname = "python-ly";
@@ -13,7 +13,7 @@ buildPythonPackage rec {
   # seem to be broken ATM: https://github.com/wbsoft/python-ly/issues/70
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Tool and library for manipulating LilyPond files";
     license = licenses.gpl2;
     maintainers = with maintainers; [ ];
diff --git a/nixpkgs/pkgs/development/python-modules/python-lzf/default.nix b/nixpkgs/pkgs/development/python-modules/python-lzf/default.nix
index 3064afe3ba42..a1fd01134235 100644
--- a/nixpkgs/pkgs/development/python-modules/python-lzf/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/python-lzf/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi }:
+{ lib, stdenv, buildPythonPackage, fetchPypi }:
 
 buildPythonPackage rec {
   version = "0.2.4";
@@ -9,7 +9,7 @@ buildPythonPackage rec {
     sha256 = "1l8m6vzwm1m8hn7ldw8j8r2b6r199k8z3q0wnhdyy4p68hahyhni";
   };
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "liblzf python bindings";
     homepage = "https://github.com/teepark/python-lzf";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/python-mapnik/default.nix b/nixpkgs/pkgs/development/python-modules/python-mapnik/default.nix
index 61cd5e34855c..fe68ed60e372 100644
--- a/nixpkgs/pkgs/development/python-modules/python-mapnik/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/python-mapnik/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , isPyPy
 , python
@@ -30,7 +30,7 @@ in buildPythonPackage rec {
   disabled = isPyPy;
   doCheck = false; # doesn't find needed test data files
   preBuild = let
-    pythonVersion = with stdenv.lib.versions; "${major python.version}${minor python.version}";
+    pythonVersion = with lib.versions; "${major python.version}${minor python.version}";
   in ''
     export BOOST_PYTHON_LIB="boost_python${pythonVersion}"
     export BOOST_THREAD_LIB="boost_thread"
@@ -57,7 +57,7 @@ in buildPythonPackage rec {
   ]);
   propagatedBuildInputs = [ pillow pycairo ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Python bindings for Mapnik";
     homepage = "https://mapnik.org";
     license  = licenses.lgpl21;
diff --git a/nixpkgs/pkgs/development/python-modules/python-miio/default.nix b/nixpkgs/pkgs/development/python-modules/python-miio/default.nix
index 136483761cf8..8321795c2fba 100644
--- a/nixpkgs/pkgs/development/python-modules/python-miio/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/python-miio/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , appdirs
@@ -42,7 +42,7 @@ buildPythonPackage rec {
     pytest
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Python library for interfacing with Xiaomi smart appliances";
     homepage = "https://github.com/rytilahti/python-miio";
     license = licenses.gpl3;
diff --git a/nixpkgs/pkgs/development/python-modules/python-mnist/default.nix b/nixpkgs/pkgs/development/python-modules/python-mnist/default.nix
index 0004c297b619..a24f2a383a31 100644
--- a/nixpkgs/pkgs/development/python-modules/python-mnist/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/python-mnist/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi }:
+{ lib, stdenv, buildPythonPackage, fetchPypi }:
 
 buildPythonPackage rec {
   pname = "python-mnist";
@@ -9,7 +9,7 @@ buildPythonPackage rec {
     sha256 = "a0cced01e83b5b844cff86109280df7a672a8e4e38fc19fa68999a17f8a9fbd8";
   };
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://github.com/sorki/python-mnist";
     description = "Simple MNIST data parser written in Python";
     license = licenses.bsd3;
diff --git a/nixpkgs/pkgs/development/python-modules/python-nomad/default.nix b/nixpkgs/pkgs/development/python-modules/python-nomad/default.nix
index f03b3b10e487..ba3ecd3883a4 100644
--- a/nixpkgs/pkgs/development/python-modules/python-nomad/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/python-nomad/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi, requests }:
+{ lib, stdenv, buildPythonPackage, fetchPypi, requests }:
 
 buildPythonPackage rec {
   pname = "python-nomad";
@@ -14,7 +14,7 @@ buildPythonPackage rec {
   # Tests require nomad agent
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Python client library for Hashicorp Nomad";
     homepage = "https://github.com/jrxFive/python-nomad";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/python-otr/default.nix b/nixpkgs/pkgs/development/python-modules/python-otr/default.nix
index d83d25972450..7a40998eebdc 100644
--- a/nixpkgs/pkgs/development/python-modules/python-otr/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/python-otr/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchFromGitHub
 , isPy3k
@@ -22,7 +22,7 @@ buildPythonPackage rec {
 
   propagatedBuildInputs = [ zope_interface cryptography application gmpy2 ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "A pure python implementation of OTR";
     homepage = "https://github.com/AGProjects/python-otr";
     license = licenses.lgpl21Plus;
diff --git a/nixpkgs/pkgs/development/python-modules/python-packer/default.nix b/nixpkgs/pkgs/development/python-modules/python-packer/default.nix
index 420efb40039e..ba02ec84635f 100644
--- a/nixpkgs/pkgs/development/python-modules/python-packer/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/python-packer/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi, fetchpatch, sh }:
+{ lib, stdenv, buildPythonPackage, fetchPypi, fetchpatch, sh }:
 
 buildPythonPackage rec {
   pname = "python-packer";
@@ -20,7 +20,7 @@ buildPythonPackage rec {
   # Tests requires network connections
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "An interface for packer.io";
     homepage = "https://github.com/nir0s/python-packer";
     license = licenses.asl20;
diff --git a/nixpkgs/pkgs/development/python-modules/python-pipedrive/default.nix b/nixpkgs/pkgs/development/python-modules/python-pipedrive/default.nix
index e21f01d5cd6b..6e0c0ef5788e 100644
--- a/nixpkgs/pkgs/development/python-modules/python-pipedrive/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/python-pipedrive/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , python
@@ -18,7 +18,7 @@ buildPythonPackage rec {
 
   doCheck = false; # Tests are not provided.
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Python library for interacting with the pipedrive.com API";
     homepage = "https://github.com/jscott1989/python-pipedrive";
     license = licenses.unfree;
diff --git a/nixpkgs/pkgs/development/python-modules/python-ptrace/default.nix b/nixpkgs/pkgs/development/python-modules/python-ptrace/default.nix
index 5eff4707d4e2..2d81581c0cc1 100644
--- a/nixpkgs/pkgs/development/python-modules/python-ptrace/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/python-ptrace/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , six
@@ -18,7 +18,7 @@ buildPythonPackage rec {
 
   propagatedBuildInputs = [ six ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Python binding of ptrace library";
     homepage = "https://github.com/vstinner/python-ptrace";
     license = licenses.gpl2;
diff --git a/nixpkgs/pkgs/development/python-modules/python-rapidjson/default.nix b/nixpkgs/pkgs/development/python-modules/python-rapidjson/default.nix
index b128e767d872..c4cf0dc74255 100644
--- a/nixpkgs/pkgs/development/python-modules/python-rapidjson/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/python-rapidjson/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , pythonOlder
@@ -28,7 +28,7 @@ buildPythonPackage rec {
     pytest tests
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://github.com/python-rapidjson/python-rapidjson";
     description = "Python wrapper around rapidjson ";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/python-redis-lock/default.nix b/nixpkgs/pkgs/development/python-modules/python-redis-lock/default.nix
index 32189495cdd4..235d085fffdb 100644
--- a/nixpkgs/pkgs/development/python-modules/python-redis-lock/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/python-redis-lock/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , redis
@@ -24,10 +24,10 @@ buildPythonPackage rec {
   '';
 
   propagatedBuildInputs = [ redis ]
-  ++ stdenv.lib.optional withDjango django_redis;
+  ++ lib.optional withDjango django_redis;
 
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://github.com/ionelmc/python-redis-lock";
     license = licenses.bsd2;
     description = "Lock context manager implemented via redis SETNX/BLPOP";
diff --git a/nixpkgs/pkgs/development/python-modules/python-simple-hipchat/default.nix b/nixpkgs/pkgs/development/python-modules/python-simple-hipchat/default.nix
index f41aefe92aaa..8ec7f6887ad4 100644
--- a/nixpkgs/pkgs/development/python-modules/python-simple-hipchat/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/python-simple-hipchat/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi
+{ lib, stdenv, buildPythonPackage, fetchPypi
 , unzip }:
 
 buildPythonPackage rec {
@@ -12,7 +12,7 @@ buildPythonPackage rec {
 
   buildInputs = [ unzip ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Easy peasy wrapper for HipChat's v1 API";
     homepage = "https://github.com/kurttheviking/simple-hipchat-py";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/python-slugify/default.nix b/nixpkgs/pkgs/development/python-modules/python-slugify/default.nix
index 30ce55a12a0c..1860ff6d24d5 100644
--- a/nixpkgs/pkgs/development/python-modules/python-slugify/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/python-slugify/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchPypi, buildPythonPackage, python, text-unidecode }:
+{ lib, stdenv, fetchPypi, buildPythonPackage, python, text-unidecode }:
 
 buildPythonPackage rec {
     pname = "python-slugify";
@@ -15,7 +15,7 @@ buildPythonPackage rec {
       ${python.interpreter} test.py
     '';
 
-    meta = with stdenv.lib; {
+    meta = with lib; {
       homepage = "https://github.com/un33k/python-slugify";
       description = "A Python Slugify application that handles Unicode";
       license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/python-socketio/default.nix b/nixpkgs/pkgs/development/python-modules/python-socketio/default.nix
index cfa260205715..ee9a60301444 100644
--- a/nixpkgs/pkgs/development/python-modules/python-socketio/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/python-socketio/default.nix
@@ -1,33 +1,43 @@
-{ lib
+{ lib, stdenv
+, bidict
 , buildPythonPackage
-, fetchPypi
-, six
-, python-engineio
+, fetchFromGitHub
 , mock
+, pytestCheckHook
+, python-engineio
 }:
 
 buildPythonPackage rec {
   pname = "python-socketio";
-  version = "4.6.1";
+  version = "5.0.4";
 
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "cd1f5aa492c1eb2be77838e837a495f117e17f686029ebc03d62c09e33f4fa10";
+  src = fetchFromGitHub {
+    owner = "miguelgrinberg";
+    repo = "python-socketio";
+    rev = "v${version}";
+    sha256 = "0mpqr53mrdzk9ki24y1inpsfvjlvm7pvxf8q4d52m80i5pcd5v5q";
   };
 
   propagatedBuildInputs = [
-    six
+    bidict
     python-engineio
   ];
 
-  checkInputs = [ mock ];
-  # tests only on github, but latest github release not tagged
-  doCheck = false;
+  checkInputs = [
+    mock
+    pytestCheckHook
+  ];
+
+  pythonImportsCheck = [ "socketio" ];
 
   meta = with lib; {
-    description = "Socket.IO server";
-    homepage = "https://github.com/miguelgrinberg/python-socketio/";
-    license = licenses.mit;
-    maintainers = [ maintainers.mic92 ];
+    description = "Python Socket.IO server and client";
+    longDescription = ''
+      Socket.IO is a lightweight transport protocol that enables real-time
+      bidirectional event-based communication between clients and a server.
+    '';
+    homepage = "https://github.com/miguelgrinberg/python-engineio/";
+    license = with licenses; [ mit ];
+    maintainers = with maintainers; [ mic92 ];
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/python-telegram-bot/default.nix b/nixpkgs/pkgs/development/python-modules/python-telegram-bot/default.nix
index f16f581ade3d..52dea24c45fe 100644
--- a/nixpkgs/pkgs/development/python-modules/python-telegram-bot/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/python-telegram-bot/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , fetchPypi
 , buildPythonPackage
 , certifi
@@ -33,7 +33,7 @@ buildPythonPackage rec {
   doCheck = false;
   pythonImportsCheck = [ "telegram" ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "This library provides a pure Python interface for the Telegram Bot API.";
     homepage = "https://python-telegram-bot.org";
     license = licenses.lgpl3;
diff --git a/nixpkgs/pkgs/development/python-modules/python-twitter/default.nix b/nixpkgs/pkgs/development/python-modules/python-twitter/default.nix
index 6210c13f56e8..4b1e7e2c1eba 100644
--- a/nixpkgs/pkgs/development/python-modules/python-twitter/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/python-twitter/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchFromGitHub
 , fetchpatch
@@ -35,7 +35,7 @@ buildPythonPackage rec {
   propagatedBuildInputs = [ future requests requests_oauthlib ];
   checkInputs = [ pytest responses hypothesis ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "A Python wrapper around the Twitter API";
     homepage = "https://github.com/bear/python-twitter";
     license = licenses.asl20;
diff --git a/nixpkgs/pkgs/development/python-modules/python-u2flib-host/default.nix b/nixpkgs/pkgs/development/python-modules/python-u2flib-host/default.nix
index eddf0deb015c..7f6f14c9888c 100644
--- a/nixpkgs/pkgs/development/python-modules/python-u2flib-host/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/python-u2flib-host/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchPypi, buildPythonPackage, requests, hidapi }:
+{ lib, stdenv, fetchPypi, buildPythonPackage, requests, hidapi }:
 
 buildPythonPackage rec {
   pname = "python-u2flib-host";
@@ -14,7 +14,7 @@ buildPythonPackage rec {
   # Tests fail: "ValueError: underlying buffer has been detached"
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Python based U2F host library";
     homepage = "https://github.com/Yubico/python-u2flib-host";
     license = licenses.bsd2;
diff --git a/nixpkgs/pkgs/development/python-modules/python-uinput/default.nix b/nixpkgs/pkgs/development/python-modules/python-uinput/default.nix
index e7579058f71a..69f741e74379 100644
--- a/nixpkgs/pkgs/development/python-modules/python-uinput/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/python-uinput/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi
+{ lib, stdenv, buildPythonPackage, fetchPypi
 , udev }:
 
 buildPythonPackage rec {
@@ -14,7 +14,7 @@ buildPythonPackage rec {
 
   NIX_CFLAGS_LINK = "-ludev";
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Pythonic API to Linux uinput kernel module";
     homepage = "http://tjjr.fi/sw/python-uinput/";
     license = licenses.gpl3Plus;
diff --git a/nixpkgs/pkgs/development/python-modules/python-unshare/default.nix b/nixpkgs/pkgs/development/python-modules/python-unshare/default.nix
index a7f0bd93b0af..fa82027777f6 100644
--- a/nixpkgs/pkgs/development/python-modules/python-unshare/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/python-unshare/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchFromGitHub
 }:
@@ -16,7 +16,7 @@ buildPythonPackage {
     sha256 = "1h9biinhy5m7r2cj4abhvsg2hb6xjny3n2dxnj1336zpa082ys3h";
   };
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Python bindings for the Linux unshare() syscall";
     homepage    = "https://github.com/thetincho/python-unshare";
     license     = licenses.gpl2;
diff --git a/nixpkgs/pkgs/development/python-modules/python-vipaccess/default.nix b/nixpkgs/pkgs/development/python-modules/python-vipaccess/default.nix
index cdafd3cd2a0f..f96086393f2e 100644
--- a/nixpkgs/pkgs/development/python-modules/python-vipaccess/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/python-vipaccess/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , oath
@@ -31,7 +31,7 @@ buildPythonPackage rec {
     pytest tests/ -k 'not test_check_token'
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "A free software implementation of Symantec's VIP Access application and protocol";
     homepage = "https://github.com/dlenski/python-vipaccess";
     license = licenses.asl20;
diff --git a/nixpkgs/pkgs/development/python-modules/python-wifi/default.nix b/nixpkgs/pkgs/development/python-modules/python-wifi/default.nix
index 7300efc77bcc..503fbe101b92 100644
--- a/nixpkgs/pkgs/development/python-modules/python-wifi/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/python-wifi/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , isPy27
@@ -15,7 +15,7 @@ buildPythonPackage rec {
     sha256 = "149c3dznb63d82143cz5hqdim0mqjysz6p3yk0zv271vq3xnmzvv";
   };
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     inherit version;
     description = "Read & write wireless card capabilities using the Linux Wireless Extensions";
     homepage = "http://pythonwifi.tuxfamily.org/";
diff --git a/nixpkgs/pkgs/development/python-modules/python-wink/default.nix b/nixpkgs/pkgs/development/python-modules/python-wink/default.nix
new file mode 100644
index 000000000000..fa0dc670133e
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/python-wink/default.nix
@@ -0,0 +1,28 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, requests
+}:
+
+buildPythonPackage rec {
+  pname = "python-wink";
+  version = "1.10.5";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1r6qabnqxyy3llnj10z60d4w9pg2zabysl3l7znpy1adss4ywxl0";
+  };
+
+  propagatedBuildInputs = [ requests ];
+
+  # Project has no tests
+  doCheck = false;
+  pythonImportsCheck = [ "pywink" ];
+
+  meta = with lib; {
+    description = "Python implementation of the Wink API";
+    homepage = "https://github.com/python-wink/python-wink";
+    license = with licenses; [ mit ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/python-xmp-toolkit/default.nix b/nixpkgs/pkgs/development/python-modules/python-xmp-toolkit/default.nix
index e5d7a7f0326d..3e6d72845687 100644
--- a/nixpkgs/pkgs/development/python-modules/python-xmp-toolkit/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/python-xmp-toolkit/default.nix
@@ -4,7 +4,7 @@
 , mock
 , pythonOlder
 , pytz
-, stdenv
+, lib, stdenv
 }:
 
 buildPythonPackage {
@@ -26,7 +26,7 @@ buildPythonPackage {
 
   buildInputs = [ exempi ];
 
-  checkInputs = stdenv.lib.optionals (pythonOlder "3.3") [ mock ];
+  checkInputs = lib.optionals (pythonOlder "3.3") [ mock ];
 
   propagatedBuildInputs = [ pytz ];
 
@@ -35,7 +35,7 @@ buildPythonPackage {
       --replace "ctypes.util.find_library('exempi')" "'${exempi}/lib/libexempi${stdenv.hostPlatform.extensions.sharedLibrary}'"
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://github.com/python-xmp-toolkit/python-xmp-toolkit";
     description = "Python XMP Toolkit for working with metadata";
     license = licenses.bsd3;
diff --git a/nixpkgs/pkgs/development/python-modules/python2-pythondialog/default.nix b/nixpkgs/pkgs/development/python-modules/python2-pythondialog/default.nix
index a19156d1018b..b9d9b110f60c 100644
--- a/nixpkgs/pkgs/development/python-modules/python2-pythondialog/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/python2-pythondialog/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , isPy3k
@@ -18,7 +18,7 @@ buildPythonPackage rec {
     substituteInPlace dialog.py --replace ":/bin:/usr/bin" ":$out/bin"
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "A Python interface to the UNIX dialog utility and mostly-compatible programs (Python 2 backport)";
     homepage = "http://pythondialog.sourceforge.net/";
     license = licenses.lgpl3;
diff --git a/nixpkgs/pkgs/development/python-modules/python3-openid/default.nix b/nixpkgs/pkgs/development/python-modules/python3-openid/default.nix
index 2a85482cbb68..ad8ea88d1d0d 100644
--- a/nixpkgs/pkgs/development/python-modules/python3-openid/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/python3-openid/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, isPy3k, buildPythonPackage, fetchPypi, defusedxml }:
+{ lib, stdenv, isPy3k, buildPythonPackage, fetchPypi, defusedxml }:
 
 buildPythonPackage rec {
   pname = "python3-openid";
@@ -15,7 +15,7 @@ buildPythonPackage rec {
 
   disabled = !isPy3k;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "OpenID support for modern servers and consumers";
     homepage = "https://github.com/necaris/python3-openid";
     license = licenses.asl20;
diff --git a/nixpkgs/pkgs/development/python-modules/python_fedora/default.nix b/nixpkgs/pkgs/development/python-modules/python_fedora/default.nix
index 2224c94ac6f7..df12d7aeaff6 100644
--- a/nixpkgs/pkgs/development/python-modules/python_fedora/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/python_fedora/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi, kitchen, requests, bunch, paver
+{ lib, stdenv, buildPythonPackage, fetchPypi, kitchen, requests, bunch, paver
 , six, munch, urllib3, beautifulsoup4, openidc-client, lockfile }:
 
 buildPythonPackage rec {
@@ -13,7 +13,7 @@ buildPythonPackage rec {
     six munch urllib3 beautifulsoup4 openidc-client ];
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Python Fedora Module";
     homepage = "https://github.com/fedora-infra/python-fedora";
     license = licenses.lgpl2;
diff --git a/nixpkgs/pkgs/development/python-modules/python_keyczar/default.nix b/nixpkgs/pkgs/development/python-modules/python_keyczar/default.nix
index c9e29ab5c639..5fff75ada911 100644
--- a/nixpkgs/pkgs/development/python-modules/python_keyczar/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/python_keyczar/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , pyasn1
@@ -16,7 +16,7 @@ buildPythonPackage rec {
 
   buildInputs = [ pyasn1 pycrypto ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Toolkit for safe and simple cryptography";
     homepage    = "https://pypi.python.org/pypi/python-keyczar";
     license     = licenses.asl20;
diff --git a/nixpkgs/pkgs/development/python-modules/python_mimeparse/default.nix b/nixpkgs/pkgs/development/python-modules/python_mimeparse/default.nix
index 9484d24f5e2f..c3f85affe81b 100644
--- a/nixpkgs/pkgs/development/python-modules/python_mimeparse/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/python_mimeparse/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 }:
@@ -15,7 +15,7 @@ buildPythonPackage rec {
   # error: invalid command 'test'
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "A module provides basic functions for parsing mime-type names and matching them against a list of media-ranges";
     homepage = "https://github.com/dbtsai/python-mimeparse";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/python_openzwave/default.nix b/nixpkgs/pkgs/development/python-modules/python_openzwave/default.nix
index d3f1a0a81204..2c5357297ea7 100644
--- a/nixpkgs/pkgs/development/python-modules/python_openzwave/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/python_openzwave/default.nix
@@ -1,5 +1,5 @@
-{ stdenv, buildPythonPackage, fetchPypi, isPy3k
-, pkgconfig
+{ lib, stdenv, buildPythonPackage, fetchPypi, isPy3k
+, pkg-config
 , systemd, libyaml, openzwave, cython, pyserial
 , six, pydispatcher, urwid }:
 
@@ -15,7 +15,7 @@ buildPythonPackage rec {
     extension = "zip";
   };
 
-  nativeBuildInputs = [ pkgconfig ];
+  nativeBuildInputs = [ pkg-config ];
   buildInputs = [ systemd libyaml openzwave cython ];
   propagatedBuildInputs = [ six urwid pydispatcher pyserial ];
 
@@ -32,7 +32,7 @@ buildPythonPackage rec {
   # no tests available
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Python wrapper for the OpenZWave C++ library";
     homepage = "https://github.com/OpenZWave/python-openzwave";
     license = licenses.gpl3Plus;
diff --git a/nixpkgs/pkgs/development/python-modules/python_statsd/default.nix b/nixpkgs/pkgs/development/python-modules/python_statsd/default.nix
index 6455b6945172..ae293c44c0f7 100644
--- a/nixpkgs/pkgs/development/python-modules/python_statsd/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/python_statsd/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , isPy3k
@@ -19,7 +19,7 @@ buildPythonPackage rec {
 
   buildInputs = [ mock nose coverage ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "A client for Etsy's node-js statsd server";
     homepage = "https://github.com/WoLpH/python-statsd";
     license = licenses.bsd3;
diff --git a/nixpkgs/pkgs/development/python-modules/pythondialog/default.nix b/nixpkgs/pkgs/development/python-modules/pythondialog/default.nix
index 4f54c5a8fad8..c385f11b2f01 100644
--- a/nixpkgs/pkgs/development/python-modules/pythondialog/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pythondialog/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , isPy3k
@@ -18,7 +18,7 @@ buildPythonPackage rec {
     substituteInPlace dialog.py --replace ":/bin:/usr/bin" ":$out/bin"
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "A Python interface to the UNIX dialog utility and mostly-compatible programs";
     homepage = "http://pythondialog.sourceforge.net/";
     license = licenses.lgpl3;
diff --git a/nixpkgs/pkgs/development/python-modules/pythonirclib/default.nix b/nixpkgs/pkgs/development/python-modules/pythonirclib/default.nix
index 6074b76d300a..178e1855a061 100644
--- a/nixpkgs/pkgs/development/python-modules/pythonirclib/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pythonirclib/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchurl
 , paver
@@ -25,7 +25,7 @@ buildPythonPackage rec {
 
   propagatedBuildInputs = [ paver ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Python IRC library";
     homepage = "https://github.com/jaraco/irc";
     license = with licenses; [ lgpl21 ];
diff --git a/nixpkgs/pkgs/development/python-modules/pythonix/default.nix b/nixpkgs/pkgs/development/python-modules/pythonix/default.nix
index 6ed150d12398..80535b28bf23 100644
--- a/nixpkgs/pkgs/development/python-modules/pythonix/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pythonix/default.nix
@@ -1,24 +1,32 @@
-{ stdenv, buildPythonPackage, fetchFromGitHub, ninja, boost, meson, pkgconfig, nix, isPy3k }:
+{ lib, stdenv, buildPythonPackage, fetchFromGitHub, ninja, boost, meson, pkg-config, nix, isPy3k, python }:
 
 buildPythonPackage rec {
   pname = "pythonix";
-  version = "0.1.6";
+  version = "0.1.7";
   format = "other";
 
   src = fetchFromGitHub {
     owner = "Mic92";
     repo = "pythonix";
     rev = "v${version}";
-    sha256 = "1qzcrpn333hsgn6fj1m1s3cvaf0ny8qpygamcrazqv57xmwyr8h5";
+    sha256 = "1wxqv3i4bva2qq9mx670bcx0g0irjn68fvk28dwvhay9ndwcspqf";
   };
 
   disabled = !isPy3k;
 
-  nativeBuildInputs = [ meson ninja pkgconfig ];
+  nativeBuildInputs = [ meson ninja pkg-config ];
 
   buildInputs = [ nix boost ];
 
-  meta = with stdenv.lib; {
+  postInstall = ''
+    # This is typically set by pipInstallHook/eggInstallHook,
+    # so we have to do so manually when using meson
+    export PYTHONPATH=$out/${python.sitePackages}:$PYTHONPATH
+  '';
+
+  pythonImportsCheck = [ "nix" ];
+
+  meta = with lib; {
     description = ''
        Eval nix code from python.
     '';
diff --git a/nixpkgs/pkgs/development/python-modules/pythonnet/default.nix b/nixpkgs/pkgs/development/python-modules/pythonnet/default.nix
index 82ddb8c810b0..d0054f7076a1 100644
--- a/nixpkgs/pkgs/development/python-modules/pythonnet/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pythonnet/default.nix
@@ -6,7 +6,7 @@
 , pytest
 , pycparser
 , psutil
-, pkgconfig
+, pkg-config
 , dotnetbuildhelpers
 , clang
 , glib
@@ -53,7 +53,7 @@ buildPythonPackage rec {
     pytest
     pycparser
 
-    pkgconfig
+    pkg-config
     dotnetbuildhelpers
     clang
 
diff --git a/nixpkgs/pkgs/development/python-modules/pythonocc-core/default.nix b/nixpkgs/pkgs/development/python-modules/pythonocc-core/default.nix
index 96c79a45b277..d1d06d22c641 100644
--- a/nixpkgs/pkgs/development/python-modules/pythonocc-core/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pythonocc-core/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, python, fetchFromGitHub, cmake, swig, ninja
+{ lib, stdenv, python, fetchFromGitHub, cmake, swig, ninja
 , opencascade, smesh, freetype, libGL, libGLU, libX11
 , Cocoa }:
 
@@ -23,7 +23,7 @@ stdenv.mkDerivation rec {
   buildInputs = [
     python opencascade smesh
     freetype libGL libGLU libX11
-  ] ++ stdenv.lib.optionals stdenv.isDarwin [ Cocoa ];
+  ] ++ lib.optionals stdenv.isDarwin [ Cocoa ];
 
   cmakeFlags = [
     "-Wno-dev"
@@ -34,7 +34,7 @@ stdenv.mkDerivation rec {
     "-DPYTHONOCC_WRAP_SMESH=TRUE"
   ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Python wrapper for the OpenCASCADE 3D modeling kernel";
     homepage = "https://github.com/tpaviot/pythonocc-core";
     license = licenses.lgpl3;
diff --git a/nixpkgs/pkgs/development/python-modules/pytidylib/default.nix b/nixpkgs/pkgs/development/python-modules/pytidylib/default.nix
index a0aade1fe670..16f6e4232b30 100644
--- a/nixpkgs/pkgs/development/python-modules/pytidylib/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pytidylib/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi, python, html-tidy }:
+{ lib, stdenv, buildPythonPackage, fetchPypi, python, html-tidy }:
 
 buildPythonPackage rec {
   pname = "pytidylib";
@@ -25,7 +25,7 @@ buildPythonPackage rec {
     ${python.interpreter} -m unittest discover
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Python wrapper for HTML Tidy (tidylib) on Python 2 and 3";
     homepage = "https://countergram.github.io/pytidylib/";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/pytile/default.nix b/nixpkgs/pkgs/development/python-modules/pytile/default.nix
new file mode 100644
index 000000000000..771ae4d13281
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/pytile/default.nix
@@ -0,0 +1,59 @@
+{ lib
+, aiohttp
+, async-timeout
+, aresponses
+, buildPythonPackage
+, fetchFromGitHub
+, poetry-core
+, pylint
+, pytest-aiohttp
+, pytest-asyncio
+, pytestCheckHook
+, pythonAtLeast
+}:
+
+buildPythonPackage rec {
+  pname = "pytile";
+  version = "5.1.1";
+  disabled = pythonAtLeast "3.9";
+
+  src = fetchFromGitHub {
+    owner = "bachya";
+    repo = pname;
+    rev = version;
+    sha256 = "sha256-bVoFTaK/Alemtc5I+Z/M9y/FWczvJ+P86R0DMD89/BM=";
+  };
+
+  format = "pyproject";
+
+  nativeBuildInputs = [ poetry-core ];
+
+  propagatedBuildInputs = [
+    aiohttp
+    pylint
+  ];
+
+  checkInputs = [
+    aresponses
+    pytest-aiohttp
+    pytest-asyncio
+    pytestCheckHook
+  ];
+
+  # Ignore the examples as they are prefixed with test_
+  pytestFlagsArray = [ "--ignore examples/" ];
+  pythonImportsCheck = [ "pytile" ];
+
+  __darwinAllowLocalNetworking = true;
+
+  meta = with lib; {
+    description = " Python API for Tile Bluetooth trackers";
+    longDescription = ''
+      pytile is a simple Python library for retrieving information on Tile
+      Bluetooth trackers (including last location and more).
+    '';
+    homepage = "https://github.com/bachya/pytile";
+    license = with licenses; [ mit ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/pytimeparse/default.nix b/nixpkgs/pkgs/development/python-modules/pytimeparse/default.nix
index 9aa11a480cd6..1ced64375301 100644
--- a/nixpkgs/pkgs/development/python-modules/pytimeparse/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pytimeparse/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchPypi, buildPythonPackage, nose }:
+{ lib, stdenv, fetchPypi, buildPythonPackage, nose }:
 
 buildPythonPackage rec {
     pname = "pytimeparse";
@@ -11,7 +11,7 @@ buildPythonPackage rec {
 
     checkInputs = [ nose ];
 
-    meta = with stdenv.lib; {
+    meta = with lib; {
       description = "A small Python library to parse various kinds of time expressions";
       homepage    = "https://github.com/wroberts/pytimeparse";
       license     = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/pytmx/default.nix b/nixpkgs/pkgs/development/python-modules/pytmx/default.nix
index aa6eecfdeb53..17c18a96c736 100644
--- a/nixpkgs/pkgs/development/python-modules/pytmx/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pytmx/default.nix
@@ -1,21 +1,28 @@
-{ lib, fetchFromGitHub, isPy3k, buildPythonPackage, pygame, pyglet, pysdl2, six }:
+{ lib, fetchFromGitHub
+, python, buildPythonPackage, isPy27
+, pygame, pyglet, pysdl2, six
+}:
 
 buildPythonPackage rec {
   pname = "pytmx";
-  version = "3.22.0";
+  version = "3.24.0";
+
+  disabled = isPy27;
 
   src = fetchFromGitHub {
     # The release was not git tagged.
     owner = "bitcraft";
     repo = "PyTMX";
-    rev = "187fd429dadcdc5828e78e6748a983aa1434e4d2";
-    sha256 = "0480pr61v54bwdyzb983sk0fqkyfbcgrdn8k11yf1yck4zb119gc";
+    rev = "eb96efea30d57b731654b2a167d86b8b553b147d";
+    sha256 = "1g1j4w75zw76p5f8m5v0hdigdlva2flf0ngyk8nvqcwzcl5vq5wc";
   };
 
   propagatedBuildInputs = [ pygame pyglet pysdl2 six ];
 
   checkPhase = ''
-    python -m unittest tests.pytmx.test_pytmx
+    # Change into the test directory due to a relative resource path.
+    cd tests/pytmx
+    ${python.interpreter} -m unittest test_pytmx
   '';
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/development/python-modules/pytoml/default.nix b/nixpkgs/pkgs/development/python-modules/pytoml/default.nix
index 8ec17b158449..64e6ed4c669a 100644
--- a/nixpkgs/pkgs/development/python-modules/pytoml/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pytoml/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchFromGitHub
 , python
@@ -25,7 +25,7 @@ buildPythonPackage rec {
   '';
 
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "A TOML parser/writer for Python";
     homepage    = "https://github.com/avakar/pytoml";
     license     = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/pytorch/bin.nix b/nixpkgs/pkgs/development/python-modules/pytorch/bin.nix
index 6a97e6d30a4f..1ffda5c86b0e 100644
--- a/nixpkgs/pkgs/development/python-modules/pytorch/bin.nix
+++ b/nixpkgs/pkgs/development/python-modules/pytorch/bin.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchurl
 , isPy37
@@ -52,7 +52,7 @@ in buildPythonPackage {
   '';
 
   postFixup = let
-    rpath = stdenv.lib.makeLibraryPath [ stdenv.cc.cc.lib nvidia_x11 ];
+    rpath = lib.makeLibraryPath [ stdenv.cc.cc.lib nvidia_x11 ];
   in ''
     find $out/${python.sitePackages}/torch/lib -type f \( -name '*.so' -or -name '*.so.*' \) | while read lib; do
       echo "setting rpath for $lib..."
@@ -63,7 +63,7 @@ in buildPythonPackage {
 
   pythonImportsCheck = [ "torch" ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Open source, prototype-to-production deep learning platform";
     homepage = "https://pytorch.org/";
     license = licenses.unfree; # Includes CUDA and Intel MKL.
diff --git a/nixpkgs/pkgs/development/python-modules/pytorch/default.nix b/nixpkgs/pkgs/development/python-modules/pytorch/default.nix
index f072972937a9..db1914f4ee7b 100644
--- a/nixpkgs/pkgs/development/python-modules/pytorch/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pytorch/default.nix
@@ -1,7 +1,7 @@
 { stdenv, lib, fetchFromGitHub, fetchpatch, buildPythonPackage, python,
   cudaSupport ? false, cudatoolkit ? null, cudnn ? null, nccl ? null, magma ? null,
   mklDnnSupport ? true, useSystemNccl ? true,
-  openMPISupport ? false, openmpi ? null,
+  MPISupport ? false, mpi,
   buildDocs ? false,
   cudaArchList ? null,
 
@@ -29,8 +29,6 @@
 
   isPy3k, pythonOlder }:
 
-assert !openMPISupport || openmpi != null;
-
 # assert that everything needed for cuda is present and that the correct cuda versions are used
 assert !cudaSupport || cudatoolkit != null;
 assert cudnn == null || cudatoolkit != null;
@@ -38,7 +36,7 @@ assert !cudaSupport || (let majorIs = lib.versions.major cudatoolkit.version;
                         in majorIs == "9" || majorIs == "10" || majorIs == "11");
 
 # confirm that cudatoolkits are sync'd across dependencies
-assert !(openMPISupport && cudaSupport) || openmpi.cudatoolkit == cudatoolkit;
+assert !(MPISupport && cudaSupport) || mpi.cudatoolkit == cudatoolkit;
 assert !cudaSupport || magma.cudatoolkit == cudatoolkit;
 
 let
@@ -224,7 +222,7 @@ in buildPythonPackage rec {
     typing-extensions
     # the following are required for tensorboard support
     pillow six future tensorflow-tensorboard protobuf
-  ] ++ lib.optionals openMPISupport [ openmpi ]
+  ] ++ lib.optionals MPISupport [ mpi ]
     ++ lib.optionals (pythonOlder "3.7") [ dataclasses ];
 
   checkInputs = [ hypothesis ninja psutil ];
@@ -267,7 +265,7 @@ in buildPythonPackage rec {
     cp -r $out/${python.sitePackages}/torch/lib     $lib/lib
   '';
 
-  postFixup = stdenv.lib.optionalString stdenv.isDarwin ''
+  postFixup = lib.optionalString stdenv.isDarwin ''
     for f in $(ls $lib/lib/*.dylib); do
         install_name_tool -id $lib/lib/$(basename $f) $f || true
     done
diff --git a/nixpkgs/pkgs/development/python-modules/pytrends/default.nix b/nixpkgs/pkgs/development/python-modules/pytrends/default.nix
index 8317c5ea0182..83980c3d00b9 100644
--- a/nixpkgs/pkgs/development/python-modules/pytrends/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pytrends/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , isPy27
@@ -21,7 +21,7 @@ buildPythonPackage rec {
 
   propagatedBuildInputs = [ requests lxml pandas ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Pseudo API for Google Trends";
     homepage = "https://github.com/GeneralMills/pytrends";
     license = [ licenses.asl20 ];
diff --git a/nixpkgs/pkgs/development/python-modules/pytricia/default.nix b/nixpkgs/pkgs/development/python-modules/pytricia/default.nix
index 80e95fb60507..8e168bf8181a 100644
--- a/nixpkgs/pkgs/development/python-modules/pytricia/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pytricia/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchFromGitHub
 }:
@@ -14,7 +14,7 @@ buildPythonPackage rec {
     sha256 = "0qp5774xkm700g35k5c76pck8pdzqlyzbaqgrz76a1yh67s2ri8h";
   };
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "A library for fast IP address lookup in Python";
     homepage = "https://github.com/jsommers/pytricia";
     license = with licenses; [ lgpl3Plus ];
diff --git a/nixpkgs/pkgs/development/python-modules/pytun/default.nix b/nixpkgs/pkgs/development/python-modules/pytun/default.nix
index b37dbf26fb7b..2b49b169c6d1 100644
--- a/nixpkgs/pkgs/development/python-modules/pytun/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pytun/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchFromGitHub
 }:
@@ -17,7 +17,7 @@ buildPythonPackage rec {
   # Test directory contains examples, not tests.
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://github.com/montag451/pytun";
     description = "Linux TUN/TAP wrapper for Python";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/pytzdata/default.nix b/nixpkgs/pkgs/development/python-modules/pytzdata/default.nix
index 5adcbd0d2368..739325d33337 100644
--- a/nixpkgs/pkgs/development/python-modules/pytzdata/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pytzdata/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchPypi, buildPythonPackage }:
+{ lib, stdenv, fetchPypi, buildPythonPackage }:
 
 buildPythonPackage rec {
   pname = "pytzdata";
@@ -12,7 +12,7 @@ buildPythonPackage rec {
   # No tests
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Timezone database for Python";
     homepage = "https://github.com/sdispater/pytzdata";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/pyunifi/default.nix b/nixpkgs/pkgs/development/python-modules/pyunifi/default.nix
index ed2dd4cc2564..1eec6f3ea84d 100644
--- a/nixpkgs/pkgs/development/python-modules/pyunifi/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyunifi/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi
+{ lib, stdenv, buildPythonPackage, fetchPypi
 , requests }:
 
 buildPythonPackage rec {
@@ -12,7 +12,7 @@ buildPythonPackage rec {
 
   propagatedBuildInputs = [ requests ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "API towards Ubiquity Networks UniFi controller";
     homepage = "https://github.com/finish06/unifi-api";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/pyupdate/default.nix b/nixpkgs/pkgs/development/python-modules/pyupdate/default.nix
index 9ce93d67a52a..f33aba8d6256 100644
--- a/nixpkgs/pkgs/development/python-modules/pyupdate/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyupdate/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi, isPy3k
+{ lib, stdenv, buildPythonPackage, fetchPypi, isPy3k
 , requests }:
 
 buildPythonPackage rec {
@@ -18,7 +18,7 @@ buildPythonPackage rec {
   # no tests
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     # This description is terrible, but it's what upstream uses.
     description = "Package to update stuff";
     homepage = "https://github.com/ludeeus/pyupdate";
diff --git a/nixpkgs/pkgs/development/python-modules/pyusb/default.nix b/nixpkgs/pkgs/development/python-modules/pyusb/default.nix
index 7e5fc90453ff..41207984e0ca 100644
--- a/nixpkgs/pkgs/development/python-modules/pyusb/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyusb/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchPypi, buildPythonPackage, libusb1, setuptools_scm }:
+{ lib, stdenv, fetchPypi, buildPythonPackage, libusb1, setuptools_scm }:
 
 buildPythonPackage rec {
   pname = "pyusb";
@@ -26,7 +26,7 @@ buildPythonPackage rec {
 
   pythonImportsCheck = [ "usb" ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Python USB access module (wraps libusb 1.0)";  # can use other backends
     homepage = "https://pyusb.github.io/pyusb/";
     license = licenses.bsd3;
diff --git a/nixpkgs/pkgs/development/python-modules/pyutil/default.nix b/nixpkgs/pkgs/development/python-modules/pyutil/default.nix
index a943c8eb523b..f1c0d3be8ccf 100644
--- a/nixpkgs/pkgs/development/python-modules/pyutil/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyutil/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , setuptoolsDarcs
@@ -24,11 +24,11 @@ buildPythonPackage rec {
   # package, apparently some kind of plugin.
   doCheck = false;
 
-  prePatch = stdenv.lib.optionalString isPyPy ''
+  prePatch = lib.optionalString isPyPy ''
     grep -rl 'utf-8-with-signature-unix' ./ | xargs sed -i -e "s|utf-8-with-signature-unix|utf-8|g"
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Pyutil, a collection of mature utilities for Python programmers";
 
     longDescription = ''
diff --git a/nixpkgs/pkgs/development/python-modules/pyuv/default.nix b/nixpkgs/pkgs/development/python-modules/pyuv/default.nix
index 7f476d3c11d2..95477196d8b9 100644
--- a/nixpkgs/pkgs/development/python-modules/pyuv/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyuv/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , isPyPy
 , pkgs
@@ -18,7 +18,7 @@ buildPythonPackage rec {
 
   buildInputs = [ pkgs.libuv ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Python interface for libuv";
     homepage = "https://github.com/saghul/pyuv";
     repositories.git = "git://github.com/saghul/pyuv.git";
diff --git a/nixpkgs/pkgs/development/python-modules/pyvera/default.nix b/nixpkgs/pkgs/development/python-modules/pyvera/default.nix
new file mode 100644
index 000000000000..4415ca7c376d
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/pyvera/default.nix
@@ -0,0 +1,54 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, fetchpatch
+, poetry-core
+, pytest-cov
+, pytest-asyncio
+, pytest-timeout
+, responses
+, pytestCheckHook
+, requests
+}:
+
+buildPythonPackage rec {
+  pname = "pyvera";
+  version = "0.3.11";
+  format = "pyproject";
+
+  src = fetchFromGitHub {
+    owner = "pavoni";
+    repo = pname;
+    rev = version;
+    sha256 = "0yi2cjd3jag95xa0k24f7d7agi26ywb3219a0j0k8l2nsx2sdi87";
+  };
+
+  patches = [
+    (fetchpatch {
+      # build-system section is missing https://github.com/pavoni/pyvera/pull/142
+      url = "https://github.com/pavoni/pyvera/pull/142/commits/e90995a8d55107118d324e8cf189ddf1d9e3aa6c.patch";
+      sha256 = "1psq3fiwg20kcwyybzh5g17dzn5fh29lhm238npyg846innbzgs7";
+    })
+  ];
+
+  nativeBuildInputs = [ poetry-core ];
+
+  propagatedBuildInputs = [ requests ];
+
+  checkInputs = [
+    pytest-asyncio
+    pytest-timeout
+    pytest-cov
+    pytestCheckHook
+    responses
+  ];
+
+  pythonImportsCheck = [ "pyvera" ];
+
+  meta = with lib; {
+    description = "Python library to control devices via the Vera hub";
+    homepage = "https://github.com/pavoni/pyvera";
+    license = with licenses; [ gpl2Only ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/pyvlx/default.nix b/nixpkgs/pkgs/development/python-modules/pyvlx/default.nix
new file mode 100644
index 000000000000..1a78aefa6daf
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/pyvlx/default.nix
@@ -0,0 +1,35 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, pytestCheckHook
+, pyyaml
+}:
+
+buildPythonPackage rec {
+  pname = "pyvlx";
+  version = "0.2.19";
+
+  src = fetchFromGitHub {
+    owner = "Julius2342";
+    repo = pname;
+    rev = version;
+    sha256 = "031gp3sjagvmgdhfpdqlawva425ja1n3bmxk6jyn4zx54szj9zwf";
+  };
+
+  propagatedBuildInputs = [ pyyaml ];
+
+  checkInputs = [ pytestCheckHook ];
+
+  pythonImportsCheck = [ "pyvlx" ];
+
+  meta = with lib; {
+    description = "Python client to work with Velux units";
+    longDescription = ''
+      PyVLX uses the Velux KLF 200 interface to control io-Homecontrol
+      devices, e.g. Velux Windows.
+    '';
+    homepage = "https://github.com/Julius2342/pyvlx";
+    license = with licenses; [ lgpl2Only ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/pyvoro/default.nix b/nixpkgs/pkgs/development/python-modules/pyvoro/default.nix
index e99865417820..7013cc7809dd 100644
--- a/nixpkgs/pkgs/development/python-modules/pyvoro/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyvoro/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 }:
@@ -15,7 +15,7 @@ buildPythonPackage rec {
   # No tests in package
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://github.com/joe-jordan/pyvoro";
     description = "2D and 3D Voronoi tessellations: a python entry point for the voro++ library";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/pywatchman/default.nix b/nixpkgs/pkgs/development/python-modules/pywatchman/default.nix
index f9951465e256..5e3c4d6cc5a0 100644
--- a/nixpkgs/pkgs/development/python-modules/pywatchman/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pywatchman/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi, watchman }:
+{ lib, stdenv, buildPythonPackage, fetchPypi, watchman }:
 
 buildPythonPackage rec {
   pname = "pywatchman";
@@ -17,7 +17,7 @@ buildPythonPackage rec {
   # No tests in archive
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Watchman client for Python";
     homepage = "https://facebook.github.io/watchman/";
     license = licenses.bsd3;
diff --git a/nixpkgs/pkgs/development/python-modules/pywebdav/default.nix b/nixpkgs/pkgs/development/python-modules/pywebdav/default.nix
index 9a56bf760464..5ed3e28b5b1b 100644
--- a/nixpkgs/pkgs/development/python-modules/pywebdav/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pywebdav/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchPypi, buildPythonPackage, isPy3k }:
+{ lib, stdenv, fetchPypi, buildPythonPackage, isPy3k }:
 
 buildPythonPackage rec {
   pname = "PyWebDAV";
@@ -8,7 +8,7 @@ buildPythonPackage rec {
     inherit pname version;
     sha256 = "1v10vg79h85milnq8w7yd75qq5z6297ywkn9b2kxajldzwqxn3ji";
   };
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "http://code.google.com/p/pywebdav/";
     description = "WebDAV library including a standalone server for python";
     maintainers = with maintainers; [ johbo ];
diff --git a/nixpkgs/pkgs/development/python-modules/pywilight/default.nix b/nixpkgs/pkgs/development/python-modules/pywilight/default.nix
new file mode 100644
index 000000000000..66bdcca4793d
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/pywilight/default.nix
@@ -0,0 +1,32 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, ifaddr
+, requests
+}:
+
+buildPythonPackage rec {
+  pname = "pywilight";
+  version = "0.0.65";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1bldhg81lal9mbf55ky3gj2ndlplr0vfjp1bamd0mz5d9icas8nf";
+  };
+
+  propagatedBuildInputs = [
+    ifaddr
+    requests
+  ];
+
+  # no tests are present
+  doCheck = false;
+  pythonImportsCheck = [ "pywilight" ];
+
+  meta = with lib; {
+    description = "Python API for WiLight device";
+    homepage = "https://github.com/leofig-rj/pywilight";
+    license = with licenses; [ mit ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/pywizlight/default.nix b/nixpkgs/pkgs/development/python-modules/pywizlight/default.nix
new file mode 100644
index 000000000000..32baa25e52e7
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/pywizlight/default.nix
@@ -0,0 +1,34 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, asyncio-dgram
+, click
+}:
+
+buildPythonPackage rec {
+  pname = "pywizlight";
+  version = "0.4.1";
+
+  src = fetchFromGitHub {
+    owner = "sbidy";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "0kyhyda28zbni9sjv6kvky6wlhqldl47niddgpbjsv5dlb9xvxns";
+  };
+
+  propagatedBuildInputs = [
+    asyncio-dgram
+    click
+  ];
+
+  # no tests are present
+  doCheck = false;
+  pythonImportsCheck = [ "pywizlight" ];
+
+  meta = with lib; {
+    description = "Python connector for WiZ light bulbs";
+    homepage = "https://github.com/sbidy/pywizlight";
+    license = with licenses; [ mit ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/pyx/default.nix b/nixpkgs/pkgs/development/python-modules/pyx/default.nix
index 339fa9029b70..b19e5f97e141 100644
--- a/nixpkgs/pkgs/development/python-modules/pyx/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyx/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , isPy3k
@@ -18,7 +18,7 @@ buildPythonPackage rec {
   # No tests in archive
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Python package for the generation of PostScript, PDF, and SVG files";
     homepage = "http://pyx.sourceforge.net/";
     license = with licenses; [ gpl2 ];
diff --git a/nixpkgs/pkgs/development/python-modules/pyxeoma/default.nix b/nixpkgs/pkgs/development/python-modules/pyxeoma/default.nix
new file mode 100644
index 000000000000..9b8b6eeac8ff
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/pyxeoma/default.nix
@@ -0,0 +1,28 @@
+{ lib
+, aiohttp
+, buildPythonPackage
+, fetchPypi
+}:
+
+buildPythonPackage rec {
+  pname = "pyxeoma";
+  version = "1.4.1";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "0c9q6xdh2ciisv0crlz069haz01gfkhd5kasyr14jng4vjpzinc7";
+  };
+
+  propagatedBuildInputs = [ aiohttp ];
+
+  # Project doesn't have any tests
+  doCheck = false;
+  pythonImportsCheck = [ "pyxeoma" ];
+
+  meta = with lib; {
+    description = "Python wrapper for Xeoma web server API";
+    homepage = "https://github.com/jeradM/pyxeoma";
+    license = with licenses; [ mit ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/pyzufall/default.nix b/nixpkgs/pkgs/development/python-modules/pyzufall/default.nix
index 2c5121e61e80..03fce00629d8 100644
--- a/nixpkgs/pkgs/development/python-modules/pyzufall/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyzufall/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchPypi, python, buildPythonPackage, nose, future, coverage }:
+{ lib, stdenv, fetchPypi, python, buildPythonPackage, nose, future, coverage }:
 
 buildPythonPackage rec {
   pname = "PyZufall";
@@ -20,7 +20,7 @@ buildPythonPackage rec {
     ${python.interpreter} setup.py nosetests
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://pyzufall.readthedocs.io/de/latest/";
     description = "Library for generating random data and sentences in german language";
     license = licenses.gpl3Plus;
diff --git a/nixpkgs/pkgs/development/python-modules/qdldl/default.nix b/nixpkgs/pkgs/development/python-modules/qdldl/default.nix
new file mode 100644
index 000000000000..d8e043d546da
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/qdldl/default.nix
@@ -0,0 +1,40 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, cmake
+, pybind11
+, numpy
+, scipy
+, pytestCheckHook
+}:
+
+buildPythonPackage rec {
+  pname = "qdldl";
+  version = "0.1.5.post0";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "c392c7427651d8b226423c7aba4a0f2338a1f38a4bbdabac6bc4afd8bc934f06";
+  };
+
+  dontUseCmakeConfigure = true;
+  nativeBuildInputs = [ cmake ];
+
+  buildInputs = [ pybind11 ];
+
+  propagatedBuildInputs = [
+    numpy
+    scipy
+  ];
+
+  pythonImportsCheck = [ "qdldl" ];
+  checkInputs = [ pytestCheckHook ];
+
+  meta = with lib; {
+    description = "A free LDL factorization routine";
+    homepage = "https://github.com/oxfordcontrol/qdldl";
+    downloadPage = "https://github.com/oxfordcontrol/qdldl-python";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ drewrisinger ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/qpid-python/default.nix b/nixpkgs/pkgs/development/python-modules/qpid-python/default.nix
index f7221a981ea6..ef540538792d 100644
--- a/nixpkgs/pkgs/development/python-modules/qpid-python/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/qpid-python/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchurl
 , isPy3k
@@ -17,7 +17,7 @@ buildPythonPackage rec {
   # needs a broker running and then ./qpid-python-test
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "http://qpid.apache.org/";
     description = "Python client implementation and AMQP conformance tests for Apache Qpid";
     license = licenses.asl20;
diff --git a/nixpkgs/pkgs/development/python-modules/qrcode/default.nix b/nixpkgs/pkgs/development/python-modules/qrcode/default.nix
index 714c74188976..113d53ff29b8 100644
--- a/nixpkgs/pkgs/development/python-modules/qrcode/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/qrcode/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , six
@@ -20,7 +20,7 @@ buildPythonPackage rec {
   propagatedBuildInputs = [ six pillow pymaging_png setuptools ];
   checkInputs = [ mock ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Quick Response code generation for Python";
     homepage = "https://pypi.python.org/pypi/qrcode";
     license = licenses.bsd3;
diff --git a/nixpkgs/pkgs/development/python-modules/qscintilla/default.nix b/nixpkgs/pkgs/development/python-modules/qscintilla/default.nix
index e44f6205d39f..82c3773f3032 100644
--- a/nixpkgs/pkgs/development/python-modules/qscintilla/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/qscintilla/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , disabledIf
 , isPy3k
@@ -34,7 +34,7 @@ disabledIf (isPy3k || isPyPy)
           --sipdir $out/share/sip
     '';
 
-    meta = with stdenv.lib; {
+    meta = with lib; {
       description = "A Python binding to QScintilla, Qt based text editing control";
       license = licenses.lgpl21Plus;
       maintainers = with maintainers; [ danbst ];
diff --git a/nixpkgs/pkgs/development/python-modules/qserve/default.nix b/nixpkgs/pkgs/development/python-modules/qserve/default.nix
index ad1a7fd2ca36..ff606d132363 100644
--- a/nixpkgs/pkgs/development/python-modules/qserve/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/qserve/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , isPy3k
@@ -15,7 +15,7 @@ buildPythonPackage rec {
     sha256 = "0b04b2d4d11b464ff1efd42a9ea9f8136187d59f4076f57c9ba95361d41cd7ed";
   };
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Job queue server";
     homepage = "https://github.com/pediapress/qserve";
     license = licenses.bsd3;
diff --git a/nixpkgs/pkgs/development/python-modules/qtawesome/default.nix b/nixpkgs/pkgs/development/python-modules/qtawesome/default.nix
index 6ec8ce367735..11b4885e4c8a 100644
--- a/nixpkgs/pkgs/development/python-modules/qtawesome/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/qtawesome/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi, qtpy, six, pyqt5, pytest }:
+{ lib, stdenv, buildPythonPackage, fetchPypi, qtpy, six, pyqt5, pytest }:
 
 buildPythonPackage rec {
   pname = "QtAwesome";
@@ -20,7 +20,7 @@ buildPythonPackage rec {
   # Requires https://github.com/boylea/qtbot
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Iconic fonts in PyQt and PySide applications";
     homepage = "https://github.com/spyder-ide/qtawesome";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/qtpy/default.nix b/nixpkgs/pkgs/development/python-modules/qtpy/default.nix
index 313b1266a52d..76db7090a045 100644
--- a/nixpkgs/pkgs/development/python-modules/qtpy/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/qtpy/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi, pyside, pytest }:
+{ lib, stdenv, buildPythonPackage, fetchPypi, pyside, pytest }:
 
 buildPythonPackage rec {
   pname = "QtPy";
@@ -17,7 +17,7 @@ buildPythonPackage rec {
     py.test qtpy/tests
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Abstraction layer for PyQt5/PyQt4/PySide2/PySide";
     homepage = "https://github.com/spyder-ide/qtpy";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/querystring-parser/default.nix b/nixpkgs/pkgs/development/python-modules/querystring-parser/default.nix
index f9d04a8f797c..25b3c113cec6 100644
--- a/nixpkgs/pkgs/development/python-modules/querystring-parser/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/querystring-parser/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi, python, isPy27
+{ lib, stdenv, buildPythonPackage, fetchPypi, python, isPy27
 , six
 }:
 
@@ -20,7 +20,7 @@ buildPythonPackage rec {
   # one test fails due to https://github.com/bernii/querystring-parser/issues/35
   doCheck = true;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://github.com/bernii/querystring-parser";
     description = "QueryString parser for Python/Django that correctly handles nested dictionaries";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/queuelib/default.nix b/nixpkgs/pkgs/development/python-modules/queuelib/default.nix
index dbcdd4c5924e..7471ea180655 100644
--- a/nixpkgs/pkgs/development/python-modules/queuelib/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/queuelib/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , pytest
@@ -15,7 +15,7 @@ buildPythonPackage rec {
 
   buildInputs = [ pytest ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "A collection of persistent (disk-based) queues for Python";
     homepage = "https://github.com/scrapy/queuelib";
     license = licenses.bsd3;
diff --git a/nixpkgs/pkgs/development/python-modules/r2pipe/default.nix b/nixpkgs/pkgs/development/python-modules/r2pipe/default.nix
index 341d3f9660c5..3fbb0fb4042c 100644
--- a/nixpkgs/pkgs/development/python-modules/r2pipe/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/r2pipe/default.nix
@@ -18,10 +18,10 @@ buildPythonPackage rec {
   ''
     # Fix find_library, can be removed after
     # https://github.com/NixOS/nixpkgs/issues/7307 is resolved.
-    substituteInPlace r2pipe/native.py --replace "find_library('r_core')" "'${libr_core}'"
+    substituteInPlace r2pipe/native.py --replace 'find_library("r_core")' "'${libr_core}'"
 
     # Fix the default r2 executable
-    substituteInPlace r2pipe/open_sync.py --replace "r2e = 'radare2'" "r2e = '${radare2}/bin/radare2'"
+    substituteInPlace r2pipe/open_sync.py --replace 'r2e = "radare2"' "r2e = '${radare2}/bin/radare2'"
     substituteInPlace r2pipe/open_base.py --replace 'which("radare2")' "'${radare2}/bin/radare2'"
   '';
 
@@ -42,7 +42,7 @@ buildPythonPackage rec {
     EOF
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Interact with radare2";
     homepage = "https://github.com/radare/radare2-r2pipe";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/rabbitpy/default.nix b/nixpkgs/pkgs/development/python-modules/rabbitpy/default.nix
index 9844c8dca443..79975ada5015 100644
--- a/nixpkgs/pkgs/development/python-modules/rabbitpy/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/rabbitpy/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchFromGitHub
 , mock
@@ -34,7 +34,7 @@ buildPythonPackage rec {
       --replace 'pamqp>=2,<3' 'pamqp'
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "A pure python, thread-safe, minimalistic and pythonic RabbitMQ client library";
     homepage = "https://pypi.python.org/pypi/rabbitpy";
     license = licenses.bsd3;
diff --git a/nixpkgs/pkgs/development/python-modules/rachiopy/default.nix b/nixpkgs/pkgs/development/python-modules/rachiopy/default.nix
new file mode 100644
index 000000000000..3fcf773e83d9
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/rachiopy/default.nix
@@ -0,0 +1,35 @@
+{ lib
+, requests
+, buildPythonPackage
+, fetchFromGitHub
+, jsonschema
+, pytestCheckHook
+}:
+
+buildPythonPackage rec {
+  pname = "rachiopy";
+  version = "1.0.3";
+
+  src = fetchFromGitHub {
+    owner = "rfverbruggen";
+    repo = pname;
+    rev = version;
+    sha256 = "1d5v9qc7ymzns3ivc5fzwxnxz9sjkhklh57cw05va95mpk5kdskc";
+  };
+
+  propagatedBuildInputs = [ requests ];
+
+  checkInputs = [
+    jsonschema
+    pytestCheckHook
+  ];
+
+  pythonImportsCheck = [ "rachiopy" ];
+
+  meta = with lib; {
+    description = "Python client for Rachio Irrigation controller";
+    homepage = "https://github.com/rfverbruggen/rachiopy";
+    license = with licenses; [ mit ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/radicale_infcloud/default.nix b/nixpkgs/pkgs/development/python-modules/radicale_infcloud/default.nix
index 4b30d643fbd7..5c561b6e6541 100644
--- a/nixpkgs/pkgs/development/python-modules/radicale_infcloud/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/radicale_infcloud/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchFromGitHub, buildPythonPackage }:
+{ lib, stdenv, fetchFromGitHub, buildPythonPackage }:
 
 buildPythonPackage {
   pname = "radicale_infcloud";
@@ -13,7 +13,7 @@ buildPythonPackage {
 
   doCheck = false; # Tries to import radicale, circular dependency
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://github.com/Unrud/RadicaleInfCloud/";
     description = "Integrate InfCloud into Radicale's web interface";
     license = with licenses; [ agpl3 gpl3 ];
diff --git a/nixpkgs/pkgs/development/python-modules/rainbowstream/default.nix b/nixpkgs/pkgs/development/python-modules/rainbowstream/default.nix
index 7fc7f057009a..c5ec1d3ab4ef 100644
--- a/nixpkgs/pkgs/development/python-modules/rainbowstream/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/rainbowstream/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , python
@@ -44,7 +44,7 @@ buildPythonPackage rec {
 
   buildInputs =  [ pkgs.libjpeg pkgs.freetype pkgs.zlib pkgs.glibcLocales pillow twitter pyfiglet requests arrow dateutil pysocks pocket ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Streaming command-line twitter client";
     homepage    = "http://www.rainbowstream.org/";
     license     = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/ramlfications/default.nix b/nixpkgs/pkgs/development/python-modules/ramlfications/default.nix
index 0f870a5ab7a1..2d3e2bdc0e03 100644
--- a/nixpkgs/pkgs/development/python-modules/ramlfications/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/ramlfications/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi
+{ lib, stdenv, buildPythonPackage, fetchPypi
 , mock, pytest, pytest-mock, pytest-server-fixtures, pytest-localserver
 , termcolor, click, markdown2, six, jsonref, pyyaml, xmltodict, attrs
 }:
@@ -12,7 +12,7 @@ buildPythonPackage rec {
     sha256 = "0xvnna7kaq4nm5nfnwcwbr5bcm2s532hgyp7kq4v9iivn48rrf3v";
   };
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "A Python RAML parser.";
     homepage    = "https://ramlfications.readthedocs.org";
     license     = licenses.asl20;
diff --git a/nixpkgs/pkgs/development/python-modules/random2/default.nix b/nixpkgs/pkgs/development/python-modules/random2/default.nix
index 1334fa2aa32c..9ed7701a3f45 100644
--- a/nixpkgs/pkgs/development/python-modules/random2/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/random2/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , isPyPy
@@ -15,7 +15,7 @@ buildPythonPackage rec {
     sha256 = "34ad30aac341039872401595df9ab2c9dc36d0b7c077db1cea9ade430ed1c007";
   };
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "http://pypi.python.org/pypi/random2";
     description = "Python 3 compatible Python 2 `random` Module";
     license = licenses.psfl;
diff --git a/nixpkgs/pkgs/development/python-modules/rarfile/default.nix b/nixpkgs/pkgs/development/python-modules/rarfile/default.nix
index 6502d9f4ae6a..22c34b82a5fa 100644
--- a/nixpkgs/pkgs/development/python-modules/rarfile/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/rarfile/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchFromGitHub, pytestCheckHook, nose, libarchive, glibcLocales, isPy27
+{ lib, stdenv, buildPythonPackage, fetchFromGitHub, pytestCheckHook, nose, libarchive, glibcLocales, isPy27
 # unrar is non-free software
 , useUnrar ? false, unrar
 }:
@@ -28,14 +28,13 @@ buildPythonPackage rec {
        else
         ''--replace 'ALT_TOOL = "bsdtar"' "ALT_TOOL = \"${libarchive}/bin/bsdtar\""
         '')
-     + ''
-   '';
+     + "";
   # the tests only work with the standard unrar package
   doCheck = useUnrar;
   LC_ALL = "en_US.UTF-8";
   pythonImportsCheck = [ "rarfile" ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "RAR archive reader for Python";
     homepage = "https://github.com/markokr/rarfile";
     license = licenses.isc;
diff --git a/nixpkgs/pkgs/development/python-modules/ratelimiter/default.nix b/nixpkgs/pkgs/development/python-modules/ratelimiter/default.nix
index 15437889fc2f..4d3ff6d486b4 100644
--- a/nixpkgs/pkgs/development/python-modules/ratelimiter/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/ratelimiter/default.nix
@@ -1,5 +1,5 @@
 {
-  stdenv
+  lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , pytest
@@ -25,7 +25,7 @@ buildPythonPackage rec {
     py.test tests
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://github.com/RazerM/ratelimiter";
     license = licenses.asl20;
     description = "Simple python rate limiting object";
diff --git a/nixpkgs/pkgs/development/python-modules/rawkit/default.nix b/nixpkgs/pkgs/development/python-modules/rawkit/default.nix
index a114d2400aa7..974f7ac4d1c6 100644
--- a/nixpkgs/pkgs/development/python-modules/rawkit/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/rawkit/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchPypi, buildPythonPackage, fetchpatch
+{ lib, stdenv, fetchPypi, buildPythonPackage, fetchpatch
 , libraw
 , pytest, mock }:
 
@@ -27,7 +27,7 @@ buildPythonPackage rec {
     py.test tests
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "CTypes based LibRaw bindings for Python";
     homepage = "https://rawkit.readthedocs.org/";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/rbtools/default.nix b/nixpkgs/pkgs/development/python-modules/rbtools/default.nix
index 477a11f2ce90..1c99ee0fc8df 100644
--- a/nixpkgs/pkgs/development/python-modules/rbtools/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/rbtools/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib
 , buildPythonPackage
 , fetchurl
 , isPy3k
@@ -16,7 +16,7 @@ buildPythonPackage rec {
   disabled = !isPy3k;
 
   src = fetchurl {
-    url = "https://downloads.reviewboard.org/releases/RBTools/${stdenv.lib.versions.majorMinor version}/RBTools-${version}.tar.gz";
+    url = "https://downloads.reviewboard.org/releases/RBTools/${lib.versions.majorMinor version}/RBTools-${version}.tar.gz";
     sha256 = "577c2f8bbf88f77bda84ee95af0310b59111c156f48a5aab56ca481e2f77eaf4";
   };
 
@@ -25,7 +25,7 @@ buildPythonPackage rec {
   # The kgb test dependency is not in nixpkgs
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://www.reviewboard.org/docs/rbtools/dev/";
     description = "RBTools is a set of command line tools for working with Review Board and RBCommons";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/rcssmin/default.nix b/nixpkgs/pkgs/development/python-modules/rcssmin/default.nix
index 30d5a3c0e278..507102222fe0 100644
--- a/nixpkgs/pkgs/development/python-modules/rcssmin/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/rcssmin/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi }:
+{ lib, stdenv, buildPythonPackage, fetchPypi }:
 buildPythonPackage rec {
   pname = "rcssmin";
   version = "1.0.6";
@@ -12,7 +12,7 @@ buildPythonPackage rec {
   # tests auto-discovery
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "http://opensource.perlig.de/rcssmin/";
     license = licenses.asl20;
     description = "CSS minifier written in pure python";
diff --git a/nixpkgs/pkgs/development/python-modules/readchar/default.nix b/nixpkgs/pkgs/development/python-modules/readchar/default.nix
index 1ed4539dca08..211f5d63a7dd 100644
--- a/nixpkgs/pkgs/development/python-modules/readchar/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/readchar/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchFromGitHub, flake8, pytest, pytestcov, pexpect }:
+{ lib, stdenv, buildPythonPackage, fetchFromGitHub, flake8, pytest, pytestcov, pexpect }:
 
 buildPythonPackage rec {
   pname = "readchar";
@@ -15,7 +15,7 @@ buildPythonPackage rec {
   nativeBuildInputs = [ flake8 ];
   checkInputs = [ pytest pytestcov pexpect ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://github.com/magmax/python-readchar";
     description = "Python library to read characters and key strokes";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/readme/default.nix b/nixpkgs/pkgs/development/python-modules/readme/default.nix
index 057283babe7b..044c487eb037 100644
--- a/nixpkgs/pkgs/development/python-modules/readme/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/readme/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , pytest
@@ -30,7 +30,7 @@ buildPythonPackage rec {
   # package is not readme_renderer
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Readme is a library for rendering readme descriptions for Warehouse";
     homepage = "https://github.com/pypa/readme";
     license = licenses.asl20;
diff --git a/nixpkgs/pkgs/development/python-modules/rebulk/default.nix b/nixpkgs/pkgs/development/python-modules/rebulk/default.nix
index f1591e4df741..750efe357c22 100644
--- a/nixpkgs/pkgs/development/python-modules/rebulk/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/rebulk/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi, pytest, pytestrunner, six, regex}:
+{ lib, stdenv, buildPythonPackage, fetchPypi, pytest, pytestrunner, six, regex}:
 
 buildPythonPackage rec {
   pname = "rebulk";
@@ -14,7 +14,7 @@ buildPythonPackage rec {
   buildInputs = [ pytest pytestrunner ];
   propagatedBuildInputs = [ six regex ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://github.com/Toilal/rebulk/";
     license = licenses.mit;
     description = "Advanced string matching from simple patterns";
diff --git a/nixpkgs/pkgs/development/python-modules/recaptcha_client/default.nix b/nixpkgs/pkgs/development/python-modules/recaptcha_client/default.nix
index bcb6741bb295..08e7ff47aa1c 100644
--- a/nixpkgs/pkgs/development/python-modules/recaptcha_client/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/recaptcha_client/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , pythonAtLeast
@@ -14,7 +14,7 @@ buildPythonPackage rec {
     sha256 = "28c6853c1d13d365b7dc71a6b05e5ffb56471f70a850de318af50d3d7c0dea2f";
   };
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "A CAPTCHA for Python using the reCAPTCHA service";
     homepage = "http://recaptcha.net/";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/rednose/default.nix b/nixpkgs/pkgs/development/python-modules/rednose/default.nix
index 948fe39dae7d..73b7f5d4758e 100644
--- a/nixpkgs/pkgs/development/python-modules/rednose/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/rednose/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi, isPy27, pythonAtLeast
+{ lib, stdenv, buildPythonPackage, fetchPypi, isPy27, pythonAtLeast
 , nose, six, colorama, termstyle }:
 
 buildPythonPackage rec {
@@ -22,7 +22,7 @@ buildPythonPackage rec {
   checkInputs = [ six ];
   propagatedBuildInputs = [ nose colorama termstyle ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "A python nose plugin adding color to console results";
     homepage = "https://github.com/JBKahn/rednose";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/reedsolo/default.nix b/nixpkgs/pkgs/development/python-modules/reedsolo/default.nix
index 2a22907ebe6c..c87a89b82a44 100644
--- a/nixpkgs/pkgs/development/python-modules/reedsolo/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/reedsolo/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchFromGitHub, cython, nose }:
+{ lib, stdenv, buildPythonPackage, fetchFromGitHub, cython, nose }:
 
 buildPythonPackage rec {
   pname = "reedsolo";
@@ -18,7 +18,7 @@ buildPythonPackage rec {
   checkInputs = [ nose ];
   checkPhase = "nosetests";
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Pure-python universal errors-and-erasures Reed-Solomon Codec";
     homepage = "https://github.com/tomerfiliba/reedsolomon";
     license = licenses.publicDomain;
diff --git a/nixpkgs/pkgs/development/python-modules/reikna/default.nix b/nixpkgs/pkgs/development/python-modules/reikna/default.nix
index ebe3dc772d72..896bc8e02f09 100644
--- a/nixpkgs/pkgs/development/python-modules/reikna/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/reikna/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib
 , fetchPypi
 , buildPythonPackage
 , sphinx
@@ -23,8 +23,8 @@ buildPythonPackage rec {
   checkInputs = [ sphinx pytestcov pytest ];
 
   propagatedBuildInputs = [ Mako numpy funcsigs ]
-    ++ stdenv.lib.optional withCuda pycuda
-    ++ stdenv.lib.optional withOpenCL pyopencl;
+    ++ lib.optional withCuda pycuda
+    ++ lib.optional withOpenCL pyopencl;
 
   checkPhase = ''
     py.test
@@ -33,11 +33,11 @@ buildPythonPackage rec {
   # Requires device
   doCheck = false;
 
-  meta = {
+  meta = with lib; {
     description = "GPGPU algorithms for PyCUDA and PyOpenCL";
     homepage = "https://github.com/fjarri/reikna";
-    license = stdenv.lib.licenses.mit;
-    maintainers = [ stdenv.lib.maintainers.fridh ];
+    license = licenses.mit;
+    maintainers = [ maintainers.fridh ];
 
   };
 
diff --git a/nixpkgs/pkgs/development/python-modules/remotecv/default.nix b/nixpkgs/pkgs/development/python-modules/remotecv/default.nix
index 9ab250f78afb..dc40763f6fe6 100644
--- a/nixpkgs/pkgs/development/python-modules/remotecv/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/remotecv/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchFromGitHub, pillow, pyres, nose
+{ lib, stdenv, buildPythonPackage, fetchFromGitHub, pillow, pyres, nose
 , preggy, numpy, yanc, nose-focus, mock, opencv }:
 
 buildPythonPackage rec {
@@ -29,7 +29,7 @@ buildPythonPackage rec {
     nosetests --with-yanc -s tests/
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "OpenCV worker for facial and feature recognition";
     homepage = "https://github.com/thumbor/remotecv/wiki";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/rencode/default.nix b/nixpkgs/pkgs/development/python-modules/rencode/default.nix
index 3240c524d3bd..a8f0f81ee71d 100644
--- a/nixpkgs/pkgs/development/python-modules/rencode/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/rencode/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchgit
 , cython
@@ -16,7 +16,7 @@ buildPythonPackage {
 
   buildInputs = [ cython ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://github.com/aresch/rencode";
     description = "Fast (basic) object serialization similar to bencode";
     license = licenses.gpl3;
diff --git a/nixpkgs/pkgs/development/python-modules/repeated_test/default.nix b/nixpkgs/pkgs/development/python-modules/repeated_test/default.nix
index c5c2e43b6573..a9355cda41ca 100644
--- a/nixpkgs/pkgs/development/python-modules/repeated_test/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/repeated_test/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , unittest2
@@ -17,7 +17,7 @@ buildPythonPackage rec {
   buildInputs = [ unittest2 ];
   propagatedBuildInputs = [ six ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "A quick unittest-compatible framework for repeating a test function over many fixtures";
     homepage = "https://github.com/epsy/repeated_test";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/repocheck/default.nix b/nixpkgs/pkgs/development/python-modules/repocheck/default.nix
index 88437ae90327..ad8c3aef2eac 100644
--- a/nixpkgs/pkgs/development/python-modules/repocheck/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/repocheck/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchFromGitHub
 }:
@@ -14,7 +14,7 @@ buildPythonPackage rec {
     owner = "kynikos";
   };
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     inherit (src.meta) homepage;
     description = "Check the status of code repositories under a root directory";
     license = licenses.gpl3Plus;
diff --git a/nixpkgs/pkgs/development/python-modules/repoze_lru/default.nix b/nixpkgs/pkgs/development/python-modules/repoze_lru/default.nix
index afaac0b35f3e..7b8f0ecd8091 100644
--- a/nixpkgs/pkgs/development/python-modules/repoze_lru/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/repoze_lru/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 }:
@@ -12,7 +12,7 @@ buildPythonPackage rec {
     sha256 = "0429a75e19380e4ed50c0694e26ac8819b4ea7851ee1fc7583c8572db80aff77";
   };
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "A tiny LRU cache implementation and decorator";
     homepage = "http://www.repoze.org/";
     license = licenses.bsd0;
diff --git a/nixpkgs/pkgs/development/python-modules/repoze_sphinx_autointerface/default.nix b/nixpkgs/pkgs/development/python-modules/repoze_sphinx_autointerface/default.nix
index 0cc55ef7fea5..53761203113d 100644
--- a/nixpkgs/pkgs/development/python-modules/repoze_sphinx_autointerface/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/repoze_sphinx_autointerface/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , zope_interface
@@ -16,7 +16,7 @@ buildPythonPackage rec {
 
   propagatedBuildInputs = [ zope_interface sphinx ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://github.com/repoze/repoze.sphinx.autointerface";
     description = "Auto-generate Sphinx API docs from Zope interfaces";
     license = licenses.bsd0;
diff --git a/nixpkgs/pkgs/development/python-modules/repoze_who/default.nix b/nixpkgs/pkgs/development/python-modules/repoze_who/default.nix
index 7f4a89f3d24e..f64158f26a10 100644
--- a/nixpkgs/pkgs/development/python-modules/repoze_who/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/repoze_who/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , zope_interface
@@ -16,7 +16,7 @@ buildPythonPackage rec {
 
   propagatedBuildInputs = [ zope_interface webob ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "WSGI Authentication Middleware / API";
     homepage = "http://www.repoze.org";
     license = licenses.bsd0;
diff --git a/nixpkgs/pkgs/development/python-modules/requests-cache/default.nix b/nixpkgs/pkgs/development/python-modules/requests-cache/default.nix
index 4042197e1c31..2b3d57831c8d 100644
--- a/nixpkgs/pkgs/development/python-modules/requests-cache/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/requests-cache/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi
+{ lib, stdenv, buildPythonPackage, fetchPypi
 , mock, requests, six, urllib3 }:
 
 buildPythonPackage rec {
@@ -13,7 +13,7 @@ buildPythonPackage rec {
   buildInputs = [ mock ];
   propagatedBuildInputs = [ requests six urllib3 ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Persistent cache for requests library";
     homepage = "https://pypi.python.org/pypi/requests-cache";
     license = licenses.bsd3;
diff --git a/nixpkgs/pkgs/development/python-modules/requests-http-signature/default.nix b/nixpkgs/pkgs/development/python-modules/requests-http-signature/default.nix
index 992c54930ca6..cd36a4528198 100644
--- a/nixpkgs/pkgs/development/python-modules/requests-http-signature/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/requests-http-signature/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchFromGitHub
 , requests
@@ -23,7 +23,7 @@ buildPythonPackage rec {
     ${python.interpreter} test/test.py
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "A Requests auth module for HTTP Signature";
     homepage = "https://github.com/kislyuk/requests-http-signature";
     license = licenses.asl20;
diff --git a/nixpkgs/pkgs/development/python-modules/requests-kerberos/default.nix b/nixpkgs/pkgs/development/python-modules/requests-kerberos/default.nix
index ab0758a84e16..a1c6f4fb0a1b 100644
--- a/nixpkgs/pkgs/development/python-modules/requests-kerberos/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/requests-kerberos/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchFromGitHub, buildPythonPackage, requests, pykerberos, mock }:
+{ lib, stdenv, fetchFromGitHub, buildPythonPackage, requests, pykerberos, mock }:
 
 buildPythonPackage rec {
   pname = "requests-kerberos";
@@ -18,7 +18,7 @@ buildPythonPackage rec {
   # they have a setup.py which mentions a test suite that doesn't exist...
   patches = [ ./fix_setup.patch ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "An authentication handler for using Kerberos with Python Requests.";
     homepage    = "https://github.com/requests/requests-kerberos";
     license     = licenses.isc;
diff --git a/nixpkgs/pkgs/development/python-modules/requests-oauthlib/default.nix b/nixpkgs/pkgs/development/python-modules/requests-oauthlib/default.nix
index c4394fa87cdf..aed6576c90df 100644
--- a/nixpkgs/pkgs/development/python-modules/requests-oauthlib/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/requests-oauthlib/default.nix
@@ -1,21 +1,43 @@
-{ stdenv, buildPythonPackage, fetchPypi
-, oauthlib, requests }:
+{ lib
+, buildPythonPackage
+, fetchPypi
+, mock
+, oauthlib
+, pytestCheckHook
+, requests
+, requests-mock
+}:
 
 buildPythonPackage rec {
-  version = "1.3.0";
   pname = "requests-oauthlib";
+  version = "1.3.0";
 
   src = fetchPypi {
     inherit pname version;
     sha256 = "0smaxs5ixng4z0k6dsgmm6s972ka3p6a2ykdpnl23mqzlw0ic9ml";
   };
 
-  doCheck = false;        # Internet tests fail when building in chroot
   propagatedBuildInputs = [ oauthlib requests ];
 
-  meta = with stdenv.lib; {
+  checkInputs = [
+    mock
+    pytestCheckHook
+    requests-mock
+  ];
+
+  # Exclude tests which require network access
+  disabledTests = [
+    "testCanPostBinaryData"
+    "test_content_type_override"
+    "test_url_is_native_str"
+  ];
+
+  pythonImportsCheck = [ "requests_oauthlib" ];
+
+  meta = with lib; {
     description = "OAuthlib authentication support for Requests";
     homepage = "https://github.com/requests/requests-oauthlib";
+    license = with licenses; [ isc ];
     maintainers = with maintainers; [ prikhi ];
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/requests/default.nix b/nixpkgs/pkgs/development/python-modules/requests/default.nix
index 47431274b2c6..a49b07102201 100644
--- a/nixpkgs/pkgs/development/python-modules/requests/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/requests/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchPypi, buildPythonPackage
+{ lib, stdenv, fetchPypi, buildPythonPackage
 , urllib3, idna, chardet, certifi
 , pytest }:
 
@@ -16,7 +16,7 @@ buildPythonPackage rec {
   # sadly, tests require networking
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "An Apache2 licensed HTTP library, written in Python, for human beings";
     homepage = "http://docs.python-requests.org/en/latest/";
     license = licenses.asl20;
diff --git a/nixpkgs/pkgs/development/python-modules/resampy/default.nix b/nixpkgs/pkgs/development/python-modules/resampy/default.nix
index 43088cf5122e..38b4ae9911d2 100644
--- a/nixpkgs/pkgs/development/python-modules/resampy/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/resampy/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchFromGitHub
 , pytest
@@ -29,7 +29,7 @@ buildPythonPackage rec {
     pytest tests
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://github.com/bmcfee/resampy";
     description = "Efficient signal resampling";
     license = licenses.isc;
diff --git a/nixpkgs/pkgs/development/python-modules/respx/default.nix b/nixpkgs/pkgs/development/python-modules/respx/default.nix
new file mode 100644
index 000000000000..61e2016a4975
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/respx/default.nix
@@ -0,0 +1,50 @@
+{ lib
+, attrs
+, buildPythonPackage
+, fetchFromGitHub
+, httpcore
+, httpx
+, pytest-asyncio
+, pytest-cov
+, pytestCheckHook
+, trio
+, xmltodict
+}:
+
+buildPythonPackage rec {
+  pname = "respx";
+  version = "0.16.3";
+
+  src = fetchFromGitHub {
+    owner = "lundberg";
+    repo = pname;
+    rev = version;
+    sha256 = "0if9sg83rznl37hsjw6pfk78jpxi421g9p21wd92jcd6073g4nbd";
+  };
+
+  # Coverage is under 100 % due to the excluded tests
+  postPatch = ''
+    substituteInPlace setup.cfg --replace "--cov-fail-under 100" ""
+  '';
+
+  propagatedBuildInputs = [ httpx ];
+
+  checkInputs = [
+    httpcore
+    httpx
+    pytest-asyncio
+    pytest-cov
+    pytestCheckHook
+    trio
+  ];
+
+  disabledTests = [ "test_pass_through" ];
+  pythonImportsCheck = [ "respx" ];
+
+  meta = with lib; {
+    description = "Python library for mocking HTTPX";
+    homepage = "https://lundberg.github.io/respx/";
+    license = with licenses; [ bsd3 ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/rethinkdb/default.nix b/nixpkgs/pkgs/development/python-modules/rethinkdb/default.nix
index 616cabc29a01..b35900233736 100644
--- a/nixpkgs/pkgs/development/python-modules/rethinkdb/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/rethinkdb/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , six
@@ -19,7 +19,7 @@ buildPythonPackage rec {
   doCheck = false;
   pythonImportsCheck = [ "rethinkdb" ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Python driver library for the RethinkDB database server";
     homepage = "https://pypi.python.org/pypi/rethinkdb";
     license = licenses.asl20;
diff --git a/nixpkgs/pkgs/development/python-modules/retry_decorator/default.nix b/nixpkgs/pkgs/development/python-modules/retry_decorator/default.nix
index c1e495f56a99..12ba4f9a1a5b 100644
--- a/nixpkgs/pkgs/development/python-modules/retry_decorator/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/retry_decorator/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 }:
@@ -12,7 +12,7 @@ buildPythonPackage rec {
     sha256 = "e1e8ad02e518fe11073f2ea7d80b6b8be19daa27a60a1838aff7c731ddcf2ebe";
   };
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://github.com/pnpnpn/retry-decorator";
     description = "Retry Decorator for python functions";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/retrying/default.nix b/nixpkgs/pkgs/development/python-modules/retrying/default.nix
index 75a17fb6dc44..65127d040f42 100644
--- a/nixpkgs/pkgs/development/python-modules/retrying/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/retrying/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , six
@@ -18,7 +18,7 @@ buildPythonPackage rec {
   # doesn't ship tests in tarball
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://github.com/rholder/retrying";
     description = "General-purpose retrying library";
     license = licenses.asl20;
diff --git a/nixpkgs/pkgs/development/python-modules/rfc-bibtex/default.nix b/nixpkgs/pkgs/development/python-modules/rfc-bibtex/default.nix
index 7eb79d1b251c..c002f0baaa9d 100644
--- a/nixpkgs/pkgs/development/python-modules/rfc-bibtex/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/rfc-bibtex/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonApplication, fetchPypi, isPy3k }:
+{ lib, stdenv, buildPythonApplication, fetchPypi, isPy3k }:
 
 buildPythonApplication rec {
   pname = "rfc-bibtex";
@@ -11,7 +11,7 @@ buildPythonApplication rec {
 
   disabled = !isPy3k;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://github.com/iluxonchik/rfc-bibtex/";
     description = "Generate Bibtex entries for IETF RFCs and Internet-Drafts";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/rfc3986/default.nix b/nixpkgs/pkgs/development/python-modules/rfc3986/default.nix
index 3af6d2f022be..561bda08d0cd 100644
--- a/nixpkgs/pkgs/development/python-modules/rfc3986/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/rfc3986/default.nix
@@ -1,5 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi,
-  pytest }:
+{ lib, stdenv, buildPythonPackage, fetchPypi, idna, pytestCheckHook }:
 
 buildPythonPackage rec {
   pname = "rfc3986";
@@ -10,14 +9,14 @@ buildPythonPackage rec {
     sha256 = "17dvx15m3r49bmif5zlli8kzjd6bys6psixzbp14sd5367d9h8qi";
   };
 
-  checkInputs = [ pytest ];
-  checkPhase = ''
-    pytest
-  '';
+  propagatedBuildInputs = [ idna ];
 
-  meta = with stdenv.lib; {
+  checkInputs = [ pytestCheckHook ];
+
+  meta = with lib; {
+    description = "Validating URI References per RFC 3986";
     homepage = "https://rfc3986.readthedocs.org";
     license = licenses.asl20;
-    description = "Validating URI References per RFC 3986";
+    maintainers = with maintainers; [ SuperSandro2000 ];
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/rfc3987/default.nix b/nixpkgs/pkgs/development/python-modules/rfc3987/default.nix
index 6488dfdd8ce5..1ec8fc2153c1 100644
--- a/nixpkgs/pkgs/development/python-modules/rfc3987/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/rfc3987/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi }:
+{ lib, stdenv, buildPythonPackage, fetchPypi }:
 
 buildPythonPackage rec {
   pname = "rfc3987";
@@ -10,7 +10,7 @@ buildPythonPackage rec {
   };
 
   doCheck = false;
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://pypi.python.org/pypi/rfc3987";
     license = licenses.gpl3Plus;
     description = "Parsing and validation of URIs (RFC 3986) and IRIs (RFC 3987)";
diff --git a/nixpkgs/pkgs/development/python-modules/rfc6555/default.nix b/nixpkgs/pkgs/development/python-modules/rfc6555/default.nix
index 0bd7b0ca686c..4e47915bdf76 100644
--- a/nixpkgs/pkgs/development/python-modules/rfc6555/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/rfc6555/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi, pythonPackages }:
+{ lib, buildPythonPackage, fetchPypi, pythonPackages }:
 
 buildPythonPackage rec {
   pname = "rfc6555";
@@ -19,10 +19,10 @@ buildPythonPackage rec {
     py.test tests/
   '';
 
-  meta = {
+  meta = with lib; {
     description = "Python implementation of the Happy Eyeballs Algorithm";
     homepage = "https://pypi.org/project/rfc6555";
-    license = stdenv.lib.licenses.asl20;
-    maintainers = with stdenv.lib.maintainers; [ endocrimes ];
+    license = licenses.asl20;
+    maintainers = with maintainers; [ endocrimes ];
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/rich/default.nix b/nixpkgs/pkgs/development/python-modules/rich/default.nix
index 6284ed7b649a..d19f47281cdc 100644
--- a/nixpkgs/pkgs/development/python-modules/rich/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/rich/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchFromGitHub
 , pythonOlder
@@ -32,12 +32,12 @@ buildPythonPackage rec {
     ipywidgets
     pygments
     typing-extensions
-  ] ++ stdenv.lib.optional (pythonOlder "3.7") dataclasses;
+  ] ++ lib.optional (pythonOlder "3.7") dataclasses;
 
   checkInputs = [ pytestCheckHook ];
   pythonImportsCheck = [ "rich" ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Render rich text, tables, progress bars, syntax highlighting, markdown and more to the terminal";
     homepage = "https://github.com/willmcgugan/rich";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/rjsmin/default.nix b/nixpkgs/pkgs/development/python-modules/rjsmin/default.nix
index 49520b1ee452..7ca9d711739a 100644
--- a/nixpkgs/pkgs/development/python-modules/rjsmin/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/rjsmin/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi }:
+{ lib, stdenv, buildPythonPackage, fetchPypi }:
 buildPythonPackage rec {
   pname = "rjsmin";
   version = "1.1.0";
@@ -12,7 +12,7 @@ buildPythonPackage rec {
   # tests auto-discovery
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "http://opensource.perlig.de/rjsmin/";
     license = licenses.asl20;
     description = "Javascript minifier written in python";
diff --git a/nixpkgs/pkgs/development/python-modules/rl-coach/default.nix b/nixpkgs/pkgs/development/python-modules/rl-coach/default.nix
index e9efb0c02b4e..0ac5d9ab2a3b 100644
--- a/nixpkgs/pkgs/development/python-modules/rl-coach/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/rl-coach/default.nix
@@ -89,7 +89,7 @@ buildPythonPackage rec {
 
   disabled = pythonOlder "3.5"; # minimum required version
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Enables easy experimentation with state of the art Reinforcement Learning algorithms";
     homepage = "https://nervanasystems.github.io/coach/";
     license = licenses.asl20;
diff --git a/nixpkgs/pkgs/development/python-modules/robomachine/default.nix b/nixpkgs/pkgs/development/python-modules/robomachine/default.nix
index 11fff472e98a..fe069be459cc 100644
--- a/nixpkgs/pkgs/development/python-modules/robomachine/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/robomachine/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchPypi, buildPythonPackage, pyparsing, robotframework, allpairspy }:
+{ lib, stdenv, fetchPypi, buildPythonPackage, pyparsing, robotframework, allpairspy }:
 
 buildPythonPackage rec {
   pname = "RoboMachine";
@@ -20,7 +20,7 @@ buildPythonPackage rec {
     substituteInPlace setup.py --replace "argparse" ""
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Test data generator for Robot Framework";
     homepage = "https://github.com/mkorpela/RoboMachine";
     license = licenses.asl20;
diff --git a/nixpkgs/pkgs/development/python-modules/roboschool/default.nix b/nixpkgs/pkgs/development/python-modules/roboschool/default.nix
index 9387f3775beb..3e15f18a3dd1 100644
--- a/nixpkgs/pkgs/development/python-modules/roboschool/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/roboschool/default.nix
@@ -9,7 +9,7 @@
 , assimp
 , gym
 , bullet-roboschool
-, pkgconfig
+, pkg-config
 , which
 }:
 
@@ -32,7 +32,7 @@ buildPythonPackage rec {
   ];
 
   nativeBuildInputs = [
-    pkgconfig
+    pkg-config
     qtbase # needs the `moc` tool
     which
   ];
diff --git a/nixpkgs/pkgs/development/python-modules/robot-detection/default.nix b/nixpkgs/pkgs/development/python-modules/robot-detection/default.nix
index 5cf864cd8019..3cf064d2669d 100644
--- a/nixpkgs/pkgs/development/python-modules/robot-detection/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/robot-detection/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi, six }:
+{ lib, stdenv, buildPythonPackage, fetchPypi, six }:
 
 buildPythonPackage rec {
   pname = "robot-detection";
@@ -14,7 +14,7 @@ buildPythonPackage rec {
   # no tests in archive
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Library for detecting if a HTTP User Agent header is likely to be a bot";
     homepage = "https://github.com/rory/robot-detection";
     license = licenses.gpl3Plus;
diff --git a/nixpkgs/pkgs/development/python-modules/robotframework-databaselibrary/default.nix b/nixpkgs/pkgs/development/python-modules/robotframework-databaselibrary/default.nix
index 73b538aa12f7..c3eb309dfe0b 100644
--- a/nixpkgs/pkgs/development/python-modules/robotframework-databaselibrary/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/robotframework-databaselibrary/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , robotframework
@@ -18,7 +18,7 @@ buildPythonPackage rec {
 
   propagatedBuildInputs = [ robotframework ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Database Library contains utilities meant for Robot Framework";
     homepage = "https://github.com/franz-see/Robotframework-Database-Library";
     license = licenses.asl20;
diff --git a/nixpkgs/pkgs/development/python-modules/robotframework-requests/default.nix b/nixpkgs/pkgs/development/python-modules/robotframework-requests/default.nix
index 0a22dc1eec6c..967138620e98 100644
--- a/nixpkgs/pkgs/development/python-modules/robotframework-requests/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/robotframework-requests/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , unittest2
@@ -19,7 +19,7 @@ buildPythonPackage rec {
   buildInputs = [ unittest2 ];
   propagatedBuildInputs = [ robotframework lxml requests ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Robot Framework keyword library wrapper around the HTTP client library requests";
     homepage = "https://github.com/bulkan/robotframework-requests";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/robotframework-ride/default.nix b/nixpkgs/pkgs/development/python-modules/robotframework-ride/default.nix
index 368c4e4c15ad..39e42596e2ae 100644
--- a/nixpkgs/pkgs/development/python-modules/robotframework-ride/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/robotframework-ride/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, buildPythonPackage, isPy3k, pygments, wxPython }:
+{ lib, stdenv, fetchurl, buildPythonPackage, isPy3k, pygments, wxPython }:
 
 buildPythonPackage rec {
   version = "1.2.3";
@@ -22,7 +22,7 @@ buildPythonPackage rec {
   # error: invalid command 'test'
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Light-weight and intuitive editor for Robot Framework test case files";
     homepage = "https://code.google.com/p/robotframework-ride/";
     license = licenses.asl20;
diff --git a/nixpkgs/pkgs/development/python-modules/robotframework-selenium2library/default.nix b/nixpkgs/pkgs/development/python-modules/robotframework-selenium2library/default.nix
index 14ce2db5d0b2..5fa87d17d11f 100644
--- a/nixpkgs/pkgs/development/python-modules/robotframework-selenium2library/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/robotframework-selenium2library/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi, robotframework-seleniumlibrary }:
+{ lib, stdenv, buildPythonPackage, fetchPypi, robotframework-seleniumlibrary }:
 
 buildPythonPackage rec {
   version = "3.0.0";
@@ -14,7 +14,7 @@ buildPythonPackage rec {
 
   propagatedBuildInputs = [ robotframework-seleniumlibrary ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Web testing library for Robot Framework";
     homepage = "https://github.com/robotframework/Selenium2Library";
     license = licenses.asl20;
diff --git a/nixpkgs/pkgs/development/python-modules/robotframework-seleniumlibrary/default.nix b/nixpkgs/pkgs/development/python-modules/robotframework-seleniumlibrary/default.nix
index 2bba9cfbdd8a..60123d6b87d1 100644
--- a/nixpkgs/pkgs/development/python-modules/robotframework-seleniumlibrary/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/robotframework-seleniumlibrary/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchFromGitHub, python, robotframework, selenium, mockito, robotstatuschecker, approvaltests }:
+{ lib, stdenv, buildPythonPackage, fetchFromGitHub, python, robotframework, selenium, mockito, robotstatuschecker, approvaltests }:
 
 buildPythonPackage rec {
   version = "3.3.1";
@@ -21,7 +21,7 @@ buildPythonPackage rec {
     ${python.interpreter} utest/run.py
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Web testing library for Robot Framework";
     homepage = "https://github.com/robotframework/SeleniumLibrary";
     license = licenses.asl20;
diff --git a/nixpkgs/pkgs/development/python-modules/robotframework-sshlibrary/default.nix b/nixpkgs/pkgs/development/python-modules/robotframework-sshlibrary/default.nix
index e5e2d022dc8a..7e3bcbcc55da 100644
--- a/nixpkgs/pkgs/development/python-modules/robotframework-sshlibrary/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/robotframework-sshlibrary/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , robotframework
@@ -20,7 +20,7 @@ buildPythonPackage rec {
 
   propagatedBuildInputs = [ robotframework paramiko scp ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "SSHLibrary is a Robot Framework test library for SSH and SFTP";
     homepage = "https://github.com/robotframework/SSHLibrary";
     license = licenses.asl20;
diff --git a/nixpkgs/pkgs/development/python-modules/robotframework-tools/default.nix b/nixpkgs/pkgs/development/python-modules/robotframework-tools/default.nix
index 0ed0bcaf4948..5bc7bbceae71 100644
--- a/nixpkgs/pkgs/development/python-modules/robotframework-tools/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/robotframework-tools/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , isPy3k
@@ -41,7 +41,7 @@ buildPythonPackage rec {
     pytest test --ignore test/remote/test_remote.py
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Python Tools for Robot Framework and Test Libraries";
     homepage = "https://bitbucket.org/userzimmermann/robotframework-tools";
     license = licenses.gpl3;
diff --git a/nixpkgs/pkgs/development/python-modules/robotframework/default.nix b/nixpkgs/pkgs/development/python-modules/robotframework/default.nix
index 1a3b55451537..953602ca1ada 100644
--- a/nixpkgs/pkgs/development/python-modules/robotframework/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/robotframework/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchPypi, buildPythonPackage }:
+{ lib, stdenv, fetchPypi, buildPythonPackage }:
 
 buildPythonPackage rec {
   pname = "robotframework";
@@ -10,7 +10,7 @@ buildPythonPackage rec {
     extension = "zip";
   };
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Generic test automation framework";
     homepage = "https://robotframework.org/";
     license = licenses.asl20;
diff --git a/nixpkgs/pkgs/development/python-modules/robotstatuschecker/default.nix b/nixpkgs/pkgs/development/python-modules/robotstatuschecker/default.nix
index c5094b4ee59d..b0bd44f9c152 100644
--- a/nixpkgs/pkgs/development/python-modules/robotstatuschecker/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/robotstatuschecker/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchFromGitHub, python, robotframework }:
+{ lib, stdenv, buildPythonPackage, fetchFromGitHub, python, robotframework }:
 
 buildPythonPackage rec {
   version = "1.3";
@@ -18,7 +18,7 @@ buildPythonPackage rec {
     ${python.interpreter} test/run.py
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "A tool for checking that Robot Framework test cases have expected statuses and log messages";
     homepage = "https://github.com/robotframework/statuschecker";
     license = licenses.asl20;
diff --git a/nixpkgs/pkgs/development/python-modules/robotsuite/default.nix b/nixpkgs/pkgs/development/python-modules/robotsuite/default.nix
index e9d4ddbed116..126153ec50e5 100644
--- a/nixpkgs/pkgs/development/python-modules/robotsuite/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/robotsuite/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi
+{ lib, stdenv, buildPythonPackage, fetchPypi
 , unittest2, lxml, robotframework
 }:
 
@@ -19,7 +19,7 @@ buildPythonPackage rec {
       --replace robotframework-python3 robotframework
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Python unittest test suite for Robot Framework";
     homepage = "https://github.com/collective/robotsuite/";
     license = licenses.gpl3;
diff --git a/nixpkgs/pkgs/development/python-modules/roku/default.nix b/nixpkgs/pkgs/development/python-modules/roku/default.nix
index 6cdfa2aa15b1..5e3644468fe8 100644
--- a/nixpkgs/pkgs/development/python-modules/roku/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/roku/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchFromGitHub, buildPythonPackage, requests, pytest, flask, isPy27
+{ lib, stdenv, fetchFromGitHub, buildPythonPackage, requests, pytest, flask, isPy27
 }:
 
 buildPythonPackage rec {
@@ -18,7 +18,7 @@ buildPythonPackage rec {
   checkInputs = [ pytest flask ];
   pythonImportsCheck = [ "roku" ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Screw remotes. Control your Roku with Python.";
     homepage = "https://github.com/jcarbaugh/python-roku";
     license = licenses.bsd3;
diff --git a/nixpkgs/pkgs/development/python-modules/roman/default.nix b/nixpkgs/pkgs/development/python-modules/roman/default.nix
index 52d45d728752..33f0f7f18d7d 100644
--- a/nixpkgs/pkgs/development/python-modules/roman/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/roman/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 }:
@@ -13,7 +13,7 @@ buildPythonPackage rec {
     sha256 = "90e83b512b44dd7fc83d67eb45aa5eb707df623e6fc6e66e7f273abd4b2613ae";
   };
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Integer to Roman numerals converter";
     homepage = "https://pypi.python.org/pypi/roman";
     license = licenses.psfl;
diff --git a/nixpkgs/pkgs/development/python-modules/roombapy/default.nix b/nixpkgs/pkgs/development/python-modules/roombapy/default.nix
new file mode 100644
index 000000000000..9c438bde7562
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/roombapy/default.nix
@@ -0,0 +1,37 @@
+{ buildPythonPackage
+, fetchFromGitHub
+, hbmqtt
+, lib
+, paho-mqtt
+, poetry
+, pytest-asyncio
+, pytestCheckHook
+}:
+
+buildPythonPackage rec {
+  pname = "roombapy";
+  version = "1.6.2-1";
+
+  src = fetchFromGitHub {
+    owner = "pschmitt";
+    repo = "roombapy";
+    rev = version;
+    sha256 = "14k7bys479xwpa4alpdwphzmxm3x8kc48nfqnshn1wj94vyxc425";
+  };
+
+  format = "pyproject";
+
+  nativeBuildInputs = [ poetry ];
+  propagatedBuildInputs = [ paho-mqtt ];
+
+  checkInputs = [ hbmqtt pytest-asyncio pytestCheckHook ];
+  pytestFlagsArray = [ "tests/" "--ignore=tests/test_discovery.py" ];
+  pythonImportsCheck = [ "roombapy" ];
+
+  meta = with lib; {
+    homepage = "https://github.com/pschmitt/roombapy";
+    description = "Python program and library to control Wi-Fi enabled iRobot Roombas";
+    maintainers = with maintainers; [ justinas ];
+    license = licenses.mit;
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/rope/default.nix b/nixpkgs/pkgs/development/python-modules/rope/default.nix
index 81e306f81db2..65edd602d8de 100644
--- a/nixpkgs/pkgs/development/python-modules/rope/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/rope/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi, pythonAtLeast, nose }:
+{ lib, stdenv, buildPythonPackage, fetchPypi, pythonAtLeast, nose }:
 
 buildPythonPackage rec {
   pname = "rope";
@@ -15,7 +15,7 @@ buildPythonPackage rec {
     NOSE_IGNORE_FILES=type_hinting_test.py nosetests ropetest
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Python refactoring library";
     homepage = "https://github.com/python-rope/rope";
     maintainers = with maintainers; [ goibhniu ];
diff --git a/nixpkgs/pkgs/development/python-modules/ropper/default.nix b/nixpkgs/pkgs/development/python-modules/ropper/default.nix
index 51fc191dd467..8b193caa7b8b 100644
--- a/nixpkgs/pkgs/development/python-modules/ropper/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/ropper/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonApplication
 , fetchPypi
 , capstone
@@ -23,7 +23,7 @@ buildPythonApplication rec {
 
   checkInputs = [pytest];
   propagatedBuildInputs = [ capstone filebytes ];
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://scoding.de/ropper/";
     license = licenses.bsd3;
     description = "Show information about files in different file formats";
diff --git a/nixpkgs/pkgs/development/python-modules/routes/default.nix b/nixpkgs/pkgs/development/python-modules/routes/default.nix
index 95eebe8ab69d..0129ef69e2c6 100644
--- a/nixpkgs/pkgs/development/python-modules/routes/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/routes/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , repoze_lru
@@ -25,7 +25,7 @@ buildPythonPackage rec {
 
   pythonImportsCheck = [ "routes" ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "A Python re-implementation of the Rails routes system for mapping URLs to application actions";
     homepage = "http://routes.groovie.org/";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/rpdb/default.nix b/nixpkgs/pkgs/development/python-modules/rpdb/default.nix
index d7faeeaed7c9..fb84adb7d240 100644
--- a/nixpkgs/pkgs/development/python-modules/rpdb/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/rpdb/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 }:
@@ -12,7 +12,7 @@ buildPythonPackage rec {
     sha256 = "5d1a1cee34378ab075879dc30fa6328d448a9f680a66c4e84cac7382ad92f15f";
   };
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "pdb wrapper with remote access via tcp socket";
     homepage = "https://github.com/tamentis/rpdb";
     license = licenses.bsd2;
diff --git a/nixpkgs/pkgs/development/python-modules/rpkg/default.nix b/nixpkgs/pkgs/development/python-modules/rpkg/default.nix
index 2be6830130dc..731a5738e73e 100644
--- a/nixpkgs/pkgs/development/python-modules/rpkg/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/rpkg/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, isPy3k, fetchurl, six, pycurl, cccolutils
+{ lib, stdenv, buildPythonPackage, isPy3k, fetchurl, six, pycurl, cccolutils
 , koji, rpmfluff }:
 
 buildPythonPackage rec {
@@ -17,7 +17,7 @@ buildPythonPackage rec {
 
   doCheck = false; # needs /var/lib/rpm database to run tests
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Python library for dealing with rpm packaging";
     homepage = "https://pagure.io/fedpkg";
     license = licenses.gpl2Plus;
diff --git a/nixpkgs/pkgs/development/python-modules/rply/default.nix b/nixpkgs/pkgs/development/python-modules/rply/default.nix
index 1c4fd16eedf6..0da9d2b71018 100644
--- a/nixpkgs/pkgs/development/python-modules/rply/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/rply/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, pytest, fetchFromGitHub, buildPythonPackage, appdirs }:
+{ lib, stdenv, pytest, fetchFromGitHub, buildPythonPackage, appdirs }:
 
 buildPythonPackage rec {
   pname = "rply";
@@ -18,7 +18,7 @@ buildPythonPackage rec {
     HOME=$(mktemp -d) py.test tests
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "A python Lex/Yacc that works with RPython";
     homepage = "https://github.com/alex/rply";
     license = licenses.bsd3;
diff --git a/nixpkgs/pkgs/development/python-modules/rpmfluff/default.nix b/nixpkgs/pkgs/development/python-modules/rpmfluff/default.nix
index 1893f7dd19c3..96050ba14b01 100644
--- a/nixpkgs/pkgs/development/python-modules/rpmfluff/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/rpmfluff/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchurl
 , glibcLocales
@@ -16,7 +16,7 @@ buildPythonPackage rec {
   LC_ALL="en_US.utf-8";
   buildInputs = [ glibcLocales ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "lightweight way of building RPMs, and sabotaging them";
     homepage = "https://pagure.io/rpmfluff";
     license = licenses.gpl2;
diff --git a/nixpkgs/pkgs/development/python-modules/rpy2/default.nix b/nixpkgs/pkgs/development/python-modules/rpy2/default.nix
index 055341dfd1d3..0b042288fb75 100644
--- a/nixpkgs/pkgs/development/python-modules/rpy2/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/rpy2/default.nix
@@ -1,4 +1,5 @@
-{ lib
+{ stdenv
+, lib
 , python
 , buildPythonPackage
 , fetchpatch
@@ -20,30 +21,37 @@
 , cffi
 , tzlocal
 , simplegeneric
-, pytest
+, pytestCheckHook
 , extraRPackages ? []
 }:
 
 buildPythonPackage rec {
-    version = "3.3.6";
+    version = "3.4.1";
     pname = "rpy2";
 
     disabled = isPyPy;
     src = fetchPypi {
       inherit version pname;
-      sha256 = "0xvfkxvh01r5ibd5mpisp8bz385hgpn27b988y8v65z7hqr3y1nf";
+      sha256 = "1qnjjlgh6i31z45jykwd29n1336gq678fn9zw7gh0rv5d6sn0hv4";
     };
 
+    patches = [
+      # R_LIBS_SITE is used by the nix r package to point to the installed R libraries.
+      # This patch sets R_LIBS_SITE when rpy2 is imported.
+      ./rpy2-3.x-r-libs-site.patch
+    ];
+
+    postPatch = ''
+      substituteInPlace 'rpy2/rinterface_lib/embedded.py' --replace '@NIX_R_LIBS_SITE@' "$R_LIBS_SITE"
+      substituteInPlace 'requirements.txt' --replace 'pytest' ""
+    '';
+
     buildInputs = [
-      R
       pcre
       lzma
       bzip2
       zlib
       icu
-
-      # is in the upstream `requires` although it shouldn't be -- this is easier than patching it away
-      pytest
     ] ++ (with rPackages; [
       # packages expected by the test framework
       ggplot2
@@ -58,23 +66,10 @@ buildPythonPackage rec {
       tidyr
     ]) ++ extraRPackages ++ rWrapper.recommendedPackages;
 
-    checkPhase = ''
-      pytest
-    '';
-
     nativeBuildInputs = [
       R # needed at setup time to detect R_HOME (alternatively set R_HOME explicitly)
     ];
 
-    patches = [
-      # R_LIBS_SITE is used by the nix r package to point to the installed R libraries.
-      # This patch sets R_LIBS_SITE when rpy2 is imported.
-      ./rpy2-3.x-r-libs-site.patch
-    ];
-    postPatch = ''
-      substituteInPlace 'rpy2/rinterface_lib/embedded.py' --replace '@NIX_R_LIBS_SITE@' "$R_LIBS_SITE"
-    '';
-
     propagatedBuildInputs = [
       ipython
       jinja2
@@ -86,8 +81,10 @@ buildPythonPackage rec {
       simplegeneric
     ];
 
+    doCheck = !stdenv.isDarwin;
+
     checkInputs = [
-      pytest
+      pytestCheckHook
     ];
 
     meta = {
diff --git a/nixpkgs/pkgs/development/python-modules/rpyc/default.nix b/nixpkgs/pkgs/development/python-modules/rpyc/default.nix
index 5b6dba0f9ed0..e549a00c8948 100644
--- a/nixpkgs/pkgs/development/python-modules/rpyc/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/rpyc/default.nix
@@ -1,34 +1,38 @@
-{ stdenv
+{ lib
 , buildPythonPackage
 , fetchFromGitHub
 , nose
 , plumbum
+, pytestCheckHook
 }:
 
 buildPythonPackage rec {
   pname = "rpyc";
-  version = "4.1.3";
+  version = "5.0.1";
 
   src = fetchFromGitHub {
     owner = "tomerfiliba";
     repo = pname;
     rev = version;
-    sha256 = "145mi8p37x9cbfm5117g4ng7b5rmghjjwgm319qqhwgzvqg3y4j9";
+    sha256 = "1g75k4valfjgab00xri4pf8c8bb2zxkhgkpyy44fjk7s5j66daa1";
   };
 
   propagatedBuildInputs = [ plumbum ];
 
-  checkInputs = [ nose ];
-  checkPhase = ''
-    cd tests
-    # some tests have added complexities and some tests attempt network use
-    nosetests -I test_deploy -I test_gevent_server -I test_ssh -I test_registry
-  '';
+  checkInputs = [ pytestCheckHook ];
 
-  meta = with stdenv.lib; {
+  # Disable tests that requires network access
+  disabledTests = [
+    "test_api"
+    "test_pruning"
+    "test_rpyc"
+  ];
+  pythonImportsCheck = [ "rpyc" ];
+
+  meta = with lib; {
     description = "Remote Python Call (RPyC), a transparent and symmetric RPC library";
     homepage = "https://rpyc.readthedocs.org";
-    license = licenses.mit;
+    license = with licenses; [ mit ];
+    maintainers = with maintainers; [ fab ];
   };
-
 }
diff --git a/nixpkgs/pkgs/development/python-modules/rq/default.nix b/nixpkgs/pkgs/development/python-modules/rq/default.nix
index c788d4164102..c9ca5977cb10 100644
--- a/nixpkgs/pkgs/development/python-modules/rq/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/rq/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchFromGitHub, buildPythonPackage, isPy27, click, redis }:
+{ lib, stdenv, fetchFromGitHub, buildPythonPackage, isPy27, click, redis }:
 
 buildPythonPackage rec {
   pname = "rq";
@@ -17,7 +17,7 @@ buildPythonPackage rec {
 
   propagatedBuildInputs = [ click redis ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "A simple, lightweight library for creating background jobs, and processing them";
     homepage = "https://github.com/nvie/rq/";
     maintainers = with maintainers; [ mrmebelman ];
diff --git a/nixpkgs/pkgs/development/python-modules/rsa/4_0.nix b/nixpkgs/pkgs/development/python-modules/rsa/4_0.nix
index 459ca0437968..8400647aaad6 100644
--- a/nixpkgs/pkgs/development/python-modules/rsa/4_0.nix
+++ b/nixpkgs/pkgs/development/python-modules/rsa/4_0.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , unittest2
@@ -20,11 +20,11 @@ buildPythonPackage rec {
   checkInputs = [ unittest2 mock ];
   propagatedBuildInputs = [ pyasn1 ];
 
-  preConfigure = stdenv.lib.optionalString (isPy3k && pythonOlder "3.7") ''
+  preConfigure = lib.optionalString (isPy3k && pythonOlder "3.7") ''
     substituteInPlace setup.py --replace "open('README.md')" "open('README.md',encoding='utf-8')"
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://stuvel.eu/rsa";
     license = licenses.asl20;
     description = "A pure-Python RSA implementation";
diff --git a/nixpkgs/pkgs/development/python-modules/rsa/default.nix b/nixpkgs/pkgs/development/python-modules/rsa/default.nix
index a5380709eda9..b688369beb56 100644
--- a/nixpkgs/pkgs/development/python-modules/rsa/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/rsa/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , unittest2
@@ -21,14 +21,14 @@ buildPythonPackage rec {
   checkInputs = [ unittest2 mock ];
   propagatedBuildInputs = [ pyasn1 ];
 
-  preConfigure = stdenv.lib.optionalString (isPy3k && pythonOlder "3.7") ''
+  preConfigure = lib.optionalString (isPy3k && pythonOlder "3.7") ''
     substituteInPlace setup.py --replace "open('README.md')" "open('README.md',encoding='utf-8')"
   '';
 
   # No tests in archive
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://stuvel.eu/rsa";
     license = licenses.asl20;
     description = "A pure-Python RSA implementation";
diff --git a/nixpkgs/pkgs/development/python-modules/rtslib/default.nix b/nixpkgs/pkgs/development/python-modules/rtslib/default.nix
index aaf879d2a3f4..e53756b0181a 100644
--- a/nixpkgs/pkgs/development/python-modules/rtslib/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/rtslib/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchFromGitHub, buildPythonPackage, six, pyudev, pygobject3 }:
+{ lib, stdenv, fetchFromGitHub, buildPythonPackage, six, pyudev, pygobject3 }:
 
 buildPythonPackage rec {
   pname = "rtslib";
@@ -13,7 +13,7 @@ buildPythonPackage rec {
 
   propagatedBuildInputs = [ six pyudev pygobject3 ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "A Python object API for managing the Linux LIO kernel target";
     homepage = "https://github.com/open-iscsi/rtslib-fb";
     license = licenses.asl20;
diff --git a/nixpkgs/pkgs/development/python-modules/ruamel_base/default.nix b/nixpkgs/pkgs/development/python-modules/ruamel_base/default.nix
index f7e473f9f561..950f523f4a9a 100644
--- a/nixpkgs/pkgs/development/python-modules/ruamel_base/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/ruamel_base/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 }:
@@ -12,7 +12,7 @@ buildPythonPackage rec {
     sha256 = "1wswxrn4givsm917mfl39rafgadimf1sldpbjdjws00g1wx36hf0";
   };
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Common routines for ruamel packages";
     homepage = "https://sourceforge.net/projects/ruamel-base/";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/ruamel_ordereddict/default.nix b/nixpkgs/pkgs/development/python-modules/ruamel_ordereddict/default.nix
index 7f05229a4f54..1e5820a37f73 100644
--- a/nixpkgs/pkgs/development/python-modules/ruamel_ordereddict/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/ruamel_ordereddict/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , isPy3k
@@ -15,7 +15,7 @@ buildPythonPackage rec {
     sha256 = "d7d9cf8b11e7662deb460260cf062980cd84b87a1d0457132060ab9d44e0a5f4";
   };
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "A version of dict that keeps keys in insertion resp. sorted order";
     homepage = "https://sourceforge.net/projects/ruamel-ordereddict/";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/ruamel_yaml_clib/default.nix b/nixpkgs/pkgs/development/python-modules/ruamel_yaml_clib/default.nix
index 46b55c04d30e..debf2aaf7747 100644
--- a/nixpkgs/pkgs/development/python-modules/ruamel_yaml_clib/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/ruamel_yaml_clib/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchhg
 , ruamel_base
@@ -19,7 +19,7 @@ buildPythonPackage rec {
   # outputs match wheel
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "YAML parser/emitter that supports roundtrip preservation of comments, seq/map flow style, and map key order";
     homepage = "https://sourceforge.net/projects/ruamel-yaml-clib/";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/rubymarshal/default.nix b/nixpkgs/pkgs/development/python-modules/rubymarshal/default.nix
index 6115702009ac..edb793c19d51 100644
--- a/nixpkgs/pkgs/development/python-modules/rubymarshal/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/rubymarshal/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi, hypothesis, isPy3k }:
+{ lib, stdenv, buildPythonPackage, fetchPypi, hypothesis, isPy3k }:
 
 buildPythonPackage rec {
   pname = "rubymarshal";
@@ -17,7 +17,7 @@ buildPythonPackage rec {
 
   pythonImportsCheck = [ "rubymarshal" ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://github.com/d9pouces/RubyMarshal/";
     description = "Read and write Ruby-marshalled data";
     license = licenses.wtfpl;
diff --git a/nixpkgs/pkgs/development/python-modules/ruffus/default.nix b/nixpkgs/pkgs/development/python-modules/ruffus/default.nix
index da905f7ab477..a425c077343f 100644
--- a/nixpkgs/pkgs/development/python-modules/ruffus/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/ruffus/default.nix
@@ -4,7 +4,7 @@
 , hostname
 , pytest
 , python
-, stdenv
+, lib, stdenv
 }:
 
 buildPythonPackage rec {
@@ -38,7 +38,7 @@ buildPythonPackage rec {
   '';
   pythonImportsCheck = [ "ruffus" ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Light-weight Python Computational Pipeline Management";
     homepage = "http://www.ruffus.org.uk";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/runsnakerun/default.nix b/nixpkgs/pkgs/development/python-modules/runsnakerun/default.nix
index 6d601197d76e..1475b0032313 100644
--- a/nixpkgs/pkgs/development/python-modules/runsnakerun/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/runsnakerun/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , squaremap
@@ -16,7 +16,7 @@ buildPythonPackage rec {
 
   propagatedBuildInputs = [ squaremap wxPython ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "GUI Viewer for Python profiling runs";
     homepage = "http://www.vrplumber.com/programming/runsnakerun/";
     license = licenses.bsd3;
diff --git a/nixpkgs/pkgs/development/python-modules/s3fs/default.nix b/nixpkgs/pkgs/development/python-modules/s3fs/default.nix
index 739b32ec70d1..0154059c4f7b 100644
--- a/nixpkgs/pkgs/development/python-modules/s3fs/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/s3fs/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi, docutils, aiobotocore, fsspec }:
+{ lib, stdenv, buildPythonPackage, fetchPypi, docutils, aiobotocore, fsspec }:
 
 buildPythonPackage rec {
   pname = "s3fs";
@@ -17,7 +17,7 @@ buildPythonPackage rec {
   # pythonPackages.
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "S3FS builds on boto3 to provide a convenient Python filesystem interface for S3.";
     homepage = "https://github.com/dask/s3fs/";
     license = licenses.bsd3;
diff --git a/nixpkgs/pkgs/development/python-modules/s3transfer/default.nix b/nixpkgs/pkgs/development/python-modules/s3transfer/default.nix
index 27551a798d7b..6f816fc9bb89 100644
--- a/nixpkgs/pkgs/development/python-modules/s3transfer/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/s3transfer/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib
 , fetchPypi
 , pythonOlder
 , buildPythonPackage
@@ -23,7 +23,7 @@ buildPythonPackage rec {
 
   propagatedBuildInputs =
     [ botocore
-    ] ++ stdenv.lib.optional (pythonOlder "3") futures;
+    ] ++ lib.optional (pythonOlder "3") futures;
 
   buildInputs = [
     docutils
@@ -43,9 +43,9 @@ buildPythonPackage rec {
   # version on pypi has no tests/ dir
   doCheck = false;
 
-  meta = {
+  meta = with lib; {
     homepage = "https://github.com/boto/s3transfer";
-    license = stdenv.lib.licenses.asl20;
+    license = licenses.asl20;
     description = "A library for managing Amazon S3 transfers";
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/sacremoses/default.nix b/nixpkgs/pkgs/development/python-modules/sacremoses/default.nix
index f5c0ee715c3a..9f97757edad4 100644
--- a/nixpkgs/pkgs/development/python-modules/sacremoses/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/sacremoses/default.nix
@@ -1,5 +1,5 @@
 { buildPythonPackage
-, stdenv
+, lib, stdenv
 , fetchFromGitHub
 , click
 , six
@@ -27,7 +27,7 @@ buildPythonPackage rec {
     pytest -k 'not truecase'
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://github.com/alvations/sacremoses";
     description = "Python port of Moses tokenizer, truecaser and normalizer";
     license = licenses.lgpl21Plus;
diff --git a/nixpkgs/pkgs/development/python-modules/safe/default.nix b/nixpkgs/pkgs/development/python-modules/safe/default.nix
index f7f6f7eabf91..d167760c3e0e 100644
--- a/nixpkgs/pkgs/development/python-modules/safe/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/safe/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , nose
@@ -15,7 +15,7 @@ buildPythonPackage rec {
 
   buildInputs = [ nose ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://github.com/lepture/safe";
     license = licenses.bsd3;
     description = "Check password strength";
diff --git a/nixpkgs/pkgs/development/python-modules/salmon-mail/default.nix b/nixpkgs/pkgs/development/python-modules/salmon-mail/default.nix
index a33bec431d68..5e6aa5927eca 100644
--- a/nixpkgs/pkgs/development/python-modules/salmon-mail/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/salmon-mail/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi, dnspython, chardet, lmtpd
+{ lib, stdenv, buildPythonPackage, fetchPypi, dnspython, chardet, lmtpd
 , python-daemon, six, jinja2, mock, click }:
 
 buildPythonPackage rec {
@@ -20,10 +20,12 @@ buildPythonPackage rec {
   # The tests use salmon executable installed by salmon itself so we need to add
   # that to PATH
   checkPhase = ''
+    # tests fail and pytest is not supported
+    rm tests/server_tests.py
     PATH=$out/bin:$PATH python setup.py test
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://salmon-mail.readthedocs.org/";
     description = "Pythonic mail application server";
     license = licenses.gpl3;
diff --git a/nixpkgs/pkgs/development/python-modules/samplerate/default.nix b/nixpkgs/pkgs/development/python-modules/samplerate/default.nix
index 02278d9be415..a4a19f7ad12e 100644
--- a/nixpkgs/pkgs/development/python-modules/samplerate/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/samplerate/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , numpy
 , pkgs
@@ -27,7 +27,7 @@ buildPythonPackage {
 
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://github.com/cournape/samplerate";
     description = "High quality sampling rate convertion from audio data in numpy arrays";
     license = licenses.gpl2;
diff --git a/nixpkgs/pkgs/development/python-modules/samsungtvws/default.nix b/nixpkgs/pkgs/development/python-modules/samsungtvws/default.nix
index b41935c58256..3a12568c4d6d 100644
--- a/nixpkgs/pkgs/development/python-modules/samsungtvws/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/samsungtvws/default.nix
@@ -5,18 +5,14 @@
 
 buildPythonPackage rec {
   pname = "samsungtvws";
-  version = "1.5.3";
+  version = "1.6.0";
   disabled = isPy27;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "054rr8hiacdjfxqssnxnd3xp9hh8350zjzzjvh1199bpps4l1l6n";
+    sha256 = "09nls4n0lbnr8nj8105lagr9h2my8lb1s2k285kmsbli36ywd8lj";
   };
 
-  patchPhase = ''
-    substituteInPlace setup.py --replace "websocket-client==" "websocket-client>="
-  '';
-
   propagatedBuildInputs = [
     websocket_client
     requests
diff --git a/nixpkgs/pkgs/development/python-modules/sandboxlib/default.nix b/nixpkgs/pkgs/development/python-modules/sandboxlib/default.nix
index 541bd8108714..42872e318916 100644
--- a/nixpkgs/pkgs/development/python-modules/sandboxlib/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/sandboxlib/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , pbr
@@ -17,7 +17,7 @@ buildPythonPackage rec {
 
   buildInputs = [ pbr ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Sandboxing Library for Python";
     homepage = "https://pypi.python.org/pypi/sandboxlib/0.3.1";
     license = licenses.gpl2;
diff --git a/nixpkgs/pkgs/development/python-modules/sane/default.nix b/nixpkgs/pkgs/development/python-modules/sane/default.nix
index 2359ff0aa7fe..d45c736d8d03 100644
--- a/nixpkgs/pkgs/development/python-modules/sane/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/sane/default.nix
@@ -6,12 +6,12 @@
 
 buildPythonPackage rec {
   pname = "sane";
-  version = "2.8.2";
+  version = "2.9.1";
 
   src = fetchPypi {
     inherit version;
     pname = "python-sane";
-    sha256 = "0sri01h9sld6w7vgfhwp29n5w19g6idz01ba2giwnkd99k1y2iqg";
+    sha256 = "JAmOuDxujhsBEm5q16WwR5wHsBPF0iBQm1VYkv5JJd4=";
   };
 
   buildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/sanic-auth/default.nix b/nixpkgs/pkgs/development/python-modules/sanic-auth/default.nix
index 4642b69f7d2e..c78b6f13d152 100644
--- a/nixpkgs/pkgs/development/python-modules/sanic-auth/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/sanic-auth/default.nix
@@ -1,21 +1,19 @@
-{ lib, buildPythonPackage, fetchPypi, pytest, sanic }:
+{ lib, buildPythonPackage, fetchPypi, sanic, pytestCheckHook }:
 
 buildPythonPackage rec {
   pname = "Sanic-Auth";
-  version = "0.2.0";
+  version = "0.3.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "b7cb9e93296c035ada0aa1ebfb33f9f7b62f7774c519e374b7fe703ff73589cb";
+    sha256 = "0dc24ynqjraqwgvyk0g9bj87zgpq4xnssl24hnsn7l5vlkmk8198";
   };
 
   propagatedBuildInputs = [ sanic ];
 
-  checkInputs = [ pytest ];
+  checkInputs = [ pytestCheckHook ];
 
-  checkPhase = ''
-    pytest tests
-  '';
+  pythonImportsCheck = [ "sanic_auth" ];
 
   meta = with lib; {
     description = "Simple Authentication for Sanic";
diff --git a/nixpkgs/pkgs/development/python-modules/sanic/default.nix b/nixpkgs/pkgs/development/python-modules/sanic/default.nix
index aaedaa5ef8c5..f503b0b85561 100644
--- a/nixpkgs/pkgs/development/python-modules/sanic/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/sanic/default.nix
@@ -36,6 +36,8 @@ buildPythonPackage rec {
     "test_zero_downtime" # No "examples.delayed_response.app" module in pypi distribution.
   ];
 
+  __darwinAllowLocalNetworking = true;
+
   meta = with lib; {
     description = "A microframework based on uvloop, httptools, and learnings of flask";
     homepage = "http://github.com/channelcat/sanic/";
diff --git a/nixpkgs/pkgs/development/python-modules/sapi-python-client/default.nix b/nixpkgs/pkgs/development/python-modules/sapi-python-client/default.nix
index 847acb3c9cd4..8a7a62d8ce84 100644
--- a/nixpkgs/pkgs/development/python-modules/sapi-python-client/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/sapi-python-client/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, git, setuptools, setuptools_scm, fetchFromGitHub, requests, boto3, buildPythonPackage, responses }:
+{ lib, stdenv, git, setuptools, setuptools_scm, fetchFromGitHub, requests, boto3, buildPythonPackage, responses }:
 
 buildPythonPackage rec {
     pname = "sapi-python-client";
@@ -21,7 +21,7 @@ buildPythonPackage rec {
 
     propagatedBuildInputs = [ setuptools requests boto3 responses ];
 
-    meta = with stdenv.lib; {
+    meta = with lib; {
         description = "Keboola Connection Storage API client";
         homepage = "https://github.com/keboola/sapi-python-client";
         maintainers = with maintainers; [ mrmebelman ];
diff --git a/nixpkgs/pkgs/development/python-modules/scales/default.nix b/nixpkgs/pkgs/development/python-modules/scales/default.nix
index 0407c1fa86d8..5aae62972688 100644
--- a/nixpkgs/pkgs/development/python-modules/scales/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/scales/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , nose
@@ -20,7 +20,7 @@ buildPythonPackage rec {
   # No tests included
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Stats for Python processes";
     homepage = "https://www.github.com/Cue/scales";
     license = licenses.asl20;
diff --git a/nixpkgs/pkgs/development/python-modules/schedule/default.nix b/nixpkgs/pkgs/development/python-modules/schedule/default.nix
index 118c95cc8c57..596ed993233e 100644
--- a/nixpkgs/pkgs/development/python-modules/schedule/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/schedule/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , mock
@@ -15,7 +15,7 @@ buildPythonPackage rec {
 
   buildInputs = [ mock ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Python job scheduling for humans";
     homepage = "https://github.com/dbader/schedule";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/schema/default.nix b/nixpkgs/pkgs/development/python-modules/schema/default.nix
index 8dd89480074a..1502c7d10abe 100644
--- a/nixpkgs/pkgs/development/python-modules/schema/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/schema/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi, contextlib2, pytest, mock }:
+{ lib, stdenv, buildPythonPackage, fetchPypi, contextlib2, pytest, mock }:
 
 buildPythonPackage rec {
 
@@ -19,7 +19,7 @@ buildPythonPackage rec {
   checkInputs = [ pytest mock ];
   checkPhase = "pytest ./test_schema.py";
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Library for validating Python data structures";
     homepage = "https://github.com/keleshev/schema";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/scikit-bio/default.nix b/nixpkgs/pkgs/development/python-modules/scikit-bio/default.nix
index 650a67709913..8fa0186498f4 100644
--- a/nixpkgs/pkgs/development/python-modules/scikit-bio/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/scikit-bio/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , cython
@@ -45,7 +45,7 @@ buildPythonPackage rec {
     ${python.interpreter} -m skbio.test
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "http://scikit-bio.org/";
     description = "Data structures, algorithms and educational resources for bioinformatics";
     license = licenses.bsd3;
diff --git a/nixpkgs/pkgs/development/python-modules/scikitlearn/0.20.nix b/nixpkgs/pkgs/development/python-modules/scikitlearn/0.20.nix
index 4d8e8d00f434..81915e83d2dc 100644
--- a/nixpkgs/pkgs/development/python-modules/scikitlearn/0.20.nix
+++ b/nixpkgs/pkgs/development/python-modules/scikitlearn/0.20.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi
+{ lib, stdenv, buildPythonPackage, fetchPypi
 , gfortran, glibcLocales
 , numpy, scipy, pytest, pillow
 }:
@@ -29,7 +29,7 @@ buildPythonPackage rec {
     HOME=$TMPDIR OMP_NUM_THREADS=1 pytest -k "not test_feature_importance_regression" --pyargs sklearn
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "A set of python modules for machine learning and data mining";
     homepage = "https://scikit-learn.org";
     license = licenses.bsd3;
diff --git a/nixpkgs/pkgs/development/python-modules/scikitlearn/default.nix b/nixpkgs/pkgs/development/python-modules/scikitlearn/default.nix
index cffd29f09d3a..e7307c926320 100644
--- a/nixpkgs/pkgs/development/python-modules/scikitlearn/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/scikitlearn/default.nix
@@ -13,13 +13,13 @@
 
 buildPythonPackage rec {
   pname = "scikit-learn";
-  version = "0.23.2";
+  version = "0.24.1";
   # UnboundLocalError: local variable 'message' referenced before assignment
   disabled = stdenv.isi686;  # https://github.com/scikit-learn/scikit-learn/issues/5534
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "20766f515e6cd6f954554387dfae705d93c7b544ec0e6c6a5d8e006f6f7ef480";
+    sha256 = "oDNKGALmTWVgIsO/q1anP71r9LEpg0PzaIryFRgQu98=";
   };
 
   buildInputs = [
@@ -52,7 +52,7 @@ buildPythonPackage rec {
     HOME=$TMPDIR OMP_NUM_THREADS=1 pytest -k "not test_feature_importance_regression" --pyargs sklearn
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "A set of python modules for machine learning and data mining";
     changelog = let
       major = versions.major version;
diff --git a/nixpkgs/pkgs/development/python-modules/scikits-odes/default.nix b/nixpkgs/pkgs/development/python-modules/scikits-odes/default.nix
index d85d8e396f20..383cf1f70c68 100644
--- a/nixpkgs/pkgs/development/python-modules/scikits-odes/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/scikits-odes/default.nix
@@ -45,7 +45,7 @@ buildPythonPackage rec {
     pytest
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "A scikit offering extra ode/dae solvers, as an extension to what is available in scipy";
     homepage = "https://github.com/bmcage/odes";
     license = licenses.bsd3;
diff --git a/nixpkgs/pkgs/development/python-modules/scipy/default.nix b/nixpkgs/pkgs/development/python-modules/scipy/default.nix
index 218415354db7..8d08e43bc713 100644
--- a/nixpkgs/pkgs/development/python-modules/scipy/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/scipy/default.nix
@@ -9,11 +9,11 @@ let
   });
 in buildPythonPackage rec {
   pname = "scipy";
-  version = "1.5.4";
+  version = "1.6.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "4a453d5e5689de62e5d38edf40af3f17560bfd63c9c5bd228c18c1f99afa155b";
+    sha256 = "0rh5b1rwdcvvagld8vpxnpaibszy1skpx39a0fwzd5gx5pwcjvfb";
   };
 
   checkInputs = [ nose pytest ];
@@ -37,8 +37,6 @@ in buildPythonPackage rec {
     ln -s ${numpy.cfg} site.cfg
   '';
 
-  enableParallelBuilding = true;
-
   checkPhase = ''
     runHook preCheck
     pushd dist
diff --git a/nixpkgs/pkgs/development/python-modules/scp/default.nix b/nixpkgs/pkgs/development/python-modules/scp/default.nix
index a37927b9a641..f5cd96e71aaf 100644
--- a/nixpkgs/pkgs/development/python-modules/scp/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/scp/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , paramiko
@@ -25,7 +25,7 @@ buildPythonPackage rec {
   #The Pypi package doesn't include the test
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://github.com/jbardin/scp.py";
     description = "SCP module for paramiko";
     license = licenses.lgpl3;
diff --git a/nixpkgs/pkgs/development/python-modules/scrapy-deltafetch/default.nix b/nixpkgs/pkgs/development/python-modules/scrapy-deltafetch/default.nix
index cf6f8a010714..900943a0e153 100644
--- a/nixpkgs/pkgs/development/python-modules/scrapy-deltafetch/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/scrapy-deltafetch/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchPypi, buildPythonPackage, pytest, scrapy, bsddb3 }:
+{ stdenv, lib, fetchPypi, buildPythonPackage, scrapy, bsddb3 }:
 
 buildPythonPackage rec {
   pname = "scrapy-deltafetch";
@@ -11,9 +11,11 @@ buildPythonPackage rec {
 
   propagatedBuildInputs = [ bsddb3 scrapy ];
 
-  checkInputs = [ pytest ];
+  # no tests
+  doCheck = false;
+  pythonImportsCheck = [ "scrapy_deltafetch" ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Scrapy spider middleware to ignore requests to pages containing items seen in previous crawls";
     homepage = "https://github.com/scrapy-plugins/scrapy-deltafetch";
     license = licenses.bsd3;
diff --git a/nixpkgs/pkgs/development/python-modules/scrapy-fake-useragent/default.nix b/nixpkgs/pkgs/development/python-modules/scrapy-fake-useragent/default.nix
index b2de4e9a993b..4f6eecfe9143 100644
--- a/nixpkgs/pkgs/development/python-modules/scrapy-fake-useragent/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/scrapy-fake-useragent/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchFromGitHub, buildPythonPackage, pytestCheckHook, pytestcov, pytest-mock, fake-useragent, faker, scrapy }:
+{ lib, stdenv, fetchFromGitHub, buildPythonPackage, pytestCheckHook, pytestcov, pytest-mock, fake-useragent, faker, scrapy }:
 
 buildPythonPackage rec {
   pname = "scrapy-fake-useragent";
@@ -16,7 +16,7 @@ buildPythonPackage rec {
 
   checkInputs = [ pytestCheckHook scrapy pytestcov pytest-mock ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Random User-Agent middleware based on fake-useragent";
     homepage = "https://github.com/alecxe/scrapy-fake-useragent";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/scrapy-splash/default.nix b/nixpkgs/pkgs/development/python-modules/scrapy-splash/default.nix
index 7799186d6216..ab00377f4a0e 100644
--- a/nixpkgs/pkgs/development/python-modules/scrapy-splash/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/scrapy-splash/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchPypi, buildPythonPackage, pytest, hypothesis, scrapy }:
+{ stdenv, lib, fetchPypi, buildPythonPackage, scrapy, six }:
 
 buildPythonPackage rec {
   pname = "scrapy-splash";
@@ -9,9 +9,13 @@ buildPythonPackage rec {
     sha256 = "1dg7csdza2hzqskd9b9gx0v3saqsch4f0fwdp0a3p0822aqqi488";
   };
 
-  checkInputs = [ pytest hypothesis scrapy ];
+  propagatedBuildInputs = [ scrapy six ];
 
-  meta = with stdenv.lib; {
+  # no tests
+  doCheck = false;
+  pythonImportsCheck = [ "scrapy_splash" ];
+
+  meta = with lib; {
     description = "Scrapy+Splash for JavaScript integration";
     homepage = "https://github.com/scrapy-plugins/scrapy-splash";
     license = licenses.bsd3;
diff --git a/nixpkgs/pkgs/development/python-modules/scrapy/default.nix b/nixpkgs/pkgs/development/python-modules/scrapy/default.nix
index c377ace69685..6887eded3bfd 100644
--- a/nixpkgs/pkgs/development/python-modules/scrapy/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/scrapy/default.nix
@@ -1,4 +1,5 @@
-{ stdenv
+{ lib
+, stdenv
 , buildPythonPackage
 , isPy27
 , fetchPypi
@@ -79,7 +80,10 @@ buildPythonPackage rec {
     "test_retry_dns_error"
     "test_custom_asyncio_loop_enabled_true"
     "test_custom_loop_asyncio"
-  ] ++ stdenv.lib.optionals stdenv.isDarwin [ "test_xmliter_encoding" ];
+  ] ++ lib.optionals stdenv.isDarwin [
+    "test_xmliter_encoding"
+    "test_download"
+  ];
 
   src = fetchPypi {
     inherit pname version;
@@ -92,7 +96,9 @@ buildPythonPackage rec {
     install -m 644 -D extras/scrapy_zsh_completion $out/share/zsh/site-functions/_scrapy
   '';
 
-  meta = with stdenv.lib; {
+  __darwinAllowLocalNetworking = true;
+
+  meta = with lib; {
     description = "A fast high-level web crawling and web scraping framework, used to crawl websites and extract structured data from their pages";
     homepage = "https://scrapy.org/";
     license = licenses.bsd3;
diff --git a/nixpkgs/pkgs/development/python-modules/screeninfo/default.nix b/nixpkgs/pkgs/development/python-modules/screeninfo/default.nix
index 1b79a43af9c9..f71f8d0c263a 100644
--- a/nixpkgs/pkgs/development/python-modules/screeninfo/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/screeninfo/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonApplication, fetchPypi, isPy27, isPy36, dataclasses, libX11, libXinerama, libXrandr }:
+{ lib, stdenv, buildPythonApplication, fetchPypi, isPy27, isPy36, dataclasses, libX11, libXinerama, libXrandr }:
 
 buildPythonApplication rec {
   pname = "screeninfo";
@@ -23,11 +23,11 @@ buildPythonApplication rec {
       --replace "load_library(\"Xrandr\")" "ctypes.cdll.LoadLibrary(\"${libXrandr}/lib/libXrandr.so\")"
   '';
 
-  propagatedBuildInputs = stdenv.lib.optional isPy36 dataclasses;
+  propagatedBuildInputs = lib.optional isPy36 dataclasses;
 
   buildInputs = [ libX11 libXinerama libXrandr];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Fetch location and size of physical screens";
     homepage = "https://github.com/rr-/screeninfo";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/scripttest/default.nix b/nixpkgs/pkgs/development/python-modules/scripttest/default.nix
index ab53585fe8c2..ab234ce22434 100644
--- a/nixpkgs/pkgs/development/python-modules/scripttest/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/scripttest/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , pytest
@@ -18,7 +18,7 @@ buildPythonPackage rec {
   # Tests are not included. See https://github.com/pypa/scripttest/issues/11
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "A library for testing interactive command-line applications";
     homepage = "https://pypi.python.org/pypi/ScriptTest/";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/sdnotify/default.nix b/nixpkgs/pkgs/development/python-modules/sdnotify/default.nix
index f1a7fc4d52c0..0003d9c01312 100644
--- a/nixpkgs/pkgs/development/python-modules/sdnotify/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/sdnotify/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 }:
@@ -12,7 +12,7 @@ buildPythonPackage rec {
     inherit pname version;
   };
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "A pure Python implementation of systemd's service notification protocol";
     homepage = "https://github.com/bb4242/sdnotify";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/seabreeze/default.nix b/nixpkgs/pkgs/development/python-modules/seabreeze/default.nix
index 7cf062765d3b..cc9594d04525 100644
--- a/nixpkgs/pkgs/development/python-modules/seabreeze/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/seabreeze/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , fetchFromGitHub
 , buildPythonPackage
 , pyusb
@@ -34,7 +34,7 @@ buildPythonPackage rec {
 
   setupPyBuildFlags = [ "--without-cseabreeze" ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://github.com/ap--/python-seabreeze";
     description = "A python library to access Ocean Optics spectrometers";
     maintainers = [];
diff --git a/nixpkgs/pkgs/development/python-modules/secp256k1/default.nix b/nixpkgs/pkgs/development/python-modules/secp256k1/default.nix
index 3cd6b2fe3ccd..78ddb269f3db 100644
--- a/nixpkgs/pkgs/development/python-modules/secp256k1/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/secp256k1/default.nix
@@ -1,7 +1,7 @@
 { lib
 , buildPythonPackage
 , fetchPypi
-, pkgconfig
+, pkg-config
 , pytest
 , pytestrunner
 , cffi
@@ -17,7 +17,7 @@ buildPythonPackage rec {
     sha256 = "a3b43e02d321c09eafa769a6fc2c156f555cab3a7db62175ef2fd21e16cdf20c";
   };
 
-  nativeBuildInputs = [ pkgconfig ];
+  nativeBuildInputs = [ pkg-config ];
   checkInputs = [ pytest pytestrunner ];
   propagatedBuildInputs = [ cffi secp256k1 ];
 
diff --git a/nixpkgs/pkgs/development/python-modules/seekpath/default.nix b/nixpkgs/pkgs/development/python-modules/seekpath/default.nix
index e70ba02ce0e3..637b55eec8d7 100644
--- a/nixpkgs/pkgs/development/python-modules/seekpath/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/seekpath/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchFromGitHub, pythonOlder, numpy, future, spglib, glibcLocales, pytest, scipy }:
+{ lib, stdenv, buildPythonPackage, fetchFromGitHub, pythonOlder, numpy, future, spglib, glibcLocales, pytest, scipy }:
 
 buildPythonPackage rec {
   pname = "seekpath";
@@ -26,7 +26,7 @@ buildPythonPackage rec {
     pytest . -k 'not oI2Y'
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "A module to obtain and visualize band paths in the Brillouin zone of crystal structures.";
     homepage = "https://github.com/giovannipizzi/seekpath";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/segments/default.nix b/nixpkgs/pkgs/development/python-modules/segments/default.nix
index 8c2e22708aab..00953a8e9090 100644
--- a/nixpkgs/pkgs/development/python-modules/segments/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/segments/default.nix
@@ -12,14 +12,14 @@
 
 buildPythonPackage rec {
   pname = "segments";
-  version = "2.1.3";
+  version = "2.2.0";
   disabled = isPy27;
 
   src = fetchFromGitHub {
     owner = "cldf";
     repo = pname;
     rev = "v${version}";
-    sha256 = "12lnpk834r3y7hw5x7nvswa60ddh69ylvr44k46gqcfba160hhb0";
+    sha256 = "04yc8q79zk09xj0wnal0vdg5azi9jlarfmf2iyljqyr80p79gwvv";
   };
 
   patchPhase = ''
diff --git a/nixpkgs/pkgs/development/python-modules/selectors2/default.nix b/nixpkgs/pkgs/development/python-modules/selectors2/default.nix
index c78f1811a069..ff6b81d3105d 100644
--- a/nixpkgs/pkgs/development/python-modules/selectors2/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/selectors2/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi
+{ lib, stdenv, buildPythonPackage, fetchPypi
 , nose, psutil, mock }:
 
 buildPythonPackage rec {
@@ -21,7 +21,7 @@ buildPythonPackage rec {
       --exclude=test_above_fd_setsize
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://www.github.com/SethMichaelLarson/selectors2";
     description = "Back-ported, durable, and portable selectors";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/selectors34/default.nix b/nixpkgs/pkgs/development/python-modules/selectors34/default.nix
index 6d02c9dc79b2..ea3b403fdaed 100644
--- a/nixpkgs/pkgs/development/python-modules/selectors34/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/selectors34/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , python
@@ -20,7 +20,7 @@ buildPythonPackage rec {
     ${python.interpreter} setup.py test
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "A backport of the selectors module from Python 3.4";
     homepage = "https://github.com/berkerpeksag/selectors34";
     license = licenses.psfl;
diff --git a/nixpkgs/pkgs/development/python-modules/selenium/default.nix b/nixpkgs/pkgs/development/python-modules/selenium/default.nix
index b32dfe2653e4..664f84933ed7 100644
--- a/nixpkgs/pkgs/development/python-modules/selenium/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/selenium/default.nix
@@ -36,7 +36,7 @@ buildPythonPackage rec {
     geckodriver urllib3
   ];
 
-  patchPhase = stdenv.lib.optionalString stdenv.isLinux ''
+  patchPhase = lib.optionalString stdenv.isLinux ''
     cp "${x_ignore_nofocus}/cpp/linux-specific/"* .
     substituteInPlace x_ignore_nofocus.c --replace "/usr/lib/libX11.so.6" "${xorg.libX11.out}/lib/libX11.so.6"
     cc -c -fPIC x_ignore_nofocus.c -o x_ignore_nofocus.o
diff --git a/nixpkgs/pkgs/development/python-modules/semantic/default.nix b/nixpkgs/pkgs/development/python-modules/semantic/default.nix
index f0371f860cf5..83e4879e1fdd 100644
--- a/nixpkgs/pkgs/development/python-modules/semantic/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/semantic/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , isPy3k
@@ -21,7 +21,7 @@ buildPythonPackage rec {
   # strange setuptools error (can not import semantic.test)
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Common Natural Language Processing Tasks for Python";
     homepage = "https://github.com/crm416/semantic";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/semver/default.nix b/nixpkgs/pkgs/development/python-modules/semver/default.nix
index 5aca34b52f11..71ec776db7c4 100644
--- a/nixpkgs/pkgs/development/python-modules/semver/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/semver/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , fetchFromGitHub
 , buildPythonPackage
 , pytestCheckHook
@@ -19,7 +19,7 @@ buildPythonPackage rec {
   preCheck = "rm -rf dist"; # confuses source vs dist imports in pytest
   checkInputs = [ pytestCheckHook pytestcov ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Python package to work with Semantic Versioning (http://semver.org/)";
     homepage = "https://python-semver.readthedocs.io/en/latest/";
     license = licenses.bsd3;
diff --git a/nixpkgs/pkgs/development/python-modules/send2trash/default.nix b/nixpkgs/pkgs/development/python-modules/send2trash/default.nix
index 16528c976ac6..a91be0151119 100644
--- a/nixpkgs/pkgs/development/python-modules/send2trash/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/send2trash/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchFromGitHub
 , pytest
@@ -19,7 +19,7 @@ buildPythonPackage rec {
   checkPhase = "HOME=$TMPDIR pytest";
   checkInputs = [ pytest ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Send file to trash natively under macOS, Windows and Linux";
     homepage = "https://github.com/hsoft/send2trash";
     license = licenses.bsd3;
diff --git a/nixpkgs/pkgs/development/python-modules/sendgrid/default.nix b/nixpkgs/pkgs/development/python-modules/sendgrid/default.nix
new file mode 100644
index 000000000000..77cd35938635
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/sendgrid/default.nix
@@ -0,0 +1,49 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, flask
+, pytestCheckHook
+, python-http-client
+, pyyaml
+, starkbank-ecdsa
+, werkzeug
+}:
+
+buildPythonPackage rec {
+  pname = "sendgrid";
+  version = "6.5.0";
+
+  src = fetchFromGitHub {
+    owner = pname;
+    repo = "sendgrid-python";
+    rev = version;
+    sha256 = "14kqjdv49486ksc1s0m0hc4k5nf9vn1v1g489mpib01hiiqxjp1b";
+  };
+
+  propagatedBuildInputs = [
+    python-http-client
+    starkbank-ecdsa
+  ];
+
+  checkInputs = [
+    flask
+    pytestCheckHook
+    pyyaml
+    werkzeug
+  ];
+
+  # Exclude tests that require network access
+  pytestFlagsArray = [
+    "--ignore test/test_sendgrid.py"
+    "--ignore live_test.py"
+  ];
+
+  pythonImportsCheck = [ "sendgrid" ];
+
+  meta = with lib; {
+    description = "Python client for SendGrid";
+    homepage = "https://github.com/sendgrid/sendgrid-python";
+    license = with licenses; [ mit ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/sentencepiece/default.nix b/nixpkgs/pkgs/development/python-modules/sentencepiece/default.nix
index 430e61399b2f..dd324260f836 100644
--- a/nixpkgs/pkgs/development/python-modules/sentencepiece/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/sentencepiece/default.nix
@@ -1,14 +1,14 @@
 { buildPythonPackage
 , stdenv
 , sentencepiece
-, pkgconfig
+, pkg-config
 }:
 
 buildPythonPackage rec {
   pname = "sentencepiece";
   inherit (sentencepiece) version src;
 
-  nativeBuildInputs = [ pkgconfig ];
+  nativeBuildInputs = [ pkg-config ];
   buildInputs = [ sentencepiece.dev ];
 
   sourceRoot = "source/python";
diff --git a/nixpkgs/pkgs/development/python-modules/sentry-sdk/default.nix b/nixpkgs/pkgs/development/python-modules/sentry-sdk/default.nix
index 9df9453b2b4d..ea9bbc1f0c3f 100644
--- a/nixpkgs/pkgs/development/python-modules/sentry-sdk/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/sentry-sdk/default.nix
@@ -17,7 +17,7 @@
 , rq
 , sanic
 , sqlalchemy
-, stdenv
+, lib, stdenv
 , tornado
 , urllib3
 , trytond
@@ -38,16 +38,10 @@ buildPythonPackage rec {
 
   checkInputs = [ blinker botocore chalice django flask tornado bottle rq falcon sqlalchemy werkzeug trytond
     executing pure-eval asttokens ]
-  ++ stdenv.lib.optionals isPy3k [ celery pyramid sanic aiohttp ];
+  ++ lib.optionals isPy3k [ celery pyramid sanic aiohttp ];
 
   propagatedBuildInputs = [ urllib3 certifi ];
 
-  meta = with stdenv.lib; {
-    homepage = "https://github.com/getsentry/sentry-python";
-    description = "New Python SDK for Sentry.io";
-    license = licenses.bsd2;
-    maintainers = with maintainers; [ gebner ];
-  };
 
   # The Sentry tests need access to `/etc/protocols` (the tests call
   # `socket.getprotobyname('tcp')`, which reads from this file). Normally
@@ -57,5 +51,17 @@ buildPythonPackage rec {
     export NIX_REDIRECTS=/etc/protocols=${iana-etc}/etc/protocols
     export LD_PRELOAD=${libredirect}/lib/libredirect.so
   '';
+
   postCheck = "unset NIX_REDIRECTS LD_PRELOAD";
+
+  # no tests
+  doCheck = false;
+  pythonImportsCheck = [ "sentry_sdk" ];
+
+  meta = with lib; {
+    homepage = "https://github.com/getsentry/sentry-python";
+    description = "New Python SDK for Sentry.io";
+    license = licenses.bsd2;
+    maintainers = with maintainers; [ gebner ];
+  };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/sepaxml/default.nix b/nixpkgs/pkgs/development/python-modules/sepaxml/default.nix
index 94fd2d65d464..095b47db2bff 100644
--- a/nixpkgs/pkgs/development/python-modules/sepaxml/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/sepaxml/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchFromGitHub, isPy27
+{ lib, stdenv, buildPythonPackage, fetchFromGitHub, isPy27
 , lxml
 , pytest
 , text-unidecode
@@ -28,7 +28,7 @@ buildPythonPackage rec {
     pytest
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://github.com/raphaelm/python-sepaxml/";
     description = "SEPA Direct Debit XML generation in python";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/seqdiag/default.nix b/nixpkgs/pkgs/development/python-modules/seqdiag/default.nix
index b7fba9986002..ba4cdca0c636 100644
--- a/nixpkgs/pkgs/development/python-modules/seqdiag/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/seqdiag/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, buildPythonPackage, isPy27, pep8, nose, unittest2, docutils
+{ lib, stdenv, fetchurl, buildPythonPackage, isPy27, pep8, nose, unittest2, docutils
 , blockdiag
 }:
 
@@ -21,7 +21,7 @@ buildPythonPackage rec {
   #   ERROR: Failure: OSError ([Errno 2] No such file or directory: '/tmp/nix-build-python2.7-seqdiag-0.9.0.drv-0/seqdiag-0.9.0/src/seqdiag/tests/diagrams/')
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Generate sequence-diagram image from spec-text file (similar to Graphviz)";
     homepage = "http://blockdiag.com/";
     license = licenses.asl20;
diff --git a/nixpkgs/pkgs/development/python-modules/serpent/default.nix b/nixpkgs/pkgs/development/python-modules/serpent/default.nix
index cfb734e54759..36840813b401 100644
--- a/nixpkgs/pkgs/development/python-modules/serpent/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/serpent/default.nix
@@ -25,7 +25,7 @@ buildPythonPackage rec {
     ${python.interpreter} setup.py test
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "A simple serialization library based on ast.literal_eval";
     homepage = "https://github.com/irmen/Serpent";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/serversyncstorage/default.nix b/nixpkgs/pkgs/development/python-modules/serversyncstorage/default.nix
index e8541da6cd45..fa212d6a4de5 100644
--- a/nixpkgs/pkgs/development/python-modules/serversyncstorage/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/serversyncstorage/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchFromGitHub
 , isPy27
@@ -37,7 +37,7 @@ buildPythonPackage rec {
     pymysqlsa umemcache WSGIProxy requests pybrowserid
   ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     broken = cornice.version != "0.17";
     description = "The SyncServer server software, as used by Firefox Sync";
     homepage = "https://github.com/mozilla-services/server-syncstorage";
diff --git a/nixpkgs/pkgs/development/python-modules/setproctitle/default.nix b/nixpkgs/pkgs/development/python-modules/setproctitle/default.nix
index 473ef25e162e..a9c0e7fda893 100644
--- a/nixpkgs/pkgs/development/python-modules/setproctitle/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/setproctitle/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , pytestCheckHook
@@ -18,7 +18,7 @@ buildPythonPackage rec {
   # tries to compile programs with dependencies that aren't available
   pytestFlagsArray = [ "--ignore=tests/setproctitle_test.py" ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Allows a process to change its title (as displayed by system tools such as ps and top)";
     homepage =  "https://github.com/dvarrazzo/py-setproctitle";
     license = licenses.bsdOriginal;
diff --git a/nixpkgs/pkgs/development/python-modules/setuptools-git/default.nix b/nixpkgs/pkgs/development/python-modules/setuptools-git/default.nix
index 5c0b40b4af4e..18fae7b1610b 100644
--- a/nixpkgs/pkgs/development/python-modules/setuptools-git/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/setuptools-git/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , pkgs
@@ -16,7 +16,7 @@ buildPythonPackage rec {
   propagatedBuildInputs = [ pkgs.git ];
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Setuptools revision control system plugin for Git";
     homepage = "https://pypi.python.org/pypi/setuptools-git";
     license = licenses.bsd3;
diff --git a/nixpkgs/pkgs/development/python-modules/setuptools-lint/default.nix b/nixpkgs/pkgs/development/python-modules/setuptools-lint/default.nix
index fbe1528c4c3b..ba42c21ad360 100644
--- a/nixpkgs/pkgs/development/python-modules/setuptools-lint/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/setuptools-lint/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi, pylint }:
+{ lib, stdenv, buildPythonPackage, fetchPypi, pylint }:
 
 buildPythonPackage rec {
   pname = "setuptools-lint";
@@ -11,7 +11,7 @@ buildPythonPackage rec {
 
   propagatedBuildInputs = [ pylint ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Package to expose pylint as a lint command into setup.py";
     homepage = "https://github.com/johnnoone/setuptools-pylint";
     license = licenses.bsdOriginal;
diff --git a/nixpkgs/pkgs/development/python-modules/setuptools-rust/default.nix b/nixpkgs/pkgs/development/python-modules/setuptools-rust/default.nix
index 5125e166a0ce..2d9a4b17d40f 100644
--- a/nixpkgs/pkgs/development/python-modules/setuptools-rust/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/setuptools-rust/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , isPy27
@@ -23,7 +23,7 @@ buildPythonPackage rec {
 
   propagatedBuildInputs = [ semantic-version setuptools toml ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Setuptools plugin for Rust support";
     homepage = "https://github.com/PyO3/setuptools-rust";
     changelog = "https://github.com/PyO3/setuptools-rust/releases/tag/v${version}";
diff --git a/nixpkgs/pkgs/development/python-modules/setuptools-scm-git-archive/default.nix b/nixpkgs/pkgs/development/python-modules/setuptools-scm-git-archive/default.nix
index d2b464054969..d8558aaf83a7 100644
--- a/nixpkgs/pkgs/development/python-modules/setuptools-scm-git-archive/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/setuptools-scm-git-archive/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi, setuptools_scm, pytest }:
+{ lib, stdenv, buildPythonPackage, fetchPypi, setuptools_scm, pytest }:
 
 buildPythonPackage rec {
   pname = "setuptools-scm-git-archive";
@@ -17,7 +17,7 @@ buildPythonPackage rec {
   doCheck = false;
   pythonImportsCheck = [ "setuptools_scm_git_archive" ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "setuptools_scm plugin for git archives";
     homepage = "https://github.com/Changaco/setuptools_scm_git_archive";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/setuptools/44.0.nix b/nixpkgs/pkgs/development/python-modules/setuptools/44.0.nix
index c2f6eb230b47..7c7d6b01e408 100644
--- a/nixpkgs/pkgs/development/python-modules/setuptools/44.0.nix
+++ b/nixpkgs/pkgs/development/python-modules/setuptools/44.0.nix
@@ -73,7 +73,7 @@ in buildPythonPackage rec {
   # Requires pytest, causing infinite recursion.
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Utilities to facilitate the installation of Python packages";
     homepage = "https://pypi.python.org/pypi/setuptools";
     license = with licenses; [ psfl zpl20 ];
diff --git a/nixpkgs/pkgs/development/python-modules/setuptools/default.nix b/nixpkgs/pkgs/development/python-modules/setuptools/default.nix
index 987c75ba5a03..12bbbb7d0e5b 100644
--- a/nixpkgs/pkgs/development/python-modules/setuptools/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/setuptools/default.nix
@@ -73,7 +73,7 @@ in buildPythonPackage rec {
   # Requires pytest, causing infinite recursion.
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Utilities to facilitate the installation of Python packages";
     homepage = "https://pypi.python.org/pypi/setuptools";
     license = with licenses; [ psfl zpl20 ];
diff --git a/nixpkgs/pkgs/development/python-modules/setuptools_scm/default.nix b/nixpkgs/pkgs/development/python-modules/setuptools_scm/default.nix
index fb527a1336d9..a766bb6c294f 100644
--- a/nixpkgs/pkgs/development/python-modules/setuptools_scm/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/setuptools_scm/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi, pip, pytest }:
+{ lib, stdenv, buildPythonPackage, fetchPypi, pip, pytest }:
 
 buildPythonPackage rec {
   pname = "setuptools_scm";
@@ -12,7 +12,7 @@ buildPythonPackage rec {
   # Requires pytest, circular dependency
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://bitbucket.org/pypa/setuptools_scm/";
     description = "Handles managing your python package versions in scm metadata";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/setuptoolsdarcs/default.nix b/nixpkgs/pkgs/development/python-modules/setuptoolsdarcs/default.nix
index 5e58f80985f5..f6358a831c9c 100644
--- a/nixpkgs/pkgs/development/python-modules/setuptoolsdarcs/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/setuptoolsdarcs/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , darcsver
@@ -22,7 +22,7 @@ buildPythonPackage rec {
     substituteInPlace setup.py --replace "name=PKG" "name=PKG, version='${version}'"
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Setuptools plugin for the Darcs version control system";
     homepage = "http://allmydata.org/trac/setuptools_darcs";
     license = licenses.bsd0;
diff --git a/nixpkgs/pkgs/development/python-modules/setuptoolstrial/default.nix b/nixpkgs/pkgs/development/python-modules/setuptoolstrial/default.nix
index b393d0eb2003..1d29f77cf0f2 100644
--- a/nixpkgs/pkgs/development/python-modules/setuptoolstrial/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/setuptoolstrial/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , pytest
@@ -28,7 +28,7 @@ buildPythonPackage rec {
   # Couldn't get tests working
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Setuptools plugin that makes unit tests execute with trial instead of pyunit.";
     homepage = "https://github.com/rutsky/setuptools-trial";
     license = licenses.bsd2;
diff --git a/nixpkgs/pkgs/development/python-modules/sexpdata/default.nix b/nixpkgs/pkgs/development/python-modules/sexpdata/default.nix
index 1e282f9660a8..89f716d9be25 100644
--- a/nixpkgs/pkgs/development/python-modules/sexpdata/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/sexpdata/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 }:
@@ -14,7 +14,7 @@ buildPythonPackage rec {
 
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "S-expression parser for Python";
     homepage = "https://github.com/tkf/sexpdata";
     license = licenses.bsd0;
diff --git a/nixpkgs/pkgs/development/python-modules/shap/default.nix b/nixpkgs/pkgs/development/python-modules/shap/default.nix
index deb6dcf2a21a..1ce9a879ee19 100644
--- a/nixpkgs/pkgs/development/python-modules/shap/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/shap/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchFromGitHub
 , isPy27
@@ -60,7 +60,7 @@ buildPythonPackage rec {
     "test_single_row_gradient_boosting_regressor"
   ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "A unified approach to explain the output of any machine learning model";
     homepage = "https://github.com/slundberg/shap";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/shapely/default.nix b/nixpkgs/pkgs/development/python-modules/shapely/default.nix
index e2b738c479e6..b5dd0be5445c 100644
--- a/nixpkgs/pkgs/development/python-modules/shapely/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/shapely/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi, substituteAll, pythonOlder
+{ lib, stdenv, buildPythonPackage, fetchPypi, substituteAll, pythonOlder
 , geos, pytest, cython
 , numpy
 }:
@@ -29,7 +29,7 @@ buildPythonPackage rec {
     (substituteAll {
       src = ./library-paths.patch;
       libgeos_c = GEOS_LIBRARY_PATH;
-      libc = stdenv.lib.optionalString (!stdenv.isDarwin) "${stdenv.cc.libc}/lib/libc${stdenv.hostPlatform.extensions.sharedLibrary}.6";
+      libc = lib.optionalString (!stdenv.isDarwin) "${stdenv.cc.libc}/lib/libc${stdenv.hostPlatform.extensions.sharedLibrary}.6";
     })
   ];
 
@@ -39,7 +39,7 @@ buildPythonPackage rec {
     py.test tests
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Geometric objects, predicates, and operations";
     maintainers = with maintainers; [ knedlsepp ];
     homepage = "https://pypi.python.org/pypi/Shapely/";
diff --git a/nixpkgs/pkgs/development/python-modules/shellingham/default.nix b/nixpkgs/pkgs/development/python-modules/shellingham/default.nix
index 238d394ee11e..77a4b98f54c3 100644
--- a/nixpkgs/pkgs/development/python-modules/shellingham/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/shellingham/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi
+{ lib, stdenv, buildPythonPackage, fetchPypi
 }:
 
 buildPythonPackage rec {
@@ -11,7 +11,7 @@ buildPythonPackage rec {
     sha256 = "576c1982bea0ba82fb46c36feb951319d7f42214a82634233f58b40d858a751e";
   };
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Tool to Detect Surrounding Shell";
     homepage = "https://github.com/sarugaku/shellingham";
     license = licenses.isc;
diff --git a/nixpkgs/pkgs/development/python-modules/shiboken2/default.nix b/nixpkgs/pkgs/development/python-modules/shiboken2/default.nix
index 9b2062dbf6c6..b7508a8f6447 100644
--- a/nixpkgs/pkgs/development/python-modules/shiboken2/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/shiboken2/default.nix
@@ -1,5 +1,5 @@
-{ buildPythonPackage, python, fetchurl, stdenv, pyside2,
-  cmake, qt5, llvmPackages }:
+{ buildPythonPackage, python, fetchurl, lib, stdenv, pyside2
+, cmake, qt5, llvmPackages }:
 
 stdenv.mkDerivation {
   pname = "shiboken2";
@@ -27,10 +27,11 @@ stdenv.mkDerivation {
     rm $out/bin/shiboken_tool.py
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Generator for the PySide2 Qt bindings";
     license = with licenses; [ gpl2 lgpl21 ];
     homepage = "https://wiki.qt.io/Qt_for_Python";
     maintainers = with maintainers; [ gebner ];
+    broken = stdenv.isDarwin;
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/shippai/default.nix b/nixpkgs/pkgs/development/python-modules/shippai/default.nix
index 1bae1c50fb66..8fd15b71a015 100644
--- a/nixpkgs/pkgs/development/python-modules/shippai/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/shippai/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi }:
+{ lib, stdenv, buildPythonPackage, fetchPypi }:
 
 buildPythonPackage rec {
   pname = "shippai";
@@ -10,7 +10,7 @@ buildPythonPackage rec {
     sha256 = "0r6iwvmay8ygn2m15pyjrk9am4mfpk7rkf0lcbcb15pnabixlyzj";
   };
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Use Rust failures as Python exceptions";
     homepage = "https://github.com/untitaker/shippai";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/shortuuid/default.nix b/nixpkgs/pkgs/development/python-modules/shortuuid/default.nix
index 4fec2a3f04c0..35401afa6e3e 100644
--- a/nixpkgs/pkgs/development/python-modules/shortuuid/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/shortuuid/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , isPy3k
 , fetchPypi
@@ -18,7 +18,7 @@ buildPythonPackage rec {
 
   buildInputs = [pep8];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "A generator library for concise, unambiguous and URL-safe UUIDs";
     homepage = "https://github.com/stochastic-technologies/shortuuid/";
     license = licenses.bsd3;
diff --git a/nixpkgs/pkgs/development/python-modules/should-dsl/default.nix b/nixpkgs/pkgs/development/python-modules/should-dsl/default.nix
index abfe47bfc7a7..1499f1ce4bc8 100644
--- a/nixpkgs/pkgs/development/python-modules/should-dsl/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/should-dsl/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi }:
+{ lib, stdenv, buildPythonPackage, fetchPypi }:
 
 buildPythonPackage rec {
   pname = "should-dsl";
@@ -13,7 +13,7 @@ buildPythonPackage rec {
   # There are no tests
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Should assertions in Python as clear and readable as possible";
     homepage = "http://www.should-dsl.info/";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/shouldbe/default.nix b/nixpkgs/pkgs/development/python-modules/shouldbe/default.nix
index 068ed9343117..9959f26036cf 100644
--- a/nixpkgs/pkgs/development/python-modules/shouldbe/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/shouldbe/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , pythonAtLeast
 , fetchPypi
@@ -20,7 +20,7 @@ buildPythonPackage rec {
   checkInputs = [ nose ];
   propagatedBuildInputs = [ forbiddenfruit ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Python Assertion Helpers inspired by Shouldly";
     homepage =  "https://pypi.python.org/pypi/shouldbe/";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/signedjson/default.nix b/nixpkgs/pkgs/development/python-modules/signedjson/default.nix
index 69f7a93f509d..12614a3446bb 100644
--- a/nixpkgs/pkgs/development/python-modules/signedjson/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/signedjson/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchFromGitHub
 , canonicaljson
@@ -20,7 +20,7 @@ buildPythonPackage rec {
 
   propagatedBuildInputs = [ canonicaljson unpaddedbase64 pynacl typing-extensions ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://pypi.org/project/signedjson/";
     description = "Sign JSON with Ed25519 signatures";
     license = licenses.asl20;
diff --git a/nixpkgs/pkgs/development/python-modules/sigtools/default.nix b/nixpkgs/pkgs/development/python-modules/sigtools/default.nix
index 92a39e26da0e..0c11a2b6c561 100644
--- a/nixpkgs/pkgs/development/python-modules/sigtools/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/sigtools/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , repeated_test
@@ -24,7 +24,7 @@ buildPythonPackage rec {
 
   patchPhase = ''sed -i s/test_suite="'"sigtools.tests"'"/test_suite="'"unittest2.collector"'"/ setup.py'';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Utilities for working with 3.3's inspect.Signature objects.";
     homepage = "https://pypi.python.org/pypi/sigtools";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/simanneal/default.nix b/nixpkgs/pkgs/development/python-modules/simanneal/default.nix
index 5b084c399ba5..958f53be567d 100644
--- a/nixpkgs/pkgs/development/python-modules/simanneal/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/simanneal/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchFromGitHub, buildPythonPackage, pytest }:
+{ lib, stdenv, fetchFromGitHub, buildPythonPackage, pytest }:
 
 buildPythonPackage rec {
   pname = "simanneal";
@@ -14,7 +14,7 @@ buildPythonPackage rec {
   checkInputs = [ pytest ];
   checkPhase = "pytest tests";
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "A python implementation of the simulated annealing optimization technique";
     homepage = "https://github.com/perrygeo/simanneal";
     license = licenses.isc;
diff --git a/nixpkgs/pkgs/development/python-modules/simple-websocket-server/default.nix b/nixpkgs/pkgs/development/python-modules/simple-websocket-server/default.nix
index c80206813724..f8d579b6088d 100644
--- a/nixpkgs/pkgs/development/python-modules/simple-websocket-server/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/simple-websocket-server/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchFromGitHub }:
+{ lib, stdenv, buildPythonPackage, fetchFromGitHub }:
 
 buildPythonPackage {
   pname = "simple-websocket-server";
@@ -12,7 +12,7 @@ buildPythonPackage {
 
   doCheck = false; # no tests
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "A python based websocket server that is simple and easy to use";
     homepage = "https://github.com/dpallot/simple-websocket-server/";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/simpleai/default.nix b/nixpkgs/pkgs/development/python-modules/simpleai/default.nix
index c8d1a99326f9..0786ebfae6e4 100644
--- a/nixpkgs/pkgs/development/python-modules/simpleai/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/simpleai/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , numpy
@@ -20,7 +20,7 @@ buildPythonPackage rec {
    #No tests in archive
    doCheck = false;
 
-   meta = with stdenv.lib; {
+   meta = with lib; {
      homepage = "https://github.com/simpleai-team/simpleai";
      description = "This lib implements many of the artificial intelligence algorithms described on the book 'Artificial Intelligence, a Modern Approach'";
      maintainers = with maintainers; [ NikolaMandic ];
diff --git a/nixpkgs/pkgs/development/python-modules/simplebayes/default.nix b/nixpkgs/pkgs/development/python-modules/simplebayes/default.nix
index 57f7df73c21d..ed86b48fc072 100644
--- a/nixpkgs/pkgs/development/python-modules/simplebayes/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/simplebayes/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchFromGitHub
 , nose
@@ -21,13 +21,13 @@ buildPythonPackage {
 
   checkInputs = [ nose mock ];
 
-  postPatch = stdenv.lib.optionalString isPy3k ''
+  postPatch = lib.optionalString isPy3k ''
     sed -i -e 's/open *(\([^)]*\))/open(\1, encoding="utf-8")/' setup.py
   '';
 
   checkPhase = "nosetests tests/test.py";
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Memory-based naive bayesian text classifier";
     homepage = "https://github.com/hickeroar/simplebayes";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/simpleparse/default.nix b/nixpkgs/pkgs/development/python-modules/simpleparse/default.nix
index d1117b3a9d89..6395f4af223d 100644
--- a/nixpkgs/pkgs/development/python-modules/simpleparse/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/simpleparse/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , isPy3k
@@ -18,7 +18,7 @@ buildPythonPackage rec {
 
   doCheck = false;  # weird error
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "A Parser Generator for Python";
     homepage = "https://pypi.python.org/pypi/SimpleParse";
     license = licenses.bsd0;
diff --git a/nixpkgs/pkgs/development/python-modules/sip/5.x.nix b/nixpkgs/pkgs/development/python-modules/sip/5.x.nix
new file mode 100644
index 000000000000..cebffd5765bd
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/sip/5.x.nix
@@ -0,0 +1,26 @@
+{ lib, fetchPypi, buildPythonPackage, packaging, toml }:
+
+buildPythonPackage rec {
+  pname = "sip";
+  version = "5.5.0";
+
+  src = fetchPypi {
+    pname = "sip";
+    inherit version;
+    sha256 = "1idaivamp1jvbbai9yzv471c62xbqxhaawccvskaizihkd0lq0jx";
+  };
+
+  propagatedBuildInputs = [ packaging toml ];
+
+  # There aren't tests
+  doCheck = false;
+
+  pythonImportsCheck = [ "sipbuild" ];
+
+  meta = with lib; {
+    description = "Creates C++ bindings for Python modules";
+    homepage    = "http://www.riverbankcomputing.co.uk/";
+    license     = licenses.gpl3Only;
+    maintainers = with maintainers; [ eduardosm ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/sipsimple/default.nix b/nixpkgs/pkgs/development/python-modules/sipsimple/default.nix
index d7791fcf96cb..568ce67d1434 100644
--- a/nixpkgs/pkgs/development/python-modules/sipsimple/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/sipsimple/default.nix
@@ -32,7 +32,7 @@ buildPythonPackage rec {
     export LD=$CC
   '';
 
-  nativeBuildInputs = [ pkgs.pkgconfig ];
+  nativeBuildInputs = [ pkgs.pkg-config ];
   buildInputs = with pkgs; [ alsaLib ffmpeg_3 libv4l sqlite libvpx ];
   propagatedBuildInputs = [ cython pkgs.openssl dnspython dateutil xcaplib msrplib lxml python-otr ];
 
diff --git a/nixpkgs/pkgs/development/python-modules/skein/default.nix b/nixpkgs/pkgs/development/python-modules/skein/default.nix
index 32320c5042fc..40a179264273 100644
--- a/nixpkgs/pkgs/development/python-modules/skein/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/skein/default.nix
@@ -29,7 +29,7 @@ buildPythonPackage rec {
     ln -s ${skeinJar} skein/java/skein.jar
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://jcristharif.com/skein";
     description = "A tool and library for easily deploying applications on Apache YARN";
     license = licenses.bsd3;
diff --git a/nixpkgs/pkgs/development/python-modules/sklearn-deap/default.nix b/nixpkgs/pkgs/development/python-modules/sklearn-deap/default.nix
index e4a01778352a..36ec8b18ca7e 100644
--- a/nixpkgs/pkgs/development/python-modules/sklearn-deap/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/sklearn-deap/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchFromGitHub, fetchpatch, numpy, scipy, deap, scikitlearn, python }:
+{ lib, stdenv, buildPythonPackage, fetchFromGitHub, fetchpatch, numpy, scipy, deap, scikitlearn, python }:
 
 buildPythonPackage rec {
   pname = "sklearn-deap";
@@ -26,7 +26,7 @@ buildPythonPackage rec {
     ${python.interpreter} test.py
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Use evolutionary algorithms instead of gridsearch in scikit-learn";
     homepage = "https://github.com/rsteca/sklearn-deap";
     license = licenses.lgpl3;
diff --git a/nixpkgs/pkgs/development/python-modules/slackclient/default.nix b/nixpkgs/pkgs/development/python-modules/slackclient/default.nix
index b2578d5dd63d..571398b783dc 100644
--- a/nixpkgs/pkgs/development/python-modules/slackclient/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/slackclient/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchFromGitHub
 , aiohttp
@@ -49,7 +49,7 @@ buildPythonPackage rec {
     responses
   ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "A client for Slack, which supports the Slack Web API and Real Time Messaging (RTM) API";
     homepage = "https://github.com/slackapi/python-slackclient";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/sleekxmpp/default.nix b/nixpkgs/pkgs/development/python-modules/sleekxmpp/default.nix
index 426019fc8a97..e6d5e59a80e7 100644
--- a/nixpkgs/pkgs/development/python-modules/sleekxmpp/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/sleekxmpp/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchPypi, buildPythonPackage, dns, pyasn1 }:
+{ lib, stdenv, fetchPypi, buildPythonPackage, dns, pyasn1 }:
 
 buildPythonPackage rec {
   pname = "sleekxmpp";
@@ -15,7 +15,7 @@ buildPythonPackage rec {
     sha256 = "d213c1de71d92505f95ced0460ee0f84fdc4ddcacb7d7dd343739ed4028e5569";
   };
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "XMPP library for Python";
     license = licenses.mit;
     homepage = "http://sleekxmpp.com/";
diff --git a/nixpkgs/pkgs/development/python-modules/slicer/default.nix b/nixpkgs/pkgs/development/python-modules/slicer/default.nix
index 8711055766c6..b5521f415d7b 100644
--- a/nixpkgs/pkgs/development/python-modules/slicer/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/slicer/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , isPy27
@@ -19,7 +19,7 @@ buildPythonPackage rec {
 
   checkInputs = [ pytestCheckHook pandas pytorch ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Wraps tensor-like objects and provides a uniform slicing interface via __getitem__";
     homepage = "https://github.com/interpretml/slicer";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/slicerator/default.nix b/nixpkgs/pkgs/development/python-modules/slicerator/default.nix
index 45d406f560e6..396692200039 100644
--- a/nixpkgs/pkgs/development/python-modules/slicerator/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/slicerator/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , python
@@ -23,7 +23,7 @@ buildPythonPackage rec {
   # run_tests.py not packaged with pypi release
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://github.com/soft-matter/slicerator";
     description = "A lazy-loading, fancy-sliceable iterable";
     license = licenses.bsdOriginal;
diff --git a/nixpkgs/pkgs/development/python-modules/slither-analyzer/default.nix b/nixpkgs/pkgs/development/python-modules/slither-analyzer/default.nix
index 19677a71eca3..deb12817a7bd 100644
--- a/nixpkgs/pkgs/development/python-modules/slither-analyzer/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/slither-analyzer/default.nix
@@ -4,7 +4,7 @@
 
 buildPythonPackage rec {
   pname = "slither-analyzer";
-  version = "0.6.14";
+  version = "0.7.0";
 
   disabled = pythonOlder "3.6";
 
@@ -13,7 +13,7 @@ buildPythonPackage rec {
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "79f5098d27c149ca9cce2b8008ed29e2e0c8cee8fa3414c7e5455cb73c90a9a8";
+    sha256 = "10r479xidgxvas4wb0z6injp59jrn7rfq8d7bxlcalc2dy4mawr0";
   };
 
   nativeBuildInputs = [ makeWrapper ];
diff --git a/nixpkgs/pkgs/development/python-modules/slob/default.nix b/nixpkgs/pkgs/development/python-modules/slob/default.nix
index 9e6ba2ff6350..a7520c62a62c 100644
--- a/nixpkgs/pkgs/development/python-modules/slob/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/slob/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchFromGitHub
 , isPy3k
@@ -24,7 +24,7 @@ buildPythonPackage {
     ${python.interpreter} -m unittest slob
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://github.com/itkach/slob/";
     description = "Reference implementation of the slob (sorted list of blobs) format";
     license = licenses.gpl3;
diff --git a/nixpkgs/pkgs/development/python-modules/slowaes/default.nix b/nixpkgs/pkgs/development/python-modules/slowaes/default.nix
index f9175e507b46..5d738fea57e0 100644
--- a/nixpkgs/pkgs/development/python-modules/slowaes/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/slowaes/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , isPy3k
@@ -15,7 +15,7 @@ buildPythonPackage rec {
 
   disabled = isPy3k;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "http://code.google.com/p/slowaes/";
     description = "AES implemented in pure python";
     license = with licenses; [ asl20 ];
diff --git a/nixpkgs/pkgs/development/python-modules/smartdc/default.nix b/nixpkgs/pkgs/development/python-modules/smartdc/default.nix
index 2fe9926cab9a..0b36a7e9f6e7 100644
--- a/nixpkgs/pkgs/development/python-modules/smartdc/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/smartdc/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , requests
@@ -16,7 +16,7 @@ buildPythonPackage rec {
 
   propagatedBuildInputs = [ requests http_signature ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Joyent SmartDataCenter CloudAPI connector using http-signature authentication via Requests";
     homepage = "https://github.com/atl/py-smartdc";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/smartypants/default.nix b/nixpkgs/pkgs/development/python-modules/smartypants/default.nix
index 71ff2037de89..a497f3db413b 100644
--- a/nixpkgs/pkgs/development/python-modules/smartypants/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/smartypants/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchhg
 , isPyPy
@@ -15,7 +15,7 @@ buildPythonPackage rec {
     sha256 = "1cmzz44d2hm6y8jj2xcq1wfr26760gi7iq92ha8xbhb1axzd7nq6";
   };
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Python with the SmartyPants";
     homepage = "https://bitbucket.org/livibetter/smartypants.py";
     license = licenses.bsd3;
diff --git a/nixpkgs/pkgs/development/python-modules/smbus-cffi/default.nix b/nixpkgs/pkgs/development/python-modules/smbus-cffi/default.nix
index b762730914b5..6715cfd60d95 100644
--- a/nixpkgs/pkgs/development/python-modules/smbus-cffi/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/smbus-cffi/default.nix
@@ -42,5 +42,6 @@ buildPythonPackage rec {
     homepage = "https://github.com/bivab/smbus-cffi";
     license = licenses.gpl2;
     maintainers = with maintainers; [ mic92 ];
+    platforms = platforms.linux;
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/snakeviz/default.nix b/nixpkgs/pkgs/development/python-modules/snakeviz/default.nix
index a34996b8734c..2c54f65d9c35 100644
--- a/nixpkgs/pkgs/development/python-modules/snakeviz/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/snakeviz/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchPypi, buildPythonPackage, tornado }:
+{ lib, stdenv, fetchPypi, buildPythonPackage, tornado }:
 
 buildPythonPackage rec {
   pname = "snakeviz";
@@ -13,7 +13,7 @@ buildPythonPackage rec {
   doCheck = false;
   propagatedBuildInputs = [ tornado ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Browser based viewer for profiling data";
     homepage = "https://jiffyclub.github.io/snakeviz";
     license = licenses.bsd3;
diff --git a/nixpkgs/pkgs/development/python-modules/snapcast/default.nix b/nixpkgs/pkgs/development/python-modules/snapcast/default.nix
index 93d7d1d9d9cf..8446683cb1aa 100644
--- a/nixpkgs/pkgs/development/python-modules/snapcast/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/snapcast/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi, isPy3k, pytest
+{ lib, stdenv, buildPythonPackage, fetchPypi, isPy3k, pytest
 , construct }:
 
 buildPythonPackage rec {
@@ -19,7 +19,7 @@ buildPythonPackage rec {
   # no checks from Pypi - https://github.com/happyleavesaoc/python-snapcast/issues/23
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Control Snapcast, a multi-room synchronous audio solution";
     homepage = "https://github.com/happyleavesaoc/python-snapcast/";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/snappergui/default.nix b/nixpkgs/pkgs/development/python-modules/snappergui/default.nix
deleted file mode 100644
index ff274c1ba8b3..000000000000
--- a/nixpkgs/pkgs/development/python-modules/snappergui/default.nix
+++ /dev/null
@@ -1,30 +0,0 @@
-{ stdenv
-, buildPythonPackage
-, fetchgit
-, pygobject3
-, dbus-python
-}:
-
-buildPythonPackage {
-  pname = "Snapper-GUI";
-  version = "0.1";
-
-  src = fetchgit {
-    url = "https://github.com/ricardomv/snapper-gui";
-    rev = "11d98586b122180c75a86fccda45c4d7e3137591";
-    sha256 = "7a9f86fc17dbf130526e70c3e925eac30e2c74d6b932efbf7e7cd9fbba6dc4b1";
-  };
-
-  # no tests available
-  doCheck = false;
-
-  propagatedBuildInputs = [ pygobject3 dbus-python ];
-
-  meta = with stdenv.lib; {
-    homepage = "https://github.com/ricardomv/snapper-gui";
-    description = "Graphical frontend for snapper";
-    license = licenses.gpl2;
-    maintainers = with maintainers; [ tstrobel ];
-  };
-
-}
diff --git a/nixpkgs/pkgs/development/python-modules/snapshottest/default.nix b/nixpkgs/pkgs/development/python-modules/snapshottest/default.nix
new file mode 100644
index 000000000000..b20f9afff9e6
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/snapshottest/default.nix
@@ -0,0 +1,33 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, fastdiff
+, six
+, termcolor
+, pytestCheckHook
+, pytest-cov
+, django
+}:
+
+buildPythonPackage rec {
+  pname = "snapshottest";
+  version = "0.6.0";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "0g35ggqw4jd9zmazw55kj6gfjdghv49qx4jw5q231qyqj8fzijmv";
+  };
+
+  propagatedBuildInputs = [ fastdiff six termcolor ];
+
+  checkInputs = [ django pytestCheckHook pytest-cov ];
+
+  pythonImportsCheck = [ "snapshottest" ];
+
+  meta = with lib; {
+    description = "Snapshot testing for pytest, unittest, Django, and Nose";
+    homepage = "https://github.com/syrusakbary/snapshottest";
+    license = licenses.mit;
+    maintainers = with maintainers; [ SuperSandro2000 ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/snowballstemmer/default.nix b/nixpkgs/pkgs/development/python-modules/snowballstemmer/default.nix
index c546fefcf503..3364470da1b3 100644
--- a/nixpkgs/pkgs/development/python-modules/snowballstemmer/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/snowballstemmer/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, PyStemmer, fetchPypi }:
+{ lib, stdenv, buildPythonPackage, PyStemmer, fetchPypi }:
 
 buildPythonPackage rec {
   pname = "snowballstemmer";
@@ -14,7 +14,7 @@ buildPythonPackage rec {
 
   propagatedBuildInputs = [ PyStemmer ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "16 stemmer algorithms (15 + Poerter English stemmer) generated from Snowball algorithms";
     homepage = "http://sigal.saimon.org/en/latest/index.html";
     license = licenses.bsd3;
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 3e958a3076c3..96f489ec6ed9 100644
--- a/nixpkgs/pkgs/development/python-modules/snowflake-connector-python/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/snowflake-connector-python/default.nix
@@ -25,12 +25,12 @@
 
 buildPythonPackage rec {
   pname = "snowflake-connector-python";
-  version = "2.3.6";
+  version = "2.3.8";
   disabled = isPy27;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1a4ebf25989fc13d6f70dc3e2064721c54834e493a7964a1d67be61d40e75f50";
+    sha256 = "sha256-zsS5+0UGDwZM65MILfgAvZ67AbXGcLsVmGacgoxX530=";
   };
 
   propagatedBuildInputs = [
@@ -59,6 +59,7 @@ buildPythonPackage rec {
     substituteInPlace setup.py \
       --replace "'boto3>=1.4.4,<1.16'," "'boto3~=1.16'," \
       --replace "'cryptography>=2.5.0,<3.0.0'," "'cryptography'," \
+      --replace "'pyOpenSSL>=16.2.0,<20.0.0'," "'pyOpenSSL'," \
       --replace "'idna<2.10'," "'idna'," \
       --replace "'requests<2.24.0'," "'requests',"
   '';
diff --git a/nixpkgs/pkgs/development/python-modules/socksipy-branch/default.nix b/nixpkgs/pkgs/development/python-modules/socksipy-branch/default.nix
index e17f38cb50dd..ca9d8707ac63 100644
--- a/nixpkgs/pkgs/development/python-modules/socksipy-branch/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/socksipy-branch/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 }:
@@ -12,7 +12,7 @@ buildPythonPackage rec {
     sha256 = "01l41v4g7fy9fzvinmjxy6zcbhgqaif8dhdqm4w90fwcw9h51a8p";
   };
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "http://code.google.com/p/socksipy-branch/";
     description = "This Python module allows you to create TCP connections through a SOCKS proxy without any special effort";
     license = licenses.bsd3;
diff --git a/nixpkgs/pkgs/development/python-modules/somajo/default.nix b/nixpkgs/pkgs/development/python-modules/somajo/default.nix
index c0b8aaca24fc..bd351b5e86fa 100644
--- a/nixpkgs/pkgs/development/python-modules/somajo/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/somajo/default.nix
@@ -1,4 +1,4 @@
-{ pkgs, stdenv, fetchFromGitHub, buildPythonPackage, isPy3k, regex }:
+{ pkgs, lib, stdenv, fetchFromGitHub, buildPythonPackage, isPy3k, regex }:
 
 buildPythonPackage rec {
   pname = "SoMaJo";
@@ -14,7 +14,7 @@ buildPythonPackage rec {
 
   propagatedBuildInputs = [ regex ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Tokenizer and sentence splitter for German and English web texts";
     homepage = "https://github.com/tsproisl/SoMaJo";
     license = licenses.gpl3;
diff --git a/nixpkgs/pkgs/development/python-modules/sopel/default.nix b/nixpkgs/pkgs/development/python-modules/sopel/default.nix
index 706175dfaad3..095c0917e596 100644
--- a/nixpkgs/pkgs/development/python-modules/sopel/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/sopel/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi, isPyPy
+{ lib, stdenv, buildPythonPackage, fetchPypi, isPyPy
 , dnspython
 , geoip2
 , ipython
@@ -52,7 +52,7 @@ buildPythonPackage rec {
     popd
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Simple and extensible IRC bot";
     homepage = "http://sopel.chat";
     license = licenses.efl20;
diff --git a/nixpkgs/pkgs/development/python-modules/sorl_thumbnail/default.nix b/nixpkgs/pkgs/development/python-modules/sorl_thumbnail/default.nix
index 03fbc638f160..e918a1aee3bc 100644
--- a/nixpkgs/pkgs/development/python-modules/sorl_thumbnail/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/sorl_thumbnail/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , isPy27
@@ -19,7 +19,7 @@ buildPythonPackage rec {
   # Disabled due to an improper configuration error when tested against django. This looks like something broken in the test cases for sorl.
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://sorl-thumbnail.readthedocs.org/en/latest/";
     description = "Thumbnails for Django";
     license = licenses.bsd3;
diff --git a/nixpkgs/pkgs/development/python-modules/sortedcollections/default.nix b/nixpkgs/pkgs/development/python-modules/sortedcollections/default.nix
index 3742c625205c..9f9f99a1856c 100644
--- a/nixpkgs/pkgs/development/python-modules/sortedcollections/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/sortedcollections/default.nix
@@ -1,27 +1,35 @@
-{ stdenv
+{ lib
 , buildPythonPackage
-, fetchPypi
+, fetchFromGitHub
+, pytest-cov
+, pytestCheckHook
 , sortedcontainers
 }:
 
 buildPythonPackage rec {
   pname = "sortedcollections";
-  version = "1.2.1";
+  version = "2.1.0";
 
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "0sihzm5aqz7r3irh4jn6rzicb7lf81d27z7vl6kaslnhwcsizhsq";
+  src = fetchFromGitHub {
+    owner = "grantjenks";
+    repo = "python-sortedcollections";
+    rev = "v${version}";
+    sha256 = "sha256-GkZO8afUAgDpDjIa3dhO6nxykqrljeKldunKMODSXfg=";
   };
 
   propagatedBuildInputs = [ sortedcontainers ];
 
-  # No tests in PyPi tarball
-  doCheck = false;
+  checkInputs = [
+    pytest-cov
+    pytestCheckHook
+  ];
 
-  meta = with stdenv.lib; {
+  pythonImportsCheck = [ "sortedcollections" ];
+
+  meta = with lib; {
     description = "Python Sorted Collections";
     homepage = "http://www.grantjenks.com/docs/sortedcollections/";
-    license = licenses.asl20;
+    license = with licenses; [ asl20 ];
+    maintainers = with maintainers; [ fab ];
   };
-
 }
diff --git a/nixpkgs/pkgs/development/python-modules/spacy/models.nix b/nixpkgs/pkgs/development/python-modules/spacy/models.nix
index c4a314ea4742..8c57d2e0d262 100644
--- a/nixpkgs/pkgs/development/python-modules/spacy/models.nix
+++ b/nixpkgs/pkgs/development/python-modules/spacy/models.nix
@@ -1,4 +1,4 @@
-{ stdenv, lib, buildPythonPackage, fetchurl, jieba, pkuseg, spacy }:
+{ lib, buildPythonPackage, fetchurl, jieba, pkuseg, spacy }:
 let
   buildModelPackage = { pname, version, sha256, license }:
   let
@@ -16,7 +16,7 @@ let
 
     pythonImportsCheck = [ pname ];
 
-    meta = with stdenv.lib; {
+    meta = with lib; {
       description = "Models for the spaCy NLP library";
       homepage    = "https://github.com/explosion/spacy-models";
       license     = licenses.${license};
@@ -24,8 +24,8 @@ let
     };
   };
 
-  makeModelSet = models: with stdenv.lib; listToAttrs (map (m: nameValuePair m.pname (buildModelPackage m)) models);
+  makeModelSet = models: with lib; listToAttrs (map (m: nameValuePair m.pname (buildModelPackage m)) models);
 
-in makeModelSet (stdenv.lib.importJSON ./models.json)
+in makeModelSet (lib.importJSON ./models.json)
 
 # cat models.json | jq -r '.[] | @uri "https://github.com/explosion/spacy-models/releases/download/\(.pname)-\(.version)/\(.pname)-\(.version).tar.gz"' | xargs -n1 nix-prefetch-url
diff --git a/nixpkgs/pkgs/development/python-modules/spark_parser/default.nix b/nixpkgs/pkgs/development/python-modules/spark_parser/default.nix
index b513a9f33c8c..ba927431f2c0 100644
--- a/nixpkgs/pkgs/development/python-modules/spark_parser/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/spark_parser/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , nose
@@ -17,8 +17,8 @@ buildPythonPackage rec {
   buildInputs = [ nose ];
   propagatedBuildInputs = [ click ];
 
-  meta = with stdenv.lib; {
-    description = ''An Early-Algorithm Context-free grammar Parser'';
+  meta = with lib; {
+    description = "An Early-Algorithm Context-free grammar Parser";
     homepage = "https://github.com/rocky/python-spark";
     license = licenses.mit;
     maintainers = with maintainers; [raskin];
diff --git a/nixpkgs/pkgs/development/python-modules/sparqlwrapper/default.nix b/nixpkgs/pkgs/development/python-modules/sparqlwrapper/default.nix
index fe400630507b..b97cbee2a5fe 100644
--- a/nixpkgs/pkgs/development/python-modules/sparqlwrapper/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/sparqlwrapper/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , six
@@ -27,7 +27,7 @@ buildPythonPackage rec {
 
   propagatedBuildInputs = [ six isodate pyparsing html5lib keepalive ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "This is a wrapper around a SPARQL service. It helps in creating the query URI and, possibly, convert the result into a more manageable format";
     homepage = "http://rdflib.github.io/sparqlwrapper";
     license = licenses.w3c;
diff --git a/nixpkgs/pkgs/development/python-modules/speaklater/default.nix b/nixpkgs/pkgs/development/python-modules/speaklater/default.nix
index 03b525147bfd..efb0908dc5fc 100644
--- a/nixpkgs/pkgs/development/python-modules/speaklater/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/speaklater/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 }:
@@ -12,7 +12,7 @@ buildPythonPackage rec {
     sha256 = "1ab5dbfzzgz6cnz4xlwx79gz83id4bhiw67k1cgqrlzfs0va7zjr";
   };
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Implements a lazy string for python useful for use with gettext";
     homepage = "https://github.com/mitsuhiko/speaklater";
     license = licenses.bsd0;
diff --git a/nixpkgs/pkgs/development/python-modules/spglib/default.nix b/nixpkgs/pkgs/development/python-modules/spglib/default.nix
index 37b9c24a22e1..08bbb34156bf 100644
--- a/nixpkgs/pkgs/development/python-modules/spglib/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/spglib/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi, fetchpatch, numpy, nose, pyyaml }:
+{ lib, stdenv, buildPythonPackage, fetchPypi, fetchpatch, numpy, nose, pyyaml }:
 
 buildPythonPackage rec {
   pname = "spglib";
@@ -13,7 +13,7 @@ buildPythonPackage rec {
 
   checkInputs = [ nose pyyaml ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Python bindings for C library for finding and handling crystal symmetries";
     homepage = "https://atztogo.github.io/spglib";
     license = licenses.bsd3;
diff --git a/nixpkgs/pkgs/development/python-modules/sphinx_pypi_upload/default.nix b/nixpkgs/pkgs/development/python-modules/sphinx_pypi_upload/default.nix
index 6d353cc63c96..77f283795db5 100644
--- a/nixpkgs/pkgs/development/python-modules/sphinx_pypi_upload/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/sphinx_pypi_upload/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 }:
@@ -12,7 +12,7 @@ buildPythonPackage rec {
     sha256 = "5f919a47ce7a7e6028dba809de81ae1297ac192347cf6fc54efca919d4865159";
   };
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Setuptools command for uploading Sphinx documentation to PyPI";
     homepage = "https://bitbucket.org/jezdez/sphinx-pypi-upload/";
     license = licenses.bsd0;
diff --git a/nixpkgs/pkgs/development/python-modules/sphinx_rtd_theme/default.nix b/nixpkgs/pkgs/development/python-modules/sphinx_rtd_theme/default.nix
index bb9fcb293da7..11e3c2a87e93 100644
--- a/nixpkgs/pkgs/development/python-modules/sphinx_rtd_theme/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/sphinx_rtd_theme/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , sphinx
@@ -23,7 +23,7 @@ buildPythonPackage rec {
     py.test
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "ReadTheDocs.org theme for Sphinx";
     homepage = "https://github.com/snide/sphinx_rtd_theme/";
     license = licenses.bsd3;
diff --git a/nixpkgs/pkgs/development/python-modules/sphinxcontrib-applehelp/default.nix b/nixpkgs/pkgs/development/python-modules/sphinxcontrib-applehelp/default.nix
index 95aa0c5fdeb8..e2bfc5bdaa55 100644
--- a/nixpkgs/pkgs/development/python-modules/sphinxcontrib-applehelp/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/sphinxcontrib-applehelp/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , isPy27
@@ -18,7 +18,7 @@ buildPythonPackage rec {
   # Check is disabled due to circular dependency of sphinx
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "sphinxcontrib-applehelp is a sphinx extension which outputs Apple help books";
     homepage = "http://sphinx-doc.org/";
     license = licenses.bsd0;
diff --git a/nixpkgs/pkgs/development/python-modules/sphinxcontrib-autoapi/default.nix b/nixpkgs/pkgs/development/python-modules/sphinxcontrib-autoapi/default.nix
index 03ac746137f7..6822c0f153d3 100644
--- a/nixpkgs/pkgs/development/python-modules/sphinxcontrib-autoapi/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/sphinxcontrib-autoapi/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , pythonOlder
@@ -32,7 +32,7 @@ buildPythonPackage rec {
     pytest
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://github.com/readthedocs/sphinx-autoapi";
     description = "Provides 'autodoc' style documentation";
     longDescription = "Sphinx AutoAPI provides 'autodoc' style documentation for multiple programming languages without needing to load, run, or import the project being documented.";
diff --git a/nixpkgs/pkgs/development/python-modules/sphinxcontrib-bibtex/default.nix b/nixpkgs/pkgs/development/python-modules/sphinxcontrib-bibtex/default.nix
index bc9a90efcf23..b429522f9d3c 100644
--- a/nixpkgs/pkgs/development/python-modules/sphinxcontrib-bibtex/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/sphinxcontrib-bibtex/default.nix
@@ -1,5 +1,11 @@
-{ stdenv, buildPythonPackage, fetchPypi, isPy3k
-, oset, pybtex, pybtex-docutils, sphinx
+{ lib
+, buildPythonPackage
+, fetchPypi
+, isPy3k
+, oset
+, pybtex
+, pybtex-docutils
+, sphinx
 }:
 
 buildPythonPackage rec {
@@ -15,10 +21,13 @@ buildPythonPackage rec {
 
   propagatedBuildInputs = [ oset pybtex pybtex-docutils sphinx ];
 
-  meta = {
+  doCheck = false;
+  pythonImportsCheck = [ "sphinxcontrib.bibtex" ];
+
+  meta = with lib; {
     description = "A Sphinx extension for BibTeX style citations";
     homepage = "https://github.com/mcmtroffaes/sphinxcontrib-bibtex";
-    license = stdenv.lib.licenses.bsd2;
+    license = licenses.bsd2;
+    maintainers = with maintainers; [ SuperSandro2000 ];
   };
-
 }
diff --git a/nixpkgs/pkgs/development/python-modules/sphinxcontrib-blockdiag/default.nix b/nixpkgs/pkgs/development/python-modules/sphinxcontrib-blockdiag/default.nix
index b8f23afabcd5..a2603b876e5e 100644
--- a/nixpkgs/pkgs/development/python-modules/sphinxcontrib-blockdiag/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/sphinxcontrib-blockdiag/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , python
@@ -26,7 +26,7 @@ buildPythonPackage rec {
     ${python.interpreter} -m unittest discover -s tests
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Sphinx blockdiag extension";
     homepage = "https://github.com/blockdiag/sphinxcontrib-blockdiag";
     maintainers = with maintainers; [ nand0p ];
diff --git a/nixpkgs/pkgs/development/python-modules/sphinxcontrib-devhelp/default.nix b/nixpkgs/pkgs/development/python-modules/sphinxcontrib-devhelp/default.nix
index 01d34dd0ae62..7398cbc433ff 100644
--- a/nixpkgs/pkgs/development/python-modules/sphinxcontrib-devhelp/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/sphinxcontrib-devhelp/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 }:
@@ -16,7 +16,7 @@ buildPythonPackage rec {
   # Check is disabled due to circular dependency of sphinx
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "sphinxcontrib-devhelp is a sphinx extension which outputs Devhelp document.";
     homepage = "http://sphinx-doc.org/";
     license = licenses.bsd0;
diff --git a/nixpkgs/pkgs/development/python-modules/sphinxcontrib-htmlhelp/default.nix b/nixpkgs/pkgs/development/python-modules/sphinxcontrib-htmlhelp/default.nix
index 8eec8ab3267a..150840f19b40 100644
--- a/nixpkgs/pkgs/development/python-modules/sphinxcontrib-htmlhelp/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/sphinxcontrib-htmlhelp/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , isPy27
@@ -18,7 +18,7 @@ buildPythonPackage rec {
   # Check is disabled due to circular dependency of sphinx
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "sphinxcontrib-htmlhelp is a sphinx extension which ...";
     homepage = "http://sphinx-doc.org/";
     license = licenses.bsd0;
diff --git a/nixpkgs/pkgs/development/python-modules/sphinxcontrib-jsmath/default.nix b/nixpkgs/pkgs/development/python-modules/sphinxcontrib-jsmath/default.nix
index 9b1d93287b03..609799f18647 100644
--- a/nixpkgs/pkgs/development/python-modules/sphinxcontrib-jsmath/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/sphinxcontrib-jsmath/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , isPy27
@@ -18,7 +18,7 @@ buildPythonPackage rec {
   # Check is disabled due to circular dependency of sphinx
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "sphinxcontrib-jsmath is a sphinx extension which renders display math in HTML via JavaScript.";
     homepage = "http://sphinx-doc.org/";
     license = licenses.bsd0;
diff --git a/nixpkgs/pkgs/development/python-modules/sphinxcontrib-openapi/default.nix b/nixpkgs/pkgs/development/python-modules/sphinxcontrib-openapi/default.nix
index bd62d2ef4f8f..6375bdab3c24 100644
--- a/nixpkgs/pkgs/development/python-modules/sphinxcontrib-openapi/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/sphinxcontrib-openapi/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , isPy27
@@ -24,7 +24,7 @@ buildPythonPackage rec {
 
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://github.com/ikalnytskyi/sphinxcontrib-openapi";
     description = "OpenAPI (fka Swagger) spec renderer for Sphinx";
     license = licenses.bsd0;
diff --git a/nixpkgs/pkgs/development/python-modules/sphinxcontrib-qthelp/default.nix b/nixpkgs/pkgs/development/python-modules/sphinxcontrib-qthelp/default.nix
index f8e826adf1f3..adf02860d127 100644
--- a/nixpkgs/pkgs/development/python-modules/sphinxcontrib-qthelp/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/sphinxcontrib-qthelp/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , isPy27
@@ -18,7 +18,7 @@ buildPythonPackage rec {
   # Check is disabled due to circular dependency of sphinx
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "sphinxcontrib-qthelp is a sphinx extension which outputs QtHelp document.";
     homepage = "http://sphinx-doc.org/";
     license = licenses.bsd0;
diff --git a/nixpkgs/pkgs/development/python-modules/sphinxcontrib-serializinghtml/default.nix b/nixpkgs/pkgs/development/python-modules/sphinxcontrib-serializinghtml/default.nix
index 05f2749c49d6..52ebe15c1b62 100644
--- a/nixpkgs/pkgs/development/python-modules/sphinxcontrib-serializinghtml/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/sphinxcontrib-serializinghtml/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , isPy27
@@ -18,7 +18,7 @@ buildPythonPackage rec {
   # Check is disabled due to circular dependency of sphinx
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "sphinxcontrib-serializinghtml is a sphinx extension which outputs \"serialized\" HTML files (json and pickle).";
     homepage = "http://sphinx-doc.org/";
     license = licenses.bsd0;
diff --git a/nixpkgs/pkgs/development/python-modules/sphinxcontrib-spelling/default.nix b/nixpkgs/pkgs/development/python-modules/sphinxcontrib-spelling/default.nix
index 44e19997569c..a3054f341450 100644
--- a/nixpkgs/pkgs/development/python-modules/sphinxcontrib-spelling/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/sphinxcontrib-spelling/default.nix
@@ -24,7 +24,7 @@ buildPythonPackage rec {
   # No tests included
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Sphinx spelling extension";
     homepage = "https://bitbucket.org/dhellmann/sphinxcontrib-spelling";
     maintainers = with maintainers; [ nand0p ];
diff --git a/nixpkgs/pkgs/development/python-modules/sphinxcontrib_httpdomain/default.nix b/nixpkgs/pkgs/development/python-modules/sphinxcontrib_httpdomain/default.nix
index 9f042efcc97b..ee652b42d8a1 100644
--- a/nixpkgs/pkgs/development/python-modules/sphinxcontrib_httpdomain/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/sphinxcontrib_httpdomain/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , sphinx
@@ -19,7 +19,7 @@ buildPythonPackage rec {
   # https://bitbucket.org/pypa/setuptools/issue/137/typeerror-unorderable-types-str-nonetype
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Provides a Sphinx domain for describing RESTful HTTP APIs";
     homepage = "https://bitbucket.org/birkenfeld/sphinx-contrib";
     license = licenses.bsd0;
diff --git a/nixpkgs/pkgs/development/python-modules/sphinxcontrib_newsfeed/default.nix b/nixpkgs/pkgs/development/python-modules/sphinxcontrib_newsfeed/default.nix
index 93c53581c4fa..2d56b57df9be 100644
--- a/nixpkgs/pkgs/development/python-modules/sphinxcontrib_newsfeed/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/sphinxcontrib_newsfeed/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , sphinx
@@ -15,7 +15,7 @@ buildPythonPackage rec {
 
   propagatedBuildInputs = [ sphinx ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Extension for adding a simple Blog, News or Announcements section to a Sphinx website";
     homepage = "https://bitbucket.org/prometheus/sphinxcontrib-newsfeed";
     license = licenses.bsd2;
diff --git a/nixpkgs/pkgs/development/python-modules/sphinxcontrib_plantuml/default.nix b/nixpkgs/pkgs/development/python-modules/sphinxcontrib_plantuml/default.nix
index ce65822e3b1f..db8997dfd216 100644
--- a/nixpkgs/pkgs/development/python-modules/sphinxcontrib_plantuml/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/sphinxcontrib_plantuml/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , sphinx
@@ -19,7 +19,7 @@ buildPythonPackage rec {
 
   propagatedBuildInputs = [ sphinx plantuml ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Provides a Sphinx domain for embedding UML diagram with PlantUML";
     homepage = "https://github.com/sphinx-contrib/plantuml/";
     license = with licenses; [ bsd2 ];
diff --git a/nixpkgs/pkgs/development/python-modules/spyder-kernels/default.nix b/nixpkgs/pkgs/development/python-modules/spyder-kernels/default.nix
index 8655d9cbbd5d..e0a8d6b9c18a 100644
--- a/nixpkgs/pkgs/development/python-modules/spyder-kernels/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/spyder-kernels/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi, cloudpickle, ipykernel, wurlitzer,
+{ lib, stdenv, buildPythonPackage, fetchPypi, cloudpickle, ipykernel, wurlitzer,
   jupyter_client, pyzmq }:
 
 buildPythonPackage rec {
@@ -21,7 +21,7 @@ buildPythonPackage rec {
   # No tests
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Jupyter kernels for Spyder's console";
     homepage = "https://docs.spyder-ide.org/current/ipythonconsole.html";
     downloadPage = "https://github.com/spyder-ide/spyder-kernels/releases";
diff --git a/nixpkgs/pkgs/development/python-modules/spyder/3.nix b/nixpkgs/pkgs/development/python-modules/spyder/3.nix
index cac20ad6fce5..34d59d0eb227 100644
--- a/nixpkgs/pkgs/development/python-modules/spyder/3.nix
+++ b/nixpkgs/pkgs/development/python-modules/spyder/3.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchFromGitHub, jedi, pycodestyle,
+{ lib, stdenv, buildPythonPackage, fetchFromGitHub, jedi, pycodestyle,
   psutil, pyflakes, rope, pylint, keyring, numpydoc,
   qtconsole, qtawesome, nbconvert, mccabe, pyopengl, cloudpickle, pygments,
   spyder-kernels_0_5, qtpy, pyzmq, chardet, pyqtwebengine
@@ -31,7 +31,7 @@ buildPythonPackage rec {
     substituteInPlace setup.py --replace "pyqt5<5.13" "pyqt5"
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Library providing a scientific python development environment";
     longDescription = ''
       Spyder (previously known as Pydee) is a powerful interactive development
diff --git a/nixpkgs/pkgs/development/python-modules/spyder/default.nix b/nixpkgs/pkgs/development/python-modules/spyder/default.nix
index f0c4ea50e72e..26013e71158d 100644
--- a/nixpkgs/pkgs/development/python-modules/spyder/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/spyder/default.nix
@@ -1,8 +1,8 @@
-{ stdenv, buildPythonPackage, fetchPypi, isPy27, makeDesktopItem, intervaltree, jedi, pycodestyle,
+{ lib, stdenv, buildPythonPackage, fetchPypi, isPy27, makeDesktopItem, intervaltree, jedi, pycodestyle,
   psutil, pyflakes, rope, numpy, scipy, matplotlib, pylint, keyring, numpydoc,
   qtconsole, qtawesome, nbconvert, mccabe, pyopengl, cloudpickle, pygments,
   spyder-kernels, qtpy, pyzmq, chardet, qdarkstyle, watchdog, python-language-server
-, pyqtwebengine, atomicwrites, pyxdg, diff-match-patch
+, pyqtwebengine, atomicwrites, pyxdg, diff-match-patch, three-merge, pyls-black, pyls-spyder
 }:
 
 buildPythonPackage rec {
@@ -22,7 +22,7 @@ buildPythonPackage rec {
     intervaltree jedi pycodestyle psutil pyflakes rope numpy scipy matplotlib pylint keyring
     numpydoc qtconsole qtawesome nbconvert mccabe pyopengl cloudpickle spyder-kernels
     pygments qtpy pyzmq chardet pyqtwebengine qdarkstyle watchdog python-language-server
-    atomicwrites pyxdg diff-match-patch
+    atomicwrites pyxdg diff-match-patch three-merge pyls-black pyls-spyder
   ];
 
   # There is no test for spyder
@@ -44,14 +44,13 @@ buildPythonPackage rec {
     sed -i /pyqtwebengine/d setup.py
     substituteInPlace setup.py \
       --replace "pyqt5<5.13" "pyqt5" \
-      --replace "parso==0.7.0" "parso" \
-      --replace "jedi==0.17.1" "jedi"
+      --replace "parso==0.7.0" "parso"
   '';
 
   postInstall = ''
     # add Python libs to env so Spyder subprocesses
     # created to run compute kernels don't fail with ImportErrors
-    wrapProgram $out/bin/spyder3 --prefix PYTHONPATH : "$PYTHONPATH"
+    wrapProgram $out/bin/spyder --prefix PYTHONPATH : "$PYTHONPATH"
 
     # Create desktop item
     mkdir -p $out/share/icons
@@ -65,7 +64,7 @@ buildPythonPackage rec {
     makeWrapperArgs+=("''${qtWrapperArgs[@]}")
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Scientific python development environment";
     longDescription = ''
       Spyder (previously known as Pydee) is a powerful interactive development
diff --git a/nixpkgs/pkgs/development/python-modules/sqlalchemy-imageattach/default.nix b/nixpkgs/pkgs/development/python-modules/sqlalchemy-imageattach/default.nix
index 35e6854137e3..6a8c910cfce6 100644
--- a/nixpkgs/pkgs/development/python-modules/sqlalchemy-imageattach/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/sqlalchemy-imageattach/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , pytest
 , Wand
@@ -32,7 +32,7 @@ buildPythonPackage rec {
 
   doCheck = !isPyPy;  # failures due to sqla version mismatch
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://github.com/dahlia/sqlalchemy-imageattach";
     description = "SQLAlchemy extension for attaching images to entity objects";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/sqlalchemy-migrate/default.nix b/nixpkgs/pkgs/development/python-modules/sqlalchemy-migrate/default.nix
index 1f5c893c6dbc..bb757ab45b0a 100644
--- a/nixpkgs/pkgs/development/python-modules/sqlalchemy-migrate/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/sqlalchemy-migrate/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi, fetchpatch, python
+{ lib, stdenv, buildPythonPackage, fetchPypi, fetchpatch, python
 , unittest2, scripttest, pytz, mock
 , testtools, pbr, tempita, decorator, sqlalchemy
 , six, sqlparse, testrepository
@@ -40,7 +40,7 @@ buildPythonPackage rec {
     ${python.interpreter} setup.py test
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://github.com/openstack/sqlalchemy-migrate";
     description = "Schema migration tools for SQLAlchemy";
     license = licenses.asl20;
diff --git a/nixpkgs/pkgs/development/python-modules/sqlite-utils/default.nix b/nixpkgs/pkgs/development/python-modules/sqlite-utils/default.nix
index 727a840476a4..2bb700f67557 100644
--- a/nixpkgs/pkgs/development/python-modules/sqlite-utils/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/sqlite-utils/default.nix
@@ -15,12 +15,12 @@
 
 buildPythonPackage rec {
   pname = "sqlite-utils";
-  version = "3.1.1";
+  version = "3.3";
   disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "54df73364662ff3c763da3b42b9d27b1771ebfb3361caa255e44e1bf1544015b";
+    sha256 = "1linla3za1gb3w0n0k6h3q8in62qhipizff259p14gzmyr95rjjv";
   };
 
   propagatedBuildInputs = [
@@ -37,11 +37,6 @@ buildPythonPackage rec {
     hypothesis
   ];
 
-  # disabled until upstream updates tests
-  disabledTests = lib.optionals (lib.versionAtLeast sqlite.version "3.34.0") [
-    "test_optimize"
-  ];
-
   meta = with lib; {
     description = "Python CLI utility and library for manipulating SQLite databases";
     homepage = "https://github.com/simonw/sqlite-utils";
diff --git a/nixpkgs/pkgs/development/python-modules/sqlite3dbm/default.nix b/nixpkgs/pkgs/development/python-modules/sqlite3dbm/default.nix
index 66a1200eeb2a..1d0b3f15c3fc 100644
--- a/nixpkgs/pkgs/development/python-modules/sqlite3dbm/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/sqlite3dbm/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , isPy3k
@@ -14,7 +14,7 @@ buildPythonPackage rec {
     sha256 = "4721607e0b817b89efdba7e79cab881a03164b94777f4cf796ad5dd59a7612c5";
   };
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "sqlite-backed dictionary";
     homepage = "https://github.com/Yelp/sqlite3dbm";
     license = licenses.asl20;
diff --git a/nixpkgs/pkgs/development/python-modules/sqlobject/default.nix b/nixpkgs/pkgs/development/python-modules/sqlobject/default.nix
index ccd4190bbfde..ccbc6659fe3d 100644
--- a/nixpkgs/pkgs/development/python-modules/sqlobject/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/sqlobject/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , pytest
@@ -20,7 +20,7 @@ buildPythonPackage rec {
   checkInputs = [ pytest ];
   propagatedBuildInputs = [ FormEncode PasteDeploy paste pydispatcher ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Object Relational Manager for providing an object interface to your database";
     homepage = "http://www.sqlobject.org/";
     license = licenses.lgpl21;
diff --git a/nixpkgs/pkgs/development/python-modules/squaremap/default.nix b/nixpkgs/pkgs/development/python-modules/squaremap/default.nix
index 4927d8c725d4..c17a88435dd6 100644
--- a/nixpkgs/pkgs/development/python-modules/squaremap/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/squaremap/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , isPy3k
 , fetchPypi
@@ -19,7 +19,7 @@ buildPythonPackage rec {
 
   propagatedBuildInputs = [ six wxPython ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Hierarchic visualization control for wxPython";
     homepage = "https://launchpad.net/squaremap";
     license = licenses.bsd3;
diff --git a/nixpkgs/pkgs/development/python-modules/srptools/default.nix b/nixpkgs/pkgs/development/python-modules/srptools/default.nix
index 9fca318db0b9..f130009d30d6 100644
--- a/nixpkgs/pkgs/development/python-modules/srptools/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/srptools/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi, six, pytest, pytestrunner }:
+{ lib, stdenv, buildPythonPackage, fetchPypi, six, pytest, pytestrunner }:
 
 buildPythonPackage rec {
   pname = "srptools";
@@ -13,7 +13,7 @@ buildPythonPackage rec {
 
   checkInputs = [ pytest pytestrunner ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Python-Tools to implement Secure Remote Password (SRP) authentication";
     homepage = "https://github.com/idlesign/srptools";
     license = licenses.bsd3;
diff --git a/nixpkgs/pkgs/development/python-modules/srsly/default.nix b/nixpkgs/pkgs/development/python-modules/srsly/default.nix
index ee53af641a05..42320e50fa8d 100644
--- a/nixpkgs/pkgs/development/python-modules/srsly/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/srsly/default.nix
@@ -37,7 +37,7 @@ buildPythonPackage rec {
 
   pythonImportsCheck = [ "srsly" ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Modern high-performance serialization utilities for Python";
     homepage = "https://github.com/explosion/srsly";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/srvlookup/default.nix b/nixpkgs/pkgs/development/python-modules/srvlookup/default.nix
index 6cbdc81ef86d..c399ee760fd6 100644
--- a/nixpkgs/pkgs/development/python-modules/srvlookup/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/srvlookup/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchPypi, buildPythonPackage
+{ lib, stdenv, fetchPypi, buildPythonPackage
 , dnspython
 , mock, nose
 }:
@@ -15,7 +15,7 @@ buildPythonPackage rec {
   propagatedBuildInputs = [ dnspython ];
   checkInputs = [ mock nose ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://github.com/gmr/srvlookup";
     license = [ licenses.bsd3 ];
     description = "A small wrapper for dnspython to return SRV records for a given host, protocol, and domain name as a list of namedtuples.";
diff --git a/nixpkgs/pkgs/development/python-modules/ssdeep/default.nix b/nixpkgs/pkgs/development/python-modules/ssdeep/default.nix
index fc6b548ed5b8..8300c3ec2f65 100644
--- a/nixpkgs/pkgs/development/python-modules/ssdeep/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/ssdeep/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , pkgs
@@ -24,7 +24,7 @@ buildPythonPackage rec {
   # tests repository does not include required files
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://github.com/DinoTools/python-ssdeep";
     description = "Python wrapper for the ssdeep library";
     license = licenses.lgpl3;
diff --git a/nixpkgs/pkgs/development/python-modules/ssdp/default.nix b/nixpkgs/pkgs/development/python-modules/ssdp/default.nix
index 3c1d2c9976fa..82ea4b066a3c 100644
--- a/nixpkgs/pkgs/development/python-modules/ssdp/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/ssdp/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , isPy27
@@ -23,7 +23,7 @@ buildPythonPackage rec {
   # test suite uses new async primitives
   doCheck = !isPy27;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://github.com/codingjoe/ssdp";
     description = "Python asyncio library for Simple Service Discovery Protocol (SSDP).";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/sseclient/default.nix b/nixpkgs/pkgs/development/python-modules/sseclient/default.nix
index ebc6435bc794..9d944e112fe2 100644
--- a/nixpkgs/pkgs/development/python-modules/sseclient/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/sseclient/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi, isPy27
+{ lib, stdenv, buildPythonPackage, fetchPypi, isPy27
 , requests, six
 , backports_unittest-mock, pytestCheckHook, pytestrunner }:
 
@@ -20,7 +20,7 @@ buildPythonPackage rec {
   # tries to open connection to wikipedia
   disabledTests = [ "event_stream" ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Client library for reading Server Sent Event streams";
     homepage = "https://github.com/btubbs/sseclient";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/sslib/default.nix b/nixpkgs/pkgs/development/python-modules/sslib/default.nix
index 0f1edfd31bde..026ac8a30b75 100644
--- a/nixpkgs/pkgs/development/python-modules/sslib/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/sslib/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchPypi, buildPythonPackage, isPy3k }:
+{ lib, stdenv, fetchPypi, buildPythonPackage, isPy3k }:
 
 buildPythonPackage rec {
   pname = "sslib";
@@ -13,7 +13,7 @@ buildPythonPackage rec {
   # No tests available
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://github.com/jqueiroz/python-sslib";
     description = "A Python3 library for sharing secrets";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/sslyze/default.nix b/nixpkgs/pkgs/development/python-modules/sslyze/default.nix
index 24b334ef8822..991f85c900ec 100644
--- a/nixpkgs/pkgs/development/python-modules/sslyze/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/sslyze/default.nix
@@ -1,30 +1,30 @@
 { lib
 , fetchFromGitHub
-, pytest
 , buildPythonPackage
 , nassl
 , cryptography
 , typing-extensions
 , faker
+, pytestCheckHook
 }:
 
 buildPythonPackage rec {
   pname = "sslyze";
-  version = "3.0.8";
+  version = "3.1.0";
 
   src = fetchFromGitHub {
     owner = "nabla-c0d3";
     repo = pname;
     rev = version;
-    sha256 = "06mwzxw6xaqin2gwzcqb9r7qhbyx3k7zcxygxywi2bpxyjv9lq32";
+    sha256 = "02p0lgpkfq88dys0dqw0z8bpg9g8pds2lvs9awd9f2w5cb1pwr83";
   };
 
   patchPhase = ''
     substituteInPlace setup.py \
-      --replace "cryptography>=2.6,<=2.9" "cryptography"
+      --replace "cryptography>=2.6,<3.3" "cryptography>=2.6,<4.0"
   '';
 
-  checkInputs = [ pytest ];
+  checkInputs = [ pytestCheckHook ];
 
   checkPhase = ''
     # Most of the tests are online; hence, applicable tests are listed
diff --git a/nixpkgs/pkgs/development/python-modules/starkbank-ecdsa/default.nix b/nixpkgs/pkgs/development/python-modules/starkbank-ecdsa/default.nix
new file mode 100644
index 000000000000..70b66b9a4683
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/starkbank-ecdsa/default.nix
@@ -0,0 +1,28 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, pytestCheckHook
+}:
+
+buildPythonPackage rec {
+  pname = "starkbank-ecdsa";
+  version = "1.1.0";
+
+  src = fetchFromGitHub {
+    owner = "starkbank";
+    repo = "ecdsa-python";
+    rev = "v${version}";
+    sha256 = "03smk33zhmv1j1svgjnykak0jnw8yl0yv03i1gsasx71f33zmfwi";
+  };
+
+  checkInputs = [ pytestCheckHook ];
+  pytestFlagsArray = [ "-v tests/*.py" ];
+  pythonImportsCheck = [ "ellipticcurve" ];
+
+  meta = with lib; {
+    description = "Python ECDSA library";
+    homepage = "https://github.com/starkbank/ecdsa-python";
+    license = with licenses; [ mit ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/starlette/default.nix b/nixpkgs/pkgs/development/python-modules/starlette/default.nix
index ff8a93d335ea..d802a2300035 100644
--- a/nixpkgs/pkgs/development/python-modules/starlette/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/starlette/default.nix
@@ -2,25 +2,26 @@
 , stdenv
 , buildPythonPackage
 , fetchFromGitHub
+, isPy27
 , aiofiles
 , graphene
 , itsdangerous
 , jinja2
+, python-multipart
 , pyyaml
 , requests
 , ujson
-, python-multipart
-, pytest
-, uvicorn
-, isPy27
-, darwin
-, databases
 , aiosqlite
+, databases
+, pytestCheckHook
+, pytest-asyncio
+, pytestcov
+, typing-extensions
+, ApplicationServices
 }:
 
 buildPythonPackage rec {
   pname = "starlette";
-
   version = "0.13.8";
   disabled = isPy27;
 
@@ -36,22 +37,21 @@ buildPythonPackage rec {
     graphene
     itsdangerous
     jinja2
+    python-multipart
     pyyaml
     requests
     ujson
-    uvicorn
-    python-multipart
-    databases
-  ] ++ stdenv.lib.optional stdenv.isDarwin [ darwin.apple_sdk.frameworks.ApplicationServices ];
+  ] ++ lib.optional stdenv.isDarwin [ ApplicationServices ];
 
   checkInputs = [
-    pytest
     aiosqlite
+    databases
+    pytestCheckHook
+    typing-extensions
   ];
 
-  checkPhase = ''
-    pytest --ignore=tests/test_graphql.py
-  '';
+  pytestFlagsArray = [ "--ignore=tests/test_graphql.py" ];
+
   pythonImportsCheck = [ "starlette" ];
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/development/python-modules/staticjinja/default.nix b/nixpkgs/pkgs/development/python-modules/staticjinja/default.nix
index cba55e5aca28..d49bae2eab91 100644
--- a/nixpkgs/pkgs/development/python-modules/staticjinja/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/staticjinja/default.nix
@@ -1,24 +1,45 @@
 { lib
-, fetchPypi
+, fetchFromGitHub
 , buildPythonPackage
+, isPy27
 , docopt
 , easywatch
 , jinja2
+, pytestCheckHook
+, markdown
 }:
 
 buildPythonPackage rec {
   pname = "staticjinja";
   version = "0.4.0";
 
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "597837899008409359680ee9cd04779639b9c0eb3380b6545025d26a702ba36c";
+  disabled = isPy27; # 0.4.0 drops python2 support
+
+  # For some reason, in pypi the tests get disabled when using
+  # PY_IGNORE_IMPORTMISMATCH, so we just fetch from GitHub
+  src = fetchFromGitHub {
+    owner = "staticjinja";
+    repo = pname;
+    rev = version;
+    sha256 = "0pysk8pzmcg1nfxz8m4i6bvww71w2zg6xp33zgg5vrf8yd2dfx9i";
   };
 
-  propagatedBuildInputs = [ jinja2 docopt easywatch ];
+  propagatedBuildInputs = [
+    jinja2
+    docopt
+    easywatch
+  ];
+
+  checkInputs = [
+    pytestCheckHook
+    markdown
+  ];
 
-  # There are no tests on pypi
-  doCheck = false;
+  # Import paths differ by a "build/lib" subdirectory, but the files are
+  # the same, so we ignore import mismatches.
+  preCheck = ''
+    export PY_IGNORE_IMPORTMISMATCH=1
+  '';
 
   meta = with lib; {
     description = "A library and cli tool that makes it easy to build static sites using Jinja2";
@@ -27,4 +48,3 @@ buildPythonPackage rec {
     maintainers = with maintainers; [ fgaz ];
   };
 }
-
diff --git a/nixpkgs/pkgs/development/python-modules/statsd/default.nix b/nixpkgs/pkgs/development/python-modules/statsd/default.nix
index cf376113b3e3..447fed3263c3 100644
--- a/nixpkgs/pkgs/development/python-modules/statsd/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/statsd/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , nose
@@ -23,7 +23,7 @@ buildPythonPackage rec {
     sed -i 's/assert_called_once()/called/' statsd/tests.py
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     maintainers = with maintainers; [ domenkozar ];
     description = "A simple statsd client";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/stdiomask/default.nix b/nixpkgs/pkgs/development/python-modules/stdiomask/default.nix
new file mode 100644
index 000000000000..8ef59074fc00
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/stdiomask/default.nix
@@ -0,0 +1,26 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, pytestCheckHook
+}:
+
+buildPythonPackage rec {
+  pname = "stdiomask";
+  version = "0.0.6";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "19m3p6i7fj7nmkbsjhiha3f2l7d05j9gf9ha2pd0pqfrx9lp1r61";
+  };
+
+  # tests are not published: https://github.com/asweigart/stdiomask/issues/5
+  doCheck = false;
+  pythonImportsCheck = [ "stdiomask" ];
+
+  meta = with lib; {
+    description = "Python module for masking passwords";
+    homepage = "https://github.com/asweigart/stdiomask";
+    license = with licenses; [ gpl3Plus ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/stompclient/default.nix b/nixpkgs/pkgs/development/python-modules/stompclient/default.nix
index 4cb59cf5f285..17bafbad282e 100644
--- a/nixpkgs/pkgs/development/python-modules/stompclient/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/stompclient/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , isPy3k
@@ -20,7 +20,7 @@ buildPythonPackage rec {
 
   # XXX: Ran 0 tests in 0.217s
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Lightweight and extensible STOMP messaging client";
     homepage = "https://bitbucket.org/hozn/stompclient";
     license = licenses.asl20;
diff --git a/nixpkgs/pkgs/development/python-modules/strict-rfc3339/default.nix b/nixpkgs/pkgs/development/python-modules/strict-rfc3339/default.nix
index 7f45f326903a..53701999b021 100644
--- a/nixpkgs/pkgs/development/python-modules/strict-rfc3339/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/strict-rfc3339/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi }:
+{ lib, stdenv, buildPythonPackage, fetchPypi }:
 
 buildPythonPackage rec {
   pname = "strict-rfc3339";
@@ -11,7 +11,7 @@ buildPythonPackage rec {
 
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://github.com/danielrichman/strict-rfc3339";
     license = licenses.gpl3;
     description = "Strict, simple, lightweight RFC3339 functions";
diff --git a/nixpkgs/pkgs/development/python-modules/strictyaml/default.nix b/nixpkgs/pkgs/development/python-modules/strictyaml/default.nix
index ee18a6ca6b22..8f383b60b175 100644
--- a/nixpkgs/pkgs/development/python-modules/strictyaml/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/strictyaml/default.nix
@@ -7,13 +7,13 @@
 }:
 
 buildPythonPackage rec {
-  version = "1.1.1";
+  version = "1.3.0";
   pname = "strictyaml";
   disabled = isPy27;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "ea2bb97aacc12fff7df11bd4cb4ae64b1418a0311fbd1611445cc59dc650bdd3";
+    sha256 = "f640ae4e6fe761c3ae7138092c3dcb9b5050ec56e9cbac45d8a6b549d7ec973c";
   };
 
   propagatedBuildInputs = [ ruamel_yaml python-dateutil ];
diff --git a/nixpkgs/pkgs/development/python-modules/stringcase/default.nix b/nixpkgs/pkgs/development/python-modules/stringcase/default.nix
index 531f1eb92231..10afb5113931 100644
--- a/nixpkgs/pkgs/development/python-modules/stringcase/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/stringcase/default.nix
@@ -1,4 +1,4 @@
-{ buildPythonPackage, fetchPypi, stdenv
+{ buildPythonPackage, fetchPypi, lib, stdenv
 }:
 
 buildPythonPackage rec {
@@ -13,7 +13,7 @@ buildPythonPackage rec {
   # PyPi package does not include tests.
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://github.com/okunishinishi/python-stringcase";
     description = "Convert string cases between camel case, pascal case, snake case etc…";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/stringtemplate/default.nix b/nixpkgs/pkgs/development/python-modules/stringtemplate/default.nix
index c70cac59920e..8bdb69a3074e 100644
--- a/nixpkgs/pkgs/development/python-modules/stringtemplate/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/stringtemplate/default.nix
@@ -1,4 +1,4 @@
-{stdenv, fetchurl, buildPythonPackage, antlr, isPy3k}:
+{ lib, fetchurl, buildPythonPackage, antlr, isPy3k }:
 
 buildPythonPackage rec {
   pname = "PyStringTemplate";
@@ -16,9 +16,9 @@ buildPythonPackage rec {
   # No tests included in archive
   doCheck = false;
 
-  meta = {
+  meta = with lib; {
     homepage = "https://www.stringtemplate.org/";
     description = "Text Templating Library";
-    platforms = stdenv.lib.platforms.linux;
+    platforms = platforms.linux;
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/subarulink/default.nix b/nixpkgs/pkgs/development/python-modules/subarulink/default.nix
new file mode 100644
index 000000000000..5b6362b76a14
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/subarulink/default.nix
@@ -0,0 +1,44 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, aiohttp
+, asynctest
+, stdiomask
+, cryptography
+, pytestcov
+, pytest-asyncio
+, pytestCheckHook
+}:
+
+buildPythonPackage rec {
+  pname = "subarulink";
+  version = "0.3.11";
+
+  src = fetchFromGitHub {
+    owner = "G-Two";
+    repo = pname;
+    rev = "subaru-v${version}";
+    sha256 = "1ink9bhph6blidnfsqwq01grhp7ghacmkd4vzgb9hnhl9l52s1jq";
+  };
+
+  propagatedBuildInputs = [ aiohttp stdiomask ];
+
+  checkInputs = [
+    asynctest
+    cryptography
+    pytest-asyncio
+    pytestcov
+    pytestCheckHook
+  ];
+
+  __darwinAllowLocalNetworking = true;
+
+  pythonImportsCheck = [ "subarulink" ];
+
+  meta = with lib; {
+    description = "Python module for interacting with STARLINK-enabled vehicle";
+    homepage = "https://github.com/G-Two/subarulink";
+    license = with licenses; [ asl20 ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/subdownloader/default.nix b/nixpkgs/pkgs/development/python-modules/subdownloader/default.nix
index c4d57bef0ea9..2dac94ac15d2 100644
--- a/nixpkgs/pkgs/development/python-modules/subdownloader/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/subdownloader/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchurl
 , mmpython
@@ -57,7 +57,7 @@ buildPythonPackage rec {
     echo '${setup}' > $sourceRoot/setup.py
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Tool for automatic download/upload subtitles for videofiles using fast hashing";
     homepage = "https://www.subdownloader.net";
     license = licenses.gpl3;
diff --git a/nixpkgs/pkgs/development/python-modules/suds-jurko/default.nix b/nixpkgs/pkgs/development/python-modules/suds-jurko/default.nix
index e83448d82cf9..4bf74fe00b4e 100644
--- a/nixpkgs/pkgs/development/python-modules/suds-jurko/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/suds-jurko/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , isPyPy
@@ -23,7 +23,7 @@ buildPythonPackage rec {
       --replace "test_sending_unicode_data" "noop"
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Lightweight SOAP client (Jurko's fork)";
     homepage = "https://bitbucket.org/jurko/suds";
     license = licenses.lgpl3;
diff --git a/nixpkgs/pkgs/development/python-modules/suds/default.nix b/nixpkgs/pkgs/development/python-modules/suds/default.nix
index 77f4c731265e..24425fef95f1 100644
--- a/nixpkgs/pkgs/development/python-modules/suds/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/suds/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , isPy3k
@@ -16,7 +16,7 @@ buildPythonPackage rec {
 
   patches = [ ./suds-0.4-CVE-2013-2217.patch ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     # Broken for security issues:
     # - https://github.com/NixOS/nixpkgs/issues/19678
     # - https://lwn.net/Vulnerabilities/559200/
diff --git a/nixpkgs/pkgs/development/python-modules/sumo/default.nix b/nixpkgs/pkgs/development/python-modules/sumo/default.nix
index 504d91212874..e647cd4a9d27 100644
--- a/nixpkgs/pkgs/development/python-modules/sumo/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/sumo/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchFromGitHub, isPy27
+{ lib, stdenv, buildPythonPackage, fetchFromGitHub, isPy27
 , h5py
 , matplotlib
 , numpy
@@ -33,7 +33,7 @@ buildPythonPackage rec {
   # tests have type annotations, can only run on 3.5+
   doCheck = (!isPy27);
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Toolkit for plotting and analysis of ab initio solid-state calculation data";
     homepage = "https://github.com/SMTG-UCL/sumo";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/sure/default.nix b/nixpkgs/pkgs/development/python-modules/sure/default.nix
index 2e6e7548efd8..efff79f679f4 100644
--- a/nixpkgs/pkgs/development/python-modules/sure/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/sure/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , rednose
@@ -20,7 +20,7 @@ buildPythonPackage rec {
   buildInputs = [ rednose ];
   propagatedBuildInputs = [ six mock ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Utility belt for automated testing";
     homepage = "https://sure.readthedocs.io/en/latest/";
     license = licenses.gpl3Plus;
diff --git a/nixpkgs/pkgs/development/python-modules/survey/default.nix b/nixpkgs/pkgs/development/python-modules/survey/default.nix
index 1f5438140e2b..f9bec0451ff4 100644
--- a/nixpkgs/pkgs/development/python-modules/survey/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/survey/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , wrapio
@@ -20,7 +20,7 @@ buildPythonPackage rec {
   doCheck = false;
   pythonImportsCheck = [ "survey" ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://github.com/Exahilosys/survey";
     description = "A simple library for creating beautiful interactive prompts";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/svg-path/default.nix b/nixpkgs/pkgs/development/python-modules/svg-path/default.nix
index a8427558f436..585dbf64b3c3 100644
--- a/nixpkgs/pkgs/development/python-modules/svg-path/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/svg-path/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi }:
+{ lib, stdenv, buildPythonPackage, fetchPypi }:
 buildPythonPackage rec {
   pname = "svg.path";
   version = "4.0.2";
@@ -8,7 +8,7 @@ buildPythonPackage rec {
     sha256 = "4bd627ec6526cd5da14f3c6a51205d930187db2d8992aed626825492c033b195";
   };
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "SVG path objects and parser";
     homepage = "https://github.com/regebro/svg.path";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/svg2tikz/default.nix b/nixpkgs/pkgs/development/python-modules/svg2tikz/default.nix
index b592ee75dece..fb0475ef3b97 100644
--- a/nixpkgs/pkgs/development/python-modules/svg2tikz/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/svg2tikz/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchgit
 , lxml
@@ -18,7 +18,7 @@ buildPythonPackage {
     rev = "ad36f2c3818da13c4136d70a0fd8153acf8daef4";
   };
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://github.com/kjellmf/svg2tikz";
     description = "An SVG to TikZ converter";
     license = licenses.gpl2Plus;
diff --git a/nixpkgs/pkgs/development/python-modules/swagger-ui-bundle/default.nix b/nixpkgs/pkgs/development/python-modules/swagger-ui-bundle/default.nix
index 823f834b417c..613de201b2d1 100644
--- a/nixpkgs/pkgs/development/python-modules/swagger-ui-bundle/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/swagger-ui-bundle/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi, jinja2, flake8 }:
+{ lib, stdenv, buildPythonPackage, fetchPypi, jinja2, flake8 }:
 
 buildPythonPackage rec {
   pname = "swagger-ui-bundle";
@@ -20,7 +20,7 @@ buildPythonPackage rec {
   # package contains no tests
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "bundled swagger-ui pip package";
     homepage = "https://github.com/dtkav/swagger_ui_bundle";
     license = licenses.asl20;
diff --git a/nixpkgs/pkgs/development/python-modules/swisshydrodata/default.nix b/nixpkgs/pkgs/development/python-modules/swisshydrodata/default.nix
new file mode 100644
index 000000000000..f4f191d2b423
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/swisshydrodata/default.nix
@@ -0,0 +1,28 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, requests
+}:
+
+buildPythonPackage rec {
+  pname = "swisshydrodata";
+  version = "0.0.3";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1adpy6k2bknffzl5rckqpvaqyrvc00d6a4a4541438dqasx61npl";
+  };
+
+  propagatedBuildInputs = [ requests ];
+
+  # Tests are not releases at the moment
+  doCheck = false;
+  pythonImportsCheck = [ "swisshydrodata" ];
+
+  meta = with lib; {
+    description = "Python client to get data from the Swiss federal Office for Environment FEON";
+    homepage = "https://github.com/bouni/swisshydrodata";
+    license = with licenses; [ mit ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/swspotify/default.nix b/nixpkgs/pkgs/development/python-modules/swspotify/default.nix
index 27e5f0cb0bb8..321a48e72b6f 100644
--- a/nixpkgs/pkgs/development/python-modules/swspotify/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/swspotify/default.nix
@@ -18,7 +18,8 @@ buildPythonPackage rec {
 
   preConfigure = ''
     substituteInPlace setup.py \
-      --replace 'requests>=2.24.0' 'requests~=2.23'
+      --replace 'requests>=2.24.0' 'requests~=2.23' \
+      --replace 'flask-cors==3.0.8' 'flask-cors'
   '';
 
   checkPhase = ''
@@ -27,7 +28,9 @@ buildPythonPackage rec {
 
   checkInputs = [ pytestCheckHook mock ];
 
-  meta = with stdenv.lib; {
+  pythonImportsCheck = [ "SwSpotify" ];
+
+  meta = with lib; {
     homepage = "https://github.com/SwagLyrics/SwSpotify";
     description = "Library to get the currently playing song and artist from Spotify";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/sybase/default.nix b/nixpkgs/pkgs/development/python-modules/sybase/default.nix
index 8fd0f023d0fa..20c2a158a3b2 100644
--- a/nixpkgs/pkgs/development/python-modules/sybase/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/sybase/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchurl
 , isPy3k
@@ -20,7 +20,7 @@ buildPythonPackage rec {
   SYBASE = freetds;
   setupPyBuildFlags = [ "-DHAVE_FREETDS" "-UWANT_BULKCOPY" ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "The Sybase module provides a Python interface to the Sybase relational database system";
     homepage    = "http://python-sybase.sourceforge.net";
     license     = licenses.bsd3;
diff --git a/nixpkgs/pkgs/development/python-modules/sympy/default.nix b/nixpkgs/pkgs/development/python-modules/sympy/default.nix
index 9c3353aa2e74..c935176e0d51 100644
--- a/nixpkgs/pkgs/development/python-modules/sympy/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/sympy/default.nix
@@ -8,11 +8,11 @@
 
 buildPythonPackage rec {
   pname = "sympy";
-  version = "1.6.2";
+  version = "1.7.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1cfadcc80506e4b793f5b088558ca1fcbeaec24cd6fc86f1fdccaa3ee1d48708";
+    sha256 = "sha256-o96SYel1Nbg7uGB7DaLH0DEmZQ+v6isniWV7Ipwkay4=";
   };
 
   checkInputs = [ glibcLocales ];
diff --git a/nixpkgs/pkgs/development/python-modules/systemd/default.nix b/nixpkgs/pkgs/development/python-modules/systemd/default.nix
index f0be01b92d89..2035ce8b26ba 100644
--- a/nixpkgs/pkgs/development/python-modules/systemd/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/systemd/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchFromGitHub, systemd, pkgconfig }:
+{ lib, stdenv, buildPythonPackage, fetchFromGitHub, systemd, pkg-config }:
 
 buildPythonPackage rec {
   pname = "systemd";
@@ -12,11 +12,11 @@ buildPythonPackage rec {
   };
 
   buildInputs = [ systemd ];
-  nativeBuildInputs = [ pkgconfig ];
+  nativeBuildInputs = [ pkg-config ];
 
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Python module for native access to the systemd facilities";
     homepage = "http://www.freedesktop.org/software/systemd/python-systemd/";
     license = licenses.lgpl21;
diff --git a/nixpkgs/pkgs/development/python-modules/sysv_ipc/default.nix b/nixpkgs/pkgs/development/python-modules/sysv_ipc/default.nix
index 1c2e3baa526b..87a81e4fb17d 100644
--- a/nixpkgs/pkgs/development/python-modules/sysv_ipc/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/sysv_ipc/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 }:
@@ -12,7 +12,7 @@ buildPythonPackage rec {
     sha256 = "1p5lx3yz4p40rfb453m80a4hh8341yp4dki2nhhxz7bq2zfi1zwf";
   };
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "SysV IPC primitives (semaphores, shared memory and message queues)";
     license = licenses.bsd3;
     homepage = "http://semanchuk.com/philip/sysv_ipc/";
diff --git a/nixpkgs/pkgs/development/python-modules/tables/3.5.nix b/nixpkgs/pkgs/development/python-modules/tables/3.5.nix
index bf0eb51c851c..efc47a1ad3f4 100644
--- a/nixpkgs/pkgs/development/python-modules/tables/3.5.nix
+++ b/nixpkgs/pkgs/development/python-modules/tables/3.5.nix
@@ -1,8 +1,6 @@
-{ stdenv, lib, fetchPypi, python, buildPythonPackage
+{ lib, fetchPypi, python, buildPythonPackage
 , cython, bzip2, lzo, numpy, numexpr, hdf5, six, c-blosc, mock }:
 
-with stdenv.lib;
-
 buildPythonPackage rec {
   version = "3.5.2";
   pname = "tables";
@@ -18,10 +16,10 @@ buildPythonPackage rec {
   # The setup script complains about missing run-paths, but they are
   # actually set.
   setupPyBuildFlags = [
-    "--hdf5=${getDev hdf5}"
-    "--lzo=${getDev lzo}"
-    "--bzip2=${getDev bzip2}"
-    "--blosc=${getDev c-blosc}"
+    "--hdf5=${lib.getDev hdf5}"
+    "--lzo=${lib.getDev lzo}"
+    "--bzip2=${lib.getDev bzip2}"
+    "--blosc=${lib.getDev c-blosc}"
   ];
   # Run the test suite.
   # It requires the build path to be in the python search path.
@@ -50,9 +48,9 @@ buildPythonPackage rec {
   # Disable tests until the failure described above is fixed.
   doCheck = false;
 
-  meta = {
+  meta = with lib; {
     description = "Hierarchical datasets for Python";
     homepage = "http://www.pytables.org/";
-    license = stdenv.lib.licenses.bsd2;
+    license = licenses.bsd2;
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/tables/default.nix b/nixpkgs/pkgs/development/python-modules/tables/default.nix
index cd2af0dc28d6..fe49ab4d9ed6 100644
--- a/nixpkgs/pkgs/development/python-modules/tables/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/tables/default.nix
@@ -1,8 +1,6 @@
-{ stdenv, lib, fetchPypi, python, buildPythonPackage, isPy38
+{ lib, fetchPypi, python, buildPythonPackage, isPy38
 , cython, bzip2, lzo, numpy, numexpr, hdf5, six, c-blosc, mock }:
 
-with stdenv.lib;
-
 buildPythonPackage rec {
   version = "3.6.1";
   pname = "tables";
@@ -30,10 +28,10 @@ buildPythonPackage rec {
   # The setup script complains about missing run-paths, but they are
   # actually set.
   setupPyBuildFlags = [
-    "--hdf5=${getDev hdf5}"
-    "--lzo=${getDev lzo}"
-    "--bzip2=${getDev bzip2}"
-    "--blosc=${getDev c-blosc}"
+    "--hdf5=${lib.getDev hdf5}"
+    "--lzo=${lib.getDev lzo}"
+    "--bzip2=${lib.getDev bzip2}"
+    "--blosc=${lib.getDev c-blosc}"
   ];
   # Run the test suite.
   # It requires the build path to be in the python search path.
@@ -62,9 +60,9 @@ buildPythonPackage rec {
   # Disable tests until the failure described above is fixed.
   doCheck = false;
 
-  meta = {
+  meta = with lib; {
     description = "Hierarchical datasets for Python";
     homepage = "http://www.pytables.org/";
-    license = stdenv.lib.licenses.bsd2;
+    license = licenses.bsd2;
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/tarman/default.nix b/nixpkgs/pkgs/development/python-modules/tarman/default.nix
index f2a503cb55d8..682da22ced8a 100644
--- a/nixpkgs/pkgs/development/python-modules/tarman/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/tarman/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , isPy3k
@@ -25,7 +25,7 @@ buildPythonPackage rec {
   # tests are still failing
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://github.com/matejc/tarman";
     description = "Archive manager with curses interface";
     license = licenses.bsd0;
diff --git a/nixpkgs/pkgs/development/python-modules/tasklib/default.nix b/nixpkgs/pkgs/development/python-modules/tasklib/default.nix
index 319dd98234d2..591f4cdabe96 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.2.1";
+  version = "2.3.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "21525a34469928876b64edf8abf79cf788bb3fa796d4554ba22a68bc1f0693f5";
+    sha256 = "7fe8676acb4559129c4e958be7704c12dccdbae302fff47c5398bc0dd1c9e563";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/taskw/default.nix b/nixpkgs/pkgs/development/python-modules/taskw/default.nix
index ee9a9716d117..5a1358947130 100644
--- a/nixpkgs/pkgs/development/python-modules/taskw/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/taskw/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , nose
@@ -31,7 +31,7 @@ buildPythonPackage rec {
   buildInputs = [ nose pkgs.taskwarrior tox ];
   propagatedBuildInputs = [ six dateutil kitchen pytz ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage =  "https://github.com/ralphbean/taskw";
     description = "Python bindings for your taskwarrior database";
     license = licenses.gpl3Plus;
diff --git a/nixpkgs/pkgs/development/python-modules/tatsu/default.nix b/nixpkgs/pkgs/development/python-modules/tatsu/default.nix
index 922ca1b9b957..cba34a95a7bd 100644
--- a/nixpkgs/pkgs/development/python-modules/tatsu/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/tatsu/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchFromGitHub, pythonOlder
+{ lib, stdenv, buildPythonPackage, fetchFromGitHub, pythonOlder
 , colorama, mypy, pyyaml, regex
 , dataclasses, typing
 , pytestrunner, pytest-mypy
@@ -25,15 +25,15 @@ buildPythonPackage rec {
 
   nativeBuildInputs = [ pytestrunner ];
   propagatedBuildInputs = [ colorama mypy pyyaml regex ]
-    ++ stdenv.lib.optionals (pythonOlder "3.7") [ dataclasses ]
-    ++ stdenv.lib.optionals (pythonOlder "3.5") [ typing ];
+    ++ lib.optionals (pythonOlder "3.7") [ dataclasses ]
+    ++ lib.optionals (pythonOlder "3.5") [ typing ];
   checkInputs = [ pytest-mypy ];
 
   checkPhase = ''
     pytest test/
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Generates Python parsers from grammars in a variation of EBNF";
     longDescription = ''
       TatSu (the successor to Grako) is a tool that takes grammars in a
diff --git a/nixpkgs/pkgs/development/python-modules/tblib/default.nix b/nixpkgs/pkgs/development/python-modules/tblib/default.nix
index 86992e6e16aa..7e704e0b2c60 100644
--- a/nixpkgs/pkgs/development/python-modules/tblib/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/tblib/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi }:
+{ lib, stdenv, buildPythonPackage, fetchPypi }:
 
 buildPythonPackage rec {
   pname = "tblib";
@@ -9,7 +9,7 @@ buildPythonPackage rec {
     sha256 = "059bd77306ea7b419d4f76016aef6d7027cc8a0785579b5aad198803435f882c";
   };
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Traceback fiddling library. Allows you to pickle tracebacks.";
     homepage = "https://github.com/ionelmc/python-tblib";
     license = licenses.bsd2;
diff --git a/nixpkgs/pkgs/development/python-modules/tbm-utils/default.nix b/nixpkgs/pkgs/development/python-modules/tbm-utils/default.nix
index 2d0efeceda04..bcc5cbbef946 100644
--- a/nixpkgs/pkgs/development/python-modules/tbm-utils/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/tbm-utils/default.nix
@@ -5,17 +5,15 @@
 , pendulum
 , pprintpp
 , wrapt
-, pythonOlder
 }:
 
 buildPythonPackage rec {
   pname = "tbm-utils";
   version = "2.6.0";
-  disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "235748cceeb22c042e32d2fdfd4d710021bac9b938c4f2c35e1fce1cfd58f7ec";
+    sha256 = "1v7pb3yirkhzbv1z5i1qp74vl880f56zvzfj68p08b5jxv64hmr3";
   };
 
   propagatedBuildInputs = [ attrs pendulum pprintpp wrapt ];
@@ -24,7 +22,7 @@ buildPythonPackage rec {
   # issues with package failing to build from source, but nixpkgs is better
   postPatch = ''
     substituteInPlace setup.py \
-      --replace "pendulum>=2.0,<=3.0,!=2.0.5,!=2.1.0" "pendulum>=2.0,<=3.0"
+      --replace "'attrs>=18.2,<19.4'" "'attrs'"
   '';
 
   # No tests in archive.
diff --git a/nixpkgs/pkgs/development/python-modules/telegram/default.nix b/nixpkgs/pkgs/development/python-modules/telegram/default.nix
index 6074f479071e..95293d095fd5 100644
--- a/nixpkgs/pkgs/development/python-modules/telegram/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/telegram/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 }:
@@ -12,7 +12,7 @@ buildPythonPackage rec {
     sha256 = "1495l2ml8mg120wfvqhikqkfczhwwaby40vdmsz8v2l69jps01fl";
   };
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://github.com/liluo/telegram";
     description = "Telegram APIs";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/tenacity/default.nix b/nixpkgs/pkgs/development/python-modules/tenacity/default.nix
index 18570c90c00f..51f055d06607 100644
--- a/nixpkgs/pkgs/development/python-modules/tenacity/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/tenacity/default.nix
@@ -5,11 +5,11 @@
 
 buildPythonPackage rec {
   pname = "tenacity";
-  version = "6.2.0";
+  version = "6.3.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "16ikf6n6dw1kzncs6vjc4iccl76f9arln59jhiiai27lzbkr1bi9";
+    sha256 = "0zsdajdpcjd7inrl7r9pwiyh7qpgh9jk7g2bj1iva2d3n0gijkg1";
   };
 
   nativeBuildInputs = [ pbr setuptools_scm ];
diff --git a/nixpkgs/pkgs/development/python-modules/tensorboard-plugin-profile/default.nix b/nixpkgs/pkgs/development/python-modules/tensorboard-plugin-profile/default.nix
new file mode 100644
index 000000000000..1ae1aa471be5
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/tensorboard-plugin-profile/default.nix
@@ -0,0 +1,31 @@
+{ lib, fetchPypi, buildPythonPackage
+, gviz-api
+, protobuf
+, werkzeug
+}:
+
+buildPythonPackage rec {
+  pname = "tensorboard_plugin_profile";
+  version = "2.4.0";
+  format = "wheel";
+
+  src = fetchPypi {
+    inherit pname version;
+    format = "wheel";
+    python = "py3";
+    sha256 = "0z6dcjvkk3pzmmmjxi2ybawnfshz5qa3ga92kqj69ld1g9k3i9bj";
+  };
+
+  propagatedBuildInputs = [
+    gviz-api
+    protobuf
+    werkzeug
+  ];
+
+  meta = with lib; {
+    description = "Profile Tensorboard Plugin.";
+    homepage = http://tensorflow.org;
+    license = licenses.asl20;
+    maintainers = with maintainers; [ ndl ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/tensorboard-plugin-wit/default.nix b/nixpkgs/pkgs/development/python-modules/tensorboard-plugin-wit/default.nix
new file mode 100644
index 000000000000..b0966ca2c7c0
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/tensorboard-plugin-wit/default.nix
@@ -0,0 +1,22 @@
+{ lib, fetchPypi, buildPythonPackage
+}:
+
+buildPythonPackage rec {
+  pname = "tensorboard_plugin_wit";
+  version = "1.7.0";
+  format = "wheel";
+
+  src = fetchPypi {
+    inherit pname version;
+    format = "wheel";
+    python = "py3";
+    sha256 = "0nv855qm2fav70lndsrv810pqgg41sbmd70fk86wk18ih825yxzf";
+  };
+
+  meta = with lib; {
+    description = "What-If Tool TensorBoard plugin.";
+    homepage = http://tensorflow.org;
+    license = licenses.asl20;
+    maintainers = with maintainers; [ ndl ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/tensorflow-estimator/1/default.nix b/nixpkgs/pkgs/development/python-modules/tensorflow-estimator/1/default.nix
deleted file mode 100644
index c34d6948d89e..000000000000
--- a/nixpkgs/pkgs/development/python-modules/tensorflow-estimator/1/default.nix
+++ /dev/null
@@ -1,30 +0,0 @@
-{ stdenv, fetchPypi, buildPythonPackage
-, numpy
-, absl-py
-, mock
-}:
-
-buildPythonPackage rec {
-  pname = "tensorflow-estimator";
-  # This is effectively 1.15.0. Upstream tagged 1.15.0 by mistake before
-  # actually updating the version in setup.py, which is why this tag is called
-  # 1.15.1.
-  version = "1.15.1";
-  format = "wheel";
-
-  src = fetchPypi {
-    pname = "tensorflow_estimator";
-    inherit version format;
-    sha256 = "1fc61wmc0w22frs79j2x4g6wnv5g21xc6rix1g4bsvy9qfvvylw8";
-  };
-
-  propagatedBuildInputs = [ mock numpy absl-py ];
-
-  meta = with stdenv.lib; {
-    description = "TensorFlow Estimator is a high-level API that encapsulates model training, evaluation, prediction, and exporting.";
-    homepage = "http://tensorflow.org";
-    license = licenses.asl20;
-    maintainers = with maintainers; [ jyp ];
-  };
-}
-
diff --git a/nixpkgs/pkgs/development/python-modules/tensorflow-estimator/2/default.nix b/nixpkgs/pkgs/development/python-modules/tensorflow-estimator/default.nix
index 750ef6e8a907..bca75224fa3e 100644
--- a/nixpkgs/pkgs/development/python-modules/tensorflow-estimator/2/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/tensorflow-estimator/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchPypi, buildPythonPackage
+{ lib, stdenv, fetchPypi, buildPythonPackage
 , numpy
 , absl-py
 , mock
@@ -6,18 +6,18 @@
 
 buildPythonPackage rec {
   pname = "tensorflow-estimator";
-  version = "2.3.0";
+  version = "2.4.0";
   format = "wheel";
 
   src = fetchPypi {
     pname = "tensorflow_estimator";
     inherit version format;
-    sha256 = "11n4sl9wfr00fv1i837b7a36ink86ggmlsgj7i06kcfc011h6pmp";
+    sha256 = "1w0pkcslm6934qqd6m5gxyjdlnb4pbl47k6s99wsh6dyvvr7nysv";
   };
 
   propagatedBuildInputs = [ mock numpy absl-py ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "TensorFlow Estimator is a high-level API that encapsulates model training, evaluation, prediction, and exporting.";
     homepage = "http://tensorflow.org";
     license = licenses.asl20;
diff --git a/nixpkgs/pkgs/development/python-modules/tensorflow-probability/default.nix b/nixpkgs/pkgs/development/python-modules/tensorflow-probability/default.nix
index a89c6fa307ea..91880562eb3a 100644
--- a/nixpkgs/pkgs/development/python-modules/tensorflow-probability/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/tensorflow-probability/default.nix
@@ -122,9 +122,10 @@ in buildPythonPackage {
   '';
 
   meta = with lib; {
+    broken = true;  # tf-probability 0.8.0 is not compatible with tensorflow 2.3.2
     description = "Library for probabilistic reasoning and statistical analysis";
     homepage = "https://www.tensorflow.org/probability/";
     license = licenses.asl20;
-    maintainers = with maintainers; [ timokau ];
+    maintainers = with maintainers; [];  # This package is maintainerless.
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/tensorflow-tensorboard/1/default.nix b/nixpkgs/pkgs/development/python-modules/tensorflow-tensorboard/1/default.nix
index 6cc3636b7f30..f58b1a207719 100644
--- a/nixpkgs/pkgs/development/python-modules/tensorflow-tensorboard/1/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/tensorflow-tensorboard/1/default.nix
@@ -20,8 +20,7 @@ buildPythonPackage rec {
 
   src = fetchPypi ({
     pname = "tensorboard";
-    inherit version;
-    format = "wheel";
+    inherit version format;
   } // (if isPy3k then {
     python = "py3";
     sha256 = "1g62i3nrgp8q9wfsyqqjkkfnsz7x2k018c26kdh527h1yrjjrbac";
diff --git a/nixpkgs/pkgs/development/python-modules/tensorflow-tensorboard/2/default.nix b/nixpkgs/pkgs/development/python-modules/tensorflow-tensorboard/default.nix
index 945896dda018..031254205066 100644
--- a/nixpkgs/pkgs/development/python-modules/tensorflow-tensorboard/2/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/tensorflow-tensorboard/default.nix
@@ -5,9 +5,10 @@
 , protobuf
 , grpcio
 , markdown
-, futures
 , absl-py
 , google-auth-oauthlib
+, tensorboard-plugin-wit
+, tensorboard-plugin-profile
 }:
 
 # tensorflow/tensorboard is built from a downloaded wheel, because
@@ -16,20 +17,16 @@
 
 buildPythonPackage rec {
   pname = "tensorflow-tensorboard";
-  version = "2.1.0";
+  version = "2.4.0";
   format = "wheel";
+  disabled = !isPy3k;
 
-  src = fetchPypi ({
+  src = fetchPypi {
     pname = "tensorboard";
-    inherit version;
-    format = "wheel";
-  } // (if isPy3k then {
+    inherit version format;
     python = "py3";
-    sha256 = "1wpjdzhjpcdkyaahzd4bl71k4l30z5c55280ndiwj32hw70lxrp6";
-  } else {
-    python = "py2";
-    sha256 = "1f805839xa36wxb7xac9fyxzaww92vw4d50vs6g61wnlr4byp00w";
-  }));
+    sha256 = "0f17h6i398n8maam0r3rssqvdqnqbwjyf96nnhf482anm1iwdq6d";
+  };
 
   propagatedBuildInputs = [
     numpy
@@ -39,10 +36,12 @@ buildPythonPackage rec {
     grpcio
     absl-py
     google-auth-oauthlib
+    tensorboard-plugin-profile
+    tensorboard-plugin-wit
     # not declared in install_requires, but used at runtime
     # https://github.com/NixOS/nixpkgs/issues/73840
     wheel
-  ] ++ lib.optional (!isPy3k) futures;
+  ];
 
   # in the absence of a real test suite, run cli and imports
   checkPhase = ''
diff --git a/nixpkgs/pkgs/development/python-modules/tensorflow/1/bin.nix b/nixpkgs/pkgs/development/python-modules/tensorflow/1/bin.nix
deleted file mode 100644
index 5c93e957f7c1..000000000000
--- a/nixpkgs/pkgs/development/python-modules/tensorflow/1/bin.nix
+++ /dev/null
@@ -1,120 +0,0 @@
-{ stdenv
-, lib
-, fetchurl
-, buildPythonPackage
-, isPy3k, pythonOlder, pythonAtLeast
-, astor
-, gast
-, google-pasta
-, wrapt
-, numpy
-, six
-, termcolor
-, protobuf
-, absl-py
-, grpcio
-, mock
-, backports_weakref
-, tensorflow-estimator_1
-, tensorflow-tensorboard
-, cudaSupport ? false
-, cudatoolkit ? null
-, cudnn ? null
-, nvidia_x11 ? null
-, zlib
-, python
-, symlinkJoin
-, keras-applications
-, keras-preprocessing
-, addOpenGLRunpath
-}:
-
-# We keep this binary build for two reasons:
-# - the source build doesn't work on Darwin.
-# - the source build is currently brittle and not easy to maintain
-
-assert cudaSupport -> cudatoolkit != null
-                   && cudnn != null
-                   && nvidia_x11 != null;
-
-# unsupported combination
-assert ! (stdenv.isDarwin && cudaSupport);
-
-let
-  packages = import ./binary-hashes.nix;
-
-  variant = if cudaSupport then "-gpu" else "";
-  pname = "tensorflow${variant}";
-
-in buildPythonPackage {
-  inherit pname;
-  inherit (packages) version;
-  format = "wheel";
-  disabled = pythonAtLeast "3.8";
-
-  src = let
-    pyVerNoDot = lib.strings.stringAsChars (x: if x == "." then "" else x) python.pythonVersion;
-    pyver = if stdenv.isDarwin then builtins.substring 0 1 pyVerNoDot else pyVerNoDot;
-    platform = if stdenv.isDarwin then "mac" else "linux";
-    unit = if cudaSupport then "gpu" else "cpu";
-    key = "${platform}_py_${pyver}_${unit}";
-  in fetchurl packages.${key};
-
-  propagatedBuildInputs = [
-    protobuf
-    numpy
-    termcolor
-    grpcio
-    six
-    astor
-    absl-py
-    gast
-    google-pasta
-    wrapt
-    tensorflow-estimator_1
-    tensorflow-tensorboard
-    keras-applications
-    keras-preprocessing
-  ] ++ lib.optional (!isPy3k) mock
-    ++ lib.optionals (pythonOlder "3.4") [ backports_weakref ];
-
-  nativeBuildInputs = lib.optional cudaSupport addOpenGLRunpath;
-
-  # Upstream has a pip hack that results in bin/tensorboard being in both tensorflow
-  # and the propageted input tensorflow-tensorboard which causes environment collisions.
-  # another possibility would be to have tensorboard only in the buildInputs
-  # https://github.com/tensorflow/tensorflow/blob/v1.7.1/tensorflow/tools/pip_package/setup.py#L79
-  postInstall = ''
-    rm $out/bin/tensorboard
-  '';
-
-  # Note that we need to run *after* the fixup phase because the
-  # libraries are loaded at runtime. If we run in preFixup then
-  # patchelf --shrink-rpath will remove the cuda libraries.
-  postFixup = let
-    rpath = stdenv.lib.makeLibraryPath
-      ([ stdenv.cc.cc.lib zlib ] ++ lib.optionals cudaSupport [ cudatoolkit.out cudatoolkit.lib cudnn nvidia_x11 ]);
-  in
-  lib.optionalString stdenv.isLinux ''
-    rrPath="$out/${python.sitePackages}/tensorflow/:$out/${python.sitePackages}/tensorflow/contrib/tensor_forest/:${rpath}"
-    internalLibPath="$out/${python.sitePackages}/tensorflow/python/_pywrap_tensorflow_internal.so"
-    find $out -type f \( -name '*.so' -or -name '*.so.*' \) | while read lib; do
-      patchelf --set-rpath "$rrPath" "$lib"
-      ${lib.optionalString cudaSupport ''
-        addOpenGLRunpath "$lib"
-      ''}
-    done
-  '';
-
-
-  meta = with stdenv.lib; {
-    description = "Computation using data flow graphs for scalable machine learning";
-    homepage = "http://tensorflow.org";
-    license = licenses.asl20;
-    maintainers = with maintainers; [ jyp abbradar ];
-    platforms = [ "x86_64-linux" "x86_64-darwin" ];
-    # Python 2.7 build uses different string encoding.
-    # See https://github.com/NixOS/nixpkgs/pull/37044#issuecomment-373452253
-    broken = stdenv.isDarwin && !isPy3k;
-  };
-}
diff --git a/nixpkgs/pkgs/development/python-modules/tensorflow/1/binary-hashes.nix b/nixpkgs/pkgs/development/python-modules/tensorflow/1/binary-hashes.nix
deleted file mode 100644
index fa4809dc3f19..000000000000
--- a/nixpkgs/pkgs/development/python-modules/tensorflow/1/binary-hashes.nix
+++ /dev/null
@@ -1,43 +0,0 @@
-{
-version = "1.14.0";
-linux_py_27_cpu = {
-  url = "https://storage.googleapis.com/tensorflow/linux/cpu/tensorflow-1.14.0-cp27-none-linux_x86_64.whl";
-  sha256 = "0yywdrfk97dh1bxhibspg0raz70fx9lcczj6xlimqy4xb60clx7k";
-};
-linux_py_35_cpu = {
-  url = "https://storage.googleapis.com/tensorflow/linux/cpu/tensorflow-1.14.0-cp35-cp35m-linux_x86_64.whl";
-  sha256 = "1xvyb6xcrjhlwvrmrhn5vs9xy7g98smqmpv4i3hhpry4qyasphhj";
-};
-linux_py_36_cpu = {
-  url = "https://storage.googleapis.com/tensorflow/linux/cpu/tensorflow-1.14.0-cp36-cp36m-linux_x86_64.whl";
-  sha256 = "1psd9vyxz9f39dwj77nvrg373sxv3p5vdp9fnz81dpsm0b0mwl44";
-};
-linux_py_37_cpu = {
-  url = "https://storage.googleapis.com/tensorflow/linux/cpu/tensorflow-1.14.0-cp37-cp37m-linux_x86_64.whl";
-  sha256 = "0bg2sb1n2ag27r7ww695kg5hb0mjrw4kc5893krmixx2j71860c5";
-};
-linux_py_27_gpu = {
-  url = "https://storage.googleapis.com/tensorflow/linux/gpu/tensorflow_gpu-1.14.0-cp27-none-linux_x86_64.whl";
-  sha256 = "0y1x91gayg6pjddgl8ndcm63wfzhyv4s5khgl7ffzsgni1ivaqw5";
-};
-linux_py_35_gpu = {
-  url = "https://storage.googleapis.com/tensorflow/linux/gpu/tensorflow_gpu-1.14.0-cp35-cp35m-linux_x86_64.whl";
-  sha256 = "03piggpbz1jx8m2b95spq3jrdff4w6xx63ji07am7hyw2nsgx3mx";
-};
-linux_py_36_gpu = {
-  url = "https://storage.googleapis.com/tensorflow/linux/gpu/tensorflow_gpu-1.14.0-cp36-cp36m-linux_x86_64.whl";
-  sha256 = "0ypkp8cfhharsyyikb1qgf44cfm6284km9xswzvzymjzz75vg3gd";
-};
-linux_py_37_gpu = {
-  url = "https://storage.googleapis.com/tensorflow/linux/gpu/tensorflow_gpu-1.14.0-cp37-cp37m-linux_x86_64.whl";
-  sha256 = "0virp8nn2ysx4855hq29kas6fm6b3dsiybwzdxy9nnb9n2d8qlm2";
-};
-mac_py_2_cpu = {
-  url = "https://storage.googleapis.com/tensorflow/mac/cpu/tensorflow-1.14.0-py2-none-any.whl";
-  sha256 = "14f86k3pgq7z6i4s4im55zpp38f0drnm7xlclavsgcc0nxnj3z26";
-};
-mac_py_3_cpu = {
-  url = "https://storage.googleapis.com/tensorflow/mac/cpu/tensorflow-1.14.0-py3-none-any.whl";
-  sha256 = "0f3swpcjfgqhj6h5wnx8snc0xjkx4hnkqx83fmlrwpncs8c131d3";
-};
-}
diff --git a/nixpkgs/pkgs/development/python-modules/tensorflow/1/default.nix b/nixpkgs/pkgs/development/python-modules/tensorflow/1/default.nix
deleted file mode 100644
index 4dd30e4687ad..000000000000
--- a/nixpkgs/pkgs/development/python-modules/tensorflow/1/default.nix
+++ /dev/null
@@ -1,456 +0,0 @@
-{ stdenv, pkgs, bazel_0_26, buildBazelPackage, lib, fetchFromGitHub, fetchpatch, symlinkJoin
-, addOpenGLRunpath
-# Python deps
-, buildPythonPackage, isPy3k, isPy27, pythonOlder, pythonAtLeast, python
-# Python libraries
-, numpy, tensorflow-tensorboard_1, backports_weakref, mock, enum34, absl-py
-, future, setuptools, wheel, keras-preprocessing, keras-applications, google-pasta
-, functools32
-, opt-einsum
-, termcolor, grpcio, six, wrapt, protobuf, tensorflow-estimator_1
-# Common deps
-, git, swig, which, binutils, glibcLocales, cython
-# Common libraries
-, jemalloc, openmpi, astor, gast, grpc, sqlite, openssl, jsoncpp, re2
-, curl, snappy, flatbuffers, icu, double-conversion, libpng, libjpeg, giflib
-# Upsteam by default includes cuda support since tensorflow 1.15. We could do
-# that in nix as well. It would make some things easier and less confusing, but
-# it would also make the default tensorflow package unfree. See
-# https://groups.google.com/a/tensorflow.org/forum/#!topic/developers/iRCt5m4qUz0
-, cudaSupport ? false, nvidia_x11 ? null, cudatoolkit ? null, cudnn ? null, nccl ? null
-, mklSupport ? false, mkl ? null
-# XLA without CUDA is broken
-, xlaSupport ? cudaSupport
-# Default from ./configure script
-, cudaCapabilities ? [ "3.5" "5.2" ]
-, sse42Support ? stdenv.hostPlatform.sse4_2Support
-, avx2Support  ? stdenv.hostPlatform.avx2Support
-, fmaSupport   ? stdenv.hostPlatform.fmaSupport
-# Darwin deps
-, Foundation, Security
-}:
-
-assert cudaSupport -> nvidia_x11 != null
-                   && cudatoolkit != null
-                   && cudnn != null;
-
-# unsupported combination
-assert ! (stdenv.isDarwin && cudaSupport);
-
-assert mklSupport -> mkl != null;
-
-let
-  withTensorboard = pythonOlder "3.6";
-
-  cudatoolkit_joined = symlinkJoin {
-    name = "${cudatoolkit.name}-merged";
-    paths = [
-      cudatoolkit.lib
-      cudatoolkit.out
-      # for some reason some of the required libs are in the targets/x86_64-linux
-      # directory; not sure why but this works around it
-      "${cudatoolkit}/targets/${stdenv.system}"
-    ];
-  };
-
-  cudatoolkit_cc_joined = symlinkJoin {
-    name = "${cudatoolkit.cc.name}-merged";
-    paths = [
-      cudatoolkit.cc
-      binutils.bintools # for ar, dwp, nm, objcopy, objdump, strip
-    ];
-  };
-
-  # Needed for _some_ system libraries, grep INCLUDEDIR.
-  includes_joined = symlinkJoin {
-    name = "tensorflow-deps-merged";
-    paths = [
-      pkgs.protobuf
-      jsoncpp
-    ];
-  };
-
-  tfFeature = x: if x then "1" else "0";
-
-  version = "1.15.4";
-  variant = if cudaSupport then "-gpu" else "";
-  pname = "tensorflow${variant}";
-
-  pythonEnv = python.withPackages (_:
-    [ # python deps needed during wheel build time (not runtime, see the buildPythonPackage part for that)
-      numpy
-      keras-preprocessing
-      protobuf
-      wrapt
-      gast
-      astor
-      absl-py
-      termcolor
-      keras-applications
-      setuptools
-      wheel
-  ] ++ lib.optionals (!isPy3k)
-  [ future
-    functools32
-    mock
-  ]);
-
-  bazel-build = buildBazelPackage {
-    name = "${pname}-${version}";
-    bazel = bazel_0_26;
-
-    src = fetchFromGitHub {
-      owner = "tensorflow";
-      repo = "tensorflow";
-      rev = "v${version}";
-      sha256 = "0lg8ahyr2k7dmp0yfypk8ivl9a0xcg3j0f0dakmn5ljk8nsji0bj";
-    };
-
-    patches = [
-      # Work around https://github.com/tensorflow/tensorflow/issues/24752
-      ../no-saved-proto.patch
-      # Fixes for NixOS jsoncpp
-      ../system-jsoncpp.patch
-
-      # https://github.com/tensorflow/tensorflow/pull/29673
-      (fetchpatch {
-        name = "fix-compile-with-cuda-and-mpi.patch";
-        url = "https://github.com/tensorflow/tensorflow/pull/29673/commits/498e35a3bfe38dd75cf1416a1a23c07c3b59e6af.patch";
-        sha256 = "1m2qmwv1ysqa61z6255xggwbq6mnxbig749bdvrhnch4zydxb4di";
-      })
-      (fetchpatch {
-        name = "backport-pr-18950.patch";
-        url = "https://github.com/tensorflow/tensorflow/commit/73640aaec2ab0234d9fff138e3c9833695570c0a.patch";
-        sha256 = "1n9ypbrx36fc1kc9cz5b3p9qhg15xxhq4nz6ap3hwqba535nakfz";
-      })
-
-      (fetchpatch {
-        # be compatible with gast >0.2 instead of only gast 0.2.2
-        name = "gast-update.patch";
-        url = "https://github.com/tensorflow/tensorflow/commit/85751ad6c7f5fd12c6c79545d96896cba92fa8b4.patch";
-        sha256 = "077cpj0kzyqxzdya1dwh8df17zfzhqn7c685hx6iskvw2979zg2n";
-      })
-      ./lift-gast-restriction.patch
-
-      (fetchpatch {
-        # fix compilation with numpy >= 1.19
-        name = "add-const-overload.patch";
-        url = "https://github.com/tensorflow/tensorflow/commit/75ea0b31477d6ba9e990e296bbbd8ca4e7eebadf.patch";
-        sha256 = "1xp1icacig0xm0nmb05sbrf4nw4xbln9fhc308birrv8286zx7wv";
-      })
-
-      # cuda 10.2 does not have "-bin2c-path" option anymore
-      # https://github.com/tensorflow/tensorflow/issues/34429
-      ../cuda-10.2-no-bin2c-path.patch
-    ];
-
-    # On update, it can be useful to steal the changes from gentoo
-    # https://gitweb.gentoo.org/repo/gentoo.git/tree/sci-libs/tensorflow
-
-    nativeBuildInputs = [
-      swig which pythonEnv
-    ] ++ lib.optional cudaSupport addOpenGLRunpath;
-
-    buildInputs = [
-      jemalloc
-      openmpi
-      glibcLocales
-      git
-
-      # libs taken from system through the TF_SYS_LIBS mechanism
-      # grpc
-      sqlite
-      openssl
-      jsoncpp
-      pkgs.protobuf
-      curl
-      snappy
-      flatbuffers
-      icu
-      double-conversion
-      libpng
-      libjpeg
-      giflib
-      re2
-      pkgs.lmdb
-    ] ++ lib.optionals cudaSupport [
-      cudatoolkit
-      cudnn
-      nvidia_x11
-    ] ++ lib.optionals mklSupport [
-      mkl
-    ] ++ lib.optionals stdenv.isDarwin [
-      Foundation
-      Security
-    ];
-
-    # arbitrarily set to the current latest bazel version, overly careful
-    TF_IGNORE_MAX_BAZEL_VERSION = true;
-
-    # Take as many libraries from the system as possible. Keep in sync with
-    # list of valid syslibs in
-    # https://github.com/tensorflow/tensorflow/blob/master/third_party/systemlibs/syslibs_configure.bzl
-    TF_SYSTEM_LIBS = lib.concatStringsSep "," [
-      "absl_py"
-      "astor_archive"
-      "boringssl"
-      # Not packaged in nixpkgs
-      # "com_github_googleapis_googleapis"
-      # "com_github_googlecloudplatform_google_cloud_cpp"
-      "com_google_protobuf"
-      "com_googlesource_code_re2"
-      "curl"
-      "cython"
-      "double_conversion"
-      "flatbuffers"
-      "gast_archive"
-      "gif_archive"
-      # Lots of errors, requires an older version
-      # "grpc"
-      "hwloc"
-      "icu"
-      "jpeg"
-      "jsoncpp_git"
-      "keras_applications_archive"
-      "lmdb"
-      "nasm"
-      # "nsync" # not packaged in nixpkgs
-      "opt_einsum_archive"
-      "org_sqlite"
-      "pasta"
-      "pcre"
-      "png_archive"
-      "six_archive"
-      "snappy"
-      "swig"
-      "termcolor_archive"
-      "wrapt"
-      "zlib_archive"
-    ];
-
-    INCLUDEDIR = "${includes_joined}/include";
-
-    PYTHON_BIN_PATH = pythonEnv.interpreter;
-
-    TF_NEED_GCP = true;
-    TF_NEED_HDFS = true;
-    TF_ENABLE_XLA = tfFeature xlaSupport;
-
-    CC_OPT_FLAGS = " ";
-
-    # https://github.com/tensorflow/tensorflow/issues/14454
-    TF_NEED_MPI = tfFeature cudaSupport;
-
-    TF_NEED_CUDA = tfFeature cudaSupport;
-    TF_CUDA_PATHS = lib.optionalString cudaSupport "${cudatoolkit_joined},${cudnn},${nccl}";
-    GCC_HOST_COMPILER_PREFIX = lib.optionalString cudaSupport "${cudatoolkit_cc_joined}/bin";
-    GCC_HOST_COMPILER_PATH = lib.optionalString cudaSupport "${cudatoolkit_cc_joined}/bin/gcc";
-    TF_CUDA_COMPUTE_CAPABILITIES = lib.concatStringsSep "," cudaCapabilities;
-
-    postPatch = ''
-      # https://github.com/tensorflow/tensorflow/issues/20919
-      sed -i '/androidndk/d' tensorflow/lite/kernels/internal/BUILD
-
-      # Tensorboard pulls in a bunch of dependencies, some of which may
-      # include security vulnerabilities. So we make it optional.
-      # https://github.com/tensorflow/tensorflow/issues/20280#issuecomment-400230560
-      sed -i '/tensorboard >=/d' tensorflow/tools/pip_package/setup.py
-
-      substituteInPlace tensorflow/tools/pip_package/setup.py \
-        --replace "numpy >= 1.16.0, < 1.19.0" "numpy >= 1.16.0"
-
-      # glibc 2.31+ does not have sys/sysctl.h
-      # see https://github.com/tensorflow/tensorflow/issues/45861
-      substituteInPlace third_party/hwloc/BUILD.bazel\
-        --replace "#define HAVE_SYS_SYSCTL_H 1" "#undef HAVE_SYS_SYSCTL_H"
-    '';
-
-    preConfigure = let
-      opt_flags = []
-        ++ lib.optionals sse42Support ["-msse4.2"]
-        ++ lib.optionals avx2Support ["-mavx2"]
-        ++ lib.optionals fmaSupport ["-mfma"];
-    in ''
-      patchShebangs configure
-
-      # dummy ldconfig
-      mkdir dummy-ldconfig
-      echo "#!${stdenv.shell}" > dummy-ldconfig/ldconfig
-      chmod +x dummy-ldconfig/ldconfig
-      export PATH="$PWD/dummy-ldconfig:$PATH"
-
-      export PYTHON_LIB_PATH="$NIX_BUILD_TOP/site-packages"
-      export CC_OPT_FLAGS="${lib.concatStringsSep " " opt_flags}"
-      mkdir -p "$PYTHON_LIB_PATH"
-
-      # To avoid mixing Python 2 and Python 3
-      unset PYTHONPATH
-    '';
-
-    configurePhase = ''
-      runHook preConfigure
-      ./configure
-      runHook postConfigure
-    '';
-
-    # FIXME: Tensorflow uses dlopen() for CUDA libraries.
-    NIX_LDFLAGS = lib.optionalString cudaSupport "-lcudart -lcublas -lcufft -lcurand -lcusolver -lcusparse -lcudnn";
-
-    hardeningDisable = [ "format" ];
-
-    bazelFlags = [
-      # temporary fixes to make the build work with bazel 0.27
-      "--incompatible_no_support_tools_in_action_inputs=false"
-    ];
-    bazelBuildFlags = [
-      "--config=opt" # optimize using the flags set in the configure phase
-    ]
-    ++ lib.optionals (mklSupport) [ "--config=mkl" ];
-
-    bazelTarget = "//tensorflow/tools/pip_package:build_pip_package //tensorflow/tools/lib_package:libtensorflow";
-
-    fetchAttrs = {
-      # So that checksums don't depend on these.
-      TF_SYSTEM_LIBS = null;
-
-      # cudaSupport causes fetch of ncclArchive, resulting in different hashes
-      sha256 = if cudaSupport then
-        "1bi6aydidgi943hiqj0d279jbz2g173hvafdqla1ifw2qdsm73pb"
-      else
-        "0l5510fr8n22c4hx9llr0vqqhx9wlgkyxl55fxbixhssd0ai05r4";
-    };
-
-    buildAttrs = {
-      outputs = [ "out" "python" ];
-
-      preBuild = ''
-        patchShebangs .
-      '';
-
-      installPhase = ''
-        mkdir -p "$out"
-        tar -xf bazel-bin/tensorflow/tools/lib_package/libtensorflow.tar.gz -C "$out"
-        # Write pkgconfig file.
-        mkdir "$out/lib/pkgconfig"
-        cat > "$out/lib/pkgconfig/tensorflow.pc" << EOF
-        Name: TensorFlow
-        Version: ${version}
-        Description: Library for computation using data flow graphs for scalable machine learning
-        Requires:
-        Libs: -L$out/lib -ltensorflow
-        Cflags: -I$out/include/tensorflow
-        EOF
-
-        # build the source code, then copy it to $python (build_pip_package
-        # actually builds a symlink farm so we must dereference them).
-        bazel-bin/tensorflow/tools/pip_package/build_pip_package --src "$PWD/dist"
-        cp -Lr "$PWD/dist" "$python"
-      '';
-
-      postFixup = lib.optionalString cudaSupport ''
-        find $out -type f \( -name '*.so' -or -name '*.so.*' \) | while read lib; do
-          addOpenGLRunpath "$lib"
-        done
-      '';
-    };
-
-    meta = with stdenv.lib; {
-      description = "Computation using data flow graphs for scalable machine learning";
-      homepage = "http://tensorflow.org";
-      license = licenses.asl20;
-      maintainers = with maintainers; [ jyp abbradar ];
-      platforms = with platforms; linux ++ darwin;
-      # The py2 build fails due to some issue importing protobuf. Possibly related to the fix in
-      # https://github.com/akesandgren/easybuild-easyblocks/commit/1f2e517ddfd1b00a342c6abb55aef3fd93671a2b
-      broken = !(xlaSupport -> cudaSupport) || !isPy3k;
-    };
-  };
-
-in buildPythonPackage {
-  inherit version pname;
-  disabled = isPy27 || (pythonAtLeast "3.8");
-
-  src = bazel-build.python;
-
-  # Upstream has a pip hack that results in bin/tensorboard being in both tensorflow
-  # and the propagated input tensorflow-tensorboard, which causes environment collisions.
-  # Another possibility would be to have tensorboard only in the buildInputs
-  # https://github.com/tensorflow/tensorflow/blob/v1.7.1/tensorflow/tools/pip_package/setup.py#L79
-  postInstall = ''
-    rm $out/bin/tensorboard
-  '';
-
-  setupPyGlobalFlags = [ "--project_name ${pname}" ];
-
-  # tensorflow/tools/pip_package/setup.py
-  propagatedBuildInputs = [
-    absl-py
-    astor
-    gast
-    google-pasta
-    keras-applications
-    keras-preprocessing
-    numpy
-    six
-    protobuf
-    tensorflow-estimator_1
-    termcolor
-    wrapt
-    grpcio
-    opt-einsum
-  ] ++ lib.optionals (!isPy3k) [
-    mock
-    future
-    functools32
-  ] ++ lib.optionals (pythonOlder "3.4") [
-    backports_weakref enum34
-  ] ++ lib.optionals withTensorboard [
-    tensorflow-tensorboard_1
-  ];
-
-  nativeBuildInputs = lib.optional cudaSupport addOpenGLRunpath;
-
-  postFixup = lib.optionalString cudaSupport ''
-    find $out -type f \( -name '*.so' -or -name '*.so.*' \) | while read lib; do
-      addOpenGLRunpath "$lib"
-    done
-  '';
-
-  # Actual tests are slow and impure.
-  # TODO try to run them anyway
-  # TODO better test (files in tensorflow/tools/ci_build/builds/*test)
-  checkPhase = ''
-    ${python.interpreter} <<EOF
-    # A simple "Hello world"
-    import tensorflow as tf
-    hello = tf.constant("Hello, world!")
-    sess = tf.Session()
-    sess.run(hello)
-
-    # Fit a simple model to random data
-    import numpy as np
-    np.random.seed(0)
-    tf.random.set_random_seed(0)
-    model = tf.keras.models.Sequential([
-        tf.keras.layers.Dense(1, activation="linear")
-    ])
-    model.compile(optimizer="sgd", loss="mse")
-
-    x = np.random.uniform(size=(1,1))
-    y = np.random.uniform(size=(1,))
-    model.fit(x, y, epochs=1)
-
-    # regression test for #77626
-    from tensorflow.contrib import tensor_forest
-    EOF
-  '';
-
-  passthru = {
-    deps = bazel-build.deps;
-    libtensorflow = bazel-build.out;
-  };
-
-  meta = bazel-build.meta // {
-    broken = gast.version != "0.3.2";
-  };
-}
diff --git a/nixpkgs/pkgs/development/python-modules/tensorflow/1/lift-gast-restriction.patch b/nixpkgs/pkgs/development/python-modules/tensorflow/1/lift-gast-restriction.patch
deleted file mode 100644
index 30861d923417..000000000000
--- a/nixpkgs/pkgs/development/python-modules/tensorflow/1/lift-gast-restriction.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-diff --git a/tensorflow/tools/pip_package/setup.py b/tensorflow/tools/pip_package/setup.py
-index 992f2eae22..d9386f9b13 100644
---- a/tensorflow/tools/pip_package/setup.py
-+++ b/tensorflow/tools/pip_package/setup.py
-@@ -54,7 +54,7 @@ REQUIRED_PACKAGES = [
-     'enum34 >= 1.1.6;python_version<"3.4"',
-     # functools comes with python3, need to install the backport for python2
-     'functools32 >= 3.2.3;python_version<"3"',
--    'gast == 0.2.2',
-+    'gast >= 0.2.2',
-     'google_pasta >= 0.1.6',
-     'keras_applications >= 1.0.8',
-     'keras_preprocessing >= 1.0.5',
diff --git a/nixpkgs/pkgs/development/python-modules/tensorflow/1/prefetcher.sh b/nixpkgs/pkgs/development/python-modules/tensorflow/1/prefetcher.sh
deleted file mode 100755
index d590fb0f1732..000000000000
--- a/nixpkgs/pkgs/development/python-modules/tensorflow/1/prefetcher.sh
+++ /dev/null
@@ -1,33 +0,0 @@
-#!/usr/bin/env bash
-
-version=1.14.0
-hashfile=binary-hashes.nix
-rm -f $hashfile
-echo "{" >> $hashfile
-echo "version = \"$version\";" >> $hashfile
-for sys in "linux" "mac"; do
-    for tfpref in "cpu/tensorflow" "gpu/tensorflow_gpu"; do
-        for pykind in "py2-none-any" "py3-none-any" "cp27-none-linux_x86_64" "cp35-cp35m-linux_x86_64" "cp36-cp36m-linux_x86_64" "cp37-cp37m-linux_x86_64"; do
-            if [ $sys == "mac" ]; then
-               [[ $pykind =~ py.* ]] && [[ $tfpref =~ cpu.* ]]
-               result=$?
-               pyver=${pykind:2:1}
-               flavour=cpu
-            else
-               [[ $pykind =~ .*linux.* ]]
-               result=$?
-               pyver=${pykind:2:2}
-               flavour=${tfpref:0:3}
-            fi
-            if [ $result == 0 ]; then
-                url=https://storage.googleapis.com/tensorflow/$sys/$tfpref-$version-$pykind.whl
-                hash=$(nix-prefetch-url $url)
-                echo "${sys}_py_${pyver}_${flavour} = {" >> $hashfile
-                echo "  url = \"$url\";" >> $hashfile
-                echo "  sha256 = \"$hash\";" >> $hashfile
-                echo "};" >> $hashfile
-            fi
-        done
-    done
-done
-echo "}" >> $hashfile
diff --git a/nixpkgs/pkgs/development/python-modules/tensorflow/2/relax-dependencies.patch b/nixpkgs/pkgs/development/python-modules/tensorflow/2/relax-dependencies.patch
deleted file mode 100644
index fc11a04cbdc5..000000000000
--- a/nixpkgs/pkgs/development/python-modules/tensorflow/2/relax-dependencies.patch
+++ /dev/null
@@ -1,16 +0,0 @@
-diff --git a/tensorflow/tools/pip_package/setup.py b/tensorflow/tools/pip_package/setup.py
-index 594e74f40c0..bfbf010144f 100644
---- a/tensorflow/tools/pip_package/setup.py
-+++ b/tensorflow/tools/pip_package/setup.py
-@@ -54,9 +54,9 @@ _VERSION = '2.3.1'
- REQUIRED_PACKAGES = [
-     'absl-py >= 0.7.0',
-     'astunparse == 1.6.3',
--    'gast == 0.3.3',
-+    'gast >= 0.3.3',
-     'google_pasta >= 0.1.8',
--    'h5py >= 2.10.0, < 2.11.0',
-+    'h5py >= 2.10.0',
-     'keras_preprocessing >= 1.1.1, < 1.2',
-     # TODO(mihaimaruseac): numpy 1.19.0 has ABI breakage
-     # https://github.com/numpy/numpy/pull/15355
diff --git a/nixpkgs/pkgs/development/python-modules/tensorflow/2/bin.nix b/nixpkgs/pkgs/development/python-modules/tensorflow/bin.nix
index 8dd282666a75..ef6d4f45ef9b 100644
--- a/nixpkgs/pkgs/development/python-modules/tensorflow/2/bin.nix
+++ b/nixpkgs/pkgs/development/python-modules/tensorflow/bin.nix
@@ -125,7 +125,7 @@ in buildPythonPackage {
         zlib
       ];
 
-      rpath = stdenv.lib.makeLibraryPath (libpaths ++ cudapaths);
+      rpath = lib.makeLibraryPath (libpaths ++ cudapaths);
     in
     lib.optionalString stdenv.isLinux ''
       # This is an array containing all the directories in the tensorflow2
@@ -174,7 +174,7 @@ in buildPythonPackage {
     "tensorflow.python.framework"
   ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Computation using data flow graphs for scalable machine learning";
     homepage = "http://tensorflow.org";
     license = licenses.asl20;
diff --git a/nixpkgs/pkgs/development/python-modules/tensorflow/2/binary-hashes.nix b/nixpkgs/pkgs/development/python-modules/tensorflow/binary-hashes.nix
index 90848e93273f..90848e93273f 100644
--- a/nixpkgs/pkgs/development/python-modules/tensorflow/2/binary-hashes.nix
+++ b/nixpkgs/pkgs/development/python-modules/tensorflow/binary-hashes.nix
diff --git a/nixpkgs/pkgs/development/python-modules/tensorflow/cuda-10.2-no-bin2c-path.patch b/nixpkgs/pkgs/development/python-modules/tensorflow/cuda-10.2-no-bin2c-path.patch
deleted file mode 100644
index 25f1ba7a5518..000000000000
--- a/nixpkgs/pkgs/development/python-modules/tensorflow/cuda-10.2-no-bin2c-path.patch
+++ /dev/null
@@ -1,10 +0,0 @@
---- a/third_party/nccl/build_defs.bzl.tpl
-+++ b/third_party/nccl/build_defs.bzl.tpl
-@@ -113,7 +113,6 @@ def _device_link_impl(ctx):
-             "--cmdline=--compile-only",
-             "--link",
-             "--compress-all",
--            "--bin2c-path=%s" % bin2c.dirname,
-             "--create=%s" % tmp_fatbin.path,
-             "--embedded-fatbin=%s" % fatbin_h.path,
-         ] + images,
diff --git a/nixpkgs/pkgs/development/python-modules/tensorflow/2/default.nix b/nixpkgs/pkgs/development/python-modules/tensorflow/default.nix
index 68c983c05941..9f64a689e2b8 100644
--- a/nixpkgs/pkgs/development/python-modules/tensorflow/2/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/tensorflow/default.nix
@@ -1,24 +1,25 @@
-{ stdenv, pkgs, bazel_3, buildBazelPackage, lib, fetchFromGitHub, fetchpatch, symlinkJoin
+{ stdenv, bazel_3, buildBazelPackage, isPy3k, lib, fetchFromGitHub, symlinkJoin
 , addOpenGLRunpath
 # Python deps
-, buildPythonPackage, isPy3k, isPy27, pythonOlder, pythonAtLeast, python
+, buildPythonPackage, pythonOlder, pythonAtLeast, python
 # Python libraries
-, numpy, tensorflow-tensorboard_2, backports_weakref, mock, enum34, absl-py
-, future, setuptools, wheel, keras-preprocessing, keras-applications, google-pasta
-, functools32
+, numpy, tensorflow-tensorboard_2, absl-py
+, future, setuptools, wheel, keras-preprocessing, google-pasta
 , opt-einsum, astunparse, h5py
 , termcolor, grpcio, six, wrapt, protobuf, tensorflow-estimator_2
+, dill, flatbuffers-python, tblib, typing-extensions
 # Common deps
-, git, swig, which, binutils, glibcLocales, cython
+, git, pybind11, which, binutils, glibcLocales, cython, perl
 # Common libraries
-, jemalloc, openmpi, astor, gast, grpc, sqlite, openssl, jsoncpp, re2
-, curl, snappy, flatbuffers, icu, double-conversion, libpng, libjpeg, giflib
+, jemalloc, mpi, gast, grpc, sqlite, boringssl, jsoncpp
+, curl, snappy, flatbuffers-core, lmdb-core, icu, double-conversion, libpng, libjpeg_turbo, giflib
 # Upsteam by default includes cuda support since tensorflow 1.15. We could do
 # that in nix as well. It would make some things easier and less confusing, but
 # it would also make the default tensorflow package unfree. See
 # https://groups.google.com/a/tensorflow.org/forum/#!topic/developers/iRCt5m4qUz0
 , cudaSupport ? false, cudatoolkit ? null, cudnn ? null, nccl ? null
 , mklSupport ? false, mkl ? null
+, tensorboardSupport ? true
 # XLA without CUDA is broken
 , xlaSupport ? cudaSupport
 # Default from ./configure script
@@ -39,7 +40,7 @@ assert ! (stdenv.isDarwin && cudaSupport);
 assert mklSupport -> mkl != null;
 
 let
-  withTensorboard = pythonOlder "3.6";
+  withTensorboard = (pythonOlder "3.6") || tensorboardSupport;
 
   cudatoolkit_joined = symlinkJoin {
     name = "${cudatoolkit.name}-merged";
@@ -65,34 +66,40 @@ let
   includes_joined = symlinkJoin {
     name = "tensorflow-deps-merged";
     paths = [
-      pkgs.protobuf
       jsoncpp
     ];
   };
 
   tfFeature = x: if x then "1" else "0";
 
-  version = "2.3.1";
+  version = "2.4.0";
   variant = if cudaSupport then "-gpu" else "";
   pname = "tensorflow${variant}";
 
   pythonEnv = python.withPackages (_:
     [ # python deps needed during wheel build time (not runtime, see the buildPythonPackage part for that)
-      numpy
+      # This list can likely be shortened, but each trial takes multiple hours so won't bother for now.
+      absl-py
+      astunparse
+      dill
+      flatbuffers-python
+      gast
+      google-pasta
+      grpcio
+      h5py
       keras-preprocessing
+      numpy
+      opt-einsum
       protobuf
-      wrapt
-      gast
-      astor
-      absl-py
-      termcolor
-      keras-applications
       setuptools
+      six
+      tblib
+      tensorflow-estimator_2
+      tensorflow-tensorboard_2
+      termcolor
+      typing-extensions
       wheel
-  ] ++ lib.optionals (!isPy3k)
-  [ future
-    functools32
-    mock
+      wrapt
   ]);
 
   bazel-build = buildBazelPackage {
@@ -103,51 +110,44 @@ let
       owner = "tensorflow";
       repo = "tensorflow";
       rev = "v${version}";
-      sha256 = "1lvmrqfnwzh24fl5rdkksiqfv2bn0ld5gvzq1z57rphfkf0zg996";
+      sha256 = "0yl06aypfxrcs35828xf04mkidz1x0j89v0q5h4d2xps1cb5rv3f";
     };
 
     patches = [
-      # Fixes for NixOS jsoncpp
-      ../system-jsoncpp.patch
-
+      # Relax too strict Python packages versions dependencies.
       ./relax-dependencies.patch
-
-      # see https://github.com/tensorflow/tensorflow/issues/40688
-      (fetchpatch {
-        url = "https://github.com/tensorflow/tensorflow/commit/75ea0b31477d6ba9e990e296bbbd8ca4e7eebadf.patch";
-        sha256 = "1xp1icacig0xm0nmb05sbrf4nw4xbln9fhc308birrv8286zx7wv";
-      })
+      # Add missing `io_bazel_rules_docker` dependency.
+      ./workspace.patch
     ];
 
     # On update, it can be useful to steal the changes from gentoo
     # https://gitweb.gentoo.org/repo/gentoo.git/tree/sci-libs/tensorflow
 
     nativeBuildInputs = [
-      swig which pythonEnv
+      which pythonEnv cython perl
     ] ++ lib.optional cudaSupport addOpenGLRunpath;
 
     buildInputs = [
       jemalloc
-      openmpi
+      mpi
       glibcLocales
       git
 
       # libs taken from system through the TF_SYS_LIBS mechanism
       grpc
       sqlite
-      openssl
+      boringssl
       jsoncpp
-      pkgs.protobuf
       curl
+      pybind11
       snappy
-      flatbuffers
+      flatbuffers-core
       icu
       double-conversion
       libpng
-      libjpeg
+      libjpeg_turbo
       giflib
-      re2
-      pkgs.lmdb
+      lmdb-core
     ] ++ lib.optionals cudaSupport [
       cudatoolkit
       cudnn
@@ -173,10 +173,17 @@ let
       # "com_github_googleapis_googleapis"
       # "com_github_googlecloudplatform_google_cloud_cpp"
       "com_github_grpc_grpc"
-      "com_google_protobuf"
-      "com_googlesource_code_re2"
+      # Multiple issues with custom protobuf.
+      # First `com_github_googleapis` fails to configure. Can be worked around by disabling `com_github_googleapis`
+      # and related functionality, but then the next error is about "dangling symbolic link", and in general
+      # looks like that's only the beginning: see
+      # https://stackoverflow.com/questions/55578884/how-to-build-tensorflow-1-13-1-with-custom-protobuf
+      # "com_google_protobuf"
+      # Fails with the error: external/org_tensorflow/tensorflow/core/profiler/utils/tf_op_utils.cc:46:49: error: no matching function for call to 're2::RE2::FullMatch(absl::lts_2020_02_25::string_view&, re2::RE2&)'
+      # "com_googlesource_code_re2"
       "curl"
       "cython"
+      "dill_archive"
       "double_conversion"
       "enum34_archive"
       "flatbuffers"
@@ -198,8 +205,9 @@ let
       "pybind11"
       "six_archive"
       "snappy"
-      "swig"
+      "tblib_archive"
       "termcolor_archive"
+      "typing_extensions_archive"
       "wrapt"
       "zlib"
     ];
@@ -224,18 +232,18 @@ let
     TF_CUDA_COMPUTE_CAPABILITIES = lib.concatStringsSep "," cudaCapabilities;
 
     postPatch = ''
+      # bazel 3.3 should work just as well as bazel 3.1
+      rm -f .bazelversion
+    '' + lib.optionalString (!withTensorboard) ''
       # Tensorboard pulls in a bunch of dependencies, some of which may
       # include security vulnerabilities. So we make it optional.
       # https://github.com/tensorflow/tensorflow/issues/20280#issuecomment-400230560
-      sed -i '/tensorboard >=/d' tensorflow/tools/pip_package/setup.py
-
-      # numpy 1.19 added in https://github.com/tensorflow/tensorflow/commit/75ea0b31477d6ba9e990e296bbbd8ca4e7eebadf.patch
-      sed -i 's/numpy >= 1.16.0, < 1.19.0/numpy >= 1.16.0/' tensorflow/tools/pip_package/setup.py
-
-      # bazel 3.3 should work just as well as bazel 3.1
-      rm -f .bazelversion
+      sed -i '/tensorboard ~=/d' tensorflow/tools/pip_package/setup.py
     '';
 
+    # https://github.com/tensorflow/tensorflow/pull/39470
+    NIX_CFLAGS_COMPILE = [ "-Wno-stringop-truncation" ];
+
     preConfigure = let
       opt_flags = []
         ++ lib.optionals sse42Support ["-msse4.2"]
@@ -274,16 +282,15 @@ let
     bazelTarget = "//tensorflow/tools/pip_package:build_pip_package //tensorflow/tools/lib_package:libtensorflow";
 
     removeRulesCC = false;
+    # Without this Bazel complaints about sandbox violations.
+    dontAddBazelOpts = true;
 
     fetchAttrs = {
-      # So that checksums don't depend on these.
-      TF_SYSTEM_LIBS = null;
-
       # cudaSupport causes fetch of ncclArchive, resulting in different hashes
       sha256 = if cudaSupport then
-        "11blnw3ghp1kdi9hh9pdqa4qni9ysc3nk9iqqk9bg4dlr9zl1yld"
+        "0vyy1hv0jy5pqwvnc8pxb9isgnbw07c4a4d4wn61db00np114crz"
       else
-        "1kkghhwhl8frs68kv28r408lps7mpgq1xvq6hc3k0j35asv1g2kc";
+        "0vczv5f9s4dxgwdkmf1y9b9ybh5d3y1nllqhb5q8aj9kq73izyn9";
     };
 
     buildAttrs = {
@@ -320,21 +327,19 @@ let
       '';
     };
 
-    meta = with stdenv.lib; {
+    meta = with lib; {
       description = "Computation using data flow graphs for scalable machine learning";
       homepage = "http://tensorflow.org";
       license = licenses.asl20;
       maintainers = with maintainers; [ jyp abbradar ];
       platforms = with platforms; linux ++ darwin;
-      # The py2 build fails due to some issue importing protobuf. Possibly related to the fix in
-      # https://github.com/akesandgren/easybuild-easyblocks/commit/1f2e517ddfd1b00a342c6abb55aef3fd93671a2b
-      broken = !(xlaSupport -> cudaSupport) || !isPy3k;
+      broken = !(xlaSupport -> cudaSupport);
     };
   };
 
 in buildPythonPackage {
   inherit version pname;
-  disabled = isPy27;
+  disabled = !isPy3k;
 
   src = bazel-build.python;
 
@@ -351,27 +356,23 @@ in buildPythonPackage {
   # tensorflow/tools/pip_package/setup.py
   propagatedBuildInputs = [
     absl-py
-    astor
+    astunparse
+    dill
+    flatbuffers-python
     gast
     google-pasta
-    keras-applications
+    grpcio
+    h5py
     keras-preprocessing
     numpy
-    six
+    opt-einsum
     protobuf
+    six
+    tblib
     tensorflow-estimator_2
     termcolor
+    typing-extensions
     wrapt
-    grpcio
-    opt-einsum
-    astunparse
-    h5py
-  ] ++ lib.optionals (!isPy3k) [
-    mock
-    future
-    functools32
-  ] ++ lib.optionals (pythonOlder "3.4") [
-    backports_weakref enum34
   ] ++ lib.optionals withTensorboard [
     tensorflow-tensorboard_2
   ];
diff --git a/nixpkgs/pkgs/development/python-modules/tensorflow/no-saved-proto.patch b/nixpkgs/pkgs/development/python-modules/tensorflow/no-saved-proto.patch
deleted file mode 100644
index ead112f8ddd6..000000000000
--- a/nixpkgs/pkgs/development/python-modules/tensorflow/no-saved-proto.patch
+++ /dev/null
@@ -1,14 +0,0 @@
-diff --git a/tensorflow/cc/saved_model/BUILD b/tensorflow/cc/saved_model/BUILD
-index 8626ed0087..27deb34387 100644
---- a/tensorflow/cc/saved_model/BUILD
-+++ b/tensorflow/cc/saved_model/BUILD
-@@ -49,9 +49,6 @@ cc_library(
-         # tf_lib depending on the build platform.
-         "//tensorflow/core:lib",
-         "//tensorflow/core:protos_all_cc",
--    ]) + if_mobile([
--        # Mobile-friendly SavedModel proto. See go/portable-proto for more info.
--        "//tensorflow/core:saved_model_portable_proto",
-     ]) + if_android([
-         "//tensorflow/core:android_tensorflow_lib",
-     ]) + if_ios([
diff --git a/nixpkgs/pkgs/development/python-modules/tensorflow/2/prefetcher.sh b/nixpkgs/pkgs/development/python-modules/tensorflow/prefetcher.sh
index abb0faac2834..abb0faac2834 100755
--- a/nixpkgs/pkgs/development/python-modules/tensorflow/2/prefetcher.sh
+++ b/nixpkgs/pkgs/development/python-modules/tensorflow/prefetcher.sh
diff --git a/nixpkgs/pkgs/development/python-modules/tensorflow/relax-dependencies.patch b/nixpkgs/pkgs/development/python-modules/tensorflow/relax-dependencies.patch
new file mode 100644
index 000000000000..b26c1e95a645
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/tensorflow/relax-dependencies.patch
@@ -0,0 +1,51 @@
+diff --git a/tensorflow/tools/pip_package/setup.py b/tensorflow/tools/pip_package/setup.py
+index 65133afdafe..8ef6364ff7e 100644
+--- a/tensorflow/tools/pip_package/setup.py
++++ b/tensorflow/tools/pip_package/setup.py
+@@ -75,23 +75,23 @@ if '--project_name' in sys.argv:
+ # comment the versioning scheme.
+ # NOTE: Please add test only packages to `TEST_PACKAGES` below.
+ REQUIRED_PACKAGES = [
+-    'absl-py ~= 0.10',
+-    'astunparse ~= 1.6.3',
+-    'flatbuffers ~= 1.12.0',
+-    'google_pasta ~= 0.2',
+-    'h5py ~= 2.10.0',
+-    'keras_preprocessing ~= 1.1.2',
+-    'numpy ~= 1.19.2',
+-    'opt_einsum ~= 3.3.0',
++    'absl-py >= 0.10',
++    'astunparse >= 1.6.3',
++    'flatbuffers >= 1.12.0',
++    'google_pasta >= 0.2',
++    'h5py >= 2.10.0',
++    'keras_preprocessing >= 1.1.2',
++    'numpy >= 1.19.1',
++    'opt_einsum >= 3.3.0',
+     'protobuf >= 3.9.2',
+-    'six ~= 1.15.0',
+-    'termcolor ~= 1.1.0',
+-    'typing_extensions ~= 3.7.4',
+-    'wheel ~= 0.35',
+-    'wrapt ~= 1.12.1',
++    'six >= 1.15.0',
++    'termcolor >= 1.1.0',
++    'typing_extensions >= 3.7.4',
++    'wheel >= 0.34.2',
++    'wrapt >= 1.12.1',
+     # These packages needs to be pinned exactly as newer versions are
+     # incompatible with the rest of the ecosystem
+-    'gast == 0.3.3',
++    'gast >= 0.3.3',
+     # TensorFlow ecosystem packages that TF exposes API for
+     # These need to be in sync with the existing TF version
+     # They are updated during the release process
+@@ -118,7 +118,7 @@ if 'tf_nightly' in project_name:
+ # BoringSSL support.
+ # See https://github.com/tensorflow/tensorflow/issues/17882.
+ if sys.byteorder == 'little':
+-  REQUIRED_PACKAGES.append('grpcio ~= 1.32.0')
++  REQUIRED_PACKAGES.append('grpcio >= 1.31.0')
+ 
+ 
+ # Packages which are only needed for testing code.
diff --git a/nixpkgs/pkgs/development/python-modules/tensorflow/system-jsoncpp.patch b/nixpkgs/pkgs/development/python-modules/tensorflow/system-jsoncpp.patch
deleted file mode 100644
index ecb2d04d7eef..000000000000
--- a/nixpkgs/pkgs/development/python-modules/tensorflow/system-jsoncpp.patch
+++ /dev/null
@@ -1,21 +0,0 @@
-diff --git a/third_party/systemlibs/jsoncpp.BUILD b/third_party/systemlibs/jsoncpp.BUILD
-index 526fd0c418..646f3fdcea 100644
---- a/third_party/systemlibs/jsoncpp.BUILD
-+++ b/third_party/systemlibs/jsoncpp.BUILD
-@@ -7,6 +7,7 @@ filegroup(
- 
- HEADERS = [
-     "include/json/autolink.h",
-+    "include/json/allocator.h",
-     "include/json/config.h",
-     "include/json/features.h",
-     "include/json/forwards.h",
-@@ -23,7 +24,7 @@ genrule(
-     cmd = """
-       for i in $(OUTS); do
-         i=$${i##*/}
--        ln -sf $(INCLUDEDIR)/jsoncpp/json/$$i $(@D)/include/json/$$i
-+        ln -sf $(INCLUDEDIR)/json/$$i $(@D)/include/json/$$i
-       done
-     """,
- )
diff --git a/nixpkgs/pkgs/development/python-modules/tensorflow/workspace.patch b/nixpkgs/pkgs/development/python-modules/tensorflow/workspace.patch
new file mode 100644
index 000000000000..15a527815ec3
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/tensorflow/workspace.patch
@@ -0,0 +1,18 @@
+diff --git a/WORKSPACE b/WORKSPACE
+index 9db1d9b80eb..c46f13f4ca4 100644
+--- a/WORKSPACE
++++ b/WORKSPACE
+@@ -12,6 +12,13 @@ http_archive(
+     ],
+ )
+ 
++http_archive(
++    name = "io_bazel_rules_docker",
++    sha256 = "1698624e878b0607052ae6131aa216d45ebb63871ec497f26c67455b34119c80",
++    strip_prefix = "rules_docker-0.15.0",
++    urls = ["https://github.com/bazelbuild/rules_docker/releases/download/v0.15.0/rules_docker-v0.15.0.tar.gz"],
++)
++
+ # Load tf_repositories() before loading dependencies for other repository so
+ # that dependencies like com_google_protobuf won't be overridden.
+ load("//tensorflow:workspace.bzl", "tf_repositories")
diff --git a/nixpkgs/pkgs/development/python-modules/termcolor/default.nix b/nixpkgs/pkgs/development/python-modules/termcolor/default.nix
index 7879482f17d7..df0f4d6208a3 100644
--- a/nixpkgs/pkgs/development/python-modules/termcolor/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/termcolor/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 }:
@@ -12,7 +12,7 @@ buildPythonPackage rec {
     sha256 = "1d6d69ce66211143803fbc56652b41d73b4a400a2891d7bf7a1cdf4c02de613b";
   };
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Termcolor";
     homepage = "https://pypi.python.org/pypi/termcolor";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/terminaltables/default.nix b/nixpkgs/pkgs/development/python-modules/terminaltables/default.nix
index bb6961f77ecf..28e49316ad71 100644
--- a/nixpkgs/pkgs/development/python-modules/terminaltables/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/terminaltables/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 }:
@@ -12,7 +12,7 @@ buildPythonPackage rec {
     sha256 = "f3eb0eb92e3833972ac36796293ca0906e998dc3be91fbe1f8615b331b853b81";
   };
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Display simple tables in terminals";
     homepage = "https://github.com/Robpol86/terminaltables";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/teslajsonpy/default.nix b/nixpkgs/pkgs/development/python-modules/teslajsonpy/default.nix
new file mode 100644
index 000000000000..c4520b1c1982
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/teslajsonpy/default.nix
@@ -0,0 +1,39 @@
+{ lib
+, aiohttp
+, backoff
+, buildPythonPackage
+, fetchFromGitHub
+, pytestCheckHook
+, wrapt
+}:
+
+buildPythonPackage rec {
+  pname = "teslajsonpy";
+  version = "0.10.4";
+
+  src = fetchFromGitHub {
+    owner = "zabuldon";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "18frynmy47i9c24mdy819y2dnjwmhnmkly5mbmhikpbmm6d0yjf1";
+  };
+
+  propagatedBuildInputs = [
+    aiohttp
+    backoff
+    wrapt
+  ];
+
+  checkInputs = [ pytestCheckHook ];
+
+  # Not all Home Assistant related check pass
+  disabledTests = [ "test_values_on_init" ];
+  pythonImportsCheck = [ "teslajsonpy" ];
+
+  meta = with lib; {
+    description = "Python library to work with Tesla API";
+    homepage = "https://github.com/zabuldon/teslajsonpy";
+    license = with licenses; [ asl20 ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/testpath/default.nix b/nixpkgs/pkgs/development/python-modules/testpath/default.nix
index 8357cd2c4568..a5ab52e5cdd5 100644
--- a/nixpkgs/pkgs/development/python-modules/testpath/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/testpath/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 }:
@@ -13,7 +13,7 @@ buildPythonPackage rec {
     sha256 = "bfcf9411ef4bf3db7579063e0546938b1edda3d69f4e1fb8756991f5951f85d4";
   };
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Test utilities for code working with files and commands";
     license = licenses.mit;
     homepage = "https://github.com/jupyter/testpath";
diff --git a/nixpkgs/pkgs/development/python-modules/testrepository/default.nix b/nixpkgs/pkgs/development/python-modules/testrepository/default.nix
index f3c7e169207f..c249ca212b6d 100644
--- a/nixpkgs/pkgs/development/python-modules/testrepository/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/testrepository/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , testtools
@@ -26,7 +26,7 @@ buildPythonPackage rec {
     ${python.interpreter} ./testr
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "A database of test results which can be used as part of developer workflow";
     homepage = "https://pypi.python.org/pypi/testrepository";
     license = licenses.bsd2;
diff --git a/nixpkgs/pkgs/development/python-modules/testscenarios/default.nix b/nixpkgs/pkgs/development/python-modules/testscenarios/default.nix
index 751ab02670a3..465384edcb0c 100644
--- a/nixpkgs/pkgs/development/python-modules/testscenarios/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/testscenarios/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , testtools
@@ -21,7 +21,7 @@ buildPythonPackage rec {
 
   propagatedBuildInputs = [ testtools ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "A pyunit extension for dependency injection";
     homepage = "https://pypi.python.org/pypi/testscenarios";
     license = licenses.asl20;
diff --git a/nixpkgs/pkgs/development/python-modules/thinc/default.nix b/nixpkgs/pkgs/development/python-modules/thinc/default.nix
index cfc926424605..bd520f2c4bfd 100644
--- a/nixpkgs/pkgs/development/python-modules/thinc/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/thinc/default.nix
@@ -74,7 +74,7 @@ buildPythonPackage rec {
 
   pythonImportsCheck = [ "thinc" ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Practical Machine Learning for NLP in Python";
     homepage = "https://github.com/explosion/thinc";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/threadpool/default.nix b/nixpkgs/pkgs/development/python-modules/threadpool/default.nix
index bbc3074c9642..7a1696feb665 100644
--- a/nixpkgs/pkgs/development/python-modules/threadpool/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/threadpool/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 }:
@@ -12,7 +12,7 @@ buildPythonPackage rec {
     sha256 = "197gzrxn9lbk0q1v079814c6s05cr4rwzyl6c1m6inkyif4yzr6c";
   };
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://chrisarndt.de/projects/threadpool/";
     description = "Easy to use object-oriented thread pool framework";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/three-merge/default.nix b/nixpkgs/pkgs/development/python-modules/three-merge/default.nix
new file mode 100644
index 000000000000..dab312c88455
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/three-merge/default.nix
@@ -0,0 +1,24 @@
+{ lib, buildPythonPackage, fetchPypi, diff-match-patch }:
+
+buildPythonPackage rec {
+  pname = "three-merge";
+  version = "0.1.1";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "0w6rv7rv1zm901wbjkmm6d3vkwyf3csja9p37bb60mar8khszxk0";
+  };
+
+  propagatedBuildInputs = [ diff-match-patch ];
+
+  dontUseSetuptoolsCheck = true;
+
+  pythonImportsCheck = [ "three_merge" ];
+
+  meta = with lib; {
+    description = "Simple library for merging two strings with respect to a base one";
+    homepage = "https://github.com/spyder-ide/three-merge";
+    license = licenses.mit;
+    maintainers = with maintainers; [ SuperSandro2000 ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/thrift/default.nix b/nixpkgs/pkgs/development/python-modules/thrift/default.nix
index 999d950771c7..c7279b867b10 100644
--- a/nixpkgs/pkgs/development/python-modules/thrift/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/thrift/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , six
@@ -18,7 +18,7 @@ buildPythonPackage rec {
   # No tests. Breaks when not disabling.
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Python bindings for the Apache Thrift RPC system";
     homepage = "http://thrift.apache.org/";
     license = licenses.asl20;
diff --git a/nixpkgs/pkgs/development/python-modules/thumborpexif/default.nix b/nixpkgs/pkgs/development/python-modules/thumborpexif/default.nix
index 586045edc273..abfad4ffaac9 100644
--- a/nixpkgs/pkgs/development/python-modules/thumborpexif/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/thumborpexif/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , isPy27
@@ -14,7 +14,7 @@ buildPythonPackage rec {
     sha256 = "96dcc03ea6066d9546baf54f6841f4048b0b24a291eed65d098b3348c8872d99";
   };
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Module to parse and edit the EXIF data tags in a JPEG image";
     homepage = "http://www.benno.id.au/code/pexif/";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/tilestache/default.nix b/nixpkgs/pkgs/development/python-modules/tilestache/default.nix
index d4e54fcc40e1..170360c133ed 100644
--- a/nixpkgs/pkgs/development/python-modules/tilestache/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/tilestache/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , modestmaps
@@ -23,7 +23,7 @@ buildPythonPackage rec {
 
   propagatedBuildInputs = [ modestmaps pillow pycairo python-mapnik simplejson werkzeug ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "A tile server for rendered geographic data";
     homepage = "http://tilestache.org";
     license = licenses.bsd3;
diff --git a/nixpkgs/pkgs/development/python-modules/timelib/default.nix b/nixpkgs/pkgs/development/python-modules/timelib/default.nix
index 559dd0dd92f0..65b121ddfafd 100644
--- a/nixpkgs/pkgs/development/python-modules/timelib/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/timelib/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 }:
@@ -13,7 +13,7 @@ buildPythonPackage rec {
     sha256 = "6ac9f79b09b63bbc07db88525c1f62de1f6d50b0fd9937a0cb05e3d38ce0af45";
   };
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Parse english textual date descriptions";
     homepage = "https://github.com/pediapress/timelib/";
     license = licenses.zlib;
diff --git a/nixpkgs/pkgs/development/python-modules/timeout-decorator/default.nix b/nixpkgs/pkgs/development/python-modules/timeout-decorator/default.nix
index d3b4a58c17e3..b1160cafe309 100644
--- a/nixpkgs/pkgs/development/python-modules/timeout-decorator/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/timeout-decorator/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi }:
+{ lib, stdenv, buildPythonPackage, fetchPypi }:
 buildPythonPackage rec {
   pname = "timeout-decorator";
   version = "0.5.0";
@@ -8,7 +8,7 @@ buildPythonPackage rec {
     sha256 = "6a2f2f58db1c5b24a2cc79de6345760377ad8bdc13813f5265f6c3e63d16b3d7";
   };
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Timeout decorator";
     license = licenses.mit;
     homepage = "https://github.com/pnpnpn/timeout-decorator";
diff --git a/nixpkgs/pkgs/development/python-modules/tissue/default.nix b/nixpkgs/pkgs/development/python-modules/tissue/default.nix
index 8f551ab5926d..fc4316c98fe9 100644
--- a/nixpkgs/pkgs/development/python-modules/tissue/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/tissue/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , nose
@@ -17,7 +17,7 @@ buildPythonPackage rec {
   buildInputs = [ nose ];
   propagatedBuildInputs = [ pep8 ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://github.com/WoLpH/tissue";
     description = "Tissue - automated pep8 checker for nose";
     license = licenses.lgpl2;
diff --git a/nixpkgs/pkgs/development/python-modules/tkinter/default.nix b/nixpkgs/pkgs/development/python-modules/tkinter/default.nix
index 1efebed98721..9f82dee45ef0 100644
--- a/nixpkgs/pkgs/development/python-modules/tkinter/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/tkinter/default.nix
@@ -1,4 +1,5 @@
-{ stdenv
+{ lib
+, stdenv
 , buildPythonPackage
 , python
 , py
@@ -17,7 +18,7 @@ buildPythonPackage {
     # Move the tkinter module
     mkdir -p $out/${py.sitePackages}
     mv lib/${py.libPrefix}/lib-dynload/_tkinter* $out/${py.sitePackages}/
-  '' + stdenv.lib.optionalString (!stdenv.isDarwin) ''
+  '' + lib.optionalString (!stdenv.isDarwin) ''
     # Update the rpath to point to python without x11Support
     old_rpath=$(patchelf --print-rpath $out/${py.sitePackages}/_tkinter*)
     new_rpath=$(sed "s#${py}#${python}#g" <<< "$old_rpath" )
diff --git a/nixpkgs/pkgs/development/python-modules/tld/default.nix b/nixpkgs/pkgs/development/python-modules/tld/default.nix
index c3333aef9e1f..13f23edaad15 100644
--- a/nixpkgs/pkgs/development/python-modules/tld/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/tld/default.nix
@@ -1,39 +1,39 @@
-{ stdenv, fetchPypi, python }:
-
-python.pkgs.buildPythonPackage rec {
-  pname   = "tld";
-  version = "0.12.4";
+{ lib
+, buildPythonPackage
+, factory_boy
+, faker
+, fetchPypi
+, pytest-cov
+, pytestCheckHook
+, six
+, tox
+}:
+
+buildPythonPackage rec {
+  pname = "tld";
+  version = "0.12.5";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0976g7jcpi3jv7snawmfis5ybb6737cv2xw7wlanlfkyqljip24x";
+    sha256 = "0d1lbbg2qdw5jjxks0dqlf69bki5885mhj8ysvgylmrni56hjqqv";
   };
 
-  propagatedBuildInputs = with python.pkgs; [ six ];
-  checkInputs = with python.pkgs; [ factory_boy faker pytestcov tox pytestCheckHook];
-
-  # https://github.com/barseghyanartur/tld/issues/54
-  disabledTests = [
-    "test_1_update_tld_names"
-    "test_1_update_tld_names_command"
-    "test_2_update_tld_names_module"
+  checkInputs = [
+    factory_boy
+    faker
+    pytest-cov
+    pytestCheckHook
+    tox
   ];
 
-  preCheck = ''
-    export PATH="$PATH:$out/bin"
-  '';
-
-  dontUseSetuptoolsCheck = true;
+  pythonImportsCheck = [ "tld" ];
 
-  pythonImportsCheck = [
-    "tld"
-  ];
-
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://github.com/barseghyanartur/tld";
     description = "Extracts the top level domain (TLD) from the URL given";
-    license = licenses.lgpl21;
-    maintainers = with maintainers; [ ];
+    # https://github.com/barseghyanartur/tld/blob/master/README.rst#license
+    # MPL-1.1 OR GPL-2.0-only OR LGPL-2.1-or-later
+    license = with licenses; [ lgpl21Plus mpl11 gpl2Only ];
+    maintainers = with maintainers; [ fab ];
   };
-
 }
diff --git a/nixpkgs/pkgs/development/python-modules/tlsh/default.nix b/nixpkgs/pkgs/development/python-modules/tlsh/default.nix
index 3448d40cf3a4..302b113364d2 100644
--- a/nixpkgs/pkgs/development/python-modules/tlsh/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/tlsh/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchFromGitHub
 , cmake
@@ -24,7 +24,7 @@ buildPythonPackage {
     cd ../py_ext
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Trend Micro Locality Sensitive Hash";
     homepage = "https://github.com/trendmicro/tlsh";
     license = licenses.asl20;
diff --git a/nixpkgs/pkgs/development/python-modules/tlslite-ng/default.nix b/nixpkgs/pkgs/development/python-modules/tlslite-ng/default.nix
index 7c8bb17b8b70..a952c95d93e4 100644
--- a/nixpkgs/pkgs/development/python-modules/tlslite-ng/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/tlslite-ng/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , ecdsa
@@ -15,7 +15,7 @@ buildPythonPackage rec {
 
   buildInputs = [ ecdsa ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Pure python implementation of SSL and TLS.";
     homepage = "https://pypi.python.org/pypi/tlslite-ng";
     license = licenses.lgpl2;
diff --git a/nixpkgs/pkgs/development/python-modules/tlslite/default.nix b/nixpkgs/pkgs/development/python-modules/tlslite/default.nix
index ac0c572ec3e7..a1e78c5db76c 100644
--- a/nixpkgs/pkgs/development/python-modules/tlslite/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/tlslite/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 }:
@@ -12,7 +12,7 @@ buildPythonPackage rec {
     sha256 = "9b9a487694c239efea8cec4454a99a56ee1ae1a5f3af0858ccf8029e2ac2d42d";
   };
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "A pure Python implementation of SSL and TLS";
     homepage = "https://pypi.python.org/pypi/tlslite";
     license = licenses.bsd3;
diff --git a/nixpkgs/pkgs/development/python-modules/tmb/default.nix b/nixpkgs/pkgs/development/python-modules/tmb/default.nix
new file mode 100644
index 000000000000..713cf6139285
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/tmb/default.nix
@@ -0,0 +1,30 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, requests
+}:
+
+buildPythonPackage rec {
+  pname = "tmb";
+  version = "0.1.1";
+
+  src = fetchFromGitHub {
+    owner = "alemuro";
+    repo = pname;
+    rev = version;
+    sha256 = "sha256-xwzaJuiQxExUA5W4kW7t1713S6NOvDNagcD3/dwA+DE=";
+  };
+
+  propagatedBuildInputs = [ requests ];
+
+  # Project has no tests
+  doCheck = false;
+  pythonImportsCheck = [ "tmb" ];
+
+  meta = with lib; {
+    homepage = "https://github.com/alemuro/tmb";
+    description = "Python library that interacts with TMB API";
+    license = with licenses; [ mit ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/todoist/default.nix b/nixpkgs/pkgs/development/python-modules/todoist/default.nix
index ac7817962300..62749d3b02f6 100644
--- a/nixpkgs/pkgs/development/python-modules/todoist/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/todoist/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchPypi, buildPythonPackage
+{ lib, fetchPypi, buildPythonPackage
 , requests, fetchpatch, pythonOlder, typing
 }:
 
@@ -23,12 +23,12 @@ buildPythonPackage rec {
     })
   ];
 
-  propagatedBuildInputs = [ requests ] ++ stdenv.lib.optional (pythonOlder "3.5") typing;
+  propagatedBuildInputs = [ requests ] ++ lib.optional (pythonOlder "3.5") typing;
 
-  meta = {
+  meta = with lib; {
     description = "The official Todoist Python API library";
     homepage = "https://todoist-python.readthedocs.io/en/latest/";
-    license = stdenv.lib.licenses.mit;
-    maintainers = with stdenv.lib.maintainers; [ ma27 ];
+    license = licenses.mit;
+    maintainers = with maintainers; [ ma27 ];
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/toggl-cli/default.nix b/nixpkgs/pkgs/development/python-modules/toggl-cli/default.nix
index c004c4a5d9f3..875e70cee58e 100644
--- a/nixpkgs/pkgs/development/python-modules/toggl-cli/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/toggl-cli/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi, pythonAtLeast, pythonOlder
+{ lib, stdenv, buildPythonPackage, fetchPypi, pythonAtLeast, pythonOlder
 , click
 , click-completion
 , factory_boy
@@ -61,7 +61,7 @@ buildPythonPackage rec {
     validate-email
   ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://toggl.uhlir.dev/";
     description = "Command line tool and set of Python wrapper classes for interacting with toggl's API";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/tokenizers/default.nix b/nixpkgs/pkgs/development/python-modules/tokenizers/default.nix
index 4e5aacd6c7ac..ec435a0ac359 100644
--- a/nixpkgs/pkgs/development/python-modules/tokenizers/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/tokenizers/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , rustPlatform
 , fetchFromGitHub
 , fetchurl
@@ -7,6 +7,7 @@
 , wheel
 , numpy
 , python
+, datasets
 , pytestCheckHook
 , requests
 }:
@@ -50,16 +51,16 @@ let
   };
 in rustPlatform.buildRustPackage rec {
   pname = "tokenizers";
-  version = "0.9.4";
+  version = "0.10.0";
 
   src = fetchFromGitHub {
     owner = "huggingface";
     repo = pname;
     rev = "python-v${version}";
-    hash = "sha256-JXoH9yfhMIFg5qDY5zrF6iWb7XKugjMfk1NxSizfaWg=";
+    hash = "sha256-rQ2hRV52naEf6PvRsWVCTN7B1oXAQGmnpJw4iIdhamw=";
   };
 
-  cargoSha256 = "sha256-u9qitrOxJSABs0VjwHUZgmw7VTQXNbp6l8fKKE/RQ7M=";
+  cargoSha256 = "sha256-BoHIN/519Top1NUBjpB/oEMqi86Omt3zTQcXFWqrek0=";
 
   sourceRoot = "source/bindings/python";
 
@@ -75,6 +76,7 @@ in rustPlatform.buildRustPackage rec {
   ];
 
   installCheckInputs = [
+    datasets
     pytestCheckHook
     requests
   ];
@@ -105,7 +107,16 @@ in rustPlatform.buildRustPackage rec {
     pipInstallPhase
   '';
 
-  meta = with stdenv.lib; {
+  preCheck = ''
+    HOME=$TMPDIR
+  '';
+
+  disabledTests = [
+    # Downloads data using the datasets module.
+    "TestTrainFromIterators"
+  ];
+
+  meta = with lib; {
     homepage = "https://github.com/huggingface/tokenizers";
     description = "Fast State-of-the-Art Tokenizers optimized for Research and Production";
     license = licenses.asl20;
diff --git a/nixpkgs/pkgs/development/python-modules/tokenlib/default.nix b/nixpkgs/pkgs/development/python-modules/tokenlib/default.nix
index 7c8e99cc399a..2bed18870166 100644
--- a/nixpkgs/pkgs/development/python-modules/tokenlib/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/tokenlib/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchFromGitHub
 , requests
@@ -18,7 +18,7 @@ buildPythonPackage rec {
 
   propagatedBuildInputs = [ requests webob ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://github.com/mozilla-services/tokenlib";
     description = "Generic support library for signed-token-based auth schemes";
     license = licenses.mpl20;
diff --git a/nixpkgs/pkgs/development/python-modules/toml/default.nix b/nixpkgs/pkgs/development/python-modules/toml/default.nix
index 96c6635771c7..0d0d87c73d11 100644
--- a/nixpkgs/pkgs/development/python-modules/toml/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/toml/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi }:
+{ lib, stdenv, buildPythonPackage, fetchPypi }:
 
 buildPythonPackage rec {
   pname = "toml";
@@ -14,7 +14,7 @@ buildPythonPackage rec {
   # git to download a test suite.
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "a Python library for parsing and creating TOML";
     homepage = "https://github.com/uiri/toml";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/toonapi/default.nix b/nixpkgs/pkgs/development/python-modules/toonapi/default.nix
new file mode 100644
index 000000000000..003670989920
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/toonapi/default.nix
@@ -0,0 +1,36 @@
+{ lib
+, aiohttp
+, backoff
+, buildPythonPackage
+, fetchFromGitHub
+, yarl
+}:
+
+buildPythonPackage rec {
+  pname = "toonapi";
+  version = "0.2.0";
+
+  src = fetchFromGitHub {
+    owner = "frenck";
+    repo = "python-toonapi";
+    rev = "v${version}";
+    sha256 = "1d4n615vlcgkvmchrfjw4h3ndav3ljmcfydxr2b41zn83mzizqdf";
+  };
+
+  propagatedBuildInputs = [
+    aiohttp
+    backoff
+    yarl
+  ];
+
+  # Project has no tests
+  doCheck = false;
+  pythonImportsCheck = [ "toonapi" ];
+
+  meta = with lib; {
+    description = "Python client for the Quby ToonAPI";
+    homepage = "https://github.com/frenck/python-toonapi";
+    license = with licenses; [ mit ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/toposort/default.nix b/nixpkgs/pkgs/development/python-modules/toposort/default.nix
index f1767862ad32..43df3c4e21e9 100644
--- a/nixpkgs/pkgs/development/python-modules/toposort/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/toposort/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 }:
@@ -12,7 +12,7 @@ buildPythonPackage rec {
     sha256 = "a7428f56ef844f5055bb9e9e44b343983773ae6dce0fe5b101e08e27ffbd50ac";
   };
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "A topological sort algorithm";
     homepage = "https://pypi.python.org/pypi/toposort/1.1";
     maintainers = with maintainers; [ tstrobel ];
diff --git a/nixpkgs/pkgs/development/python-modules/torchvision/default.nix b/nixpkgs/pkgs/development/python-modules/torchvision/default.nix
index ea702a78fe1d..928616eb4f8a 100644
--- a/nixpkgs/pkgs/development/python-modules/torchvision/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/torchvision/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchFromGitHub
 , ninja
@@ -41,7 +41,7 @@ buildPythonPackage rec {
 
   checkInputs = [ pytest ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "PyTorch vision library";
     homepage = "https://pytorch.org/";
     license = licenses.bsd3;
diff --git a/nixpkgs/pkgs/development/python-modules/traceback2/default.nix b/nixpkgs/pkgs/development/python-modules/traceback2/default.nix
index 3a70df1548d0..5309ae47a02d 100644
--- a/nixpkgs/pkgs/development/python-modules/traceback2/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/traceback2/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , pbr
@@ -19,7 +19,7 @@ buildPythonPackage rec {
   # circular dependencies for tests
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "A backport of traceback to older supported Pythons";
     homepage = "https://pypi.python.org/pypi/traceback2/";
     license = licenses.psfl;
diff --git a/nixpkgs/pkgs/development/python-modules/tracing/default.nix b/nixpkgs/pkgs/development/python-modules/tracing/default.nix
index 6f9091d8517f..f4c01f003a9a 100644
--- a/nixpkgs/pkgs/development/python-modules/tracing/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/tracing/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchurl
 , sphinx
@@ -18,7 +18,7 @@ buildPythonPackage rec {
   # error: invalid command 'test'
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://liw.fi/tracing/";
     description = "Python debug logging helper";
     license = licenses.gpl3;
diff --git a/nixpkgs/pkgs/development/python-modules/trackpy/default.nix b/nixpkgs/pkgs/development/python-modules/trackpy/default.nix
index 6d198534149d..ff4c4a767583 100644
--- a/nixpkgs/pkgs/development/python-modules/trackpy/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/trackpy/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchFromGitHub
 , numpy
@@ -35,7 +35,7 @@ buildPythonPackage rec {
   ];
 
   checkPhase = ''
-    ${stdenv.lib.optionalString (stdenv.isDarwin) ''
+    ${lib.optionalString (stdenv.isDarwin) ''
     # specifically needed for darwin
     export HOME=$(mktemp -d)
     mkdir -p $HOME/.matplotlib
@@ -49,7 +49,7 @@ buildPythonPackage rec {
                    --ignore trackpy/tests/test_legacy_linking.py
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Particle-tracking toolkit";
     homepage = "https://github.com/soft-matter/trackpy";
     license = licenses.bsd3;
diff --git a/nixpkgs/pkgs/development/python-modules/traits/default.nix b/nixpkgs/pkgs/development/python-modules/traits/default.nix
index 789ba7a1691e..e3bc8b43fe4e 100644
--- a/nixpkgs/pkgs/development/python-modules/traits/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/traits/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , isPy27
@@ -31,7 +31,7 @@ buildPythonPackage rec {
   # Furthermore, some tests fail due to being in a chroot
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Explicitly typed attributes for Python";
     homepage = "https://pypi.python.org/pypi/traits";
     license = "BSD";
diff --git a/nixpkgs/pkgs/development/python-modules/transaction/default.nix b/nixpkgs/pkgs/development/python-modules/transaction/default.nix
index 887c46863362..def2559a72d0 100644
--- a/nixpkgs/pkgs/development/python-modules/transaction/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/transaction/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , fetchPypi
 , buildPythonPackage
 , zope_interface
@@ -17,7 +17,7 @@ buildPythonPackage rec {
 
   propagatedBuildInputs = [ zope_interface mock ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Transaction management";
     homepage = "https://pypi.python.org/pypi/transaction";
     license = licenses.zpl20;
diff --git a/nixpkgs/pkgs/development/python-modules/transformers/default.nix b/nixpkgs/pkgs/development/python-modules/transformers/default.nix
index bd9040668c08..594204754408 100644
--- a/nixpkgs/pkgs/development/python-modules/transformers/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/transformers/default.nix
@@ -1,32 +1,28 @@
 { buildPythonPackage
-, stdenv
+, lib, stdenv
 , fetchFromGitHub
-, isPy39
+, pythonOlder
 , cookiecutter
 , filelock
+, importlib-metadata
 , regex
 , requests
 , numpy
-, pandas
-, parameterized
 , protobuf
 , sacremoses
-, timeout-decorator
 , tokenizers
 , tqdm
-, pytestCheckHook
 }:
 
 buildPythonPackage rec {
   pname = "transformers";
-  version = "4.1.1";
-  disabled = isPy39;
+  version = "4.2.2";
 
   src = fetchFromGitHub {
     owner = "huggingface";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1l1gxdsakjmzsgggypq45pnwm87brhlccjfzafs43460pz0wbd6k";
+    hash = "sha256-sBMCzEgYX6HQbzoEIYnmMdpYecCCsQjTdl2mO1Veu9M=";
   };
 
   propagatedBuildInputs = [
@@ -39,65 +35,18 @@ buildPythonPackage rec {
     sacremoses
     tokenizers
     tqdm
-  ];
+  ] ++ lib.optionals (pythonOlder "3.8") [ importlib-metadata ];
 
-  checkInputs = [
-    pandas
-    parameterized
-    pytestCheckHook
-    timeout-decorator
-  ];
+  # Many tests require internet access.
+  doCheck = false;
 
   postPatch = ''
-    substituteInPlace setup.py \
-      --replace "tokenizers == 0.9.4" "tokenizers"
+    sed -ri 's/tokenizers==[0-9.]+/tokenizers/g' setup.py
   '';
 
-  preCheck = ''
-    export HOME="$TMPDIR"
+  pythonImportsCheck = [ "transformers" ];
 
-    # This test requires the `datasets` module to download test
-    # data. However, since we cannot download in the Nix sandbox
-    # and `dataset` is an optional dependency for transformers
-    # itself, we will just remove the tests files that import
-    # `dataset`.
-    rm tests/test_retrieval_rag.py
-    rm tests/test_trainer.py
-  '';
-
-  # We have to run from the main directory for the tests. However,
-  # letting pytest discover tests leads to errors.
-  pytestFlagsArray = [ "tests" ];
-
-  # Disable tests that require network access.
-  disabledTests = [
-    "BlenderbotSmallTokenizerTest"
-    "Blenderbot3BTokenizerTests"
-    "GetFromCacheTests"
-    "TokenizationTest"
-    "TestTokenizationBart"
-    "test_all_tokenizers"
-    "test_batch_encoding_is_fast"
-    "test_batch_encoding_pickle"
-    "test_batch_encoding_word_to_tokens"
-    "test_config_from_model_shortcut"
-    "test_config_model_type_from_model_identifier"
-    "test_from_pretrained_use_fast_toggle"
-    "test_hf_api"
-    "test_outputs_can_be_shorter"
-    "test_outputs_not_longer_than_maxlen"
-    "test_padding_accepts_tensors"
-    "test_pretokenized_tokenizers"
-    "test_tokenizer_equivalence_en_de"
-    "test_tokenizer_from_model_type"
-    "test_tokenizer_from_model_type"
-    "test_tokenizer_from_pretrained"
-    "test_tokenizer_from_tokenizer_class"
-    "test_tokenizer_identifier_with_correct_config"
-    "test_tokenizer_identifier_non_existent"
-  ];
-
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://github.com/huggingface/transformers";
     description = "State-of-the-art Natural Language Processing for TensorFlow 2.0 and PyTorch";
     changelog = "https://github.com/huggingface/transformers/releases/tag/v${version}";
diff --git a/nixpkgs/pkgs/development/python-modules/transip/default.nix b/nixpkgs/pkgs/development/python-modules/transip/default.nix
index 8ea70a19ead4..e270d5a0662d 100644
--- a/nixpkgs/pkgs/development/python-modules/transip/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/transip/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchFromGitHub
 , isPy27
@@ -32,7 +32,7 @@ buildPythonPackage rec {
 
   propagatedBuildInputs = [ requests cryptography suds-jurko ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "TransIP API Connector";
     homepage = "https://github.com/benkonrath/transip-api";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/transitions/default.nix b/nixpkgs/pkgs/development/python-modules/transitions/default.nix
index 2691890a5ee1..2dda33fd9682 100644
--- a/nixpkgs/pkgs/development/python-modules/transitions/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/transitions/default.nix
@@ -1,28 +1,23 @@
-{ stdenv, buildPythonPackage, fetchPypi
-, six, nose, mock, dill, pycodestyle }:
+{ lib, buildPythonPackage, fetchFromGitHub
+, six, pytestCheckHook, mock, dill, pycodestyle }:
 
 buildPythonPackage rec {
   pname = "transitions";
-  version = "0.8.5";
+  version = "0.8.6";
 
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "e441c66a0c753d56c01c3e5e547f21dbe4a5569c939f12477475c5e81d79769b";
+  # test_codestyle.py fails in PyPI sdist
+  src = fetchFromGitHub {
+    owner = "pytransitions";
+    repo = "transitions";
+    rev = version;
+    sha256 = "1d913hzzyqhdhhbkbvjw65dqkajrw50a4sxhyxk0jlg8pcs7bs7v";
   };
 
-  postPatch = ''
-    substituteInPlace setup.py --replace "dill<0.2.7" dill
-  '';
-
   propagatedBuildInputs = [ six ];
 
-  checkInputs = [ nose mock dill pycodestyle ];
-
-  checkPhase = ''
-    nosetests
-  '';
+  checkInputs = [ pytestCheckHook mock dill pycodestyle ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://github.com/pytransitions/transitions";
     description = "A lightweight, object-oriented finite state machine implementation in Python";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/translationstring/default.nix b/nixpkgs/pkgs/development/python-modules/translationstring/default.nix
index 013615de800b..2f39b57b480f 100644
--- a/nixpkgs/pkgs/development/python-modules/translationstring/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/translationstring/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 }:
@@ -12,7 +12,7 @@ buildPythonPackage rec {
     sha256 = "bf947538d76e69ba12ab17283b10355a9ecfbc078e6123443f43f2107f6376f3";
   };
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://pylonsproject.org/";
     description = "Utility library for i18n relied on by various Repoze and Pyramid packages";
     license = licenses.bsd0;
diff --git a/nixpkgs/pkgs/development/python-modules/transmissionrpc/default.nix b/nixpkgs/pkgs/development/python-modules/transmissionrpc/default.nix
index eb209a0d49ec..a128b150579a 100644
--- a/nixpkgs/pkgs/development/python-modules/transmissionrpc/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/transmissionrpc/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , six
@@ -15,7 +15,7 @@ buildPythonPackage rec {
 
   propagatedBuildInputs = [ six ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Python implementation of the Transmission bittorent client RPC protocol";
     homepage = "https://pypi.python.org/pypi/transmissionrpc/";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/treq/default.nix b/nixpkgs/pkgs/development/python-modules/treq/default.nix
index 919ef529407a..477223e96186 100644
--- a/nixpkgs/pkgs/development/python-modules/treq/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/treq/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchPypi, buildPythonPackage, service-identity, requests, six
+{ lib, stdenv, fetchPypi, buildPythonPackage, service-identity, requests, six
 , mock, twisted, incremental, pep8, httpbin
 }:
 
@@ -47,7 +47,7 @@ buildPythonPackage rec {
   # Failing tests https://github.com/twisted/treq/issues/208
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://github.com/twisted/treq";
     description = "A requests-like API built on top of twisted.web's Agent";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/trezor_agent/default.nix b/nixpkgs/pkgs/development/python-modules/trezor_agent/default.nix
index 82cb14b31cb1..537b4db7995a 100644
--- a/nixpkgs/pkgs/development/python-modules/trezor_agent/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/trezor_agent/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , trezor
@@ -24,7 +24,10 @@ buildPythonPackage rec {
 
   propagatedBuildInputs = [ setuptools trezor libagent ecdsa ed25519 mnemonic keepkey semver wheel pinentry ];
 
-  meta = with stdenv.lib; {
+  doCheck = false;
+  pythonImportsCheck = [ "libagent" ];
+
+  meta = with lib; {
     description = "Using Trezor as hardware SSH agent";
     homepage = "https://github.com/romanz/trezor-agent";
     license = licenses.gpl3;
diff --git a/nixpkgs/pkgs/development/python-modules/trimesh/default.nix b/nixpkgs/pkgs/development/python-modules/trimesh/default.nix
index 251d6c3d94dd..b157e32ed876 100644
--- a/nixpkgs/pkgs/development/python-modules/trimesh/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/trimesh/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "trimesh";
-  version = "3.8.19";
+  version = "3.9.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "e2ec4fc75bddf46fd494a9c95adc0bf0fe6f667cae242ead99955ad659d6e375";
+    sha256 = "d19cbdb830a17297aa218ba6ce4955fc11b4b553414289cfd71f58f8144cc91f";
   };
 
   propagatedBuildInputs = [ numpy ];
diff --git a/nixpkgs/pkgs/development/python-modules/trollius/default.nix b/nixpkgs/pkgs/development/python-modules/trollius/default.nix
index b81a92d08e66..019326c54217 100644
--- a/nixpkgs/pkgs/development/python-modules/trollius/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/trollius/default.nix
@@ -43,7 +43,7 @@ buildPythonPackage rec {
     sed -i -e "s|test_write_pty|skip_test_write_pty|g" tests/test_events.py
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Port of the asyncio project to Python 2.7";
     homepage = "https://github.com/vstinner/trollius";
     license = licenses.asl20;
diff --git a/nixpkgs/pkgs/development/python-modules/trueskill/default.nix b/nixpkgs/pkgs/development/python-modules/trueskill/default.nix
index 18033aff391c..0c3efa404ec6 100644
--- a/nixpkgs/pkgs/development/python-modules/trueskill/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/trueskill/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi
+{ lib, stdenv, buildPythonPackage, fetchPypi
 , six }:
 
 buildPythonPackage rec {
@@ -17,7 +17,7 @@ buildPythonPackage rec {
   # Can't build distribute, see https://github.com/NixOS/nixpkgs/pull/49340
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "The video game rating system";
     homepage = "https://trueskill.org";
     license = licenses.bsd3;
diff --git a/nixpkgs/pkgs/development/python-modules/trytond/default.nix b/nixpkgs/pkgs/development/python-modules/trytond/default.nix
index 7db53969402b..68254d8601ec 100644
--- a/nixpkgs/pkgs/development/python-modules/trytond/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/trytond/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib
 , buildPythonApplication
 , fetchPypi
 , pythonOlder
@@ -21,8 +21,6 @@
 , withPostgresql ? true
 }:
 
-with stdenv.lib;
-
 buildPythonApplication rec {
   pname = "trytond";
   version = "5.8.2";
@@ -56,14 +54,14 @@ buildPythonApplication rec {
     python-Levenshtein
     simplejson
     html2text
-  ] ++ stdenv.lib.optional withPostgresql psycopg2;
+  ] ++ lib.optional withPostgresql psycopg2;
 
   # If unset, trytond will try to mkdir /homeless-shelter
   preCheck = ''
     export HOME=$(mktemp -d)
   '';
 
-  meta = {
+  meta = with lib; {
     description = "The server of the Tryton application platform";
     longDescription = ''
       The server for Tryton, a three-tier high-level general purpose
diff --git a/nixpkgs/pkgs/development/python-modules/ttystatus/default.nix b/nixpkgs/pkgs/development/python-modules/ttystatus/default.nix
index a76a5f8df383..24eb10637078 100644
--- a/nixpkgs/pkgs/development/python-modules/ttystatus/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/ttystatus/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchurl
 , sphinx
@@ -20,7 +20,7 @@ buildPythonPackage rec {
   # error: invalid command 'test'
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://liw.fi/ttystatus/";
     description = "Progress and status updates on terminals for Python";
     license = licenses.gpl3;
diff --git a/nixpkgs/pkgs/development/python-modules/tubeup/default.nix b/nixpkgs/pkgs/development/python-modules/tubeup/default.nix
index 297642599107..7a4b4454b3b6 100644
--- a/nixpkgs/pkgs/development/python-modules/tubeup/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/tubeup/default.nix
@@ -2,27 +2,27 @@
 , buildPythonPackage
 , internetarchive
 , fetchPypi
-, youtube-dlc
+, youtube-dl
 , docopt
 , isPy27
 }:
 
 buildPythonPackage rec {
   pname = "tubeup";
-  version = "0.0.20";
+  version = "0.0.21";
 
   disabled = isPy27;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "8bf4004629b8427173c8259e1a09065db99135d6cc390b70a8a67b52a34a3f67";
+    sha256 = "326a499be032bee7f7ed921d85abff4b3b4dcd2c3d6ad694f08ef98dbcef19b6";
   };
 
   postPatch = ''
     substituteInPlace setup.py --replace "docopt==0.6.2" "docopt"
   '';
 
-  propagatedBuildInputs = [ internetarchive docopt youtube-dlc ];
+  propagatedBuildInputs = [ internetarchive docopt youtube-dl ];
 
   pythonImportsCheck = [ "tubeup" ];
 
diff --git a/nixpkgs/pkgs/development/python-modules/tumpa/default.nix b/nixpkgs/pkgs/development/python-modules/tumpa/default.nix
new file mode 100644
index 000000000000..6d953740eb80
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/tumpa/default.nix
@@ -0,0 +1,36 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, setuptools
+, pyside2
+, johnnycanencrypt
+, pythonOlder
+}:
+
+buildPythonPackage rec {
+  pname = "tumpa";
+  version = "0.1.1";
+  disabled = pythonOlder "3.7";
+
+  src = fetchFromGitHub {
+    owner = "kushaldas";
+    repo = "tumpa";
+    rev = "v${version}";
+    sha256 = "1wvs64s0jxn4p8zr643d2hcczw3a175r6ib3481gdhjx38kgxjbq";
+  };
+
+  propagatedBuildInputs = [
+    setuptools
+    johnnycanencrypt
+    pyside2
+  ];
+
+  doCheck = false;
+
+  meta = with lib; {
+    description = "OpenPGP key creation and smartcard access";
+    homepage = "https://github.com/kushaldas/tumpa";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ _0x4A6F ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/tvdb_api/default.nix b/nixpkgs/pkgs/development/python-modules/tvdb_api/default.nix
index beabc8c23106..f2cdbe8dc633 100644
--- a/nixpkgs/pkgs/development/python-modules/tvdb_api/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/tvdb_api/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , requests-cache
@@ -21,7 +21,7 @@ buildPythonPackage rec {
   # requires network access
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Simple to use TVDB (thetvdb.com) API in Python";
     homepage = "https://github.com/dbr/tvdb_api";
     license = licenses.unlicense;
diff --git a/nixpkgs/pkgs/development/python-modules/tvnamer/default.nix b/nixpkgs/pkgs/development/python-modules/tvnamer/default.nix
index 81fa2e61b02a..fa155b86f407 100644
--- a/nixpkgs/pkgs/development/python-modules/tvnamer/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/tvnamer/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , pytest
@@ -20,7 +20,7 @@ buildPythonPackage rec {
   # a ton of tests fail with: IOError: tvnamer/main.py could not be found in . or ..
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Automatic TV episode file renamer, uses data from thetvdb.com via tvdb_api.";
     homepage = "https://github.com/dbr/tvnamer";
     license = licenses.unlicense;
diff --git a/nixpkgs/pkgs/development/python-modules/twiggy/default.nix b/nixpkgs/pkgs/development/python-modules/twiggy/default.nix
index fdff4a90f9e1..9647dc8ae67c 100644
--- a/nixpkgs/pkgs/development/python-modules/twiggy/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/twiggy/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , six
@@ -16,7 +16,7 @@ buildPythonPackage rec {
   propagatedBuildInputs = [ six ];
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "http://twiggy.wearpants.org";
     # Taken from http://i.wearpants.org/blog/meet-twiggy/
     description = "Twiggy is the first totally new design for a logger since log4j";
diff --git a/nixpkgs/pkgs/development/python-modules/twilio/default.nix b/nixpkgs/pkgs/development/python-modules/twilio/default.nix
index d4cd7b5d59bf..7931a4ad0ec9 100644
--- a/nixpkgs/pkgs/development/python-modules/twilio/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/twilio/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchFromGitHub
+{ lib, stdenv, buildPythonPackage, fetchFromGitHub
 , pyjwt, pysocks, pytz, requests, six, nose, mock }:
 
 buildPythonPackage rec {
@@ -16,7 +16,7 @@ buildPythonPackage rec {
 
   propagatedBuildInputs = [ pyjwt pysocks pytz six requests ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Twilio API client and TwiML generator";
     homepage = "https://github.com/twilio/twilio-python/";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/twisted/default.nix b/nixpkgs/pkgs/development/python-modules/twisted/default.nix
index d38d6aebcbd8..421565725b14 100644
--- a/nixpkgs/pkgs/development/python-modules/twisted/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/twisted/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , python
@@ -30,7 +30,7 @@ buildPythonPackage rec {
 
   # Patch t.p._inotify to point to libc. Without this,
   # twisted.python.runtime.platform.supportsINotify() == False
-  patchPhase = stdenv.lib.optionalString stdenv.isLinux ''
+  patchPhase = lib.optionalString stdenv.isLinux ''
     substituteInPlace src/twisted/python/_inotify.py --replace \
       "ctypes.util.find_library('c')" "'${stdenv.glibc.out}/lib/libc.so.6'"
   '';
@@ -49,7 +49,7 @@ buildPythonPackage rec {
   # Tests require network
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://twistedmatrix.com/";
     description = "Twisted, an event-driven networking engine written in Python";
     longDescription = ''
diff --git a/nixpkgs/pkgs/development/python-modules/twitter-common-collections/default.nix b/nixpkgs/pkgs/development/python-modules/twitter-common-collections/default.nix
index d562eac5cc7d..72f30514dc67 100644
--- a/nixpkgs/pkgs/development/python-modules/twitter-common-collections/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/twitter-common-collections/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , twitter-common-lang
@@ -15,7 +15,7 @@ buildPythonPackage rec {
 
   propagatedBuildInputs = [ twitter-common-lang ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Twitter's common collections";
     homepage    = "https://twitter.github.io/commons/";
     license     = licenses.asl20;
diff --git a/nixpkgs/pkgs/development/python-modules/twitter-common-confluence/default.nix b/nixpkgs/pkgs/development/python-modules/twitter-common-confluence/default.nix
index 1253b8077e75..ee5bf9bdbe10 100644
--- a/nixpkgs/pkgs/development/python-modules/twitter-common-confluence/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/twitter-common-confluence/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , twitter-common-log
@@ -15,7 +15,7 @@ buildPythonPackage rec {
 
   propagatedBuildInputs = [ twitter-common-log ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Twitter's API to the confluence wiki";
     homepage    = "https://twitter.github.io/commons/";
     license     = licenses.asl20;
diff --git a/nixpkgs/pkgs/development/python-modules/twitter-common-dirutil/default.nix b/nixpkgs/pkgs/development/python-modules/twitter-common-dirutil/default.nix
index df2f614c5a04..14b0bcd0673c 100644
--- a/nixpkgs/pkgs/development/python-modules/twitter-common-dirutil/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/twitter-common-dirutil/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , twitter-common-lang
@@ -15,7 +15,7 @@ buildPythonPackage rec {
 
   propagatedBuildInputs = [ twitter-common-lang ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Utilities for manipulating and finding files and directories";
     homepage    = "https://twitter.github.io/commons/";
     license     = licenses.asl20;
diff --git a/nixpkgs/pkgs/development/python-modules/twitter-common-lang/default.nix b/nixpkgs/pkgs/development/python-modules/twitter-common-lang/default.nix
index 59f6d74ad67a..4b4a5c0fc2e2 100644
--- a/nixpkgs/pkgs/development/python-modules/twitter-common-lang/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/twitter-common-lang/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 }:
@@ -12,7 +12,7 @@ buildPythonPackage rec {
     sha256 = "6e967ca2b5bb96ea749d21052f45b18e37deb5cc160eb12c64a8f1cb9dba7a22";
   };
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Twitter's 2.x / 3.x compatibility swiss-army knife";
     homepage    = "https://twitter.github.io/commons/";
     license     = licenses.asl20;
diff --git a/nixpkgs/pkgs/development/python-modules/twitter-common-log/default.nix b/nixpkgs/pkgs/development/python-modules/twitter-common-log/default.nix
index 1c3d1808f5dd..8cf99c39dc20 100644
--- a/nixpkgs/pkgs/development/python-modules/twitter-common-log/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/twitter-common-log/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , twitter-common-options
@@ -16,7 +16,7 @@ buildPythonPackage rec {
 
   propagatedBuildInputs = [ twitter-common-options twitter-common-dirutil ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Twitter's common logging library";
     homepage    = "https://twitter.github.io/commons/";
     license     = licenses.asl20;
diff --git a/nixpkgs/pkgs/development/python-modules/twitter-common-options/default.nix b/nixpkgs/pkgs/development/python-modules/twitter-common-options/default.nix
index 12e55a46ab8e..a5505330bc0a 100644
--- a/nixpkgs/pkgs/development/python-modules/twitter-common-options/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/twitter-common-options/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 }:
@@ -12,7 +12,7 @@ buildPythonPackage rec {
     sha256 = "a495bcdffc410039bc4166f1a30c2caa3c92769d7a161a4a39d3651836dd27e1";
   };
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Twitter's optparse wrapper";
     homepage    = "https://twitter.github.io/commons/";
     license     = licenses.asl20;
diff --git a/nixpkgs/pkgs/development/python-modules/twitter/default.nix b/nixpkgs/pkgs/development/python-modules/twitter/default.nix
index 2e8481198a41..23d647d93153 100644
--- a/nixpkgs/pkgs/development/python-modules/twitter/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/twitter/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 }:
@@ -14,7 +14,7 @@ buildPythonPackage rec {
 
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Twitter API library";
     license     = licenses.mit;
     maintainers = with maintainers; [ thoughtpolice ];
diff --git a/nixpkgs/pkgs/development/python-modules/txaio/default.nix b/nixpkgs/pkgs/development/python-modules/txaio/default.nix
index 7e87a2d59ea4..4d756fa89f3f 100644
--- a/nixpkgs/pkgs/development/python-modules/txaio/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/txaio/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi, pytest, mock, six, twisted, isPy37, isPy27 }:
+{ lib, stdenv, buildPythonPackage, fetchPypi, pytest, mock, six, twisted, isPy37, isPy27 }:
 
 buildPythonPackage rec {
   pname = "txaio";
@@ -21,7 +21,7 @@ buildPythonPackage rec {
   # Needs some fixing
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Utilities to support code that runs unmodified on Twisted and asyncio.";
     homepage    = "https://github.com/crossbario/txaio";
     license     = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/txamqp/default.nix b/nixpkgs/pkgs/development/python-modules/txamqp/default.nix
index db973dbffbed..f0e3904a8815 100644
--- a/nixpkgs/pkgs/development/python-modules/txamqp/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/txamqp/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , twisted
@@ -15,7 +15,7 @@ buildPythonPackage rec {
 
   propagatedBuildInputs = [ twisted ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://github.com/txamqp/txamqp";
     description = "Library for communicating with AMQP peers and brokers using Twisted";
     license = licenses.asl20;
diff --git a/nixpkgs/pkgs/development/python-modules/txdbus/default.nix b/nixpkgs/pkgs/development/python-modules/txdbus/default.nix
index f6bc44981fb1..461ddeee34b4 100644
--- a/nixpkgs/pkgs/development/python-modules/txdbus/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/txdbus/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi, six, twisted }:
+{ lib, stdenv, buildPythonPackage, fetchPypi, six, twisted }:
 
 buildPythonPackage rec {
   pname = "txdbus";
@@ -12,7 +12,7 @@ buildPythonPackage rec {
   propagatedBuildInputs = [ six twisted ];
   pythonImportsCheck = [ "txdbus" ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Native Python implementation of DBus for Twisted";
     homepage = "https://github.com/cocagne/txdbus";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/txgithub/default.nix b/nixpkgs/pkgs/development/python-modules/txgithub/default.nix
index 5340b202e688..402e5011ede6 100644
--- a/nixpkgs/pkgs/development/python-modules/txgithub/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/txgithub/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , pyopenssl
@@ -29,7 +29,7 @@ buildPythonPackage rec {
   # No tests distributed
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "GitHub API client implemented using Twisted.";
     homepage    = "https://github.com/tomprince/txgithub";
     license     = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/txrequests/default.nix b/nixpkgs/pkgs/development/python-modules/txrequests/default.nix
index ee7d09d51657..06979e2b9b39 100644
--- a/nixpkgs/pkgs/development/python-modules/txrequests/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/txrequests/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , twisted
@@ -25,7 +25,7 @@ buildPythonPackage rec {
     ${python.interpreter} -m unittest discover
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Asynchronous Python HTTP for Humans.";
     homepage    = "https://github.com/tardyp/txrequests";
     license     = licenses.asl20;
diff --git a/nixpkgs/pkgs/development/python-modules/typeguard/default.nix b/nixpkgs/pkgs/development/python-modules/typeguard/default.nix
index ee36a6dab810..448e52af7afa 100644
--- a/nixpkgs/pkgs/development/python-modules/typeguard/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/typeguard/default.nix
@@ -1,7 +1,7 @@
 { buildPythonPackage
 , fetchPypi
 , pythonOlder
-, stdenv
+, lib, stdenv
 , setuptools_scm
 , pytest
 , typing-extensions
@@ -34,7 +34,7 @@ buildPythonPackage rec {
 
   disabled = pythonOlder "3.3";
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "This library provides run-time type checking for functions defined with argument type annotations";
     homepage = "https://github.com/agronholm/typeguard";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/typesystem/default.nix b/nixpkgs/pkgs/development/python-modules/typesystem/default.nix
index bfaed58b13fb..e993363769a8 100644
--- a/nixpkgs/pkgs/development/python-modules/typesystem/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/typesystem/default.nix
@@ -2,7 +2,7 @@
 , buildPythonPackage
 , fetchFromGitHub
 , isPy27
-, pytest
+, pytestCheckHook
 , pytestcov
 , jinja2
 , pyyaml
@@ -26,14 +26,11 @@ buildPythonPackage rec {
   ];
 
   checkInputs = [
-    pytest
+    pytestCheckHook
     pytestcov
   ];
 
-  # for some reason jinja2 not picking up forms directory (1% of tests)
-  checkPhase = ''
-    pytest --ignore=tests/test_forms.py
-  '';
+  disabledTests = [ "test_to_json_schema_complex_regular_expression" ];
 
   meta = with lib; {
     description = "A type system library for Python";
diff --git a/nixpkgs/pkgs/development/python-modules/typogrify/default.nix b/nixpkgs/pkgs/development/python-modules/typogrify/default.nix
index f5724877bf2b..faa1c8641c05 100644
--- a/nixpkgs/pkgs/development/python-modules/typogrify/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/typogrify/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , isPyPy
@@ -22,7 +22,7 @@ buildPythonPackage rec {
   # Wants to set up Django
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Filters to enhance web typography, including support for Django & Jinja templates";
     homepage = "https://github.com/mintchaos/typogrify";
     license = licenses.bsd3;
diff --git a/nixpkgs/pkgs/development/python-modules/tzlocal/default.nix b/nixpkgs/pkgs/development/python-modules/tzlocal/default.nix
index e5ab11595303..df0923833fd5 100644
--- a/nixpkgs/pkgs/development/python-modules/tzlocal/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/tzlocal/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi
+{ lib, stdenv, buildPythonPackage, fetchPypi
 , pytz }:
 
 buildPythonPackage rec {
@@ -15,7 +15,7 @@ buildPythonPackage rec {
   # test fail (timezone test fail)
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Tzinfo object for the local timezone";
     homepage = "https://github.com/regebro/tzlocal";
     license = licenses.cddl;
diff --git a/nixpkgs/pkgs/development/python-modules/ua-parser/default.nix b/nixpkgs/pkgs/development/python-modules/ua-parser/default.nix
index 875f0ee2075a..370ed527d193 100644
--- a/nixpkgs/pkgs/development/python-modules/ua-parser/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/ua-parser/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi, pyyaml }:
+{ lib, stdenv, buildPythonPackage, fetchPypi, pyyaml }:
 
 buildPythonPackage rec {
   pname = "ua-parser";
@@ -13,7 +13,7 @@ buildPythonPackage rec {
 
   doCheck = false; # requires files from uap-core
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "A python implementation of the UA Parser";
     homepage = "https://github.com/ua-parser/uap-python";
     license = licenses.asl20;
diff --git a/nixpkgs/pkgs/development/python-modules/uamqp/default.nix b/nixpkgs/pkgs/development/python-modules/uamqp/default.nix
index a0d24785eb69..05bc653b0591 100644
--- a/nixpkgs/pkgs/development/python-modules/uamqp/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/uamqp/default.nix
@@ -1,23 +1,37 @@
-{ lib, buildPythonPackage, fetchPypi, isPy3k
+{ stdenv
+, lib
+, buildPythonPackage
+, fetchPypi
+, fetchpatch
+, isPy3k
 , certifi
-, CFNetwork
 , cmake
 , enum34
 , openssl
-, Security
 , six
-, stdenv
+, CFNetwork
+, CoreFoundation
+, Security
 }:
 
 buildPythonPackage rec {
   pname = "uamqp";
-  version = "1.2.12";
+  version = "1.2.13";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "c6657f1d8aae566b89d02c6282827dddcec2a90f75dc0d2d91a47e00c8999d99";
+    sha256 = "sha256-zDUFe/yMCThn+qJqDekMrUHEf1glGxBw4pioExLLoqg=";
   };
 
+  patches = [
+    (fetchpatch {
+      url = "https://github.com/Azure/azure-c-shared-utility/commit/52ab2095649b5951e6af77f68954209473296983.patch";
+      sha256 = "06pxhdpkv94pv3lhj1vy0wlsqsdznz485bvg3zafj67r55g40lhd";
+      stripLen = "2";
+      extraPrefix = "src/vendor/azure-uamqp-c/deps/azure-c-shared-utility/";
+    })
+  ];
+
   buildInputs = [
     openssl
     certifi
@@ -25,7 +39,9 @@ buildPythonPackage rec {
   ] ++ lib.optionals (!isPy3k) [
     enum34
   ] ++ lib.optionals stdenv.isDarwin [
-    CFNetwork Security
+    CoreFoundation
+    CFNetwork
+    Security
   ];
 
   dontUseCmakeConfigure = true;
diff --git a/nixpkgs/pkgs/development/python-modules/ufoprocessor/default.nix b/nixpkgs/pkgs/development/python-modules/ufoprocessor/default.nix
index db5b1400fe45..b0f5b11ad3a4 100644
--- a/nixpkgs/pkgs/development/python-modules/ufoprocessor/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/ufoprocessor/default.nix
@@ -26,6 +26,15 @@ buildPythonPackage rec {
     mutatormath
   ];
 
+  checkPhase = ''
+    runHook preCheck
+    for t in Tests/*.py; do
+      # https://github.com/LettError/ufoProcessor/issues/32
+      [[ "$(basename "$t")" = "tests_fp.py" ]] || python "$t"
+    done
+    runHook postCheck
+  '';
+
   meta = with lib; {
     description = "Read, write and generate UFOs with designspace data";
     homepage = "https://github.com/LettError/ufoProcessor";
diff --git a/nixpkgs/pkgs/development/python-modules/ujson/2.nix b/nixpkgs/pkgs/development/python-modules/ujson/2.nix
index e1d1185f6f5e..f31b26a1960a 100644
--- a/nixpkgs/pkgs/development/python-modules/ujson/2.nix
+++ b/nixpkgs/pkgs/development/python-modules/ujson/2.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , setuptools_scm
@@ -20,7 +20,7 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://pypi.python.org/pypi/ujson";
     description = "Ultra fast JSON encoder and decoder for Python";
     license = licenses.bsd3;
diff --git a/nixpkgs/pkgs/development/python-modules/ujson/default.nix b/nixpkgs/pkgs/development/python-modules/ujson/default.nix
index e7a9ee8f35a7..1c12a092a2f5 100644
--- a/nixpkgs/pkgs/development/python-modules/ujson/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/ujson/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , isPy3k
@@ -18,7 +18,7 @@ buildPythonPackage rec {
 
   nativeBuildInputs = [ setuptools_scm ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://pypi.python.org/pypi/ujson";
     description = "Ultra fast JSON encoder and decoder for Python";
     license = licenses.bsd3;
diff --git a/nixpkgs/pkgs/development/python-modules/umalqurra/default.nix b/nixpkgs/pkgs/development/python-modules/umalqurra/default.nix
index 2eea9ebf385c..4411dbac11b8 100644
--- a/nixpkgs/pkgs/development/python-modules/umalqurra/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/umalqurra/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 }:
@@ -17,7 +17,7 @@ buildPythonPackage rec {
 
   # See for license
   # https://github.com/tytkal/python-hijiri-ummalqura/issues/4
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Date Api that support Hijri Umalqurra calendar";
     homepage = "https://github.com/tytkal/python-hijiri-ummalqura";
     license = with licenses; [ publicDomain ];
diff --git a/nixpkgs/pkgs/development/python-modules/umemcache/default.nix b/nixpkgs/pkgs/development/python-modules/umemcache/default.nix
index 07bb181958ad..f852483cda68 100644
--- a/nixpkgs/pkgs/development/python-modules/umemcache/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/umemcache/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, isPy3k, fetchurl }:
+{ lib, stdenv, buildPythonPackage, isPy3k, fetchurl }:
 
 buildPythonPackage rec {
   pname = "umemcache";
@@ -12,7 +12,7 @@ buildPythonPackage rec {
 
   hardeningDisable = [ "format" ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Ultra fast memcache client written in highly optimized C++ with Python bindings";
     homepage = "https://github.com/esnme/ultramemcache";
     license = licenses.bsdOriginal;
diff --git a/nixpkgs/pkgs/development/python-modules/uncertainties/default.nix b/nixpkgs/pkgs/development/python-modules/uncertainties/default.nix
index 84705be59bc1..117188198ca8 100644
--- a/nixpkgs/pkgs/development/python-modules/uncertainties/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/uncertainties/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchPypi, buildPythonPackage
+{ lib, stdenv, fetchPypi, buildPythonPackage
 , nose, numpy, future
 }:
 
@@ -16,7 +16,7 @@ buildPythonPackage rec {
 
   checkPhase = "python setup.py nosetests -sv";
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://pythonhosted.org/uncertainties/";
     description = "Transparent calculations with uncertainties on the quantities involved (aka error propagation)";
     maintainers = with maintainers; [ rnhmjoj ];
diff --git a/nixpkgs/pkgs/development/python-modules/uncompyle6/default.nix b/nixpkgs/pkgs/development/python-modules/uncompyle6/default.nix
index 425b2e31ca61..4f8d461c87e2 100644
--- a/nixpkgs/pkgs/development/python-modules/uncompyle6/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/uncompyle6/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , pythonAtLeast
@@ -30,7 +30,7 @@ buildPythonPackage rec {
     runHook postCheck
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Python cross-version byte-code deparser";
     homepage = "https://github.com/rocky/python-uncompyle6/";
     license = licenses.gpl3;
diff --git a/nixpkgs/pkgs/development/python-modules/unicode-slugify/default.nix b/nixpkgs/pkgs/development/python-modules/unicode-slugify/default.nix
index 111ff6278eab..80ac5151b53f 100644
--- a/nixpkgs/pkgs/development/python-modules/unicode-slugify/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/unicode-slugify/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , nose
@@ -20,7 +20,7 @@ buildPythonPackage rec {
 
   checkInputs = [ nose unittest2 ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Generates unicode slugs";
     homepage = "https://pypi.org/project/unicode-slugify/";
     license = licenses.bsd3;
diff --git a/nixpkgs/pkgs/development/python-modules/unicodecsv/default.nix b/nixpkgs/pkgs/development/python-modules/unicodecsv/default.nix
index 83ef602de600..9393ff58bc27 100644
--- a/nixpkgs/pkgs/development/python-modules/unicodecsv/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/unicodecsv/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 }:
@@ -15,7 +15,7 @@ buildPythonPackage rec {
   # ImportError: No module named runtests
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Drop-in replacement for Python2's stdlib csv module, with unicode support";
     homepage = "https://github.com/jdunck/python-unicodecsv";
     maintainers = with maintainers; [ koral ];
diff --git a/nixpkgs/pkgs/development/python-modules/unicorn/default.nix b/nixpkgs/pkgs/development/python-modules/unicorn/default.nix
index 8bd6507bb5ba..484f422adf3e 100644
--- a/nixpkgs/pkgs/development/python-modules/unicorn/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/unicorn/default.nix
@@ -1,8 +1,8 @@
-{ stdenv, buildPythonPackage, setuptools, unicorn-emu }:
+{ lib, stdenv, buildPythonPackage, setuptools, unicorn-emu }:
 
 buildPythonPackage rec {
   pname = "unicorn";
-  version = stdenv.lib.getVersion unicorn-emu;
+  version = lib.getVersion unicorn-emu;
 
   src = unicorn-emu.src;
   sourceRoot = "source/bindings/python";
@@ -14,7 +14,7 @@ buildPythonPackage rec {
 
   propagatedBuildInputs = [ setuptools ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Python bindings for Unicorn CPU emulator engine";
     homepage = "https://www.unicorn-engine.org/";
     license = [ licenses.gpl2 ];
diff --git a/nixpkgs/pkgs/development/python-modules/unidecode/default.nix b/nixpkgs/pkgs/development/python-modules/unidecode/default.nix
index 0ff066850ddb..34de3d713866 100644
--- a/nixpkgs/pkgs/development/python-modules/unidecode/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/unidecode/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi, glibcLocales }:
+{ lib, stdenv, buildPythonPackage, fetchPypi, glibcLocales }:
 
 buildPythonPackage rec {
   pname = "Unidecode";
@@ -13,7 +13,7 @@ buildPythonPackage rec {
 
   buildInputs = [ glibcLocales ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://pypi.python.org/pypi/Unidecode/";
     description = "ASCII transliterations of Unicode text";
     license = licenses.gpl2;
diff --git a/nixpkgs/pkgs/development/python-modules/unifi/default.nix b/nixpkgs/pkgs/development/python-modules/unifi/default.nix
index 4d2eae618c32..66ab9ba3972b 100644
--- a/nixpkgs/pkgs/development/python-modules/unifi/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/unifi/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage
+{ lib, stdenv, buildPythonPackage
 , fetchPypi, urllib3 }:
 
 buildPythonPackage rec {
@@ -15,7 +15,7 @@ buildPythonPackage rec {
   # upstream has no tests
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "An API towards the Ubiquity Networks UniFi controller";
     homepage    = "https://pypi.python.org/pypi/unifi/";
     license     = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/unifiled/default.nix b/nixpkgs/pkgs/development/python-modules/unifiled/default.nix
new file mode 100644
index 000000000000..68fa57165df2
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/unifiled/default.nix
@@ -0,0 +1,34 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, requests
+, urllib3
+}:
+
+buildPythonPackage rec {
+  pname = "unifiled";
+  version = "1.1";
+
+  src = fetchFromGitHub {
+    owner = "florisvdk";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "1nmqxxhwa0isxdb889nhbp7w4axj1mcrwd3pr9d8nhpw4yj9h3vq";
+  };
+
+  propagatedBuildInputs = [
+    requests
+    urllib3
+  ];
+
+  # Project doesn't have any tests
+  doCheck = false;
+  pythonImportsCheck = [ "unifiled" ];
+
+  meta = with lib; {
+    description = "Python module for Ubiquiti Unifi LED controller";
+    homepage = "https://github.com/florisvdk/unifiled";
+    license = with licenses; [ mit ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/unittest2/default.nix b/nixpkgs/pkgs/development/python-modules/unittest2/default.nix
index 65774d1e33ab..a7c1252f4b46 100644
--- a/nixpkgs/pkgs/development/python-modules/unittest2/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/unittest2/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , six
@@ -29,7 +29,7 @@ buildPythonPackage rec {
     sed -i 's/version=VERSION/version=str(VERSION)/' setup.py
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "A backport of the new features added to the unittest testing framework";
     homepage = "https://pypi.python.org/pypi/unittest2";
     license = licenses.bsd0;
diff --git a/nixpkgs/pkgs/development/python-modules/unpaddedbase64/default.nix b/nixpkgs/pkgs/development/python-modules/unpaddedbase64/default.nix
index 386478cbb752..52d2a42b4baf 100644
--- a/nixpkgs/pkgs/development/python-modules/unpaddedbase64/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/unpaddedbase64/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchFromGitHub
 }:
@@ -14,7 +14,7 @@ buildPythonPackage rec {
     sha256 = "0if3fjfxga0bwdq47v77fs9hrcqpmwdxry2i2a7pdqsp95258nxd";
   };
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://github.com/matrix-org/python-unpaddedbase64";
     description = "Unpadded Base64";
     license = licenses.asl20;
diff --git a/nixpkgs/pkgs/development/python-modules/upass/default.nix b/nixpkgs/pkgs/development/python-modules/upass/default.nix
index 2d532be36404..442876d7a975 100644
--- a/nixpkgs/pkgs/development/python-modules/upass/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/upass/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchurl
 , pyperclip
@@ -18,7 +18,7 @@ buildPythonPackage rec {
 
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Console UI for pass";
     homepage = "https://github.com/Kwpolska/upass";
     license = licenses.bsd3;
diff --git a/nixpkgs/pkgs/development/python-modules/update_checker/default.nix b/nixpkgs/pkgs/development/python-modules/update_checker/default.nix
index 6779a50e2c47..f9171e8cbc9d 100644
--- a/nixpkgs/pkgs/development/python-modules/update_checker/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/update_checker/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi, requests, isPy27
+{ lib, stdenv, buildPythonPackage, fetchPypi, requests, isPy27
 }:
 
 buildPythonPackage rec {
@@ -16,7 +16,7 @@ buildPythonPackage rec {
   # requires network
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "A python module that will check for package updates";
     homepage = "https://github.com/bboe/update_checker";
     license = licenses.bsd2;
diff --git a/nixpkgs/pkgs/development/python-modules/upnpy/default.nix b/nixpkgs/pkgs/development/python-modules/upnpy/default.nix
new file mode 100644
index 000000000000..d64ff4b875c8
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/upnpy/default.nix
@@ -0,0 +1,27 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+}:
+
+buildPythonPackage rec {
+  pname = "upnpy";
+  version = "1.1.8";
+
+  src = fetchFromGitHub {
+    owner = "5kyc0d3r";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "17rqcmmwsl0m4722b1cr74f80kqwq7cgxsy7lq9c88zf6srcgjsf";
+  };
+
+  # Project has not published tests yet
+  doCheck = false;
+  pythonImportsCheck = [ "upnpy" ];
+
+  meta = with lib; {
+    description = "UPnP client library for Python";
+    homepage = "https://github.com/5kyc0d3r/upnpy";
+    license = with licenses; [ mit ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/uproot3-methods/default.nix b/nixpkgs/pkgs/development/python-modules/uproot3-methods/default.nix
index 3a9457a574ba..5164bf854ada 100644
--- a/nixpkgs/pkgs/development/python-modules/uproot3-methods/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/uproot3-methods/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , numpy
@@ -21,7 +21,7 @@ buildPythonPackage rec {
   # No tests on PyPi
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://github.com/scikit-hep/uproot3-methods";
     description = "Pythonic mix-ins for ROOT classes";
     license = licenses.bsd3;
diff --git a/nixpkgs/pkgs/development/python-modules/uproot3/default.nix b/nixpkgs/pkgs/development/python-modules/uproot3/default.nix
index 0d0c2365b637..1150c76d2b48 100644
--- a/nixpkgs/pkgs/development/python-modules/uproot3/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/uproot3/default.nix
@@ -6,13 +6,13 @@
 
 buildPythonPackage rec {
   pname = "uproot3";
-  version = "3.14.1";
+  version = "3.14.2";
 
   src = fetchFromGitHub {
     owner = "scikit-hep";
     repo = "uproot3";
     rev = version;
-    sha256 = "1npwh4l96wg3m24jhfc8i84nfwfc18flrmymf80fx101wmpi2qz8";
+    sha256 = "sha256-6/e+qMgwyFUo8MRRTAaGp9WLPxE2fqMEK4paq26Epzc=";
   };
 
   nativeBuildInputs = [ pytestrunner ];
diff --git a/nixpkgs/pkgs/development/python-modules/uptime/default.nix b/nixpkgs/pkgs/development/python-modules/uptime/default.nix
index 0e1d10f7ae5e..8f8c067d36ae 100644
--- a/nixpkgs/pkgs/development/python-modules/uptime/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/uptime/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 }:
@@ -12,7 +12,7 @@ buildPythonPackage rec {
     sha256 = "0wr9jkixprlywz0plyn5p42a5fd31aiwvjrxdvj7r02vfxa04c3w";
   };
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://github.com/Cairnarvon/uptime";
     description = "Cross-platform way to retrieve system uptime and boot time";
     license = licenses.bsd2;
diff --git a/nixpkgs/pkgs/development/python-modules/uranium/default.nix b/nixpkgs/pkgs/development/python-modules/uranium/default.nix
index 0bcfa0305e8c..f5bca2ed0fef 100644
--- a/nixpkgs/pkgs/development/python-modules/uranium/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/uranium/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchFromGitHub, python, cmake
+{ lib, stdenv, buildPythonPackage, fetchFromGitHub, python, cmake
 , pyqt5, numpy, scipy, shapely, libarcus, doxygen, gettext, pythonOlder }:
 
 buildPythonPackage rec {
@@ -27,7 +27,7 @@ buildPythonPackage rec {
      UM/Application.py
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "A Python framework for building Desktop applications";
     homepage = "https://github.com/Ultimaker/Uranium";
     license = licenses.lgpl3Plus;
diff --git a/nixpkgs/pkgs/development/python-modules/uritools/default.nix b/nixpkgs/pkgs/development/python-modules/uritools/default.nix
index 570fc5dc7180..b06da7c6acc7 100644
--- a/nixpkgs/pkgs/development/python-modules/uritools/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/uritools/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi, isPy27 }:
+{ lib, stdenv, buildPythonPackage, fetchPypi, isPy27 }:
 
 buildPythonPackage rec {
   pname = "uritools";
@@ -10,7 +10,7 @@ buildPythonPackage rec {
     sha256 = "405917a31ce58a57c8ccd0e4ea290f38baf2f4823819c3688f5331f1aee4ccb0";
   };
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "RFC 3986 compliant, Unicode-aware, scheme-agnostic replacement for urlparse";
     license = licenses.mit;
     maintainers = [ maintainers.rvolosatovs ];
diff --git a/nixpkgs/pkgs/development/python-modules/url-normalize/default.nix b/nixpkgs/pkgs/development/python-modules/url-normalize/default.nix
new file mode 100644
index 000000000000..ea7825d9ffd2
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/url-normalize/default.nix
@@ -0,0 +1,45 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, poetry
+, pytest-cov
+, pytest-flakes
+, pytest-mock
+, pytest-socket
+, pytestCheckHook
+, six
+}:
+
+buildPythonPackage rec {
+  pname = "url-normalize";
+  version = "1.4.3";
+  format = "pyproject";
+
+  src = fetchFromGitHub {
+    owner = "niksite";
+    repo = pname;
+    rev = version;
+    sha256 = "09nac5nh94x0n4bfazjfxk96b20mfsx6r1fnvqv85gkzs0rwqkaq";
+  };
+
+  nativeBuildInputs = [ poetry ];
+
+  propagatedBuildInputs = [ six ];
+
+  checkInputs = [
+    pytest-cov
+    pytest-flakes
+    pytest-mock
+    pytest-socket
+    pytestCheckHook
+  ];
+
+  pythonImportsCheck = [ "url_normalize" ];
+
+  meta = with lib; {
+    description = "URL normalization for Python";
+    homepage = "https://github.com/niksite/url-normalize";
+    license = with licenses; [ mit ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/urlgrabber/default.nix b/nixpkgs/pkgs/development/python-modules/urlgrabber/default.nix
index 7af69e5ded89..3a7158be73c8 100644
--- a/nixpkgs/pkgs/development/python-modules/urlgrabber/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/urlgrabber/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi, pycurl, six }:
+{ lib, stdenv, buildPythonPackage, fetchPypi, pycurl, six }:
 
 buildPythonPackage rec {
   pname = "urlgrabber";
@@ -11,7 +11,7 @@ buildPythonPackage rec {
 
   propagatedBuildInputs = [ pycurl six ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "http://urlgrabber.baseurl.org";
     license = licenses.lgpl2Plus;
     description = "Python module for downloading files";
diff --git a/nixpkgs/pkgs/development/python-modules/urllib3/default.nix b/nixpkgs/pkgs/development/python-modules/urllib3/default.nix
index aafa11720a22..6cf7ce34d388 100644
--- a/nixpkgs/pkgs/development/python-modules/urllib3/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/urllib3/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi
+{ lib, buildPythonPackage, fetchPypi
 , pytest, mock, tornado, pyopenssl, cryptography
 , idna, certifi, ipaddress, pysocks }:
 
@@ -11,7 +11,7 @@ buildPythonPackage rec {
     sha256 = "19188f96923873c92ccb987120ec4acaa12f0461fa9ce5d3d0772bc965a39e08";
   };
 
-  NOSE_EXCLUDE = stdenv.lib.concatStringsSep "," [
+  NOSE_EXCLUDE = lib.concatStringsSep "," [
     "test_headers" "test_headerdict" "test_can_validate_ip_san" "test_delayed_body_read_timeout"
     "test_timeout_errors_cause_retries" "test_select_multiple_interrupts_with_event"
   ];
@@ -25,7 +25,7 @@ buildPythonPackage rec {
   checkInputs = [ pytest mock tornado ];
   propagatedBuildInputs = [ pyopenssl cryptography idna certifi ipaddress pysocks ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Powerful, sanity-friendly HTTP client for Python";
     homepage = "https://github.com/shazow/urllib3";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/urwid/default.nix b/nixpkgs/pkgs/development/python-modules/urwid/default.nix
index 0846d801059a..e3c5311136c2 100644
--- a/nixpkgs/pkgs/development/python-modules/urwid/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/urwid/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi, isPy3k, isPy27, glibcLocales }:
+{ lib, stdenv, buildPythonPackage, fetchPypi, isPy3k, isPy27, glibcLocales }:
 
 buildPythonPackage rec {
   pname = "urwid";
@@ -19,7 +19,7 @@ buildPythonPackage rec {
 
   pythonImportsCheck = [ "urwid" ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "A full-featured console (xterm et al.) user interface library";
     homepage = "http://excess.org/urwid";
     repositories.git = "git://github.com/wardi/urwid.git";
diff --git a/nixpkgs/pkgs/development/python-modules/urwidtrees/default.nix b/nixpkgs/pkgs/development/python-modules/urwidtrees/default.nix
index c441d93f6f76..4c3a3e896f86 100644
--- a/nixpkgs/pkgs/development/python-modules/urwidtrees/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/urwidtrees/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchFromGitHub
 , glibcLocales
@@ -29,7 +29,7 @@ buildPythonPackage rec {
   checkInputs = [ glibcLocales ];
   LC_ALL="en_US.UTF-8";
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Tree widgets for urwid";
     homepage = "https://github.com/pazz/urwidtrees";
     license = licenses.gpl3;
diff --git a/nixpkgs/pkgs/development/python-modules/usbtmc/default.nix b/nixpkgs/pkgs/development/python-modules/usbtmc/default.nix
index 34e6025dcfb6..b1f5b301dee4 100644
--- a/nixpkgs/pkgs/development/python-modules/usbtmc/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/usbtmc/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, buildPythonPackage, pyusb }:
+{ lib, stdenv, fetchurl, buildPythonPackage, pyusb }:
 
 buildPythonPackage rec {
   pname = "usbtmc";
@@ -11,7 +11,7 @@ buildPythonPackage rec {
 
   propagatedBuildInputs = [ pyusb ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Python implementation of the USBTMC instrument control protocol";
     homepage = "http://alexforencich.com/wiki/en/python-usbtmc/start";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/user-agents/default.nix b/nixpkgs/pkgs/development/python-modules/user-agents/default.nix
index 5fb926607bae..7f8470cfbdc8 100644
--- a/nixpkgs/pkgs/development/python-modules/user-agents/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/user-agents/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchFromGitHub, ua-parser }:
+{ lib, stdenv, buildPythonPackage, fetchFromGitHub, ua-parser }:
 
 buildPythonPackage rec {
   pname = "user-agents";
@@ -14,7 +14,7 @@ buildPythonPackage rec {
 
   propagatedBuildInputs = [ ua-parser ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "A Python library to identify devices by parsing user agent strings";
     homepage = "https://github.com/selwin/python-user-agents";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/utils/default.nix b/nixpkgs/pkgs/development/python-modules/utils/default.nix
new file mode 100644
index 000000000000..a6dd57e0e5ea
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/utils/default.nix
@@ -0,0 +1,32 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, mock
+, pytestCheckHook
+}:
+
+buildPythonPackage rec {
+  pname = "utils";
+  version = "1.0.1";
+
+  src = fetchFromGitHub {
+    owner = "haaksmash";
+    repo = "pyutils";
+    rev = version;
+    sha256 = "07pr39cfw5ayzkp6h53y7lfpd0w19pphsdzsf100fsyy3npavgbr";
+  };
+
+  checkInputs = [
+    mock
+    pytestCheckHook
+  ];
+
+  pythonImportsCheck = [ "utils" ];
+
+  meta = with lib; {
+    description = "Python set of utility functions and objects";
+    homepage = "https://github.com/haaksmash/pyutils";
+    license = with licenses; [ lgpl3Only ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/uvicorn/default.nix b/nixpkgs/pkgs/development/python-modules/uvicorn/default.nix
index 55511be4926c..36e8b12929e0 100644
--- a/nixpkgs/pkgs/development/python-modules/uvicorn/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/uvicorn/default.nix
@@ -1,4 +1,5 @@
 { stdenv
+, lib
 , buildPythonPackage
 , fetchFromGitHub
 , click
@@ -7,21 +8,26 @@
 , uvloop
 , websockets
 , wsproto
-, pytest
+, pytestCheckHook
+, pytest-mock
+, pyyaml
 , requests
+, trustme
+, typing-extensions
 , isPy27
+, pythonOlder
 }:
 
 buildPythonPackage rec {
   pname = "uvicorn";
-  version = "0.11.5";
+  version = "0.13.2";
   disabled = isPy27;
 
   src = fetchFromGitHub {
     owner = "encode";
     repo = pname;
     rev = version;
-    sha256 = "0cf0vw6kzxwlkvk5gw85wv3kg1kdil0wkq3s7rmxpvrk6gjk8jvq";
+    sha256 = "04zgmp9z46k72ay6cz7plga6d3w3a6x41anabm7ramp7jdqf6na9";
   };
 
   propagatedBuildInputs = [
@@ -31,25 +37,33 @@ buildPythonPackage rec {
     uvloop
     websockets
     wsproto
+  ] ++ lib.optionals (pythonOlder "3.8") [
+    typing-extensions
   ];
 
-  postPatch = ''
-    substituteInPlace setup.py \
-      --replace "h11==0.8.*" "h11" \
-      --replace "httptools==0.0.13" "httptools"
-  '';
-
-  checkInputs = [ pytest requests ];
+  checkInputs = [
+    pytestCheckHook
+    pytest-mock
+    pyyaml
+    requests
+    trustme
+  ];
 
   doCheck = !stdenv.isDarwin;
 
-  # watchgod required the watchgod package, which isn't available in nixpkgs
-  checkPhase = ''
-    pytest --ignore=tests/supervisors/test_watchgodreload.py \
-      -k 'not test_supported_upgrade_request and not test_invalid_upgrade[WSProtocol]'
-  '';
+  __darwinAllowLocalNetworking = true;
+
+  pytestFlagsArray = [
+    # watchgod required the watchgod package, which isn't available in nixpkgs
+    "--ignore=tests/supervisors/test_reload.py"
+  ];
+
+  disabledTests = [
+    "test_supported_upgrade_request"
+    "test_invalid_upgrade"
+  ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://www.uvicorn.org/";
     description = "The lightning-fast ASGI server";
     license = licenses.bsd3;
diff --git a/nixpkgs/pkgs/development/python-modules/validate-email/default.nix b/nixpkgs/pkgs/development/python-modules/validate-email/default.nix
index ea2c5a8db749..327cfcf3f0d3 100644
--- a/nixpkgs/pkgs/development/python-modules/validate-email/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/validate-email/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi }:
+{ lib, stdenv, buildPythonPackage, fetchPypi }:
 
 buildPythonPackage rec {
   pname = "validate-email";
@@ -13,7 +13,7 @@ buildPythonPackage rec {
   # No tests
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://github.com/syrusakbary/validate_email";
     description = "Verify if an email address is valid and really exists";
     license = licenses.lgpl3Plus;
diff --git a/nixpkgs/pkgs/development/python-modules/validictory/default.nix b/nixpkgs/pkgs/development/python-modules/validictory/default.nix
index 81e80375e680..e89b3d7bcd23 100644
--- a/nixpkgs/pkgs/development/python-modules/validictory/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/validictory/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 }:
@@ -14,7 +14,7 @@ buildPythonPackage rec {
 
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Validate dicts against a schema";
     homepage = "https://github.com/sunlightlabs/validictory";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/vcversioner/default.nix b/nixpkgs/pkgs/development/python-modules/vcversioner/default.nix
index 5f7f30e2c336..7d73a6e812dd 100644
--- a/nixpkgs/pkgs/development/python-modules/vcversioner/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/vcversioner/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi }:
+{ lib, stdenv, buildPythonPackage, fetchPypi }:
 
 buildPythonPackage rec {
   pname = "vcversioner";
@@ -9,7 +9,7 @@ buildPythonPackage rec {
     sha256 = "16z10sm78jd7ca3jbkgc3q5i8a8q7y1h21q1li21yy3rlhbhrrns";
   };
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "take version numbers from version control";
     homepage = "https://github.com/habnabit/vcversioner";
     license = licenses.isc;
diff --git a/nixpkgs/pkgs/development/python-modules/vdf/default.nix b/nixpkgs/pkgs/development/python-modules/vdf/default.nix
index 7d4e3e34b86d..9e4e92d21ae7 100644
--- a/nixpkgs/pkgs/development/python-modules/vdf/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/vdf/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchFromGitHub
+{ lib, stdenv, buildPythonPackage, fetchFromGitHub
 , pytest, pytestcov, mock }:
 
 buildPythonPackage rec {
@@ -15,7 +15,7 @@ buildPythonPackage rec {
   checkInputs = [ pytest pytestcov mock ];
   checkPhase = "make test";
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Library for working with Valve's VDF text format";
     homepage = "https://github.com/ValvePython/vdf";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/vdirsyncer/default.nix b/nixpkgs/pkgs/development/python-modules/vdirsyncer/default.nix
index b93050144eb6..bda65ab49076 100644
--- a/nixpkgs/pkgs/development/python-modules/vdirsyncer/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/vdirsyncer/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , isPy27
@@ -58,7 +58,7 @@ buildPythonPackage rec {
     "test_create_collections" # Flaky test exceeds deadline on hydra: https://github.com/pimutils/vdirsyncer/issues/837
   ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://github.com/pimutils/vdirsyncer";
     description = "Synchronize calendars and contacts";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/vega/default.nix b/nixpkgs/pkgs/development/python-modules/vega/default.nix
index b81481b0774a..3a36d5de6064 100644
--- a/nixpkgs/pkgs/development/python-modules/vega/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/vega/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage , fetchPypi, pythonOlder
+{ lib, stdenv, buildPythonPackage , fetchPypi, pythonOlder
 , pytest, jupyter_core, pandas, ipywidgets, jupyter, altair }:
 
 buildPythonPackage rec {
@@ -18,7 +18,7 @@ buildPythonPackage rec {
   doCheck = false;
   checkInputs = [ altair ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "An IPython/Jupyter widget for Vega and Vega-Lite";
     longDescription = ''
       To use this you have to enter a nix-shell with vega. Then run:
diff --git a/nixpkgs/pkgs/development/python-modules/venusian/default.nix b/nixpkgs/pkgs/development/python-modules/venusian/default.nix
index 06f0d55acf00..68d974aabec8 100644
--- a/nixpkgs/pkgs/development/python-modules/venusian/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/venusian/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , isPy27
@@ -22,7 +22,7 @@ buildPythonPackage rec {
     pytest
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "A library for deferring decorator actions";
     homepage = "https://pylonsproject.org/";
     license = licenses.bsd0;
diff --git a/nixpkgs/pkgs/development/python-modules/versioneer/default.nix b/nixpkgs/pkgs/development/python-modules/versioneer/default.nix
index 31042c8cc1c4..fa3329503a36 100644
--- a/nixpkgs/pkgs/development/python-modules/versioneer/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/versioneer/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi, isPy27 }:
+{ lib, stdenv, buildPythonPackage, fetchPypi, isPy27 }:
 
 
 buildPythonPackage rec {
@@ -15,7 +15,7 @@ buildPythonPackage rec {
   # pip.
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Version-string management for VCS-controlled trees";
     homepage = "https://github.com/warner/python-versioneer";
     license = licenses.publicDomain;
diff --git a/nixpkgs/pkgs/development/python-modules/versiontools/default.nix b/nixpkgs/pkgs/development/python-modules/versiontools/default.nix
index ea282c22ddc8..45b34d95301d 100644
--- a/nixpkgs/pkgs/development/python-modules/versiontools/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/versiontools/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , isPy3k
@@ -15,7 +15,7 @@ buildPythonPackage rec {
 
   doCheck = (!isPy3k);
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://launchpad.net/versiontools";
     description = "Smart replacement for plain tuple used in __version__";
     license = licenses.lgpl2;
diff --git a/nixpkgs/pkgs/development/python-modules/veryprettytable/default.nix b/nixpkgs/pkgs/development/python-modules/veryprettytable/default.nix
index eff996c3ae4c..f2c8cee451d3 100644
--- a/nixpkgs/pkgs/development/python-modules/veryprettytable/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/veryprettytable/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , termcolor
@@ -16,7 +16,7 @@ buildPythonPackage rec {
 
   propagatedBuildInputs = [ termcolor colorama ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "A simple Python library for easily displaying tabular data in a visually appealing ASCII table format";
     homepage = "https://github.com/smeggingsmegger/VeryPrettyTable";
     license = licenses.free;
diff --git a/nixpkgs/pkgs/development/python-modules/vidstab/default.nix b/nixpkgs/pkgs/development/python-modules/vidstab/default.nix
index f43fe542677b..548105a01778 100644
--- a/nixpkgs/pkgs/development/python-modules/vidstab/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/vidstab/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , numpy
@@ -24,7 +24,7 @@ buildPythonPackage rec {
   # tests not packaged with pypi
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://github.com/AdamSpannbauer/python_video_stab";
     description = "Video Stabilization using OpenCV";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/vine/default.nix b/nixpkgs/pkgs/development/python-modules/vine/default.nix
index 1f4933d7dd8a..048fa435e0be 100644
--- a/nixpkgs/pkgs/development/python-modules/vine/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/vine/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi
+{ lib, stdenv, buildPythonPackage, fetchPypi
 , case, pytest, pythonOlder }:
 
 buildPythonPackage rec {
@@ -14,7 +14,7 @@ buildPythonPackage rec {
 
   buildInputs = [ case pytest ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Python promises";
     homepage = "https://github.com/celery/vine";
     license = licenses.bsd3;
diff --git a/nixpkgs/pkgs/development/python-modules/virtkey/default.nix b/nixpkgs/pkgs/development/python-modules/virtkey/default.nix
index 9ab89e9ac0dd..072fd25c7f07 100644
--- a/nixpkgs/pkgs/development/python-modules/virtkey/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/virtkey/default.nix
@@ -1,4 +1,4 @@
-{ lib, buildPythonPackage, fetchurl, pkgconfig, gtk2, libX11, libXtst, libXi, libxkbfile, xorgproto }:
+{ lib, buildPythonPackage, fetchurl, pkg-config, gtk2, libX11, libXtst, libXi, libxkbfile, xorgproto }:
 
 let
   majorVersion = "0.63";
@@ -12,7 +12,7 @@ in buildPythonPackage rec {
     sha256 = "0hd99hrxn6bh3rxcrdnad5cqjsphrn1s6fzx91q07d44k6cg6qcr";
   };
 
-  nativeBuildInputs = [ pkgconfig ];
+  nativeBuildInputs = [ pkg-config ];
 
   buildInputs = [ gtk2 libX11 libXtst libXi libxkbfile xorgproto ];
 
diff --git a/nixpkgs/pkgs/development/python-modules/virtual-display/default.nix b/nixpkgs/pkgs/development/python-modules/virtual-display/default.nix
index 958f8a01704c..7559ae1ccca5 100644
--- a/nixpkgs/pkgs/development/python-modules/virtual-display/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/virtual-display/default.nix
@@ -2,13 +2,13 @@
 
 buildPythonPackage rec {
   pname = "PyVirtualDisplay";
-  version = "1.3.2";
+  version = "2.0";
 
   propagatedBuildInputs = [ EasyProcess ];
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "3fa85a6e490e45eab64e6be19841e0ab15ec8054c97f162079a061da6a93eba0";
+    sha256 = "3cdacd70970a74d163a2417d8581f43a56bb1ac8d31c71a1a6a4348969062d65";
   };
 
   # requires X server
diff --git a/nixpkgs/pkgs/development/python-modules/virtualenv-clone/default.nix b/nixpkgs/pkgs/development/python-modules/virtualenv-clone/default.nix
index cc68d4b7090f..9b225021cf21 100644
--- a/nixpkgs/pkgs/development/python-modules/virtualenv-clone/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/virtualenv-clone/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , pytest
@@ -20,7 +20,7 @@ buildPythonPackage rec {
   # needs tox to run the tests
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://github.com/edwardgeorge/virtualenv-clone";
     description = "Script to clone virtualenvs";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/virtualenvwrapper/default.nix b/nixpkgs/pkgs/development/python-modules/virtualenvwrapper/default.nix
index 19ec56a1ece8..658f41126fc9 100644
--- a/nixpkgs/pkgs/development/python-modules/virtualenvwrapper/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/virtualenvwrapper/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , pbr
@@ -66,7 +66,7 @@ EOF
     done
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Enhancements to virtualenv";
     homepage = "https://pypi.python.org/pypi/virtualenvwrapper";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/vmprof/default.nix b/nixpkgs/pkgs/development/python-modules/vmprof/default.nix
index 149efb753e20..f8be722ef90f 100644
--- a/nixpkgs/pkgs/development/python-modules/vmprof/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/vmprof/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , colorama
@@ -24,7 +24,7 @@ buildPythonPackage rec {
   doCheck = false;
   pythonImportsCheck = [ "vmprof" ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "A vmprof client";
     license = licenses.mit;
     homepage = "https://vmprof.readthedocs.org/";
diff --git a/nixpkgs/pkgs/development/python-modules/vncdo/default.nix b/nixpkgs/pkgs/development/python-modules/vncdo/default.nix
index ffc01906f459..cb1b1677e1b5 100644
--- a/nixpkgs/pkgs/development/python-modules/vncdo/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/vncdo/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchFromGitHub
+{ lib, stdenv, fetchFromGitHub
 , buildPythonPackage, isPy27
 , pillow
 , twisted
@@ -27,7 +27,7 @@ buildPythonPackage rec {
 
   doCheck = !isPy27;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://github.com/sibson/vncdotool";
     description = "A command line VNC client and python library";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/voluptuous-serialize/default.nix b/nixpkgs/pkgs/development/python-modules/voluptuous-serialize/default.nix
index 383eed03a4e3..4c31b5f758a4 100644
--- a/nixpkgs/pkgs/development/python-modules/voluptuous-serialize/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/voluptuous-serialize/default.nix
@@ -1,4 +1,10 @@
-{ stdenv, buildPythonPackage, isPy3k, fetchPypi, voluptuous, pytest }:
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, isPy3k
+, pytestCheckHook
+, voluptuous
+}:
 
 buildPythonPackage rec  {
   pname = "voluptuous-serialize";
@@ -6,28 +12,24 @@ buildPythonPackage rec  {
 
   disabled = !isPy3k;
 
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "1r7avibzf009h5rlh7mbh1fc01daligvi2axjn5qxh810g5igfn6";
+  src = fetchFromGitHub {
+    owner = "home-assistant-libs";
+    repo = pname;
+    rev = version;
+    sha256 = "1km2y1xaagkdvsy3bmi1sc040x5yyfdw6llmwdv9z8nz67m9v1ya";
   };
 
-  propagatedBuildInputs = [
-    voluptuous
-  ];
+  propagatedBuildInputs = [ voluptuous ];
 
   checkInputs = [
-    pytest
+    pytestCheckHook
+    voluptuous
   ];
 
-  checkPhase = ''
-    py.test
-  '';
-
-  # no tests in PyPI tarball
-  doCheck = false;
+  pythonImportsCheck = [ "voluptuous_serialize" ];
 
-  meta = with stdenv.lib; {
-    homepage = "https://github.com/balloob/voluptuous-serialize";
+  meta = with lib; {
+    homepage = "https://github.com/home-assistant-libs/voluptuous-serialize";
     license = licenses.asl20;
     description = "Convert Voluptuous schemas to dictionaries so they can be serialized";
     maintainers = with maintainers; [ etu ];
diff --git a/nixpkgs/pkgs/development/python-modules/voluptuous/default.nix b/nixpkgs/pkgs/development/python-modules/voluptuous/default.nix
index 4d5b5d48fda5..63be8cd4bd05 100644
--- a/nixpkgs/pkgs/development/python-modules/voluptuous/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/voluptuous/default.nix
@@ -1,12 +1,12 @@
-{ stdenv, buildPythonPackage, fetchPypi, nose }:
+{ lib, stdenv, buildPythonPackage, fetchPypi, nose }:
 
 buildPythonPackage rec {
   pname = "voluptuous";
-  version = "0.12.0";
+  version = "0.12.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1p5j3fgbpqj31fajkaisdrz10ah9667sijz4kp3m0sbgw6ag4kis";
+    sha256 = "0js4avmhmmys78z376xk1w9305hq5nad8zqrnksgmpc1j90p4db6";
   };
 
   checkInputs = [ nose ];
@@ -14,7 +14,7 @@ buildPythonPackage rec {
     nosetests
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Voluptuous is a Python data validation library";
     homepage = "http://alecthomas.github.io/voluptuous/";
     license = licenses.bsd3;
diff --git a/nixpkgs/pkgs/development/python-modules/vsure/default.nix b/nixpkgs/pkgs/development/python-modules/vsure/default.nix
new file mode 100644
index 000000000000..578578a21b17
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/vsure/default.nix
@@ -0,0 +1,28 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, requests
+}:
+
+buildPythonPackage rec {
+  pname = "vsure";
+  version = "1.6.1";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1lsr0wl1dwbzpn68ww348yk6v42bw89nrghz5gjsimrr428zw6qn";
+  };
+
+  propagatedBuildInputs = [ requests ];
+
+  # Project has no tests
+  doCheck = false;
+  pythonImportsCheck = [ "verisure" ];
+
+  meta = with lib; {
+    description = "Python library for working with verisure devices";
+    homepage = "https://github.com/persandstrom/python-verisure";
+    license = with licenses; [ mit ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/vultr/default.nix b/nixpkgs/pkgs/development/python-modules/vultr/default.nix
index 236e4121cf86..d4349d310be2 100644
--- a/nixpkgs/pkgs/development/python-modules/vultr/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/vultr/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchFromGitHub
 , requests
@@ -20,7 +20,7 @@ buildPythonPackage rec {
   # Tests disabled. They fail because they try to access the network
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Vultr.com API Client";
     homepage = "https://github.com/spry-group/python-vultr";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/vulture/default.nix b/nixpkgs/pkgs/development/python-modules/vulture/default.nix
index 76f379ef8449..7ab5bcbb65bc 100644
--- a/nixpkgs/pkgs/development/python-modules/vulture/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/vulture/default.nix
@@ -1,19 +1,34 @@
-{ stdenv, buildPythonPackage, fetchPypi, isPy27, coverage, pytest, pytestcov }:
+{ lib
+, buildPythonPackage
+, coverage
+, fetchPypi
+, isPy27
+, pytest-cov
+, pytestCheckHook
+, toml
+}:
 
 buildPythonPackage rec {
   pname = "vulture";
-  version = "2.1";
+  version = "2.3";
   disabled = isPy27;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "933bf7f3848e9e39ecab6a12faa59d5185471c887534abac13baea6fe8138cc2";
+    sha256 = "0ryrmsm72z3fzaanyblz49q40h9d3bbl4pspn2lvkkp9rcmsdm83";
   };
 
-  checkInputs = [ coverage pytest pytestcov ];
-  checkPhase = "pytest";
+  propagatedBuildInputs = [ toml ];
 
-  meta = with stdenv.lib; {
+  checkInputs = [
+    coverage
+    pytest-cov
+    pytestCheckHook
+  ];
+
+  pythonImportsCheck = [ "vulture" ];
+
+  meta = with lib; {
     description = "Finds unused code in Python programs";
     homepage = "https://github.com/jendrikseipp/vulture";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/vxi11/default.nix b/nixpkgs/pkgs/development/python-modules/vxi11/default.nix
index 15a9d7073abc..5d9531aa904d 100644
--- a/nixpkgs/pkgs/development/python-modules/vxi11/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/vxi11/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchFromGitHub, nose }:
+{ lib, stdenv, buildPythonPackage, fetchFromGitHub, nose }:
 
 buildPythonPackage rec {
   pname = "python-vxi11";
@@ -17,7 +17,7 @@ buildPythonPackage rec {
     nosetests
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "VXI-11 driver for controlling instruments over Ethernet";
     homepage = "https://github.com/python-ivi/python-vxi11";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/w3lib/default.nix b/nixpkgs/pkgs/development/python-modules/w3lib/default.nix
index a37f786c018d..ae404e01cfb9 100644
--- a/nixpkgs/pkgs/development/python-modules/w3lib/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/w3lib/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , six
@@ -16,7 +16,7 @@ buildPythonPackage rec {
 
   buildInputs = [ six pytest ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "A library of web-related functions";
     homepage = "https://github.com/scrapy/w3lib";
     license = licenses.bsd3;
diff --git a/nixpkgs/pkgs/development/python-modules/waitress/default.nix b/nixpkgs/pkgs/development/python-modules/waitress/default.nix
index 3812ed06b60c..09f4f66e0b52 100644
--- a/nixpkgs/pkgs/development/python-modules/waitress/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/waitress/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 }:
@@ -14,7 +14,7 @@ buildPythonPackage rec {
 
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
      homepage = "https://github.com/Pylons/waitress";
      description = "Waitress WSGI server";
      license = licenses.zpl20;
diff --git a/nixpkgs/pkgs/development/python-modules/wakeonlan/default.nix b/nixpkgs/pkgs/development/python-modules/wakeonlan/default.nix
index dd947c0555ce..29c30e7ba6ad 100644
--- a/nixpkgs/pkgs/development/python-modules/wakeonlan/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/wakeonlan/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchPypi, buildPythonPackage, setuptools_scm, pytest, mock }:
+{ lib, stdenv, fetchPypi, buildPythonPackage, setuptools_scm, pytest, mock }:
 
 buildPythonPackage rec {
   pname = "wakeonlan";
@@ -22,7 +22,7 @@ buildPythonPackage rec {
     py.test
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "A small python module for wake on lan";
     homepage = "https://github.com/remcohaszing/pywakeonlan";
     license = licenses.wtfpl;
diff --git a/nixpkgs/pkgs/development/python-modules/waqiasync/default.nix b/nixpkgs/pkgs/development/python-modules/waqiasync/default.nix
new file mode 100644
index 000000000000..3b8dfce61146
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/waqiasync/default.nix
@@ -0,0 +1,32 @@
+{ lib
+, aiohttp
+, async-timeout
+, buildPythonPackage
+, fetchPypi
+}:
+
+buildPythonPackage rec {
+  pname = "waqiasync";
+  version = "1.0.0";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1yxls7ywfg954c3vxgnp98qa1b8dsq9b2fld11fb9sx1k4mjc29d";
+  };
+
+  propagatedBuildInputs = [
+    aiohttp
+    async-timeout
+  ];
+
+  # Project has no tests
+  doCheck = false;
+  pythonImportsCheck = [ "waqiasync" ];
+
+  meta = with lib; {
+    description = "Python library for http://aqicn.org";
+    homepage = "https://github.com/andrey-git/waqi-async";
+    license = with licenses; [ mit ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/warlock/default.nix b/nixpkgs/pkgs/development/python-modules/warlock/default.nix
index 34815f99a94c..80dcabdcb207 100644
--- a/nixpkgs/pkgs/development/python-modules/warlock/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/warlock/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , six
@@ -18,7 +18,7 @@ buildPythonPackage rec {
 
   propagatedBuildInputs = [ six jsonpatch jsonschema jsonpointer ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://github.com/bcwaldon/warlock";
     description = "Python object model built on JSON schema and JSON patch";
     license = licenses.asl20;
diff --git a/nixpkgs/pkgs/development/python-modules/wasabi/default.nix b/nixpkgs/pkgs/development/python-modules/wasabi/default.nix
index ec9cbb3d5608..5a0c2ecaa5f5 100644
--- a/nixpkgs/pkgs/development/python-modules/wasabi/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/wasabi/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , pytestCheckHook
@@ -15,7 +15,7 @@ buildPythonPackage rec {
 
   checkInputs = [ pytestCheckHook ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "A lightweight console printing and formatting toolkit";
     homepage = "https://github.com/ines/wasabi";
     changelog = "https://github.com/ines/wasabi/releases/tag/v${version}";
diff --git a/nixpkgs/pkgs/development/python-modules/wasm/default.nix b/nixpkgs/pkgs/development/python-modules/wasm/default.nix
new file mode 100644
index 000000000000..f6c2cc42e387
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/wasm/default.nix
@@ -0,0 +1,27 @@
+{ buildPythonPackage
+, fetchPypi
+, lib
+}:
+
+buildPythonPackage rec {
+  pname = "wasm";
+  version = "1.2";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "179xcinfc35xgk0bf9y58kwxzymzk7c1p58w6khmqfiqvb91j3r8";
+  };
+
+  # there are no tests
+  doCheck = false;
+
+  pythonImportsCheck = [ "wasm" ];
+
+  meta = with lib; {
+    description = "WebAssembly decoder and disassembler";
+    homepage = "https://github.com/athre0z/wasm";
+    changelog = "https://github.com/athre0z/wasm/blob/master/CHANGELOG.md";
+    license = licenses.mit;
+    maintainers = with maintainers; [ arturcygan ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/wasmer/default.nix b/nixpkgs/pkgs/development/python-modules/wasmer/default.nix
new file mode 100644
index 000000000000..62c8a2a06b71
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/wasmer/default.nix
@@ -0,0 +1,71 @@
+{ lib
+, rustPlatform
+, fetchFromGitHub
+, maturin
+, buildPythonPackage
+, isPy38
+, python
+}:
+let
+  pname = "wasmer";
+  version = "1.0.0";
+
+  wheel = rustPlatform.buildRustPackage rec {
+    inherit pname version;
+
+    src = fetchFromGitHub {
+      owner = "wasmerio";
+      repo = "wasmer-python";
+      rev = version;
+      hash = "sha256-I1GfjLaPYMIHKh2m/5IQepUsJNiVUEJg49wyuuzUYtY=";
+    };
+
+    cargoHash = "sha256-txOOia1C4W+nsXuXp4EytEn82CFfSmiOYwRLC4WPImc=";
+
+    nativeBuildInputs = [ maturin python ];
+
+    preBuild = ''
+      cd packages/api
+    '';
+
+    buildPhase = ''
+      runHook preBuild
+      maturin build --release --manylinux off --strip
+      runHook postBuild
+    '';
+
+    postBuild = ''
+      cd ../..
+    '';
+
+    doCheck = false;
+
+    installPhase = ''
+      runHook preInstall
+      install -Dm644 -t $out target/wheels/*.whl
+      runHook postInstall
+    '';
+  };
+
+in
+buildPythonPackage rec {
+  inherit pname version;
+
+  format = "wheel";
+  src = wheel;
+
+  unpackPhase = ''
+    mkdir -p dist
+    cp $src/*.whl dist
+  '';
+
+  pythonImportsCheck = [ "wasmer" ];
+
+  meta = with lib; {
+    description = "Python extension to run WebAssembly binaries";
+    homepage = "https://github.com/wasmerio/wasmer-python";
+    license = licenses.mit;
+    platforms = platforms.linux;
+    maintainers = with maintainers; [ SuperSandro2000 ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/watchdog/default.nix b/nixpkgs/pkgs/development/python-modules/watchdog/default.nix
index ffec68785260..5cb8929b9dbe 100644
--- a/nixpkgs/pkgs/development/python-modules/watchdog/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/watchdog/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , argh
@@ -16,13 +16,13 @@ buildPythonPackage rec {
     sha256 = "e38bffc89b15bafe2a131f0e1c74924cf07dcec020c2e0a26cccd208831fcd43";
   };
 
-  buildInputs = stdenv.lib.optionals stdenv.isDarwin
+  buildInputs = lib.optionals stdenv.isDarwin
     [ pkgs.darwin.apple_sdk.frameworks.CoreServices ];
   propagatedBuildInputs = [ argh pathtools pyyaml ];
 
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Python API and shell utilities to monitor file system events";
     homepage = "https://github.com/gorakhargosh/watchdog";
     license = licenses.asl20;
diff --git a/nixpkgs/pkgs/development/python-modules/waterfurnace/default.nix b/nixpkgs/pkgs/development/python-modules/waterfurnace/default.nix
new file mode 100644
index 000000000000..a07c1e6333e8
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/waterfurnace/default.nix
@@ -0,0 +1,43 @@
+{ lib
+, buildPythonPackage
+, click
+, fetchFromGitHub
+, mock
+, pytest-runner
+, pytestCheckHook
+, requests
+, websocket_client
+}:
+
+buildPythonPackage rec {
+  pname = "waterfurnace";
+  version = "1.1.0";
+
+  src = fetchFromGitHub {
+    owner = "sdague";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "1ba247fw1fvi7zy31zj2wbjq7fajrbxhp139cl9jj67rfvxfv8xf";
+  };
+
+  propagatedBuildInputs = [
+    click
+    pytest-runner
+    requests
+    websocket_client
+  ];
+
+  checkInputs = [
+    mock
+    pytestCheckHook
+  ];
+
+  pythonImportsCheck = [ "waterfurnace" ];
+
+  meta = with lib; {
+    description = "Python interface to waterfurnace geothermal systems";
+    homepage = "https://github.com/sdague/waterfurnace";
+    license = with licenses; [ asl20 ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/weasyprint/default.nix b/nixpkgs/pkgs/development/python-modules/weasyprint/default.nix
index 06f7a9f1011b..a7188a3103f4 100644
--- a/nixpkgs/pkgs/development/python-modules/weasyprint/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/weasyprint/default.nix
@@ -11,7 +11,7 @@
   glib,
   pango,
   fontconfig,
-  stdenv,
+  lib, stdenv,
   pytest,
   pytestrunner,
   pytest-isort,
@@ -62,7 +62,7 @@ buildPythonPackage rec {
     sha256 = "0rwf43111ws74m8b1alkkxzz57g0np3vmd8as74adwnxslfcg4gs";
   };
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://weasyprint.org/";
     description = "Converts web documents to PDF";
     license = licenses.bsd3;
diff --git a/nixpkgs/pkgs/development/python-modules/web/default.nix b/nixpkgs/pkgs/development/python-modules/web/default.nix
index ab91d80b8c7b..84b4cc8dcfbb 100644
--- a/nixpkgs/pkgs/development/python-modules/web/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/web/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi, pytestCheckHook
+{ lib, stdenv, buildPythonPackage, fetchPypi, pytestCheckHook
 , cheroot
 , dbutils, mysqlclient, pymysql, mysql-connector, psycopg2
 }:
@@ -21,7 +21,7 @@ buildPythonPackage rec {
 
   checkInputs = [ pytestCheckHook dbutils mysqlclient pymysql mysql-connector psycopg2 ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Makes web apps";
     longDescription = ''
       Think about the ideal way to write a web app.
diff --git a/nixpkgs/pkgs/development/python-modules/webapp2/default.nix b/nixpkgs/pkgs/development/python-modules/webapp2/default.nix
index 01c1ca309d4c..048c5d91b1d2 100644
--- a/nixpkgs/pkgs/development/python-modules/webapp2/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/webapp2/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , webob
@@ -19,7 +19,7 @@ buildPythonPackage rec {
 
   propagatedBuildInputs = [ webob six ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Taking Google App Engine's webapp to the next level";
     homepage = "http://webapp-improved.appspot.com";
     license = licenses.asl20;
diff --git a/nixpkgs/pkgs/development/python-modules/webhelpers/default.nix b/nixpkgs/pkgs/development/python-modules/webhelpers/default.nix
index d88f8210ae1d..040341ed376a 100644
--- a/nixpkgs/pkgs/development/python-modules/webhelpers/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/webhelpers/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , routes
@@ -21,7 +21,7 @@ buildPythonPackage rec {
   # TODO: failing tests https://bitbucket.org/bbangert/webhelpers/pull-request/1/fix-error-on-webob-123/diff
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://webhelpers.readthedocs.org/en/latest/";
     description = "Web Helpers";
     license = licenses.free;
diff --git a/nixpkgs/pkgs/development/python-modules/webob/default.nix b/nixpkgs/pkgs/development/python-modules/webob/default.nix
index 17b20ecd34dd..78ca8f918a3f 100644
--- a/nixpkgs/pkgs/development/python-modules/webob/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/webob/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , nose
@@ -16,7 +16,7 @@ buildPythonPackage rec {
 
   propagatedBuildInputs = [ nose pytest ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "WSGI request and response object";
     homepage = "http://pythonpaste.org/webob/";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/websockify/default.nix b/nixpkgs/pkgs/development/python-modules/websockify/default.nix
index e885a1ba9b72..021344b2207a 100644
--- a/nixpkgs/pkgs/development/python-modules/websockify/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/websockify/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , numpy
@@ -15,7 +15,7 @@ buildPythonPackage rec {
 
   propagatedBuildInputs = [ numpy ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "WebSockets support for any application/server";
     homepage = "https://github.com/kanaka/websockify";
     license = licenses.lgpl3;
diff --git a/nixpkgs/pkgs/development/python-modules/webtest/default.nix b/nixpkgs/pkgs/development/python-modules/webtest/default.nix
index 48acb6c881de..98ee58d3f6c4 100644
--- a/nixpkgs/pkgs/development/python-modules/webtest/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/webtest/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , isPy27
@@ -35,7 +35,7 @@ buildPythonPackage rec {
   # Some of the tests use localhost networking.
   __darwinAllowLocalNetworking = true;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Helper to test WSGI applications";
     homepage = "https://webtest.readthedocs.org/en/latest/";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/webthing/default.nix b/nixpkgs/pkgs/development/python-modules/webthing/default.nix
new file mode 100644
index 000000000000..92e4ea5a8fb5
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/webthing/default.nix
@@ -0,0 +1,40 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, ifaddr
+, jsonschema
+, pyee
+, tornado
+, zeroconf
+}:
+
+buildPythonPackage rec {
+  pname = "webthing";
+  version = "0.15.0";
+
+  src = fetchFromGitHub {
+    owner = "WebThingsIO";
+    repo = "webthing-python";
+    rev = "v${version}";
+    sha256 = "06264rwchy4qmbn7lv7m00qg864y7aw3rngcqqcr9nvaqz4rb0fg";
+  };
+
+  propagatedBuildInputs = [
+    ifaddr
+    jsonschema
+    pyee
+    tornado
+    zeroconf
+  ];
+
+  # no tests are present
+  doCheck = false;
+  pythonImportsCheck = [ "webthing" ];
+
+  meta = with lib; {
+    description = "Python implementation of a Web Thing server";
+    homepage = "https://github.com/WebThingsIO/webthing-python";
+    license = with licenses; [ mpl20 ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/werkzeug/default.nix b/nixpkgs/pkgs/development/python-modules/werkzeug/default.nix
index fd634e51796e..7f35dd124d86 100644
--- a/nixpkgs/pkgs/development/python-modules/werkzeug/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/werkzeug/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi
+{ lib, stdenv, buildPythonPackage, fetchPypi
 , itsdangerous, hypothesis
 , pytestCheckHook, requests
 , pytest-timeout
@@ -17,11 +17,11 @@ buildPythonPackage rec {
   propagatedBuildInputs = [ itsdangerous ];
   checkInputs = [ pytestCheckHook requests hypothesis pytest-timeout ];
 
-  disabledTests = stdenv.lib.optionals stdenv.isDarwin [
+  disabledTests = lib.optionals stdenv.isDarwin [
     "test_get_machine_id"
   ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://palletsprojects.com/p/werkzeug/";
     description = "A WSGI utility library for Python";
     license = licenses.bsd3;
diff --git a/nixpkgs/pkgs/development/python-modules/wfuzz/default.nix b/nixpkgs/pkgs/development/python-modules/wfuzz/default.nix
index a43aa915ea0b..f42df0054952 100644
--- a/nixpkgs/pkgs/development/python-modules/wfuzz/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/wfuzz/default.nix
@@ -1,5 +1,6 @@
 { buildPythonPackage
 , chardet
+, colorama
 , configparser
 , fetchFromGitHub
 , future
@@ -8,44 +9,61 @@
 , mock
 , netaddr
 , pkgs
-, pyparsing
 , pycurl
+, pyparsing
 , pytest
+, pytestCheckHook
+, setuptools
 , six
+, stdenv
 }:
 
 buildPythonPackage rec {
   pname = "wfuzz";
-  version = "2.4.2";
+  version = "3.1.0";
 
   src = fetchFromGitHub {
     owner = "xmendez";
     repo = pname;
-    rev = "v.${version}";
-    sha256 = "15dihrc7jsvpxcmb4fp254s633mkjm7ksjfkr9pqaai49qmnddyf";
+    rev = "v${version}";
+    sha256 = "1izasczm2zwknwzxbfzqhlf4zp02jvb54ha1hfk4rlwiz0rr1kj4";
   };
 
-  buildInputs = [ pyparsing configparser ];
-
   propagatedBuildInputs = [
     chardet
-    future
     pycurl
     six
+    setuptools
+    pyparsing
+  ] ++ lib.optionals isPy27 [
+    mock
+    future
+  ] ++ lib.optionals stdenv.hostPlatform.isWindows [
+    colorama
   ];
 
-  checkInputs = [ netaddr pytest ] ++ lib.optionals isPy27 [ mock ];
+  checkInputs = [
+    netaddr
+    pytest
+    pytestCheckHook
+  ] ++ lib.optionals isPy27 [
+    mock
+  ];
 
-  # Skip tests requiring a local web server.
-  checkPhase = ''
-    HOME=$TMPDIR pytest \
-      tests/test_{moduleman,filterintro,reqresp,api,clparser,dotdict}.py
-  '';
+  preCheck = "export HOME=$(mktemp -d)";
+  # The skipped tests are requiring a local web server
+  pytestFlagsArray = [ "tests/test_{moduleman,filterintro,reqresp,api,clparser}.py" ];
+  pythonImportsCheck = [ "wfuzz" ];
 
   meta = with lib; {
-    description = "Web content fuzzer, to facilitate web applications assessments";
+    description = "Web content fuzzer to facilitate web applications assessments";
+    longDescription = ''
+      Wfuzz provides a framework to automate web applications security assessments
+      and could help you to secure your web applications by finding and exploiting
+      web application vulnerabilities.
+    '';
     homepage = "https://wfuzz.readthedocs.io";
-    license = licenses.gpl2;
+    license = with licenses; [ gpl2Only ];
     maintainers = with maintainers; [ pamplemousse ];
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/whisper/default.nix b/nixpkgs/pkgs/development/python-modules/whisper/default.nix
index 70709d3e6663..ad25df4868a4 100644
--- a/nixpkgs/pkgs/development/python-modules/whisper/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/whisper/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi, mock, six }:
+{ lib, stdenv, buildPythonPackage, fetchPypi, mock, six }:
 
 buildPythonPackage rec {
   pname = "whisper";
@@ -12,7 +12,7 @@ buildPythonPackage rec {
   propagatedBuildInputs = [ six ];
   checkInputs = [ mock ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "http://graphite.wikidot.com/";
     description = "Fixed size round-robin style database";
     maintainers = with maintainers; [ offline basvandijk ];
diff --git a/nixpkgs/pkgs/development/python-modules/whitenoise/default.nix b/nixpkgs/pkgs/development/python-modules/whitenoise/default.nix
index dbc069f434e4..2399c6ed73f2 100644
--- a/nixpkgs/pkgs/development/python-modules/whitenoise/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/whitenoise/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchPypi, buildPythonPackage, isPy27 }:
+{ lib, stdenv, fetchPypi, buildPythonPackage, isPy27 }:
 
 buildPythonPackage rec {
   pname = "whitenoise";
@@ -13,7 +13,7 @@ buildPythonPackage rec {
   # No tests
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Radically simplified static file serving for WSGI applications";
     homepage = "http://whitenoise.evans.io/";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/whoosh/default.nix b/nixpkgs/pkgs/development/python-modules/whoosh/default.nix
index e203cdb29344..f5bbccec2a5e 100644
--- a/nixpkgs/pkgs/development/python-modules/whoosh/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/whoosh/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi, pytest }:
+{ lib, stdenv, buildPythonPackage, fetchPypi, pytest }:
 
 buildPythonPackage rec {
   pname = "Whoosh";
@@ -20,7 +20,7 @@ buildPythonPackage rec {
     py.test -k "not test_timelimit and not test_minimize_dfa"
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Fast, pure-Python full text indexing, search, and spell
 checking library.";
     homepage    = "https://bitbucket.org/mchaput/whoosh";
diff --git a/nixpkgs/pkgs/development/python-modules/willow/default.nix b/nixpkgs/pkgs/development/python-modules/willow/default.nix
index e9e5001fec91..fbf4965117b3 100644
--- a/nixpkgs/pkgs/development/python-modules/willow/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/willow/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , pythonOlder
@@ -23,7 +23,7 @@ buildPythonPackage rec {
   # https://github.com/torchbox/Willow/issues/34
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "A Python image library that sits on top of Pillow, Wand and OpenCV";
     homepage = "https://github.com/torchbox/Willow/";
     license = licenses.bsd2;
diff --git a/nixpkgs/pkgs/development/python-modules/winacl/default.nix b/nixpkgs/pkgs/development/python-modules/winacl/default.nix
new file mode 100644
index 000000000000..c08c5541a61a
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/winacl/default.nix
@@ -0,0 +1,25 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+}:
+
+buildPythonPackage rec {
+  pname = "winacl";
+  version = "0.1.0";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "05xhdhbvzs1hcd8lxmdr9mpr6ifx5flhlvk6jr0qi6h25imhqclp";
+  };
+
+  # Project doesn't have tests
+  doCheck = false;
+  pythonImportsCheck = [ "winacl" ];
+
+  meta = with lib; {
+    description = "Python module for ACL/ACE/Security descriptor manipulation";
+    homepage = "https://github.com/skelsec/winacl";
+    license = with licenses; [ mit ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/winsspi/default.nix b/nixpkgs/pkgs/development/python-modules/winsspi/default.nix
new file mode 100644
index 000000000000..02156ba17e50
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/winsspi/default.nix
@@ -0,0 +1,28 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, minikerberos
+, pythonAtLeast
+}:
+
+buildPythonPackage rec {
+  pname = "winsspi";
+  version = "0.0.9";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1q8hr8l8d9jxyp55qsrlkyhdhqjc0n18ajzms7hf1xkhdl7rrbd2";
+  };
+  propagatedBuildInputs = [ minikerberos ];
+
+  # Project doesn't have tests
+  doCheck = false;
+  pythonImportsCheck = [ "winsspi" ];
+
+  meta = with lib; {
+    description = "Python module for ACL/ACE/Security descriptor manipulation";
+    homepage = "https://github.com/skelsec/winsspi";
+    license = with licenses; [ mit ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/word2vec/default.nix b/nixpkgs/pkgs/development/python-modules/word2vec/default.nix
index 1e448c377096..647914bfbe5f 100644
--- a/nixpkgs/pkgs/development/python-modules/word2vec/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/word2vec/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , fetchzip
@@ -43,7 +43,7 @@ buildPythonPackage rec {
     pytest
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Tool for computing continuous distributed representations of words";
     homepage = "https://github.com/danielfrg/word2vec";
     license = licenses.asl20;
diff --git a/nixpkgs/pkgs/development/python-modules/wordcloud/default.nix b/nixpkgs/pkgs/development/python-modules/wordcloud/default.nix
index 6ed44c1e0c20..b4dd108ae739 100644
--- a/nixpkgs/pkgs/development/python-modules/wordcloud/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/wordcloud/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchFromGitHub
+{ lib, stdenv, buildPythonPackage, fetchFromGitHub
 , matplotlib
 , mock
 , numpy
@@ -39,7 +39,7 @@ buildPythonPackage rec {
     })
   ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "A little word cloud generator in Python";
     homepage = "https://github.com/amueller/word_cloud";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/worldengine/default.nix b/nixpkgs/pkgs/development/python-modules/worldengine/default.nix
index dafa948f69d8..51c0de77917d 100644
--- a/nixpkgs/pkgs/development/python-modules/worldengine/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/worldengine/default.nix
@@ -1,9 +1,8 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , pythonOlder
 , isPy27
 , fetchFromGitHub
-, nose
 , noise
 , numpy
 , pyplatec
@@ -11,6 +10,7 @@
 , purepng
 , h5py
 , gdal
+, pytestCheckHook
 }:
 
 buildPythonPackage rec {
@@ -47,15 +47,14 @@ buildPythonPackage rec {
       --replace 'PyPlatec==1.4.0' 'PyPlatec' \
   '';
 
-  # with python<3.5, unittest fails to discover tests because of their filenames
-  # so nose is used instead.
   doCheck = !isPy27; # google namespace clash
-  checkInputs = stdenv.lib.optional (pythonOlder "3.5") [ nose ];
-  postCheck = stdenv.lib.optionalString (pythonOlder "3.5") ''
-    nosetests tests
-  '';
+  checkInputs = [ pytestCheckHook ];
+
+  disabledTests = [
+    "TestSerialization"
+  ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "http://world-engine.org";
     description = "World generator using simulation of plates, rain shadow, erosion, etc";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/wrapio/default.nix b/nixpkgs/pkgs/development/python-modules/wrapio/default.nix
index 4289c2020727..757585bd1455 100644
--- a/nixpkgs/pkgs/development/python-modules/wrapio/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/wrapio/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 }:
@@ -15,7 +15,7 @@ buildPythonPackage rec {
   doCheck = false;
   pythonImportsCheck = [ "wrapio" ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://github.com/Exahilosys/wrapio";
     description = "Handling event-based streams";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/wrf-python/default.nix b/nixpkgs/pkgs/development/python-modules/wrf-python/default.nix
index c4bc74a58d23..29279cc1a448 100644
--- a/nixpkgs/pkgs/development/python-modules/wrf-python/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/wrf-python/default.nix
@@ -39,5 +39,5 @@ buildPythonPackage rec {
     homepage = "http://wrf-python.rtfd.org";
     license = lib.licenses.asl20;
     maintainers = with lib.maintainers; [ mhaselsteiner ];
-	};
+  };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/ws4py/default.nix b/nixpkgs/pkgs/development/python-modules/ws4py/default.nix
index 83e1fbad3233..2b7a66df285c 100644
--- a/nixpkgs/pkgs/development/python-modules/ws4py/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/ws4py/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi, pytest, mock, git
+{ lib, stdenv, buildPythonPackage, fetchPypi, pytest, mock, git
 , cherrypy, gevent, tornado }:
 
 buildPythonPackage rec {
@@ -17,7 +17,7 @@ buildPythonPackage rec {
     pytest
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://ws4py.readthedocs.org";
     description = "A WebSocket package for Python";
     maintainers = [];
diff --git a/nixpkgs/pkgs/development/python-modules/wsgiproxy/default.nix b/nixpkgs/pkgs/development/python-modules/wsgiproxy/default.nix
index 8ae8b4aefa54..12aa3c88d968 100644
--- a/nixpkgs/pkgs/development/python-modules/wsgiproxy/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/wsgiproxy/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , paste
@@ -18,7 +18,7 @@ buildPythonPackage rec {
 
   propagatedBuildInputs = [ paste six ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "WSGIProxy gives tools to proxy arbitrary(ish) WSGI requests to other";
     homepage = "http://pythonpaste.org/wsgiproxy/";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/wsgiproxy2/default.nix b/nixpkgs/pkgs/development/python-modules/wsgiproxy2/default.nix
index ef3ce69742c1..81a2f98b86f8 100644
--- a/nixpkgs/pkgs/development/python-modules/wsgiproxy2/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/wsgiproxy2/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , six
@@ -20,7 +20,7 @@ buildPythonPackage rec {
   # circular dep on webtest
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "http://pythonpaste.org/wsgiproxy/";
     description = "HTTP proxying tools for WSGI apps";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/wtforms/default.nix b/nixpkgs/pkgs/development/python-modules/wtforms/default.nix
index 66667c74ef3d..45c465ddcba7 100644
--- a/nixpkgs/pkgs/development/python-modules/wtforms/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/wtforms/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , markupsafe
@@ -18,7 +18,7 @@ buildPythonPackage rec {
   # Django tests are broken "django.core.exceptions.AppRegistryNotReady: Apps aren't loaded yet."
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "A flexible forms validation and rendering library for Python";
     homepage = "https://github.com/wtforms/wtforms";
     changelog = "https://github.com/wtforms/wtforms/blob/${version}/CHANGES.rst";
diff --git a/nixpkgs/pkgs/development/python-modules/wxPython/3.0.nix b/nixpkgs/pkgs/development/python-modules/wxPython/3.0.nix
index dc15c1c01bee..6649c5f69315 100644
--- a/nixpkgs/pkgs/development/python-modules/wxPython/3.0.nix
+++ b/nixpkgs/pkgs/development/python-modules/wxPython/3.0.nix
@@ -6,7 +6,7 @@
 , libX11
 , wxGTK
 , wxmac
-, pkgconfig
+, pkg-config
 , buildPythonPackage
 , pyopengl
 , isPy3k
@@ -35,7 +35,7 @@ buildPythonPackage rec {
 
   hardeningDisable = [ "format" ];
 
-  nativeBuildInputs = [ pkgconfig ]
+  nativeBuildInputs = [ pkg-config ]
     ++ (lib.optionals (!stdenv.isDarwin) [ wxGTK libX11 ])
     ++ (lib.optionals stdenv.isDarwin [ wxmac ]);
 
diff --git a/nixpkgs/pkgs/development/python-modules/wxPython/4.0.nix b/nixpkgs/pkgs/development/python-modules/wxPython/4.0.nix
index 406493362c46..d72d4aa35d4d 100644
--- a/nixpkgs/pkgs/development/python-modules/wxPython/4.0.nix
+++ b/nixpkgs/pkgs/development/python-modules/wxPython/4.0.nix
@@ -2,17 +2,25 @@
 , stdenv
 , buildPythonPackage
 , fetchPypi
-, pkgconfig
+, pkg-config
 , which
 , cairo
 , pango
 , python
 , doxygen
 , ncurses
-, wxGTK
+, libintl
 , numpy
 , pillow
 , six
+, wxGTK
+, wxmac
+, IOKit
+, Carbon
+, Cocoa
+, AudioToolbox
+, OpenGL
+, CoreFoundation
 }:
 
 buildPythonPackage rec {
@@ -26,8 +34,16 @@ buildPythonPackage rec {
 
   doCheck = false;
 
-  nativeBuildInputs = [ pkgconfig which doxygen wxGTK ];
-  buildInputs = [ ncurses wxGTK.gtk ];
+  nativeBuildInputs = [ pkg-config which doxygen ]
+  ++ (if stdenv.isDarwin then [ wxmac ] else [ wxGTK ]);
+
+  buildInputs = [ ncurses libintl ]
+  ++ (if stdenv.isDarwin
+  then
+    [ AudioToolbox Carbon Cocoa CoreFoundation IOKit OpenGL ]
+  else
+    [ wxGTK.gtk ]
+  );
 
   DOXYGEN = "${doxygen}/bin/doxygen";
 
@@ -50,7 +66,7 @@ buildPythonPackage rec {
     ${python.interpreter} setup.py install --skip-build --prefix=$out
   '';
 
-  passthru = { inherit wxGTK; };
+  passthru = { wxWidgets = if stdenv.isDarwin then wxmac else wxGTK; };
 
 
   meta = {
diff --git a/nixpkgs/pkgs/development/python-modules/wxPython/4.1.nix b/nixpkgs/pkgs/development/python-modules/wxPython/4.1.nix
index 6d07f8b5e281..e4cb6ec79e01 100644
--- a/nixpkgs/pkgs/development/python-modules/wxPython/4.1.nix
+++ b/nixpkgs/pkgs/development/python-modules/wxPython/4.1.nix
@@ -3,7 +3,7 @@
 , fetchPypi
 , buildPythonPackage
 , which
-, pkgconfig
+, pkg-config
 , python
 , isPy27
 , pyopengl
@@ -30,7 +30,7 @@ buildPythonPackage rec {
   # https://github.com/wxWidgets/Phoenix/issues/1316
   doCheck = false;
 
-  nativeBuildInputs = [ which doxygen wxGTK pkgconfig ];
+  nativeBuildInputs = [ which doxygen wxGTK pkg-config ];
 
   buildInputs = [
     wxGTK.gtk
diff --git a/nixpkgs/pkgs/development/python-modules/x11_hash/default.nix b/nixpkgs/pkgs/development/python-modules/x11_hash/default.nix
index 22ce5917e2a6..21bb787402c1 100644
--- a/nixpkgs/pkgs/development/python-modules/x11_hash/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/x11_hash/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 }:
@@ -12,7 +12,7 @@ buildPythonPackage rec {
     sha256 = "172skm9xbbrivy1p4xabxihx9lsnzi53hvzryfw64m799k2fmp22";
   };
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Binding for X11 proof of work hashing";
     homepage = "https://github.com/mazaclub/x11_hash";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/x256/default.nix b/nixpkgs/pkgs/development/python-modules/x256/default.nix
index bc0f0f657908..4ceb2dcae791 100644
--- a/nixpkgs/pkgs/development/python-modules/x256/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/x256/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi
+{ lib, stdenv, buildPythonPackage, fetchPypi
 }:
 
 buildPythonPackage rec {
@@ -12,7 +12,7 @@ buildPythonPackage rec {
 
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Find the nearest xterm 256 color index for an RGB";
     homepage = "https://github.com/magarcia/python-x256";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/xapp/default.nix b/nixpkgs/pkgs/development/python-modules/xapp/default.nix
index de779fc2c00b..28901017b2b5 100644
--- a/nixpkgs/pkgs/development/python-modules/xapp/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/xapp/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , fetchFromGitHub
 , buildPythonPackage
 , psutil
@@ -33,7 +33,7 @@ buildPythonPackage rec {
     substituteInPlace "xapp/os.py" --replace "/usr/bin/pkexec" "${polkit}/bin/pkexec"
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://github.com/linuxmint/python-xapp";
     description = "Cross-desktop libraries and common resources for python";
     license = licenses.lgpl2;
diff --git a/nixpkgs/pkgs/development/python-modules/xattr/default.nix b/nixpkgs/pkgs/development/python-modules/xattr/default.nix
index 8634d616b736..3583358a5605 100644
--- a/nixpkgs/pkgs/development/python-modules/xattr/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/xattr/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , python
@@ -23,7 +23,7 @@ buildPythonPackage rec {
     ${python.interpreter} -m compileall -f xattr
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://github.com/xattr/xattr";
     description = "Python wrapper for extended filesystem attributes";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/xcaplib/default.nix b/nixpkgs/pkgs/development/python-modules/xcaplib/default.nix
index 25061d5321ab..f6bb5712c2eb 100644
--- a/nixpkgs/pkgs/development/python-modules/xcaplib/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/xcaplib/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchdarcs
 , isPy3k
@@ -19,7 +19,7 @@ buildPythonPackage rec {
 
   propagatedBuildInputs = [ eventlib application ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://github.com/AGProjects/python-xcaplib";
     description = "XCAP (RFC4825) client library";
     license = licenses.gpl2;
diff --git a/nixpkgs/pkgs/development/python-modules/xcffib/default.nix b/nixpkgs/pkgs/development/python-modules/xcffib/default.nix
index b75179bdc2a4..8f51ec1e77f8 100644
--- a/nixpkgs/pkgs/development/python-modules/xcffib/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/xcffib/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib
 , buildPythonPackage
 , fetchPypi
 , xorg
@@ -27,7 +27,7 @@ buildPythonPackage rec {
 
   pythonImportsCheck = [ "xcffib" ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "A drop in replacement for xpyb, an XCB python binding";
     homepage = "https://github.com/tych0/xcffib";
     license = licenses.asl20;
diff --git a/nixpkgs/pkgs/development/python-modules/xdg/default.nix b/nixpkgs/pkgs/development/python-modules/xdg/default.nix
index 8b2d73b00fb8..e47a91fb993b 100644
--- a/nixpkgs/pkgs/development/python-modules/xdg/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/xdg/default.nix
@@ -1,11 +1,11 @@
 { lib, buildPythonPackage, fetchFromGitHub, isPy27
 , clikit
-, poetry
+, poetry-core
 , pytestCheckHook
 }:
 
 buildPythonPackage rec {
-  version = "4.0.1";
+  version = "5.0.1";
   pname = "xdg";
   disabled = isPy27;
   format = "pyproject";
@@ -14,10 +14,10 @@ buildPythonPackage rec {
     owner = "srstevenson";
     repo = pname;
     rev = version;
-    sha256 = "13kgnbwam6wmdbig0m98vmyjcqrp0j62nmfknb6prr33ns2nxbs2";
+    sha256 = "sha256-WMY9Hs9SbErTp8hVBoCWTz4dLQhuzqTRpXFEyE7+woo=";
   };
 
-  nativeBuildInputs = [ poetry ];
+  nativeBuildInputs = [ poetry-core ];
 
   propagatedBuildInputs = [
     clikit
diff --git a/nixpkgs/pkgs/development/python-modules/xdot/default.nix b/nixpkgs/pkgs/development/python-modules/xdot/default.nix
index 75d090699a47..21b45b9c322d 100644
--- a/nixpkgs/pkgs/development/python-modules/xdot/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/xdot/default.nix
@@ -20,7 +20,8 @@ buildPythonPackage rec {
   '';
 
   # https://github.com/NixOS/nixpkgs/pull/107872#issuecomment-752175866
-  doCheck = stdenv.isLinux;
+  # cannot import name '_gi' from partially initialized module 'gi' (most likely due to a circular import)
+  doCheck = false;
 
   meta = with lib; {
     description = "An interactive viewer for graphs written in Graphviz's dot";
diff --git a/nixpkgs/pkgs/development/python-modules/xhtml2pdf/default.nix b/nixpkgs/pkgs/development/python-modules/xhtml2pdf/default.nix
index 88143b2193f4..e3328c7e4534 100644
--- a/nixpkgs/pkgs/development/python-modules/xhtml2pdf/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/xhtml2pdf/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , pillow
@@ -25,7 +25,7 @@ buildPythonPackage rec {
     sha256 = "6797e974fac66f0efbe927c1539a2756ca4fe8777eaa5882bac132fc76b39421";
   };
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "A PDF generator using HTML and CSS";
     homepage = "https://github.com/xhtml2pdf/xhtml2pdf";
     license = licenses.asl20;
diff --git a/nixpkgs/pkgs/development/python-modules/xkcdpass/default.nix b/nixpkgs/pkgs/development/python-modules/xkcdpass/default.nix
index 8cb5b5f0777a..88f7b9b94a1f 100644
--- a/nixpkgs/pkgs/development/python-modules/xkcdpass/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/xkcdpass/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 }:
@@ -16,7 +16,7 @@ buildPythonPackage rec {
   # https://github.com/redacted/XKCD-password-generator/issues/32
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://pypi.python.org/pypi/xkcdpass/";
     description = "Generate secure multiword passwords/passphrases, inspired by XKCD";
     license = licenses.bsd3;
diff --git a/nixpkgs/pkgs/development/python-modules/xknx/default.nix b/nixpkgs/pkgs/development/python-modules/xknx/default.nix
new file mode 100644
index 000000000000..b448f87a2d36
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/xknx/default.nix
@@ -0,0 +1,47 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, netifaces
+, voluptuous
+, pyyaml
+, pytest-asyncio
+, pytestCheckHook
+, pythonOlder
+}:
+
+buildPythonPackage rec {
+  pname = "xknx";
+  version = "0.16.1";
+  disabled = pythonOlder "3.7";
+
+  src = fetchFromGitHub {
+    owner = "XKNX";
+    repo = pname;
+    rev = version;
+    sha256 = "0nma0fq67p9c90b6s5v7n4s6j94sdiwqf8rk1k2vfc6nxxn1jfll";
+  };
+
+  propagatedBuildInputs = [
+    voluptuous
+    netifaces
+    pyyaml
+  ];
+
+  checkInputs = [
+    pytest-asyncio
+    pytestCheckHook
+  ];
+
+  pythonImportsCheck = [ "xknx" ];
+
+  meta = with lib; {
+    description = "KNX Library Written in Python";
+    longDescription = ''
+      XKNX is an asynchronous Python library for reading and writing KNX/IP
+      packets. It provides support for KNX/IP routing and tunneling devices.
+    '';
+    homepage = "https://github.com/XKNX/xknx";
+    license = with licenses; [ mit ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/xlib/default.nix b/nixpkgs/pkgs/development/python-modules/xlib/default.nix
index 599abf1974cd..1819fd5a5124 100644
--- a/nixpkgs/pkgs/development/python-modules/xlib/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/xlib/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchFromGitHub
 , six
@@ -12,13 +12,13 @@
 
 buildPythonPackage rec {
   pname = "xlib";
-  version = "0.28";
+  version = "0.29";
 
   src = fetchFromGitHub {
     owner = "python-xlib";
     repo = "python-xlib";
     rev = version;
-    sha256 = "13551vi65034pjf2g7zkw5dyjqcjfyk32a640g5jr055ssf0bjkc";
+    sha256 = "sha256-zOG1QzRa5uN36Ngv8i5s3mq+VIoRzxFj5ltUbKdonJ0=";
   };
 
   checkPhase = ''
@@ -32,7 +32,7 @@ buildPythonPackage rec {
 
   doCheck = !stdenv.isDarwin;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Fully functional X client library for Python programs";
     homepage = "http://python-xlib.sourceforge.net/";
     license = licenses.gpl2Plus;
diff --git a/nixpkgs/pkgs/development/python-modules/xlrd/default.nix b/nixpkgs/pkgs/development/python-modules/xlrd/default.nix
index 9b5e8b83e306..031ac047936e 100644
--- a/nixpkgs/pkgs/development/python-modules/xlrd/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/xlrd/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , pytest
@@ -19,7 +19,7 @@ buildPythonPackage rec {
     py.test -k "not test_tilde_path_expansion"
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "http://www.python-excel.org/";
     description = "Library for developers to extract data from Microsoft Excel (tm) spreadsheet files";
     license = licenses.bsd0;
diff --git a/nixpkgs/pkgs/development/python-modules/xlsx2csv/default.nix b/nixpkgs/pkgs/development/python-modules/xlsx2csv/default.nix
index 1c42b1b17845..a5b67632d836 100644
--- a/nixpkgs/pkgs/development/python-modules/xlsx2csv/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/xlsx2csv/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 }:
@@ -12,7 +12,7 @@ buildPythonPackage rec {
     sha256 = "09vigknmz15izirfddkmb3a39h1rp2jmc00bnrff12i757n7jjl4";
   };
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://github.com/bitprophet/alabaster";
     description = "Convert xlsx to csv";
     license = licenses.bsd3;
diff --git a/nixpkgs/pkgs/development/python-modules/xml2rfc/default.nix b/nixpkgs/pkgs/development/python-modules/xml2rfc/default.nix
index 1a1ac6fc6d24..e06daf3c5b86 100644
--- a/nixpkgs/pkgs/development/python-modules/xml2rfc/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/xml2rfc/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchPypi, buildPythonPackage, pythonAtLeast, intervaltree, pyflakes, requests, lxml, google-i18n-address
+{ lib, stdenv, fetchPypi, buildPythonPackage, pythonAtLeast, intervaltree, pyflakes, requests, lxml, google-i18n-address
 , pycountry, html5lib, six, kitchen, pypdf2, dict2xml, weasyprint, pyyaml, jinja2, ConfigArgParse, appdirs
 }:
 
@@ -39,7 +39,7 @@ buildPythonPackage rec {
   doCheck = false;
   pythonImportsCheck = [ "xml2rfc" ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Tool generating IETF RFCs and drafts from XML sources";
     homepage = "https://tools.ietf.org/tools/xml2rfc/trac/";
     # Well, parts might be considered unfree, if being strict; see:
diff --git a/nixpkgs/pkgs/development/python-modules/xmlschema/default.nix b/nixpkgs/pkgs/development/python-modules/xmlschema/default.nix
index 55b45fb51714..e31054e74c13 100644
--- a/nixpkgs/pkgs/development/python-modules/xmlschema/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/xmlschema/default.nix
@@ -5,14 +5,14 @@
 }:
 
 buildPythonPackage rec {
-  version = "1.3.1";
+  version = "1.4.1";
   pname = "xmlschema";
 
   src = fetchFromGitHub {
     owner = "sissaschool";
     repo = "xmlschema";
     rev = "v${version}";
-    sha256 = "08p6fm15600h40r5h7f3gfv34cys481f89pf57dv3y8gf6y2if56";
+    sha256 = "1yd7whf74z8bw99gldxlnrs8bjnjzald29b5cf2ka0i144sxbvad";
   };
 
   propagatedBuildInputs = [ elementpath ];
diff --git a/nixpkgs/pkgs/development/python-modules/xmodem/default.nix b/nixpkgs/pkgs/development/python-modules/xmodem/default.nix
index 7e0a25709fb4..9023c4cc79ee 100644
--- a/nixpkgs/pkgs/development/python-modules/xmodem/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/xmodem/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchFromGitHub, pytest, which, lrzsz }:
+{ lib, stdenv, buildPythonPackage, fetchFromGitHub, pytest, which, lrzsz }:
 
 buildPythonPackage rec {
   pname = "xmodem";
@@ -17,7 +17,7 @@ buildPythonPackage rec {
     pytest
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Pure python implementation of the XMODEM protocol";
     maintainers = with maintainers; [ emantor ];
     homepage = "https://github.com/tehmaze/xmodem";
diff --git a/nixpkgs/pkgs/development/python-modules/xmpppy/default.nix b/nixpkgs/pkgs/development/python-modules/xmpppy/default.nix
index b812609a7d7b..fd046adadd97 100644
--- a/nixpkgs/pkgs/development/python-modules/xmpppy/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/xmpppy/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchurl, isPy3k }:
+{ lib, stdenv, buildPythonPackage, fetchurl, isPy3k }:
 buildPythonPackage rec {
   pname = "xmpp.py";
   version = "0.5.0rc1";
@@ -17,7 +17,7 @@ buildPythonPackage rec {
 
   disabled = isPy3k;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "XMPP python library";
     homepage = "http://xmpppy.sourceforge.net/";
     license = licenses.gpl3;
diff --git a/nixpkgs/pkgs/development/python-modules/xnd/default.nix b/nixpkgs/pkgs/development/python-modules/xnd/default.nix
index 3178e171f844..3657997f5a74 100644
--- a/nixpkgs/pkgs/development/python-modules/xnd/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/xnd/default.nix
@@ -1,4 +1,5 @@
-{ stdenv
+{ lib
+, stdenv
 , buildPythonPackage
 , python
 , ndtypes
@@ -27,7 +28,7 @@ buildPythonPackage {
   postInstall = ''
     mkdir $out/include
     cp python/xnd/*.h $out/include
-  '' + stdenv.lib.optionalString stdenv.isDarwin ''
+  '' + lib.optionalString stdenv.isDarwin ''
     install_name_tool -add_rpath ${libxnd}/lib $out/${python.sitePackages}/xnd/_xnd.*.so
   '';
 
diff --git a/nixpkgs/pkgs/development/python-modules/xvfbwrapper/default.nix b/nixpkgs/pkgs/development/python-modules/xvfbwrapper/default.nix
index dacb3b634368..0852fd2e15cf 100644
--- a/nixpkgs/pkgs/development/python-modules/xvfbwrapper/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/xvfbwrapper/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , xorgserver
@@ -20,7 +20,7 @@ buildPythonPackage rec {
 
   checkInputs = [ mock ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Run headless display inside X virtual framebuffer (Xvfb)";
     homepage = "https://github.com/cgoldberg/xvfbwrapper";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/xxhash/default.nix b/nixpkgs/pkgs/development/python-modules/xxhash/default.nix
index 52b3f8b1b5b5..d2f6ae54a4cf 100644
--- a/nixpkgs/pkgs/development/python-modules/xxhash/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/xxhash/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 }:
@@ -12,7 +12,7 @@ buildPythonPackage rec {
     sha256 = "58ca818554c1476fa1456f6cd4b87002e2294f09baf0f81e5a2a4968e62c423c";
   };
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://github.com/ifduyue/python-xxhash";
     description = "Python Binding for xxHash https://pypi.org/project/xxhash/";
     license = licenses.bsd2;
diff --git a/nixpkgs/pkgs/development/python-modules/yamllint/default.nix b/nixpkgs/pkgs/development/python-modules/yamllint/default.nix
index f0407dff1735..7145c504cd92 100644
--- a/nixpkgs/pkgs/development/python-modules/yamllint/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/yamllint/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi
+{ lib, stdenv, buildPythonPackage, fetchPypi
 , nose, pyyaml, pathspec }:
 
 buildPythonPackage rec {
@@ -17,7 +17,7 @@ buildPythonPackage rec {
   # Two test failures
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "A linter for YAML files";
     homepage = "https://github.com/adrienverge/yamllint";
     license = licenses.gpl3;
diff --git a/nixpkgs/pkgs/development/python-modules/yanc/default.nix b/nixpkgs/pkgs/development/python-modules/yanc/default.nix
index 9bbfc4100682..6d4a3b41fbcc 100644
--- a/nixpkgs/pkgs/development/python-modules/yanc/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/yanc/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, pythonOlder, fetchPypi, nose }:
+{ lib, stdenv, buildPythonPackage, pythonOlder, fetchPypi, nose }:
 
 buildPythonPackage rec {
   pname = "yanc";
@@ -18,7 +18,7 @@ buildPythonPackage rec {
     nosetests .
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Yet another nose colorer";
     homepage = "https://github.com/0compute/yanc";
     license = licenses.gpl3;
diff --git a/nixpkgs/pkgs/development/python-modules/yapf/default.nix b/nixpkgs/pkgs/development/python-modules/yapf/default.nix
index 65a4e9abcb29..36409ae40195 100644
--- a/nixpkgs/pkgs/development/python-modules/yapf/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/yapf/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi }:
+{ lib, stdenv, buildPythonPackage, fetchPypi }:
 
 buildPythonPackage rec {
   pname = "yapf";
@@ -9,7 +9,7 @@ buildPythonPackage rec {
     sha256 = "3000abee4c28daebad55da6c85f3cd07b8062ce48e2e9943c8da1b9667d48427";
   };
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "A formatter for Python code.";
     homepage    = "https://github.com/google/yapf";
     license     = licenses.asl20;
diff --git a/nixpkgs/pkgs/development/python-modules/yapsy/default.nix b/nixpkgs/pkgs/development/python-modules/yapsy/default.nix
index f0d39f69e555..359a855a3e5f 100644
--- a/nixpkgs/pkgs/development/python-modules/yapsy/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/yapsy/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 }:
@@ -12,7 +12,7 @@ buildPythonPackage rec {
     sha256 = "12rznbnswfw0w7qfbvmmffr9r317gl1rqg36nijwzsklkjgks4fq";
   };
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "http://yapsy.sourceforge.net/";
     description = "Yet another plugin system";
     license = licenses.bsd0;
diff --git a/nixpkgs/pkgs/development/python-modules/yarl/default.nix b/nixpkgs/pkgs/development/python-modules/yarl/default.nix
index 7a15907e59be..7a88b695f639 100644
--- a/nixpkgs/pkgs/development/python-modules/yarl/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/yarl/default.nix
@@ -25,7 +25,7 @@ buildPythonPackage rec {
       typing-extensions
     ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Yet another URL library";
     homepage = "https://github.com/aio-libs/yarl/";
     license = licenses.asl20;
diff --git a/nixpkgs/pkgs/development/python-modules/ydiff/default.nix b/nixpkgs/pkgs/development/python-modules/ydiff/default.nix
index 822bb40783e9..be935b1995c6 100644
--- a/nixpkgs/pkgs/development/python-modules/ydiff/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/ydiff/default.nix
@@ -1,4 +1,6 @@
-{ stdenv, buildPythonPackage, fetchPypi }:
+{ stdenv, lib, buildPythonPackage, fetchPypi, docutils, pygments
+, gitMinimal, mercurial, subversion, patchutils, less
+}:
 
 buildPythonPackage rec {
   pname = "ydiff";
@@ -9,21 +11,38 @@ buildPythonPackage rec {
     sha256 = "f5430577ecd30974d766ee9b8333e06dc76a947b4aae36d39612a0787865a121";
   };
 
-  # test suite requires a multitude of other version control tooling
-  # currently only a single file, an import/usage should suffice
+  patchPhase = ''
+    substituteInPlace ydiff.py \
+      --replace "['git'" "['${gitMinimal}/bin/git'" \
+      --replace "['hg'" "['${mercurial}/bin/hg'" \
+      --replace "['svn'" "['${subversion}/bin/svn'" \
+      --replace "['filterdiff'" "['${patchutils}/bin/filterdiff'" \
+      --replace "['less'" "['${less}/bin/less'" # doesn't support PAGER from env
+    substituteInPlace tests/test_ydiff.py \
+      --replace /bin/rm rm \
+      --replace /bin/sh sh
+    patchShebangs setup.py
+    patchShebangs tests/*.sh
+  '';
+
+  checkInputs = [ docutils pygments ];
+
   checkPhase = ''
-    $out/bin/ydiff --help
+    runHook preCheck
+    make doc-check reg # We don't want the linter or coverage check.
+    runHook postCheck
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "View colored, incremental diff in workspace or from stdin with side by side and auto pager support (Was \"cdiff\")";
     longDescription = ''
-      Term based tool to view colored, incremental diff in a Git/Mercurial/Svn
-      workspace or from stdin, with side by side (similar to diff -y) and auto
-      pager support
+      Term based tool to view colored, incremental diff in a version
+      controlled workspace (supports Git, Mercurial, Perforce and Svn
+      so far) or from stdin, with side by side (similar to diff -y)
+      and auto pager support.
     '';
     homepage = "https://github.com/ymattw/ydiff";
     license = licenses.bsd3;
-    maintainers = [ maintainers.limeytexan ];
+    maintainers = (with maintainers; [ leenaars ]) ++ teams.deshaw.members;
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/youtube-dlc/default.nix b/nixpkgs/pkgs/development/python-modules/youtube-dlc/default.nix
deleted file mode 100644
index 9599828e65ee..000000000000
--- a/nixpkgs/pkgs/development/python-modules/youtube-dlc/default.nix
+++ /dev/null
@@ -1,23 +0,0 @@
-{ lib, buildPythonPackage, fetchPypi }:
-
-buildPythonPackage rec {
-  pname = "youtube_dlc";
-  version = "2020.11.11.post3";
-
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "WqoKpfvVPZrN+pW6s8JoApJusn5CXyPcg9VcsY8R0FM=";
-  };
-
-  # They are broken
-  doCheck = false;
-
-  pythonImportsCheck = [ "youtube_dlc" ];
-
-  meta = with lib; {
-    homepage = "Media downloader supporting various sites such as youtube";
-    description = "https://github.com/blackjack4494/yt-dlc";
-    platforms = platforms.linux;
-    maintainers = with maintainers; [ freezeboy ];
-  };
-}
diff --git a/nixpkgs/pkgs/development/python-modules/yowsup/default.nix b/nixpkgs/pkgs/development/python-modules/yowsup/default.nix
index c1f6b6632aab..48c21434194f 100644
--- a/nixpkgs/pkgs/development/python-modules/yowsup/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/yowsup/default.nix
@@ -1,4 +1,4 @@
-{ buildPythonPackage, stdenv, fetchFromGitHub, six, python-axolotl, pytest
+{ buildPythonPackage, lib, stdenv, fetchFromGitHub, six, python-axolotl, pytest
 , isPy3k, consonance, appdirs
 }:
 
@@ -26,7 +26,7 @@ buildPythonPackage rec {
 
   propagatedBuildInputs = [ six python-axolotl consonance appdirs ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://github.com/tgalal/yowsup";
     description = "The python WhatsApp library";
     license = licenses.gpl3;
diff --git a/nixpkgs/pkgs/development/python-modules/z3c-checkversions/default.nix b/nixpkgs/pkgs/development/python-modules/z3c-checkversions/default.nix
index f4f42cf9e3fc..f1af120d56eb 100644
--- a/nixpkgs/pkgs/development/python-modules/z3c-checkversions/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/z3c-checkversions/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , python
@@ -23,7 +23,7 @@ buildPythonPackage rec {
     ${python.interpreter} -m zope.testrunner --test-path=src []
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://github.com/zopefoundation/z3c.checkversions";
     description = "Find newer package versions on PyPI";
     license = licenses.zpl21;
diff --git a/nixpkgs/pkgs/development/python-modules/zake/default.nix b/nixpkgs/pkgs/development/python-modules/zake/default.nix
index 8eafaafadf58..1d1d21a462ec 100644
--- a/nixpkgs/pkgs/development/python-modules/zake/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/zake/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , kazoo
@@ -26,7 +26,7 @@ buildPythonPackage rec {
     ${python.interpreter} -m unittest discover zake/tests
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://github.com/yahoo/Zake";
     description = "A python package that works to provide a nice set of testing utilities for the kazoo library";
     license = licenses.asl20;
diff --git a/nixpkgs/pkgs/development/python-modules/zbaemon/default.nix b/nixpkgs/pkgs/development/python-modules/zbaemon/default.nix
index a87bd3093f4f..4e126074b184 100644
--- a/nixpkgs/pkgs/development/python-modules/zbaemon/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/zbaemon/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , zconfig
@@ -18,7 +18,7 @@ buildPythonPackage rec {
   # too many deps..
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "A daemon process control library and tools for Unix-based systems";
     homepage = "https://pypi.python.org/pypi/zdaemon";
     license = licenses.zpl20;
diff --git a/nixpkgs/pkgs/development/python-modules/zbase32/default.nix b/nixpkgs/pkgs/development/python-modules/zbase32/default.nix
index 9c97ad066ed5..a4e7a476beca 100644
--- a/nixpkgs/pkgs/development/python-modules/zbase32/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/zbase32/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , setuptoolsDarcs
@@ -19,7 +19,7 @@ buildPythonPackage rec {
 
   propagatedBuildInputs = [ setuptoolsDarcs pyutil ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "zbase32, a base32 encoder/decoder";
     homepage = "https://pypi.python.org/pypi/zbase32";
     license = licenses.bsd0;
diff --git a/nixpkgs/pkgs/development/python-modules/zc_lockfile/default.nix b/nixpkgs/pkgs/development/python-modules/zc_lockfile/default.nix
index 18fc7bcf5115..3b75de3a24b6 100644
--- a/nixpkgs/pkgs/development/python-modules/zc_lockfile/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/zc_lockfile/default.nix
@@ -2,7 +2,7 @@
 , fetchPypi
 , mock
 , zope_testing
-, stdenv
+, lib, stdenv
 }:
 
 buildPythonPackage rec {
@@ -17,7 +17,7 @@ buildPythonPackage rec {
   buildInputs = [ mock ];
   propagatedBuildInputs = [ zope_testing ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Inter-process locks";
     homepage =  "https://www.python.org/pypi/zc.lockfile";
     license = licenses.zpl20;
diff --git a/nixpkgs/pkgs/development/python-modules/zconfig/default.nix b/nixpkgs/pkgs/development/python-modules/zconfig/default.nix
index ef4754504dd6..a6a00ad821b8 100644
--- a/nixpkgs/pkgs/development/python-modules/zconfig/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/zconfig/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , fetchPypi
 , fetchpatch
 , buildPythonPackage
@@ -23,12 +23,12 @@ buildPythonPackage rec {
       url = "https://github.com/zopefoundation/ZConfig/commit/f0c2990d35ac3c924ecc8be4a5c71c8e4abbd0e5.patch";
       sha256 = "1bjg3wrvii0rwzf3s0vlpzgg2ckj0h2zxkyxwjcr64s4k2vaq9ij";
     })
-  ] ++ stdenv.lib.optional stdenv.hostPlatform.isMusl ./remove-setlocale-test.patch;
+  ] ++ lib.optional stdenv.hostPlatform.isMusl ./remove-setlocale-test.patch;
 
   buildInputs = [ manuel docutils ];
   propagatedBuildInputs = [ zope_testrunner ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Structured Configuration Library";
     homepage = "https://pypi.python.org/pypi/ZConfig";
     license = licenses.zpl20;
diff --git a/nixpkgs/pkgs/development/python-modules/zdaemon/default.nix b/nixpkgs/pkgs/development/python-modules/zdaemon/default.nix
index a87bd3093f4f..4e126074b184 100644
--- a/nixpkgs/pkgs/development/python-modules/zdaemon/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/zdaemon/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , zconfig
@@ -18,7 +18,7 @@ buildPythonPackage rec {
   # too many deps..
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "A daemon process control library and tools for Unix-based systems";
     homepage = "https://pypi.python.org/pypi/zdaemon";
     license = licenses.zpl20;
diff --git a/nixpkgs/pkgs/development/python-modules/zerobin/default.nix b/nixpkgs/pkgs/development/python-modules/zerobin/default.nix
index efc2bb380b8e..e12088756686 100644
--- a/nixpkgs/pkgs/development/python-modules/zerobin/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/zerobin/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchFromGitHub
 , cherrypy
@@ -24,7 +24,7 @@ buildPythonPackage {
   # can wrongly fail the check phase.
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "A client side encrypted pastebin";
     homepage = "https://0bin.net/";
     license = licenses.wtfpl;
diff --git a/nixpkgs/pkgs/development/python-modules/zeroc-ice/default.nix b/nixpkgs/pkgs/development/python-modules/zeroc-ice/default.nix
index 16bf5b7855c5..f85674d68673 100644
--- a/nixpkgs/pkgs/development/python-modules/zeroc-ice/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/zeroc-ice/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi, openssl, bzip2 }:
+{ lib, stdenv, buildPythonPackage, fetchPypi, openssl, bzip2 }:
 
 buildPythonPackage rec {
   pname = "zeroc-ice";
@@ -11,7 +11,7 @@ buildPythonPackage rec {
 
   buildInputs = [ openssl bzip2 ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://zeroc.com/";
     license = licenses.gpl2;
     description = "Comprehensive RPC framework with support for Python, C++, .NET, Java, JavaScript and more.";
diff --git a/nixpkgs/pkgs/development/python-modules/zeroconf/default.nix b/nixpkgs/pkgs/development/python-modules/zeroconf/default.nix
index a8715a2133c3..a3b00ec32324 100644
--- a/nixpkgs/pkgs/development/python-modules/zeroconf/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/zeroconf/default.nix
@@ -1,4 +1,5 @@
-{ lib
+{ stdenv
+, lib
 , buildPythonPackage
 , fetchPypi
 , ifaddr
@@ -10,12 +11,12 @@
 
 buildPythonPackage rec {
   pname = "zeroconf";
-  version = "0.28.6";
+  version = "0.28.8";
   disabled = isPy27;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "70f10f0f16e3a8c4eb5e1a106b812b8d052253041cf1ee1195933df706f5261c";
+    sha256 = "0narq8haa3b375vfblbyil77n8bw0wxqnanl91pl0wwwm884mqjb";
   };
 
   propagatedBuildInputs = [ ifaddr ]
@@ -29,12 +30,15 @@ buildPythonPackage rec {
     "test_launch_and_close_v4_v6"
     "test_launch_and_close_v6_only"
     "test_integration_with_listener_ipv6"
+  ] ++ lib.optionals stdenv.isDarwin [
+    "test_lots_of_names"
   ];
+  __darwinAllowLocalNetworking = true;
 
   pythonImportsCheck = [ "zeroconf" ];
 
   meta = with lib; {
-    description = "A pure python implementation of multicast DNS service discovery";
+    description = "Python implementation of multicast DNS service discovery";
     homepage = "https://github.com/jstasiak/python-zeroconf";
     license = licenses.lgpl21;
     maintainers = with maintainers; [ abbradar ];
diff --git a/nixpkgs/pkgs/development/python-modules/zfec/default.nix b/nixpkgs/pkgs/development/python-modules/zfec/default.nix
index b365438a1c97..8a5aaf46b0e4 100644
--- a/nixpkgs/pkgs/development/python-modules/zfec/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/zfec/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , setuptoolsDarcs
@@ -22,7 +22,7 @@ buildPythonPackage rec {
     sed -i -e '/argparse/d' setup.py
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "http://allmydata.org/trac/zfec";
     description = "Zfec, a fast erasure codec which can be used with the command-line, C, Python, or Haskell";
     longDescription = ''
diff --git a/nixpkgs/pkgs/development/python-modules/zha-quirks/default.nix b/nixpkgs/pkgs/development/python-modules/zha-quirks/default.nix
index 0c6ac7dbf499..2f3500516cb9 100644
--- a/nixpkgs/pkgs/development/python-modules/zha-quirks/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/zha-quirks/default.nix
@@ -1,19 +1,26 @@
-{ lib, buildPythonPackage, fetchPypi
-, aiohttp, zigpy, conftest, asynctest
-, pytestCheckHook }:
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, aiohttp
+, zigpy
+, asynctest
+, pytestCheckHook
+}:
 
 buildPythonPackage rec {
   pname = "zha-quirks";
-  version = "0.0.47";
+  version = "0.0.51";
 
-  propagatedBuildInputs = [ aiohttp zigpy ];
-  checkInputs = [ pytestCheckHook conftest asynctest ];
-
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "bf7dbd5d1c1a3849b059e62afcef248b6955f5ceef78f87201ae2fc8420738de";
+  src = fetchFromGitHub {
+    owner = "zigpy";
+    repo = "zha-device-handlers";
+    rev = version;
+    sha256 = "14v01kclf096ax88cd6ckfs8gcffqissli9vpr0wfzli08afmbi9";
   };
 
+  propagatedBuildInputs = [ aiohttp zigpy ];
+  checkInputs = [ pytestCheckHook asynctest ];
+
   meta = with lib; {
     description = "ZHA Device Handlers are custom quirks implementations for Zigpy";
     homepage = "https://github.com/dmulcahey/zha-device-handlers";
diff --git a/nixpkgs/pkgs/development/python-modules/zict/default.nix b/nixpkgs/pkgs/development/python-modules/zict/default.nix
index c5629a6fb73f..da36c1cba899 100644
--- a/nixpkgs/pkgs/development/python-modules/zict/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/zict/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi
+{ lib, stdenv, buildPythonPackage, fetchPypi
 , pytest, heapdict, pythonOlder }:
 
 buildPythonPackage rec {
@@ -15,7 +15,7 @@ buildPythonPackage rec {
   buildInputs = [ pytest ];
   propagatedBuildInputs = [ heapdict ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Mutable mapping tools.";
     homepage = "https://github.com/dask/zict";
     license = licenses.bsd3;
diff --git a/nixpkgs/pkgs/development/python-modules/zigpy-deconz/default.nix b/nixpkgs/pkgs/development/python-modules/zigpy-deconz/default.nix
index 12964652752f..d9c7854bf984 100644
--- a/nixpkgs/pkgs/development/python-modules/zigpy-deconz/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/zigpy-deconz/default.nix
@@ -1,20 +1,29 @@
-{ stdenv, buildPythonPackage, fetchPypi
-, pyserial, pyserial-asyncio, zigpy
-, pytest, pytest-asyncio, asynctest }:
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, pyserial
+, pyserial-asyncio
+, zigpy
+, pytestCheckHook
+, pytest-asyncio
+, asynctest
+}:
 
 buildPythonPackage rec {
   pname = "zigpy-deconz";
-  version = "0.11.0";
+  version = "0.11.1";
 
-  propagatedBuildInputs = [ pyserial pyserial-asyncio zigpy ];
-  checkInputs = [ pytest pytest-asyncio asynctest ];
-
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "a2263f8bc5807ebac55bb665eca553b514384ce270b66f83df02c39184193020";
+  src = fetchFromGitHub {
+    owner = "zigpy";
+    repo = pname;
+    rev = version;
+    sha256 = "1p9mdsfc200iyszppcflazzfwqg4v8nqqwqsx114nip5km7a5s37";
   };
 
-  meta = with stdenv.lib; {
+  propagatedBuildInputs = [ pyserial pyserial-asyncio zigpy ];
+  checkInputs = [ pytestCheckHook pytest-asyncio asynctest ];
+
+  meta = with lib; {
     description = "Library which communicates with Deconz radios for zigpy";
     homepage = "https://github.com/zigpy/zigpy-deconz";
     license = licenses.gpl3Plus;
diff --git a/nixpkgs/pkgs/development/python-modules/zigpy-zigate/default.nix b/nixpkgs/pkgs/development/python-modules/zigpy-zigate/default.nix
index 018017c89a4c..5ebb17dd498b 100644
--- a/nixpkgs/pkgs/development/python-modules/zigpy-zigate/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/zigpy-zigate/default.nix
@@ -12,7 +12,7 @@
 
 buildPythonPackage rec {
   pname = "zigpy-zigate";
-  version = "0.7.3";
+  version = "0.7.4";
   # 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
@@ -22,7 +22,7 @@ buildPythonPackage rec {
     owner = "zigpy";
     repo = "zigpy-zigate";
     rev = version;
-    sha256 = "068v8n8yimmpnwqcdz5m9g35z1x0dir478cbc1s1nyhw1xn50vg1";
+    sha256 = "0xl8qgljvmypi602f52m89iv9pcrzsdal3jw619vrcavp40rc04d";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/zigpy-znp/default.nix b/nixpkgs/pkgs/development/python-modules/zigpy-znp/default.nix
index 9b8e65e23d03..4de49cbc46b3 100644
--- a/nixpkgs/pkgs/development/python-modules/zigpy-znp/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/zigpy-znp/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , async-timeout
 , asynctest
 , buildPythonPackage
@@ -45,7 +45,12 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
-  meta = with stdenv.lib; {
+  disabledTests = [
+    # zigpy-znp was too slow to sync up with the zigpy 0.29 release and has API breakage, remove >0.3.0
+    "test_force_remove"
+  ];
+
+  meta = with lib; {
     description = "A library for zigpy which communicates with TI ZNP radios";
     homepage = "https://github.com/zha-ng/zigpy-znp";
     license = licenses.gpl3Plus;
diff --git a/nixpkgs/pkgs/development/python-modules/zigpy/default.nix b/nixpkgs/pkgs/development/python-modules/zigpy/default.nix
index 54f0df340169..9a6b0feb3b77 100644
--- a/nixpkgs/pkgs/development/python-modules/zigpy/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/zigpy/default.nix
@@ -1,5 +1,6 @@
 { lib
 , aiohttp
+, aiosqlite
 , asynctest
 , buildPythonPackage
 , crccheck
@@ -14,17 +15,18 @@
 
 buildPythonPackage rec {
   pname = "zigpy";
-  version = "0.26.0";
+  version = "0.30.0";
 
   src = fetchFromGitHub {
     owner = "zigpy";
     repo = "zigpy";
     rev = version;
-    sha256 = "ba8Ru6RCbFOHhctFtklnrxVD3uEpxF4XDvO5RMgXPBs=";
+    sha256 = "14qyxm7bj62fsvxfp6x3r1ygjlv7q3jjvq6gzj30na78x1fqr9g1";
   };
 
   propagatedBuildInputs = [
     aiohttp
+    aiosqlite
     crccheck
     pycrypto
     pycryptodome
diff --git a/nixpkgs/pkgs/development/python-modules/zodb/default.nix b/nixpkgs/pkgs/development/python-modules/zodb/default.nix
index e8097461d3b1..d48b9c4b9507 100644
--- a/nixpkgs/pkgs/development/python-modules/zodb/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/zodb/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , fetchPypi
 , buildPythonPackage
 , python
@@ -52,7 +52,7 @@ buildPythonPackage rec {
       ${python.interpreter} -m zope.testrunner --test-path=src []
     '';
 
-    meta = with stdenv.lib; {
+    meta = with lib; {
       description = "Zope Object Database: object database and persistence";
       homepage = "https://pypi.python.org/pypi/ZODB";
       license = licenses.zpl21;
diff --git a/nixpkgs/pkgs/development/python-modules/zope_broken/default.nix b/nixpkgs/pkgs/development/python-modules/zope_broken/default.nix
index aa12167bddc2..899d7f3344be 100644
--- a/nixpkgs/pkgs/development/python-modules/zope_broken/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/zope_broken/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , zope_interface
@@ -16,7 +16,7 @@ buildPythonPackage rec {
 
   buildInputs = [ zope_interface ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "http://pypi.python.org/pypi/zope.broken";
     description = "Zope Broken Object Interfaces";
     license = licenses.zpl20;
diff --git a/nixpkgs/pkgs/development/python-modules/zope_component/default.nix b/nixpkgs/pkgs/development/python-modules/zope_component/default.nix
index df0835841bce..6ea86b9b984d 100644
--- a/nixpkgs/pkgs/development/python-modules/zope_component/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/zope_component/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , zope-deferredimport
@@ -27,7 +27,7 @@ buildPythonPackage rec {
   # ignore tests because of a circular dependency on zope_security
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://github.com/zopefoundation/zope.component";
     description = "Zope Component Architecture";
     license = licenses.zpl20;
diff --git a/nixpkgs/pkgs/development/python-modules/zope_configuration/default.nix b/nixpkgs/pkgs/development/python-modules/zope_configuration/default.nix
index 587cbf60d88c..e8d05b7767b3 100644
--- a/nixpkgs/pkgs/development/python-modules/zope_configuration/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/zope_configuration/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , zope_i18nmessageid
@@ -23,7 +23,7 @@ buildPythonPackage rec {
   # Need to investigate how to run the tests with zope-testrunner
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Zope Configuration Markup Language (ZCML)";
     homepage = "https://github.com/zopefoundation/zope.configuration";
     license = licenses.zpl20;
diff --git a/nixpkgs/pkgs/development/python-modules/zope_contenttype/default.nix b/nixpkgs/pkgs/development/python-modules/zope_contenttype/default.nix
index b1792d718543..6b66cca18aab 100644
--- a/nixpkgs/pkgs/development/python-modules/zope_contenttype/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/zope_contenttype/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , zope_testrunner
@@ -15,7 +15,7 @@ buildPythonPackage rec {
 
   checkInputs = [ zope_testrunner ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://github.com/zopefoundation/zope.contenttype";
     description = "A utility module for content-type (MIME type) handling";
     license = licenses.zpl20;
diff --git a/nixpkgs/pkgs/development/python-modules/zope_deprecation/default.nix b/nixpkgs/pkgs/development/python-modules/zope_deprecation/default.nix
index c4059dbcd416..cda7af8e7a0c 100644
--- a/nixpkgs/pkgs/development/python-modules/zope_deprecation/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/zope_deprecation/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , zope_testing
@@ -15,7 +15,7 @@ buildPythonPackage rec {
 
   buildInputs = [ zope_testing ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://github.com/zopefoundation/zope.deprecation";
     description = "Zope Deprecation Infrastructure";
     license = licenses.zpl20;
diff --git a/nixpkgs/pkgs/development/python-modules/zope_dottedname/default.nix b/nixpkgs/pkgs/development/python-modules/zope_dottedname/default.nix
index b2afc9cc23f4..0e8f35431364 100644
--- a/nixpkgs/pkgs/development/python-modules/zope_dottedname/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/zope_dottedname/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 }:
@@ -12,7 +12,7 @@ buildPythonPackage rec {
     sha256 = "0cec09844d309550359ac1941abfcd9141e213f67f3c19bb8f90360c40787576";
   };
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "http://pypi.python.org/pypi/zope.dottedname";
     description = "Resolver for Python dotted names";
     license = licenses.zpl20;
diff --git a/nixpkgs/pkgs/development/python-modules/zope_event/default.nix b/nixpkgs/pkgs/development/python-modules/zope_event/default.nix
index b5481ae2e2b7..cc82da7ea9a1 100644
--- a/nixpkgs/pkgs/development/python-modules/zope_event/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/zope_event/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 }:
@@ -12,7 +12,7 @@ buildPythonPackage rec {
     sha256 = "5e76517f5b9b119acf37ca8819781db6c16ea433f7e2062c4afc2b6fbedb1330";
   };
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "An event publishing system";
     homepage = "https://pypi.python.org/pypi/zope.event";
     license = licenses.zpl20;
diff --git a/nixpkgs/pkgs/development/python-modules/zope_exceptions/default.nix b/nixpkgs/pkgs/development/python-modules/zope_exceptions/default.nix
index ae7797b8736b..09f08c7bba48 100644
--- a/nixpkgs/pkgs/development/python-modules/zope_exceptions/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/zope_exceptions/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , zope_interface
@@ -18,7 +18,7 @@ buildPythonPackage rec {
   # circular deps
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Exception interfaces and implementations";
     homepage = "https://pypi.python.org/pypi/zope.exceptions";
     license = licenses.zpl20;
diff --git a/nixpkgs/pkgs/development/python-modules/zope_filerepresentation/default.nix b/nixpkgs/pkgs/development/python-modules/zope_filerepresentation/default.nix
index 635727a11734..7aae2a24d623 100644
--- a/nixpkgs/pkgs/development/python-modules/zope_filerepresentation/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/zope_filerepresentation/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , zope_schema
@@ -20,7 +20,7 @@ buildPythonPackage rec {
     cd src/zope/filerepresentation && python -m unittest
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://zopefilerepresentation.readthedocs.io/";
     description = "File-system Representation Interfaces";
     license = licenses.zpl20;
diff --git a/nixpkgs/pkgs/development/python-modules/zope_i18nmessageid/default.nix b/nixpkgs/pkgs/development/python-modules/zope_i18nmessageid/default.nix
index ca5f818cd620..49270488ecdb 100644
--- a/nixpkgs/pkgs/development/python-modules/zope_i18nmessageid/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/zope_i18nmessageid/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , six
@@ -19,7 +19,7 @@ buildPythonPackage rec {
 
   checkInputs = [ coverage zope_testrunner ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://github.com/zopefoundation/zope.i18nmessageid";
     description = "Message Identifiers for internationalization";
     license = licenses.zpl20;
diff --git a/nixpkgs/pkgs/development/python-modules/zope_interface/default.nix b/nixpkgs/pkgs/development/python-modules/zope_interface/default.nix
index 919c3ade3c28..7a32045fc3e3 100644
--- a/nixpkgs/pkgs/development/python-modules/zope_interface/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/zope_interface/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , zope_event
@@ -17,7 +17,7 @@ buildPythonPackage rec {
 
   doCheck = false; # Circular deps.
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Zope.Interface";
     homepage = "https://zope.org/Products/ZopeInterface";
     license = licenses.zpl20;
diff --git a/nixpkgs/pkgs/development/python-modules/zope_lifecycleevent/default.nix b/nixpkgs/pkgs/development/python-modules/zope_lifecycleevent/default.nix
index 6494aa7a71af..390624b50de7 100644
--- a/nixpkgs/pkgs/development/python-modules/zope_lifecycleevent/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/zope_lifecycleevent/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , isPy3k
@@ -22,12 +22,12 @@ buildPythonPackage rec {
   doCheck = false;
 
   # zope uses pep 420 namespaces for python3, doesn't work with nix + python2
-  pythonImportsCheck = stdenv.lib.optionals isPy3k [
+  pythonImportsCheck = lib.optionals isPy3k [
     "zope.lifecycleevent"
     "zope.interface"
   ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://github.com/zopefoundation/zope.lifecycleevent";
     description = "Object life-cycle events";
     license = licenses.zpl20;
diff --git a/nixpkgs/pkgs/development/python-modules/zope_location/default.nix b/nixpkgs/pkgs/development/python-modules/zope_location/default.nix
index 1c868a739719..62b2cef9ea75 100644
--- a/nixpkgs/pkgs/development/python-modules/zope_location/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/zope_location/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , zope_proxy
@@ -22,7 +22,7 @@ buildPythonPackage rec {
 
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://github.com/zopefoundation/zope.location/";
     description = "Zope Location";
     license = licenses.zpl20;
diff --git a/nixpkgs/pkgs/development/python-modules/zope_proxy/default.nix b/nixpkgs/pkgs/development/python-modules/zope_proxy/default.nix
index 7092f7508708..af108c058c7f 100644
--- a/nixpkgs/pkgs/development/python-modules/zope_proxy/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/zope_proxy/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , zope_interface
@@ -18,7 +18,7 @@ buildPythonPackage rec {
   # circular deps
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://github.com/zopefoundation/zope.proxy";
     description = "Generic Transparent Proxies";
     license = licenses.zpl20;
diff --git a/nixpkgs/pkgs/development/python-modules/zope_schema/default.nix b/nixpkgs/pkgs/development/python-modules/zope_schema/default.nix
index d32fb05ef94a..c7e228c4e05b 100644
--- a/nixpkgs/pkgs/development/python-modules/zope_schema/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/zope_schema/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , zope_location
@@ -23,7 +23,7 @@ buildPythonPackage rec {
   # Package seems to work fine.
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://github.com/zopefoundation/zope.schema";
     description = "zope.interface extension for defining data schemas";
     license = licenses.zpl20;
diff --git a/nixpkgs/pkgs/development/python-modules/zope_size/default.nix b/nixpkgs/pkgs/development/python-modules/zope_size/default.nix
index 92df0aa1eb7e..79eadc880a25 100644
--- a/nixpkgs/pkgs/development/python-modules/zope_size/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/zope_size/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , zope_i18nmessageid
@@ -16,7 +16,7 @@ buildPythonPackage rec {
 
   propagatedBuildInputs = [ zope_i18nmessageid zope_interface ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://github.com/zopefoundation/zope.size";
     description = "Interfaces and simple adapter that give the size of an object";
     license = licenses.zpl20;
diff --git a/nixpkgs/pkgs/development/python-modules/zope_testing/default.nix b/nixpkgs/pkgs/development/python-modules/zope_testing/default.nix
index 1ea12eb377d9..3d7cbf90c25f 100644
--- a/nixpkgs/pkgs/development/python-modules/zope_testing/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/zope_testing/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , isPyPy
@@ -20,7 +20,7 @@ buildPythonPackage rec {
 
   propagatedBuildInputs = [ zope_interface zope_exceptions zope_location ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Zope testing helpers";
     homepage =  "http://pypi.python.org/pypi/zope.testing";
     license = licenses.zpl20;
diff --git a/nixpkgs/pkgs/development/python-modules/zope_testrunner/default.nix b/nixpkgs/pkgs/development/python-modules/zope_testrunner/default.nix
index 90fa0b8143cd..c516106e48bb 100644
--- a/nixpkgs/pkgs/development/python-modules/zope_testrunner/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/zope_testrunner/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , buildPythonPackage
 , fetchPypi
 , zope_interface
@@ -21,7 +21,7 @@ buildPythonPackage rec {
 
   doCheck = false; # custom test modifies sys.path
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "A flexible test runner with layer support";
     homepage = "https://pypi.python.org/pypi/zope.testrunner";
     license = licenses.zpl20;
diff --git a/nixpkgs/pkgs/development/python-modules/zstd/default.nix b/nixpkgs/pkgs/development/python-modules/zstd/default.nix
index 95626c802bad..af7bb7692f66 100644
--- a/nixpkgs/pkgs/development/python-modules/zstd/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/zstd/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, pkgconfig, fetchPypi, buildPythonPackage
+{ lib, stdenv, pkg-config, fetchPypi, buildPythonPackage
 , buildPackages
 , zstd, pytest }:
 
@@ -13,10 +13,10 @@ buildPythonPackage rec {
 
   postPatch = ''
     substituteInPlace setup.py \
-      --replace "/usr/bin/pkg-config" "${buildPackages.pkgconfig}/bin/${buildPackages.pkgconfig.targetPrefix}pkg-config"
+      --replace "/usr/bin/pkg-config" "${buildPackages.pkg-config}/bin/${buildPackages.pkg-config.targetPrefix}pkg-config"
   '';
 
-  nativeBuildInputs = [ pkgconfig ];
+  nativeBuildInputs = [ pkg-config ];
   buildInputs = [ zstd ];
 
   setupPyBuildFlags = [
@@ -36,7 +36,7 @@ buildPythonPackage rec {
     pytest
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Simple python bindings to Yann Collet ZSTD compression library";
     homepage = "https://github.com/sergey-dryabzhinsky/python-zstd";
     license = licenses.bsd2;
diff --git a/nixpkgs/pkgs/development/python-modules/zulip/default.nix b/nixpkgs/pkgs/development/python-modules/zulip/default.nix
index 229a4f17bd34..2c7b7582b80e 100644
--- a/nixpkgs/pkgs/development/python-modules/zulip/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/zulip/default.nix
@@ -9,7 +9,7 @@
 
 buildPythonPackage rec {
   pname = "zulip";
-  version = "0.7.0";
+  version = "0.7.1";
 
   disabled = !isPy3k;
 
@@ -18,7 +18,7 @@ buildPythonPackage rec {
     owner = "zulip";
     repo = "python-zulip-api";
     rev = version;
-    sha256 = "0waldgpzq3ms1r1z14lxdj56lf082fnmi83l3fn8i8gqr8nvnch1";
+    sha256 = "0da1ki1v252avy27j6d7snnc0gyq0xa9fypm3qdmxhw2w79d6q36";
   };
   sourceRoot = "source/zulip";